Software Engineer II • Current Employee
Pros: The single most important factor for me is that you can learn a lot here. You can meet many great people who contributed a lot to CS in general.
When you want to improve your skills in a particular area, you can join the team that works on that area. Also, the codebase is huge with multiple examples of great engineering.
Google has some internal learning classes, etc., but I didn't find them as useful as the people, projects, and the codebase.
Another thing is the "hackability." With the tools we have, it's very simple to start hacking on something, and you can focus on solving problems. If you have an idea that you want to try, often you can have something ready within a day or two with no frustrations from fighting the tools all the time.
Cons: I think that internal mobility could be improved. It's easy to start to work on something as 20%, but when it comes to 100%, it's a bit tricky. That means you can get stuck for a while in a project that you don't really like.
Also, there is a certain degree of bureaucracy. Maybe it's just me, but I hate creating tickets and filling e-forms. Whenever you want to request something, you need to do those things.