Writing

Papers and essays on applied AI and the engineering around it: RAG systems, vector search, agentic tooling and MCP, real-time and procedural rendering, and composable commerce architecture. Several are as much about the limits of these tools as their uses.

Ebooks

Agentic engineering in practice

Two pieces from inside an agency's agent tooling: the engineering harness that enforces rules the model might ignore, and a visual workflow canvas where the wires also carry the permissions.

  1. Prose is advisory, guardrails are mechanical

    Method descriptionAugust 202611 min read

    What I learned building an engineering harness for coding agents: put hard rules in hooks, CI and platform permissions, end every skill on a real check, and test shared improvements before other clients inherit them.

  2. The wire is the grant

    System descriptionAugust 20268 min read

    An agentic workflow canvas built on durable backend agents. Capabilities flow only along the edges people draw, and invalid graphs are refused before they can be saved.

The exoplanet catalogue

Three pieces about rendering the Open Exoplanet Catalogue as explorable 3D scenes, deriving planet appearances from sparse measurements, and being clear about how much of each alien world has been invented. See the project.

  1. A catalogue of alien worlds

    System descriptionJuly 202629 min read

    I turned all 4,081 systems in the Open Exoplanet Catalogue into explorable 3D scenes, deriving each planet from its recorded parameters instead of painting it by hand.

  2. Plausible worlds from sparse parameters

    Method description and epistemic boundsJuly 202627 min read

    How I turn sparse exoplanet records into sixteen kinds of procedurally rendered world, while keeping measured, inferred and invented details visibly separate.

  3. From data point to destination

    Survey and synthesisJuly 202618 min read

    Exoplanets are pictured everywhere and seen almost nowhere. I looked at press art, planetarium software and procedural universes to ask what the imagery helps us understand.

The Roman archive

Four pieces about a retrieval-grounded interface to Roman prose: how the system works, where retrieval fails, what the old translations change, and whether giving the dead a synthetic voice is a good idea at all. See the project.

  1. An interface to the Roman archive

    System descriptionJuly 202643 min read

    I built a reading interface for a multi-author Roman corpus, with retrieval grounded answers, author-specific first-person voices and a gallery of sculpted busts that answers aloud.

  2. Reading Rome in translation

    EssayJuly 202611 min read

    The Roman Archive uses public-domain translations from several centuries. Here is what their English preserves, what it changes, and why the translator matters to retrieval.

  3. Giving the dead a voice

    On synthetic personae for historical figuresJuly 202615 min read

    What it means to let readers address Roman authors in the first person, and the constraints needed to keep a reading device from turning into historical forgery.

An AI knowledge base

Two pieces about a git-backed documentation platform: how it handles workspaces and model access over MCP, and why its vector search does the job in two passes.

  1. An AI knowledge base

    System descriptionJune 202617 min read

    How I kept engineering documentation in git, made it editable in a browser and opened it to language models over MCP, including the tidy assumptions that later became multi-tenant bugs.

  2. Adaptive vector search in practice

    Technical noteJune 202612 min read

    How I used Matryoshka embeddings to shortlist against a smaller vector and rerank against the full one, including the early measurements that made the idea look rather silly.

The ǀxam archive

Three pieces about making the Bleek–Lloyd ǀxam folklore corpus easier to read, the much harder problem of recovering a sleeping language's sound, and the limits of language technology in endangered-language archives. See the project.

  1. An interface to the ǀxam archive

    System descriptionJune 202647 min read

    I built a retrieval-grounded reading interface for the public-domain Bleek–Lloyd ǀxam folklore corpus, so a general reader can explore it without losing sight of the notebooks.

  2. Restoring the sound of a sleeping language

    Feasibility study and project proposalJune 202623 min read

    Why current speech tools cannot pronounce ǀxam clicks, and what a community-led pronunciation layer built with the living sister language Nǀuu would actually require.

  3. From record to resource

    Survey and synthesisJune 202644 min read

    What language technology can actually do with the archives of endangered and sleeping languages, across cases from Kenya, Aotearoa and Cornwall, with ǀxam as the worked example.