Pluspunten
The quality of my co-workers is phenomenal. You can be sure that any idea you might have will be thorougly analyzed and considered. People are friendly, intelligent and in the vast majority of cases very easy to get along with. The infrastructure that Google has built up really frees the programmer from a lot of fundamental worries and allows him or her to concentrate on solving the high-level problem. The available tools make accessing a tremendous amount of computing power very straightforward. I have always been satisfied with my managers trust me when I say I need to take time off or work from home. It is very liberating to know that your manager supports you when you need this kind of latitude because of things happening outside work.
Minpunten
I believe that the quality of the middle management leaves a lot to be desired. I find the quality of middle managers to be extremely variable. I believe some managers do not actively contribute to a good outcome for the team. Also, I believe that Google is not good at weeding out those managers who do not perform well. Google's "slotting" process is terrible. I know many instances of people who have applied for positions that interest them, only to be "slotted" into positions which they do not like. Once you are slotted, it is very difficult to move out of your position. It could take months, maybe even a year or so. Also, these same middle managers have sole control over your quarterly evaluation. These evaluations feed into your annual bonus, so if you are incorrectly slotted and do not perform to the best of your abilities, then you are triply penalized: your evaluations will be poor, your bonus will go down and it will become harder for you to transfer to another team.