Linux Kernel / Driver / Middleware Engineer – Automotive
Position: Senior Linux Kernel, Driver & Middleware Engineer – Automotive
Experience Level: 8+ years
Location: Pune / Bangalore
Desired Qualification:
BE / BTech / ME / MTech / M.Sc. in Electronics & Telecommunication / Electronics / Computer Science / Instrumentation & Control / Electrical Engineering from a reputed institute.
Required Exposure:
- Strong hands-on experience in Linux kernel development, device drivers and embedded Linux BSP development.
- Excellent knowledge of C programming, data structures, Linux kernel architecture and embedded systems.
- Strong understanding of ARM-based SoCs and embedded Linux platforms.
- Experience with Linux kernel configuration, compilation, customization and debugging.
- Strong experience in development/debugging of Linux device drivers.
- Experience with display, graphics, touch, input, CAN, I2C, SPI, UART, GPIO, USB and other peripheral drivers.
- Experience with display controller, framebuffer/DRM/KMS and graphics subsystem will be highly desirable.
- Experience with Linux device tree, bootloader and board bring-up, and power management
- Strong understanding of interrupts, DMA, memory management, synchronization, kernel threads and work queues.
- Experience developing and integrating Linux middleware/framework components.
- Understanding of IPC mechanisms, D-Bus, sockets, shared memory and message queues.
- Experience with CAN/CAN-FD and automotive communication stacks.
- Exposure to automotive middleware, service-oriented architecture or AUTOSAR concepts will be an advantage.
- Experience with graphics/display middleware and Wayland/Weston will be a plus.
- Strong debugging experience using GDB, kernel logs, ftrace, perf, crash dumps and Linux tracing/debugging tools.
- Experience with Git, Gerrit, CMake/Make and Yocto build systems.
- Understanding of boot time optimization, system startup and resource optimization.
- Experience working with automotive-grade embedded products such as clusters, infotainment, digital cockpit or telematics systems.
Job Profile:
We are looking for a Senior Linux Kernel, Driver and Middleware Engineer who will be responsible for developing and integrating the low-level software platform for a Linux-based TFT instrument cluster for two-wheelers.
The selected candidate shall be responsible for Linux BSP bring-up, kernel customization, device driver development, peripheral integration and middleware development required to support the cluster hardware and application software.
The candidate will work closely with hardware, HMI, application and system architecture teams to bring up the target ARM-based platform and enable peripherals such as display, touch, CAN/CAN-FD, GPIO, I2C, SPI, UART, USB and other vehicle interfaces.
The role will also involve development and integration of middleware components that provide standardized interfaces between the Linux platform, vehicle communication stack and application/HMI layers.
The candidate shall be responsible for analysing system-level issues involving boot, kernel, power management, drivers, memory, display, graphics, communication and peripheral interfaces, and shall work across software layers to identify and resolve root causes.
Key Responsibilities:
- Perform Linux BSP bring-up on ARM-based automotive hardware.
- Configure, customize and maintain the Linux kernel.
- Develop and maintain Linux device drivers.
- Develop and integrate drivers for display, touch, CAN/CAN-FD and other peripherals.
- Work with DRM/KMS, display controller and graphics subsystems.
- Develop and maintain Linux Device Tree configurations.
- Integrate and configure bootloader, kernel and root filesystem.
- Develop and integrate middleware components between platform and application layers.
- Implement IPC mechanisms such as D-Bus, shared memory, sockets and message queues.
- Integrate vehicle communication interfaces and CAN/CAN-FD stacks.
- Support HMI and application teams with required platform APIs/services.
- Analyse kernel crashes, deadlocks, memory issues, driver failures and system instability.
- Perform boot-time and system-performance optimization.
- Debug hardware/software integration issues using kernel logs, tracing and debugging tools.
- Work closely with hardware teams for board bring-up and peripheral validation.
- Participate in architecture discussions, code reviews and technical design activities.
- Support system integration and root-cause analysis of field/customer issues.
- Mentor junior kernel/driver developers and establish coding/debugging best practices.