Satellite Flight Software Engineer
The Satellite Flight Software Engineer at Lynk will be developing a variety of embedded flight software applications for commanding and controlling our satellites. This includes developing our satellite command and data handling system software, in addition to supporting software for both its primary (payload) and secondary radio communications functions. The software will initially be tested on the satellite prototype in a lab environment (“flatsat”) that simulates orbit operations. The software engineer will also be responsible for implementing methods of data acquisition to ensure successful testing, verification, and validation.
We build spacecraft fast! So, the perfect candidate for this role will have significant previous experience designing, developing, and testing software on rapid timelines. We are looking for engineers that enjoy a challenge and have a track record of creative thinking to solve unconventional problems.
The Satellite Flight Software Engineer will be responsible for design, development, and testing of all spacecraft flight software including that for our spacecraft Command & Data Handling, Power, Communications, and Guidance, Navigation, & Control Systems. This includes:
- Developing Linux applications that implement the major functions required by our satellite flight system
- Working in a small, agile team to manage the software development lifecycle (requirements definition, design, implementation, test, and verification) for individual projects
- Creating embedded software to interact with satellite devices/electronics using CAN, I2C, SPI, RS-422, RS-485, etc. protocols
- Implementing inter-application coordination and communications using standard inter-process communication (IPC) mechanisms available in Linux
- Developing test software to support unit, integration, and system testing of all flight software functions
- Writing this software in C, C++, Rust, or other languages in a Linux environment
- A Bachelor’s degree (or higher) in Software, Electrical, Aerospace, or in a related engineering field.
- 3-5 years of software engineering experience
- Demonstrated experience working with multiple programming languages (C, C++, Python, Rust), operating systems, and development environments
- Demonstrated experience with all phases of the software development life cycle
- Experience with developing software to interact with hardware devices
- Experience with inter-process communication (IPC) mechanisms
- Experience with the following: Linux, Git, CI/CD
- US Citizenship required
- Experience developing and testing software for SmallSats / CubeSats
- Experience with hardware-in-the-loop integration and testing
- Experience with the following: CMake, Protocol Buffers, ZeroMQ
The U.S. Government space technology export regulations, including the International Traffic in Arms Regulations (ITAR) require the person in this position to be a U.S. citizen, lawful permanent resident of the U.S., protected individual as defined by 8 U.S.C. 1324b(a)(3), or eligible to obtain the required authorizations from the U.S. Department of State. To learn more about ITAR, please visit Understand ITAR.