Collaborate with software and systems engineers and participate in technical discussions and customer-facing design reviews.
Qualifications
Required
Bachelor's degree in Computer Science, Computer Engineering, Mathematics, Physics, Aerospace Engineering, or a related field. Four additional years of relevant experience may substitute for a degree.
5+ years of professional software development experience in scientific applications, simulation, or complex technical systems.
Experience developing distributed simulations, including synchronization, timing coordination, and communication between simulation components.
Strong programming skills in C++ and/or Python; experience with both is preferred, with an emphasis on C++.
Ability to understand hardware behavior and translate technical specifications and interface documentation into software.
Experience with Linux, TCP/IP networking, and debugging complex distributed systems.
Experience maintaining existing codebases, using version control, and developing automated tests.
Strong communication, collaboration, and technical problem-solving skills.
Preferred
Hands-on experience with HLA, IEEE 1516, RTI integration, and federate development. Candidates with related distributed simulation experience and strong synchronization fundamentals will also be considered.
Experience with Distributed Interactive Simulation (DIS) or other simulation interoperability standards.
Familiarity with RTI implementations such as Pitch RTI, MAK RTI, or Portico.
Experience guiding software architecture decisions or mentoring engineers.
Knowledge of simulation orchestration, scenario management, real-time systems, or timing protocols such as NTP or PTP.
Experience with DDS, ZeroMQ, socket programming, Docker, or Kubernetes.
Familiarity with spacecraft hardware interfaces, command and telemetry protocols, or spacecraft operations and testing.
Experience with CI/CD tools and testing frameworks such as GitLab CI, Jenkins, Google Test, pytest, or CTest.