Pros
The food is, in general, great, and the number of cafeteria options is ridiculous. There's always something interesting going on--it is a treat to see all of the invited authors and politicians that drop by and give talks. As an engineer it is relatively easy to switch projects, at least if you have a manager who is on your side. There are many smart people at Google, and you will learn a lot from them. In general, the engineers at Google are quite nice and easy to work with. You meet the occasional bad apple, though. It is quite gratifying to learn the inner-workings of products used the world over.
Cons
As the company has grown bigger, it has become more siloed--groups are segregated off into their own buildings, and inter-group communication lessens. As a result, the diversity of the people I interact with regularly has lessened by the year. The promotion process can seem arbitrary--a secret committee reviews your information and makes a decision. You receive very little feedback about the process and have no opportunity to present your case to the people who make the decision (other than by writing a "self-assessment" before the fact). Recently there seem to have been an increasing number of cutbacks in the name of reducing company expenditures, I suspect mostly due to the fact that company growth has exceeded revenue growth in recent years. The company has grown more faceless and bureaucratic as it has gotten bigger. It is easier to feel like a cog in a machine now than it was in the past. Many projects seem overstaffed due to the rapid growth of the company.