Pros
- You drive yourself here. If you want to grow, you have to seek out opportunities and prove that your worth. This keeps you motivated. - Tons of interesting projects. There is no dearth of challenging projects that will keep you interested for years. Mobility within the company is easy as long as you are good performer. - You get to work with some very smart people and that makes you perform a notch above. - Management is intentionally less involved in an engineer's life and this avoids micromanagement, bias and single point of failure. This goes with point #1. You are free to define what can be done in your domain (of course you have to sell it). - a lot of basic infra exists and is exceptional. So you don't have to spend too much time on your "means" to the end. - pay for performance: if you are a good performer, you are taken care of. - needless to say, perks are amazing. - at Google you will learn a lot of things and you will learn it from the best. IMHO, I don't see a lot of engineers wanting to learn once they graduate, even from undergrad. They want to be person that build the next biggest thing. It's great if you truly have that skill.
Cons
- Google is a big company. So there are going to be winners and losers when it comes to career growth. Due to the high hiring bar, most people who don't win are smart people as well and their experience sours. This place is optimized to avoid false positives in every step and false negatives are inevitable. At least when you get promoted, you can feel good that you have truly done something. - You have to have skill to find impactful areas or projects or start one in order to grow fast. A lot of people can't or don't want to do that. They want it lying there in a platter in front of them (I don't mean this disrespectfully. I have been there). This is why smaller companies or startups look attractive. It's easier to grow in a less competitive place and there is nothing wrong in wanting that. In my experience, a lot of people who say Google is boring and young & smaller companies are those that are good at building things and solving problems that a thousand other engineers can solve. They just want a place where it hasn't been solved. At google, a lot of your basic services and infra are built. So the problems to solve get substantially more difficult and requires some lateral thinking as well. Again, no disrespect. There are lot of people out there, including me, who would like interesting problems handed over to us. - in a place of this size, you have to navigate some political issues. - in critical systems like search, you can just push new things (rightfully so). It's a process and you have to convince that your feature can be used by a billion people. I'm sure every company would do this.