Level 1: Engineering Foundations
Make changes cheap: spot duplicated knowledge, hidden coupling and irreversible decisions early. Level 1 of 11: 8 lessons on engineering foundations.
Outcome: Make changes cheap: spot duplicated knowledge, hidden coupling and irreversible decisions early.
Habits that separate engineers who build systems that last from those who build systems that rot. We meet ShopFlow as a one-developer Spring Boot app and learn the pragmatic ideas that keep it changeable.
The pressure on ShopFlow: One developer ships fast, but every new feature takes longer than the last.
Lessons in level 1
- Meet ShopFlow: The System You Will Architect — One small Spring Boot app, five years of growth, and the questions architects ask at every step.
- DRY Is About Knowledge, Not Code — The same business rule in three places is a bug waiting to happen — but similar-looking code is not always duplication.
- Orthogonality: Change One Thing, Break One Thing — Coupling, cohesion and designing parts that can change independently.
- Contracts, Assertions & Crashing Early — Defensive programming done right: fail loudly at the boundary instead of corrupting data quietly.
- Tracer Bullets & Prototypes — Build a thin end-to-end slice first, and throw prototypes away on purpose.
- Reversibility: Don’t Bet the Company on One Decision — Keep expensive decisions reversible with seams, abstractions and configuration.
- Debugging Like an Engineer — Reproduce, isolate, hypothesise, verify — a repeatable method instead of guessing.
- Automate Everything: Version Control, Builds & Pipelines — If you do it twice by hand, the third time it will go wrong.
Source books
- Pragmatic Programmer — David Thomas, Andrew Hunt
- Clean Coder — Robert C. Martin