blog

Notes from building agent systems and developer tools, including failures, implementation decisions, and measured results.

May 2026

Tests should try to refute the claim

The agent writes down what observation would prove the claim false, then tries to produce it. About 30 of SKILL.md's 122 lines say what not to report.

testing · agents · security · quality
May 2026

Four processes for one coding agent

In May I promised the README that a crashed session couldn't take the others down. No session had ever crashed; I built for it anyway.

agents · swift · macos · systems
May 2026

Local Redis starts at the client

The first command node-redis sent my server was one I never issued: HELLO 3, then probes for capabilities and state. The install-Redis-everywhere tax is why the small Bun process answering it exists.

bun · redis · valkey · typescript
May 2026

A goal file for Claude Code

A Stop hook blocks the turn from ending until the last message carries an exact promise tag. The goal lives in .claude/goals/current.goal.md, open to a text editor and git diff.

agents · claude · tools · workflow
April 2026

env.DB without a Cloudflare account

Two Workers, four bindings, and one dispatch into a disposable server on my laptop. The KV read returned the real getWithMetadata shape, with no Cloudflare account in the loop.

cloudflare · workers · typescript · local-first
January 2026

The 57-character system prompt

A valid Claude Code OAuth token, correct headers, and an authentication error that was really about one extra newline in the request body.

ai · oauth · authentication · debugging
January 2026

8,410 places a train can be

Network Rail's feeds speak in STANOX codes. TrainTracker's finished part is the 8,410-row table that turns 87701 into East Croydon through two joins and a datum conversion.

data-visualization · real-time · typescript · maplibre
December 2025

BM25 before grep

The same query, twice: zero matches in plain mode, then five hits in cli.rs and the names the agent was missing.

ai · agents · search · rust
December 2025

Resolved to GitHub

Flipping 'Exclude Employees' cost one ecosystem more than half of its apparent activity. The dashboard resolves attendee lists to GitHub identities.

devrel · metrics · developer-experience · strategy
December 2025

The Goldman/Docker test

The adoption story the whole industry reaches for, and I've used it myself. Goldman adopted Docker bottom-up and wrote a $95M cheque, but nobody has produced the funnel row the story implies.

devrel · developer-experience · strategy · leadership
December 2025

Seven agents, fourteen minutes

Seven agents share a fourteen-minute clock; the coordinator's job is stopping the interviewer from asking the same question twice.

ai · agents · product · swift
June 2023

Recommendation math has fingerprints

One WHERE clause bans the hellthread while the follows stream ships unranked. These are the human choices inside a Bluesky custom feed generator.

graph-database · algorithms · bluesky · social-media