Once again, there’s been another story about how Google is having trouble retaining talent. Despite all Eric Schmidt’s attempts to tell folks that Google’s regretted attrition rate has not changed in seven years, this story just doesn’t want to seem to die. (And those stories about Google paying $3.5 million and $7 million to keep an engineer from defecting to Facebook? As far as I know, total bull. I bet it’s something made up by some Facebook recruiter who needed to explain how she let a live prospect get away. :-)
At least for me, the complete opposite is true. There are very few companies where I can do the work that I want to do, and Google is one of them. A startup is totally the wrong place for me. Why? Because if you talk to any venture capitalist, a startup has one and only one reason to exist: to prove that it has a scalable, viable business model. Take diapers.com for example. As Business Week described, while they were proving that they had a business model that worked, they purchased their diapers at the local BJ’s and shipped them via Fedex. Another startup, Chegg, proved its business model by using Amazon.com to drop ship text books to their first customers. (The venture capitalist Mark Maples talked about this in a brilliant talk at the Founders Showcase; the Chegg example starts around 20:50 minutes in, but I’d recommend listening to the whole thing, since it’s such a great talk.) You don’t negotiate volume discounts with textbook publishers, or build huge warehouses to hold all of the diapers that you’re going to buy until you prove that you have a business model that works.
Similarly, you don’t work on great technology at a startup. Startups, by and large, aren’t about technology — at least, not the Web 2.0 startups like Facebook, Foursquare, Twitter, Groupon, etc. They are about business model discovery. So if you are fundamentally a technologist at heart, whose heart sings when you’re making a better file system, or fixing a kernel bug, you’re not going to be happy at a startup. At least, not if the startup is run competently. If you have the heart of an entrepreneur, and you are willing to roll the dice (since 9 out of 10 startups go belly up; those are the ones that failed to find a viable business model), then sure, go for a startup. And understand that your job will be to make something that works well at a small scale, quick, dirty, and cheap. If that means using some proprietary software, then that’s what you should do. Hopefully you’ll get lucky and win the IPO lottery.
But if your primary interest is to doing great engineering work, then you want go to company that has a proven business model. Google has enough scale that I can sleep well knowing that improvements I am making to Linux and the ext4 file system are saving enough money for the company that Google is making a profit on me. That is, the value Google is getting out of my work is worth many multiples of my total compensation. And that’s a position that every engineer should strive for, since that’s how you can be confident that you will remain gainfully employed. The fact that I can do what I love, and go to conferences, and all of my work is open source — that’s just total icing on the cake. :-)