GraphSweeper
Minesweeper on a random graph instead of a grid. Nodes are connected by edges from a Delaunay triangulation, laid out by a D3 force simulation, and the graph is live, so you can drag nodes around while you play.
Hi, I'm
CS @ Purdue '27 · SWE Intern @ Google
I'm a senior at Purdue University studying Computer Science, Artificial Intelligence, Statistics, and Mathematics. I'm particularly interested in machine learning and algorithms, with a focus on optimization methods and their real-world applications. I recently wrapped up research with Professor Ruizhe Zhang, where I worked on extending proofs for the Edge-of-Stability to characterize convergence improvements for regularized logistic regression. This summer, I'm interning at Google, where I'm designing controlled experiments within a large-scale production ranking system. Between research, classes, and internships, I enjoy training my own models (for fun or to replicate papers) and scuba diving. I am also involved in ML@Purdue, where I lead ten project managers and ~70 members, organize our hackathon Catapult, and present papers at our weekly reading group.
A mix of research projects, hackathons, and things I've built for fun. Here are the 3 most recent ones.
Minesweeper on a random graph instead of a grid. Nodes are connected by edges from a Delaunay triangulation, laid out by a D3 force simulation, and the graph is live, so you can drag nodes around while you play.
A Python solver that exhaustively finds all possible mathematical expressions given a set of numbers to reach a target value. Implements recursive RPN tree generation and multiprocessing to solve puzzles like the '24 game' or Countdown's numbers round.
A Julia implementation of a primal-dual central path following algorithm for solving linear programming problems. Achieves 7+ digit accuracy on LPnetlib benchmarks, solving problems with 144,000+ non-zero entries in under 300 iterations.