Pros
Good Salary Broad range of technologies Challenging problems Good health benefits Flexible teams that can(for the most part) choose tools and processes that are suitable for them and their environment. It is very easy move to another team if you are unhappy or unchallenged. I started at Amazon to broaden my technical skills, increase my salary and work on exciting technology and challenging projects. So far(~1 year in), I made the right choice. I'm surrounded by smart people with amazing insights into a large array of tools, technologies and difficult problems around scale, customer service, and security.
Kontras
Very few "extras", as compared to other large software/internet companies. Smart people aren't always the easiest to get along with. I've found that a high number of Amazonians lack good social skills and ability to function well on a team. Seattle-centric culture. Varies from team-to-team. Dev managers tend to act more as TPMs, focused on delivery rather than team development, and in some cases choose aggressive delivery over quality.