Document automationLive
Docket
Forty-six emails became fourteen jobs
Paperwork that files itself. Documents arriving by email are read, classified and attached to the right job automatically — then grouped into one task per thing that actually needs doing, not the four emails where someone asked for it. A shipping product, on its own pricing, in daily use.
- TypeScript
- Node
- Postgres
- LLM extraction
Follow-up automationPrivate build
Milepost
Messages that stop themselves
An engagement engine that takes in events, works out who someone is from what they actually do, and sends messages that are guarded before they go out and measured after. Built after watching a system fire ninety notifications at someone who had never once replied.
- Python
- Event-driven
- Guardrails
Backs: “Answer first, win the job”
Route optimizationPrivate beta
Route Optimization (Fuel)
The cheapest way there, not the shortest
Routing that prices the stops as well as the miles. 1,786 fuel stations refreshed every four hours, scored against the route, the tank and the spread between them — so the plan that comes out is the one that costs least to drive, not just the one with the fewest miles. Operators ask it in plain language and it writes the answer back itself.
- FastAPI
- Next.js
- PostGIS
- pgvector
- Claude
Backs: “Stop paying people to copy and paste”
Client platformLive
Sovereign Financial
A digital front door for high-stakes money
A real estate investment firm whose site did not match the size of the cheques it was asking people to write. Rebuilt around trust signals, hardened auth and speed — bank-grade security, 99.99% uptime, under a second to load.
- Next.js
- React
- Enterprise auth
- Tailwind
Shipped productLive
Trucker's Routine
In both app stores, in drivers' hands
A health app designed for the space someone actually has — three workout types, seven to forty-five minutes, built for a cab rather than a gym. iOS and Android, with a Python backend behind both.
- SwiftUI
- Kotlin
- Python
- Postgres