Writing
How things got built: the architecture, the tradeoffs, and what broke along the way.
2026
Dynamic model routing: AI that stays cheap, fast and right
What I do now to keep production AI features cheap and quick: route by difficulty, cache prompts and results, budget tokens, cap spend, benchmark first.
Building an RSS reader that fits under 5 MB
How I built Turbo Reader with a Rust core, SQLite and Tauri 2, kept the installer under 5 MB, and what broke along the way.
NoteBot MCP: putting BUTEX notices inside Claude and ChatGPT
How I built MCP servers that let BUTEX students ask Claude or ChatGPT about official notices and NoteBot notes, and why no tool ever throws.
Who is sitting on port 3000? Building Porter, a desktop port monitor
How I built Porter with Tauri and React: reading socket tables on three OSes, killing processes safely, and cutting idle CPU by a factor of ten.
Shapeshifting software: apps that change form and keep their spine
My reference design for existing apps that reshape their UI and workflows from plain language, while permissions and rules stay locked.
From 2,043 files to 58: taking NoteBot's content out of the code
Rewriting NoteBot's backend so a new note is a database row instead of a deploy, and what the numbers said once it was done.
How NoteBot ingests student notes: n8n collects, Claude files, I merge
How a Google Form became a pipeline that secures files, lets Claude place notes in the right spot, and still waits for a human to merge.