Als Senior Embedded Software Engineer zul je de hardware-agnostische en OS-agnostische on-board software framework architecteren, implementeren en onderhouden. Je werkt samen met het AI-team om integratie van hardware in elke bus in minder dan een dag mogelijk te maken in plaats van maanden, met focus op robuustheid, veiligheid en prestaties op Linux en real-time operating systems.
## Taken
- Platform & Abstraction: Design en develop van hardware-agnostische HAL en middleware stack in C/C++, ondersteunend ARM Cortex-A/R/M, RISC-V, etc. Create OS-agnostische abstraction layers voor Linux (Yocto/Ubuntu) en RTOS (FreeRTOS, Zephyr, RTEMS) met minimale code divergence.
- Driver & Protocol Implementation: Implementatie en onderhoud van bus-protocol drivers (I2C, SPI, UART) met multi-bus en multi-instance ondersteuning voor redundancy. Definieer en handhaaf duidelijke software-to-hardware interface contracts (ICDs/datasheet-driven).
- Architecture & Best Practices: Toepassing van OOP-principes in C++ en structured design in C voor modulaire, testbare componenten. Handhaving van MISRA C/C++ en CERT Secure Coding richtlijnen; integratie van static analysis, code reviews en Git-based CI pipelines.
- Automation & Testing: Ontwikkeling van Python scripts voor automatisering van on-board software configuratie, build, flashing en validatie over meerdere target boards. Build en maintain van hardware-in-the-loop en software-in-the-loop test frameworks.
- Collaboration & Mentorship: Samenwerking met Software Lead, AI Engineer en Backend team. Mentoring van junior engineers en kennisdeling over cross-platform strategieën.