27 Sep
|
Capgemini Engineering
|
Bengaluru
27 Sep
Capgemini Engineering
Bengaluru
Location Bangalore, India Work Mode Work From Office – 5 Days a Week Face-to-Face (F2F) Interview is Mandatory Job Summary We are looking for an experienced Linux Device Driver Development Engineer with strong expertise in embedded systems, Linux kernel internals, and hardware-software integration. The candidate will be responsible for developing, customizing, debugging, and maintaining Linux platform software and device drivers for custom hardware based on embedded SoCs. This role requires hands-on board bring-up, low-level debugging, and close collaboration with hardware, systems, and application teams in a fast-paced environment.
Key Responsibilities - Design, develop, customize, and maintain Linux device drivers and platform software for embedded SoC–based systems.
- Work on BSP and platform software development for custom hardware platforms.
- Perform board bring-up activities, including bootloader configuration and early kernel initialization.
- Develop and validate Bare-Metal and Linux drivers, performing hardware-software validation using lab equipment such as oscilloscopes, logic analyzers, and JTAG-based debuggers.
- Drive bootloader development/customization (U-Boot or equivalent), including power-on boot sequence and low-level initialization.
- Debug complex system-level issues across bootloader, kernel, drivers, and hardware layers.
- Understand and interpret board schematics, datasheets, and hardware reference manuals to support driver development and integration.
- Work on kernel upgrades, driver porting, upstreaming, and component integration.
- Develop and customize drivers for peripherals such as GPIO, SPI, I2C, UART, Sensors, NAND, NOR, eMMC, DDR, etc.
- Contribute to Linux kernel subsystems, including scheduler, memory management, IPC, DMA, IOMMU, interrupt handling, polling mechanisms, and NAPI.
- Develop and debug Linux platform drivers for components such as PCIe, Ethernet, USB, GPU, Display, and Multimedia subsystems.
- Handle system-level debugging, issue isolation,
and root-cause analysis involving kernel crashes, performance bottlenecks, and hardware-related failures.
- Collaborate closely with cross-functional teams to ensure seamless hardware–software integration.
- Produce high-quality, maintainable, and well-documented code following best practices.
Required Skills & Qualifications Core Technical Skills - Strong proficiency in C programming for kernel and system-level development.
- In-depth knowledge of Linux kernel internals and device driver architecture.
- Hands-on experience with Linux Device Driver Development.
- Robust understanding of ARM and x86 processor architectures.
- Deep knowledge of multi-core architectures, NUMA, and memory hierarchies.
- Experience with concurrent programming, threading APIs, and synchronization mechanisms.
- Strong understanding of operating system concepts (Linux and/or RTOS). Embedded & Hardware Expertise - Experience working with embedded SoCs and Microcontrollers.
- Hands-on board bring-up experience with custom hardware.
- Strong debugging skills using JTAG/J-Link and other hardware debuggers.
- Ability to validate software using hardware test equipment. Kernel & System Knowledge - Experience with:
- Linux kernel modules
- Interrupt architecture and event handling
- DMA, IOMMU, IPC mechanisms
- PCIe subsystem and drivers
- Networking and Ethernet stack
- Familiarity with Yocto-based projects or Buildroot.
- Experience in kernel upgradation, driver porting, and upstreaming. Desired / Added Advantages - Hands-on experience with OpenGL and OpenCL.
- Exposure to GPU, Multimedia, and Display driver development.
- Experience in system performance tuning and optimization.
- Familiarity with RTOS environments in addition to Linux. Tools & Development Environment - Debuggers and profiling tools
- Version control systems such as Git / GitHub
- Linux kernel debugging and tracing tools Soft Skills - Strong problem-solving and analytical skills
- Excellent communication and collaboration abilities
- Ability to work independently and in a fast-paced, team-oriented environment
- High attention to detail and commitment to code quality
📌 Linux Device Driver Development Engineer (Bengaluru)
🏢 Capgemini Engineering
📍 Bengaluru