02 Jan
Senior / Principal Embedded Software Engineer
Please review the job details below. Responsibilities may include at least one or more of the following: What you'll do day-to-day (with your colleagues):
- Write software for embedded Real-time Operating Systems (RTOS)
- Develop, document and maintain architectures, requirements, algorithms, interfaces and designs for software systems
- Develop software verification plans, unit level and open loop test suites, and procedures, executing the test procedures and documenting test results to ensure software system requirements are met
- Perform software product life cycle management
- Develop, select, tailor and deploy software processes, tools and metrics
- Serve as a subject matter expert for software domains, processes and system-specific issues
- Higher-level positions will lead technical projects and mentor team members
- Must be a U.S. citizen or permanent Resident
- Bachelor's degree in Computer Science, Computer Engineering, Aerospace Engineering, Physics, Mathematics or related field. Four additional years of professional experience may be substituted for a bachelor's degree; Master's degree may be considered in lieu of 2 years of professional experience; a Ph.D. may be considered in lieu of 2 years of professional experience.
- Minimum of 8 years of software development experience; or 8 years of relevant work experience as a software engineer
- Previous experience in software development, management systems
- Our software is written for embedded Real-time Operating Systems (RTOS), so an understanding of RTOS concepts is highly desirable (e.g. Greenhills Integrity, VxWorks, or RTEMS.)
- Demonstrated ability to implement maintainable software in C/C or ADA; Written software in C, ADA
- Demonstrated facility with software revision control systems and workflows (e.g. Git, CVS)
- Familiarity with spacecraft Attitude Control Systems
- Develop and maintain code and integrate software components into a fully functional software system, specifically for Attitude Control Systems
- Previous experience as a software project lead
- Ability to develop software verification plans, unit level and open loop test suites and procedures, executing the test procedures and documenting test results to ensure software system requirements are met
- Expert embedded C programing skills on multicore-processor architecture
- Experience in one of the following areas:
- Guidance, Navigation, and Control (GNC). Ability to read flows, understand control laws, able to convert MATLAB code to C or Ada
- Guidance, Navigation, and Control (GNC) Fault Detection, Isolation, and Recovery (FDIR)
- Thermal systems
- Command and telemetry processing
- Embedded systems architecture
- Infrastructure - I/O, Operating systems, drivers, hardware interfaces
- Experience on SpaceWire (SpW) and Time Triggered Ethernet (TTE) architectures
- Experience with satellite software development from inception to launch
- Experience with large-scale satellite software development projects
- Experience with CMMI-3 or other structured software development frameworks
- Ability to work in a highly-collaborative environment with hands-off, remote management