Now

What I am doing now

A snapshot of the work, reading and thinking occupying me at the moment — the kind of page Derek Sivers talked me into, mostly because it is a useful antidote to a blog that only ever shows finished thoughts.

Updated when something actually changes, which in practice means every six to ten weeks. If the date above is more than three months old, treat the "currently" sections as history rather than present tense.

Work

Three things are on the desk this quarter, which is one more than I would like.

A Postgres upgrade that refuses to be routine

A logistics client is moving from PostgreSQL 13 to 17 on a 900GB primary with a replication setup that grew organically and has, let us say, undocumented opinions. The upgrade itself is a weekend of work. Removing the reasons it needs a weekend is the actual project: a logical replication bridge, a rehearsal environment with production cardinality, and a rollback plan that somebody other than me has executed at least once.

A checkout flow that is fast on my laptop

The classic. Field data says p75 LCP of 4.6 seconds on mid-tier Android; the team's staging environment says 1.2 seconds on a fibre connection. Two thirds of the work is making the measurement honest, and the remaining third is the four changes that fall out of it. I wrote about the budget half of this in January.

Ferrite v0.8

Index bloat analysis is the headline feature. It is the question I get asked most often after "which indexes am I missing": which of these forty indexes is actually costing me write throughput for nothing. Hoping to tag it before the summer.

Writing

One essay in draft, one in the "collecting notes" stage, and a policy of not announcing things I have not written.

  • In draft: "Your on-call rotation is a design document." About how the shape of a schedule quietly dictates architecture, and what happened when we moved from weekly to daily rotations at a previous job.
  • Notes stage: zero-downtime migrations on tables that are never quiet. Half of this is technique and half is negotiation with the people who own the feature freeze.
  • Not started, but I keep circling it: an honest account of the monolith split I led in 2019 and the parts I would not do again.

Reading

What is on the go, as of April 2025
TitleAuthorStatus
Systems Performance (2nd ed.)Brendan GreggRe-reading — for the third time, and it lands differently now that I spend my weeks in flame graphs.
A Philosophy of Software DesignJohn OusterhoutReading — short, opinionated, and wrong about just enough to be worth arguing with.
The Design of Everyday ThingsDon NormanReading — an annual re-read. The chapter on affordances is the best interface review checklist I have found.
The Sea, The SeaIris MurdochFiction — slow going, in the good way. Two hundred pages left and no rush.
PostgreSQL 17 release notes and the planner source—Reference — duller than it sounds. The comments in costsize.c explain more than most blog posts.

Learning

  • Dutch, seriously this time. I have lived here for eleven years on comfortable B1 and a lot of apologising. Currently working through B2 material with a tutor on Tuesdays, aiming at being able to run a client meeting in Dutch by the end of the year.
  • Async Rust, properly. I can write it; I could not explain what the runtime is doing when a task stalls. Reading through the tokio internals and writing small benchmarks until I can.
  • Query planning. Cost estimation, statistics targets and why the planner sometimes makes a decision that looks obviously wrong on paper. Related to the migration project above, which is convenient.

Not doing

Explicitly, so I stop being asked and so I stop asking myself.

  • No conference talks in 2025. I gave four in 2023 and enjoyed roughly one of them.
  • No new side projects until at least October. Ferrite is enough, and I have three half-built tools that say so.
  • No greenfield rewrites, no matter how compelling the diagram in the pitch deck.
  • No writing about language models. Other people are doing it better and I do not have anything useful to add.

Availability

Two engagements per quarter, and both 2025 Q2 slots are taken. The next realistic start date is July 2025, and I keep one week a month free for the written diagnosis work that tends to turn into something else. If you are planning further ahead than that, a short call now is still worth it.

Recently on this site

  • April 2025 — rewrote the stylesheet around cascade layers, added the uses page, published Boring infrastructure is a feature.
  • March 2025 — a proper RSS feed with every post in it, and a working sitemap after a reader emailed to say theirs was broken.
  • January 2025 — new typography scale and a dark theme that follows the operating system rather than a switch I forget to flip.
  • November 2024 — Cascade layers changed how I write CSS.

Why this page exists

A blog shows conclusions. A now page shows the position you are reasoning from, which is often more useful and always more honest. If you keep one, the convention lives at nownownow.com.