Senior Robotics Software Engineer - Autonomy Architecture
Gravis Robotics
Gravis Robotics is a high-growth Series A start-up backed by SoftBank, bringing Physical AI to the construction industry, turning heavy construction machines into autonomous robots. Gravis began as an ETH Zurich spin-out, and our unique combination of learning-based automation and augmented remote control lets one operator safely conduct a fleet of earthmoving machines in a gamified environment. Backed by deep robotics research and now deployed across multiple countries with leading construction and equipment partners, our team is rapidly growing to bring this technology to a trillion-dollar industry. The Gravis RACK is a machine-agnostic retrofit kit that adds autonomy to excavators and wheel loaders from 10 to 100+ tonnes: LiDAR and camera sensing, GNSS RTK, networking hardware and rugged edge compute that works offline.
Paired with the Slate tablet and our Copilot software, it lets an operator run a machine manually, with AI assistance, or fully autonomously. Increasingly, we also build custom hardware to adapt our machines for highly specialized, robust applications beyond traditional excavation. About the Job The autonomy team at Gravis architects autonomous behaviors for different tasks, e.g.
different types of excavation or truck loading. This role owns the architecture that lets those behaviors live in the same software stack as opposed to creating one SW stack per behavior. You'll be responsible for how tasks are decomposed and orchestrated, for the interfaces between, and for the software quality. We are looking for a senior roboticist with C++ and Python expertise and high standards for software quality, who can make clear, pragmatic architectural calls that let the system grow without losing stability.
What you'll do Architecture Own the task-level architecture shared across our autonomous behaviors Define clear module boundaries and responsibilities between behavior orchestration, factor out common logic across different tasks Implement component tests and telemetry/metrics collection pipelines Identify technical debt early enough to guide the team toward sustainable solutions Act as the go-to person for software quality: modern C++ practices, code structure, error handling, robustness.
Likewise for Python. Configuration & tooling Design an easily extensible and testable module for deploying policies that can be reused across tasks and supports schema versioning for observations, so a deployed policy pins the exact version of the computations it was trained against Provide technical leadership on C++ and Python tooling (clang-tidy, sanitizers, static analysis, linting, typing, test setup) Work with our incoming simulation team to unify training, benchmarking and evaluation tooling across tasks, so adding a task doesn't mean forking tooling and infrastructure What we're looking for Required Bachelor's or Master's degree in Robotics, Computer Science, Electrical Engineering, or a related field 5+ years developing complex C++ systems, with deep knowledge of modern C++ (17 and onwards) Strong Python for tooling, configuration and simulation-side scripting Strong experience designing large, modular software systems that outlived their first use case High standards for software quality and long-term maintainability Nice to have Experience with behavior trees, state machines, or other task orchestration frameworks in production Experience working alongside learned controllers in a production stack - deployment, versioning, observation pipelines.
No need to train them. Motion planning, geometric algorithms, or spatial data structures Feature-flagged deployments, staged rollouts, or long-lived platforms This role is a great fit if… You want to make systems work reliably in the real world, and enjoy thinking through the edge cases You'd rather our next behavior be a configuration than a dedicated piece of software You want the best idea to win regardless of who had it, and you'd rather be