> Markdown version of [/jobs/ext/1161737-founding-simulation-engineer-c](https://www.wearedevelopers.com/jobs/ext/1161737-founding-simulation-engineer-c). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Founding Simulation Engineer (C++) - **Company:** Nonlimi Dynamics SL - **Location:** Madrid, Spain (Remote available) - **Salary:** €40,000.0 - **Contract:** Permanent contract - **Skills:** Application Programming Interfaces (APIs), Apache HTTP Server, Systems Engineering, C++ (Programming Language), Digital Rendering, Software Debugging, Python (Programming Language), Open Source Technology, Posix, Dart, Lidar, GNSS - **Published:** July 3, 2026 - **Apply:** https://es.indeed.com/viewjob?jk=44e6665cf0bd6c24 ## About the Role These are hard gates: * C++ systems engineering, 4-7 years - performance-critical C++ where memory layout, cache behavior, and undefined behavior were first-class concerns * Physics engine internals - MuJoCo, Bullet3, PhysX, DART, or Gazebo at the integration level - constraint solver configuration, determinism flags, collision shape management * C++ shared-memory IPC - POSIX SHM, lock-free ring buffers, std::atomic with explicit acquire/release/seq_cst ordering * Non-determinism debugging - you have found and fixed a case where physics state diverged across runs, across machines, or after a compiler upgrade Nice to Have * MuJoCo C API directly (not just mujoco-py or dm_control wrappers) * ROS2 C++ (rclcpp, DDS transport, composable nodes, lifecycle nodes) * pybind11 or similar C++/Python binding experience * Godot 4 or real-time scene graph experience (Unity, Unreal at the renderer level) * Sim-to-real deployment - taken a policy from simulation to a physical robot ## Description You will own the simulation core - the physics engine, sensor simulation, and the bridge between C++ physics and the rest of the platform. This is not a feature team role. The simulation core is the product. Your work includes: * Deterministic physics + the regression/replay loop - MuJoCo in deterministic mode (single-threaded, version-pinned, -fno-fast-math), plus the bit-exact replay and baseline-comparison loop that makes simulation usable as CI. This loop is the core of the product. * Shared-memory IPC - out-of-process ring buffer bridging C++ physics to the platform layer * ROS2 C++ bridge - native ROS2 integration so customers can use standard tooling (rviz2, rosbag, ros2 topic) * Sensor simulation + noise/degradation models - LiDAR ray-casting (MuJoCo mj_ray today; Intel Embree on the roadmap) and camera are shipped; you'll deepen them and build the sensor-noise and degraded-signal models (LiDAR, camera, GNSS-denied, IMU) that validation work depends on - feeding physics-state-projection annotations for exact ground truth * Open-source Nonlimi Core - your work ships under Apache 2.0 Over the first year, you'll extend the core - DART for articulated manipulators, USD pipeline integration, and additional physics domains as new verticals come online. What You'll Do First The deterministic core already exists - clone the repo and run nonlimi test scenarios/examples/husky_basic.yaml --output-dir ./artifacts to get a pass/fail verdict and a full artifact bundle in about a second. Your job is to own it and take it from prototype to product: harden the deterministic regression/replay loop, and build the sensor-noise and degraded-signal models the first design-partner proof-of-concept needs. Early on, you'll help land the first measured sim-vs-real correlation result - the evidence that the validation actually predicts hardware behavior. ## Related Videos - [Code to Road in < 12 hours](https://www.wearedevelopers.com/videos/1082-code-to-road-in-12-hours) - [Using WebAssembly to run, extend, and secure your application](https://www.wearedevelopers.com/videos/652-using-webassembly-to-run-extend-and-secure-your-application) - [Dart - a language believed dead, experiences a new bloom](https://www.wearedevelopers.com/videos/442-dart-a-language-believed-dead-experiences-a-new-bloom) - [On developing smartphones on wheels](https://www.wearedevelopers.com/videos/258-on-developing-smartphones-on-wheels) - [Dart - a language believed dead, experiences a new bloom](https://www.wearedevelopers.com/videos/955-dart-a-language-believed-dead-experiences-a-new-bloom) - [Strange New Worlds: shaping the future of the digital age](https://www.wearedevelopers.com/videos/677-strange-new-worlds-shaping-the-future-of-the-digital-age) ## Related Articles - [Dev Digest 138 - Are you secure about this?](https://www.wearedevelopers.com/magazine/486-dev-digest-138-are-you-secure-about-this) - [Dev Digest 131 - AI'm not sure about OSS](https://www.wearedevelopers.com/magazine/472-dev-digest-131-ai-m-not-sure-about-oss) - [Dev Digest 120 - Apple and peers](https://www.wearedevelopers.com/magazine/455-dev-digest-120-apple-and-peers) - [Dev Digest 137 - AI'm not sure about this](https://www.wearedevelopers.com/magazine/485-dev-digest-137-ai-m-not-sure-about-this) - [Dev Digest 112 - The True Crime of AI Development](https://www.wearedevelopers.com/magazine/421-dev-digest-112-the-true-crime-of-ai-development) - [Dev Digest 129 - Now that's what I call private data!](https://www.wearedevelopers.com/magazine/468-dev-digest-129-now-that-s-what-i-call-private-data)