Avantages
Amazon is a very healthy, growing company and if one wants to work in the Amazon Web Services division it is growing very rapidly and is a good resume experience-builder for younger developers. Overall, I have had excellent cooperation from management in having a flexible schedule and support in managing difficult family matters; While not as cutting-edge as Google in many respects, Amazon does tend to make use of recent technologies and moves along technically at a fair clip in most areas.
Inconvénients
There is very, very poor support for growing developers technically - virtually no formal training available: if you don't pick up new skills by yourself, you will not be getting any assistance in acquiring them from the company. Highly chaotic development environment with constantly shifting priorities and - from an engineering standpoint - very little formal process. Younger developers (whom Amazon courts heavily) do not get an adequate picture of what good software development practices are like, and are very likely to have severe culture shock when they move on to companies with better development shops. There is far too much emphasis and praise heaped upon the developers that engage in "heroic" efforts while the people who perform consistently and steadily are virtually ignored. Also, it is very difficult to get a promotion at Amazon: the process for it is overly political. The development tools and infrastructure at Amazon can be very cumbersome and frustrating to work with. Amazon is really behind the curve in developing sustaining and operational teams for software and software services, placing an undue burden on developers, impacting their primary development work. Any developer should be aware that there will almost certainly be a frequent on-call obligation for them in which they are chained to a pager 24x7 for a week. For many of the smaller groups, developers end up being on-call for 1 week in every four.