← Back to home

Projects

Three case studies with architecture and design decisions, then everything else I have built. Private repos are available for a walkthrough on request.

Case studies

Screenshot of POI Game

POI Game

2025 - 2026

USC Integrated Media Systems Center (IMSC), with Dr. John Krumm

A gamified labeling platform that turns GPS visits into ML training data.

  • React
  • TypeScript
  • FastAPI
  • PostgreSQL + PostGIS
Screenshot of Local Events

Personal project

Find live events near you and reserve a spot with Stripe, without overselling.

  • Python
  • FastAPI
  • SQLAlchemy
  • PostgreSQL

More projects

Screenshot of BudgetBoard

BudgetBoard

Private repo

Personal finance dashboard with portfolio intelligence: import holdings from CSV or Excel, track net worth, budgets and Splitwise-style shared expenses, and get real-time SignalR alerts when news hits stocks you own. ASP.NET Identity with refresh-token rotation, EF Core and a Quartz background job.

  • .NET 10
  • Angular
  • SignalR
  • TypeScript
  • Docker
Screenshot of Secure Decentralized Audit System

Secure Decentralized Audit System

Private repo

USC CSCI 531, team of 2

Audit-log system for electronic health records. Records are authenticated with JWT, integrity-tagged with HMAC-SHA256 and committed across three permissioned blockchain nodes by a BFT vote (2 of 3). Runs as a Docker Compose cluster with a design doc mapped to PBFT, Tendermint and HotStuff.

  • Python
  • Flask
  • Docker
Screenshot of Deep Research Agent

Deep Research Agent

Private repo

Research agent that decomposes complex questions into sub-queries and runs a Claude tool-use loop over web search and vector memory, all under a self-enforced $0.05 per-session budget and a 2,000-token context cap per sub-query. Degrades gracefully as the budget runs out.

  • Python
  • FastAPI
  • Claude API
  • ChromaDB
Screenshot of Trail Whisperer

Trail Whisperer

Hacktoberfest 2026

Offline trail companion: identify birds by sound with BirdNET and plants by photo with local Gemma, then revisit a timeline and lifelist at home. Optional basecamp adds MongoDB Atlas vector search over local embeddings.

  • Python
  • Ollama + Gemma
  • MongoDB Atlas
  • Docker
Screenshot of Northeast Corridor vs Fly Decider

Northeast Corridor vs Fly Decider

Tells you the smartest way to travel between two US cities (train, fly, drive or bus) with a confidence score and plain-English reasons. Gemini is called from a server-side API route so the key never reaches the client.

  • Next.js
  • TypeScript
  • Tailwind CSS
  • Gemini API
Screenshot of Clipboard Manager for macOS

Clipboard Manager for macOS

Lightweight native menu bar clipboard manager. It monitors the clipboard, keeps a searchable history and lets you pin frequently used items. Prebuilt app artifacts come from GitHub Actions.

  • SwiftUI
Screenshot of Multilingual Self-Debugging Framework

Multilingual Self-Debugging Framework

LLM self-debugging for Python and JavaScript inspired by LDB. Combines static control flow graph analysis with dynamic execution tracing for block-wise feedback, improving accuracy by 7% over baseline prompting on MBPP and MdEval.

  • Python
  • JavaScript
  • LLMs
Screenshot of Artist Search App

Artist Search App

USC CSCI 571

Full stack app on the Artsy API: search artists, explore their artworks and view detailed profiles. Deployed on Google App Engine.

  • Node.js
  • React
  • Tailwind CSS
Screenshot of Chase

Chase

USC CSCI 526, team of 5

Browser-playable Unity WebGL game with physics-based interactions, enemy AI and dynamic level design.

  • Unity
Screenshot of Brief Bytes

Brief Bytes

Team project

News platform that scrapes articles and summarizes them with ML, with the option to open the full story.

  • Svelte
  • Node.js
  • Tailwind CSS