The Architecture Reference

The ground floor

Software Architecture Foundations

Architecture is the set of decisions that are hard to change later. This track builds the mindset: how architecture differs from design, the architecture characteristics you must identify and prioritize, how to carve a system into components, and how to keep it evolvable with fitness functions.

Your foundations progress

Mark a topic “learned” on its page and watch the bars fill.

Skill map

Learned nodes light up — the glowing one is your next step. Click any node to jump in.

Thinking Like an Architect

What architecture really is — the difference between architecture and design, the architect’s expectations and soft skills, and why every decision is a trade-off.

Architecture Characteristics

The “-ilities” that shape a system — identifying, prioritizing and measuring the architecture characteristics (availability, scalability, performance…) that drive every structural choice.

Components & Modularity

Carving a system into parts — components and coupling, connascence and modularity metrics, and identifying component boundaries.

Evolutionary Architecture

Architecture that changes safely — fitness functions, incremental change, and guarding the important characteristics as the system evolves.

🏛️ There are no best practices — only trade-offs

Every architectural decision buys you one quality at the cost of another. The job is not to find the “right” architecture but to understand the forces, make the trade-offs explicit, and record why. Start by naming the characteristics that matter most for this system — everything else follows from them.