Giving agents real hands
A fleet of thirteen small servers that give agents real hands. What they wrap, the two house styles I build them in, and why they all start read-only.
28 Jun 2026 · 3 min · agents, mcp, typescript, architecture
Long-form thinking. Code, agents, and shipping in production.
A fleet of thirteen small servers that give agents real hands. What they wrap, the two house styles I build them in, and why they all start read-only.
28 Jun 2026 · 3 min · agents, mcp, typescript, architecture
A marketing API exposes 115 operations; my server hands the agent six tools. The boundary is set by token budget and model focus, not REST purity.
22 Jun 2026 · 3 min · mcp, agents, architecture
In NutriM8 you can mumble your whole day into your phone once. A background worker untangles it into sleep, weight, exercise, hydration and food, and resolves "a snack after lunch" to a real timestamp.
22 Jun 2026 · 3 min · ai, voice, product, architecture
Transcription, diarisation, and speech running entirely on Apple silicon, and why keeping voice local is a product decision before it is a technical one.
22 Jun 2026 · 3 min · ai, voice, local-models, native
A catalogue of the guards I actually ship: typed confirmations, blast-radius escalation, pay-to-play gating, ordered workflows, and read-only by default.
18 Jun 2026 · 3 min · agents, mcp, devops, architecture
The backend everyone wrote off years ago is the one I keep reaching for, because boring infrastructure is the kind that ships products.
16 Jun 2026 · 2 min · parse, architecture, product
Nikis needed a clean dataset of kids' holiday activities across NSW. So I pointed an agent at the open web and made it behave like infrastructure: typed, checkpointed, and capped.
15 Jun 2026 · 4 min · ai, agents, data, typescript
Diarization is three questions wearing one coat. Split them into specialists, never merge across a turn, and the failures stop hiding inside each other.
14 Jun 2026 · 3 min · voice, ai, local-models, architecture
Lumen8 scores a student's mastery from 0 to 400 and then lets it decay every night. Here is why decaying toward a floor beats resetting to zero.
12 Jun 2026 · 2 min · product, data, architecture
Why I run everything as Dockerized TypeScript in one repo, and how that lets a single person ship more surface area than a small team.
10 Jun 2026 · 3 min · monorepo, typescript, devops, architecture
A 600M-parameter local model beats Whisper Large v3 on a Mac. The backend choice is per-model, decided by latency and memory and GPU contention, not ideology.
10 Jun 2026 · 4 min · local-models, performance, native, ai
Stumble is a real two-sided marketplace for court coverage: ten packages, five services, Stripe payouts, offline mobile sync. Here is what one developer building all of that actually looks like.
09 Jun 2026 · 4 min · parse, monorepo, architecture, product
Most software fails politely. Some of it does not, and that changes how you build.
08 Jun 2026 · 2 min · product, data, architecture