Writing
Blog
Things I got wrong first, written up once I understood why. Mostly notes from shipping real systems: domain modelling, testing what fails silently, and picking defaults that fail in the direction you can live with.
Subscribe via RSSA rule enforced in one place is not enforced
One rule about client money ended up in four places — the domain, a database trigger, a repository translation, and the ordering of two writes. Each answers a different question, and removing any one leaves a system that passes its tests and is wrong on a busy afternoon.
The failures that cost the most are the silent ones
Two chart bars drew in nothing on a page whose figures had already been checked in a browser. A sign-in refusal rendered as ordinary body text. Neither threw, neither logged, and neither was findable by looking — so I started parsing the stylesheet in a test.
The default is the control, not the flag
Making a public demo's affordances conditional took an afternoon. Deciding which way the condition should fail took longer and mattered more — because one direction is a dull afternoon and the other publishes a one-click administrator login.