Robotics engineer based in London. Software engineering background (BSc) and a systems MSc at UCL. Teaching assistant at UCL for COMP0182 (Real-world Multi-Agent Systems) — led lab sessions and am currently rewriting the lab materials.
My work centres on ROS 2 — navigation, SLAM, and multi-agent systems — and the full-stack software around real systems, from APIs and message queues up to the cloud. More recently I've been working further down the stack, into embedded Linux and the driver layer, bringing up robot hardware from scratch.
Currently: building an autonomous ROS 2 rover from the hardware up — writing my own drivers, wrapping them for ROS 2, and working toward fused odometry, AMCL localisation, and vision-based navigation.
- Robotics — ROS 2, Nav2, SLAM, multi-agent navigation
- Backend & full-stack — Python, FastAPI, MQTT, PostgreSQL, Docker, Azure IoT, CI
- Embedded (growing) — Linux on ARM, I2C / SPI / UART, hardware bring-up; writing my first C++ drivers
- IoT-task-tracker — a distributed, IoT-enabled task system built incrementally: CLI → REST API → MQTT → edge. Layered architecture, Dockerised, with CI and a full test suite.
- mapf-nav2-ros2 — autonomous TurtleBot3 navigation in ROS 2 / Nav2: Cartographer SLAM, AMCL localisation, and named-waypoint navigation.
- stella-vslam-kitti — visual SLAM on the KITTI dataset with Stella-VSLAM, plus a hands-on exploration of FAST, BRIEF, and ORB feature detection.
- picar-4wd — bringing up the SunFounder PiCar-4WD on Ubuntu 24.04 with ROS 2 Jazzy: embedded Linux, I2C, and the undocumented HAT reset fix.
SWE → systems → robotics. Comfortable moving between languages and layers as a problem demands — most recently extending into C++ and the Linux I2C interface to bring up custom robot hardware.
📍 London · UCL