After my wife and I decided to trade in the big lights of NYC and head out west, I found myself asking the question, “What’s next?”. My career until this point has primarily consisted of startups, from the very small 1-2 person org to the larger 180 person org that Tumblr became while I was there. I had lived all over the country but until now hadn’t found my way out to the bay area. Did I want to start my own company? Did I want to join a seed stage startup? Did I want to join a well established startup? Lots of choices in the startup world of San Francisco.
One thing that I firmly believe, regardless of who or where you are, is that you should invest in yourself. You can’t be certain what the future of any job holds so if you’re going to work for someone else, at least pick an employer that will stretch you in a new way. Choose an employer that will give you opportunities that you haven’t had before. Been at an established startup? Join a seed stage startup. Been an engineer? Join as a senior engineer (or the dumbest engineer in a sea of smart guys). Make the long bet, invest in yourself.
As an engineering manager (and engineer) at startups I have found on many occasions that my experience betrays me. Eventually you don’t have fresh eyes for problems because at startups every problem starts to look the same. Your MySQL/PGSQL/Mongo/etc data store is at capacity. Your PHP/C++/Java/Scala/Ruby applications has gotten too big/slow/scary. Your architecture creaks. You go from bi-weekly to twice a month pay checks back to bi-weekly back to twice a month. The list goes on. If you ignore the technology, startup problems (for me) all end up looking the same.
When I started thinking about my next job, I started thinking about making the long bet. What experience would serve me well in 5 or 10 years, regardless of where my career goes? As I thought about the beginners mind problem (everything looks the same), I saw an opportunity to stretch by going the opposite direction (this is known as a pivot in the startup world). While most people tend to move towards startups from big companies, I was going to go the opposite direction and join a big company. I talked to people from Twitter, Intel, Salesforce, Facebook, and Google, getting offers from some offers and some declines. Eventually I settled on Facebook
As an outsider, one thing I admired deeply about Facebook is something I heard consistently from friends who were employees. Facebook has a culture where innovation and speed aren’t just valued but are ‘the way’. To me this is a fascinating feat of organizational architecture and scale; how at 5000 employees does Facebook manage to maintain that culture? I have been at companies with less than 100 employees that managed to lose their way and forgot how to do this. As I went through the interview process I found this culture permeated throughout every part of my experience. In my first week as an employee, I have found the same to be true.
I joined Facebook to stretch myself, as I am not a big company person. More than anything however I want to know how FB does it, how they manage to scale the company. As an added bonus I think some of the tech is fascinating, and the people are great. This doesn’t have quite the conclusion I had hoped for, so I’ll leave this as is.
In 1952 Alan Turing, a british mathematician, logician, cryptanalyst, and computer scientist, wrote a paper which remains influential in computational biology today. He explained how stripes might form on a snake’s skin [and other patterns on animals], using the dispersion of two chemicals; an activator [red] and an inhibitor [yellow]. The activator causes the colouration, and the inhibitor inhibits it. Turing wrote a pair of equations which say that concentrations of the activator cause creation of more inhibitor, but that the inhibitor diffuses and spreads out more quickly than the activator. As shown in the animation, this causes the activator to form peaks with surrounding basins of inhibitor. The concentrations of the two chemicals quickly converge to a stripey pattern where the red activator is periodically in higher concentration than the yellow inhibitor. [video] [more] [code]
“Yes Katherine, I NEED these.” - Shipping tech books to a hotel, a new low.
The big surprise is that Google still uses the manually-crafted formula for its search results. They haven’t cut over to the machine learned model yet. Peter suggests two reasons for this. The first is hubris: the human experts who created the algorithm believe they can do better than a machine-learned model. The second reason is more interesting. Google’s search team worries that machine-learned models may be susceptible to catastrophic errors on searches that look very different from the training data. They believe the manually crafted model is less susceptible to such catastrophic errors on unforeseen query types. — Anand Rajaraman in his blog post titled “Are Machine-Learned Models Prone to Catastrophic Errors?” (via foldmap)
My posthumus tumblr contribution, memkeys, is a top C++ project on github. Awesome!
This is what 2 years at my desk looks like. Not too bad.
Taste the happy.