Software Engineer – Open Position (Robotics / Backend, C++)

MujinTokyo, TokyoOn-siteFull-timeMid level, 2–5 yearsListed 1 week ago

Apply now

About this role

We are looking for a Backend Engineer to design, build, and own the core backend systems that power our industrial robotics platforms. In this role, you will take end-to-end ownership of backend components supporting robot controllers, working close to hardware, sensors, and operating systems to deliver reliable, high-performance systems in real-world production environments. You will design and operate low-latency services, data-intensive pipelines, and robust communication paths that directly influence system behavior on the factory floor. This role requires strong systems thinking, a focus on performance and reliability, and the ability to drive improvements independently across complex, evolving systems.
 
Responsibilities
Design and own backend systems for industrial robotics platforms
Take end-to-end ownership of backend components supporting industrial robot controllers
Design, implement, and maintain reliable backend services and APIs with strong focus on performance and stability
Work on low-latency communication paths, including high-performance HTTP services and inter-process communication (e.g., ZeroMQ)
Integrate and support sensor-driven data flows
Develop and maintain backend components that interface with sensors such as 3D cameras and other industrial devices
Work with sensor SDKs, drivers, and APIs to ensure predictable data ingestion and behavior
Debug issues that span application logic, OS behavior, and device interaction
Build and operate data-intensive backend pipelines
Own and continuously improve high-performance data pipelines that influence system-wide behavior
Design database usage and data access patterns with strong awareness of scale and efficiency
Contribute to defining, validating, and improving system metrics and KPIs
Drive system reliability and operational excellence
Diagnose and resolve complex production issues across multiple system layers
Contribute to controller provisioning, reset, and upgrade workflows with a focus on stability and predictability
Improve observability, diagnostics, and operational tooling to reduce long-term operational risk
Solve complex, real-world engineering problems
Operate effectively in complex systems with evolving requirements and constraints
Make architectural and design decisions balancing performance, reliability, and maintainability
Drive improvements independently, from problem identification through implementation and rollout

Responsibilities

- Design, develop, and maintain software for Mujin’s industrial robotics systems.

- Build high-performance and reliable software using C++ and Python.

- Solve complex technical problems across robotics algorithms, backend systems, and real-world robotic applications.

- Optimize software for performance, reliability, and scalability.

- Collaborate with engineers across robotics, backend, and other teams to bring solutions into real-world production environments.

Minimum Qualifications

- Bachelor’s degree or higher in Computer Science, Robotics, Computer Engineering, Electrical Engineering, Mechanical Engineering, or a related field, or equivalent practical experience.

- Strong software-development experience using C++ and/or Python.

- Experience developing software in a Linux environment.

- Strong problem-solving skills and the ability to investigate complex technical issues.

- Ability to design and implement reliable, maintainable, and performance-conscious software.

- Interest in solving real-world industrial robotics and automation problems.

Preferred Qualifications

Robotics & Algorithms

- Motion planning, collision checking, robot control, or robot dynamics

- Linear algebra, 3D geometry, computational geometry, or spatial data structures

- Graph/search algorithms, combinatorial optimization, or operations research

- Robotics frameworks such as ROS, OpenRAVE, or custom frameworks

- Hands-on experience with robotic hardware

Backend & Systems

- High-performance or concurrent software systems

- Linux internals, networking, network protocols, or asynchronous I/O

- Inter-process communication technologies such as ZeroMQ

- Docker and container-based systems

- Sensor SDKs, drivers, or industrial device integration

- Production troubleshooting, diagnostics, or operational tooling

To learn more about the technical challenges our engineers work on and their day-to-day engineering work, visit Mujin Gemba Walk (https://gembawalk.mujin.co.jp/).

Interview Process:

- Coding Assessment: Initial technical evaluation.

- HR Interview: Discussion with Human Resources.

- Hiring Manager Interview: One or two rounds with the hiring manager.

- Take-Home Assignment & Feedback Interview (If Applicable): A task to complete on your own, followed by a feedback session.

Location
3-8-5 Tatsumi, Koto-Ku, Tokyo 135-0053, Japan
Work Hours
8:45 - 17:45 (with a 60-minute break)
Salary
Based on experience and skills
Salary revision twice a year
Additional bonuses are available based on performance
Holidays
Every Saturday and Sunday
Annual paid leaves
Maternity leave and Childcare leave
Flex Holiday (take public holidays on days of your choice)
Other holidays as defined by the company
Company Benefits
Explore Mujin Perks & Welfare Benefits
Flexible dress code policy
Commuting allowance
Japanese Social Security (Health Insurance, Pension, Labor Insurance)
Monthly team dinner support
Free buffet lunch every workday
Free vending machines (offering drinks and snacks)
High-end coffee machine
Exclusive Employee Gym Access
Japan Relocation Support
Visa sponsorship
Flight ticket support
Shipping expenses coverage up to a specified limit
Assistance for housing