Systems running in production, not mockups. Each is labelled honestly — client engagements, my
own products, and internal tools are different kinds of evidence, and you deserve to know
which is which.
Kranson-Schubert Mental Health Foundation
Client · Live
Dr. Donald K. Schubert, a psychologist of 46 years, was launching three things at once: a
mental-health foundation named for his parents, a first-annual community Thanksgiving
celebration, and an author catalogue for his five books. He had no web presence — he'd tried
a DIY site builder a year or two earlier and abandoned it as too confusing.
I built three cross-linked sites with a nine-theme design system he chose from, a
password-gated editor, a Google-Doc editing pipeline with fuzzy matching so a typo corrects
a record instead of duplicating it, and plain-English editing by text message. Live on
custom domains eleven days after the first call — with the first deploy the
same day we spoke. The domains were registered in his name, not mine, so the Foundation owns
its identity outright.
kransonschubertfoundation.org
missionviejothanksgiving.org
drdonaldschubert.com
Static HTML/CSS/JS, no framework · content-file architecture · Vercel · GitHub Actions CI/CD · git-backed headless CMS committing through the GitHub API — ~17 pages across 3 sites
Ariya MD
Own product · Live
A platform where medical students and international graduates book peer-to-peer video mock
residency interviews and medical-English speaking practice. Sessions are recorded and
transcribed, then calibrated AI graders return per-criterion scored feedback. Availability
matching, scheduling, forums, admin analytics, and subscription billing.
ariyamd.com
React 19 · Firebase · Vercel functions with bearer-verified auth on every route · Daily.co · Gemini · Stripe — token-verified API surface, audited admin impersonation, grader-drift regression harness
Construction OS
Prototype
A pre-construction pipeline for contractors: lead → plan documents → material takeoff →
estimate → proposal → e-sign. The architectural point is that every mutation flows through
one typed tool registry shared by the UI, an in-app agent, and outside AI over an MCP
endpoint — so each change is automatically audited and attributed to a person, an agent, or
an external actor. Built with a working contractor as domain expert and acceptance tester.
Next.js · TypeScript · zod · zero extra npm dependencies, including a hand-rolled MCP server · pluggable store — 25 typed tools across a 38-module registry
Kith
Own product · Beta
Video calls where each person picks one language, speaks it, and hears everyone else in it.
The organizer has an account; a relative just taps a link. A production translation agent
runs one live session per speaker-to-language pair, publishing translated audio and captions
per listener, and skipping same-language pairs so they cost nothing.
Next.js 16 · Firebase magic-link auth · LiveKit Cloud agent · Gemini Live Translate · dual-clock scheduling with property-tested timezone handling
PhoneCam
Tool · Built
Turns an Android phone into a 1080p30 wireless webcam. The load-bearing requirement was that
streaming survive screen-off and app-switching — which every browser-based approach fails —
solved with a camera-type foreground service streaming hardware-encoded H.264 over WebRTC.
Lens switching from the notification, live stats overlay, thermal auto-downgrade, and
camera-steal detection with auto-resume.
Kotlin · Camera2 · WebRTC/WHIP with shared EGL · MediaMTX · OBS — replaced a commercial app after an instrumented network post-mortem showed why it failed
Book Reader
Tool · Daily use
A mobile-first reading app for long-form markdown: built-in library, uploads, live-from-disk
files, and article URLs extracted server-side into clean reading copy. Chapter navigation
with full-book search and resume-at-last-sentence. Two features earn their keep —
highlight-to-note with typed categories that compile into a machine-fixable feedback report,
and sentence-level narration with tap-a-sentence-to-jump using local voices.
Python stdlib server, no framework · vanilla JS PWA · Kotlin WebView wrapper for Android · local neural TTS — runs as a service on both desktop and phone
Policy simulation model
Own work · Finished
A single self-contained HTML file modelling a contested public-policy question. Drag sliders
for the disputed assumptions and two independent estimators re-run live, with widely-cited
public figures marked on the resulting distribution. The estimators are deliberately kept
side by side rather than averaged, so the difference between counting something and
forecasting it stays visible to the reader.
470 lines, zero dependencies, zero build, any static host · ships with a full parameter-to-source provenance table
AI grader factory
Internal · Tested
The quality apparatus behind automated grading: a verbatim-overlap similarity guard, a
sufficiency gate that refuses to grade an under-length session rather than inventing a
score, a deterministic worksheet builder, a grader-agnostic calibration harness, and a drift
sentinel that re-runs production graders daily and control-charts band stability. The
unglamorous work that keeps an AI feature trustworthy months after launch.
Node ESM · node:test · systemd · strict provenance headers pinned to an upstream commit — 105 tests passing
Happy to walk through any of these live — including the code and the reasoning behind the
decisions. Other client work is covered by confidentiality and shown only on request.