Backend engineer

What the doc said.What the code did.

I write about the moments when two things that should have matched did not — a doc and the code under it, a green test run and a broken feature, one architecture and five languages that each read it differently. Backend work, mostly in TypeScript, Go, Java, Kotlin, and Python.

A recent finding

looked likeEighty pages, each with its own title, URL and heading.
wasFive distinct bodies, because every section keyed on the same five-value field.

Half the Site Was a Copy of ItselfRead it

What I work with

Practical building blocks
for distributed systems.

I see technology as a tool for solving problems, and I choose it with operations and scale in mind.

Latest

Writing and experimenting.

A running record of lessons learned from design work and small experiments.

One Container per AI Agent

Design notes for running several coding agents on one machine without stepping on each other: a container per agent so the unit of isolation is also the unit of cleanup, agent-to-agent messages over the network, nested containers only when needed, credentials that are shared without being baked in, and a cgroup-only alternative tested with systemd.

Half the Site Was a Copy of Itself

Every page passed a word-count check and had a distinct title, URL, and numbers. Slightly under half of all text on the site still existed on more than one page. The fifteen-line measurement that found it, and three structurally different ways a page duplicates its neighbour without anyone deciding it should.

The List That Broke Five Checkers

Five Kubernetes anti-pattern checkers all assumed `---`-separated documents. Naming more than one resource in a single `kubectl get -o yaml` call wraps the result in `kind: List` instead, and every checker found zero resources to flag without a word, which looked identical to a clean pass.

View all posts →

Live

ascii-doom

A first-person shooter drawn entirely in characters. It plays the 68 Freedoom maps and two levels of its own in the browser, with a keyboard or touch.

Live

카르다 전선 (Karda)

A 3D conquest game in the browser. Bots fill both armies; you take the capture points on foot or in an attack helicopter (coalition side only for now). One map and a quick conquest mode so far, with no server and no sign-up.

Live

Abyss

Single-player multiplayer: raid bosses and battlegrounds played alone in the browser, with AI party members and no server.

View all side projects →