1. A Philosophy of Software Design — John Ousterhout
  2. Clean Architecture — Robert C. Martin
  3. Clean Code — Robert C. Martin
  4. Code Complete — Steve McConnell
  5. Designing Data-Intensive Applications — Martin Kleppmann
  6. Domain-Driven Design — Eric Evans
  7. Domain-Driven Design Distilled — Vaughn Vernon
  8. Implementing Domain-Driven Design — Vaughn Vernon
  9. Patterns of Enterprise Application Architecture — Martin Fowler
  10. Refactoring — Martin Fowler
  11. Release It! — Michael T. Nygard
  12. The Pragmatic Programmer — Andrew Hunt and David Thomas
  13. Working Effectively with Legacy Code — Michael Feathers