Avantages
Great tools for programmers. A lot of them are very proprietary, but the concepts are there, and the whole software ecosystem meshes together well. Some really smart people scattered throughout the company. I've learned a ton being here. If you find the right team, you can build products that customers love and have some say in how they're built. If you find a small team that's missing say a project manager, you get the chance to take on different roles. The "leadership principles" - while receiving a lot of scorn from some employees - are awesome guiding principles for how to act. They're burned into my brain for the rest of my life.
Inconvénients
Lots of crappy programmers. Blind leading the blind means many college hires get indoctrinated with bad practices Here's your choice of teams: - Small agile teams that are building cool products quickly - Massive orgs that have built themselves into corners and make every simple task take days to get right - Teams owning some of the oldest software in the company with crazy high attrition rates (think avg 6-8 months) - Teams that grew too fast and have 10 awful hacks for every good programmer, causing nightmares for whoever's on call If you're looking to work at Amazon, you NEED to talk to the manager/coworkers on the team you're being hired for. If they look defeated and sad, look elsewhere!