2025

Java, Spark, AWS, EC2, Git (12396 Lines)

I implemented the following components from scratch in Java:

  • Cloud-hosted HTTPS web-server
  • Server-side persitent key-value store
  • Spark-style distributed analytics framework

I then built a web-crawler, indexer, and ranker on top of my system. Following this, I unified all of these components and produced a production-quality search engine in a team of four. We engineered and optimized our design, deploying it to EC2 and processing over 400k pages.

Video Demo Read More

P21 is a tool used throughout the data pipeline by biotechs to help clean their data.

While Pinnacle 21 supplies a great starting point for identifying data errors, the error report can often be several thousand lines long and can exclude important parameters.

This is where my project came in: I developed a software tool that recovers useful information from the original datasets, joins it with the P21 report, and opens a GUI to provide additional filters.

Read More

C, Docker, Git (2442 Lines)

I designed and implemented a FAT-style file system in C, integrating my system with the priority scheduler and shell designed by the other members of my team.

Read More

C++, Docker, Git (4637 Lines)

Implemented Chord: a distributed hash table with efficient key-based routing and dynamically balanced storage. Developed LS routing protocol for adaptive shortest-path computation with low-traffic neighbor discovery.

Throughout this project, I referred closely to the design suggestions as outlayed in the original Chord paper by Stoica et al.

2024

C++, OpenGL, Git (4621 Lines)

Designed 3D game with efficient rendering, dynamic terrain features, interactive GUI.

Video Demo Read More

SQL, JavaScript, AWS, Git (2820 Lines)

Created full-stack (React, Node.js, Postgres) music sharing site, with social network and content discovery. Designed database (7.2 million entries) on AWS, programmed and optimized SQL queries (avg. 7.5s → 400ms)

Presentation Slides Read More

SystemVerilog, RISC-V, Docker, Git (1299 Lines)

Implemented an efficient fully-pipelined RISC-V 32IM CPU and optimized instruction throughput with bypassing

Python, Pytorch, CUDA, Colab (478 Lines)

Designed Seq-to-Seq NN that translates sentences from 1522 possible pinyin to >100k possible characters

Presentation Code

2023

For at least the past three decades, nearly all computer architectures have made use of pipelining, a concept that has proven indispensable in improving the efficiency of computer processors, regardless of the application. Pipelining improves the throughput of an instruction sequence by running instructions in mutually independent stages, thus achieving what is called instruction level parallelism (ILP). This paper provides an overview of how ILP has been utilized to develop more efficient processors, reviewing a selection of papers influential to its use. To this end, the tradeoffs between out-of-order and in-order execution are considered. Finally, the most recent work being done to improve instruction level parallelism is discussed.

Full Thesis Project Poster

2022

Developed a script generator that creates romantic comedy scripts using natural language processing techniques.

Implemented a fully functional blackjack game with a graphical user interface, allowing users to play against the dealer.

2021

Analyzed microeconomic housing market with simulation estimating prices based on distance and income.

Developed a rhyme generator that creates rhyming couplets using natural language processing techniques.