Systems Journal
Building durable product systems, one experiment at a time.
Notes on agentic UX, infrastructure tradeoffs, and the product decisions that compound over time.
Focus Areas
Agentic UX
Designing flows where the system gathers context, takes action, and returns completed steps, not just text.
LLM Infrastructure
Making AI features cheaper and more predictable at the request level.
Incremental Systems Design
Building with constraints, migrating without rewrites, and making each change improve reliability before adding capability.
Codebase Modernization
Clean architecture adoption, schema-driven APIs, and test coverage on legacy systems. Shipping incremental improvements inside large cross-functional teams.
Latest
Recent writing
I Deleted 110,000 Lines of Python. The Architecture Died Twice.
A three-month retrospective on porting a hexagonal FastAPI backend to TypeScript, Bun, and vertical slices, with the receipts still in git history.
7 min read
Three Backends Was Two Too Many: Iron Boundaries in One Database
How I collapsed three Cloud Run services and three Postgres databases into one of each, and why the security boundary I kept is a GRANT statement, not a network hop.
7 min read
Giving an AI Agent Persistent Memory Without Making It Creepy
Notes on building agent memory with trust levels, visible preferences, capacity limits, and the ability to forget.
10 min read