"Understanding Software Architecture" is a practical and visual guide for developers who want to understand the architecture of modern systems and learn to make informed technical decisions. The course helps broaden the perspective on design — at the system-wide level, rather than individual modules or services.
What you will learn from the course
The material is based on real examples, engineering cases, and a step-by-step process for making architectural decisions. You will understand why architecture determines the scalability, maintainability, and development of a product, and you will also learn to identify architectural problems before they become costly mistakes.
Key Topics
- How the architecture of modern software systems is structured.
- Common architectural mistakes and ways to avoid them.
- Trade-offs when choosing approaches and technologies.
- Analysis of real engineering incidents and unsuccessful decisions.
Architectural Thinking Process
A separate section is dedicated to the author's 5-step Architectural Thinking Process, which helps turn vague business requirements into clear, justified, and defensible architectural decisions.
Topics covered in detail in the book
- Working with legacy systems and their modernization.
- API-oriented and event-driven architectures.
- Modern architectural styles: microservices, hexagonal architecture, cloud native, serverless.
- Using AI as a tool to enhance engineers' efficiency.
Who the book is for
The material is aimed at junior and middle software developers, as well as developers looking to transition to the role of software architect. Code examples are provided in popular languages: C#, Java, Python, and JavaScript — making the course accessible and useful for a wide audience.