architecture

  • The anti-corruption layer that needed a second mapper

    One supplier, two API versions running simultaneously during their own migration, and a translation layer built for one shape. The layer had assumed one upstream shape at a…

  • A year of an assistant in the editor, measured

    A year of using a model-backed assistant, and an attempt to say something specific about it. Every claim about this is a demonstration or a complaint.

  • Managing WordPress entirely through Composer

    turkerdev/wp-composer, and an install where nothing is committed except a lock file. Core, themes and plugins as dependencies.

  • A build with no bundler

    A site with 18 KB of JavaScript and a build pipeline sized for something larger. What a bundler provides, listed, and which of it is needed.

  • A Node script that stayed a Node script

    A build tool in JavaScript inside a PHP repository, examined for whether it should be rewritten and left alone. A tool written in the language of the artefacts…

  • Symfony 7.3, and a component used without the framework

    One component in an application that does not use the framework, which is what the components are for and is easy to forget. A migration tool that must…

  • The PSR-18 client I wrote for one API

    A supplier API with a signing scheme, a rate limit and a pagination style of its own, and the same four concerns implemented in three places.

  • A rate limit in nginx that should have been in the application

    A limit keyed on the client address at the edge, protecting an endpoint whose consumers are authenticated and identifiable. The edge knows the address and the application knows…

  • A dead letter queue that reached zero

    A dead letter queue that had held between forty and eight thousand messages since 2019, empty for the first time. An empty dead letter queue is not the…

  • Two years of query logs, read once

    A slow query log rotating for two years and never aggregated, and performance work driven by whoever complained loudest.