- Company Name
- Undercontrol
- Job Title
- Robotics Software Architect
- Job Description
-
Job title: Robotics Software Architect
Role Summary: Architect and build robust, modular runtime systems for robot behavior control, integrating ROS 2 and message‑passing middleware. Deliver internal SDKs and external APIs, tooling for debugging, simulation, and deployment, and comprehensive documentation for engineering teams and external developers. Lead system‑level design decisions, mentor engineers, and validate solutions through simulation and field testing.
Expactations: • 6+ years in real‑time or robotics software development, with 2+ years in a lead or architect role.
• Expert in C++17+ and Python.
• Deep knowledge of ROS 2, lifecycle nodes, and DDS.
• Proven experience designing distributed runtimes or middleware.
• Familiarity with Docker, containerized development, and CI/CD pipelines.
• Strong communicator, capable of collaborating across engineering disciplines and mentoring a team.
Key Responsibilities: • Design and implement runtime systems for state management, execution, and lifecycle control.
• Develop debugging, testing, simulation, and deployment tools.
• Build and expose internal SDKs and external APIs for scalable integration.
• Create clear, maintenance‑ready technical documentation.
• Incorporate ROS 2 and IPC into scalable robot software.
• Drive architectural decisions and mentor engineering staff.
• Validate runtime through simulation platforms and rigorous field testing.
Required Skills: • C++17+ (and modern C++ practices).
• Python programming.
• ROS 2, DDS, lifecycle node handling.
• Distributed systems and middleware design.
• Containerization (Docker, orchestration).
• API/SDK design and documentation.
• Debugging, testing, and simulation tools.
• CI/CD with GitHub Actions, colcon, and related tooling.
• Strong communication and collaboration.
*Nice to have:* behavior trees, safety system design, field diagnostics, simulation engines (Isaac Sim, MuJoCo), open‑source contributions in robotics or developer tooling.
Required Education & Certifications: Bachelor’s degree (or equivalent) in Computer Science, Electrical Engineering, Robotics, or related field. No mandatory certifications; professional experience is paramount.