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