Senior craft
Start lesson 1
This series is a roadmap for senior software craft. It covers the ideas you need in order: complexity, modules, trade-offs, domain language, consistency, debugging, and requirements.
When you’re done, you’ll be able to:
- Name what is making a system hard, instead of drowning in details
- Split a design into a handful of boxes and defend the seams
- Pick a path under incomplete information and say what you’d watch
- Debug with a hypothesis, and catch edge cases as you go
Work the lessons in order. Talk out loud. Sketch on paper. Don’t reach for autocomplete until the drill is done.
What you’ll learn
Section titled “What you’ll learn”- 01 Complexity — the real problem is not “more code”
- 02 Working code is not the bar — tactical vs strategic
- 03 Deep modules — hide information, expose a small interface
- 04 Together or apart — how to draw the boxes
- 05 Errors — design special cases out of existence
- 06 Design it twice — name the trade-off
- 07 Model out loud — a shared language for the product
- 08 Aggregates — who owns a write
- 09 Hypothesis, then tests — stuck is a process, not a panic
- 10 Requirements and NFRs — clarify, then go one layer deep
10 lessons, in order
Section titled “10 lessons, in order”01 Complexity is the real problemSpot change amplification, cognitive load, and unknown unknowns—then talk about them without a dump of trivia.
02 Working code is not the barInvest just enough in structure so the next change is cheap, without gold-plating.
03 Deep modules, hidden informationA small interface that hides a lot of work beats a pile of shallow helpers.
04 Together, apart, or push complexity downSplit a whiteboard into 6–10 boxes with seams you can defend.
05 Define errors out of existenceTreat edge cases as design work, not a dump at minute 59.
06 Design it twice, name the trade-offIncomplete information still needs a pick, a cost, and what you'd watch.
07 Model out loudEntities, values, and a vocabulary you can share while designing.
08 Aggregates and boundariesDecide who owns a write, what is consistent together, and what can lag.
09 Hypothesis, then testsWhen you're stuck, say what you're checking next. Cover edges as you build.
10 Requirements, NFRs, good enoughClarify the job, name non-functionals, draw the boxes, then one deep dive.
Book tracks
Section titled “Book tracks”After the craft series, go deeper one book at a time.
Domain-Driven DesignA full-book study guide: language, building blocks, insight, patterns, contexts, core, structure.