Job SummaryThe Avionics software team is on the leading edge of software architecture, design, and development for next generation Remotely Piloted Aircraft technologies. This position within Avionics Software is responsible for architecting and developing complex real-time embedded systems for Remotely Piloted Aircraft with minimal oversight. Avionics software applications include distributed real-time fault-tolerant control architectures, electro-mechanical control systems, engine and propulsion system management, power electronics, control networks, datalinks, and other aircraft subsystems and related support equipment.
DUTIES AND RESPONSIBILITIES:- With minimal oversight, architect, design, develop, test, and maintain software for flight-critical real-time embedded systems in accordance with appropriate development processes and standards
- Responsible for the technical vision of a project, decomposing program/system requirements and constraints into an actionable and cohesive architecture
- Closely coordinate designs and architectures with other functional engineering groups, ensuring alignment with long-term company and customer goals
- Responsible for ensuring team alignment with established architectures and designs through clear communication, training, and peer reviews
- Provide input on the overall status, risks, and issues for assigned programs and projects
- Independently advise executive management and customers on key technical decisions, provide input on future company technical direction
- Act as a software stakeholder in program/project efforts, including proposals, estimation, budgeting, scheduling, and design reviews
- Independently coordinate and communicate with subject matter experts, cross-functional teams, users, and management throughout the software development lifecycle
- Provide ongoing technical mentorship and direction to others, including the immediate group and broader organization
- Maintain the strict confidentiality of sensitive information
- Perform other duties as assigned
Job Qualifications- Typically requires a bachelors degree, masters degree or PhD in computer science, information systems or related discipline and progressive software development experience as follows; twelve or more years of experience with a bachelors degree, ten or more years of experience with a masters degree, or seven or more years with a PhD. May substitute equivalent experience in lieu of education.
- Technical, communication, and interpersonal skills are required to enable an effective interface with other professionals, to produce appropriate documentation, and to present results
- The ability to work both independently and on a team is essential
- Ability to obtain and maintain DoD security clearance is required.
Desirable Technical Knowledge and/or Experience- Programing languages: C (essential), C++, Python (desired)
- Embedded operating system experience (essential), e.g. VxWorks, Petalinux, FreeRTOS, LynxOS, uCOS
- Network communication and management protocols (e.g. TCP, UDP, ARP, SNMP) (essential); network security protocols (e.g. SSH, TLS, IPSec), routing/multicast protocols (e.g. OSPF, RIP, IGMP, PIM) (desired)
- Embedded systems concepts; preemption, multitasking, bare-metal and real-time operating system architectures, compilers, computer processor architectures and memory management
- Real-time systems, fault-tolerant systems, control systems, motor control, power electronics
- Reading and understanding electrical schematics and datasheets
- AMD/Xilinx System on Chip design and development experience
- Embedded communications: SPI, I2C, USART, CANbus, ARINC-429, MIL-STD-1553
- Audio and video processing and communications
- Development tools and electronic test equipment including in-circuit debuggers/emulators, oscilloscopes, logic analyzers, power supplies, and signal generators
- Software configuration management tools, such as subversion or git, as well as defect tracking tools, and peer review
- Requirements-based software verification at the unit, integration, and system level
- Automated software testing tools and continuous integration
- Formal software development and test processes; RTCA DO-178C and related standards