Software Engineer - Linux Kernel/Drivers, Embedded Software
Team and Role Overview
Relativity is looking for a talented software engineer to join a rapidly growing space startup. As a member of the Integrated Software team, you will help lead the bring-up of our flight operating system, driver development, and Linux kernel configuration.
The Mission/Outcomes and Objectives
Our mission is to reimagine the way rockets are built and flown. As a Software Engineer focused on Linux kernel/drivers, you will help push us towards this goal by contributing in many areas. While the core responsibility will be systems software to ensure the operating system and drivers we use are reliable and performant, you will also be able to contribute to firmware that runs on our numerous embedded controllers throughout the vehicle.
Candidate Profile
You have experience bringing up new, custom embedded computer designs, from bootloaders to operating systems and device drivers. At Relativity, the software you develop will be a core piece of a software system that controls the entire vehicle operation, and is mission critical. Therefore, you should have a strong foundation of what it means to develop highly reliable software, following best practices around code quality and testing.
Minimum Required Skills and Competencies
- Bachelor’s in computer science or related technical field and 3+ years relevant experience in software development
- Demonstrated capability to develop and maintain a board support package
- Experience developing software drivers to interface with peripherals across a complex system
- Experience with software development processes including: source control, bug tracking, and design documentation
- Experience developing, debugging, and shipping software products on large code bases that span platforms and tools
- Demonstrated experience working collaboratively in cross-functional teams.
- Expert in C/C++17 or beyond
- Experience with continuous integration
Preferred Skills and Competencies
- Master’s in Computer Science or related technical field and 5+ years of experience in software development
- Experience in a startup or agile development environment
- Experience with microservices architectures
- Experience with specialized kernel functions: synchronization primitives, memory management, etc.
- Experience working on multiple classes of drivers e.g., bus, block, wireless
- Experience with low-latency, high bandwidth, streaming hardware devices, e.g. video cameras, graphics cards, etc.
- Experience with ARM platforms
This position must meet Export Control compliance requirements, therefore a United States Person as defined by 22 C.F.R. § 120.15 is required.
We are an equal opportunity employer and value diversity at our company. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.