Just another brick in the wall. Good to learn, but don't forget to leave in time.
Pros
- You can gain knowledge and experience of being a part of huge corporation and ambitious projects - A lot of smart people to learn from
Cons
- Rush - it is all about deadlines. First, unrealistic deadlines will be set, then all corners will be cut to meet them. - Horrible code quality - be prepared to spend most of your time going through piles of rotten legacy spaghetti code. There is no culture or mechanisms to keep code quality high. - There are many great engineers at Amazon, and many many more mediocre and bad ones. - No time to experiment or learn - Broken promotion process - promotions do not follow your good work. If you want to get promoted, you need to spend time learning promotion process and how to make your work look good for promotion. Also, most important, you need others to like you . - Huge bureaucracy - everything is very formal and slow - Decline in salary - after 4 years at the company salary falls from a cliff (mine is down about 30%)