Senior Satellite Flight Software Engineer (Rust)
Lynk Global
About Lynk:
Lynk is the inventor of satellite-direct-to-standard-phone (sat2phone) technology, and has the world’s only commercial license from the FCC to operate a commercial sat2phone system. We are growing rapidly, and our technology will enable all 8 billion people on the planet to stay connected with the existing standard phone in their pocket. Everywhere. No matter what.
By joining Lynk, you will have the opportunity to directly touch the lives of billions. Your mission will be to bring mobile broadband to billions, pull hundreds of millions out of poverty, and save countless lives.
Job Summary:
The Senior Satellite Flight Software Engineer at Lynk will be developing a variety of 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.
Attention: Experience with satellites is not a requirement for this position. If you are a systems-level software engineer with a passion for tackling new and exciting domains, do not hesitate to apply! We are always looking for talented individuals that can bring a new perspective.
Core Responsibilities:
You 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
Writing this software in Rust targeting an embedded Linux environment
Working in a small, agile team to manage the software development lifecycle (requirements definition, design, implementation, test, and verification) for individual projects
Helping to create policies and best practices for the flight software team’s usage of the Rust programming language
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
Required Qualifications:
A Bachelor’s degree (or higher) in Software, Electrical, Aerospace, or in a related engineering field.
5+ years of professional software engineering experience
Advanced knowledge of the Rust programming language
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
Helpful Qualifications:
Experience developing and testing software for SmallSats / CubeSats
Experience with hardware-in-the-loop integration and testing
Experience with the following: Protocol Buffers, ZeroMQ, gRPC