+ At Google you're standing on the shoulders of giants. They've built the best developer tools and a wealth of great internal documentation for technologies and engineering practices. During my first few months at Google I learned a ton from internal resources and learning about their technical infrastructure.
+ Overall good culture of transparency, giving voice to employees, and trying to make sure employees are happy.
+ Good compensation.
Google is huge, and this has a number of consequences. For one, many engineering teams move very slowly. Lots of red tape, and lots of huge systems to integrate with. Very deep management chains. For an individual contributor, decisions may be made many levels above you and you have very little input or context.
Depending on the team, it can be hard to have meaningful impact at Google. Some systems are so old they are already fully optimized, others are just so large that you're unlikely to touch more than a small piece or sub system. Most engineers at Google aren't solving the worlds hardest/funnest problems--their just manning the ship, making sure things don't break and adding small incremental improvements. Getting into "sexy" product areas is extremely competitive.