I'm an Economics major at Northwestern University ('27) with minors in Artificial Intelligence, Mathematics, and Legal Studies. I code for research, and I've also been working on personal projects, for fun, since high school! Below you can find some of my projects. I particularly love working on AI... both analyzing its impact on the world, and creating it myself!
A composite index of structural power across 831 U.S. occupations, used to map who is protected, and who is exposed, as AI reshapes work.
- Method: the geometric mean of an autonomy index (esoteric knowledge, accountability, task discretion) and a political-power index (licensing, lobbying, union coverage, employment size).
- Robustness: in 99.99% of 173,050 alternative weighting scenarios, the rankings kept a Spearman ρ of 0.90 or higher with the baseline results.
- Applications: Cross-analysis with AI exposure measures identifies occupations with the greatest/least power to respond to jurisdictional and wage threats posed by AI. Regressions against demographic groups identify the most exposed employees by race, age, gender, education.
A Scrabble engine that finds every legal move on the board and ranks them with a neural network trained by self-play.
- Move generation: the dictionary is compiled into a GADDAG, which lets the solver list every legal play for a rack, blanks included, in one pass.
- Move ranking: a hybrid CNN + MLP network in PyTorch predicts each move's score margin for the rest of the game, then a one-step expectiminimax lookahead over possible opponent racks refines the top picks.
- Training: distributed self-play on a CPU cluster. The final model wins 55–65% of games against a greedy player that always takes the highest-scoring move.
→ Repo
A bot that beats the Google snake game by reading the screen and sending its own keypresses.
- Strategy: follows a Hamiltonian path that visits every tile, and uses A* to take safe shortcuts to the apple.
- Vision: captures the screen to find the board, the apple, and the snake's length, then plays in real time.
- Background: started in 2021 as a reinforcement learning project. I switched to path planning after the RL model proved slow to train and worse at actually winning.
→ Repo