Pros
smart peers; decent problems to solve; loads to learn; decent compensation; good perks
Cons
though there are ton of good problems to solve in good projects, the good work is reserved for L5+ engineers as they need complex work to get promoted managers assign responsibilities based on what is required to ensure people get promoted to next level and not because they are interested in solving the problem or they have the ability to solve the problem; you have to make your manager happy to get good work; the promotion process is totally crap people do the wrong things to get promoted; people don't do the right thing because it won't help with promotion; some people become people manager just to grow and not because they are interested in managing people