Pros
* Management really values engineers’ time and supports them when they want to pay down technical debt or focus on scalability. * Small teams structure like at Amazon emphasizes ownership and teaches you many skills hands-on— writing the code, deploying, and ops management. (There is on-call for some software engineers, which may be a con for you). * Very seriously takes some of the principles of agile / modern software development, such as committing to and checking-in on betterments from retrospectives, and using “we” phrasing when referring to outages and incidents. "Be Humble" is a corporate value and it is lived out pretty well.
Cons
* Interviews take up a lot of time, 1-2 hrs a day really add up. * Not so good at distributing tasks such that senior engineers aren’t overloaded.