Rapidly reusable space systems require highly operable, configurable, and reliable software. As the Flight Software Engineer at an early-stage start-up, you will own all elements of the software that glues together nearly every subsystem of a flight vehicle.
Your work will include software system architecture, requirements definition, development, rigorous test, and support of launch operations. Your solutions will have a foundational impact on the success of the organization and your work will be at the forefront of space technology. You must be ready to stay focused, move fast, self-direct, and learn on the fly.
- Exceptional command of fundamentals
- Experience creating codebase and software architecture from the ground up
- Demonstrated skills in high level application development in C and C++
- Proficiency in writing software for the UNIX/Linux platform
- Experience writing software directly for hardware and interfacing with hardware (e.g., sensors, microprocessors, FPGAs)
- Familiarity with scientific programming languages such as MATLAB, R, and Python
- Familiarity with the fundamentals of the TCP/IP stack and developing software for network devices
- Knowledge of systems engineering fundamentals, from requirements definition through verification
- Ability to lead
- Ability to follow
- Excellent written and verbal communication
- Bachelor’s degree in computer engineering, or similar
- Gather, define, and document software requirements to meet existing and anticipated needs across the launch system
- Perform and lead the flight software system development, deployment, and testing
- Develop software capabilities such as algorithms for actuator control, sensor interfaces, mission sequencing, etc.
- Develop, analyze, and review data to validate requirements and verify the software meets the design intent
- Ensure system quality and performance through rigorous test
- Write test plans and testing cases. Lead and execute unit/integration/systems level verification and validation
- Collaborate closely with Guidance Navigation and Control engineers to implement their algorithms in flight software
- Support launch operations and integrated test for the vehicle and its subsystems
- Collaborate with Avionics engineers to design and develop the integrated test bed or Hardware in the Loop (HIL) for use in software development, verification, and operations
- Develop capabilities for failure detection and failure management.