This is an excerpt of an answer posted on Rooftop Slushie. You can check out the full answer here.

I worked for Google for 3+ years so I will give some pros and cons based on my experience.

Pros of Working at Google

  • Better Job Prospects. Google is one of the most well-known technology companies in the world. If you have Google on your resume, you can get job interviews from any other companies easily.
  • You can work on something more difficult. For Google's scale, there aren't too many low hanging fruits like a mid-sized company. There are tons of difficult and interesting problems given Google's scale. As we know, improving and scaling the existing solutions is much harder than build something from scratch.
  • Helps to foster a good engineering habit. The code reviews at Google is more strict than other companies because a) the reviewer needs to make sure the design code is good, and b) the readability of the code should be great as well.
  • Google's infrastructure is the best across all companies. Internal tools are very easy to use. If you are an application developer, there's a rare need to consider the problems of the infrastructure. You can focus on the business logic.


Cons of Working at Google

  • Hard to get promotions. Sometimes you may need to follow the "routine". Basically "meet the expectation" at first cycle, and "exceed" at the second cycle. It will be pretty hard if you want to break this and get promoted faster.
  • Trains you to build a great scalable solution. On the flip side, if your solution can't scale to Google's production level, you don't even get to build it in the first place as you won't pass the initial review(s). As time goes, Google engineers lose the understanding of “don't over-engineer”. Everything at Google is over-engineered for at least 10x, just in case the user volume reaches there.

    As you can imagine, when I first left Google and joined the startup world, I got a culture shock. 'Oh you mean, I can actually build a crappy solution first?'
  • Many Google tech employees are isolated from the outside tech world. For example, don't be surprised if you talk to a Google engineer and s/he has never heard of Slack.
  • More legacy code in some teams. It's a pain to touch the old codebase and fix the bugs inside them.