Skip to content

Developer Experience (DX)

The inner loop — clone, install, run, change, see — is the cost paid every minute of every cycle. Friction here compounds, silently, across years. Sharpness here compounds the other way.

Owners: Tech Lead, Developer Phase it lives in: How We Build (Volume IV) The corpus principle this enacts: Every cycle's small wins compound.

Where it lives in the chain

How to do this

  • Practice — the README's "run locally" instructions are dated and tested. A new dev follows them on day 1; if they can't, the README is the next bug.
  • Practice — type safety is on by default. Lint warnings are errors; warnings nobody fixes are noise the team learns to ignore.
  • Practice — hot reload, fast tests, fast type-check. The inner loop is under 5 seconds; anything slower changes behaviour (devs stop running tests locally).

What good DX looks like

StepGoodSmell
Clone → runningUnder 10 minutes, no DM neededDay-long onboarding, multiple .env requests, "ask Esti for the secret"
Save → seeUnder 2 secondsManual restart, full rebuild, browser refresh
Run unit testsUnder 30 secondsTests skipped because they're slow
Type checkContinuous in IDE"Run tsc to see if it compiles"
LintAuto-fix on saveManual reformatting, style debates in PRs

The Tech Lead owns DX the same way the Designer owns the design system. Both produce invisible compounding. The team that has good DX produces more cycles per quarter — not because anyone is working harder, but because the cost of being a developer in this codebase is lower.

200apps · How We Work · NWIRE