Senior Software Engineer, Distributed Simulation (C++)Posted today$253K

The opportunity

We are looking for a Senior Software Engineer with deep C++ and real-time systems experience to build the simulation layer of the SIE platform. This is a systems software role: you will design and write the services that let independent simulators share one world — a common…

What you'll do

  • Design and build the C++ services that federate independent simulators into a: single simulated world — time management, entity registry and ownership, join/resign lifecycle, and state distribution

  • Own the wire layer: protocol encoding and decoding, multicast and unicast transport, and the interoperability work required to make simulators built by different teams and vendors talk to each other

  • Make simulation runs deterministic and reproducible enough that a result is: evidence, not a demo — including time control, replay, and the instrumentation that explains a divergence

  • Build and generalize the scenario and laydown authoring tooling that: engineers and operators use to describe what they want to run

  • Build the content and resource catalogs that let users save, tag, search, and: reuse environment and scenario definitions instead of rebuilding them each time

  • Chase down performance: profile hot paths, control allocation and copying, and hold latency and throughput budgets under load with hundreds to thousands of entities

What they're looking for

  • You have a bias for action and taking ownership. You have a track record of: fixing a problem when you see one, including problems that are not formally yours.
  • Experience with distributed simulation and interoperability standards: DIS (IEEE 1278), HLA/RTI (IEEE 1516), TENA, or equivalent proprietary federation layers
  • Experience with simulation engines, physics or flight dynamics models, game: engines, or discrete-event and time-stepped simulation frameworks
  • Experience with software-in-the-loop or hardware-in-the-loop test systems,: robotics simulation, or synthetic environments used for test and training
  • Experience making a distributed system deterministic or reproducible,: including logical clocks, lockstep execution, or record and replay
  • Experience with gRPC/protobuf, or with designing binary protocols and schema evolution
  • Experience running C++ services on hardware or containers on Kubernetes, or otherwise operating what you build
  • Experience or interest working in monorepos with modern build systems like: Bazel, Buck, Nix, etc. (we use Bazel)