My Portfolio

Some of my favorite projects
that I can share publicly.

1 of 44 projects selected to present at BOOM 2024. My team and I created a Scalable Platform for Efficient Execution of Distributed testing. The fault-tolerant system contains a controller node that orchestrates worker nodes that run JUnit tests on Java code. The worker nodes report their findings to the controller. Once all tests are ran, test results are shown in the frontend to the user

Masters of Engineering Project, Group Project

1 of 32 projects selected to present at BOOM 2023. For CS 5412, my partner and I created a social media website that allows users to create groups, chat with friends using Kafka, and see where their friends are. Data is stored in CosmoDB and the backend runs on Azure microservices made in Python. The frontend runs on HTML, JS, CSS, Node.JS, Express, and communicates via REST API’s. Hosted on Azure App Services.

CS 5412, Group Project

Paper accepted into VLDB 2023. ADOPT is a query engine that combines adaptive query processing with worst-case optimal join algorithms. See technical report here.

Research, Cornell Database Group

Using the DS-Lab framework, my partner and I were able to create a sharded transactional key-value store that uses Paxos for replication and 2PC for multi-key updates. We implemented an Exactly-once RPC protocol on top of an asynchronous network, a primary-backup protocol, Paxos implemented with the PMMC protocol, and 2PC.

CS 5414, Group Project

Our team created a Data Base Management System in Java. Queries are transformed into Logical Query Plans and then turned into Physical Query Plans. Our Interpreter implemented B+ tree indexes that could be stored/loaded via serialization/deserialization.

CS 4321, Group Project

My team upgraded an operating system in C. We made a threading and semaphore package, multi level feedback queue to schedule processes, a file write-through and write-back cache using the Clock eviction algorithm, and we also implemented the FAT file system. These upgrades increased the speed of the OS by 30%.

CS 4111, Group Project

A representation of Chess made in Java. The game allows for two players or one player. One player mode has an AI that uses a minimax algorithm. The score is automatically updated for each player. The project is displayed using JavaFX.

Personal, Solo Project

Tank game made in Java using JavaFX. The game can be one player or two players. The map is a 10x10 square with randomly generated walls and equidistant powerup location. Using Dijkstra's algorithm, an AI is able to play in one player mode. A tank must hit its enemy tank with a bullet to win

Personal, Solo Project

A Ford Fulkerson calculator made using Java, JavaFX, and CSS. The project makes it extremely easy to create graphs of nodes and edges. The max flow of the graph can then be calculated.

Personal, Solo Project

JavaFX Graph Traversal Visualizer. Visual graph that can be interacted with. Allows the creation of graphs/mazes that are then traversed from a starting to ending square.

Personal, Solo Project

A Connect4 representation made in Java with JavaFX. The game can be one player or two players. The player plays against an AI in one player mode that uses a point system to choose the best move.

Personal, Solo Project

We created a simulator of a world full of critters. Critters had their own programmable language called Critter Lang. The project displayed in a GUI using JavaFX which let the user step through the world’s time

CS 2112, Group Project

A JavaFX GUI that allows users to calculate the r-squared value and line of best fit for the inputted data. It also plots the data points and line on a graph. Data can be manually added or imported through a .csv file.

Personal, Solo Project

A terminal Based version of Uno and custom game Uno-Solitaire written in OCaml. Can play locally against friends or against multiple levels of AIs. The state of any game can be loaded and saved.

CS 3110, Group Project