AI engineering
How I build with AI and lead teams that do: Claude Code agents in real codebases, LLM features with guardrails, and the public AI tools running on this site.
Everything on this page links to the piece that backs it. Start with one of the three below, or try a demo.
Start here
If you need someone to lead AI adoption
Replacing manual engineering checks with Claude Code agents
A taxonomy of about thirty agents I've shipped across production codebases: what works, what doesn't, and how to roll them out without it becoming theatre.
Case study · 7 min read
If you build with LLMs yourself
A public AI tool on a €2 daily budget
I put a Claude-backed translation tutor on my site that strangers can use. The model call was the easy part; the budget engineering around it is the actual feature.
Writing · 2 min read
If you want to see how I decide
Required a 30-day trial gate on every Claude Code agent before scaling beyond the pilot squad
What kept the agent rollout from becoming AI theatre: every agent earned its place via eval scores and incident-attributable rate before a second team could adopt it.
Decision · 2 min read
Try it live
All of these run in production on this site. The model-backed ones spend from a daily budget you can watch on the meter.
- AI · grounded chat
Ask my CV
A streaming chat grounded in my CV, case studies and decision records. It cites its sources and declines what it cannot back.
- AI · language learning
For German — a translation tutor, not just a translator
Type, dictate, or photograph English or German text and get the translation plus the why: grammar, register, examples, and the pitfalls a learner would hit. Strictly translations only — it politely refuses everything else.
- AI · on-device
Whisper in the browser — speech recognition that never phones home
OpenAI's Whisper model running entirely in your browser via WebGPU. Download it once (~80 MB), then transcribe German or English speech with zero audio leaving the page — no API, no server, no cost.
- AI · transparency
The €2-a-day meter — live AI spend, in public
Every AI feature on this site runs on a capped daily budget. This page shows today's spend per feature against its cap, live — the budget engineering from the writing notes as a visible artifact.
By theme
Leading an AI engineering team
Rollout, norms, and the calls behind them.
Agents and Claude Code in real codebases
What survived production, and what I deleted.
Writing3 May 2026
35 commands, 47 skills, one lesson about portable AI tooling
What building a Claude Code layer for a Next.js marketplace product and a multi-tenant institutional ERP taught me about which AI workflows actually survive a stack switch.
Case study22 Apr 2026
Replacing manual engineering checks with Claude Code agents
A taxonomy of about thirty agents I've shipped across production codebases: what works, what doesn't, and how to roll them out without it becoming theatre.
Writing22 Apr 2026
AI-augmented delivery: the agents that paid off, the ones that didn't
Six months in production with ~30 Claude Code agents across multiple codebases. Which ones earned their keep, which ones I deleted, and the one rule I won't break again.
This site as a production AI system
Public AI tools on a small budget, written up as they ship.
Writing5 Nov 2026
A pronunciation grader with no server
My translation tutor now scores how you say German sentences out loud. There's no speech API bill and no audio upload — the browser recognizes, a Levenshtein alignment grades, and the server never finds out.
Writing27 Oct 2026
A public AI tool on a €2 daily budget
I put a Claude-backed translation tutor on my site that strangers can use. The model call was the easy part; the budget engineering around it is the actual feature.
Guardrails, data safety and audit
Where the limits sit when a model touches real data.
How I run AI in a team
Every AI agent gets an exit code, a kill switch, and an eval set.
Otherwise it's not an agent. It's a chatbot pretending to be one. Demo agents are easy; production agents earn their seat with eval scores and an incident-attributable rate.