A curated list of books on Software Architecture and related topics.

Design Patterns: Elements of Reusable Object-Oriented Software

Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides is a seminal work on software design patterns.

It introduces 23 classic patterns that provide proven solutions to common design problems, forming the foundation of object-oriented design.

Design Patterns
book cover
Design Patterns: Elements of Reusable Object-Oriented Software, Gang of Four (1994)

Patterns of Enterprise Application Architecture

Patterns of Enterprise Application Architecture by Martin Fowler is one of the most influential books on enterprise software design.

It catalogs recurring patterns for organizing application logic, persistence, and integration, and it helped define how many teams think about large-scale business systems.

Patterns of Enterprise Application Architecture book cover
Patterns of Enterprise Application Architecture, Martin Fowler (2002)

Clean Code: A Handbook of Agile Software Craftsmanship

Clean Code by Robert C. Martin (“Uncle Bob”) is a highly influential book that emphasizes the importance of writing readable, maintainable, and efficient code.

It provides practical advice, principles, and case studies to help developers improve code quality and craftsmanship, making it a must-read for software engineers at all levels.

Clean Code book 
cover
Clean Code: A Handbook of Agile Software Craftsmanship, Robert C. Martin (2008)

The Software Architect Elevator

The Software Architect Elevator by Gregor Hohpe explores the evolving role of the software architect in modern organizations.

It focuses on how architects can move between strategic business conversations and technical implementation details, while helping teams deliver better outcomes across the enterprise.

The Software Architect Elevator book cover
The Software Architect Elevator: Redefining the Architect’s Role in the Digital Enterprise, Gregor Hohpe (2020)

The C4 Model

The C4 Model by Simon Brown explains how to describe software architecture with a small set of hierarchical diagrams that stay understandable at different levels of detail.

It is especially useful for communicating architecture clearly across teams and for keeping documentation lightweight, consistent, and practical.

The C4 Model book cover
The C4 Model: Visualizing Software Architecture, Simon Brown (2026)

Updated: