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.
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.
The decisions that are expensive to change — how architecture differs from design, the four dimensions of architecture, and why every choice is a trade-off.
✦ Complete · ⏱ 4 min 2 · Beginner Architecture vs DesignWhere the line between architecture and design actually sits — and why locating a decision on that spectrum tells you who should make it.
✦ Complete · ⏱ 4 min 3 · Beginner The Architect's RoleThe eight expectations of an architect, why breadth beats depth, and why roughly half the job is people skills.
✦ Complete · ⏱ 4 min 4 · Beginner Thinking in Trade-offsThe First Law of Software Architecture in practice — why every answer is 'it depends,' and how to analyse benefits against trade-offs.
✦ Complete · ⏱ 4 minArchitecture Characteristics
The “-ilities” that shape a system — identifying, prioritizing and measuring the architecture characteristics (availability, scalability, performance…) that drive every structural choice.
What an architecture characteristic is, the three-part test that qualifies one, and the categories of -ilities a system must support.
✦ Complete · ⏱ 4 min 6 · Intermediate Identifying Architecture CharacteristicsHow architects uncover the driving -ilities from domain concerns, explicit requirements, and implicit domain knowledge — without over-specifying.
✦ Complete · ⏱ 4 min 7 · Intermediate Measuring and Governing CharacteristicsHow to turn vague -ilities into objective measures, and how to govern them over time with fitness functions so the architecture doesn't decay.
✦ Complete · ⏱ 4 minComponents & Modularity
Carving a system into parts — components and coupling, connascence and modularity metrics, and identifying component boundaries.
Components as the architect's primary building block, and the afferent/efferent coupling that measures how they depend on one another.
✦ Complete · ⏱ 4 min 9 · Intermediate ConnascenceA precise vocabulary for HOW two components are coupled — static vs dynamic connascence — and the three properties that guide refactoring toward weaker forms.
✦ Complete · ⏱ 4 min 10 · Intermediate Identifying Component BoundariesAn iterative process for discovering components, the entity trap to avoid, and how the architecture quantum decides monolith vs distributed.
✦ Complete · ⏱ 4 min 11 · Advanced Modularity and MetricsWhy modularity matters even when nobody asks for it, and the cohesion and coupling metrics — LCOM, abstractness, instability, distance from the main sequence — that make it measurable.
✦ Complete · ⏱ 4 minEvolutionary Architecture
Architecture that changes safely — fitness functions, incremental change, and guarding the important characteristics as the system evolves.
Architecture that supports guided, incremental change across multiple dimensions — and why evolvability is the meta-characteristic that protects all the others.
✦ Complete · ⏱ 4 min 13 · Intermediate Fitness FunctionsObjective, automatable integrity checks for architecture characteristics — the categories they fall into, and how they turn governance from aspiration into enforcement.
✦ Complete · ⏱ 5 min 14 · Advanced Incremental Change and DataHow deployment pipelines, feature toggles, and database evolution patterns let an architecture change in small, safe, reversible steps — including the hardest dimension, data.
✦ Complete · ⏱ 5 min 15 · Beginner Architecture Decision RecordsHow to capture, justify, and communicate architecture decisions as ADRs — overcoming the three decision anti-patterns by recording the why.
✦ Complete · ⏱ 5 min🏛️ 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.