Vantaggi
Amazon.com is an amazing place to learn. The decentralized, self-starter atmosphere strongly supports and encourages people who are motivated to try new things. In just months of being here, you'll end up having responsibilities that most companies wouldn't hand off from the legions of middle management for years. You're able to touch every aspect of the business, from the actual business side (TCO, business justifications, cost/benefit analysis, etc), to the deeply technical side (even all the way to choosing whatever technology, language, and platform you like). Every role has a huge amount of autonomy and responsibility. Additionally, there are no middle-management drones here. Every person I've met here is top-notch; blisteringly intelligent and an extremely valuable asset to the company. Like most companies, there are some folks who might do better in other roles... but I've been overwhelmed by just how GOOD these people are. Coming from a different company where a lot of people just "coast", this is a nice, refreshing change.
Svantaggi
Unfortunately, that "decentralized, self-starter atmosphere" can also be chaotic, frustrating, and wasteful. While it's wonderful that we all have total autonomy to determine what platform, language, and technology to use at every turn... do we really need to spend the next two months rewriting a build system? Or an issue tracking system? Or a multicast protocol? Really? These problems have been solved already, and there's no need to go back and reinvent the wheel. The decentralization, coupled with a focus on autonomy, leads to a strong "roll your own" syndrome. We end up with sometimes as many as twenty different solutions to the same problem, each slightly customized for a given team and unusable by anyone else. Amazon requires patience, and an ability to sift through the chaos to focus on what's necessary. If you cannot prioritize your own workload, you will not do well here.