I build products where the backend is an LLM: multi-agent systems, retrieval pipelines, browser automation and the evaluation harnesses that tell you whether any of it actually works.
5+ years shipping production TypeScript. Currently building at Metros2 Digital and running my own systems in production.
Open to full-time remote roles. Let's talk →
Job Hunter — an autonomous job search agent. Scouts 17 job board APIs, scores each listing against a CV, tailors the CV per posting with a zero-hallucination guardrail, and submits the application through the ATS.
1,212 leads processed. 316 applications submitted autonomously, 248 verified on the target page. Measuring delivery per channel instead of in aggregate is what exposed one integration silently failing 100% of the time while the overall number looked fine.
Node.js Playwright Claude API Groq SQLite
intent-gate — a small library for the part of an agent that must not be improvised: an LLM classifies a message into one of a known set of domains, and everything downstream comes from configuration the model never sees. It cannot name a handler that does not exist, and it cannot waive a human approval. Extracted from Cortex. 25 tests, no network, CI on Node 20 and 22.
TypeScript zero dependencies Vitest
Forgix — real-time multiplayer browser game with PvP combat, permadeath and an in-game economy. Claude API drives chip generation and narrative; Supabase RLS enforces per-user isolation. ~27k lines of TypeScript, live in production.
Next.js Supabase Claude API Phaser 3 Stripe
SKUscribe — B2B SaaS that generates e-commerce product listings from an LLM pipeline. Auth, subscription tiers, full billing. ~37k lines, deployed.
Next.js Prisma Supabase Claude API Stripe
Cortex (private) — multi-agent orchestration dashboard. Routes work through a classify → route → human approval gate → execute pipeline, streaming results over SSE. A cheap Groq classifier picks the model tier per request with automatic fallback on rate limits. ~21k lines of TypeScript.
Next.js Claude Agent SDK Groq SQLite Zod
AI / Agents → Claude API · Groq · multi-agent orchestration · RAG (pgvector, ChromaDB)
tool calling · structured output · model routing · evals
Frontend → Next.js · React · TypeScript · Tailwind · Framer Motion
Backend → Node.js · GraphQL (Apollo) · Supabase · PostgreSQL · Prisma · SQLite
Automation → Playwright · Chrome CDP
Deploy → Vercel · GitHub Actions



