Avantages
1. Great office decoration. Very nice to show off to your friends about the working environment. 2. Decent compensation. 3. Great brand value all around the world, immediately respect from strangers once mention your employer name as it's so famous. Also Google brand is useful to land next jobs. 4. Still relevant development technologies, useful to future software jobs.
Inconvénients
Be aware of the Google fairy tale. The reality that I experienced is: 1. The so called "20% project" is already gone. The first day I joined the team, I was explicitly told there is no such thing called "20% project". I was told to focus on this team's jobs. 2. The legend of "developer come up with ideas and had freedom to execute" does not exist. When I interviewed and was in the orientation, in multiple times I was told "Google works bottom up", "Gmail was a bottom-up idea", "you have the freedom to use your time to test out your idea". But the reality is: the boss "suggested" a direction that you "may" work on, it was actually an authoritative direction, an order. I once tried to divert a little bit and have my own direction, then that one incident caused pretty bad half year review. 3. Management is fake, hypocritical: a) they say you can have your own direction and your own creativity, but at the end of the day they judge your performance just like a worker, on how much your "throughput" is b) they say "Google takes a long time to ramp up" but actually they count your output and rate at day 1, not considering the ramp up time. c) they pretend Google had a relaxed culture, but they took notes of exactly what you said and used that months later as bullets against you. 4. Politics, politics: under the disguise of "Google is bottom-up", "Developers in Google are autonomous", there is just tons of politics, power struggle going on. The design meetings become a place for power struggle, and speaking/advocating a design requires taking risk of jumping to the wrong boat.