Portfolio
I've (approximately) ordered these with my favorite and most technical projects first.
Coroutines for Linear Type Systems
Concurrency and Parallelism Project
- Defined formal semantics for a Rust-like language with linear typing rules using the K framework
- Added references and ownership of values, and support for run-time checks for single mutable references and multiple immutable references
- Introduced syntax and semantics for asymmetric, stackful, first-class coroutines in the language, with runtime checks for type-safety and ownership
GQL Server
Capstone Software Engineering Project
An SQL database server with integrated version control, written using Rust and Protocol Buffers/gRPC. Features include:
- SQL operations including:
SELECT
,INSERT
,UPDATE
,DELETE
,ALTER
,CREATE TABLE
andDROP TABLE
- SQL Modifiers such as:
WHERE
,GROUP BY
,ORDER BY
andLIMIT
- B-Trees for Indexing
- Creating, Reverting and Squashing Commits
- Creating, Switching and Deleting Branches
- Merging Branches, with conflict resolution policies
Heavy Imp
Programming Languages Project
- An interpreter for a simple imperative language in Rust using heap allocations
- Includes a type-checker and evaluator, ensuring that type-checked programs do not fail
- Tested using randomly generated programs to ensure the following properties of the interpreter:
- A typechecked program implies a successful evaluation
- A failed evaluation implies a failing type-check
- Also includes a WASM compilation option, to run on the browser
VirtuCards
Software Engineering Course Project
- Mobile game for groups of friends to play card games, along with a desktop game to act as shared common screen.
- Includes additional features such as leaderboards, custom avatars, private messaging, custom cardbacks, song requests and animated reactions.
- Built with Unity along with Google Firebase for account management and Photon for multiplayer gameplay.
Solar Farms at Purdue
Final Course Project and Independent Study
- Created artificial neural network models using TensorFlow to predict electric power consumed by a college building over a day.
- Webscraped to create datasets for the building and weather conditions, power produced by a Photovoltaic cell in a day, and the weather conditions of the day.
- Used models to calculate the number of PV cells required to meet the daily electric power consumption for the Purdue CS building, for a certain number of days in the year.
SimpleDB Optimizations
CS 44800 Course Projects
- Added optimizations and new features to SimpleDB Database System, a multi-user SQL Database server written in Java.
- Project 1: Introduced Most Recently Used policy for Buffer replacement, and measured performance gains for Most Recently Used and Least Recently Used policies across different queries and use cases.
- Project 2: Implemented the Block-Nested Loop Join algorithm, with support for inequality and complex joins, as well as cost-estimation for the Block-Nested Loop Joins. Evaluated performance of Block-Nested Loop Join and other join algorithms across different databases.
- Project 3: Added Forced Checkpoints to flush committed transactions to disk when server is idle. Integrated teammate's implementations of Fuzzy Checkpointing and Undo/Redo logging and assessed improvements in recovery and checkpoint steps.
This Website
Website rewrite using Next.js and MUI
This website is a complete rewrite of my previous website. It uses Next.js for server-side rendering and MUI for styling. It additionally uses graymatter and MDX to parse and render markdown files for the blog.
Trumpet Hero
UncommonHacks 2020 Submission
- Used Leap Motion's Python Libraries with a Leap Motion sensor so that the game could detect finger presses.
- Utilized Pygame Library to create a rhythm game that used Leap's Motion Sensors as input.
- Integrated a Python MIDI library to convert songs to notes mapped as finger combinations for the game.
AidFirst
Winner of Best Use of Google Cloud in BoilerMake 2020
- An instant guide to First Aid, helping users identify injuries and telling them the steps to perform first aid. The injury is identified based on camera photos using a trained model.
- Used Flutter to build the app, along with Google Cloud Vision to train the AI and make predictions
Algorithm Visualization
Sorting Visualizations in C++
- Created visualizations for various sorting algorithms, such as Merge Sort, Quick Sort and Shell Sort, using olcPixelGameEngine library in C++.
- Additional progress on visualizations of Graph and Maze algorithms.
EcoHunt
Winner of EcoMake 2019 Hackathon
- Online competitive scavenger hunt game for finding and picking up trash located by cameras
- Trained Azure Custom Vision API identify images of trash on sidewalks and uploaded photos to Google Firebase
- Designed frontend of website with HTML/Bootstrap, and coded backend with ASP.NET framework in C#
MIDI File Editor
Programming in C Final Project
- GUI built using GTK in C to perform alterations to song files, such as changing the speed, instrument and notes.
- Implemented in C parsing of binary .midi file into data structures, as well as creating of a library from all the .midi files in a folder.
SpoilerFree
BoilerMake 2021 Submission
- Helps compile a list of shows watched, either from Netflix or manually with a lookup.
- Extension finds videos which have content related to any of the shows on the list and blocks them, both replacing the image with a warning and the title with a blank.