I was nodding along so strongly to the first half of this that I was genuinely surprised when the other shoe dropped. I see another friend get sucked into the vortex nearly every week, and it's gotten to the point where I have trouble being happy for them. I mean, I'm thrilled to see friends do well, but I know that suddenly a great mind has been removed from the larger community.
Conversations with pre-Google-employment friends go along the lines of:
"What are you working on?"
"Well I was working on an inventory tracking system using Flask and Redis so I needed to kludge together something to store session in ..."
After getting hired by Google, these conversations are more like:
"What are you working on?"
"App Engine."
"Oh. Um. What parts?"
"Oh, you know. Python and stuff."
It's sad.
So congrats to Avery and everyone else who's getting sucked in. I'm sure things are awesome over there, and I hope some day you'll be able to come back out and tell the rest of us about it.
But I sure as hell am never going to give up my freedom to talk to my friends.
It really depends on what project you're working on at Google. Some are so secret you can't even reveal their name, or even what general area that they are in. Others are done completely in the open. For example, if you work on Chrome or Chrome OS, most of what people work on is available in public repositories.
I work on the production kernel for our data centers, and most of what I do is completely public. In fact at the moment I am working on a way to decrease seek overhead when writing large files to ext4, and I have been releasing the in-progress patchsets for review and comment both in and outside Google. Why? Because I've gotten some really valuable comments both at the design level, and "spot the stupid bug" level, both inside and outside of Google.
That being said, there are some really cool things that are only available inside the Google kernel. For example, we can track every read, write, and seek operation at the hardware level, and tell you whether it is metadata or data, what application was responsible for issuing the request, and then correlate this information across multiple machines and in fact across the entire data center, and give you a single high-level view of your map reduce, or your application homed on hundreds of machines, so you can see how it is actually using all of the disk spindles associated with that job. And its overhead is small enough that we can leave it running by default, as opposed to only turning it on during debugging/benchmarking runs (ala blktrace).
Why haven't we shared this with the external world? Well, part of it is because it depends on infrastructure which is Google-specific, but the main reason is because we can't find the right people to help us clean up the code so it would be mainline acceptable, disentangle the Google-specific enhancements, negotiate with the upstream Linux kernel maintainers whose subsystems are touched by this code, and get it into mainline kernel. And for most of these kernel enhancements (of which this is only one), we _want_ to get them upstream, because every single one of these enhancements (while they are really cool and there is no way we would give them up), makes it harder for us to rebase the kernel so we can get the latest enhancements from upstream. More people using it means we hopefully will get a community of people collaborating to make the technology better --- which means free engineering help for us! :-)
The problem is headcount; we need to staff up this and other projects before we can do things like push more of these Google-specific enhancements upstream to the Linux kernel. (Some of it is happening now, slowly, but we have lots of other production and release priorities which take precedence.) Unfortunately, it's really hard to find Systems People who are interested and willing to do low-level Linux kernel programming, and can also see the "big picture" systems issues.
So if you think you're a hotshot Systems designer who is not afraid to get their fingers dirty coding low-level Linux kernel code, we're hiring (and not just in storage, although that's my area; contact me). And if you come to work at Google, you may be surprised at how much you can talk to your friends about, and even publish as a paper at a conference. Yes, there is plenty of stuff about features under development in Google Docs, Search, Android, that you'll be able to play with as an early dogfooder, and that stuff you won't be able to share with your friends. And some stuff we can't share because it would harm our relationship with our hardware partners --- but even there, Google has published a paper at FAST describing the failure rate and patterns of hard drives (although we anonymized the specific names of the disk drive manufacturers involved, for obvious reasons).
I'm surprised people think this is such a big deal, actually, because invariably there is some stuff that you have to keep secret at all companies. I found that there was more stuff related to my day-to-day work which I had to keep quiet at my former employer, IBM, than I am here at Google. And I'm sure that Apple engineers would be even more constrained!
For example, if you work on Chrome or Chrome OS, most of what people work on is available in public repositories.
For what it is worth, when I read this article one of the people it reminded me of is someone from the Chrome OS team. It might be, however, that with the release of the Cr48 that the situation has changed (I last talked to him days after those shipped). The people I've met from the Chromium team, however, were certainly a different story.
However, I know a /lot/ of people at Google (Chrome OS, Books, Social, Native Client, Ads, Docs, and those are just the people I know a project title for), and for almost all of them the article's content rang true.
I'd add one more thing, though: I often get to hear about just how much fundamentally better their tools are, or how much larger their scale of operation is, with this background attitude of legitimate pity. To be clear, I mean to say that I get a really legitimate positive emotional read from them of "I wish you were here, too, so you could play with me on the other side with all of this cool stuff".
And I'm sure that Apple engineers would be even more constrained!
I never actually knew many people who wanted to work for Apple, but those who did are certainly in a fundamentally different class of secrecy: for all intents and purposes they are now dead to me (which may be a uniquely-me problem: I could see them being fired for even talking to me; the treatment I now get from them is "head down, don't reply, shut down conversation, leave venue").
Your last line is an interesting one. The point when more than 50% of my friends worked at Google was a really serious one for me: it became the point at which joining Google meant gaining the freedom to talk to my friends.
Not that this is a good thing. But it's very interesting, in terms of incentives.
> The point when more than 50% of my friends worked at Google was a really serious one for me: it became the point at which joining Google meant gaining the freedom to talk to my friends.
Man, I just find that tremendously depressing.
But now I feel like a jerk for raining on your parade so I'll butt out. Enjoy the tech and the food and the awesomeness, and I hope some day you'll be able to tell the rest of us what you've learned.
It could be worse. If you go military/industrial complex instead, even if all your friends also have TS/SCI clearances you can't talk about what you do unless they need to know; and even then only in a SCIF and over an encrypted line.
Part of it is that it's simply difficult to keep track of what's public and what's not. My various Google apps are full of as-yet-unreleased features, all on their own schedules. Unless I track the external blogs carefully, it's hard to know what I can talk about. When I really need to know, I'll search and see if something is mentioned on the web...
"Many of them emerge talking about bureaucracy, politics, 'big company attitude', projects that got killed, and how things 'aren't like they used to be.'".
There's a great book called "Watership Down". In it, a band of ragtag rabbits whose home was destroyed come across a warren where all rabbits are well-fed and seemingly happy, and yet, something is wrong, every so often one of them disappears. Except no one talks about it, because that would mean admitting that they live on a rabbit farm.
A lot of this is relative. If you are used to a 30 person company, yes, there's more politics. Compared to where I came from (a 300,000 person company), Google is much, much better. (And if you think the politics are bad in companies, its nothing compared to the politics in a university's I/T department. Why? Perhaps because there's less at stake...)
I've worked for a university (MIT), a startup (VA Linux), a big company (IBM), and compared to my past employers, I've easily found Google to be the best for me. Others may find the environment at a 30 person, 300 person, or 300,000 person company more congenial. A lot of it is personal preference...
I think it's worth noting that while Google has a vortex (cool employees go in, harder for them to come out), Facebook has seen so many people leaving and doing innovative things that it's got it's very own mafia now.
Perhaps because it's possible to do something new and crazy (and unrelated) in Google, and not so possible to do so in Facebook.
That's not a fair comparison. Facebook's mafia guys are mostly early-stage employees. Early-stage employees tend to be more entrepreneurial and are also more tight-knit, which is how the mafia sentiment is able to sustain itself.
Plenty of Googlers are entrepreneurial enough to leave and do startups, but they aren't considered mafia because they were never part of an early core group that bonded. And those that are entrepreneurial enough to leave aren't as high-profile entrepreneurial as early-stage employees would be.
One of the main realities of our current world that I strongly disagree with is the existence of the NDA. I don't believe that individual human beings should ever be required to waive their right to say whatever they want to about anything. Of course, the entire corporate universe is based on NDAs and secrecy and competition - I wonder what an alternate universe based on free sharing of information and cooperation would be like. I'm pretty sure its a universe that I would prefer to live in.
Information asymmetry is one of the most powerful forces in existence, be it political, economic or interpersonal. As long as it can exist, it will exist.
Any decent professional should know when to keep his mouth shut. And it should know that leaking privileged information would potentially get him fired and marked as unreliable. No NDA required.
An NDA not only keeps an employee quiet, but it makes him liable long after the employment relationship has ended.
I, for one, would not work for any company that would force me to sign an NDA. Besides being insulting, it's just not worth it.
I've worked at plenty of jobs that don't require NDAs -- if NDAs are offensive enough, find an industry where they're not prevalent. And if you bootstrap your own startup you shouldn't need one.
"A universe where on average, each employee produced $425,450 in profit in 2010, after deducting their salary and all other expenses. (Or alternatively: $1.2 million in revenue.)"
Wait a minute, you generate that much profit and then you don't get paid even half that much? Sounds like why I left Apple.
Remember that's an average. Some people produce less and get paid less, some people produce more and get paid more. The two are not always correlated of course. In fact, at Google in particular, I'm sure it's crazily skewed: most people there are probably net money losers, and AdWords floats them all.
If you took a vote, I bet the majority of people at Google would be terrified to get paid according to the corporate earnings they account for.
Also note that the quoted earnings have of course deducted anything that got paid directly to the owners; the listed earnings are the money that is getting re-invested straight back into the company, not paid to the founders, so it's not quite valid to compare it directly to what you would earn if you owned the company.
It's hard to do an accounting, because virtually everything at Google is a team effort. There've been projects I've worked on that have generated hundreds of millions in additional revenue. However, there was a group downstream of us in Ads doing the actual sales. And we had groups upstream that we rely upon for data. And those groups had groups upstream of them that managed the infrastructure. Who earned the money? If you take out any one component of the pipeline, it never happened.
Just saying, adwords is 100% useless without the other google stuff to run it on. This is important, and certainly makes the "actual per employee" profit much, much more difficult to calculate.
I hate to break it to you, but people start companies to (shudder) make a profit... If you're not comfortable with someone making $1 million in revenue from your $100K salary, you probably shouldn't get a job anywhere.
I'm sure Google (and Apple) is a great place to work but after finally cutting the cord and working only for myself last year I can't imagine working for anybody else unless it's absolutely necessary.
Oddly enough, I'm in the opposite situation: I've never held a serious job that wasn't, in some way or another, working for myself. (Other than 4-month co-op placements as a student.) The opposite experience will be interesting to try out.
I'm really the opposite. After starting and being a member of several startups, I'm on my last. While I've had profitable exits, nothing that I could retire on (and still feel really comfortable).
And I've had friends in industry move up the ranks and get high six figure salaries and multi-million dollar bonuses.
And I sometimes look at the hecticness of startup life and think that I'm finally getting too old for it. And while the idea of working for myself is a good one, I've always felt like I was working for someone -- just this person never told me who they were, what they wanted, or when I'd be paid. :-)
If you've never been an employee before you should certainly try it. Even if it doesn't suit you you'll understand the tradeoffs of self-employment vs a regular job a lot better.
Personally, the only thing I miss is the social environment of the office.
Considering Google takes all of the risk, and creates an environment where it's much easier to create value than on your own, I think it's more than fair.
Agreed. Some people choose to leave Google to start their own companies. Some people choose to stay in the situation they have at Google. Choice is generally a good thing.
Would you be able to make that $120K (which seems low to me, actually) elsewhere?
That's the important comparison - it's quite possible for you to keep 100% of the value you create, but only create $60-70K/year of value. Several of my college friends (not in the valley) are in that position.
It's sort of annoying, actually, that Google is hiring so voraciously in Waterloo. It's making it extremely difficult for us to hire awesome Waterloo grads partly for this reason.
So, while we continue to hire from Waterloo where it works, we're also looking further afield for talent... Iqaluit here we come!
I agree with you, and about Waterloo specifically.
I'm probably going to be banned from HN for saying this, but the giant Google talent vacuum cleaner is one potential reason that starting a startup right now is especially difficult and maybe not the right choice.
When I've started startups before, it's been in economic down times (eg. right after the .com boom). I actually preferred it that way.
To be honest, one can always find a reason NOT to start a company. Successful companies have been founded in good times and in bad, in war and in peace, with easy access to talent or with one helluva difficult grind.
I really hope it works out fabulously for you. Say "Hi!" to the Andele guys and their delicious burritos. My experience was that working at Google was unlike any other place I've ever worked before (or since).
Conversations with pre-Google-employment friends go along the lines of:
"What are you working on?" "Well I was working on an inventory tracking system using Flask and Redis so I needed to kludge together something to store session in ..."
After getting hired by Google, these conversations are more like:
"What are you working on?" "App Engine." "Oh. Um. What parts?" "Oh, you know. Python and stuff."
It's sad.
So congrats to Avery and everyone else who's getting sucked in. I'm sure things are awesome over there, and I hope some day you'll be able to come back out and tell the rest of us about it.
But I sure as hell am never going to give up my freedom to talk to my friends.