All 
Software
Hardware
Designed and built an audio synthesizer using a fully discrete BJT-based operational amplifier with a PNP differential input stage, active-load voltage gain stage with Miller compensation, and complementary class-AB output buffers. Configured the amplifier as a relaxation oscillator using combined positive and negative feedback to generate ~260 Hz–1 kHz tones with potentiometer-controlled frequency and volume, directly driving an 8 Ω speaker. Verified performance through hand analysis, Multisim simulation (DC bias, AC gain, phase margin, impedance, transient response), and custom PCB implementation with experimental testing.
Developed an embedded music player on the TI MSPM0G3507 LaunchPad with the BOOSTXL-EDUMKII BoosterPack using C and bare-metal programming. Implemented PWM-based audio generation using hardware timers and prescalers to play a predefined song on the buzzer, and designed a finite state machine (FSM) to handle play/pause control via push buttons while displaying real-time note information on the LCD. Configured peripherals by referencing microcontroller and peripheral datasheets, integrating timers, GPIO, PWM, and LCD interfaces to demonstrate low-level firmware development and real-time embedded system design.
JavaFX desktop CRUD application built using an MVC architecture with JDBC-based SQLite persistence. Supports user authentication, course creation, flexible course search, and anonymous course reviews with aggregated ratings and timestamped updates. I implemented the course reviews scene, handled review create/edit/delete logic, enforced single-review constraints per user, and contributed to debugging, validation, and overall application stability.
This project involved designing and building an audio analyzer PCB that lights up LEDs in real time based on audio input. By combining a summing amplifier, high-pass and low-pass filters, peak detectors, and two types of LED drivers (analog and PWM), the system separates audio into treble and bass frequencies. The circuit lights up green LEDs for high-pitched sounds (e.g., snares, guitar solos) and red LEDs for bass (e.g., kicks), providing a real-time visual representation of music. I tested the system with "Seven Nation Army" and verified the response using simulations and physical measurements.
This project applies signal processing techniques to isolate vocals from a mixed audio track using spectral gating and harmonic/percussive source separation (HPSS). The method leverages time-frequency analysis to suppress background instrumentation while enhancing vocal content. Spectral gating is used to attenuate non-vocal frequency bins, while HPSS cleanly separates harmonic (e.g., vocals, synths) and percussive (e.g., drums) components. This project demonstrates my proficiency in digital signal processing, audio analysis with librosa, and real-world applications of Fourier transforms.
This project is a machine learning tool that helps soccer managers find affordable players with similar attributes to elite stars using the FIFA 2024 dataset. It combines K-Nearest Neighbors with clustering algorithms (K-Means and HDBSCAN) to group players by playstyle and recommend hidden talent. PCA visualizations and silhouette scores assess cluster quality. This project highlights my skills in data preprocessing, clustering, and visual analytics with scikit-learn and matplotlib.
As part of my applied circuits coursework, I designed, simulated, and constructed a boost converter circuit to step up a 5V supply voltage to a stable 14.11V output. I completed the full design cycle, including schematic creation and PCB layout in KiCad, ordering the PCB, soldering components, and implementing the circuit. A 555 timer generated a PWM signal with a 78% duty cycle at 1 kHz to drive the MOSFET, enabling efficient energy storage and voltage regulation. Simulations in Multisim and experimental testing validated the circuit's performance, showcasing my proficiency in PCB design, circuit analysis, and hands-on implementation.
The CPU features a 5-bit address bus with access to 32 memory locations and supports operations such as load, store, addition, subtraction, and branching. The simple_cpu module integrates an opcode decoder, instruction sequencer, control signals logic, and a datapath. The datapath includes an ALU (with an adder-subtractor and full-adder), a parser, tri-state buffers, and a zero flag. Custom assembly code was programmed and tested using Quartus' simulation tools and a hierarchical testbench to ensure functionality. This project demonstrated my proficiency in hardware description languages, digital system design, and simulation-based verification, culminating in a fully operational CPU.
This project is an advanced machine learning project designed to predict the outcomes of English Premier League matches. The project encompasses a comprehensive web scraper that collects historical and future match data from the web, ensuring the model is trained on the most up-to-date information. Utilizing this data, this project leverages a Random Forest Classifier to determine whether a team will win, draw, or lose based on various match features. The model has been fine-tuned through hyperparameter optimization and addresses class imbalance through oversampling techniques.
This project is a Python-based Wordle solver that uses information theory concepts such as entropy and probability to recommend the best possible guesses. This solver aims to efficiently solve Wordle puzzles by calculating the information gain of each guess and selecting the optimal word based on combined entropy and probability scores. The program performed an average of 3.6 guesses per word in a simulation of 1000 trials.
This project is a web-browser task manager application written in HTML, CSS, and JavaScript. It contains a basic model of a to-do list categorized by different classes, a Pomodoro timer, and essential date, time, and weather information, as well as a study playlist. More information on the functionalities of the web application can be found on the GitHub page linked above.
The web-application can be accessed .
This project is a Tic-Tac-Toe application written in Python. Within the application, the user can either play a regular game of Tic-Tac-Toe with two players or go against the computer. The program is coded to implement a Pure Monte-Carlo Tree Search Algorithm. Within the program, the user also has the choice to set the difficulty of the computer model.
This project replicates the old Pac-Man game written in Python utilizing Pygame and the University of Virginia's Game Engine (UVAGE). The game's objective is to collect all coins without touching any ghosts within the given time. All of the ghosts' movements are completely randomized. Once the game is over (either by completion or failure), the user is prompted to either restart the game or quit.
This project is my personal, professional portfolio website, which is the very website you are currently on. This website was created using HTML, CSS, and JavaScript. The server is hosted through GitHub, and the domain is registered and bought through Namecheap.