Senior Robotics Algorithm Engineer (C++
Job description
About the role
You will architect and implement the core algorithmic layer of MujinOS that translates high-level task descriptions into executable robot behaviors in real time. You will own the design, development, and validation of control, motion planning, and packing algorithms that directly run on the MujinController platform. You will collaborate daily with cross-functional teams to translate operational requirements into robust algorithmic specifications and verify them in both simulation and physical deployments. You will drive the technical direction for algorithmic improvements by analyzing performance bottlenecks and proposing novel enhancements rooted in first principles. You will ensure that all implementations meet stringent real-time and reliability standards required for industrial environments. You will mentor junior engineers by providing code reviews, technical guidance, and clear documentation of complex systems. You will partner with application engineers to debug on-site challenges and adapt algorithms to diverse customer constraints. You will contribute to the long-term architectural vision of the Robotics System Team to maintain Mujin's competitive edge in autonomy.
Key facts
What you'll do
Design and maintain the C++ core of MujinOS, focusing on deterministic execution, low-latency communication, and memory-safe patterns.
Implement real-time trajectory generators that respect robot dynamics, joint limits, and safety constraints under high-frequency control loops.
Develop sampling-based and optimization-based motion planners capable of reliable performance in cluttered and dynamic scenes.
Engineer collision-checking modules that integrate geometric primitives and scene representations for high-speed verification.
Create packing algorithms that balance geometric reasoning with combinatorial optimization to maximize space utilization and throughput.
Build and maintain simulation interfaces that allow offline testing, scenario replay, and performance benchmarking of new algorithms.
Analyze production logs and performance metrics to iteratively refine algorithm parameters and improve success rates in field deployments.
Work closely with computer vision teams to align perception inputs with motion planning assumptions and reduce uncertainty propagation.
Define and implement interfaces that allow downstream applications like palletizing and piece-picking to leverage the algorithmic layer with minimal configuration.
Champion best practices in software engineering, including modular design, unit testing, and continuous integration within the robotics stack.
Participate in on-call rotations to support critical deployments and provide rapid algorithmic triage and fixes when issues arise.
Translate customer use cases into technical requirements and validate that algorithmic solutions meet functional and non-functional expectations.
Collaborate with research partners to evaluate emerging techniques and assess their practical integration into the MujinOS roadmap.
Document algorithmic behavior, edge cases, and configuration options to enable efficient troubleshooting and knowledge transfer.
Requirements
You hold a Bachelor's or higher degree in Computer Science, Robotics, Electrical Engineering, or a closely related technical field.
You possess 5+ years of professional experience developing control, motion planning, or geometric algorithms for robotics applications.
You have expert-level proficiency in C++17 or newer, including templates, move semantics, and concurrency patterns.
You are experienced with real-time systems and deterministic execution constraints in industrial contexts.
You have a strong grasp of robot dynamics, kinematics, and common robotic manipulator configurations.
You have hands-on experience with collision detection libraries and spatial data structures such as octrees or BVH.
You have implemented sampling-based planners such as RRT, RRT*, or PRM, and optimization-based planners like CHOMP or TrajOpt.
You have worked with packing or bin-picking problems, including item representation, stability constraints, and nesting logic.
You are comfortable with Linux development environments, build systems such as CMake, and version control workflows using Git.
You have a proven track record of writing robust C++ code that handles edge cases and performs efficiently at scale.
You demonstrate strong algorithmic thinking and the ability to analyze computational complexity in practical scenarios.
You have experience interfacing with robotics middleware such as ROS or custom real-time messaging frameworks.
You have worked with sensor data representations and basic perception concepts relevant to scene understanding.
You have collaborated with cross-functional teams to deliver algorithms that meet production-grade reliability standards.
You are comfortable reading and interpreting mathematical formulations in academic papers or technical reports.
You communicate effectively in English with team members, stakeholders, and customers located in diverse regions.
Nice to have
Experience with Mujin products, including MujinOS or MujinController, is a significant advantage.
Familiarity with industrial robot brands and their SDKs or low-level drivers.
Knowledge of convex optimization or nonlinear programming relevant to motion planning and control.
Experience with containerization or orchestration tools used in robotic deployments.
Understanding of safety standards and functional safety concepts as applied to robotic systems.
Experience contributing to open-source robotics projects or publishing technical work in relevant domains.
Practical notes
This role is based in Tokyo, Japan, at our MJHQ office.
The position is full-time with English as the working language.
Standard working hours apply within the Japanese time zone.
Applicants must be eligible to work in Japan without sponsorship for this posting.
No relocation support is provided for this role.
Travel may be required within Japan and to customer sites as needed for deployment and debugging.
Visa sponsorship is not available for this position.
Applications will be reviewed on a rolling basis until the role is filled.
Candidates are encouraged to submit detailed portfolios or technical blogs that demonstrate their algorithmic work in robotics.