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.