Embedded Linux Driver Developer
Location: Bangalore, India
Workplace Type: Onsite
About the Role
We are seeking a highly skilled and experienced Embedded Linux Driver Developer to join our dynamic team in Bangalore. In this role, you will be responsible for designing, developing, and maintaining Linux kernel drivers for various subsystems, including graphics, multimedia, power management, display, audio, networking, and virtualization. You will work closely with hardware and software engineers to ensure seamless integration and optimal performance of our embedded systems. The ideal candidate will possess a strong understanding of Linux kernel internals, excellent C programming skills, and a proven track record of developing and debugging complex device drivers. This is an excellent opportunity to contribute to cutting-edge technology and make a significant impact on our product development.
Key Responsibilities
- Design, develop, and maintain Linux kernel drivers for various embedded subsystems.
- Develop drivers for Graphics (DRM/KMS, OpenGL, Vulkan, Mesa), Multimedia (Vaapi, vdpau, gstreamer, v4l2), Power Management (System to RAM, S0ix3), Display (X, Wayland, Weston), Audio (ALSA SOC, I2S/TDM), Ethernet, and Virtualization (Xen, KVM, QNX hypervisor).
- Collaborate with hardware engineers to understand hardware specifications and develop appropriate driver interfaces.
- Debug and resolve driver-related issues, including performance bottlenecks and stability problems.
- Optimize drivers for performance, power consumption, and memory footprint.
- Participate in code reviews and contribute to the improvement of our driver development processes.
- Work with Yocto for embedded Linux builds and customizations.
- Contribute to open-source projects and engage with the Linux community (a plus).
- Implement and maintain IPC and DMA drivers.
- Develop and maintain drivers in kernel mode.
Required Skills & Qualifications
- Bachelor's or Master's degree in Computer Science, Electrical Engineering, or a related field.
- 4.5 to 8 years of experience in embedded Linux driver/kernel development.
- Strong C programming skills.
- Proficiency in Linux kernel internals and driver development concepts.
- Experience with at least one of the following driver domains: Graphics (DRM/KMS, OpenGL, Vulkan, Mesa), Multimedia (Vaapi, vdpau, gstreamer, v4l2), Power Management (System to RAM, S0ix3), Display (X, Wayland, Weston), Audio (ALSA SOC, I2S/TDM), Ethernet, or Virtualization (Xen, KVM, QNX hypervisor).
- Experience with Yocto development.
- Good understanding of IPC and DMA driver development.
- Experience with kernel mode driver programming in Linux.
- Solid understanding of system-level debugging techniques.
- Experience with Linux Device driver programming in Linux Kernel and Drivers.
- Familiarity with open-source development practices and contribution workflows (a plus).
- Strong problem-solving and analytical skills.
- Excellent communication and collaboration skills.