This list contains only the countries for which job offers have been published in the selected language (e.g., in the French version, only job offers written in French are displayed, and in the English version, only those in English).
Aurora’s mission is to deliver the benefits of self-driving technology safely, quickly, and broadly. The Aurora Driver will create a new era in mobility and logistics, one that will bring a safer, more efficient, and more accessible future to everyone. At Aurora, you will tackle massively complex problems alongside other passionate, intelligent individuals, growing as an expert while expanding your knowledge. For the latest news from Aurora, visit aurora.tech or follow us on LinkedIn. Aurora hires talented people with diverse backgrounds who are ready to help build a transportation ecosystem that will make our roads safer, get crucial goods where they need to go, and make mobility more efficient and accessible for all. We are seeking a seasoned Staff Embedded Linux Developer to architect, design, and implement system-level software for our next-generation embedded platforms. This high-impact role requires deep expertise in Linux kernel internals, BSP customization with the Yocto Project, and hands-on experience with hardware interfaces like PCIe, BIOS, and DDR RAM. The ideal candidate will lead complex debugging efforts, collaborate closely with hardware teams during board bring-up, and drive performance optimization across all system components.
Job Responsibility
Lead the design, development, customization, and maintenance of Board Support Packages (BSPs) for various hardware platforms using the Yocto Project build system
Configure, build, and optimize the Linux kernel, bootloaders (U-Boot), and root file systems for custom hardware, ensuring system stability and performance
Develop, port, and debug Linux device drivers for a wide range of hardware interfaces, including PCIe, DDR, Ethernet, I2C, SPI, and USB
Collaborate with hardware engineers during initial board bring-up, debugging issues at the register and schematic levels using tools such as JTAG, oscilloscopes, and logic analyzers
Implement and enhance functionalities related to the PCIe subsystem, including DMA, memory management, and interrupt handling
Work with BIOS/UEFI configurations and integrate them with the embedded Linux environment as required for specific platforms (e.g., x86 architectures)
Optimize system performance, boot time, memory footprint, and power consumption for embedded devices
Develop and maintain robust CI/CD pipelines and automated testing workflows for the embedded software stack
Create Requirements and Design, conduct code reviews, mentor junior engineers, and develop unit test plans
Requirements
Bachelor's or Master's degree in Computer Science, Electrical Engineering, or a related field
Minimum of 8+ years of hands-on experience in embedded Linux development, with a strong background in system-level programming and board bring-up
Deep expertise in the Yocto Project, including custom layer development, recipes (BitBake), and image generation
Strong proficiency in C/C++ programming for embedded and kernel-level development
In-depth knowledge of the Linux kernel internals, memory management, scheduling, and device driver architecture
Hands-on experience with debugging tools like GDB, JTAG, Lauterbach, and oscilloscopes
Strong problem-solving, analytical, and communication skills, with the ability to work effectively in cross-functional teams
Nice to have
Familiarity with secure boot, OTA updates, and system security hardening
Exposure to open-source contributions and community collaboration practices
Knowledge of networking protocols (TCP/IP, UDP) and real-time operating system (RTOS) concepts