Projects Systems, applications, and experiments. A closer look at what I built, how it works, and what I learned.
Distributed systems / Applied ML / Web / Embedded
All Distributed ML Systems Algorithms Full-Stack Embedded Frontend
9 projects / All disciplines
Distributed messaging & server discovery
Client lookup ↔ Addressing primary
Server A → Server B → Server C
↕Client 1 ↕Client 2
Local broadcast, peer forwarding, and seen-ID suppression. Selected relay path shown. Explore the interactive architecture ↗ Distributed
Java chat system with custom TCP networking, peer message replication, and a replicated discovery service that elects a new primary after failure.
Distributed Systems Java NIO TCP Replication Leader Election Explore project ↗ Evaluating object detection under occlusion
3,312 clean pet images
+ 3,000 synthetic composites
6,312 training images Whole-pet boxes retained
YOLOv8n / EfficientDet-D0
Clean test 3,669 images
Real occlusion 74 images / 90 boxes Clean vs. combined training. Real-occlusion transfer was mixed across detectors. ML
A computer-vision pipeline that generates synthetic obstructions, trains pet detectors, and measures how their results transfer to naturally occluded animals.
Computer Vision PyTorch Object Detection Data Augmentation COCO Evaluation Explore project ↗ Source to assembly
J-- source printi(42);
→ MIPS excerpt li $v0, 42
⋮
jal printi
Parse → Resolve names & types → Emit
Illustrative excerpt; stack setup and runtime omitted. Calls use a custom stack convention. Systems
A Python compiler that parses J-- programs, resolves names and types, and generates MIPS assembly with a custom stack calling convention.
Python ANTLR4 Compilers MIPS Semantic Analysis Explore project ↗ Keep the best. Vary the offspring.
CV fitness → Selection → Crossover + mutation
Ring: retained best. Diamond: mutation. Size represents fitness; populations are illustrative, not measured results. ML
A Python optimizer that evolves classifier settings through cross-validation, selection, crossover, and mutation while handling dependencies between parameters.
Genetic Algorithms Hyperparameter Tuning scikit-learn Python Cross-Validation Explore project ↗ Time capacity and candidate schedules
Candidate bookings share recurring time capacity. The grid illustrates placements and durations; it is not a computed schedule. Algorithms
A Python scheduling prototype that combines backtracking and genetic search to assign recurring soccer games and practices under capacity and placement constraints.
Constraint Satisfaction AI Search Scheduling Genetic Algorithms OR-Tree Search Python Explore project ↗ Full-stack reservation management
React Axios services Express Controllers + queries MySQL Direct SQL Reservation key Customer phoneLocationDate
WHEREPrevious key
→ SETReplacement values
Edits carry both old and new values so the API can locate the row even when its identifying fields change. Full-Stack
A React and Express application for customer accounts, reservation editing, and event inquiries, backed by a relational MySQL database.
Full-Stack Development React Express MySQL JWT Cookies Docker Explore project ↗ Controller signals to game actions
SNES → Pi GPIO Latch + 16 clocked samples Active-low → pressed maskUART → Desktop Python Changed states only · hexadecimal Decode bits → Pygame actionsTiming runs in bare-metal C on the Pi. The desktop host maps the received button mask to game actions. Embedded
C firmware that reads an SNES controller directly through Raspberry Pi GPIO and sends button states to a desktop game over serial.
Embedded Systems Bare-Metal Programming C GPIO UART Python Explore project ↗ Temperature control rule
Below band Inside band Above band
target − 3 ≤ current ≤ target + 3
Furnace Off
Air conditioner Off Both temperature actuators are off inside the target band.
Rule illustration from the temperature controller. Humidity and soil moisture use their own sampling intervals and a single actuator each. Systems
A Java desktop simulation with independently timed environmental controllers, live equipment states, and saved histories for reviewing each run.
Java Swing Concurrency Simulation File I/O Explore project ↗ Browsing, profiles, and parent controls
Browse Profile Restrictions Linked interface areas in the family viewing prototype. Profile settings persist locally in the browser. Frontend
A React prototype for family viewing, with separate parent and child interfaces, personalized browsing, and settings saved per profile in the browser.
React JavaScript MUI React Router localStorage UI Prototyping Explore project ↗