Things I’ve built

Apps, data products, and systems work, plus things I design and 3D print.

Splitter welcome screen: scan the receipt, pick who had what, fair to the pennySplitter showing who owes what on a $137.36 Birthday Dinner bill split between Alice, Bob, and Cara
iOS App · SwiftUI

Splitter

Splitting a dinner bill usually means someone doing math on their phone and everyone paying the same, even if they ordered less. Splitter fixes that: scan the receipt, tap who had what, and it works out what everyone owes, fair to the penny.

  • Reads the receipt on the phone with Apple’s Vision and checks the items against the receipt’s subtotal
  • Splits tax and tip by how much each person ordered, in whole cents, so shares always add up exactly to the total
  • Tracks who paid and who has paid them back, with a prefilled Venmo request or reminder text
  • No accounts or servers: bills stay on your phone. Covered by 45 unit and UI tests
  • Swift
  • SwiftUI
  • Vision
  • XCTest
Clean Tape overview: headline tiles for the S&P 500, 10-year yield, EUR/USD, WTI and VIX above tables of rates, equities, FX and commodities
Markets Dashboard · Data Quality

Clean Tape

Clean Tape is a morning markets dashboard and end-of-day report for US rates, credit, equities, FX and commodities. Every number goes through seven data-quality checks before anyone sees it, and any number that fails is struck through in red instead of being shown as if it were fine. It updates itself twice a day on free GitHub infrastructure with no servers.

  • Python
  • pandas
  • DuckDB
  • Plotly
  • GitHub Actions
EduPerks welcome screen with Hulu, Uber, Microsoft, Google and YouTube logos: perks for students with your school emailEduPerks home screen for Cornell University showing top picks like the TCAT bus pass, Prime for Young Adults and Spotify Premium
Mobile App · iOS & Android

EduPerks

Students miss out on perks their school already pays for. EduPerks finds them: enter your school email and it shows the benefits available to you.

  • Detects your school from its email domain
  • Checks a Supabase cache first, and only scrapes public school pages with Firecrawl when needed
  • Labels each benefit as Confirmed, Likely, or Needs Verification
  • Refreshes benefit data daily with a scheduled job
  • Flutter
  • Dart
  • Supabase
  • TypeScript
  • Firecrawl
Drone Fleet Health dashboard: drone cards D-01 to D-09, each with a health bar and the next part due for replacement
Hackathon · Cornell Six Sigma

Drone Fleet Health

Drone Fleet Health tells a delivery drone technician which drones are safe to fly before each flight and which motors, propellers and batteries to replace before they fail. My team built it at Cornell’s Six Sigma Hackathon on top of simulated flight logs.

  • Marks every drone Can fly, Warning or Do not fly, with the reason
  • Control charts with all 8 Nelson rules and an EWMA chart for slow wear on motors, propellers and batteries
  • Weibull reliability fits set the age to replace each part type, with a cost model for the replacement policy
  • Technicians can upload their own Excel logbook and see it combined with the test fleets
  • Python
  • FastAPI
  • React
  • Statistical process control
  • Weibull
AI Floor Planner
Hackathon · Cornell

Dell x Nvidia Hackathon

An AI-powered floor-planning tool that places furniture into real rooms under hard safety-rule constraints and matches each item to a product you can actually buy, built in 12 hours.

  • Owned the user flow and UI design
  • Mapped the full journey: floor-plan upload → AI-generated layout → exportable shopping list
  • Built with an LLM tool-calling agent loop behind a 3D room view
  • React
  • TypeScript
  • Three.js
  • Node.js
  • LLM agents
BankPick dashboard: Peak Bank ranked #1 at 4.27% APY, with runner-ups, a growth chart versus Chase, and rate history versus Fed funds
Analytics · Live

BankPick

BankPick tells you where your savings will earn the most. You enter how much you have and when you need the money back, and it compares today’s rates on high-yield savings accounts, CDs and Treasuries to find the option that grows your money the most. The rates update automatically every day.

  • Ranks every savings account, CD, and Treasury for your amount and timeline, with Chase, BofA, Wells Fargo, and Citi shown for comparison
  • Pulls Fed rates from the FRED API and bank rates from Bankrate, then models them with dbt in DuckDB
  • Checks its own data before publishing and flags one-week rate spikes as bad data instead of recommending them
  • Refreshes and redeploys itself every day with GitHub Actions
  • Python
  • SQL
  • dbt
  • DuckDB
  • JavaScript
  • GitHub Actions
CargoPulse
Data Product · Live

CargoPulse

A real-time supply chain risk intelligence platform that pulls live, free data sources into one view of where shipments are likely to get stuck.

  • Live vessel map near 50 major ports, streamed over WebSocket from AIS data
  • Congestion score (0–100) for the top 30 ports, refreshed every 15 minutes
  • Rule-based delay estimate for any origin → destination route
  • Country-level supplier risk heatmap combining congestion, marine weather, and the Baltic Dry Index
  • Python
  • Streamlit
  • Plotly
  • pandas
  • SQLite
  • WebSockets
CardVantage
Mobile App · In progress

CardVantage

Most Filipinos pick a credit card by guessing or following bank marketing. CardVantage matches you to the card that actually fits your spending habits and financial profile.

  • A short questionnaire on spending (groceries, gas, dining, online shopping, travel, bills) returns your top 3 cards, ranked by estimated annual rewards value
  • Filters out cards you wouldn’t qualify for based on income, so you avoid rejections that can hurt your credit standing
  • Side-by-side comparison of annual fees, interest rates, income requirements, rewards rates, and welcome promos
  • Built on my own market research: a 211-card masterlist across 17 Philippine issuers, plus rewards-point valuation data
  • Flutter
  • Dart
  • Product spec (PRD)
  • Market research
LLM Compass
Systems Engineering · In progress

LLM Compass

A team project for Cornell’s SYSEN 5151 (Team Cascadilla). Choosing a language model for an app is usually a day of reading leaderboards, with the reasoning lost in a chat thread. LLM Compass treats it as a trade study instead.

  • A tech lead enters the app’s requirements and reviews the criteria the tool proposes
  • They weight what the team actually cares about: accuracy, cost, latency, context, data rules
  • The tool returns a ranked shortlist with its reasoning attached
  • The decision record can be exported, then re-run when new models ship
  • Systems engineering
  • Trade studies
  • Python
  • LLMs
EV Battery Recycling
Research · In progress

EV Battery Recycling Risk Assessment

Contributing to a multi-criteria decision analysis framework for choosing EV battery recycling pathways.

  • Combines MCDA and FMEA to compare pathways
  • Applies systems thinking across safety, environmental, and economic dimensions
  • Systems thinking
  • MCDA
  • FMEA