Academic & Personal Projects
Throughout my academic career, I've had the opportunity to work on various engineering and computer science projects. Below are some of the highlights showcasing my technical skills and problem-solving abilities.
Engineering Projects
Digital Logic Analyser
UW Madison (ECE551 Project)
- Designed and implemented a 5-channel logic analyzer capable of sampling signals at up to 400 MS/s with adjustable threshold levels, trigger conditions, and protocol-based triggering (SPI and UART)
- Developed RTL using Verilog HDL, partitioning functionality into datapath and control modules; performed functional verification using self-checking testbenches in ModelSim
- Synthesized the design using Synopsys Design Compiler, optimizing for area while meeting 1 GHz timing constraints, and demonstrated successful capture and analysis of test signals on the DE0-Nano FPGA board
Tech Stack: SystemVerilog, ModelSim, Synopsys
Digital Neuron Design
UW Madison (ECE555 Project)
- Designed a neural network perceptron module for machine learning acceleration using Cadence VLSI tools, optimizing for area and timing efficiency
- Developed MAC unit components with gate-to-layout design flow in ASAP7nm PDK, verifying via DRC/LVS
- Optimized critical paths across RVT/LVT process corners through parasitic extraction and metal (layer) routing
- Implemented 2-input neuron with configurable weights and ReLU activation for binary classification, characterized with FO4 loading through pre/post-layout simulation
Tech Stack: Cadence VLSI Tools, ASAP7nm PDK
Embedded Multiplayer Dino Game
UW Madison (ECE353 Project)
- Engineered a dynamic multiplayer Chrome Dino game on PSoC6 MCU using FreeRTOS, implementing real-time task management and UART-based player/game state synchronization
- Developed custom drivers to interface with various PSoC6 peripherals including joystick control, IMU-based obstacle dynamics, and light-sensitive display adjustments
Tech Stack: C, FreeRTOS, PSoC6 MCU
MIPS Processor
UW Madison (ECE552 Project)
- Currently working on designing and implementing a MIPS processor with pipelined architecture
- Developing core components including ALU, register file, control unit, and memory interfaces
- Implementing pipeline hazard detection and forwarding logic for optimal performance
Tech Stack: SystemVerilog/Verilog, ModelSim
Computer Science Projects
Operating Systems
UW Madison (CS537 Projects)
- Implemented various OS features including system calls, memory management, scheduling policies, and synchronization primitives in the xv6 operating system
- Developed a custom shell supporting pipes, environment vars, and built-in commands using the fork-exec model
- Built an optimized concurrent key-value store server using a thread-safe ring buffer and fine-grained locking
- Created a FUSE-based file system with support for core (CRUD) file and directory operations
Tech Stack: C, xv6, Linux
Minirel Database Design
UW Madison (CS564 Project)
- Built a single-user DBMS supporting simple SQL queries to understand query execution and DBMS internals
- Implemented a buffer manager with clock algorithm for page replacement and a hash table for page tracking
- Developed a heap file manager and query processing operators (selection, insertion, deletion) for the DBMS
Tech Stack: C++, SQL, Unix
eBay Auction System
UW Madison (CS564 Project)
- Designed a relational schema for a large-scale eBay auction data in JSON format using ER diagrams
- Developed a Python program to transform JSON data into SQLite load files based on the relational schema
- Created and tested a SQLite database with the transformed data, running complex SQL queries for validation
Tech Stack: Python, SQL, SQLite, JSON
Reddit Posts Search Application
UW Madison (CS400 Project)
- Co-led a backend team of 8 in the development of an app, that implemented a hash table-based search algorithm to efficiently index and retrieve 1000's of Reddit posts based on specific keywords
- Conducted comprehensive unit testing on 2 team members' code using JUnit to validate the performance of the search app, resulting in a highly reliable and error-free application
Tech Stack: Java, JUnit
Air Travel Application
UW Madison (CS400 Project)
- Led 4-person data wrangler team in transforming complex DOT files into optimized graph structures, successfully mapping 40 major US airport routes and connections
- Implemented Dijkstra's algorithm with custom waypoint filtering, enabling users to compute optimal routes while accommodating specific airport preferences
Tech Stack: Java, Graph Algorithms
AI/ML Projects
UW Madison (CS540 Projects)
- Currently working on various AI and machine learning projects focused on neural networks and data analysis
- Implementing supervised and unsupervised learning algorithms for classification and pattern recognition
Tech Stack: Python, Pandas, PyTorch, NumPy