Jobs · Engineering · Washington

Senior Software Engineer, Distributed Simulation (C++)

Anduril Industries · Seattle, WA · 1 mo ago
Engineering$191k–$253k/yrFull-time
We need to output HTML fragment with sections: About the role, Responsibilities (maybe "What You’ll Do"), Requirements (Qualifications), Skills? The posting includes "About The Team", "About The Role", "What You’ll Do", "Required Qualifications", "Preferred Qualifications", "US Salary Range", "Benefits". Also there is a lot of boilerplate about scam warnings etc which we must remove. Also we must not repeat job title as heading. We must not include Job ID/requisition numbers (none present). We must include sections only when posting has real specific content. We must not create Pay/Schedule/Benefits sections unless posting actually states them. The posting includes "US Salary Range $191,000—$253,000 USD" and "Benefits" description. So we should include Pay and Benefits sections. Schedule not present, so omit. We need to use

for section headings (e.g. About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule). So we need to map content to these headings. We have "About The Team" and "About The Role". The instruction says use

for section headings (e.g. About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule). It doesn't forbid other headings? It says use

for section headings (e.g. About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule). Likely they expect only those headings. But we have "About The Team" content; maybe we can incorporate into About the role? Or we could treat "About the role" as heading and include both About The Team and About The Role under it. The instruction: "use

for section headings (e.g. About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule)." It doesn't forbid other headings but suggests those are typical. Safer to stick to those headings. We can combine About The Team and About The Role under "About the role". Or we could have "About the role" and "Responsibilities". The "What You’ll Do" is responsibilities. Required Qualifications -> Requirements or Qualifications. Preferred Qualifications could be Skills? Or we could have a Skills section. But we have both Required and Preferred qualifications; we could put Required under Requirements, Preferred under Skills. Or we could have Qualifications section covering both required and preferred. The instruction says we can use Qualifications as a heading. Let's decide: Use "About the role" for team+role description. Use "Responsibilities" for What You’ll Do. Use "Requirements" for Required Qualifications. Use "Skills" for Preferred Qualifications (or maybe "Qualifications" for both). But we have both Required and Preferred; maybe better to have "Requirements" for required, and "Preferred Qualifications" not in list but we could still include as a heading? The instruction says use those headings as examples, not exclusive. It says "use

for section headings (e.g. About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule)." It doesn't forbid other headings, but to be safe we can stick to those. We could put both required and preferred under "Requirements". Or we could have "Qualifications" for required and "Skills" for preferred. Let's see typical job postings: Requirements = required qualifications; Skills = preferred or desired skills. We'll do that. Thus sections: -

About the role

: combine About The Team and About The Role paragraphs. -

Responsibilities

: list of What You’ll Do items (bullet list). -

Requirements

: Required Qualifications list (maybe bullet list). -

Skills

: Preferred Qualifications list (bullet list). -

Pay

: US Salary Range. -

Benefits

: Benefits description. We must not include schedule. We must preserve all substantive information, not invent or summarize away detail. Must not include boilerplate like cookie/navigation/legal/EEO etc. Must remove scam warning, data privacy, etc. We need to output only HTML fragment, no /, no markdown fences. Let's extract content. About The Team paragraph: "Anduril Industries is a defense technology company with a mission to transform U.S. and allied military capabilities with advanced technology. By bringing the expertise, technology, and business model of the 21st century’s most innovative companies to the defense industry, Anduril is changing how military systems are designed, built and sold. Anduril’s family of systems is powered by Lattice OS, an AI-powered operating system that turns thousands of data streams into a realtime, 3D command and control center. As the world enters an era of strategic competition, Anduril is committed to bringing cutting-edge autonomy, AI, computer vision, sensor fusion, and networking technology to the military in months, not years." About The Role paragraph: "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." Wait the text seems duplicated: Actually the posting includes "About The Team" then "About The Role". Let's re-read original: "Anduril Industries is a defense technology company with a mission to transform U.S. and allied military capabilities with advanced technology. By bringing the expertise, technology, and business model of the 21st century’s most innovative companies to the defense industry, Anduril is changing how military systems are designed, built and sold. Anduril’s family of systems is powered by Lattice OS, an AI-powered operating system that turns thousands of data streams into a realtime, 3D command and control center. As the world enters an era of strategic competition, Anduril is committed to bringing cutting-edge autonomy, AI, computer vision, sensor fusion, and networking technology to the military in months, not years. 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." Thus we have two paragraphs: first about company, second about team, third about role. We'll combine them under About the role heading. Now Responsibilities: "What You’ll Do" list: - 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 We need to put these in
  • . Now Required Qualifications list: - 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 Now Preferred Qualifications list: - 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

Similar jobs