Joseph Russell

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.

Joseph Russell

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.

Projects

HAPS

Counter-drone interceptor. Senior capstone sponsored by NSWC Corona, in progress.

Engineering drawing of the flying-wing airframe: a top view with a 1400 mm span, a side view, a labelled isometric cutaway and a 13-item parts list.
Airframe general arrangement, sheet 1 of 2. Opens full size.

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.
Enlarged details from the same drawing: the avionics bay with the payload, Raspberry Pi 5, Cube Orange flight controller, 6S battery and ESC on the equipment tray, then the elevon servo install and the motor with its pusher propeller.
Avionics bay, elevon servo and motor details, sheet 2 of 2. Opens full size.

Python, PyTorch, computer vision, embedded Linux

AI Grand Prix

Autonomous drone racing, conceived by Anduril founder Palmer Luckey and run by Drone Champions League.

Orange AI-GP race gates set through an aircraft hangar, between numbered station pillars and parked jets.
Virtual Qualifier 2, set in a hangar. Image: AI Grand Prix.

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.

Python, MAVLink, computer vision, reinforcement learning

CircleLock

Screenless smart lock. ESP32-C5 firmware and an iOS app, in progress.

Six screens of the CircleLock app, each a single circle over one word. Closed: an empty green ring. Opening: the ring half filled. Open: a solid green circle. Checking: a white ring. Not you: a dim ring with red lettering. Jammed: a ring half filled in dark red.
The app's one screen, in six of its twelve states. The circle shows the door and is the only control.

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.
How it opens the door. The box sits on the door about two feet under the handle, and the servo winds a string onto its spool to pull the lever down. An animation modelled on the CAD below, not footage.
CAD view into the open enclosure: a servo with a flanged spool on its shaft beside a round opening in the wall, a blue relay on its board, and the mounts around them.
The enclosure in CAD, with the servo, its spool and the relay in place.

C, ESP-IDF, Swift and SwiftUI, Firebase

FormulaFly

A simulated fruit fly learns to drive a Formula car. Four-person team project, in progress.

Rendered from the project's own code. The MuJoCo fly walks its trackball to the throttle of a lap of the practice track, seen inset from the car's camera. Motion cells are coloured by direction. This lap is scripted; the fly learning to drive it is the work in progress.

The question behind it is whether a real brain's wiring helps a driver or only limits it. Each frame from the car's camera is resampled onto the 721 hexagonal lenses of a fly's eye and run through a model of its optic lobe, about 45,000 neurons wired from the FlyWire connectome (Codex), and the driver learns from the motion cells at the far end. It trains with reinforcement learning on a MuJoCo practice track built from Silverstone's centerline, with Assetto Corsa as the demo.

My part is the body. Whatever the driver decides passes through a tethered fly in MuJoCo before it reaches the car: wingbeat asymmetry steers, and the legs walk a trackball whose spin is read back as the throttle. The wings reuse flybody's pretrained wingbeat generator, so all I add there is a small mapping from steering to wing bias. I'm now rigging it into the Assetto Corsa cockpit so the legs visibly work a fly-scale wheel.

Python, MuJoCo, Blender, reinforcement learning

Study Stash

Lecture capture and study notes for Mac and Windows. Shipped, free and open source.

Study Stash on a Mac: classes down the left, a list of recorded lectures, and the generated notes for one lecture on the right.

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.

Python, C#, on-device Whisper, Ollama

Yonder

Real-time campus occupancy for iOS.

Yonder's campus map. The library and the engineering building are filled a deeper blue than the quieter buildings around them, and two friends' markers sit on the map.
The campus map in the app. The busier a building, the deeper its blue.

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.

A building's card in Yonder: a bit busy, about 16 people here, marked likely. Below it a chart of today against the typical day with the forecast for the rest of the evening, and the usual busiest hours, 11 AM to 1 PM and 6 to 8 PM.
One building's day: today so far, the typical day and the forecast.

Behind the chart is a prediction engine I wrote. It is a small machine-learning model, not a neural network: every 15 minutes it folds the latest reading into each building's profile of the week, hour by hour, and every hour it blends what it has learned with a starting guess built from class schedules, trusting the data more as more of it arrives. The rest of today is then projected from how the day is tracking against a typical one.

React Native, TypeScript, Firebase

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.

router planner analyst verifier answer repair retry report only
  • 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.

NERC CIP trained. React, Electron, Python, Splunk, OpenTelemetry, Prometheus, Grafana, Kubernetes, Jenkins

Medical Eyeglass Center

Software developer, contract. May to August 2025.

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
Shipping it
Kubernetes, Jenkins, GitHub Actions, Git, Linux, Splunk, OpenTelemetry, Prometheus, Grafana
LLM systems
Multi-agent pipelines, tool use, retrieval, LangChain, Ollama
Hardware and CAD
KiCad, SolidWorks, Onshape, Fusion
Security
ECDSA P-256, Secure Enclave key handling, NERC CIP

Education

California Baptist University

B.S. Computer Science, AI and machine learning concentration. April 2027.

GPA 3.8, in an ABET-accredited program.

Get in touch

I'm looking for full-time work starting spring 2027 in autonomy, computer vision and embedded software.

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.

Joseph Russell

jbrussell.net