Flight Software/Platforms Engineer

Mojave, CA 93501

Posted: 09/11/2020 Employment Type: Direct Industry: Engineering Job Number: 81626

Job Description

Flight Software/Platforms Engineer
Our Client is looking for software engineers and programmers for flight software and mission operations software. We are looking to hire individuals who have not just maintained/made incremental improvements to an existing large codebase/product, but rather are comfortable writing a 10-20,000 line of code application in  under a year, and hopping between multiple projects. Ideally, someone with substantial open-source work (personal projects, Linux Kernel contributions, etc.) Our Engineers would love to see your Github account! Candidates with experience in the High-frequency Trading (HFT), Finance/FinTech, Gaming/VR, Scientific Computing, & NewSpace industries are encouraged to apply!
Key responsibilities:
  • Architecting a robust, highly resilient and fault-tolerant distributed avionics system
  • Developing FDIR (Fault Detection, Isolation & Recovery) algorithms
  • Selecting third-party/open-source software frameworks (RTOS, middleware, bootloaders, C/C++ runtimes) based on system-level and schedule requirements
  • Selection of peripheral devices and interfaces for processing platforms
  • Development of drivers and board-support packages (BSP)
  • Participating in informal and formal system design reviews and fault tolerance analysis/FMECA
  • Supporting flight operations

Job Requirements

Required skills:
  • Thorough understanding of C and C++ (C++98 or greater)
  • Understanding of build tools and infrastructure (compilers, linkers, debuggers, C/C++ runtime libraries, CI tools)
  • Detailed knowledge of software design from first principles on x86, ARM & PowerPC architectures (bootloaders, startup code, C/C++ runtime implementation)
  • Development of hard-real time software in POSIX environments
  • Basic understanding of operating system kernel configuration fundamentals for real-time system behavior
  • Detailed understanding of common software design paradigms (message-passing, event-driven, RAII, et. al.)
  • Understanding of considerations when developing fault-tolerant software components such as error-tolerant file systems, communications agents, memory-scrubbing/EDAC
Additional useful skills:
  • Experience with Modern C++ (C++11/14 or greater) or emerging systems languages like Rust
  • Understanding of basic EE hardware design concepts
  • Board design/bring-up experience
  • Knowledge of analog/mixed-signal systems design
  • Experience in controls/GNC (implementing state estimation, sensor fusion & similar algorithms)
  • Working knowledge of communications security (commsec) and information assurance concepts
  • Experience with Linux/UNIX, Linux kernel (scheduler, driver stack), microcontrollers (Cortex R/M)
  • Some experience with PCB design and/or board bring-up from an embedded standpoint
  • Bootloader development experience
  • Comms protocol understanding (CAN, SPI, I2C, UART, LIN, Ethernet, IEEE1588 PTP)
  • Understanding of performance/determinism trade offs when writing hard-real-time software
Apply Online

Send an email reminder to:

Share This Job:

Related Jobs: