Skip to main content

Robotics Software Engineer


Role Overview

We’re looking for a Robotics Software Engineer to develop and integrate robot control software using ROS 2 and modern robotics tooling. 


Responsibilities


  • Develop and maintain ROS 2 packages (nodes, messages, services, actions, launch files).
  • Integrate sensors (IMU, LiDAR, RGB-D cameras) and process data for control modules.
  • Configure and run simulations in Gazebo/Ignition, defining URDF/SDF models and plugins.
  • Implement and tune controllers (PID, model-based), validated in simulation and on hardware.
  • Write and run unit/integration tests, automated via CI/CD pipelines.
  • Collaborate with mechanical and electronics teams for full-stack robot integration.
  • Document APIs, package maintenance, and launch/runtime configurations.



Required Qualifications


  • At least 3 years of working experience in a similar field.
  • Hands-on experience with ROS 2 (packages, nodes, parameters, lifecycle management).
  • Proficiency in Modern C++ (11/14/17) and Python.
  • Strong Linux (Ubuntu LTS) skills: debugging, shell scripting, systemd.
  • Experience with Gazebo/Ignition (worlds, URDF/SDF, plugins, virtual sensors).
  • Control & kinematics: controller implementation; working knowledge of forward/inverse kinematics.
  • Version control & CI: git workflows, CI pipelines, unit testing.
  • Robotics debugging with rviz2, rqt, ros2 CLI/tools, rosbag logging.



Nice to Have


  • Real-time experience (PREEMPT_RT, RT kernels).
  • Knowledge of DDS/RMW and ROS 2 QoS tuning.
  • Algorithms: state estimation (EKF/UKF), motion/path planning, SLAM, odometry.
  • Perception: OpenCV, PCL, deep-learning inference (TensorRT/ONNX).
  • Prototyping on Raspberry Pi/Jetson, cross-compilation for MCUs.
  • Robotics CI (headless Gazebo/Ignition simulations in pipeline).
  • Familiarity with ROS 2 Control, hardware interface layers, and actuator drivers.