Writing

dumb things I always wanted to write about

Multi-Agent Conversational AI

What production conversational AI takes once you stop treating it as request and response: instant talk, slow thinking, one hard invariant, and patience for the third of users who send the next message before you have finished answering the last one.

Terra: An Agent Framework Extracted from Production

An Elixir agent framework built on gen_statem. Stateful processes, context aging, multi-agent coordination, and why the five-line demo disappears the moment an agent has to survive a crash mid-response.

Rune: Long-Term Memory for AI Agents

An append-only knowledge graph that records how a person's life changes over time. Deterministic, causal, and fast enough to sit inside a real conversation.

The Realtime Context Engine

Treating context as a living system rather than a retrieval problem: a temporal hierarchy, freshness states that expire on their own, and a scratch pad the model reasons in before it answers.

Stateful Agent Orchestration

The dual-buffer design and the coherence invariant underneath it: what the user sees, what gets saved, and what the model knows have to be identical. It sounds obvious. It was not.

The Boring Designer

On the ninety-nine percent of design work that nobody screenshots, and why boring is usually the correct output.

Further back