Pros
As a young Software Engineer, there aren't many places that will pay you like Amazon. The pay is very, very good. Figured I would get that out there up front. I have a good deal of freedom with my job, and with small exceptions, I haven't been overburdened with long hours, either. From talking with other employees from other teams, and reading these reviews, I think it is somewhat the luck of the draw with Amazon - because teams are very independant and decentralized, your experience with one team can be wildly different from another. Luckily, I believe I am on a very good one. Management has been great, in my experience. My manager is a coder/manager, so while he isn't the best project manager I've ever worked with, he works very hard to understand what is going on at a low level with the team, without micromanaging. I rarely have had to deal with upper management, and when I do, the experience has been positive. Work/life balance has also been good. My team is very understanding and somewhat liberal when it comes to giving time off when necessary. The schedule is also very flexible, we can come and go as we please, work from home when necessary, etc. Amazon's recruiting process brings in the best and brightest. I have yet to meet an SDE at Amazon tha I thought "slipped through the cracks" and didn't belong. Everyone at the company seems capable of contributing at a high level.
Kontras
As most SDE's at Amazon will point to - pager duty. I fully support the concept of ownership and supporting the software you write. The downside to oncall duty at Amazon is that much of the software is legacy code that was written long before you (or anyone on your team) was there, so debugging it can be a hassle. Also, some smaller teams share pager duty, and while this means you are oncall less often, it also means that you can end up supporting code you know nothing about. Amazon's mantra of frugality slips a bit too far into the benefits. While the pay is very good, the benefits are not. There is no tuition reimbursement, 401k is sub par, and the health care is not cheap. While overall the decentralized nature of the company is a positive, it can be difficult to work with other teams. If you need something done on their end, but it is low on their priorities....tough. This can be frustrating as deadlines come very fast.