architecture

  • Publishing a shared lint config for a team

    turkerdev/kbox-eslint-rules, and four repositories with four nearly identical configs that disagreed on eleven rules.

  • A plugin that took over what the theme used to do

    A theme reduced to templates and styles, and functionality that moved into a plugin — which is where it belonged. The rule that fell out is that anything…

  • The API version that was finally decommissioned

    Version 1, deprecated in March 2025 with a sunset date of December, switched off in January. Nine months of overlap and the date still moved by a fortnight,…

  • Reviewing code I did not write

    Review as the skill that matters, and a volume of code that needs it. A change that looks right, passes, and is subtly wrong.

  • A plugin with no admin screen

    A plugin whose entire configuration is a constant and a filter, on a site whose deployment is a pipeline.

  • The settings screen I did not build

    A plugin with three configuration values, deployed by a pipeline, and a settings screen that would have had one user. A settings screen exists so somebody without deployment…

  • Reading from a replica, and the request that must not

    Two years of read splitting, and the twelfth place that had to read the primary. Naming the two reads differently is what keeps the count knowable — twelve…

  • A single binary against a runtime, costed

    A recurring proposal to move a service to a compiled language, costed properly rather than argued about. The performance difference is real and is irrelevant to the caller,…

  • A module boundary that had quietly merged

    Two modules with a layer rule permitting each to depend on the other, which is not a boundary. A rule that permits a cycle is a rule that…

  • The backup that had to leave the building

    Every backup in one provider’s object storage, and a disaster recovery plan that assumes the disaster is local.