Hardware
Keypad with Volume Control Ongoing; December 2025
Overview
Designing a custom mechanical keypad with integrated volume control knob from ideation to usage in the real world.
Process
- Designed and drew circuit on paper; transferred schematic to a digital, professional design
- Created PCB design in Kicad, utilizing aSTM32 chip with auxilary hardware to provide interrupts
- Ordered parts and PCB from manufacturer; currently in assembly and testing phase
- TODO: assemble and test version 1 of board, write firmware using C for key customization and rotary encoder control
Challenges
- PCB Design: First time designing an entire electronic component from scratch; learning the nuances of trace width, component placement, and manufacturability.
- Firmware Development: Planning to implement efficient firmware to handle key presses and rotary encoder inputs with minimal latency is an avenue different from my other firmware projects
RFID Door System Completed July 2021
Overview
Developed a secure access control system using the ESP-IDF framework. The project focused on real-time response and reliable sensor interfacing.
Process
- Designed system architecture to integrate RFID reader, door strike, and environmental sensors.
- Prototyped software in Arduino, implemented FreeRTOS tasks to manage concurrent operations for reading RFID tags and controlling the door mechanism.
- Collaborated with a team to set up cloud logging for access events using Pub/Sub architecture via Amazon Web Services (AWS).
Challenges
- Concurrency: Managed FreeRTOS tasks to ensure the door strike remained responsive while logging data to the cloud.
- Cloud Team Collaboration: Got up to speed with cloud communication patterns in order to ensure secure and accurate communcation to AWS cloud services
Software
Drawalong - Collaborative Drawing Application Ongoing; January 2026
Overview
An application written using C and SDL to let multiple people draw on the same canvas over an internet connection. Created to exercise principles learned in Beej's Guide to Network Programming.
Process
- Set up basic window and graphics rendering using the SDL2 library.
- Implemented networking code to allow multiple clients to connect to a designated "host" and share drawing data in real-time.
- Designed a selection system (key shortcuts + TUI) for selecting colors and brush sizes.
Challenges
- Packet Architecture: Designing the network packets to ensure all necessary information is sent/received while maintaining speed and reliability
- Multi-Platform Support: Currently using the Windows implementation of the sockets API; need to add adjustments for Linux library as well
NFL Yardage Classifier Last updated - October 2025
Overview
A binary classification model built to predict player performance. This project involved extensive data scraping, cleaning, and feature engineering.
Process
- Utilized Pandas to perform exploratory data analysis on available features; construct dataframe with engineered features
- Implemented and tuned XGBoost classifier for an efficient and accurate decision forest
- Engineered custom features based on hypothetical metrics to boost accuracy from a baseline 61% to over 68% during 113 game sampling window.
Challenges
- Feature Creep: Had to limit the amount of feature engineering done to ensure performance-training time tradeoff was sound.
- Data Integration:Migrating from manually uploading CSV files to utilizing libraries with similar data was difficult, but rewarding to learn.
SeedScraper - Data scraper for Start.gg Last updated - October 2025
Overview
Given a tournament with public seeding data, SeedScraper will retrieve the top N seeds (where N is a specified number). This list is then available immediately with an option to export to a CSV
Process
- Drafted short script in Python to interact with native start.gg API
- Created simple UI in TKinter for graphical navigation
- Implemented feature to export scraped data into a CSV, downloaded natively on the user's computer