Google From Inside
A software engineer at Google, nicknamed ZorbaTHut, accepted to answer some question about Google at a forum called Something Awful. Zorba worked on Google Desktop, Google Video, Google Ads and Google Calculator. Here are some interesting answers:
What does it take for someone to get fired from Google?
I mentioned logs a while back - abusing those is a fireable offense. I don't know if anyone's actually done this, but they drive it in pretty hard if you try getting anywhere near the log system.
I was told a story about an IT guy who decided to give his wife a full VPN login to the Google network. I should point out that his wife was a Yahoo employee. That did not go over well.
I haven't known anyone who got fired, and I haven't even been on any teams where someone got fired. It seems to be pretty rare - people decide they want to try something else and leave more often than they get fired. But, you know, if you can work at it you can manage it.
What kind of computers do people use at Google? Do you see a lot of Linux machines because you have a lot of tech savvy people, or Windows machines because you want your stuff to work on the majority of the platforms? Is anyone using any Apple machines? From what you've said about Google's management it makes me think you're able to basically choose your own machine, so...what's it like?
Remember that most of Google is either HTML (cross-platform) or backend stuff that doesn't have to work on the "majority of the platforms". Therefore, the vast majority of computers at Google are Linux boxes. They give us a laptop also, and we get to choose between a Mac Powerbook and an IBM Thinkpad. I don't know of anyone who uses a Mac for their main system, though - it might have trouble compiling some of our code, and we're really entirely uninterested in having our server code run on Macs.
I suppose whoever it is that does Mac ports of software might, but I have no idea who that is. And I suspect it'd be a second computer, not their main computer, but who knows, I could be wrong.
I guess I'm not really looking to apply, but I'm pretty interested in the corporate structure. Can you go into any details regarding how the company is structured internally?
The company's structure, at least for engineers, is amazingly flat. The average hierarchy goes like this: Programmer. Tech lead. Manager. Department lead. Larry/Sergey/Eric. That's it. Five levels and you're done. And keep in mind that "Tech lead" is an engineer also, and "Manager" you talk to at most once a week and probably more like once every two months.
They really just give us vague guidance and assume we're competent.
My question is, what kind of source control system do you guys use? Does every team use a standard source control system, or do the team leads get to decide what to use?
I probably shouldn't get into major details on this, but we have one monolithic source control system across the entire company. This lets us link in handy libraries from other projects, and is honestly one of the coolest things about working here - if there's something common you want, chances are good it's already been written.
Most companies split up into one repository per major team, and therefore it would not surprise me in the least if we had the largest single source repository on the planet.
Also read Windows Vista from inside to see how things stand at Microsoft.
{ For an extended digest of the forum thread, go to Google Blogoscoped. For the original discussion, visit Something Awful. }