Embedded Software Engineer II

NASA Jet Propulsion Laboratory
•$127,504 - $139,464•Onsite

About The Position

The Support Equipment Software Group at JPL designs and builds workstation-based and hardware-in-the-loop simulators to support the development and testing of avionics systems. The group is part of JPL’s Autonomous Systems & Advanced Software Division, which designs and builds spacecraft to explore destinations in the solar system. The Embedded Software Engineer II designs, builds, and tests software that simulates complex avionics hardware and physical environments. The role includes developing simulation and embedded software in collaboration with project leads, system engineers, and product users.

Requirements

  • Bachelor’s degree in Computer Science, Computer Engineering, or a related field and at least 3 years of related work experience; or a master’s degree in a related discipline and at least 1 year of related work experience; or a Ph.D. in a related discipline with 0 years of related work experience.
  • Software engineering experience using C/C++ and Python.
  • In-depth knowledge of object-oriented programming concepts.
  • Knowledge of and hands-on programming experience writing simulation software.
  • Experience with low-level software/hardware interfaces.
  • Experience developing and debugging real-time embedded software systems.
  • Good understanding of concurrent programming, multithreading, and inter-process communication mechanisms.
  • Strong verbal and written communication, presentation, and interpersonal skills, with the ability to work in a team environment.
  • Experience with continuous integration and modern source configuration control.

Nice To Haves

  • Background in dynamics simulation and integration methods.
  • Systems engineering experience generating and tracking requirements and proving their successful implementation.
  • Experience leading software development projects.
  • Experience with driver development for real-time embedded applications.

Responsibilities

  • Work with the project lead, system engineers, and product users to develop software requirements and designs for simulation software components.
  • Implement software components in C/C++ and Python according to requirements and design.
  • Develop embedded real-time application programs using Real-Time Operating Systems.
  • Test software and verify requirements and design using established unit-testing and functional-testing methodologies.
  • Prepare and conduct requirements, design, code, and test reviews throughout the software development cycle.

Benefits

  • Health, dental, vision, wellbeing, and retirement plans.
  • Paid time off.
  • Learning opportunities.
  • Rideshare benefits.
  • Childcare benefits.
  • Flexible schedule.
  • Parental leave.
  • Additional traditional and unique benefits and perks. For benefits-eligible positions, benefits are effective the first day of the month coincident with or immediately following the employee’s start date.
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service