Robot Simulation Engineer
Location: Remote
Employment Type: Full-time, permanent
Compensation: ₦500,000 monthly
Reports to: CEO/CTO
Works With: Mechanical Design, Hardware, Firmware, and the ML/AI team
About Us
We are a deep-tech company building personal safety technology. Our work sits at the point where sensing, edge AI, and hardware meet a person who is frightened, vulnerable, or alone.
Role Overview
We're building a small autonomous mobile robot for the home - a companion that watches over vulnerable people, holds a conversation, and acts when something goes wrong. It stands roughly 20 centimetres tall, balances on two wheel-legs, folds into a compact mode, and has to move through an ordinary house which means, among other things, getting up a staircase that was not designed with robots in mind.
You will own how it moves. Every behaviour it performs will exist first as a model you built, a controller you designed, and a simulation you were willing to stake a hardware build on.
The motion set spans two very different problems. One is dynamic locomotion: balancing, driving over carpet and thresholds, jumping, climbing and descending stairs, falling safely, and righting itself from any orientation. The other is expressive motion: nodding, turning to attend to someone, a formal courtesy bow, an idle presence that tells a person in the room the machine is awake and paying attention. The first is judged on physics. The second is judged on whether a frightened eighty-year-old reads it correctly. Both matter, and most engineers are strong at only one.
Your first significant deliverable is not a simulation at all, it is a written determination of what the machine must physically be able to do, delivered while the mechanism can still change. You will shape the hardware, not just model it.
Key Responsibilities
- Build and own the canonical robot model in URDF, SRDF, and Xacro, with inertial properties traced to CAD rather than estimated, and scripted conversion into MuJoCo and Isaac Sim formats running in continuous integration
- Design the self-balancing controller for a wheeled inverted pendulum, specified to run in a 1 kHz real-time loop on a microcontroller
- Develop and validate the full motion library: standing, driving, jumping, stair ascent and descent, safe falling, self-righting, obstacle avoidance, and the expressive behaviours
- Determine the degrees of freedom the mechanism needs, and tell the mechanical designer early and plainly when a required behaviour is not achievable as drawn
- Derive the physics of the jump, take-off velocity, peak force, peak power, landing energy and feed it into actuator selection before it is frozen
- Generate simulated camera, depth, thermal, and radar data for the machine learning team to train on
- Close the loop with hardware: measure what the real robot does, quantify where the model was wrong, and correct it
- Build the regression suite that stops a controller change quietly breaking a behaviour that worked last month
Qualifications
- Robot description formats authored from scratch: URDF, SRDF, and Xacro, including correct inertial tensors, joint limits, transmissions, and the separation of collision from visual geometry
- ROS 2 at a professional standard: lifecycle nodes, TF2, ros2_control, and the controller manager
- At least two of MuJoCo, NVIDIA Isaac Sim or Isaac Lab, and Gazebo at the level of authoring scenes, tuning contact and solver parameters, and diagnosing instability, not just running examples
- Rust, to a professional standard (see note below on where it's actually used)
- Contact-rich dynamics: friction, restitution, solver time-step selection, and the failure modes each brings
- Balance control on underactuated systems, LQR, MPC, or equivalent applied to a wheeled inverted pendulum or a comparable plant
- Real sim-to-real transfer experience on a physical robot, and the ability to describe in detail something that did not transfer and why
Preferred Experience
- Reinforcement learning for locomotion in Isaac Lab, with domain randomisation and reward shaping for jumping or contact-rich behaviour
- Trajectory optimisation for dynamic manoeuvres
- Expressive or social robot motion, where legibility to a human observer is the objective
- Embedded Rust on Cortex-M, particularly RTIC or Embassy
- Sensor simulation for cameras, depth, thermal arrays, or millimetre-wave radar
Where You Won't Be a Fit
- Simulation experience confined to game engines, with no physical robot behind it
- Unable to say where inertia tensors come from, or what a simulation looks like when they're wrong in a way nobody notices
- Never worked on a robot that falls over
On Rust
Rust is required, but not everywhere and we'd rather say so upfront than discover the disagreement in month three. We use Rust for the real-time balance and motion control loop (1 kHz, Cortex-M, no_std, RTIC or Embassy) and the on-robot behaviour runtime. Simulation authoring, scripting, and RL training stay in Python, because that's what the simulators are actually built for. ROS 2 nodes use Rust where the client library is adequate, C++ or Python otherwise your call, recorded. If you have strong views on any of this, we want to hear them at interview.
How We Work
- Firmware and electrical design are in-house only this is a permanent position, not a contract, because the motion layer is part of the product
- We write things down. Decisions live in documents, not in the memory of whoever was on the call
- We'd rather hear an unwelcome finding in week two than a reassuring one in month six. Telling us a behaviour is impossible, with the reasoning, is doing the job well
- The people who build the mechanism, the electronics, and the intelligence are all within a conversation of each other nothing is thrown over a wall
- The product is used by people who are genuinely vulnerable. That shapes what we consider finished
What We Offer
- Equity participation
- Ownership of an entire layer of a real product, from first model to shipped behaviour
- Hardware to work on, and a mechanical designer who will act on what you find
- Possible relocation to EU
How to Apply
Tell us which robot you've made move, and what it did that you didn't expect. Send your CV to hr@15wins.com
Only qualified candidates will be contacted.