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
fast-paced, team-oriented environment
-
High attention to detail and commitment to code quality