Writing
Notes on AI-assisted engineering (context engineering, running a team of agents, phased TDD with review gates) and the distributed-systems patterns that came out of the work: publishing only after the transaction commits, replay idempotency in stateful pipelines, and Protobuf as the source of truth for Elasticsearch.
Building Waypoint: A Plan Pane for Claude Code
Why I built a Claude Code mod that draws the session's plan, the PRs it touches, and the decisions only I can make as a live pane, and what it took to make a 48-column side panel trustworthy.
One Interface, Two Models, and RAG on pgvector
How EventHorizon's LLM service swaps a local model for a cloud one behind a single interface, grounds anomaly explanations in the detection's own numbers plus context retrieved from pgvector, and where that grounding still leaks.
One Feature Contract, Two Languages
Keeping an Isolation Forest trained in pandas and served inside Flink looking at the same six numbers: how the contract is written down, what enforces it, what it cost to get wrong, and the parts nothing checks yet.
Running a Multi-Agent Team With Context Rotation
How a small standing team of named AI agents, each on their own feature branch, with a hard context-rotation rule and a Skeptic gate, delivered a gated, multi-stage Micronaut platform build without stepping on each other.
Phased TDD With Skeptic Gatekeeping
Running a gated, test-driven build with formal architectural review gates that catch the bugs your test suite cannot, and the three blockers a real review caught on a pipeline platform before any of them shipped.
Replay Idempotency in Stateful Pipelines
Where replays go wrong in stateful document pipelines: persistent credentials in JSONB, content-hash deduplication, and the latent non-idempotency hiding in chained replays.
Publish After Commit: Keeping RabbitMQ Out of Your Transactions
Why message publishes belong outside the @Transactional boundary: the phantom message and the rollback-silenced dispatch a review gate caught before any traffic flowed, and the return-and-publish shape that rules both out.
From Copy-Paste to Context Engineering
How my development workflow evolved from chatbot-assisted debugging to agent teams, skills, TDD pipelines, and a Claude Code platform my team adopted, over eighteen months.
Protocol Buffers Meet Elasticsearch
How I eliminated an entire layer of data translation by building a library that treats Protobuf message definitions as the source of truth for Elasticsearch indices.