Onsite
Full Time Software Architecture & Engineering
Responsibilities
Design, develop, and implement simulation software for testing and verifying TeraWave's flight software.
Collaboration with test team leads to develop a simulation environment that can be deployed on multiple platforms to support software-only test, HWIL test, real-time environment tests, and spacecraft AI&T.
Collaborate with hardware, systems, and autonomy engineers to understand software requirements, interfaces, and behavioral boundaries across subsystems.
Develop and integrate simulation environments and models to test FSW across a range of nominal and off-nominal operational scenarios.
Participate in software integration, verification, and validation testing including software-in-the-loop (SIL) and hardware-in-the-loop (HIL) environments.
Background support of on-orbit operations and troubleshooting of deployed spacecraft.
Mentor junior engineers and contribute to team technical development.
Requirements
Bachelor’s degree in Computer Science, Software Engineering, Aerospace Engineering, or related technical field
10+ years of experience in spacecraft software, simulation software, or embedded software development
Proven experience with architecture and development of simulation environments for flight or embedded systems
Demonstrated ability to lead the technical architecture of a complex software system
Understanding of deterministic lockstep simulation design coupling algorithms with representative models, with consideration of synchronization and repeatability
Some knowledge of GN&C sensor and actuator suite modeling (e.g. IMU, star tracker, magnetometer, reaction wheel assembly, magnetic torque rods)
Strong programming skills in C, C++, and Python
Solid understanding of Object-Oriented problem solving and software layering to facilitate modularity and reuse
Experience with software unit testing frameworks such as Google Test or equivalent for embedded C/C++ environments
Experience with inter-process communication (IPC) mechanisms including sockets, shared memory, message queues, or publish-subscribe middleware
Experience with software lifecycle, configuration management (Git), CI/CD, and containerized environments
Experience with verification/validation practices for mission-critical embedded software systems
Understanding of flight software/hardware interfaces including discrete I/O, TCP/IP, UDP, CAN, I2C, SPI, and RS-422/485
Familiarity with static analysis tools and flight software coding standards such as MISRA C/C+
Must be a U.S. citizen or national, U.S. permanent resident (current Green Card holder), or lawfully admitted into the U.S. as a refugee or granted asylum.