Staff Embedded Linux Engineer

Aurora InnovationMountain View, CA
3hHybrid

About The Position

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.

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 Haves

  • 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.
  • Knowledge of Telecommunication and/or GNSS domain

Responsibilities

  • 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.
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service