Embedded Software Engineer
Role details
Job location
Tech stack
Job description
The Embedded Software Engineer designs, implements, and maintains embedded flight software with a strong focus on device I/O and hardware/software integration for aerospace and human spaceflight applications. This role owns the full software lifecycle from design and implementation through testing, deployment, and operational support, while working closely with a multidisciplinary engineering team. The engineer contributes to mission-critical systems by developing robust, reliable embedded software that enables safe and effective operation of advanced flight hardware., * Design, implement, and maintain embedded flight software features with an emphasis on device I/O and hardware/software integration.
- Develop and integrate software that supports hardware/software interaction and overall system functionality for embedded flight systems.
- Perform detailed analysis and testing of I/O performance for integrated hardware/software systems.
- Conduct hands-on debugging of embedded systems using lab equipment such as oscilloscopes, logic analyzers, and signal measurement tools.
- Execute hardware-in-the-loop testing to validate system behavior and performance under realistic operating conditions.
- Interact directly with embedded systems in lab and test environments to identify, troubleshoot, and resolve software and integration issues.
- Own the full software development lifecycle, including design, implementation, unit testing, integration testing, deployment, and ongoing operational support.
- Contribute to Agile development cycles by participating in planning, estimation, integration, and verification activities.
- Collaborate closely with a multidisciplinary engineering team, including hardware design and development engineers, to ensure seamless system integration.
- Interface regularly with hardware teams to align software interfaces, device drivers, and system-level requirements.
- Provide technical input and status updates during major project milestones and program reviews.
- Support logging, diagnostics, and software monitoring capabilities to improve system observability and reliability.
- Apply version control best practices using modern tools to manage source code, branching, and integration.
- Support continuous improvement of development processes, testing practices, and integration workflows within an Agile/Scrum environment, where applicable., The role operates in a highly collaborative engineering environment focused on advanced aerospace and human spaceflight systems. You work closely with a team of more than twenty professionals contributing to a lunar terrain vehicle (LTV) program and other mission-critical efforts. The position involves significant hands-on work in lab and test environments, interacting directly with embedded hardware and performing hardware-in-the-loop testing. You regularly use lab equipment such as oscilloscopes, logic analyzers, and signal measurement tools, as well as modern software development toolchains, version control platforms like GitLab or GitHub, and potentially containerization technologies such as Docker. The team typically follows Agile or Scrum practices, with iterative planning, integration, and verification cycles. Work is performed on site in a technical facility that supports embedded development, integration, and testing activities.
Requirements
- Bachelor's degree in Software Engineering, Computer Engineering, or a related field.
- 5+ years of embedded software development experience.
- Strong programming experience in C and C++ for embedded systems.
- Hands-on experience with embedded software and firmware development.
- Experience designing and implementing embedded software for aerospace or human spaceflight systems.
- Proficiency in embedded software development focused on device I/O and hardware/software integration.
- Experience using GitLab or GitHub for version control and collaborative development.
- Ability to perform analysis and testing of I/O performance on integrated hardware/software systems.
- Experience debugging embedded systems using lab equipment such as oscilloscopes, logic analyzers, and signal measurement tools.
- Ability to work effectively within a multidisciplinary engineering team and interface closely with hardware engineers.
- Experience supporting the full software lifecycle, including design, implementation, testing, deployment, and operational support.
Additional Skills & Qualifications
- Master's degree in a STEM field, Software Development, Embedded Systems, or Hardware-related discipline.
- Experience supporting human spaceflight or exploration programs.
- Familiarity with embedded software frameworks such as GSFC Core Flight Software (CFS) or similar.
- Experience with device driver development for embedded hardware.
- Experience with SpaceWire or similar space communication protocols.
- Experience with logging frameworks and software diagnostics architecture for embedded systems.
- Experience with unit testing frameworks, such as xUnit, for automated testing of embedded software.
- Experience working with Windows and POSIX-based operating systems.
- Familiarity with containerization technologies such as Docker.
- Experience working in Agile or Scrum development environments.
- Familiarity with CMMI frameworks and process-oriented development practices.
- Strong problem-solving skills and the ability to troubleshoot complex hardware/software interactions.
- Effective communication skills to present technical input during major milestones and program reviews., CommunicationPlanningWorkflow ManagementLeadershipLife SciencesDebuggingVersion ControlSoftware EngineeringTest AutomationSoftware DevelopmentAgile MethodologyContinuous Improvement ProcessMechanical EngineeringSystems IntegrationProblem SolvingTroubleshooting (Problem Solving)ObservabilitySoftware Development Life CycleDocker (Software)Milestones (Project Management)Computer EngineeringHardware DesignManufacturing EngineeringElectrical EngineeringUnit TestingIntegration TestingEmbedded SystemsEmbedded SoftwareLogic AnalyzerOscilloscopeC++ (Programming Language)Scrum (Software Development)Critical Illness InsuranceC (Programming Language)GitlabContainerizationLaboratory EquipmentFirmwareGithubVisionaryDevice DriversCapability Maturity Model IntegrationSoftware InterfacesSpace FlightSpaceWireFlight SoftwarePOSIX (IEEE Standards)Loan-To-Value RatiosXunit.net
Benefits & conditions
This is a Contract to Hire position based out of Houston, TX. Pay and Benefits
The pay range for this position is $60.00 - $75.00/hr.
Eligibility requirements apply to some benefits and may depend on your job classification and length of employment. Benefits are subject to change and may be subject to specific elections, plan, or program terms. If eligible, the benefits available for this temporary role may include the following:
- Medical, dental & vision
- Critical Illness, Accident, and Hospital
- 401(k) Retirement Plan - Pre-tax and Roth post-tax contributions available
- Life Insurance (Voluntary Life & AD&D for the employee and dependents)
- Short and long-term disability
- Health Spending Account (HSA)
- Transportation benefits
- Employee Assistance Program
- Time Off/Leave (PTO, Vacation or Sick Leave) Workplace Type