My Portfolio

Some of my favorite projects
that I can share publicly.

Nosi IDE is a fork of vscode being rolled out to CS 6601 at Georgia Tech. Nosi allows staff to enforce a specific IDE environment for all students and keep track of student *IDE metadata* while they work on their assignment. Anti-plagiarism/anti-cheating scripts and models are used to analyze the metadata to flag suspicious behavior. The IDE also contains an AI assistant that can provide helpful nudges when students struggle with their assignment or provide help understanding course content.

Contextual Computing Group, Research Project

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.

Cloud Computing, 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.

Cornell Database Group, Research Project

We re-implemented and upgraded state-of-the-art point cloud classification Deep Neural Networks. We started by implementing PointNet and PointPillars. Then we upgraded them by modifying their architecture, adding Dropout, implementing Data augmentation, and introducing Residual Connections. Improved validation accuracy by 4% and massively reduced overfitting. Paper viewable in repository.

Deep Learning, Group Project

Our team parallelized sparse-matrix multiplication operations using GPUs, massively improving performance of the algorithms. This research used resources of the National Energy Research Scientific Computing Center, a Department of Energy Office of Science National User Facility using NERSC award NERSC DDR-ERCAP0027296. Paper viewable in repository.

Parallel Computing, Group Project

Our team utilized Machine Learning to model flight delay cascades in flight networks. Paper viewable in repository.

Information Networks, Group Project

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.

Distributed Computing, 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.

Database Systems, 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%.

Operating Systems, 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

Object-Oriented Programming, 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.

Functional Programming, Group Project