Software Engineer II • Former Employee
Pros: Opportunity to work with the smartest people ever. Having collaborated (to varying degrees) with quite a few Googlers, I can certainly say Googlers are "la creme de la creme".
Not only are they smart, but they're dedicated 120% to their work. (The 20% is for the weekends...) "Great is not good enough" for each and every Googler.
Fantastic development tools:
* Code Search
* The code review tool
* The versioning tool
* And N others
Opportunity to work on products that will be used (directly or indirectly) by millions of people.
Amazing codebase, superbly structured, continuously optimized, all at your fingertips.
Free, great food :-)
Cons: Very long hours. At least where I was, people would seriously work 12-14 hours a day, out of which 90% would be effective hours, churning away tons of code.
Peer reviews, while apparently treated seriously, are in fact a half joke. Your manager is your God. If you fit with him/her, you're golden; if you don't, you're dead meat. Most managers seem at least alright; however, I apparently got very unlucky.
Code reviews. I have heard many an old-time Googler complaining about the pedantry. "Code review Nazis" are commonplace. From discussions with other Googlers, it seems the transition from "this doesn't break anything and doesn't embezzle funds" to state-of-the-art torture has happened over the past couple of years. This hurts productivity big time, and given that you're still expected to have completed a ton of work, guess what happens? Yeah, you got it: you will leave past midnight and work from home during the weekends to barely meet expectations.
The "transfer to any project any time you want" is an absolute myth nowadays.
Caution: from informal discussions, it seems that I really got the short end of the stick, and that in other parts of Google things are much smoother. YMMV.