Blog
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.
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.
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.
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.
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.
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.