PDS Tech, Inc. Jobs

Mobile pds Logo

Job Information

PDS Tech Inc Flight Software/Platforms Engineer in Mojave, California

Flight Software/Platforms Engineer

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 controls

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

All qualified applicants will receive consideration for employment without regard to race, color, sex, sexual orientation, gender identity, religion, national origin, disability, veteran status, age, marital status, pregnancy, genetic information, or other legally protected status.