AI Product Engineering · Portfolio

I don't just direct AI products. I build and run them.

Over the past several months, working solo and part-time around a full-time job, I designed, built, deployed, and now operate five real AI products — including a live SaaS that runs a real 22-unit rental business and a Socratic tutor whose releases are gated by a 61-scenario evaluation harness.

This page is written for evaluation, not decoration. Everything on it is backed by a real number or a named file and mechanism you could open and check — the two case studies below trace each system from problem to architecture to guardrails to real usage. Production runs on Anthropic's Claude today; the underlying skills — prompt and context design, structured outputs, tool-calling architecture, evaluation design, guardrail engineering, cost/latency tradeoffs — are provider-agnostic.

Live in production Web · native iOS · SMS Solo — no eng team, no QA

The work, in numbers

Real, rounded where sensitive. Aggregate counts pulled live from production on 2026-07-15 — no demo data.

5
production AI products shipped solo, part-time
3
platforms in production: web, native iOS, SMS
7 / 22
buildings / units DoorOps runs on — a real, live portfolio
~350
AI-handled leasing SMS on that real portfolio
~80
autonomous ops-agent runs, propose-first
61
CI-gated eval scenarios gating Lumenor releases
3
model providers orchestrated in one Tiglit feature
0
dedicated engineers or QA on any of it

Two flagship case studies

Each leads with a different strength the same way a hiring manager would test for it: one is about keeping an autonomous agent safe in production; the other is about proving an AI system is safe before it ships.

Flagship 01 · Production & agent safety

DoorOps

An AI property-ops platform, dogfooded live on a real Phoenix rental portfolio

How do you let an LLM take real actions on real tenants and real money without it ever doing something dangerous? DoorOps answers that in code, not policy.

  • A fail-closed safety gate (engine-core.ts) that will not release a door code to a unit a tenant still lives in — and blocks if it can't even evaluate the date.
  • A typed command registry where the model only ever picks an action id; every write is zod-validated, CAS-claimed, and audited with before/after snapshots.
  • A propose-first ops agent with real cost gating ($3/$15 per MTok, a hard $75 monthly budget) and a hard-coded list of things it may never do autonomously.
Read the full case study →
Flagship 02 · Evaluation & guardrails

Lumenor

A Socratic AI tutor whose releases are gated by a real evaluation harness

Anyone can demo a tutor. The hard part is proving it won't hand over the answer, fall for a jailbreak, or mishandle a crisis — every build, automatically.

  • A CI-gated harness of 61 scenarios across 9 categories, run against the real model, dual-scored by mechanical assertions and an LLM judge (evals/run.ts).
  • A real red-team corpus: base64/Caesar-cipher extraction, fake [SYSTEM OVERRIDE] injection, a grandmother-deathbed escalation, upload-embedded prompt injection.
  • Defense-in-depth that buffers risky answers, runs a second leak-audit pass, regenerates once, then hard-blocks — and fails closed if the auditor itself errors.
Read the full case study →
Shipping discipline

The iOS journey: two apps, real App Review cycles

Getting an AI app approved is its own engineering problem. Two of these products are native/hybrid iOS apps that went through real Apple review — including a three-count rejection I fixed in a same-day build, a native sign-in bug whose root cause was two layers deep, and a trademark rejection that forced an entire rebrand.

  • Lumenor (Capacitor + Xcode Cloud): Build 30 rejected on 2.3.8 / 2.2 / 5.1.1(i), each fixed and traced to an exact guideline in Build 31.
  • Tiglit (native SwiftUI): three review rounds; round two flagged the app's own name as a trademark risk, forcing a full rebrand from "Real Tamagotchi."
Read the iOS journey →
FROM EMPTY REPO TO
App Review
TestFlight · Xcode Cloud · StoreKit · native auth · rejection fixes · a full rebrand

Supporting work

Three more real systems that round out the range — a different kind of AI orchestration, disciplined agent-operations, and unattended automation.

Tiglit

Multi-provider orchestration

Six research-backed toddler-parenting tools. Its Story Studio orchestrates three AI providers in one feature — Claude for reasoning, Gemini/Lyria for song audio, fal.ai for video — behind a resumable generation pipeline with idempotency tokens and hard per-feature spend ceilings. Honest gap: no automated evals yet, named as a real next step.

See the build history →

Solo Stack

Agent-operations

This site. The real skill on display isn't application code — it's agent-operations: a hand-rolled Netlify-API deploy pipeline (no git), a scheduled-task publishing cadence that's run 3×/week without a missed cycle, and one honestly-reported near-miss where a broken fallback deploy silently reported success.

See the build history →

I Need Wisdom

Unattended automation

Not an AI product with users depending on model decisions, but real automation: a daily scheduled research-and-publish pipeline behind a 1,114-verse sourced content library, running unattended. Included for honesty about the range — it's a content/automation project, not a model-in-the-loop system.

See the build history →

Résumé summary

The same work, condensed to the bullets a recruiter or hiring manager can lift directly.

Founder & AI Product Builder — Solo Stack

2025 – Present

  • Independently designed, built, deployed, and operate a production AI property-management platform (DoorOps) live on a real 7-building / 22-unit portfolio — including a fail-closed compliance gate that blocks releasing a door code to an occupied unit, and a typed command registry where the model only selects an action id while every write is deterministically validated, CAS-claimed, and fully audited with before/after snapshots.
  • Built and operate a CI-gated AI evaluation harness (Lumenor) — 61 scenarios across red-team, jailbreak, and teaching-quality categories, dual-scored by mechanical assertions and an LLM judge, that blocks releases on regression and refuses to fake a pass when the API key is missing.
  • Integrated multiple model providers (Anthropic Claude, Google Gemini, Deepgram, ElevenLabs, Anam) into production consumer and B2B applications across web, native iOS, and SMS — including a tiered cost/latency routing split and hard per-feature spend ceilings.
  • Took products from problem discovery through real deployment — App Store submissions, custom domains, production incident response — diagnosing and fixing real bugs (a silently-failing DB migration, a mis-scoped OAuth callback, a carrier SMS registration rejection) rather than working from a spec in isolation.
  • Used AI-assisted development throughout while personally owning product definition, architecture, integration design, guardrail design, testing, debugging, deployment, and production operation.
What's next

A public, live evaluation console

The single highest-leverage thing I can build next: a public console that runs evaluation scenarios on demand and grades accuracy, safety, latency, and cost — and lets you compare versions side by side. The evaluation discipline behind Lumenor already exists and runs in CI today; the next project is making it something you can watch happen in the browser.

How to verify any of this: every technical claim here points at a real file, function, or number. The case studies name the exact source files; the devlog tells the same stories warts-and-all, with the dead ends and the incidents left in. If you're screening me and want to go deeper on any specific mechanism, that's exactly the conversation I want to have.