Custom Macropad

Custom 6-key mechanical keyboard PCB with 2x3 switch matrix. SK6812MINI-E RGB LEDs daisy chained beneath keypads, and EC11 rotary encoder, and SSD1306 OLED over I2C. 3D-printed case, and QMK firmware.
ECE @ Waterloo

Custom 6-key mechanical keyboard PCB with 2x3 switch matrix. SK6812MINI-E RGB LEDs daisy chained beneath keypads, and EC11 rotary encoder, and SSD1306 OLED over I2C. 3D-printed case, and QMK firmware.
STM32 firmware handling GPIO and ADC inputs, streamed via UART to a React frontend with WebSerial-driven audio synthesis. Containerized and deployed on AWS EC2.
Ensemble ML pipeline processing NASA Kepler data with 82.3% accuracy. Containerized and deployed on AWS EC2.

Modular embedded firmware for air quality monitoring: custom BME680 driver implementing Bosch compensation algorithms, WMA signal conditioning, checksummed UART protocol for multi-device networks, and SSD1306 OLED graphics rendering.
8-bit computer built from a NAND gate up to a working CPU. Runs a neural network it trained itself (XOR and a digit classifier) at the gate level, with no PyTorch or NumPy.

Dual model pipeline that reads product specs from photos and finds matches across a 182k item catalog where finetuned Florence-2 (LoRA) extracts specs from images; a SigLIP contrastive model drives visual similarity search over a FAISS index.

Translate English into languages around the world and hear the result out loud, plotted on an interactive 3D globe.
Shuffles YouTube playlists & pulls each video's transcript and feeds it to Gemini for insights and categorize what the playlist actually covers for better nav than just thumbnails and titles.