Selected work

Projects, in detail

Seven things I designed, built, and shipped — a live SaaS with paying subscribers, tools in daily production use, and systems that keep themselves honest.

Live B2B SaaS · I build & operate it

OBBBA Tracker — live tax-compliance SaaS

A live B2B SaaS with real subscriptions and a free trial — built and operated solo.

The OBBBA Tracker dashboard showing tipped-wage and overtime deduction tracking
OBBBA Tracker Live

Helps tipped-industry employers track and document the “no tax on tips & overtime” deductions under the One Big Beautiful Bill Act — automatic Treasury Tipped Occupation Code assignment, FLSA overtime, W-2 Box 14 exports (ADP/Gusto/QuickBooks), an audit trail, multi-tenant role-based access, and an analytics dashboard.

full-stack SaaSauthmulti-tenantpayroll exportsbilling
Multi-agent system

AgentA — self-improving multi-agent engineering harness

Improvements are earned behind a verification gauntlet — not hallucinated.

An autonomous Claude Code system that improves its own code behind that gauntlet. Four gates always run — parse, unit tests, a benchmark delta, and a fresh-context critic that reads only the diff. Three more (property tests, mutation testing, a sealed holdout the loop never trains against) arm only when the task under test configures them, and a skipped gate is logged as skipped, never counted as a pass. A panel of specialised subagents — planner, coder, tester, reviewer, critic — plus skills, hooks and meta-improvement loops, all sandboxed.

The autonomous inner research loop is ported from Udit Goenka’s autoresearch (MIT, based on Andrej Karpathy’s work); the meta-improvement architecture and the verification stack are my own.

multi-agentverificationPython
PDF → validated structured data

Financial-Statement Extractor

25 checks, 0 exceptions on a published report — the model never does the arithmetic; tested code does.

Turns a government audit statement (PDF) into clean structured JSON, then re-derives every total (foot, crossfoot, articulate) to prove the extraction is correct, with a golden-file regression test. No OCR for born-digital text. Inject one wrong figure and it’s caught.

Try it yourself: the interactive demo runs entirely in your browser on real public Auditor-of-State reports — pick a report, watch every total get re-derived, and toggle a figure to see the check fail. Nothing leaves your machine.

Pythonpdfplumberpytestaudit-grade
RAG · client work, source private

Legal RAG with page-level citations

An answer without a citation to a real page is not an answer.

Built and deployed at a law firm: attorneys query a legal-text repository in plain language and get an answer that carries precise page-level citations back into the source documents, so every claim can be checked rather than trusted. Retrieval over the firm’s corpus, then LLM synthesis constrained to what retrieval actually returned.

The design problem was not retrieval quality, it was accountability: a fluent answer with no traceable source is worse than no answer in legal work, because it is expensive to disprove. Citations are carried through synthesis rather than reconstructed afterwards, which is the difference between a citation that points at the evidence and one that merely looks like it does.

This was client work, so the corpus and the code stay private. I am happy to walk through the retrieval and citation design in a conversation.

RAGvector searchcitationsPythonLLM
Federal grant compliance SaaS

GrantLedger

Audit-ready 2 CFR 200 grant-compliance reporting, end to end.

Full-stack B2B SaaS that auto-categorizes nonprofit grant spending into 2 CFR 200 budget categories, tracks budget-to-actual per grant, and generates audit-ready compliance reports, with QuickBooks/Xero integration.

Next.jsTypeScriptSupabaseStripeOpenAIaudit-ready
ML benchmark · search vs. learning

NeuroFour — Connect 4 strength-per-byte

Nineteen Connect-4 agents ranked by strength per byte — and the honest answer wasn’t the one I expected.

Connect 4 is solved, so perfect play is a known target. NeuroFour ranks 19 agents by strength per byte under a 5M-FLOP budget, scored against an exact solver (the solver itself is the 20th entry, over budget by design). Zero leads optimality, ladder Elo, and NeuroFour Score among those 19 under-budget agents — at 0 bytes and 0 parameters, ahead of all 14 learned-net entries (6 distinct weight files, largest ~24 KB). Ladder Elo 754 vs 631 and NeuroFour Score 96.45 vs 74.25 are clear margins — though that score divides strength by a size penalty; optimality 0.960 vs 0.957 is one move in 300 on a single seed. Each comparator is the strongest learned entry on that axis (a tie, for optimality) — four entries across two weight files, none leading on all three. It doesn’t lead everywhere: Zero ranks 4th of 19 on soundness, 15th of 19 on latency, and 18th of 19 on FLOPs/move, spending 4,999,028 of the 5M-FLOP-per-move budget. Best net per byte: 0.950 at 2,867 bytes.

Free-tier API — first move may take ~30–60s to wake.

benchmark designPython / FastAPIReact 19
Native game · C++20 / SDL2

PAC-MAN Reimagined (C++ / SDL2)

~3,000 lines of native C++20 — four distinct ghost AIs, co-op multiplayer, cross-compiled to an ARM handheld.

Built from scratch with procedural chiptune audio and sanitizer/coverage/strict build presets and tests.

C++20SDL2CMakecross-compile

Work with me →