Currently I’m thinking about moving to a software architect role. Designing systems has been a passion of mine since I started to write software.
That’s why I’ve asked the HN community which are some of the best resources to learn software architecture. If you are in this situation too, you might find the following links of interest:
- The Architecture of Open Source Applications: the authors of four dozen open source applications explain how their software is structured, and why.
- The System Design Primer: learn how to design large-scale systems.
- Designing Data-Intensive Applications, by Martin Kleppmann (2017).
- Path to a Software Architect.
- Awesome scalability: the Patterns of Scalable, Reliable, and Performant Large-Scale Systems.
- Cloud Design Patterns useful for building reliable, scalable, secure applications in the cloud.
- Software Architecture: Perspectives on an Emerging Discipline, by Mary Shaw, David Garlan (1996).
- Software Architecture in Practice, 3rd Edition, by Len Bass, Paul Clements, Rick Kazman (2013).
- Software Architecture: Foundations, Theory, and Practice, by Richard N. Taylor, Nenad Medvidovic, Eric Dashofy (2008).
- Software Architecture: Organizational Principles and Patterns, by David M. Dikel, David Kane, James R. Wilson (1994).
- Design and Use of Software Architectures: Adopting and Evolving a Product-Line Approach, by Jan Bosch (2000).
- MIT Open Courseware: System Architecture. This course covers principles and methods for technical System Architecture.
- Developer to Software Architect. Here Mark Richards offers resources and guidance in the journey from developer to architect.
- The Amazon Builders’ Library: how Amazon builds and operates software.
- Tech talks at Google.
- Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives, by Eoin Woods, Nick Rozanski (2005).
Also, make sure to read the original thread because it contains valuable insights and advice from the HN community.