Uncategorized

  • A generator that made a report fit in memory

    A monthly export building a four hundred thousand row array before writing a single byte. The generator only helps if the source is also lazy — a cursor…

  • An LTS release model, and what it changes about planning

    MySQL moving to long-term-support and innovation tracks, which changes the upgrade question from when to which. The innovation track is for people who want a feature now and…

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

  • An API that had two clients and three shapes

    One endpoint, two consumers, and a response that differs by header. Three serialisation paths for one resource, two of them accidental.

  • Message payloads that had grown to 200 KB

    A message carrying the full order including every line, every address and the customer record, because it was easier than a lookup. Fat messages are defended as avoiding…

  • Interactivity, and the JavaScript we stopped shipping

    6.5 ships a shared runtime, and our blocks each carry their own script. 140 KB of JavaScript on a page with four interactive blocks.

  • require(esm), behind a flag, and why I waited

    Node 22 can require() a synchronous ES module behind a flag, which resolves the split that has made dual publishing miserable. A feature that helps only when the…

  • Handing over on-call to one other person

    One person who can fix anything, and a rota of one. Three years of incidents resolved by the same person, every time.

  • Health routing, and the check we already had

    A framework health route that returns 200 if the application boots, next to ours that checks the database and the cache. These answer different questions and using one…

  • Node 22, and the test runner that grew a watch mode

    The built-in runner became usable for a package of plain JavaScript at the point it gained watching and a coverage report. Forty-one transitive dependencies gone from a package…