As Senior Embedded Software Engineer, you will architect, implement, and maintain our hardware-agnostic and OS-agnostic on-board software framework. Your work in collaboration with the AI team will enable integration of any hardware into any bus in less than a day instead of months, ensuring robustness, safety, and performance across Linux and real-time operating systems.
What You'll Do
* Platform & Abstraction
o Design and develop a hardware-agnostic HAL and middleware stack in C/C++, supporting ARM Cortex-A/R/M, RISC-V, etc.
o Create OS-agnostic abstraction layers to target Linux (Yocto/Ubuntu) and RTOS (FreeRTOS, Zephyr, RTEMS) with minimal code divergence.
* Driver & Protocol Implementation
o Implement and maintain bus-protocol drivers (I2C, SPI, UART) with multi-bus and multi-instance support for redundancy.
o Define and adhere to clear software-to-hardware interface contracts (ICDs/datasheet-driven), ensuring consistent behavior across platforms.
* Architecture & Best Practices
o Apply OOP principles in C++ and structured design in C to build modular, testable components.
o Enforce MISRA C/C++ and CERT Secure Coding guidelines; integrate static analysis, code reviews, and Git-based CI pipelines.
* Automation & Testing
o Develop Python scripts to automate configuration of the on-board software, automate build, flashing, and validation across multiple target boards.
o Build and maintain hardware-in-the-loop and software-in-the-loop test frameworks to continuously test, validate, and verify the on-board software and platform compatibility.
* Collaboration & Mentorship
o Collaborate with the Software Lead, AI Engineer and Backend team.
o Mentor junior engineers, share knowledge on cross-platform strategies, and foster an iterative "try, learn, improve" culture.
Qualifications
* Bachelor's or Master's in Electrical Engineering, Computer Engineering, Computer Science, or equivalent
* 5+ years of embedded software development, with emphasis on cross-platform or portable code
* Expert in C (C99/C11) and Modern C++ (C++11/14/17); solid understanding of OOP and procedural design
* Deep experience with I2C, SPI, UART (multi-bus, multi-device patterns)
* Proven ability to develop for both Linux (Yocto, Ubuntu) and RTOS (FreeRTOS, Zephyr, RTEMS)
* Python scripting for coding, build/test automation
* Familiarity with hardware debugging (JTAG/SWD, logic analyzers, oscilloscopes)
* Strong version control workflow (Git, GitFlow) and CI/CD integration
Nice-to-Have
* Background in satellite or aerospace on-board computers (OBCs) and Flight Software Frameworks
* Exposure to container-based CI for embedded builds (Docker)
* Knowledge of additional field buses (CAN/CAN-FD, MIL-STD, etc.)
* Experience with secure boot or firmware-update mechanisms
* Prior work on middleware or plugin frameworks
#J-18808-Ljbffr