The long version, with the footnotes.
A deeper look at each role, reverse-chronological.
Senior Product Engineer
Own the systems behind Shoppin's AI fashion product as it grew from a discovery/try-on app into a full commerce and custom-manufacturing platform: the feed, the try-on, the pricing, the payments, and eventually the machine that turns a generated garment into a factory-ready sewing pattern. Roughly: everything between the content firehose and a real garment on someone's doorstep.
- → The hardest part of a recommendation system is deciding what "personalized" means for a brand-new user
- → Provider racing beats picking the best provider; latency *is* the product
- → Deterministic beats clever: LLM-only pricing gave the same tee two prices; a model-backed layer fixed it
- → You don't automate the expert away; you hand them a near-perfect starting draft and let their judgment finish it
- → Redis Lua is the cheapest distributed lock you'll ever write
- → PG COPY protocol is 10–100× faster than executemany; more people should reach for it
- → ~2,090 commits across 12 repos in ~9 months: Python backends, a TS API, two Next.js apps, a React Native app, and GPU/ML serving
- → The pattern engine took a master pattern-maker from 2–4 drafts a day to 9–10
- → Built a two-stage query predictor that guesses your next search before you type it
Founding AI Engineer
Show up on day one to the brief "we need a backend" and leave with every system the product needs: architecture, schemas, real-time messaging, RAG, LLM serving, eval pipelines. The classic founding deal: own everything, hand it off as the team grows.
- → Founding-eng is a speed game: write for rewrite; nothing you ship survives year two anyway
- → Multi-provider LLM fallback isn't optional; models fail silently, and they fail often
- → RAG quality is a query-expansion problem more than it is a retrieval problem
- → One backend, four channels: the hard part is making them feel like one assistant, not four bots
- → Eval pipelines kill 80% of the "why does the bot sound dumb today" debugging
- → Scaled to 20K+ concurrent sessions on FastAPI before anyone thought to benchmark it
- → Built the whole gRPC LLM layer on a weekend because the team kept hitting rate limits
- → The LLM infra I shipped quietly became every team's default, the best kind of adoption
Founding AI Engineer
Build a freight-forwarding agent that could run a logistics desk on its own: read the emails, understand the ask, chase the missing details, get the quotes, and pick the best one, all without a human babysitting each step.
- → Real-world documents are hostile; a scanned rate sheet will break any extraction that assumes clean input
- → An agent that says "I need one more thing" beats one that guesses and gets it wrong
- → Turnaround went from hours to minutes and drove 3× outbound volume
Founding Engineer
First real founding gig: show up, learn how to ship enterprise software, and convince Toyota and UCO Bank that this is something they can run on.
- → Enterprise clients tell you the real requirements six months in, so start with the flexible version
- → A 33× latency win (1s → 30ms) is usually hiding in one query nobody dared to rewrite
- → The security work nobody wants to own (SAML, DLP, malware scanning) is what unlocks the enterprise deal
- → Azure is not AWS; both are fine, neither is magic
- → First time selling into Toyota; still fascinated by the procurement processes of companies older than me
- → Built full-text search from scratch because Elasticsearch felt like overkill for our corpus
Selected contract work for founders and teams who needed a system built fast, all shipped, all running in production.
Real-time CDC pipelines feeding enterprise contact-center analytics: terabytes of Postgres data, live-streamed into a warehouse built for fast aggregation.
- → Debezium + Kafka Connect captures Postgres row-level changes and streams them to Kafka with at-least-once delivery
- → Go consumer workers transform and batch-write to Apache Pinot, with idempotent keys so replays don't double-count
- → Schema-evolution handling that auto-adds Pinot columns as upstream tables grow, so ops doesn't ship a migration per column
- → Backfilled the historical data without downtime using a blue/green table switch
Built the backend for an event-management / wedding platform (including a full job portal), plus LMS-style features for their programs.
- → Job-portal backend from scratch: listings, applications, and role-based access across candidates, organizers, and admins
- → LMS-style features: a quiz engine with timed sessions and scoring, plus an assignment-submission pipeline
- → Secure HLS video delivery: m3u8 playlists served from signed S3 URLs with short-lived tokens and adaptive bitrate