Flight Software Engineer
Flight Software Engineer
Contract Assignment 12+ months M-F 40 hours weekly
Position is "Hourly Exempt"
Applicant must be a U.S. Citizen with an active Top Secret (TS) clearance based upon Single Scope Background Investigation (SSBI) within a 5 year scope and be able to be approved for Sensitive Compartmented Information (SCI) accesses.
As a key member of the Small Scale Flight Software Group you will perform software engineering activities associated with the delivery of embedded flight software products. These activities include requirements development, software architecture & design, code development, along with extensive user and system level testing.
This position will provide software expertise in the form of software requirements definition, software design, code development, peer review, documentation, thorough unit testing, integration testing using simulations and avionics hardware, and defect resolution to CLIENT flight mission customers.
Through the guidance of a Cognizant Engineer, the software engineer will develop a solid understanding of the required capabilities of the software system. The software engineer will then be responsible for advising to the software team on the determined software approach for the development, conduct peer reviews, oversee formal testing of peer developed capabilities, participate in the software system integration and support the delivery and deployment of the software system.
Specific responsibilities include:
- Supporting the Flight Software Cognizant Engineer in ensuring that the flight software architecture and design of the software system and constituent components meet system level requirements.
- Designing, developing and delivering software components in C++ that implement Avionics Subsystem functions including flight system hardware/software interfaces in both nominal and faulted test scenarios, boot process, command and data handling functions, System Fault Protection, etc. as specified by the Flight Software Cognizant engineer.
- Working closely with avionics and systems engineers in defining project specific flight software requirements for the various domains.
- Supporting the FSW team to define verification items, test procedures, test execution, and delivery of the integrated software products.
This position typically requires a Bachelor’s degree in Computer Science, or related discipline with a minimum of 6 years of related experience; a Master’s degree in similar disciplines with a minimum of 4 years of related experience; or a PhD in similar disciplines with a minimum of 2 years related experience.
Required qualifications include:
- Extensive understanding and wide 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, etc.) for execution in an embedded flight processor.
- Device driver development and software/hardware interfaces for both custom and commercial hardware, with experience debugging software/hardware interactions and possible failure modes.
- Experience with distributed computing and inter-process communication (IPC) mechanisms.
- Communication buses and protocols: PCI/PCIe, 1553, ethernet.
- Proven leadership experience and/or ability for a software team in the development and delivery of reliable, embedded real-time software applications that employs formal and structured lifecycle development process.
- An extensive background in software development and testing with specific experience in the following languages and operating systems: C++, C, Python, Linux, WindRiver VxWorks.
- 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 qualifications include:
- Extensive experience developing, deploying and maintaining software product lines.
- Hands on knowledge with software development processes, standards, and practices.
- System engineering experience in generating, tracking and proving successful implementation of requirements.
- Background in dynamics and control systems.
- Proposal writing skills.
- Experience with software development for space missions.