1 / 11

Full-Stack Robotics Engineer

Hi, I’m Kieran

I build robots end to end: mechanical design, embedded hardware, control software, and the AI on top.

Contents

Click any section, or scroll through the deck.

Kieran Pereira

First of all… Hello!

I'm a Master's graduate from UC Berkeley who thrives on using engineering to solve real problems.

Everything I build starts after identifying a real problem: from the largest robotic security fleet in the US, deployed to keep communities safe, to a swarm of ocean sensors that optimize global shipping routes.

Working across the entire stack alongside sharp people, on some of the hardest problems out there, is the part I enjoy most.

Experience
Lockheed Martin
Airbus
UC Berkeley
Undaunted
Skills & tools
ROS 2
ROS 2
C++
C++
Python
Python
MATLAB
MATLAB
Simulink
Simulink
Fusion 360
Fusion 360
Kieran Pereira kieranpereira@hotmail.com2 / 11
Autonomous Security Rover · Build Iterations

Undaunted: Building the largest security rover fleet in the Southeast.

Our quadrupeds ran out of battery in two hours: too short to cover large estates, depots and warehouses.

Three builds in five months: a converted toy proved the idea, our own chassis broke in the field, and a go-kart platform became the largest security-rover fleet in the Southeast.

01
A converted kids’ ATVMonth 0–1✓ Proved the concept
  • Stripped a kids’ ride-on ATV down to its motors and used it as a rolling test bed
  • Replaced the stock controller with our own dual H-bridge board for skid-steer (tank) drive
  • Drove it remotely over LiveKit, through an LTE modem we specced and fitted ourselves
Patrolling in 1 month6 deterred in month one1080p · 160° FOV
Our own aluminium-extrusion chassis with the electronics box on top02
Our own chassisMonth 2–4✗ Where it broke
  • Designed and built our own aluminium-extrusion chassis, mostly from Amazon parts
  • Four hub motors on VESCs; iterated from 4WD tank drive to 2WD front-pivot steering
  • At our weight the frame flexed and the wheels lost alignment; the geometry didn’t hold up
20 mph · 9 hr runtime4× VESC · 56 V1.7 kWh LiFePO₄
03
Go-kart architectureMonth 4–6✓ The fix
  • Rebuilt on a proven go-kart platform: real suspension and Ackerman steering
  • Moved fabrication to a manufacturer, cutting per-unit cost by about 60%
  • Repairs mostly stopped: 96% uptime across 18 properties, 56+ intruders deterred
≈60% cheaper per unit96% uptime56+ deterred

5 mo

From toy to deployed product

10+

Deployed across Atlanta

96%

Fleet uptime

#1

Security-rover fleet in the Southeast

Kieran Pereira kieranpereira@hotmail.com3 / 11
Undaunted · Charging Hub & Payload

Undaunted: Charging Hub & Payload

Plywood hubs that cooked the robots inside. A Ring doorbell strapped on for teleop. Prospects said ‘prototype,’ and deals stalled.

I helped design their replacements: a production hub, 140 in the field, and an in-house payload that unlocked $600k+ in dealflow.

The charging hub
The original plywood charging hub sitting on gravel beside a building
A plywood box✗ Where we started

Weather got in, heat built up, wires trailed everywhere.

The production hub✓ 140 in the field

Weatherproof, AC-cooled, and the door opens itself for patrols.

How it shipped

  • Worked with local manufacturers and contractors to hold a cadence of 10 hubs built a week
  • Architected a Raspberry Pi system using MQTT for remotely operated door controls
  • Front-loaded feedback from early customers, manufacturers, field technicians and the sales team to lock design choices early
10 built / weekAC-cooled
The payload
The quadruped with the original payload: a Ring doorbell camera strapped to its back
Off-the-shelf parts✗ Read as a prototype

A Ring doorbell handled teleop; prospects saw a prototype.

CAD model of the in-house payload integrated onto the quadrupedDesigned in CAD
The in-house payload with speaker, cameras and lights, out on patrolOn patrol
The in-house payload✓ $600k+ unlocked

Driven from our own dashboard, and sleek enough to sell.

What I built

  • Wiring loom for routing 33.3V, 12V and 5V to connect and power different components within the payload
  • Custom teleop on a Raspberry Pi: IMX cameras, microphone and amplified 12V speaker streaming live video and two-way audio to our dashboard
  • Designed a custom PCB to improve wire management, connect and drive MOSFETs for white and blue light controls
  • A sleek design, created after workshopping designs with customers and the sales team. Unlocked $600k in dealflow with Atlanta’s largest multifamily business
Kieran Pereira kieranpereira@hotmail.com4 / 11
Berkeley Capstone Project · Project overview

CaptAIn: Building a network of autonomous ocean drones

Aerial view of a winding mountain road tracing an energy-efficient path versus a straight line
Roads wind uphill to save energy. Ships should steer around the waves, not straight through them.

Cargo ships waste ~30% of fuel fighting waves. We built Google Maps for the ocean to help them save fuel.

  • Wave resistance wastes up to ~30% of a cargo ship’s fuel, about 1% of all global emissions.
  • Forecasting waves lets ships steer smarter, cutting fuel use by ~20% (≈ $9B a year).
  • Our network of autonomous sailboats maps ocean currents in real time, steering cargo ships clear of high-wave waters.
Swarm mesh network diagram showing sailboats spaced 200 m apart
Fleet of autonomous sail drones on the water
Creating the path-planning and control algorithms in ROS2
INPUTSPLANNINGACTUATIONGround StationwaypointsSensor DataIMU · wind · GPSWaypoint Queuequeue + de-dupeCoordinate Calculationsoptimised path · tackingKalman-filtered sensorsRudder ServoLQI course controlSail ServoLQI trim control
The ROS2 node graph I built: waypoints and live sensor data flow through path planning out to the rudder and sail servos.

These boats run on wind, not a propeller, and you can't sail straight upwind, so my ROS2 planner has to tack (zig-zag) to reach any target:

  • Beating upwind by tacking across the wind
  • Dynamic waypoint tracking
  • Real-time wind and heading adjustments
Kieran on the Berkeley Marina pier with an autonomous sail drone

The result: my planner sailed the boat anywhere we pointed it.

Proven on a 2.3 km autonomous round trip up SF Bay, both upwind and downwind. 50 built and tested.

Kieran Pereira kieranpereira@hotmail.com5 / 11
CaptAIn · Field testing

Field Testing & Sensor Improvement

Boat simulation GUI showing commanded rudder and sail angles
Replay-driven boat simulator: rudder & sail

Our testing process was expensive and time-consuming.

  • We were heavily dependent on tidal windows and the marina's opening hours.
  • Although field testing was the best way to learn how the boat really behaved, we needed a way to rapidly test new algorithm features.
  • I used our pre-existing data from prior tests to create a virtual testing environment which simulated exactly how new iterations on the control algorithm would react to real-world data.
  • This let me and the team conduct hardware-in-the-loop testing in the lab, catching actuation bugs before any on-water run.
  • This reduced the iteration time from days to hours.
Field-testing setup with the autonomous boat at the Berkeley Marina

Our sensor measurements were too noisy to control the boat.

  • The cheap IMUs we used, combined with the boat rocking in every wave, left the raw motion data noisy and hard to trust.
  • I implemented a 1-D Kalman filter to fuse the readings and sharpen sensor confidence.
  • Field testing showed an 85% drop in steady-state sensor noise (RMS).
Real field data: the Kalman filter pulling wave noise out of a steady-state signal
Steady-state IMU noise: raw signal versus low-pass + 1-D Kalman
How the Kalman filter responds to a sudden, spontaneous disturbance
Kalman filter response to a spontaneous stimulus
Kieran Pereira kieranpereira@hotmail.com6 / 11
Holding our competition rocket, with the CanSat payload nose section at the top
Built entirely from scratch: we founded the team, then designed, built and flew this rocket in under a year.

2nd place at the Mach22 national competition.

Our inaugural entry, beating teams who'd been building their rockets for up to 3 years.

UCL Rocketry · Head of Payload

CanSat Payload: 360° Flight Video & In-Flight Air-Quality Capture

The goal

  • Build a CanSat that records 360° footage of our rocket's flight.
  • Collect pollutant and atmospheric data: a rapid, recoverable alternative to weather balloons.

Key contributions:

  • Led a team of 5 engineers to build a CanSat, launched to 1.5 km and safely recovered.
  • Owned the CAD designs and the mechanisms for parachute & 360° camera deployment.
CanSat payload CAD with recovery lifting eye
Avionics stack and wiring packed inside the payload
From CAD to flight hardware: the 360° GoPro, avionics stack and recovery gear packed into a 3D-printed shell.
The camera shook too hard to film, so we designed a spring-catch to stabilise it

Lab testing showed the camera would shake too violently for viable footage. We designed a spring-catch mechanism that locks the GoPro steady once the payload deploys.

  • As the payload deploys, an outer tube displaces a spring…
  • …driving a stopper that catches and fixes the camera at 45°.
  • Vibration-absorbing felt on the stopper soaks up the shake, giving a stable, usable 360° shot.
CAD section of the spring-catch: a stopper and an outer tube that displaces the spring
The catch: a stopper and an outer tube that displaces the spring.
Spring-catch undeployed: the GoPro rests against the inner tube surface
Undeployed: GoPro resting on the inner tube surface.
Spring-catch deployed and mounted under the payload
Deployed: stoppers extended, camera fixed and stabilised at 45°.

My proudest project. I helped start UCL Rocketry independently after the university declined to back us. It has since grown into UCL's most successful engineering team, with podium finishes at Spaceport America and several European competitions.

Kieran Pereira kieranpereira@hotmail.com7 / 11
Berkeley Robotics and Human Engineering Laboratory - Quadrupedal running robot

BladeRunner: Training a quadruped to run on spring blades

Creating an energy efficient running quadruped for search and rescue.

Quadruped gait biomimicry: diagonal synchronization versus front-and-back leaping at higher speeds
At higher speeds, quadrupeds shift from diagonal sync to a front-and-back leaping gait, the motion we optimized for.

From blade physics to a trained running policy:

  • We analysed how spring running blades store and return energy, the same prosthetic design used in Paralympic sprinting.
  • We modelled a quadruped in MATLAB Simscape Multibody with J-shaped running blades on each leg, capturing compression, joint dynamics, and ground contact.
  • We trained a DDPG actor-critic agent to run as efficiently as possible on those blades, tuning the reward function to encourage cheetah-like gait cycles from our biomechanics research.
BladeRunner quadruped model in MATLAB Simscape Multibody
The Simscape Multibody environment I used to train the RL policy, with spring-blade compression, joint dynamics, and ground contact fully modelled.
Training locomotion with deep reinforcement learning (DDPG)
A DDPG actor-critic agent learns optimal joint torques through continuous interaction with the Simscape simulation, rather than following a predefined gait.

Engineering principles: Not just setting velocity reward high!

  • Biomimicry for Stability: Animals maintain stable body posture during running.
  • Efficient Torque Management: Penalized abrupt joint direction changes to enhance torque efficiency.
  • Dynamic Ground Contact Control: Minimized ground contact time by penalizing prolonged contact.
  • Animal Gait Synchronization: Constrained front and back legs to move in phase.

The result: a gait 23% faster than Boston Dynamics' Spot.

Covered 23 m in 10 s in simulation with strong stability and energy efficiency.

Kieran Pereira kieranpereira@hotmail.com8 / 11
UC Berkeley · Co-founder & CTO

Obsidian Performance Gear

Bad form causes most training injuries, and you only find out once it hurts.

We built two products on one embedded platform: a swimming coach and a weightlifting coach that buzz you back on form mid-exercise.

Hand-soldered protoboard with an ESP32 Feather, MPU6050 IMU and two motor driver breakouts
The swimming build’s body unit, hand-soldered: ESP32 Feather, the body IMU and two motor drivers.

One embedded platform, two coaches:

01Prototype · Swimming

  • IMUs on the head and body: keep the head streamlined, and buzz the moment body roll drifts from a swimmer’s gait: correction mid-stroke.

02Prototype · Weightlifting

  • A sensor pod on the arm tracks lift angle through every rep, streamed live into our Python visualiser. Watch it on the right.

How we built it:

  • An ESP32 reads two MPU6050 IMUs and drives four vibration motors.
  • FreeRTOS with four concurrent tasks: mutexes, queues and task notifications keep sensing, feedback and telemetry in sync.
The weightlifting prototype live: our Python GUI tracking the arm through a lateral raise, streamed from the wearable.

System architecture · swimming build

View the firmware on GitHub →

2× MPU6050 IMUs

head pitch + body roll

shared I²C · mutex-guarded

ESP32 · FreeRTOS

4 tasks: sense ×2 · telemetry · command

threshold breach → PWM

4× vibration motors

buzz the side that drifted

queues → Bluetooth SPP

Python GUI

live view · commands back

Then we tested the business as hard as the hardware:

156

Customer interviews · NSF I-Corps

2

Signed letters of intent

1

Draper University accelerator offer

Five Berkeley MEng founders: ex-SpaceX, Tesla, Lockheed Martin and Samsung R&D. Read the pitch deck →

And then we walked away.

Customer discovery is meant to change your mind, and ours did: the evidence didn’t support the business, so we called it before sunk cost could argue otherwise.

Kieran Pereira kieranpereira@hotmail.com9 / 11

Real-time narration: 80% confidence gate, highest-priority sign first, no repeats within 10s.

84.4% mAP · 0.81 F1

Beat Meta's benchmark on a harder global, 63-class dataset, 4.0 GPA capstone.

Inference

~15.5 FPS

Unseen test

0.711 F1

UCL Capstone · Individual Project

UCL Capstone: Traffic-Sign Detection & Narration

The drivers most at risk are the ones missing the signs.

  • Young drivers are 32% of those killed or seriously injured; risk climbs again past 70.
  • 44% forget common sign meanings; inattention drives 56% of road deaths.
  • Driver-assist tech exists, but is priced out of the used cars these groups actually buy.
  • I delivered a low-cost notification system, providing audio alerts of oncoming traffic signs, to improve road safety.
Bar chart: UK car drivers killed or seriously injured per million population by age, peaking at ages 20-29
Peak risk: ages 20-29
Methodology

10-stage custom CNN using YOLOv5 in PyTorch:

  • Dataset cleaning & manipulation
  • Model architecture tuning and hyperparameter optimization
  • Live testing, robustness testing

Data prep

Model Development

Testing & Narration Integration

Methodology flowchart: dataset selection, manipulation, augmentation, background elimination, model architecture, hyperparameter optimisation, final training, then scenario, large-dataset and narration testing

100k

Training images

401

Raw sign classes

270

GPU hours post-opt

31

Hyperparams tuned

Trained to state-of-the-art
Line chart of maximum F1 score versus epoch for each pipeline stage, with the final model crossing the state-of-the-art threshold
Each preprocessing stage lifted F1 (0.32 → 0.41 → 0.75); genetic-algorithm hyperparameter tuning pushed the final model past the SOTA threshold to 0.81 F1.
Robust to the real world
Stop sign progressively occluded from 0 to 75 percent, showing the model detects it up to 50 percent obstruction
Occlusion test: detected up to 50% obstruction
  • Reads signs with up to 50% obstruction from foliage, dirt or vehicles.
  • Holds up in fog, rain and snow, sharper in low light.
  • 0.711 F1 on 7,783 unseen images, barely below training.
Kieran Pereira kieranpereira@hotmail.com10 / 11