projects

i'm building projects on the side. for the latest + full list, see my github.

🎵 Sync

GitHub

built for HackIllinois (Modal + Solana tracks):

basically the backstory is that we wanted to build something fun since most of my team had never done a hackathon before but we also wanted to compete for tracks and try to win with technical complexity. on my bucket list of things to build, i wanted to build a machine learning model to generate music based on a user's top song's MIDI (music data file) but i thought that was too boring and basic for a hackathon so when i was brainstorming i remembered how enraged my friends would be my geometry dash and then i thought to how slither.io/agar.io have versions where you can bet crypto to gamble. we knew this idea didn't solve any problem (and lowkey endorsed gambling) but it sounded so fun that we went all in on it.

Highlights

Music Generation

we trained a LSTM (Recurrent Neural Network) on modal's GPU for modal track that generates tracks based on the user's top song's MIDI file. then deployed it as an RESTFUL API on Modal

TypeScript Game Engine

Full game built in TypeScript with custom gravity/physics (jump arcs + collisions) and terrain generation synced to the music beat.

Verifiable random function

ORAO VRF is a crypto concept that we used to ensure terrain generation that's actually proven random and not just a pseudo-random number generator.

Auth + Data

Privy handles seamless wallet auth (no extension required), Firebase stores scores and match state for duel mode, and wallet connection is only required for staking or duels.

Stack

Next.js + React (TypeScript), custom TS game engine, Tone.js, Solana/Anchor smart contracts, ORAO VRF, Privy auth, Firebase, and Modal-hosted LSTM inference.

built for disc club at northwestern:

muse is a social networking platform that connects people through their music taste. powered by spotify, users can discover others with similar musical interests, view top artists, and save connections. for the original assignment we used a premade api to fetch users, so artists were randomly generated; that flow was later commented out after adding supabase auth so users can create their own accounts.

Highlights

Spotify OAuth

Sign up and login via Spotify OAuth with automatic profile picture sync and top artists integration.

Social Discovery

Browse users by music taste, view profiles, and save connections directly from the app.

Auth Migration

Replaced assignment-time random user artist generation with account-based flows after adding Supabase auth.

Backend API

Node/Express REST endpoints for auth, user discovery, saved connections, and Spotify callback handling.

Stack

React frontend, Node.js + Express REST API, Supabase (auth + DB), Spotify Web API OAuth, and CORS.

🏀 Basketball Tournament Prediction Analysis

CompetitionGitHub

data science project analyzing college basketball games and building predictive models for tournament outcomes. includes team rating systems (Elo, WHR, KenPom-style efficiency) and a model ensemble to improve prediction quality.

Highlights

Rating Systems

Implemented Elo with home-advantage/stat adjustments, Whole History Rating (WHR), and KenPom-style efficiency metrics.

Model Benchmarking

Trained and compared Logistic Regression, Random Forest, Gradient Boosting, SVM, and XGBoost.

Ensemble Strategy

Combined multiple model outputs into an ensemble for more stable tournament predictions.

Data Pipeline

Worked across multiple CSV datasets (game logs, regional groups, team metadata) in a notebook workflow.

Stack

Python, pandas, numpy, scikit-learn, XGBoost, matplotlib, seaborn, and Jupyter Notebook.