
Flight Software Engineer II
What you need
- BS in CS or related field; 3+ yrs experience
- Real-time embedded software development
- C++, C, Python, Linux programming
- Communication protocols: UART, SPI, I2C, CAN
- Static code analysis tools experience
What you'll do
- Develop embedded flight software for spacecraft
- Perform software requirements and design
- Conduct unit and integration testing
- Support peer reviews and defect resolution
- Work on CubeSats and small satellite projects
Job Details
New ideas are all around us, but only a few will change the world. That’s our focus at JPL. We ask the biggest questions, then search the universe for answers—literally. We build upon ideas that have guided generations, then share our discoveries to inspire generations to come. Your mission—your opportunity—is to seek out the answers that bring us one step closer. If you’re driven to discover, create, and inspire something that lasts a lifetime and beyond, you’re ready for JPL.
Located in Pasadena, California, JPL has a campus-like environment situated on 177 acres in the foothills of the San Gabriel Mountains and offers a work environment unlike any other: we inspire passion, foster innovation, build collaboration, and reward excellence.
Responsibilities:
If you are passionate about spacecraft design, we invite you to join the Flight Software & Systems Engineering Section. We provide flight software and systems engineering for the design and implementation of spacecraft for the laboratory's key flight projects. We provide leadership and specialized expertise in developing flight software and systems engineering for spacecraft, small satellites, and instrument payloads.
As a Flight Software Engineer II, you will be working for JPL’s Flight Software and Systems Engineering Section, which provides leadership and specialized expertise in developing flight software and systems engineering for spacecraft, small satellites, and instrument payloads.
As a key member of the Flight Software Architecture and Infrastructure Group, you will perform software engineering activities associated with the delivery of embedded flight software products for small scale projects developing CubeSats, small satellites and spacecraft payloads where the typical flight software team sizes are between one and five people.
A typical software engineering assignment would include software requirements definition, software design, code development, peer review, documentation, thorough unit testing, integration testing using simulations and avionics hardware, and defect resolution to JPL flight mission customers.
The Flight Software Engineer II would typically work under the guidance of a Cognizant Engineer to develop a solid understanding of the required capabilities of the software system. The engineer would then be responsible for determining the software approach for the development and ultimately be responsible for the final coded capability. This work includes support of software level peer reviews and would also include formal testing of peer developed capabilities.
Qualifications:
- Bachelor’s degree in Computer Science, or related discipline with a minimum of 3 years of related work experience; a Master’s degree in similar disciplines with a minimum of 1 year of related experience; or a PhD in similar disciplines with a minimum of 0 years related experience.
Other qualifications include:
- Understanding and application of advanced principles, theories, concepts and hands-on programming techniques in:
- Developing, modifying, debugging, releasing and maintaining real-time embedded software systems for mission-critical, aerospace applications.
- Developing application programs for the various functional domains (e.g., CDH, GNC, System Fault Protection, etc.) for execution in an embedded flight processor.
- Experience with distributed computing and inter-process communication (IPC) mechanisms.
- Familiarity with communication buses and protocols: PCI/PCIe, UART, SPI, I2C, CAN bus, and SpaceWire.
- Demonstrate ability to show knowledge of UDP / TCP network protocols
- Familiarity or experience with real-time or embedded operating systems such as FreeRTOS, RTEMS, Zephyr, or WindRiver VxWorks
- Experience with static code analysis toolsets
- Demonstrated ability in the development and delivery of reliable, embedded real-time software applications that employs formal and structured lifecycle development process.
- Familiarity with software development and testing with experience in the following languages and operating systems: C++, C, Python, Linux.
- Ability to work with in-development hardware undergoing changing interface specifications.
- Strong verbal and written communication, presentation, and interpersonal skills with ability to work in a team environment.
Preferred Skills:
- Knowledge of Laboratory policies and procedures, NASA policies and procedures, and government regulations across a range of applications.
- Experience with device driver development and software/hardware interfaces for both custom and commercial hardware, with experience debugging software/hardware interactions and possible failure modes.
- Experience developing, deploying and maintaining software product lines.
- Knowledge with software development processes, standards, and practices.
- System engineering experience in generating, tracking and proving successful implementation of requirements.
- Understanding of NASA F Prime or cFS open-source frameworks
- Hardware-in-the-Loop (HIL) & Testbeds: Hands-on lab debugging using oscilloscopes, logic analyzers.
Note: We have 4 job openings for this position for our various projects Moonfall, Skyfall, VERITAS and HPSC.
JPL has a catalog of benefits and perks that span from the traditional to the unique. This includes a variety of health, dental, vision, wellbeing, and retirement plans, paid time off, learning, rideshare, childcare, flexible schedule, parental leave and many more. Our focus is on work-life balance, and living healthy, fulfilling lives as we Dare Mighty Things Together. For benefits eligible positions, benefits are effective the first day of the month coincident with or immediately following the employee’s start date.
For further benefits information click Benefits and Perks
The hiring range displayed below is specifically for those who will work in or reside in the location listed. In extending an offer, Jet Propulsion Laboratory considers factors including, but not limited to, the candidate’s job related skills, experience, knowledge, and relevant education/training.
The typical full time equivalent annual hiring range for this job in Pasadena, California.
$122,720 - $138,632
JPL is an Equal Opportunity Employer. All qualified applicants will receive consideration for employment without regard to sex, race, color, religion, national origin, citizenship, ancestry, age, marital status, physical or mental disability, medical condition, genetic information, pregnancy or perceived pregnancy, gender, gender identity, gender expression, sexual orientation, protected military or veteran status or any other characteristic or condition protected by Federal, state or local law.
In addition, JPL is a VEVRAA Federal Contractor.
Pay Transparency Nondiscrimination Provision
The Jet Propulsion Laboratory is a federal facility. Due to rules imposed by NASA, JPL will not accept applications from citizens of designated countries or those born in a designated country unless they are U.S. Citizens, Legal Permanent Residents of the U.S or have other protected status under 8 U.S.C. 1324b(a)(3). The Designated Countries List is available here.
Optimize your resume for this job
Get a match score and the keywords you're missing
About JPL
NASA's Jet Propulsion Laboratory (JPL), managed by Caltech, designs and operates robotic spacecraft for solar system exploration, including Mars rovers, Europa Clipper, and deep space missions.
Similar Aerospace Engineering roles


