Always challenging, and exciting place for software developers
Pros
The Amazon environment is fast moving and purposely tries to keep a startup kind of feel. Teams are largely independent, and responsible for themselves. Your contributions as a developer, can have immediate impact on customers, code can go from a developers desktop to working in production in just hours. The company values and mission statement aren't just aspirational clap-trap, but affect day to day activities, and decisions.
Cons
Amazon has a startup feel, which has some draw-backs. Like real startup companies, the job will gladly consume your life; the priority of projects change rapidly; everyone fills multiple roles; the fast moving nature can be exhausting to try to keep up with; spending is tight; frequently delivering quickly is used to justify bad engineering.