Under the Hood
For recruiters and engineers.
How the two apps are built, and my AI and research background.
How the apps are built
- AppReact Native, Expo, TypeScript
- APIVercel serverless functions (Node.js)
- Data and sign-inSupabase: Postgres, phone sign-in
- RegisterSquare catalog, inventory, orders, payments
Payments verified server-side
Card, Apple Pay and Sheesh Cash checkout. Before charging, the server re-prices every order from Square's catalog and re-checks store hours, the pickup slot, sold-out items, the owner's pause switch and the customer's live Sheesh Cash balance, so an outdated app can't order outside hours, at a stale price, or with cash it doesn't have.
Loyalty that works in store too
5% back on app orders, plus in-store credit by QR scan or phone number. Square webhooks attach the reward to the right account, and refunds reverse it.
Two brands on one design-token system
A side picker switches the whole app between Shawarma (dark) and Cafe (light), each with its own menu, hours and colours.
Updates matched to each build
Over-the-air updates are checked against each installed build's fingerprint, and owner controls show the exact running version.
Status earned from dollars spent, not points
Redeeming never costs a member their tier. Pearl, Ruby and Noir earn at 1×, 1.4× and 2×, and status resets on each sign-up anniversary.
App-only prices on the same register items
Charged by the server, so the app can cost a little more without splitting the cafe's stock count.
A crash traced into an open-source library
Found through Sentry and traced to a scroll loop in a bottom-sheet library that overflowed the native stack. Shipped a guard while the upstream issue stays open.
Live stock per location
Read from Square for each of 6 locations: sold out at 1 or fewer, with quantity limits at checkout.
Rewards and automatic nudges
Tier-only rewards, birthday and welcome drinks, and push notifications for win-backs and status milestones.
Menu live from the register
Menu, prices and sold-out items come from Square. The owner edits the register and the app updates with no release.
Same-day releases
EAS Build, Submit and Update ship fixes over the air without store review, with Sentry monitoring.
Owner controls
Owners pause ordering themselves, per location where there are several.
Sandbox before production
Payment and order logic is validated in Square's sandbox before real money moves.
Stack
Languages
- TypeScript
- JavaScript
- Python
- SQL
- Java
- C++
- HTML/CSS
Mobile and web
- React Native
- Expo
- React
- Node.js
- Zustand
- Reanimated
Backend and payments
- Supabase
- PostgreSQL
- Vercel
- Square APIs
- Apple Pay
- Twilio
- Resend
AI/ML and privacy
- Model evaluation and benchmarking
- NER
- PII detection
- scikit-learn
- Feature engineering
Systems and practice
- Git and GitHub
- Docker
- Linux
- AWS
- GCP
- Sentry
- Code review
- Secure API design
AI, research and teaching
M.S. Computer Science, AI/ML track
B.S. in Computer Science, summa cum laude.
Fyxe: PII detection and anonymization
Finds and removes personal information from prompts with NER and pattern detection instead of an LLM. Benchmarked against a RoBERTa baseline on ShareGPT52K.
Clinical Informatics Research Intern
Built a causal graph for disease quantification with propensity score matching and structural causal modeling, to analyze treatment outcomes in patient records.
Software Research Intern
Built an acoustic analysis pipeline in Python with the Montreal Forced Aligner for post-stroke speech recordings, cutting manual analysis time by about half.
COVID-19 predictive modeling
Random Forest regression predicting daily mortality rates (R² ≈ 0.74), with feature engineering and cross-validation.
Graduate Teaching Assistant
Reviewed 100+ students' code through GitHub pull requests across three terms, and mentored in reinforcement learning, probabilistic models and heuristic search.