Case study · Founder & Lead Engineer · 2025 – Now
Optimal
Shopping
A grocery price comparison app that tracks prices across 1,000+ store branches and finds the cheapest way to split your list across up to four stores. I built all of it.
The problem
Grocery prices vary a lot from store to store, but nobody has time to check four websites before a shopping trip. And the cheapest store for eggs is rarely the cheapest for chicken.
Optimal Shopping answers one question: given your list and where you live, which stores should you go to, and what should you buy at each?
My role
I'm the founder of Optimal Data Inc. and the only engineer. I designed and built the data pipeline, the search, the database, the web app, the mobile app and the billing. I also manage one hire on the product and marketing side.
The code is private. I'm happy to walk through any of it in an interview.
How it fits together
What I built
- Data pipelinePython and FastAPI orchestration in Docker. Checkpoint-resumable batch jobs, so a crash never means starting over, and automatic detection of stores that stop returning data.
- Basket optimizerFor every allowed set of up to four stores, buy each item where it's cheapest, then add the cost of the shortest trip. Keep the best total. Distance and trip time are part of the price.
- SearchSemantic product search with OpenAI embeddings, query expansion, a brand lexicon and 15+ category filters, so “oat milk” finds what you meant.
- AppsA Next.js web app, plus an iOS and Android app in React Native and Expo with Apple Sign-In, GPS, push notifications and camera.
- BillingFreemium. Stripe on the web and RevenueCat on mobile, merged into one subscription profile with webhooks.
- DatabaseMulti-schema Supabase Postgres with row-level security across many migrations. User data stays in-house; nothing is sent to third-party monitoring.
- Social featuresCollaborative lists, friends, a savings leaderboard, referrals and a usage-metered free tier.
The hardest part
Collecting retailer data responsibly: staying within each store's rules, and building the pipeline so it doesn't get blocked in the first place, instead of fighting blocks after the fact.
The second hardest part is presentation. People shop for very different reasons. Some want the lowest total, some want one quick trip, some want a specific brand. The interface has to make the tradeoffs obvious without burying anyone in numbers.
Try the idea
- Bulk BarnMilk, Eggs, Chicken, Coffee, Rice
- Market HallSalmon
Also built: the company workspace
Optimal Data runs on a workspace I built instead of paying for Asana, Buffer and QuickBooks.
- AccessMulti-tenant, role-based access for 5 roles, audit logging, admin impersonation
- FinanceIncome and expense ledger by project, payroll (hourly, salary, commission), partner payments
- MarketingCampaign link tracking with click analytics, content calendar, Instagram OAuth, hashtag presets
- LaunchEarly-access waitlist with approve/reject and invite-token gating