
AI engineer & founder
Systems that keep working after I have gone home.
Every system below was built end to end and put into service. Several of them are running right now with nobody watching them.
I work alone, from the ingestion pipeline to the deployed interface. Document intelligence for private equity. Autonomous client communication for veterinary clinics. Prospect discovery for a post-quantum cryptography consultancy.
Some of it is mine. The rest belongs to people who needed it working, not demonstrated.

Selected work
Every system, and what each one was actually for
Open a row for the problem it was built against, what it does, and the decisions behind it. A filled mark means it is in production today.
Ventures & client systems
Products I own, and work delivered to paying or partner organisations.
Independent systems
The ones below were built to answer a question rather than a brief. Several of them are the reason the ones above work the way they do.

Every figure a system of mine produces carries its source, or it is labelled an estimate. That rule is enforced by a validator that fails the run, never by asking the model nicely.

How I work
Four rules I have paid to learn
Build for the day after handover
A system that needs me in the room is a system I have not finished. Scheduled, logged and documented, or it is a demo with good lighting.
Constrain the model in code
A prompt is not a control surface. If an output has to be true, something outside the model must be able to look at it and fail the run.
Compliance is a build constraint
Disclosure obligations, GDPR scope and data boundaries go in at the start. Retrofitting them is how otherwise finished projects quietly die.
Say when it is not worth building
The most useful line in a business case is the scenario where the honest recommendation is no. A case that can only recommend yes is not a case.
Full stack
What I build it with
- LLM & AI APIs
- Anthropic Claude API, OpenAI API, Google Gemini, multi-model ensembles
- Agent tooling
- Claude Code (skills, subagents, slash commands, MCP), Codex, n8n, Openclaw, Hermes
- Languages
- Python, JavaScript, TypeScript
- Backend & serverless
- Cloudflare Workers, FastAPI, Node.js, Railway
- Frontend
- Next.js 16, React 19, Tailwind v4, Framer Motion, HTML/CSS/JS
- Data & retrieval
- PostgreSQL, pgvector, vector embeddings, semantic search, recency-weighted ranking
- Hosting & CMS
- Netlify, Vercel, Sanity CMS, GitHub Pages
- Automation & comms
- Webhooks, cron, WhatsApp API, Microsoft Graph, SMTP, Gmail and Calendar APIs, Tally
- Finance data
- Alpaca Markets, EDGAR (Form 4 and 13F), STOCK Act disclosures, Polymarket, Kalshi
- Enterprise & office
- Office.js, Excel add-ins, Notion API, Google Workspace, openpyxl
- Methods
- Multi-agent orchestration, reflection loops, ensemble design, Kelly sizing, provenance enforcement, prompt engineering
- Tools
- VS Code, Cursor, Git and GitHub, Obsidian
If you have something that ought to be running and is not, I would like to hear about it.