system-design

  • Laravel 12, and a starter kit we did not use

    A major release in February that is deliberately almost nothing, and an upgrade guide that fits on a page.

  • Reversing a decision, and reading the original record first

    A decision about to be reversed for the second time, and a record from 2021 that already contained the argument against reversing it. Reading the previous two records…

  • An API versioned for the first time in six years

    Six years of additive-only changes, and a change that cannot be additive. A field whose meaning must change, with four consumers reading it.

  • The VPS that had been running since 2019

    A host provisioned in 2019, upgraded in place three times, and a provisioning script that has never been run against an empty machine.

  • Tailwind 4, and the stylesheet we had already written

    4.0 in January, a CSS-first configuration, and a genuine reason to look again at a decision that had been made three times.

  • A team disagreement that data did not resolve

    Two people with the same evidence reaching opposite conclusions about a tool, which is a disagreement about values rather than about facts. A disagreement that survives agreement on…

  • An on-call rota of three

    A rota of two is not a rota. A third person joined in November, and the gap was everything learned in the shadowing month and never written down.

  • A rota of three, and a handover note

    A third person on the rota, and the artefact that makes a weekly rotation work. Three sections and a five-minute write-up is the whole mechanism, and it is…

  • A cache that was a second database

    A cache holding data that existed nowhere else, discovered during a restart. A flush that lost four hours of user preferences.

  • A deploy performed by a person, on purpose, once a month

    A fully automated deploy that nobody has run by hand in two years, and a rollback path nobody has exercised. An automated path that works is not evidence…