ex-Research Intern @ Cisco · ex-Engineering @ RevisionDojo · Robotics & AI @ UCL
Click a badge above to jump to a domain, or expand any section below.
My interests span a wide range: robotics, perception and spatial computing (computer vision and SLAM), AI research, reinforcement learning, and simulation. I enjoy working across the stack, from low-level systems to learning-based methods, and tying it all back to real hardware. Right now I'm focused on building robots and Ultras.
Autonomous systems, control, and grasp/manipulation
Hardware, control, and simulation for real-world robots — from autonomous platforms to manipulation.
| Project | Description | Stack | Link |
|---|---|---|---|
| Subterra Nav | Multi-rate EKF fusing IMU, magnetometer, and ToF sensors for 2D localisation of a Mecanum robot. 2nd in cohort at 3.58 cm RMSE. | MATLAB, Simulink | Repo |
| IGGY | Autonomous quadruped "robot dog" that detects a ball with YOLO and tracks/pursues it through a PID control loop, running onboard in real time. | Python, YOLO, OpenCV | Repo |
| Kinesis | 6-DoF end-effector tracking for a Franka Panda in MuJoCo: residual RL (PPO) layered on a damped-least-squares Jacobian IK feedforward, robust to observation noise and control delay (0.46 mm RMS). | Python, MuJoCo, PyTorch | Repo |
| Dynamic-Gripper-Sim | PyBullet grasping simulation that generates data across gripper-object pairs (2/3-finger, arm) and trains ML classifiers to predict grasp success. | Python, PyBullet, scikit-learn | Repo |
| SystemsEngineering_IP | Stabilised an underactuated physical cart-pole on limited embedded compute; benchmarked LQR, cascaded inner-outer PID, and pole-placement controllers solved offline via the continuous-time Riccati equation and Ackermann's formula. | C++, Python, NumPy | Repo |
Skills: EKF / sensor fusion · PID · LQR · Pole placement · MPC · RL (Residual RL, PPO, GRPO) · Grasp planning · MuJoCo / PyBullet · ROS 2
Computer vision, 3D reconstruction, and spatial computing
Turning pixels into 3D — reconstruction, segmentation, and perception for spatial understanding.
| Project | Description | Stack | Link |
|---|---|---|---|
| NeMo-Ray | 🏆 Winner of NVIDIA Hack for Impact London. Raytracing radio propagations of networks in the city of London using SionnaRT on a 3D digital twin, helping improve the Emergency Services Network (ESN) of the UK. Utilised Nemotron-3-Super and CuOpt to determine the fastest and most efficient way to restoring services in London in case of downed signals. | Python, NIM, NextJS | Repo |
| spatiality_v2 | Reconstructs 3D scenes from video using a Flash-VGGT backbone paired with a multi-stage segmentation pipeline for clean, properly annotated geometry. | Python, PyTorch, VGGT | Repo |
| Innovation Lab Twin | Dense 3D digital twin of the UCL robotics lab in Open3D (RGBD registration, pose-graph optimisation, TSDF integration), used as a ground-truth benchmark across 30+ student perception projects. | Open3D, Python | Private |
| spatiality | Lifts 2D photos into 3D meshes using a standard VGGT reconstruction backbone combined with SAM 3 segmentation. | TypeScript, Python, VGGT, SAM 3 | Repo |
| skillforge | Interactive, segmentation-based annotation tool that speeds up data labelling for blue-collar and industrial workflows. | TypeScript | Repo |
Skills: 3D reconstruction · Segmentation · Monocular/stereo depth · Point clouds · OpenCV
Publications & research
Adaptive multi-agent systems and learning-science-grounded evaluation of LLMs.
| Work | Venue / Affiliation | Links |
|---|---|---|
| ASpec — Automated Stateful Specialization for Adaptive Agent Systems | ICLR 2026 | Paper · Code |
| PEBBLE — A Pedagogical and SRL-Aware Benchmark for Evaluating LLM Tutors | NeurIPS 2025 Workshop | Paper |
| Cereberus — Agent security enforced at the kernel level | Open source @ Cisco | Code |
Skills: Multi-agent systems · LLM evaluation · Benchmark design · Agent security
Reinforcement learning, deep learning, and experiments
Coursework, competitions, and hands-on ML experiments outside the research track.
| Project | Description | Stack | Link |
|---|---|---|---|
| Gomoku RL | AlphaZero-style agent for 9×9 Gomoku: PUCT Monte Carlo Tree Search guided by a dual-headed (policy + value) ResNet trained through self-play, with a Dueling Double DQN baseline. Passed 19/20 tactical benchmarks. | Python, PyTorch | Repo |
Skills: Reinforcement learning · Self-play & MCTS · Deep RL · PyTorch
Systems, full-stack, and applied engineering
Shipped products and full-stack engineering.
| Project | Description | Stack | Link |
|---|---|---|---|
| RevisionDojo | Exam-prep platform: built a Glicko-2 rating system, backend microservices, and two React Native mobile apps, plus reinforcement fine-tuning of models. | TypeScript, Python, React Native | Site |
| Ultras | A football prediction market, a fresh take on fantasy leagues where users trade on real match outcomes. | TypeScript | Site |
| uncookd | Multi-agent teacher-student meeting session that helps students learn through an agentic whiteboard. Next.js frontend over a CrewAI multi-agent Python backend. 🏆 1st place, AgentVerse Hackathon (UCL · AWS · Anthropic · Cisco · EF). | TypeScript, Next.js, Python, CrewAI | Repo |
Skills: TypeScript · Python · React Native · Next.js · Microservices · Full-stack
Python · C++ · Go · TypeScript · MATLAB · PyTorch · ROS 2 · MuJoCo · Isaac Lab · Fusion 360 · Linux
Open to roles in robotics, perception, and AI research.