24 Sep
|
Capgemini Engineering
|
Bangalore Urban
24 Sep
Capgemini Engineering
Bangalore Urban
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 .
- Strong 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 quick-paced, team-oriented environment
- High attention to detail and commitment to code quality
📌 Linux Device Driver Development Engineer (Bangalore Urban)
🏢 Capgemini Engineering
📍 Bangalore Urban