Selected work

Every system, and what each one is for

Seven in detail, then the full catalogue of 29 — live products, eval harnesses, pipelines, safety tooling and ops dashboards.

Every entry below links to something you can open: the running product, a demo on sample data, or the writeup explaining how it was built. Where no demo honestly demonstrates a system, you get the writeup instead of the nearest available demo — a link that misrepresents the work is worse than no link.

38
AI systems built
25
live in production
2
in the care sector
Jul 2023
building with AI since

The systems

  1. TradeTEST.TRAINING

    Live in production

    A tutored exam-prep product with Stripe billing, spaced-repetition scheduling and bilingual English/Spanish content. The localisation pipeline moves roughly 3,400 items through a five-stage QA gate; it is resumable and cost-capped, so a bad run is cheap to abandon rather than something I have to babysit to the end.

    What I did: Built and shipped end to end — billing, scheduling algorithm, content pipeline, and the QA gate that decides whether a translation batch is allowed through.

    • Groq
    • Next.js
    • Supabase
    • TypeScript
    • Stripe
    • SM-2
  2. Sea Star — Groq Publish Automation

    Live in production

    One blog topic fans out to a Facebook caption, an Instagram caption with hashtags, and an email subject and body, from a single model call on a nightly cron. It runs as an admin tool in production, which means it fails in front of someone who will tell me.

    What I did: Designed the fan-out, wrote the publish integrations, and put it in the hands of non-technical staff who use it daily.

    • Groq
    • Next.js
    • publish API
    • nightly cron
  3. Find Your Vote

    Live in production

    Type an address, get ranked candidate matches drawn from 25+ public-record sources, with a per-issue score breakdown a voter can read and argue with. Determinism-audited: the same inputs produce the same ranking every run.

    What I did: Built the scoring engine and the determinism audit. For anything touching an election, a ranking nobody can explain is not a feature.

    • Next.js
    • TypeScript
    • determinism audit
    • 25+ record sources
  4. Multi-Model QA Cascade

    Internal tooling

    One item routed to Ollama, Groq and Codex in parallel. A non-LLM scoring layer picks the winner, then a person approves before anything is written to SQL. Runs at zero marginal cost locally, which is the reason it actually gets used.

    What I did: Designed the routing and the scoring layer. The cost work is the governance work: controls that are expensive get quietly dropped in month nine.

    • Ollama
    • Groq
    • Codex
    • deterministic scoring
    • human-in-the-loop
  5. agent-gate — safety fence

    Open source

    A portable safety fence for AI coding agents: it blocks the dangerous actions — leaking secrets, deleting things, claiming done without proof, rewriting history — and lets the safe ones through. Stdlib-only Python, no dependencies, 53 tests.

    What I did: Wrote it as a standalone reusable layer. Off by default and on purpose; it only enforces once you explicitly activate it.

    • Python
    • deterministic rules
    • fail-closed
    • 53 tests
  6. Vision Factory — dual-model consensus

    Internal tooling

    One model generates assets, a second verifies them, and the run fails closed if centroid drift crosses a fixed threshold. It exists because a single model generating a large asset run will drift confidently and quietly, and nobody notices until the whole set is wrong.

    What I did: Built the consensus gate and the status board that makes a long run inspectable while it is still running.

    • GPT-4o
    • Gemini vision
    • consensus gate
    • spec-driven pipeline
  7. blood-suga — vision meal analysis

    Demo

    A model call per dish returns a carb and calorie range, and an eval loop computes MAPE against ground truth in real time, on screen, while you use it. The offline fallback says on its face that it is a fallback.

    What I did: Built the eval harness first and the feature second. The live product is not linked here by choice — it sits behind a login over personal data.

    • Groq
    • dataset-backed eval
    • MAPE
    • honest offline fallback

The full catalogue

All 29, grouped by what they are for

Everything with a demo, a written case study, or a live domain. Each line leads with the outcome that matters for the job, not the technology — the technology is on the card underneath it.

Live products 10

  • TradeTEST.TRAINING

    Shipped SaaS · Stripe billing · ~3,400 items through a 5-stage QA gate

    Tutored exam-prep product with spaced-repetition scheduling and bilingual EN/ES content. The localisation pipeline is resumable and cost-capped, so a bad run is cheap to abandon.

    Groq · Next.js · Supabase · TypeScript · Stripe · SM-2

  • Find Your Vote

    4-issue weighted match · transparent per-issue score breakdown · determinism-audited

    Address in, ranked candidate matches out, drawn from 25+ public-record sources. Same inputs produce the same ranking every run — for anything touching an election, an unexplainable ranking is not a feature.

    Next.js · TypeScript · determinism audit · 25+ record sources

  • Sea Star — publish automation

    1 topic → 4 channel outputs · nightly cron · in production

    One blog topic fans out to a Facebook caption, an Instagram caption with hashtags, and an email subject and body from a single model call. Runs as an admin tool used daily by non-technical staff.

    Groq · Next.js · publish API · nightly cron

  • Crown Ridge — field service portal

    3-role ops portal · Owner KPIs / Manager exception queue / Tech checklist

    Role-aware field-service operations: portfolio KPIs and threshold alerts for the owner, a one-click assignment queue for the manager, today's jobs with photo-evidence capture for the tech.

    Next.js · field ops · role-based UI · dashboards

  • coolcook.ing — cost engine

    Live margin · per-SKU gross profit · print-to-PDF

    Food-vendor cost and margin calculator: edit menu items inline and watch per-SKU margin move. Unit economics a vendor can actually operate, not a spreadsheet they abandon.

    Next.js · unit economics · margin modelling

  • Datum & Plane — admin toolset

    4 operator tools behind 1 gated interface

    Gated owner toolset: AI business briefing, walk-site estimator, quote builder, and admin controls in one place.

    Next.js · Groq · estimator · quote builder

  • rbl.land — underwriting tools

    6 underwriting tools · live GO / HOLD / NO-GO verdict

    NorCal affordable-housing underwriting suite: HCV rent-cap screen, RCFE calculator, and deal screens that return a verdict rather than a number to interpret.

    Next.js · TypeScript · real-estate underwriting

  • run-run — local-AI studio

    Brand blurb + image prompt + cost sheet, generated locally

    Local-AI packaging studio: brand positioning copy and Stable Diffusion image prompts, with an SSRF-safe image API. Runs on local Ollama, so the marginal cost is zero.

    Ollama · Stable Diffusion · Next.js · cost engine

  • Gotta-Guy — realtime exercises

    Two partners, one synced session, source-grounded

    Guided communication exercises with both screens synced live. The content is source-grounded rather than model-improvised, which is the whole point in this domain.

    Supabase Realtime · Next.js · TypeScript

  • Stillwell

    Live on its own domain

    Shipped and serving users. It is the one live product with no writeup or demo in this repo, so it is listed as a domain rather than described from guesswork.

    Next.js

Evals & measurement 4

  • blood-suga — vision meal analysis

    Live MAPE vs labelled ground truth, on screen while you use it

    A model call per dish returns a carb and calorie range, and an eval loop computes mean absolute percentage error against a 5,800-image nutrition dataset in real time. The eval harness came first; the feature came second. The live app is not linked — it sits behind a login over personal data.

    Groq · llama-3.3-70b · dataset-backed eval · MAPE

  • Deterministic localisation pipeline

    ~3,400 items EN→ES · 5-stage QA gate · resumable · cost-capped

    Translation at volume where the interesting problem is not the translation but knowing which batches are safe to ship. Every stage is a gate with a written pass condition.

    multi-model · staged QA gates · resumable runs

  • Project portfolio audit dashboard

    Meta-tooling: scores this portfolio's own projects

    The tool I used to audit my own work — which is how several of the defects on this site were found, including demos that claimed to be live while making no model call.

    Next.js · scoring rubric · audit harness

  • Unit-economics financial model

    Scenario projections with the assumptions visible

    A model whose inputs you can argue with. Numbers you cannot interrogate are numbers nobody should act on.

    TypeScript · scenario modelling

AI pipelines 6

  • Multi-Model QA Cascade

    3 providers in parallel · non-LLM scoring picks the winner · $0 to run locally

    One item routed to Ollama, Groq and Codex at once. A deterministic scoring layer picks the winner, then a person approves before anything is written to SQL. The cost work is the governance work — controls that are expensive get quietly dropped in month nine.

    Ollama · Groq · Codex · deterministic scoring · human-in-the-loop

  • Vision Factory — dual-model consensus

    Fails closed at 85px centroid drift

    One model generates assets, a second verifies them, and the run halts if drift crosses a fixed threshold. It exists because a single model generating a large asset run drifts confidently and quietly, and nobody notices until the whole set is wrong.

    GPT-4o · Gemini vision · consensus gate · spec-driven pipeline

  • Coach Vale — explain-back tutor

    Turn-by-turn pass-probability coaching

    A Socratic tutor for the CSLB contractor licence exam: the learner picks an answer and then has to explain why, which is where the actual teaching happens.

    Groq · Socratic prompting · exam prep

  • Game Generator

    3 game modes + per-mode suitability scoring · human playtest loop

    Turns flashcards into playable Match, Order or MCQ mini-games, and scores which mode actually suits the material rather than generating all three and hoping.

    deterministic generation · suitability scoring · HITL playtest

  • Asset-Ops pipeline dashboard

    todo → generating → verify → placed, inspectable mid-run

    A status board that makes a long generation run auditable while it is still running, instead of after it has finished going wrong.

    spec-driven pipeline · status board

  • Image-gen workflow tool

    Prompt → asset with the workflow captured, not ad-hoc

    Image generation as a repeatable pipeline with recorded settings, so a result can be reproduced rather than re-improvised.

    image generation · workflow capture

Governance & safety tooling 3

  • agent-gate — safety fence

    53 tests · fail-closed · stdlib-only, zero dependencies

    A portable safety fence for AI coding agents. It blocks the dangerous actions — leaking secrets, deleting things, claiming done without proof, rewriting history — and lets the safe ones through. Off by default and on purpose.

    Python · deterministic rules · fail-closed · 53 tests

  • audit-kit — review workbench

    Typed JSON workbench the next stage reads back

    Human-in-the-loop review as a first-class component: the reviewer's decisions are structured output the pipeline consumes, not a comment thread someone has to interpret later.

    typed JSON · review gates · human-in-the-loop

  • OSTUP — scaffold & model router

    Scaffold to deployed in 5 minutes · model-tier routing built in

    One command scaffolds a repo, a Vercel deploy and an agent-ready kit, with a router that sends each job to the cheapest model tier that succeeds. Governance that is expensive to run stops getting run.

    Next.js · scaffolding · agent kit · model-tier routing

Dashboards, calculators & ops 6

  • FEST — facility emergency safety & tracking

    6 tracked devices · geofence breach alerts · history scrubber

    Real-time asset tracking on an SVG floor plan, with breach alerts and a scrubber to replay what happened and when. Built for the moment after the incident, when someone asks where things actually were.

    SVG mapping · geofencing · realtime · history replay

  • Tax + benefits calculator

    6-step intake → tax estimate + benefits-eligibility worksheet

    A wizard that collects filing status, income, household and deductions, then returns an estimate alongside benefits eligibility (including CalFresh) — the two questions people actually need answered together.

    Next.js · multi-step wizard · eligibility rules

  • Intake / fact-finding tool

    Schema → form → typed JSON payload

    A JS object defines the sections, field types and conditional logic; the form and its typed output follow from it. Change the schema, not the form.

    schema-driven · conditional fields · typed JSON export

  • Delta King — book-writing dashboard

    Reading room + writing stats + drafting assistant

    A themed chapter reader alongside manuscript tracking and an LLM drafting assistant, in one workspace rather than three tabs.

    Next.js · manuscript tracking · LLM assist

  • Money reconciliation dashboard

    Reconciliation surfaced rather than buried in a spreadsheet

    Transactions matched and exceptions raised where someone will see them, which is the only place a reconciliation tool earns its keep.

    TypeScript · reconciliation · exception surfacing

  • The Palms — couples dashboard

    5-tab shared dashboard: focus · parenting · plans · check-ins · exercises

    A shared relationship workspace: weekly focus and load tracking, structured check-ins, requests, agreements and repair flows. The demo runs on fictional data and ships no images; the live app is not linked, by a standing privacy decision.

    Next.js · TypeScript · Supabase

Stack

What I work with

Listed because a recruiter needs to match keywords, and pretending otherwise helps nobody.

Models orchestrated

  • Claude
  • OpenAI / Codex / GPT-4o
  • Groq
  • Gemini vision
  • local Ollama
  • Stable Diffusion

Infrastructure

  • Next.js
  • TypeScript
  • Supabase
  • Playwright
  • Tailwind
  • Vercel

AI & pipeline

  • Deterministic pipelines
  • dataset-backed evals
  • non-LLM scoring
  • multi-model routing
  • fail-closed safety
  • MAPE / eval loops

Systems shipped

  • SaaS with billing
  • publish automation
  • human-in-loop workbench
  • agentic safety fence
  • schema-driven intake
  • unit-economics engine

The rest of it

The full demo archive

The same demos with a capability-based filter over them, plus the older case studies. It is a different, older interface from this site — a working archive rather than a showcase, and I would rather tell you that than restyle it and call it new.

Next step

Worth a conversation?

If any of this looks like the shape of the problem you are hiring for, the form comes straight to me. The resume has the compressed version and opens without an email wall.