
I'm a 4th-year computer science student at Georgia Tech, studying the Systems & Architecture and Intelligence concentrations. I am also minoring in robotics, which allows me to take several exciting ECE courses.
This website showcases some of the projects I have made in my free time. I love learning new programming languages and technologies, so many of these projects were built to solve real problems while exploring new concepts.
A website for solving crossword puzzles together in real time. I made this to solve the lack of multiplayer support in the NYT Games app. Uses a custom .puz file parser supporting circled tiles and rebuses.
An online Wordle game that supports lobbies of up to 10 players. I enjoy Wordle and wanted to play with friends, so I built this. Solving in fewer guesses gives drastically more points to discourage memorized opening sequences.
A simple program to practice perfect clear strategies for modern Tetris games. I always wanted to learn perfect clear openings and loops but couldn't find any good practice tools, so I built this all-in-one learning tool.
A modern, simple timer website and desktop app for speedcubers. Includes standard features such as keyboard timing, tracking solve times in sessions, saving personal records, and logging past scrambles.
A simple algorithm trainer website for speedcubers. Uses spaced repetition and allows you to select the specific algorithms you want to train, drastically speeding up the learning process.
OCaml solutions to the first 12 days of Advent of Code 2025, written mostly in pure functional style. I wanted to learn a functional language and figured this would be the perfect opportunity. OCaml was appealing as many of my favorite Rust features were borrowed from OCaml (Option enum, pattern matching, block expressions, etc.).
A toy compiler which converts a simple reactive frontend language into JavaScript in a style similar to Svelte. Built as a way to play around with OCaml more after Advent of Code, in particular on a problem OCaml is well suited for with its ADTs, pattern matching, and static typing.
A website for playing online 1v1 games with friends, including chess, connect-4, ultimate tic-tac-toe, and more. Made in the style of Lichess, but for more kinds of turn-based games.
A program that generates random-state scrambles for the 3x3 Rubik's Cube. Made as a way to experiment with Rust and solve a problem that requires some interesting algorithms and optimization tricks.
A very small and silly website to help myself remember Pokémon type interactions (such that I can make strategic moves in Pokémon Chess).
A website to practice sight-reading sheet music, built with a team for the GunnHacks 9.0 hackathon. Displays notes on a staff with either treble or bass clef, and you play the shown notes either using the on-screen piano or on a physical MIDI device that you connect.
A simple desktop app that generates pure sine waves for practicing pitch memory (to avoid distinguishing by timbre, as I might with the recorded piano notes used in other practice tools). I used JavaFX to practice for the CS 1331 advanced standing exam at GT, which included some JavaFX content.
A real-time 1v1 Wordle game made for the GunnHacks 8.0 hackathon. This was my first experience with web development, made as a fun way to tag along with the Wordle craze at the time.