blog

Notes from building agent runtimes, local infrastructure, search and memory tools, alongside fifteen years of Developer Relations.

May 2026

Tests should try to refute the claim

Severe-testing starts with what would refute a system's claim and reports a threat only when there is an observable path to failure.

testing · agents · security · quality
May 2026

A hung agent shouldn't freeze the others

codex-swift gives each coding conversation a disposable worker so one stalled tool call cannot freeze the others.

agents · swift · macos · systems
May 2026

Local Redis starts at the client

I wanted a Bun test job to start its own Redis-compatible dependency. Then node-redis sent HELLO 3 before my application had issued a command.

bun · redis · valkey · typescript
May 2026

The goal should be a file you can open

Porting /goal to Claude Code gave the objective a Markdown ledger that survives compaction, remains visible, and makes Claude state explicitly when it believes the work is complete.

agents · claude · tools · workflow
April 2026

Cloudflare Workers without leaving the laptop

I built open-cloud so my own code, coding agents and CI could deploy and call Workers with D1, KV, R2 and service bindings inside one inspectable local process.

cloudflare · workers · typescript · local-first
January 2026

The 57-character system prompt

A Claude Code OAuth token could identify the account and refresh successfully, yet inference failed until the request body used one exact system prompt.

ai · oauth · authentication · debugging
January 2026

8,410 places a train can be

I wanted every train in Britain moving across one map. The difficult part was translating the operating railway—signals, junctions, sidings and all—into geography a browser could draw.

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

BM25 before grep

A coding agent often knows the concept before it knows the repository's name for it. One local ranking pass can find the file and nearby language that make exact search useful.

ai · agents · search · rust
December 2025

Which developers built something afterwards?

Following a $50,000 hackathon and a $5,000 meetup series into later code changed which programme deserved another budget.

devrel · metrics · developer-experience · strategy
December 2025

What did the business get for the DevRel budget?

Developer work reaches business value differently in an API business, a platform and an enterprise product. The measurement has to follow the route the business actually uses.

devrel · developer-experience · strategy · leadership
December 2025

You don't know what you know until you're asked

I designed Interviewer to draw out a half-finished thought without asking the same question twice. The hard part was deciding what evidence lets the system call a question `asked`.

ai · agents · product · swift
June 2023

The WHERE clause that moderated a feed

BlueJ's hardcoded hellthread exclusion made a feed generator's hidden policy visible: in its filters, weights, merge order, and refresh rules.

graph-database · algorithms · bluesky · social-media