Software Engineer, Mission Simulation
About the role
Rain is building autonomous systems to combat catastrophic wildfires. Our platform integrates aircraft, perception systems, mission autonomy, and operator interfaces into a cohesive, safety-critical system designed to operate in complex, dynamic environments.
Simulation is the first proving ground for everything we build. Before an aircraft flies, before autonomy makes decisions in the field, and before operators rely on the system in dynamic wildfire conditions—those behaviors are developed, tested, and validated in simulation.
In this role, you will build the environments, infrastructure, and system integrations that allow Rain to safely scale autonomous firefighting. At the intersection of perception, autonomy, aircraft systems, and operator interfaces, your work will enable rapid iteration on mission-critical capabilities and expose how the full system behaves under real-world constraints. You will have opportunities to contribute directly to the product by developing safety-critical and mission-critical production modules that are deployed and run in-flight.
You will shape how multi-aircraft coordination strategies are developed, how edge cases and failure modes are tested, and how we build confidence in safety-critical autonomy before deployment. Your simulation systems will directly influence how we fight fires, protect communities, and scale operations.
We are looking for a Senior Software Engineer to lead development of mission simulation and system integration infrastructure—enabling rapid iteration, validation, and deployment of multi-aircraft autonomous operations.
What You’ll Do
Design and build a world simulation and sensor simulation stack that generates realistic EO/IR and environmental outputs, and integrates aircraft, autonomy, and external systems into a cohesive simulation environment.
Lead the end-to-end development of the simulation stack while acting as a force multiplier across the autonomy team—contributing to perception and mission behaviors as needed to accelerate system progress
Develop and maintain integration pipelines and infrastructure to continuously deploy software into simulation, run large-scale integrated tests, and evaluate system performance across mission scenarios.
Integrate multi-system components (perception, planning, controls, comms) into cohesive simulation and test frameworks.
Develop infrastructure to support multi-agent simulation (multiple aircraft, human-in-the-loop operators, and external systems).
Own critical parts of the simulation stack end-to-end—from architecture to deployment to validation.
Build tools to evaluate system performance, failure modes, and degraded conditions in safety-critical scenarios.
Collaborate closely with engineers on autonomy, perception, and flight software to ensure simulation reflects real-world system constraints and behaviors.
Enable real-time and faster-than-real-time simulation to support training, testing, and algorithm development.
Drive system-level thinking—ensuring that simulation meaningfully represents interactions across subsystems and impacts mission success.
What We’re Looking For
Core Technical Skills
Strong experience in modern C++ for performance critical and safety critical applications
Experience with Python for simulation and test tooling
Strong, practical experience with building, deploying, and debugging applications on Linux-based systems and environments (e.g. Docker Compose, CMake, Conan, gdb/Valgrind/memcheck)
Experience working with or building simulation environments
Systems & Simulation Thinking
Running and debugging a multi-host application and simulation environment
Experience with system integration across multiple software and hardware components
Solid understanding of networking fundamentals (IP/subnet, TCP/UDP)
Experience modeling or working with:
Distributed systems
Multi-agent systems
Real-time or near-real-time systems
Understanding tradeoffs such as fidelity vs performance across the product as well as simulation as a whole
Execution & Ownership
Proven ability to own a domain end-to-end in a fast-moving environment
Able to prioritize work based on product impact, maintaining deep ownership while contributing where it most accelerates mission progress
Strong bias for action—able to move from ambiguity to execution quickly
Ability to break down large problems into tractable, deliverable components
Treats engineering as a craft, continually refining skills and utilizing all available tools (code analysis, AI agents, etc) to design, own, and deliver high-quality, dependable systems
Nice to Have
Experience with aerospace, robotics, or autonomy systems
Comfortable working at the system boundary: networking (TCP/UDP, latency, packet loss), IPC, filesystems, and process orchestration
Experience with real-time rendering, game engines,or simulation frameworks (e.g. Unreal Engine, AirSim, AFSIM)
Understanding of geospatial reference systems (WGS84, ECEF, Local Tangent Plane, NAD83)
Familiarity with fire modeling, environmental simulation, or geospatial systems
Background in simulation for training or validation of AI/ML systems
Experience with hardware-in-the-loop (HIL) or software-in-the-loop (SIL) systems
Working at Rain
Fast-paced, mission-driven environment focused on real-world impact
High ownership and autonomy; each engineer drives meaningful parts of the system
Deeply technical, systems-oriented culture
Opportunity to work on one of the hardest and most meaningful autonomy problems: fighting wildfires at scale
Location
This is an on-site position. Our office is located in Alameda, California—just across the Bay from San Francisco. The office is easily accessible by ferry, bike and scooter, and there is ample parking. Some travel for validation testing is expected.
Legal Notice
This role involves access to information governed by U.S. export control laws. To comply, applicants must qualify as a “U.S. Person” (U.S. Citizen, lawful permanent resident, refugee, or asylee). Employment offers are contingent upon meeting these requirements.

