As an Embedded Linux Driver Engineer, you will be responsible for designing, developing, and maintaining low-level software, including device drivers and board support packages. You will work closely with hardware and firmware teams to ensure seamless integration of peripheral devices on embedded platforms.
Key Responsibilities
Develop and maintain Linux kernel modules and device drivers for embedded platforms.
Work on Board Support Packages (BSP), including bootloader development and customization.
Port and migrate Linux kernels to various hardware platforms and architectures.
Interface with hardware through protocols like UART, I2C, SPI, I2S, GPIO, PCIe, MMC, USB, etc.
Collaborate with cross-functional teams to define software requirements and resolve hardware/software integration issues.
Debug and optimize system-level issues to improve performance, stability, and reliability.
Provide detailed documentation of driver development and integration processes.
Required Skills & Qualifications
Strong experience in System C programming on Linux-based platforms.
5+ years of hands-on experience in Linux kernel and device driver development.
Expertise in Linux internals, kernel debugging, and hardware-software integration.
Proficient with bootloader development and BSP customization.
In-depth experience with peripheral interfaces such as UART, I2C, SPI, I2S, GPIO, PCIe, MMC, USB.
Solid understanding of processor architecture, especially i.e. MX or ARM-based platforms.
Experience in kernel porting/migration across versions and platforms.
Nice To Have
Experience working with PowerPC architecture.
Familiarity with Python scripting for automation or testing tasks.
Exposure to embedded development tools (JTAG, oscilloscopes, logic analyzers, etc.)