Anduril Industries

Senior Software Engineer, Distributed Simulation (C++)

Anduril Industries$191K — $253K *
Aerospace & Defense
5 - 7 years of experience
Job Overview by Ladders

Qualifications

  • 7+ years of professional software engineering experience
  • Deep, current experience in modern C++ (C++17 or newer) with strong grasp of ownership and lifetime management
  • Experience with networked, concurrent, or real-time systems, including multithreading
  • Strong systems fundamentals including memory layout and Linux environments
  • Proven ability to profile and optimize systems for latency and throughput
  • Experience managing cross-cutting projects from inception to production
  • Familiarity with at least one other programming language, preferably Go or TypeScript
  • Excellent written and verbal communication skills to document designs and structures
  • Eligible for U.S. Secret security clearance

Responsibilities

  • Design and build C++ services for simulator federation into a unified simulated environment
  • Own and develop the protocol for simulator communication, ensuring interoperability
  • Ensure simulation runs are deterministic and reproducible, including time control and replay
  • Create tooling for scenario authoring, enabling engineers to define simulation runs efficiently
  • Develop catalogs for content and resource management for reuse of scenario definitions
  • Optimize system performance, monitoring latency and throughput under load
  • Integrate the simulation framework with existing platform services and user interfaces
  • Set technical direction, write design documentation, and mentor as the team expands
  • Collaborate with business units for onboarding and integration of their simulators
  • Document and streamline onboarding processes for future teams

Benefits

  • Comprehensive, competitive benefits package with minimal cost to employees
  • Support for employee health and recovery
  • Opportunities for professional growth and development
  • Access to top-tier benefits to ensure well-being in all areas of life
Full Job Description
ABOUT THE TEAM

The Software Integration Environment (SIE) team builds the platform Anduril uses to test software the way it will actually be flown, driven, and fought: real binaries, running on real services, under conditions we control. We provision isolated, reproducible environments for simulation and integration testing at scale, across AWS, Azure, and on-premise. The platform is used both internally by Anduril engineers and externally by our customers. Compute was the first half of that problem. The second half is the simulated world those binaries run inside - how it gets authored, how heterogeneous simulators agree on it, and how an engineer inspects and trusts what happened during a run. That is what this role owns.
ABOUT THE ROLE

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 clock, a common entity namespace, and a clear model of who owns what - and the tooling that lets users author, reuse, and debug the scenarios they run. This is a new area with a wide surface. You will be one of the first engineers on it, which means you will set the technical direction, make the architectural calls, and be accountable for them. Most of your time is spent building, but not all of it: you will periodically work alongside the teams adopting the platform, onboarding Anduril business lines and integrating their simulators with it. Expect ambiguity: the standards in this domain are decades old, the implementations in the wild vary wildly in quality, and the correct design for our constraints is not written down yet. We expect you to work end-to-end - design, implement, ship, operate, and iterate.
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
  • Integrate with the rest of the platform - the Go services that provision and schedule compute, the gRPC/protobuf APIs that expose it, and the web UI the team owns
  • Set the technical direction for this area, write the design docs that make it reviewable, and raise the bar through code review and mentorship as the team grows
  • Partner with Anduril business lines when they onboard onto the platform - work alongside their engineers to get their simulators, models, and test workflows integrated, and stay with them until it works in their hands and not just yours
  • Reduce the cost of that onboarding over time by turning the integration work you do by hand into documentation, reference integrations, and SDKs, so the next team can self-serve
  • Work directly with the internal teams and external customers who need this, and convert what they tell you into shipped capability
REQUIRED QUALIFICATIONS
  • 7+ years of professional software engineering experience
  • Deep, current production experience in modern C++ (C++17 or newer) - you are fluent in ownership and lifetime, move semantics, templates, and the standard library
  • Experience building networked, concurrent, or real-time systems in C++, including multithreading, synchronization, and the failure modes that come with them
  • Strong systems fundamentals: memory layout and allocation behavior, cache effects, sockets and UDP/TCP, serialization, and Linux
  • Demonstrated ability to profile and optimize a real system, and to reason about latency and throughput with numbers rather than intuition
  • Experience owning an ambiguous, cross-cutting project end-to-end and driving it to production
  • Experience working directly with the engineering teams who consume what you build - integrating them, unblocking them, and taking their feedback into the next version
  • Comfortable working in at least one other language alongside C++ - the surrounding platform is Go and TypeScript, and you will touch both
  • Strong written and verbal communication - you can write a design document that a skeptical reader can evaluate
  • Computer Science degree or equivalent industry experience
  • Eligible to obtain and maintain an active U.S. Secret security clearance
PREFERRED QUALIFICATIONS
  • 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)
  • Experience with virtualization or hypervisor technologies (KubeVirt, qemu)
  • Experience with GPU programming, rendering, or geospatial and terrain data
  • Experience building developer tooling or a platform product with real users, and iterating on their feedback
  • An active U.S. Secret or higher security clearance


US Salary Range

$191,000-$253,000 USD

The salary range for this role is an estimate based on a wide range of compensation factors, inclusive of base salary only. Actual salary offer may vary based on (but not limited to) work experience, education and/or training, critical skills, and/or business considerations. Highly competitive equity grants are included in the majority of full time offers; and are considered part of Anduril's total compensation package. Additionally, Anduril offers top-tier benefits for full-time employees, including:

Benefits

At Anduril, we invest in our people. Our comprehensive, competitive benefits package (available at little to no cost to employees) ensures you're supported in health, recovery, and whatever comes next. For more information, Explore Our Benefits.

About Anduril Industries

Anduril Industries is a defense technology company that develops advanced systems for the military. The company was founded in 2017 by Palmer Luckey, Trae Stephens, and Matt Grimm, and has since grown to become a major player in the defense industry. Anduril's products include autonomous drones, surveillance systems, and other advanced technologies that are designed to enhance military capabilities. The company has received significant funding from investors and has partnerships with several major defense contractors. Anduril is headquartered in Mountain View, California.
Learn more about Anduril Industries
Size
200 employees
Industry
Founded
2017

Similar Jobs

More Jobs at Anduril Industries

More Aerospace & Defense Jobs

Find similar Senior Software Engineer, Distributed Simulation (C++) jobs: