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 they're 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 code base, superbly structured, continuously optimized, all at your fingertips. * Free great food :-)
Kontras
* 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. You fit with him/her, you're golden; 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 a old-time Googler complaining about the pedantry. "Code review Nazis" are commonplace. From discussions w/ 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 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'll 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.