Pros
My previous job was full of time-serving pot plants, so my bar was pretty low after that, but coming to Amazon felt like a night and day improvement for a number of reasons. My standard answer when people ask me if I like working at Amazon, my answer is "the idiot ratio is low". You will be working with smart, committed people and spend a much smaller amount of time dealing with idiots than I have experienced in the past. I've now had 3 managers, 2 of which were awesome and 1 whom I think should not be a manager. One good thing about Amazon is that it's pretty easy to switch teams (after you've been in a team for a year). This allowed me to move to a manager and organization that I trusted. Amazon is very good at focusing on things that matter (hence the title of my post). The leadership principles are used every day and that is really helpful if you're a software developer to prevent people from wasting time on things that are 'cool' but don't have an impact on the real world. Yes, it means you don't get to spend lots of time refactoring code or using the latest fad NoSQL database but it does mean that that you're forced to try and maximize your impact on the customer. In the long run I feel like doing a job where your work feels valued is better than having a perfectly architected codebase.
Cons
The horror stories are true if you have a manager/org who is a slave driver. Upper management is pretty ruthless in not investing in things that don't have a direct financial impact. Hence, internal tools and development environments can feel very underdone. The oncall/pager duty situation for some teams is out of control and means you can never make any forward progress. These teams are few and far between but from my observations they are the ones with enormous turnover.