Ok, before we go any further one important fact needs to be stressed - working for Google is an awesome job.
As well as getting paid a ton of cash - even if you're an intern - you get free haircuts, massages, gym and game room access, laundry facilities, on-site medical staff... the list goes on.
It's hard to get promoted quickly, since the person above you as well as at your level both have great educations and strong work ethics. When it's standard to be awesome, and the work isn't particularly tough to begin with, it's hard to differentiate.
I often say Google has a great problem: Too many outstanding people. For example, when I left, my direct reports were outstanding, my boss was outstanding, my peers were outstanding, my boss's boss was outstanding, my boss' peers were outstanding.
I used to joke with my colleagues that Larry & Sergey go out on their yachts - tie them together, sit back on the same recliners you'll find on their jumbo jet, each on his own yacht/set of yachts, smoke cigars, and put up pictures of Googlers with little snippets like "was a GM at muti-national telecomm company, got a Harvard MBA and is now answering Orkut tickets." and then they would erupt in laughter and clink their cigars & Scotch together in celebration. This, of course, is highly unlikely given neither of them would ever smoke a cigar or drink Scotch. Remainder is plausible.
When everyone is stack ranked against each other, someone has to be on the bottom or in the bottom half. For many bright people who had always been at the top in whatever venture they attempted, occasionally getting stack ranked at the bottom was a painful experience.
There are of course a couple of other issues raised.
It's rubbish if you're a temp:
As someone who has worked for a temp job working for Google, the worst part is the smug attitude of those who work for the REAL Google. They seem to think that anyone who isn't working for the actual Google like they are is somehow mentally and morally inferior.
It's simply too big:
Hardly unique to Google, but I miss the lightness and speed of programming on smaller projects.
Your boss is rubbish:
The worst part about working at Google is the same worst part about working at any other company - some managers are good and some managers aren't good and your experience really depends solely on that aspect.
Overcrowded -- 3-5 people in a room creates a very stuffy environment that is hard to work in. Each person had 2-3 very large monitors, wonder why…??
But most shocking of all:
Occasionally they would overcook the Beef Wellington in Cafe Royle.
The horror of it....