Two Roads Professional Resources, Inc.
http://www.2roads.com/files/2016/09/logo-sm.png
http://www.2roads.com
http://www.2roads.com
Flight Software/Platforms Engineer
Mojave, CA 93501
Posted: 01/28/2021
2021-01-28
2021-03-29
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
Email [email protected]
#2roads
#tworoads
#workwithus
#flightsoftwareengineer