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.