Experience
WARG · Flight software
Embedded Flight Software Member · August 2026–present
Embedded flight software for autonomous aircraft: built an STM32 motor-testing prototype (10-bit ADC over SPI, timer-generated PWM) and am now studying sensor fusion and the nine-state extended Kalman filter ahead of an assigned UAV state-estimation debugging task.
Motor-testing prototype
Built an STM32 motor-testing prototype in WARG’s bootcamp, translating analog input into motor commands with C/STM32 HAL, a 10-bit MCP3008 ADC over SPI and timer-generated PWM.
Sensor fusion and EKF · in progress
Studying sensor fusion and nine-state EKF prediction and correction models after a team workshop, preparing for an assigned UAV state-estimation debugging task. This work is in progress.
Graze AI
Growth Marketing Assistant (Co-op) · September 2024–January 2025 · Remote
Built a reusable record-matching workflow that reached about 95% accuracy on thousands of business records checked against known data, and wrote a 13-page prompt-engineering handbook for nontechnical colleagues.
Data preparation
Developed a reusable, modular record-matching workflow for thousands of business records using Python/pandas, spreadsheets, LLMs and fuzzy matching. Achieved approximately 95% accuracy on records manually checked against known data.
Data collection
Collected business records through web scraping and search tools to support the record-matching workflow.
Prompt engineering handbook
Authored a 13-page handbook for nontechnical users covering AI memory, custom instructions and role-based prompting.
Projects
Computer Vision Posture Detector
Five-Cat-PawSture · August 2026
PawSture is a desktop posture companion built by a four-person team: webcam pose estimation (YOLOv8-Pose, OpenCV) classifies posture into three states and a 3D-printed Arduino cube shows it on an OLED. It won the Best Overall Award.
The problem
Make posture feedback noticeable and approachable while someone works at a desk.
My contribution
Developed the Python workflow for a webcam posture monitor with a four-person team, using YOLOv8-Pose and OpenCV to classify posture into three states. Implemented front/side view selection with hysteresis, weighted keypoint deviations and neck/trunk angle thresholds to stabilize feedback as orientation changed.
Live dashboard
The browser dashboard shows the webcam feed with pose keypoints, the current posture state, a posture score and the front and side baselines, with controls to recalibrate, mute alerts or stop the session.
The desktop companion
Contributed Arduino software and 3D-printed hardware for a desktop companion that displays posture feedback through OLED animations.
Recognition
The project won the Best Overall Award at the 2026 Pearl Sullivan Engineering IDEAs Clinic Design Kickstart Challenge.
GitHub repository
Quantum Error Correction Rhythm Game
Cappy Quantum · Quantum Unlocked hackathon · October 2026
Qubit Tempo is a browser-based rhythm game with ten song levels that teaches quantum error correction through music, parity-check clues and Qiskit experiments, backed by 41 tests and 1,638 statevector checks.
The idea
Players protect an encoded quantum memory: they read parity checks between neighboring qubits (equal or different), work out which bit flips caused them, and press the matching lane keys on the beat. Ten song levels use 3–7 data qubits, with a six-step animated tutorial, four lessons, untimed practice and a parity lab that shows how matching checks can still hide a logical error.
The quantum part
Qiskit circuits run through Qollab on the simulator you pick, including IonQ simulator options. A repetition code encodes a superposition across four data qubits, an X error is injected, parity checks are extracted into ancilla qubits and the correction is applied. Gameplay itself uses an exact statevector model that is cross-checked against Qiskit. Everything runs in simulation on classical computers, and hardware execution has not been verified.
My contribution
I came up with the game concept and built the quantum logic behind it: the repetition-code model and the Qiskit experiments that keep rhythm performance, correction accuracy and preservation of the encoded quantum information separate.
Verification and scope
Recorded on October 11, 2026: 41 Node tests, 1,638 statevector comparisons against Qiskit, a 298-circuit simulator batch, and successful runs on 14 free Qollab simulator choices. It teaches bit-flip correction only, not phase errors, fault tolerance or quantum speedup, and no learning effect has been measured.
Team and tools
Built by a team during the Quantum Unlocked hackathon (Qollab | IonQ Global Quantum Hackathon, October 9–11, 2026) with JavaScript, Python and Qiskit. Developed with AI coding assistance (OpenAI Codex) at the team's direction; teammates made the tutorial animations and song arrangements. The repository documents the attribution.
GitHub repository · Play on Qollab
Nuclear Leak Detection
2026 Nuclear Innovation Challenge · IDEAs Clinic hackathon · October 2026
An offline machine-learning prototype that detects leak-related patterns in simulated nuclear power plant sensor data (about 1.5 GB of CSV recordings), built for the Leak Detection and Cleanup track.
The problem
A leak can show up across several sensors at once: pressure, temperature, coolant flow, level and radiation readings. The prototype asks whether their recent history can tell a leak-related event from other operating transients in simulation.
How it works
Sensor recordings (CSV) are split by experiment, turned into 12-observation histories of 27 sensor levels plus their changes, and scored by a TensorFlow/Keras LSTM classifier. Training is an automated batch pipeline that handles roughly 1.5 GB of CSV time-series data and can be rerun on additional datasets. A separate alarm rule requires repeated threshold crossings before it confirms an event.
Control panel
A browser control panel replays recorded plant data. It shows a 3D schematic of the reactor, the model's leak score against the alarm threshold, alarm confirmation, sensor trends, an event log and a leak-location panel that waits for an alarm.
Outcome
A working end-to-end pipeline: recorded CSVs in, an exported reusable model with its preprocessing and alarm rule out, and a control panel that replays the results. Accuracy figures are not reported yet; the repository notes that fresh training and evaluation are needed before any performance claim.
Design choices
Related recordings stay together before windows are made, so overlapping windows never cross the train, validation and test split. Alarm settings are chosen on validation data and judged on missed leaks, false alarms and detection delay. Trained models export with their preprocessing and evaluation records.
My contribution
I worked on the leak-detection workflow: loading and checking the simulator data, labelling by fault onset, group-based splits, training, alarm evaluation and model export. I also implemented the inference backend and dashboard that let users inspect the model’s leak predictions.
Scope and tools
Python, TensorFlow/Keras and a Google Colab notebook, using NPPAD simulator data. It is an offline, simulation-only prototype: it separates leak from non-leak, not leak location or type, and does not connect to live instruments.
GitHub repository
AI Flashcards
Recall · June 2026–present
A local-first Flask and JavaScript app that turns pasted notes, TXT/Markdown files and text-based PDFs into editable flashcards with study preview and Anki-compatible CSV export.
Inputs & review
Built support for pasted notes, TXT/Markdown files and text-based PDFs, with editable cards, study preview and Anki-compatible CSV export.
The interface
Three steps on one screen. Source: paste notes or import TXT, Markdown or PDF, and choose a generator; the screenshot shows the Gemini-reviewed option, which sends the notes to Google. Review: editable question and answer cards with their source excerpts and a coverage report, here 14 cards covering 18 of 18 identified facts. Check: flip through the cards, then export CSV for Anki.
Source-grounded generation
Designed regex parsing to select exact answer spans before T5 generates questions. Rejects vague, tautological and duplicate outputs while retaining source excerpts for review.
Gemini review pipeline
Built a multi-stage Gemini API pipeline that extracts facts, audits omissions, generates flashcards and reviews answers against source notes, with targeted repair for uncovered facts. Validated structured model outputs with Pydantic, removed duplicate or conflicting cards, and added bounded API retries with explicit error handling.
Local model inference
Embedded Hugging Face T5/PyTorch inference with automatic model download, caching and CPU/CUDA/MPS device selection, enabling local generation without API keys or a separate model server.
Responsive workflow
Implemented background generation jobs with progress polling, cancellation and refresh reconnection. Added source-unit coverage reports to expose rejected or omitted material.
GitHub repository