How is software developed at Amazon?

Key tenets Amazon follows to ensure its obsessive customer focus:

  • Decompose a monolithic organization into small, autonomous teams that own each service or product end to end.
  • Deploy in a pessimistic fashion, constantly looking for problems.
  • Deploy on a small scale, so that you can rollback in case of failure and expand only if successful.
  • Start every project with a threat model and have it reviewed by a security engineer; also seek peer feedback before committing to a build.
  • Architects do not develop the architecture of a project; developers on each team do.
  • Plan from the bottom up, because teams closest to the product know best what the customer wants.
  • Accept that keeping teams independent can result in occasional duplication.

Full video here, 41 mins watch time