Robotics Software Engineer, Simulations
About The Role:
Our manufacturing system is composed of nodes; each delivers a unit of manufacturing capacity for a process, and there are a dozen or more node types. As a Robotics Software Engineer, Simulations, you will help build our machines' digital twins: simulations that stand in for the real hardware behind the same software interfaces, so that manufacturing software can be developed and tested without waiting for machine time. You will join the simulation team at its start, working directly with its founding engineer.
Your work starts with the foundation all our nodes share and the robotics that move material through them. One week you might build the model of a motion axis, a gripper, or a sensor and watch a machine's software run against it; the next, wire a node's software into the simulator so it can be tested in CI, or dig into why the simulation and the real machine's telemetry disagree and decide whether that's a software bug or a gap in the model.This role suits an engineer with strong fundamentals, curiosity about how physical machines behave, and an instinct for the difference between what the model says and what the machine did.
What You’ll Do:
- Build models of the devices that make up our machines (motion axes, sensors, grippers, and the machinery around them) that behave like the real thing behind the same software interfaces.
- Build scenario and regression suites that let machine software be developed and tested in CI, with no hardware in the loop.
- Extend simulation coverage across our machine types so more of the stack can be exercised without a physical machine.
- Build validation tooling that compares simulation behavior against real-machine telemetry, and root-cause divergences to a software bug or a model-fidelity gap.
- Grow toward owning a well-bounded piece of the platform, such as the device-model library or the simulation harness our CI runs on.
What You’ll Need:
- 2+ years building software for systems that interact with hardware or the physical world; industry, internships, robotics competitions, research, and serious open-source work all count.
- Strong programming fundamentals with working Python: you can build and debug real systems in Python, even if it isn't your first language.
- Simulation or modeling exposure: physics simulation, behavioral/discrete-event simulation, digital twins, or game-engine work; you have used a simulator seriously and know where it lied to you.
- A first-principles mindset: you reason about why a design works, not just how you've seen it done.
- Practical understanding of state machines, concurrency, and determinism.
- Systematic debugging habits and the collaboration skills to chase problems across the software/hardware boundary.
- BS in CS, CE, EE, ME, Mechatronics, Robotics, or equivalent experience.
Bonus Points For:
- Working C++: our motion stack and parts of the simulation core are C++ (expected at L4; a strong plus at L3).
- Physics-engine experience: MuJoCo, Drake, Bullet, PyBullet, or similar; rigid-body dynamics and contact modeling.
- Robotics depth: kinematics, dynamics, motion planning, or state estimation.
- Experience with robotics middleware, ROS or otherwise (we build our own).
- gRPC/Protobuf APIs, observability tooling, or CI/test infrastructure at scale.
- Hardware-in-the-loop testing or sim-based validation of real machines.
The compensation for this position also includes equity and benefits.
Salary Range
$160,000 - $190,000 USD
Apply for this job
*
indicates a required field