On the minus side, the company is very, very strict, particularly around its codebase. For each language, there is an extensive set of coding guidelines (actually rules) covering even minute issues like spacing. And it's actually enforced. If you're looking for a high-trust environment, or just some elbow room to do things your way, stay the heck away.
The company is also very bureaucratic, particularly around hiring and promotion. Promotions are done by independent boards, based on extensive documentation (the "perf packet") provided by the candidate and his manager/lead. At this point, these packets are hefty enough to beat a man to death with. To submit code, you'll also need to get certified for "readability" in each language you will be working in, a process that takes months.
Finally, I'd say Google has a bit of false consciousness around what sort of culture they actually have. They want to think of themselves as a free, loose sort of place where people are empowered to look for problems and go fix them. That's why they still have 20% time, for example. In truth, what you'll be rewarded for is doing what your boss wants, to his satisfaction; everything else is at best marginal. And you know, I think the employees know that, since 20% time is taken by less than 5% of the engineering staff. A culture of "do what your boss tells you" isn't bad of course; what it is, is ordinary.
So, some big pluses, oh yeah, but some big minuses too.