System Software Engineer
Core
Develop and integrate embedded system applications, drivers, and data paths for devices running on board bring-up through deployed software.
Role type
Systems Software Engineer (Embedded)
Builds
Embedded system applications, driver layers, and communication interfaces for hardware devices
Domain
Embedded systems, hardware-software integration, sensor integration
Required skills
C, C++, embedded application development, firmware development, peripheral and sensor integration, multi-threading, concurrent programming, Linux development, debugging, hardware datasheet interpretation
Preferred skills
image processing, video pipelines, device drivers, kernel-space development, RTOS, Python, Git, CMake, automated testing frameworks
Technologies
I2C, SPI, UART, CAN, USB, Ethernet, Linux, CMake, Git
Responsibilities
Develop and bring up complete embedded system applications from board bring-up to deployment. Integrate multiple peripherals and sensors into a working system. Implement communication over standard interfaces and buses. Build reliable data paths between subsystems. Write multi-threaded and concurrent code. Optimise software for speed and memory footprint. Diagnose and fix bugs and performance bottlenecks. Collaborate with hardware, firmware, and algorithms teams. Travel to client sites for support and debugging.
Seniority
Mid-level to Senior, hands-on IC
