My Projects
Software Projects
Wordle Duels
Technologies: JavaScript, React, Node.js, AWS EC2, Docker, Vercel, GitHub
Date: July 2025
- Built a full-stack Wordle-inspired multiplayer web app with real-time game logic and custom word sets
- Deployed the frontend via Vercel and the backend using Docker containers hosted on AWS EC2
- Designed and maintained the server infrastructure to ensure high availability and responsiveness
Simple DBMS Implementation
Technologies: SQL, C++, GitHub, Linux
Date: January - April 2025
- Built a single-user DBMS that can execute certain simple SQL query functions
- Implemented buffer managers, heapfiles, database catalogs, and relational operators
- Verified correct behavior using test queries on multiple databases
Air Route Search App
Technologies: Java, HTML, CSS, Apache, Git, GNU Make, JUnit, Linux
Date: April 2023
- Created a full-stack web application using Java and CGI scripts for the back-end
- Implemented Dijkstra's algorithm to find the shortest connecting flight between two airports from an undirected graph dataset
Hardware Projects
WISC-S25 ISA
Technologies: Verilog, ModelSim, GitHub, Linux
Date: January - May 2025
- A set of 16 instructions specified for a 16-bit data-path with load/store architecture
- Implemented a 5-stage pipelined processor to improve processor performance and utilization
- Developed separate byte-addressable instruction and data caches to read and write to memory
Knight's Tour
Technologies: System Verilog, ModelSim, Quartus, Synopsys, DE0 FPGA
Date: December 2024
- Implemented HDL code to make a physical knight robot visit every square on a chess board
- Utilized hardware protocols/tools such as a UART and PID to produce desired functionality from robot
- Synthesized project via Synopsys to make sure that it met timing and had an acceptable area
Press Your Luck Game
Technologies: C, VS Code, PSoC6 HAL, GitLab
Date: September - December 2024
- Implemented a game based on the Press Your Luck TV show
- Wrote code that interacted with an LCD screen, joystick, buttons, IO expander, EEPROM, and LEDs on a development board
- Developed a communication protocol that allowed two separate boards to communicate using a UART peripheral device and Circular Buffers