Pros
If you are looking to develop excellent distributed systems then amazon.com is the place. Work is amazing. I'm currently involved in developing low latency , horizontally scalable , fault tolerant systems. The work is very challenging. Also the company lets you own what you develop. Starting from architecture , coding , testing , maintaining your software which no other company provides. You will come to know all the aspects of software development.
Cons
1. Work pressure is a little high but manageable. 2. On call support is little tough. 3. Salary hikes are not good. But definitely the experience is very useful if you want to move. 4. Intellectual talent of the candidates varies a lot. You can find people who are very good to not so good. But for good people the work is definitely going to be very good.