A couple months ago there were reports of absolutely absurd bidding wars taking place between Google and Facebook for the top engineering talent in the valley. How absurd? Millions. And we aren’t talking about high level executives here. Just mid-level staff engineers that happen to be good at what they do. When Facebook came calling for their services Google refused to be outbid – the two biggest engineer payouts leaked were $3.5 and $6 million in stock from Google. Wow!
And the best part about it? Facebook didn’t have to offer them $6 million. Just the idea that Facebook stock would be worth obscene amounts of money when there is an IPO. All it would take is a fairly standard offer of 1/20th of a percent of equity, which could/should be worth tens of millions is just a couple years. That’s all it takes to make Google pay out the wazoo.
This begs the question: what could these engineers possibly do that makes them so valuable? And for Facebook – what are they doing that they think they need to lure these engineers away from Google? At first glance Google is the company that really needs the top tier engineering talent, what with their secretive search technology, complex advertisement algorithms, and cars that drive themselves. Plenty of challenge for the best engineers. But Facebook? They just have one thing: a website that is already way too cluttered. How hard could it be? Haven’t they already done the hard part? Couldn’t they get by with paying way less for someone else?
Well thanks to Facebook’s public developers notes, we have some insight into the types of things that they are working on. And boy is it more complex than I imagined. If you have any experience programming check out The Full Stack, Part I for a good intro into the types of things that have to be considered when making a website the size of Facebook’s. And if you really want to be blown away, check out Scalable Memory Allocation Using jemalloc.
During this exploration I also learned something else I had been wondering: why would large companies like IBM contribute development resources to open source software projects where that they can’t make any money off of? It’s because they are pushing the limits of the open source software they are using. They need it to be better so they make it better. They contribute their changes to the project and continue to benefit on everyone else’s work on it. Check out this explanation of how Facebook pushes the boundaries of the open source Hadoop running their huge databases.
Ok, I guess it makes sense that Facebook, one of the biggest websites in the world, would need that type of engineering talent. But a smaller website, maybe you could work for them? You did take that HTML class in high school … how nerdy do you have to be? Check out this post about AirBNB running their MySQL database in Amazon’s cloud. Think you can do that?
Cool side note: Hadoop is named after the creator’s son’s stuffed elephant by the same name.
More coolness: check out AirBNB’s awesome intro video.
Photo: Stephanie Klocke