I build the parts of a company that don't go home at night.
Some of them belong to clients. Some of them are how I get through my own week.
Every one of these is less than a year old. Fifteen years of writing for people, and now the reader who pays best is a machine — I am still not over how fast that happened.
A Claude Code skill catalogue with subagents that turns a multi-system operations investigation into a single conversation. Built solo in 4 days; 14 skills + 3 subagents in production, rolling out across the operations team.
skill catalogue · subagent fleet · meta-skill scaffolding · per-builder OAuth · structured audit trail · CI rule-promotion
Turns a content brief into a published article, in 4 languages. Stages: normalize → validate → render → publish. 3–4 months of work; used daily by 2 writers.
normalize → validate → render → publish · 3 renderers · 12 rule docs · author profiles · drive/docs · translation glossaries
A multi-tenant runtime that runs many independent news-digest agents from one codebase. Each agent collects, ranks, and delivers a weekly digest to its team's chat channel. Three days of build; seven test runs to polish before regular delivery.
python pipeline · pgvector dedup · LLM ranking · chat delivery · ops channel · /metrics endpoint · scheduler · 159 tests
End-to-end recruitment automation, soup to nuts: a marketing landing page, a chat-app intake agent that interviews candidates, an admin SPA for recruiters, and a SQL backend tying it together. Live in production, rebuilt so that every claim the agent makes is verified against tool evidence. 1,190 automated tests cover behaviour.
landing page · chat-app intake · evidence-verified intents · code-owned intake ladder · offline vacancy index · prompt-cache shim · persona regression harness · recruiter admin
A chat-triggered agent that finds B2B contact intelligence for a sales team. Salespeople ask in plain English; the agent returns enriched records via a spreadsheet. 7 months in production, ~1,000 records per week.
chat trigger · workflow runtime · operator-per-domain · dual-model fallback · spreadsheet delivery · scraper sub-workflow
A closed growth loop run by three agents and one operating surface: the first finds where AI answer engines cite a competitor instead of you, the second drafts the page fix, the third measures whether the citation came back — and feeds that into the next draft.
B2C software · answer-engine optimisation · propose → ship → measure → feed back
A typing trainer for reading foreign-language literature — type real stories at your level, in the alphabet you are trying to make automatic. Built and operated solo: 68 public-domain stories, each with three graded retellings glossed sentence-by-sentence into seven more languages.
own product · 68-story corpus · 8 languages · 3 CEFR levels · sentence-aligned gloss · national keyboard layouts · ambient beds
-
Swarm workspace
My personal multi-agent workspace — the operational foundation everything else runs on. A long-context AI agent as operating partner against a version-controlled homelab-ops repo; a hardened bastion as the blast-radius boundary; the rails the proactive-AIOps turn will run on.
-
AI-Ops kit
A Claude Code skill catalogue with subagents that turns a multi-system operations investigation into a single conversation. Built solo in 4 days; 14 skills + 3 subagents in production, rolling out across the operations team.
-
Sales-intel agent
A chat-triggered agent that finds B2B contact intelligence for a sales team. Salespeople ask in plain English; the agent returns enriched records via a spreadsheet. 7 months in production, ~1,000 records per week.
-
Newsagent swarm
A multi-tenant runtime that runs many independent news-digest agents from one codebase. Each agent collects, ranks, and delivers a weekly digest to its team's chat channel. Three days of build; seven test runs to polish before regular delivery.
-
AI Recruiter
End-to-end recruitment automation, soup to nuts: a marketing landing page, a chat-app intake agent that interviews candidates, an admin SPA for recruiters, and a SQL backend tying it together. Live in production, rebuilt so that every claim the agent makes is verified against tool evidence. 1,190 automated tests cover behaviour.
-
Content writer
Turns a content brief into a published article, in 4 languages. Stages: normalize → validate → render → publish. 3–4 months of work; used daily by 2 writers.
-
Krapka
A typing trainer for reading foreign-language literature — type real stories at your level, in the alphabet you are trying to make automatic. Built and operated solo: 68 public-domain stories, each with three graded retellings glossed sentence-by-sentence into seven more languages.
-
Growth hacker
A closed growth loop run by three agents and one operating surface: the first finds where AI answer engines cite a competitor instead of you, the second drafts the page fix, the third measures whether the citation came back — and feeds that into the next draft.
where this is
- ✓6 client systems with case pages, at /cases. Each one is the same world you just saw in orbit, seen up close — the newest is Growth hacker.
- ✓My own product — Krapka, a typing trainer for reading foreign-language literature. The one thing here I can name directly.
- ✓The sun — /cases/swarm-workspace. The personal AI ops the rest of the orbit runs on top of.
- ✓The display vocabulary every case is built from. Showcase at /primitives; provenance sits in the footer of every page.
- ✓A writing surface at /writing. The first piece is up: what happened when an intake agent collapsed under its own safety nets.
- ▸The operating-model essay that spells out the recurring patterns: catalogue-and-lint, cost-cap-and-fallback, telemetry-before-launch, end-to-end ownership.