The background of this page is an animated line drawing of a drone being tracked and intercepted. It is decorative and carries no information that is not also in the text.
JosephRussell
I build software that has to work outside a demo.
Computer science senior at California Baptist University, graduating April 2027. I write computer vision and guidance for a counter-drone interceptor, and I ship grid operations tools at Southern California Edison.
Counter-drone interceptor. Senior capstone sponsored by NSWC Corona, in progress.
A 3D-printed interceptor is launched at an inbound drone and has to find it, hold it and close on it using its own camera. I'm building the software that does that.
Tracking and guidance: computer vision on the interceptor's camera that locks onto the target and steers the intercept in real time.
Training and evaluation: the pipeline behind the detector. Our dataset is about 65,000 images and pairs the target with what it must not fire on: birds, airliners and other drones. Real-footage results are reported apart from synthetic renders.
Sensor fusion: several ground sensor feeds merged into one track and handed to the onboard seeker.
Embedded Linux on the flight computer: camera drivers, process management and the ground-station link.
Python, PyTorch, computer vision, embedded Linux
AI Grand Prix
Autonomous drone racing, conceived by Anduril founder Palmer Luckey and run by Drone Champions League.
Every team flies identical drones with no human pilot, so the only edge is code. I built the Python autonomy stack for a fully autonomous entry, and it advanced past the opening round into Qualifier 2.
Computer vision finds the gates and a reinforcement-learning policy picks the fast line through them.
A cascaded velocity and attitude controller flies that line over MAVLink and corrects cross-track error onto each gate.
A control panel retunes gains without a restart, and every run is logged with position, commands and gate passes.
Screenless smart lock. ESP32-C5 firmware and an iOS app, in progress.
The phone signs an offline ECDSA P-256 challenge inside its Secure Enclave. The cloud can carry the command, but it never gets to decide that the door opens.
Walk-up detection from an iBeacon arrival state machine.
Motor safety: watchdog-capped servo control, jam detection from learned travel, and a failsafe when the link drops.
Every module is split into a hardware half and a host-testable half. 411 tests pass with no board attached. Hardware bring-up is next.
C, ESP-IDF, Swift and SwiftUI, Firebase
FormulaFly
A simulated fruit fly learns to drive a Formula car. Team project, in progress.
The fly sees the track through a visual system wired from the real fly connectome and learns to drive with reinforcement learning. My part is the body: a tethered fly in MuJoCo whose wingbeat asymmetry steers the car and whose legs on a trackball work the throttle and brake. I'm now rigging it into the Assetto Corsa cockpit so the legs visibly work a fly-scale wheel.
Lecture capture and study notes for Mac and Windows. Shipped, free and open source.
Record a lecture and it is transcribed on your own computer, filed under the right class and turned into study notes. The app picks a speech model to suit the machine, runs a quick model live with a more accurate one behind it, and times itself so the live pass switches off on hardware that can't keep up. A two-person project, and I've written most of it.
It tells you how busy a building is before you walk there. I designed the estimate to fuse three sources, geofenced presence, passive Bluetooth and user reports, each weighted by how far it can be trusted, and to feed an hourly forecast built from class schedules and movement history.
React Native, TypeScript, Firebase
Parameter Golf. An entry in OpenAI's challenge to train the best language model that fits in 16 MB, using quantization-aware training. Source
BT Crowd Counter. Passive Bluetooth occupancy sensing on a Raspberry Pi, packaged in Docker. Source
Experience
Southern California Edison
Software engineering intern, year-round. June 2026 to present. Grid Services, on the systems operators use to monitor and control the distribution grid.
Built and shipped H2O, a desktop analytics app with an LLM assistant that answers only from the report the user loaded. Delivered to leadership as a versioned installer and selected for SCE's Intern Expo.
Engineered its multi-agent pipeline: router, planner, analyst and verifier stages, with a correction loop that checks and repairs model answers and generated code before the user sees them.
Found a logging defect emitting an estimated 300 to 400 million events a day and wrote the search logic that isolated the root cause.
Cut a Splunk dashboard's heaviest query by about 96 percent, from 50 million events scanned to 2 million.
Designed host-health scoring that fuses six telemetry signals into one score per host.
Built a file-updater tool, deployed through Kubernetes and Jenkins, that stops duplicate log ingestion.
Built an optical dispensary management system in TypeScript, React and Firebase, with tag-based lens matching, secured patient and inventory data, and analytics dashboards.
VETS, LLC
Business development intern. March to June 2025.
Automated federal RFI and proposal workflows, and built an assistant that surfaced relevant past proposals on demand.
Tools
Autonomy and embedded
Embedded Linux, camera drivers, process management, ESP-IDF firmware, watchdogs and failsafes, MuJoCo simulation
Machine learning and computer vision
PyTorch, real-time object tracking, sensor fusion, model training and evaluation, reinforcement learning
Languages
Python, C++, C, Bash, SQL, TypeScript, Java, Swift
The background is a small simulation running in your browser. The interceptor flies proportional navigation with a navigation constant of 4, and the miss distance it prints is computed, not scripted. Set in B612, the typeface Airbus commissioned for cockpit displays.