What are the responsibilities and job description for the Flight Software Engineer position at Odesus?
Job Description
JOB DESCRIPTION: (Flight Software Engineer)
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 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, but may not be limited to:
- 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.
REQUIRED SKILLS
- Education and Years of Experience: Bachelor’s degree in STEM with a minimum 4-6 years of recent related experience
- Six years of software engineering with 4 years of recent real-time embedded flight software experience
- 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 processes.
- 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.
DESIRED SKILLS
- Complete knowledge of Laboratory policies and procedures, NASA policies and procedures, and government regulations across a range of applications.
- 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.
Salary : $75 - $85