Work
Production AI systems, each with the numbers that changed. Open one to see how.
4 case studies
Making an LLM career agent shorter, cheaper and bilingual for Kenyan job seekers
Tabiya (Compass Kenya)
Python / FastAPI / TypeScript / React / Gemini 2.5 Flash / MongoDB / GCP / Pulumi
70 turns to ≤35 turns worst-case conversation
How I cut a FinTech's OpenAI bill by 92% without slowing it down
Series B FinTech SaaS
Python / FastAPI / Redis / OpenAI / Hugging Face / vLLM
$60k/mo to $4.8k/mo OpenAI spend
Real-time theft detection across 50+ retail camera streams on unreliable power and internet
Nigerian retail chain
Python / FastAPI / OpenCV / YOLO / Redis / PostgreSQL / Docker
2-48 hours to under 30s to detect an incident
Hybrid semantic search over 1M+ legal documents with sub-100ms p99 latency
Legal tech startup
Python / FastAPI / Qdrant / Sentence Transformers / Elasticsearch / PostgreSQL / Redis
18 min to 6 min to find a case
Things I've built
My own products and experiments, outside client work.
-
GrindProof
ProductAn AI accountability app. Plan the day in the morning, mark what got done in the evening, and get a weekly AI roast for the gap.
Next.js / Supabase / tRPC / Gemini / MCP / Expo
grindproof.co -
Café Fausse
Fast buildA full restaurant site in 2-4 hours of hands-on work with Claude Code: menu, gallery, online reservations with table availability, a newsletter and a password-protected staff view, backed by an API with 49 tests.
React / Flask / SQLAlchemy / Postgres
Try it -
Vibe coding platform
Side projectType a prompt and an agent builds and previews a full-stack app. Built on Vercel's open-source vibe coding template, with Trigger.dev and E2B added as the sandbox execution layer.
Next.js / AI SDK / Trigger.dev / E2B
Try it -
o-agent-core
Open sourceA minimal, readable AI agent in Python. Give it a goal and get the answer plus a step-by-step trace of every tool call. MIT licensed.
Python / FastAPI / OpenAI
GitHub -
PixelAI
Side projectAn AI thumbnail generator across five image providers, with per-user daily quotas, cloud storage and generation history.
Next.js / AI SDK / Firebase / Vercel Blob
Try it -
TripSplit
Side projectSplits group travel costs from a shared link, no accounts. Money is stored as integers and the balance maths is unit-tested to always sum to zero.
Next.js / TypeScript / Drizzle / Postgres
Try it
Want results like these?
A 30-minute call to look at what you're building and whether I can help.