Aerospace engineering student at CU Boulder. I build flight software and the hardware it runs on — avionics, embedded control, autonomous vehicles.
![]() AI Grand Prix Autonomous drone racing 24 gates @ 38 m/s |
![]() Airgentas 2 High-power rocket |
![]() OBR Mark III Autonomous rescue robot |
B.S. Aerospace Engineering Sciences, University of Colorado Boulder — expected May 2030 Composites on a space-shot vehicle with the CU Sounding Rocket Laboratory Work authorization: F-1, no employer sponsorship required
AI Grand Prix — autonomous drone racing
Python MAVLink2 YOLOv8 OpenCV · ~13,700 lines
Fly a quadrotor through a gate course with no GPS, no map and no human in the loop. Position comes from integrating IMU in an NED estimator; the drift is corrected by the one absolute reference available — seeing a gate and knowing how wide it is. The official simulator was Windows-only and unreleased, so I wrote a 6-DOF simulator to the organizers' spec and developed the whole stack against it.
| Gate detection | YOLOv8n, P 1.00 / R 0.97, recall holds at 1.00 through motion blur to 31 px and 50% occlusion |
| Control | 50 Hz position loop, cubic-spline trajectory, 5 m lookahead |
| Validation | 243 unit tests · 60-gate gauntlet at 38 and 48 m/s |
The finding I'd point at: every speed benchmark for months was wrong. Terminal velocity is sqrt(MAX_ACCEL/DRAG) — the vehicle was hard-capped at 20 m/s and could never fly the trajectories being planned. Fixing it also broke the controller, because drag had been supplying implicit damping. Three further optimizations were built, measured, and reverted for being worse — all documented in the repo so they don't get re-attempted.
Airgentas 2 — high-power rocket
MicroPython Raspberry Pi Pico 2 fibreglass machined aluminium
A 1.16 m composite-airframe vehicle designed for 500 m. The motor casing was turned from aluminium and the nozzle machined from steel rather than bought as a commercial reload. Apogee is detected barometrically and the parachute released by servo — mechanical, not pyrotechnic, so recovery can be bench-tested without consumables.
A recovery system gets exactly one attempt, so the flight code is built around that: a PAD → BOOST → COAST → DESCENT state machine that keeps deploy logic unreachable until launch is confirmed, a filtered altitude signal, a debounced deploy criterion, dual barometers, and a backup timer for a silently failed sensor.
Founded Antares Rocketry and led 17 engineers across structures, avionics and recovery.
OBR Mark III — autonomous rescue robot
Python Raspberry Pi 5 OpenCV 3D printing
Follows the line from a camera rather than reflectance sensors: adaptive thresholding over a 21 px window, then a scanline derivative to find the edges. Three PID loops at 50 Hz — one directional, two on wheel velocity from encoder feedback. Gains are tuned live in a browser over MJPEG, so a change costs a slider drag instead of a redeploy.
Intersections and 90° curves produce nearly the same image, so detection is disambiguated geometrically and every detector debounced before it can act. The Pi 5 dropped RPi.GPIO support mid-build, so the hardware layer was ported onto a custom lgpio backend. Chassis fully 3D printed; tyres cast in silicone from a printed mould.
Brazilian Robotics Olympiad 2025.
AI Automation Developer Intern — TOTVS · Feb–Jun 2026 Largest enterprise software company in Latin America. Shipped two AI agent products now sold commercially across Latin America, the only intern on either product team. Python and JavaScript automation pipelines against LLM APIs, replacing manual workflows for enterprise clients.
| Languages | Python, C, C++, MATLAB, JavaScript |
| Embedded | Raspberry Pi, Pico, Arduino, ESP32, STM32 · I2C, SPI, UART, PWM |
| Flight & control | PID, MPC, Kalman filtering, sensor fusion, trajectory optimization, MAVLink |
| Perception | OpenCV, YOLOv8, synthetic data generation, camera calibration |
| Fabrication | CAD, 3D printing, composites layup, machining |
caioplace@gmail.com · LinkedIn · Boulder, Colorado




