WATonomous is the University of Waterloo's student autonomous vehicle design team — one of the largest in Canada. The team competes in the SAE AutoDrive Challenge and develops full-stack autonomy for a real vehicle.
I joined in January 2026 as a Robotics Engineer on the Autonomy Software subteam, where I work on the software stack for a 6-DOF robotic arm — building systems for CAN bus communication, joint state representation, and autonomous control.
My work focuses on the autonomy software layer — bridging low-level firmware with high-level ROS2 control logic.
Add photos & videos of your work here — see comments in the code
Team shots, demos, hardware
WATonomous is one of Canada's largest student-run autonomous vehicle teams, based at the University of Waterloo. The team competes in the SAE AutoDrive Challenge II — a multi-year competition to develop a fully autonomous vehicle.
The team is split into focused subteams spanning the full stack: Perception, Mapping & Localization, Path Planning, Controls, Autonomy Software, Electrical, and Mechanical.
The Autonomy Software subteam bridges low-level hardware with the high-level decision-making stack. We own the firmware, ROS2 middleware, and motion control systems.
WATonomous is one of Canada's largest student autonomous systems teams, based at the University of Waterloo. The team is divided into several subteams spanning the full autonomous vehicle stack.
Develops the high-level decision-making and control systems — path planning, perception pipelines, and ROS2 node architecture. My subteam.
Designs the PCBs and writes the low-level firmware for MCUs, sensors, and actuators that interface with the physical vehicle and robotic systems.
Handles structural design, mounts, and integration of hardware components. Works closely with electrical and software on physical system layout.
Builds the camera and LiDAR processing pipelines, object detection models, and sensor fusion systems that feed into the autonomy stack.
I sit at the intersection of firmware and high-level autonomy — writing ROS2 nodes that consume low-level CAN data and expose it as clean interfaces for the planning and control layers.
I collaborate daily with the Electrical subteam on protocol design and with fellow Autonomy engineers on system architecture.