Autonomous flight, control design, and embedded hardware. UAS and controls work first, followed by earlier coursework.
In progress
Autonomous UAS quadcopter
Personal project
An autonomous multirotor built to find and follow people, aimed at search and rescue. PX4 runs flight control on a Pixhawk 6X in a Holybro X500 V2 frame, and an NVIDIA Jetson Orin Nano runs onboard detection with a YOLO26n model, sending velocity commands back to PX4 through MAVSDK.
Developing an autonomous sUAS using PX4, QGroundControl, and NVIDIA Jetson
Implementing and testing autonomous flight and control functionality
Carrying over UAS experience from 10 years of assembly.
I have designed, built, and flown more than ten multirotors, from airframe assembly through flight tuning, and raced them locally. The work taught me flight controllers and control loops from the inside: every build ends with PID tuning against how the aircraft actually flies.
Configured Betaflight flight controllers and tuned PID rates
Diagnosed motor, ESC, and RF link faults; troubleshot FPV video and radio transmitter links
Soldered and repaired power distribution, motor, and video and telemetry wiring
Applied analog and digital filtering.
Two freestyle builds on the bench.A completed build ready for tuning flights.
Fall 2026, in progress
Gantry crane control design
Modern Control Design (ROBO 566), Colorado School of Mines
A graduate controls project, completed individually: model a gantry crane whose hoist velocity is commanded by a servo, then design a discrete-time controller that moves the suspended load to a setpoint on the full nonlinear plant.
Built the nonlinear pendulum-on-a-trolley model in Simulink from the equations of motion, using integrator blocks rather than derivative blocks to keep the simulation numerically clean
Linearized the system with the small angle approximation around a hanging load and derived the transfer function from hoist velocity to load position
Identified the cable length from supplied experimental data and matched the simulated response to the measured oscillation
Designed a compensator in the root locus editor, reaching about 10% overshoot with the load settling at the 1 m setpoint, then discretized it with a zero-order hold for implementation
Next: close the loop on the nonlinear plant, keep hoist speed under 1 m/s, and verify the time-delay margin predicted by the phase margin
MATLAB
Simulink
Root locus
Discrete-time control
Senior design, 2024
RAD-GUARD: wearable microwave exposure alarm
Capstone for the Nevada National Security Sites
NNSS developed a slide coated in thermochromic paint that changes color under microwave radiation, but it only gives a visual cue that is easy to miss. Our eight-person team, the EMF Shield Squad, built a badge that watches the slide and sounds an alarm when it changes. Constraints included a unit cost goal under $35, a wearable form factor, timestamped events, and no signal capture or analysis.
What we built
A custom PCB, taken through three revisions, around an STM32L0 microcontroller chosen by decision matrix for low power and onboard flash
A Vishay VEML6040 RGBW color sensor over I2C reading the slide, with a red LED and buzzer alert and an RTC for timestamping
Firmware in C with modular ColorData and ColorComparator components: a moving-average filter builds a baseline and an alert fires when readings leave the threshold band
A 3D printed badge housing with a TPE gasket, TPU latch tabs, a USB weather plug, and a diffused status LED
Characterizing the sensor
Most of the second semester went into understanding the sensor. Early readings were luminance values, not RGB colors, and raw data was noisy enough to cause false alarms. We ran slide color-change, heat, ambient light, and walking tests, found that shielding the gap between slide and sensor and adding a moving-average filter made the signal usable, and prototyped the alarm logic in Python against logged data before porting it to the STM32.
Both working prototypes were delivered to NNSS after the final design review, along with the PCB design files and programming instructions.
STM32
Embedded C
I2C
PCB design
Python
Aug to Dec 2024
Autonomous course-navigating robot
Colorado School of Mines
A team of engineering students designed, built, and programmed a two-motor ground robot to navigate a predefined course on its own. I owned the controls and localization subsystem.
Implemented and tuned a PID loop in C on an Arduino to hold heading and speed
Tuned for fast response with no overshoot
Integrated control with a separate Raspberry Pi computer vision subsystem and validated end-to-end runs
The robot completed the course and earned full points
The robot with its drive and control electronics.The team after a successful run.
Coursework
Power supply PCB
PCB Design (EENG 393), Colorado School of Mines
Took a board from breadboard to finished hardware in Eagle: prototyped circuits on the bench, drew the power supply schematic, built a custom component library, laid out and routed the board with copper pours and design rule checks, then soldered and tested the fabricated PCB.
Course materials
Eagle
Schematic capture
Layout and routing
Soldering
Fall 2026
HTTP web server in C++
Computer Networks (CSCI 560), Colorado School of Mines
A web server written from the socket layer up in C++17 on Linux, with no web framework.
Opens a TCP socket, binds, and listens, stepping to the next port automatically if one is already in use
Parses HTTP/1.0 request headers by hand and handles GET, HEAD, and POST
Streams HTML and JPEG files with correct Content-Type and Content-Length headers, and saves POST bodies to disk with 200 or 201 responses
Returns 400 for malformed requests and 404 for anything outside a regex whitelist of served files
Leveled logging and clean shutdown on SIGINT
C++17
POSIX sockets
HTTP
Linux
CAD
Drone motor, reverse-engineered
SolidWorks
I measured a brushless drone motor with precision measuring tools and rebuilt it as a fully dimensioned SolidWorks model.
FrontTopIsometric
Other projects
Earlier coursework
Refrigeration capillary tube
Sized a one-meter capillary tube for a refrigeration cycle under power, heat transfer, and temperature constraints, using iterative solutions in Engineering Equation Solver (EES).
Probabilistic forecasting
Built a forecasting model with Fourier series decomposition and FFT on training data, then used cross-correlation to match the model against test data.
Embedded systems lab
Blinked a Morse code message on a PIC microcontroller LED in C. Read the lab post.
Hiring for UAS, controls, or embedded work?
I am looking for UAS engineering internships while I complete my M.S. at Mines.