Software Engineer, Embedded Software (Starlink) Verified today
About the role
As an embedded engineer on the Starlink flight software team, you will design, develop and test software used to control SpaceX flight and ground systems. You will be responsible for components that fly on satellites in space, and the ground systems that orchestrate the world's largest satellite constellation. You will engage with other SpaceX software and hardware engineers to discover mission needs and code highly reliable software. You will own the complete lifecycle of the software you create, from development to testing to operation during continuous mission.
Aerospace experience is not required. We look for smart, motivated, collaborative engineers who love solving problems and want to make an impact on this ambitious mission.
Responsibilities
- Develop highly reliable autonomous software systems, and the full suite of testing needed to ensure their resilience, fault tolerance, and correctness
- Design software for both vehicles flying in space, and the ground systems that support them
- Build prototypes and analyze system metrics to prove out key design concepts and quantify technical constraints
- Own all aspects of software development, including design, testing, release, and flight operations
- Provide strong technical leadership and focus on continuous improvement
Basic qualifications
- Bachelor's degree in computer science, engineering, math, or STEM discipline OR 2+ years of experience in software development
- Development experience in C/C++, Python, or other similar programming languages
Preferred skills and experience
The following skills and experience are helpful but not required. Learning on the job is critical to success at SpaceX.
- Strong software design and development skills
- Experience designing fault tolerant, distributed, or real-time systems
- Cross-context test design skills, ranging from simple unit tests through to integrated hardware-in-the-loop regression and exploratory tests
- Thorough knowledge of computer architecture and networks
- Knowledge of physics, math, and electronics
- Strong skills in debugging, performance optimization, and performance testing
- Familiarity with Linux programming
- Ability to work effectively in a dynamic environment with changing needs and requirements
