Uncategorized

  • A type generated from a schema, and the assertion I removed

    Types generated from an OpenAPI document, and a response validated at runtime rather than asserted at compile time. A generated type describes the specification and the specification is…

  • An enum with a from() that had to become tryFrom()

    A backed enum hydrated from a database column, and a row written in 2019 with a value the enum does not have. from() throwing is correct behaviour and…

  • Twelve lines of build script and no dependencies

    A site with four modules, and a build that is a shell script calling one binary. The metafile is what makes the hashed filename usable — something has…

  • The job that ran on every push and needed to run on none

    A workflow job building documentation on every push to every branch, publishing nothing except on the default branch. A conditional inside a job means the job still starts,…

  • 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.

  • The query that runs four million times and takes two milliseconds

    A query fast enough to never appear in a slow log, accounting for a fifth of all database time. A slow query log has a threshold and a…

  • A query plan that was different for one customer

    The same query, the same index, and a different execution plan depending on which customer it is run for. The optimiser switching strategies at a selectivity threshold is…

  • Alerting on the served certificate rather than the renewal

    Monitoring the renewal job answers whether it ran; monitoring the certificate answers whether it worked. The check runs from outside and depends on none of the machinery that…

  • An assertion on a query count that finally broke

    A test asserting fewer than ten queries, written in 2023, failing in July because a legitimate feature added an eleventh. A bound that fails on a legitimate change…

  • Vite 7, and a config that shrank

    A major version in June, and a configuration file that lost four options because they became defaults. A configuration file that shrinks on a major upgrade means the…