Three engagements, in detail.
The problem we were handed, the architecture we settled on, the stack we shipped, and what changed once it was live. Names and metrics are real. We've kept the dates honest.
Re-platforming a billing engine without an outage
We rebuilt Northwind's billing core on a usage-metered model, migrated 41,000 active subscriptions live, and replaced nine internal tools with one admin console.
Problem
Northwind had outgrown a flat-fee billing model. Custom contracts were tracked in spreadsheets, invoices were corrected by hand at month-end, and finance closed three days late every cycle. The team had stopped trusting any single source of truth, Stripe included.
Approach
We built an event-sourced ledger in Postgres, wrapped Stripe in a thin adapter, and gave revenue ops a console where every credit, refund, and override has an audit trail. The cutover ran as a shadow dual-write for two billing cycles before we flipped reads.
Architecture
- Event-sourced ledger in Postgres with append-only writes
- Idempotent ingestion of usage events via SQS
- Daily reconciliation against Stripe with diff alerts
- Admin console with audit log of every credit, refund, and override
- Background workers for invoice generation and dunning
Stack
- TypeScript
- Next.js
- Postgres
- Redis
- AWS Lambda
- Stripe Billing
- Tailwind CSS
14 weeks · two engineers
An AI assistant clinicians actually trust
A retrieval-grounded assistant for 2,300 clinicians, tuned to refuse when it should. Audited against an 1,800-question eval set every week in CI.
Problem
Atlas's clinical policy library was 14,000 PDFs plus a wiki nobody had updated since 2022. Clinicians asked colleagues instead, which slowed care and buried senior staff in repeat questions. An earlier AI vendor pilot was shut down after one hallucinated dosing answer reached a chart review.
Approach
We built hybrid retrieval (BM25 plus dense vectors with a re-ranker) over the policy corpus, with citations that link back to section anchors in the source PDFs. Answers below a confidence threshold get routed to a clinical reviewer. The UI is closer to a search box than a chat. That was their ask, not ours.
Architecture
- Hybrid retrieval: BM25 + dense vectors, re-ranked
- Citations rendered with section anchors back to source PDFs
- Refusal pathway gated by self-consistency and citation count
- Eval harness with weekly regression runs in CI
- Reviewer queue with SLA tracking
Stack
- TypeScript
- Next.js
- Postgres + pgvector
- Python (eval harness)
- Anthropic Claude
- AWS Bedrock
11 weeks · three engineers
Replacing twelve spreadsheets with one operations console
We folded Meridian's dispatch, exceptions, and reconciliation workflows into one console, retired twelve spreadsheets, and gave the ops team back 31 hours a week.
Problem
Meridian ran a $90M logistics operation on Google Sheets held together by macros written by an employee who'd left two years earlier. Every exception was four hand-offs and three logins. New ops staff took six weeks to ramp because the institutional knowledge was in those macros.
Approach
We built a console with role-aware queues, an inbox for exceptions, and an audit log on every action. The data layer reads from the existing TMS over a replica connection, so we never had to migrate the source of truth. The onboarding docs are generated from the workflow definitions, so they stay accurate.
Architecture
- Read-replica connection to the existing TMS
- Workflow engine with role-based queues
- Audit log of every action, exportable by case
- SSO via Okta with granular permissions
- Realtime updates via Postgres LISTEN/NOTIFY
Stack
- TypeScript
- Next.js
- Postgres
- Prisma
- Tailwind CSS
- Okta SSO
9 weeks · two engineers
Working on something similar?
Send over a paragraph or two. We'll read it carefully and write back.