Software Engineer (C++), Heavy-machinery Automation

DeepX Bunkyo-ku, Tokyo October 30 2026
  • 💴 No salary range given
  • 🏡
    Partially remote
  • 🌏
    Apply from abroad
    Relocate to Japan
  • 💬
    No Japanese required
    Business English
  • 🧪
    Intermediate to senior levels
    Unspecified years of experience
APPLY FOR THIS POSITION
DO YOU NEED MORE INFO?
ASK A QUESTION

About DeepX

DeepX Bunkyo-ku, Tokyo

DeepX automates heavy equipment machinery, including mobile cranes and excavators. We're highly international, with a team of engineers from both Japan and all over the world.

About the position

The Core System team at DeepX builds the software platform and tooling that underpin our heavy-machinery automation applications. This includes the base robotics framework, sensor and hardware abstraction layers, integration infrastructure, middleware, and system-level orchestration.

As a Core System Engineer, you will design how the automation system comes together, build the components that make it work, and harden it for real-world operation, including hands-on validation at Genba (現場, the work site), where safety is paramount. We’re looking for a strong software engineer who enjoys working across the full robotics stack, reasons about system behavior end to end, and works closely with other domain teams to put production-grade automation on real machines. A robotics background helps, but solid engineering and curiosity about the whole system matter more.

You’ll have broad ownership in a small team, from system design through field validation, working on autonomous heavy machinery deployed at real customer sites, not just in simulation.

Responsibilities

  • Design and implement system orchestration: state machines, behavior trees, and high-level behavior management, including safety and error-handling mechanisms.
  • Lead the integration of perception, control, and planning modules with the hardware, UI and external systems, working with the teams that own them, ensuring everything works together reliably at runtime.
  • Contribute to design of the ROS2 node architecture, interfaces and configuration packages that our automation applications are built on.
  • Develop machine platform components such as drivers and parsers for proprietary and third-party hardware.
  • Build logging, monitoring and introspection tools that make integration and field operations faster, safer and cheaper.
  • Validate your work on real machines through hardware testing and field deployments.

Requirements

  • Professional experience developing production software in modern C++ on Linux.
  • Experience building, integrating, or debugging systems where multiple components interact at runtime (robotics, automotive, embedded, industrial automation, or distributed systems).
  • Willingness to work on-site at customer sites on a project’s needs basis, including outdoor and industrial environments and travel.
  • Working proficiency in English.

Nice to haves

While not specifically required, tell us if you have any of the following.

  • Experience with ROS2, especially designing node architecture and interfaces for larger applications.
  • Hands-on field testing of robotic, vehicle, or industrial systems, covering integration, stability, safety, and performance.
  • Hardware driver or low-level infrastructure development, including CAN bus, PLCs, industrial protocols, or network communication (TCP/UDP, sockets).
  • Proficiency in Python.
  • Familiarity with perception, control, or planning.
  • Experience defining test strategies for system reliability.
  • Practical experience with Docker.
  • Proficiency in Japanese.

Hiring Process

  1. 1

    CV check

    We check the qualifications from CV submitted at the time of application.

    *Applications with heavily AI-written CVs or application materials, meaning those that rely on AI-generated content rather than describing your own experience and skills, will not be considered. We also do not use AI to make hiring decisions. We ask all applicants to be transparent throughout the selection process.

  2. 2

    1st interview

    Based on the applicant’s profile, we determine the suitability for our company’s positions and clarify any uncertainties the applicant may have.

  3. 3

    Two technical interviews

    We verify whether the applicant possesses the abilities required for the position.

  4. 4

    Final interview

    We check for a culture match with our company and adjust terms and conditions.

APPLY FOR THIS POSITION
DO YOU NEED MORE INFO?
ASK A QUESTION

More jobs like this

We'll send you a digest of new English-friendly software developer jobs in Japan. Your email stays private, we don't share or sell it.