Google has a problem retaining great engineers? Bullcrap.

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.

Interesting post. I think you nailed what it is that makes Google the dream-job of thousands of people: a job that pays you to do what you love to do, especially when what you love is deeply technical and outside the needs of 99% of companies. That being said, I don’t know if I would call Facebook a start-up anymore.

I don’t totally agree (though I do see your point). We are currently looking for a software architect for our budding platform, I know people who consider that the ultimate job in software development: they impact the project in a profound way and define and drive user experience in a way that can often make or break our business. I guess some developers like the big picture work, while others prefer nuts and bolts!

So let me get it straight? Great technology in pure scientific terms does NOT come out of startups but from Dinosaurs? Wow. Googlers seem arrogant because they can’t keep up since Gmail… By the way Adsense is why you are payed. Absolutely nothing else that you do.

It sounds like what you are looking for is more a product manager, if you’re worried about the person defining and driving user experience. Which is fine, there’s nothing wrong with that. But as a startup, one of the thing your architect is going to have to do is factor in your burn rate, and make compromises with respect to engineering time, features, scalability versus your projected growth rate, etc. It’s not just about pure technology; it can’t be. Some people will enjoy that, and some might even argue that producing solutions with a constrained resource and solution space is part of engineering.

But that’s really different compared to what Linux kernel engineers do, for example. We won’t merge code until it’s ready; there is a much stronger resistance to building up “technical debt”. But in a startup environment, if there is a choice between executing on the companies business plan, and technical debt, there’s simply no contest. The code only has to work; it doesn’t have to be maintainable. After all, there’s a good chance the startup won’t be around a year or two later, so who cares if the code is long-term maintainable? You can always rewrite it or make it more scalable after the IPO.

And that’s totally OK. It’s just not what I’m interested in doing at this point in my career. And is a startup going to let me take time out of my work day to organize the Kernel Summit or the Linux Plumber’s Conference? Or participate in IETF standardization meetings, even though it wasn’t part of my primary job responsibility (as IBM did when I was still IPSEC working group chair when I worked for their Linux Technology Center)? No, and I wouldn’t blame a startup for refusing to allow that; a startup, and all of its employees has to be focused if it wants to succeed.

Hey, always nice to find other engineers working in Boston. I’ve heard your name but didn’t realize you were a Google employee; a while back I interviewed for a SRE job at Google in Boston only to find that there was a mixup and supposedly there’s only Java programmers here. Obviously that’s not quite the case.

There are a technology-oriented startups, where the founder has some great idea, patents it, and then tries to monetize that idea. (That, as far as I could tell, was not true of many of the storage startups that infested Silly Valley five years ago, many of which tried to recruit me before I started working for Google. As near as I could tell a huge number of them were “me too” companies that very little in the way of unique technology or unique business plans. I was always confused why so many VC’s were funding those storage startups.)

When I wrote my original post, I was thinking primarily of the “Web 2.0″ startups, most of which are not technology oriented at all. So as others have pointed out to me, companies like Xen and VMWare and Coverity are great counterexamples. However, even there, unless you happen to be the founder with that great initial idea/technology, all of the engineering work that you will do as a startup at an early-stage VMWare, Xen, Coverity, etc., will be supporting that initial technology and the product that will hopefully monetize that technology. So if you happen to be passionate in virtualization, or static code analysis, or whatever happens to be that startup’s focus, you’re all set. But if your passion happens to be elsewhere, and the company hires you because they need Linux device drivers, for example, you had better be clear about what is the tail, and what part is the dog.

And again, I’m not saying there’s anything wrong with that. It’s Just The Way Things Are when it comes to startups.

@tytso: we do have a product manager but I know some tech guys who get unnaturally excited (!) when thinking of platforms from the architecture point of view, looking at different frameworks, their strengths and weaknesses when it comes to our app, future-proofing the platform in every way. It may seem easy to some but for a business like ours it’s crucially important that they get it right the first time.

Believe it or not, I went to work for a startup precisely for the reason that it allowed me to experiment more with the technology. I was able to run things my way in the real world and learn what works- discovery is huge. Secondly, the largest technical challenge in a startup is often making the most impact with the smallest effort- since time is so critical, engineering things to make a large bang (and skipping other absolutely major pieces to get there) is interesting to me.

I agree with the bulk of this post (and would be really surprised if Google had trouble keeping ingeneers in, even if *I* dont want to get in), except when you dismiss smaller companies for not doing technologicaly exciting stuff.

From “behemoth” to “friend’s basement startup” and all the sizes in between, you can find exciting technology jobs. Maybe for your specific field (filesystems) you are better served by a big company, but the picture will be different for other fields, it can’t be summarized that easily. If anything, smaller companies will usually make your contributions much more more visible, cuting short any existentialism.

As for my 8-year old company, which is still small but not a startup anymore, it has been a technologically exciting place right from the start, and will continue to be for as far into the future as I can see.

@Slaven, be careful you don’t get an architecture astronaut. Unfortunately, these are the exact people who get excited about the Big Picture (TM) and tend to remain ignorant of the devil in the details.

I have yet to see architecture done right the first time although I’m willing to be surprised. I look forward to reading about how you’ve successfully managed to do this.

You’re right when saying startups are not about technology, but I’m not sure you understand what goes on behind twitter and Facebook.

Both of them have huge technological problems to keep them runing.

For example, Facebook developed a PHP to C++ compiler. Twitter uses almost anything but black magic to solve their scalability problems. And seeing some of their publications, it’s much harder than it looks.

I have felt sorry too often for my friends of technical inclinations starting up their own businesses. They (almost) all are either just another boring service center/small-scale we-program-anything sweatshop, or enterprises that will end up sucking their talent and creativity in order to keep the paybook balanced.

I work (at a lowly position) on a University. I love it. If I switch jobs, I hope it will be to something that gives me this same freedom -just for the reasons you quoted- and ability to bring my pet projects to my workplace to develop in my free time.

Oh please. I’m so sick of Google’s arrogance and everyone fawning over them. What truly innovative technology have they developed? Search, and the infrastructure around it. 99% of what they do is supporting AdSense and making sales, so why discredit equally innovative companies like Facebook while fawning over Google’s over-inflated reputation?

I think you’ll find that Google has created quite a lot of innovations. Not all of them have been visible to the users of Google’s various web services, but a lot of it does get made available via papers published at computer science journals and conferences, and as open source code.

As far as whether or not people are “fawning” over Google, all I can say is that Google is a really great place to work, and I’ve had the opportunity to work at a fairly large variety of companies, from academia (MIT) to a startup that impoded after its IPO (VA Linux), to a big enterprise systems integrater (IBM). Google has been the best place for me by far.

I could make some equally snide remark about all Facebook has innovated upon is violating people’s privacy and looking up people’s contact databases. But honestly, let’s not go there.

My original point is that there are certain things that only make sense at a large company. If you’re working at a startup where you’re still trying to prove you have a scalable business model, it simply doesn’t make sense to optimize out individual disk seeks or make sure you are using your servers in your data centers as efficiently as possible. If you are really interested in optimizing every watt used in a data center, you should head over to Google or Amazon. It would just be stupid for a company like Zenga or Mint.com to invest money in that kind of innovation.