Latest writing

  • 8th September 2026

What the rewrite deleted

A config batch landed green: tests passing, artifacts building. The review found seven things the new code had quietly stopped doing, and every one was an absence.

Read more 
  • 1st September 2026

The knobs run out

A grid falsifies the fusion hypothesis, a gate gets calibrated from its own diagnostics, and a regression test turns out to be passing by eight millionths.

Read more 
  • 24th August 2026

My search engine scored 65% on its own docs site

Dogfooding a hybrid search engine on its own documentation corpus. Most of a 27-point recall gap was not the ranker.

Read more 
  • 4th August 2026

The model is a file, and I range-fetch it

Semantic search on a static site with no server. The embedding model is a static file and the browser fetches individual rows out of it.

Read more 
  • 27th July 2026

I benchmarked every repo-to-prompt tool, then forked one

Docker-pinned hyperfine benchmarks of gnaw, repomix, repomix-rs, yek, and code2prompt on the Next.js monorepo — and why I forked code2prompt anyway.

Read more