Hi, I'm
Technical Lead · San Francisco Bay Area
I build systems that move money — and AI agents careful enough to be trusted near it.
I’ve spent my career building the systems big retailers run on: the pipeline that tells a grocer what two thousand stores are doing right now, the gateway that makes sure nobody gets charged twice, the services behind the catalog you browsed last night.
Payments taught me a particular kind of carefulness — when a bug is somebody's money, "mostly correct" isn't a thing. These days I bring that same carefulness to AI agents: real tools, real guardrails, and real evals before I'd trust one with real work.
What I do
Four threads of one career, woven like the pattern on a banknote — engravers use it because it's hard to fake. Click to stir the loom.
Home base — services that stay up through holiday peak, and APIs other teams actually enjoy consuming. Mostly Java, Spring Boot, Kafka and GraphQL.
Raw store activity turned into numbers a business can act on in minutes instead of overnight. Databricks, Scala, PySpark, Python, and a lot of SQL on GCP.
My favorite kind of hard: a duplicate request here is a double charge. Tokenization, refunds, idempotency, audit trails — correctness first, always.
The newest thread, growing fastest. They’re my daily backbone for backend work — building APIs, testing, reviews and documentation — cutting the manual effort and shipping features with real context. Claude API, MCP, Claude Code, Python.
The ledger
All of it as a technical lead at Nisum Technologies, embedded with retailers you'd recognize. It's client work, so I'll spare the names here — happy to go deeper over coffee.
Kafka into Databricks, served over GraphQL — live operational numbers for 2,000+ stores, rolled up from store to district to division.
Tokenized the whole purchase path so no service held a real card number.
Store POS transactions — purchases, refunds, receipts — and the tools agents use to issue card refunds and account credit. I handled payment operations and receipt processing, end to end.
Holiday-peak stability work — including a datastore migration under live traffic — then pricing, promotions, registry and personalization.
Legacy warehouse and order management, re-platformed onto GCP microservices with MongoDB.
The services behind search, catalog feeds, inspiration boards and AI-powered related searches, across several well-known brands. Java and Spring Boot on Kubernetes, with Cassandra underneath.
Photography workflow systems for product imagery at one apparel giant; demand-forecast extracts that decide store replenishment at the same one, years earlier. I built the extract architecture and the delivery pipeline around it.
Away from work
Morsel Jar is a free iPhone app I designed and happily vibecoded with my AI agent — one small encouraging morsel a day, in the tone you pick, about the part of life you care about right now. It's the opposite of everything I build at work: no backend, no account, no data leaving your phone. Just SwiftUI, a jar of hand-written fortunes, Siri recall and a widget.
"The app doesn't need a brain. It needs a heart."
That was my one design rule. Everything lives on your phone — the app can't phone home because there's no home to phone. Coming soon to the App Store.
These are the engineer's edition, written for this page — the ones in the app are kinder.
Now
Tool design, MCP, and especially evals. I already code with agents every day; now I'm building the systems side of it. I think evals are to agents what tests were to services: the thing that separates demos from systems.
Morsel Jar needs hundreds of them, hand-checked, across three tones and four focuses. Harder than it sounds; more fun than it should be.
You'll find me at Bay Area meetups and tech events — usually in whatever conversation is about payments correctness, or about trusting agents with real work.