Browse current jobs

PCIE Driver Development _2919

Tessolve · Bangalore

Apply on employer website

Source and collection record

Read the employer source

Last observed by our collector: . This is not a manual review or a confirmation from the employer.

Job type and experience labels are automated discovery categories. The employer determines eligibility. Original experience wording was not retained separately; check the current employer page.

How sourcing and classification work · Report a discrepancy

Your application evidence checklist

Mark the statements you can support after reading the employer source. This checklist stays on this page; it does not score your eligibility or submit an application.

0 of 2 checks marked. Keep unresolved requirements as questions for the employer.

Collected role description

<h1>PCIe Driver Engineer</h1><p class="isSelectedEnd"><strong>Location:</strong> Bengaluru<br /><strong>Experience:</strong> 4–7 Years<br /><strong>Employment Type:</strong> Full-Time</p><h2>Role Overview</h2><p class="isSelectedEnd">We are looking for an experienced <strong>Linux Kernel Driver Engineer</strong> with strong expertise in kernel-level development, PCIe device drivers, and low-level hardware communication.</p><p class="isSelectedEnd">The candidate will be responsible for developing and maintaining Linux kernel drivers for custom hardware, building robust transport and abstraction layers, and working closely with hardware/FPGA teams to debug, optimize, and validate high-performance device communication.</p><h2>Key Responsibilities</h2><ul><li>Design, develop, and maintain <strong>Linux kernel device drivers</strong> for custom hardware.</li><li>Develop and enhance <strong>PCIe-based device drivers</strong> and low-level communication interfaces.</li><li>Implement driver initialization, <strong>Memory-Mapped I/O (MMIO)</strong>, interrupt handling, and synchronization mechanisms.</li><li>Work with <strong>MSI/MSI-X interrupts</strong>, DMA, memory management, and kernel synchronization primitives.</li><li>Design and develop a <strong>transport/abstraction layer</strong> that provides a stable and efficient interface to upper-layer software.</li><li>Optimize high-performance data paths for throughput, latency, and reliability.</li><li>Implement robust error handling, fault recovery, and device recovery mechanisms.</li><li>Develop diagnostic utilities, test hooks, and debugging tools to support software and hardware bring-up.</li><li>Analyze and debug <strong>kernel crashes, race conditions, timing issues, deadlocks, and performance bottlenecks</strong>.</li><li>Work closely with hardware and FPGA teams to understand register maps, hardware specifications, and device behavior.</li><li>Debug hardware/software interactions using low-level debugging and system-level analysis.</li><li>Contribute to kernel code reviews, patch development, maintenance, and release activities.</li><li>Work with kernel build systems, source-control tools, and standard patch workflows.</li></ul><h2>Required Skills</h2><ul><li><strong>4–7 years of hands-on experience</strong> in Linux kernel development.</li><li>Strong expertise in <strong>Linux kernel device driver development</strong>, particularly <strong>PCIe drivers</strong>.</li><li>Excellent programming skills in <strong>C</strong>.</li><li>Strong understanding of <strong>C++ application development</strong> and its interaction with low-level/kernel components.</li><li>Deep understanding of:<ul><li>PCIe architecture and device communication</li><li>MMIO and register-level programming</li><li>MSI/MSI-X interrupts</li><li>DMA and high-performance data transfer</li><li>Kernel synchronization and locking</li><li>Concurrency and multithreading</li><li>Linux kernel subsystems</li></ul></li><li>Proven experience debugging:<ul><li>Kernel crashes</li><li>Race conditions</li><li>Deadlocks</li><li>Timing-related issues</li><li>Memory-related issues</li><li>Driver/hardware interaction problems</li></ul></li><li>Ability to understand and work from <strong>hardware interface specifications, register maps, and hardware design documents</strong>.</li><li>Good understanding of Linux kernel build systems, source control, patch management, and code review workflows.</li></ul><h2>Good-to-Have Skills</h2><ul><li>Experience developing <strong>high-throughput or low-latency data paths</strong>.</li><li>Experience with <strong>FPGA-based systems, prototyping boards, or embedded hardware platforms</strong>.</li><li>Knowledge of Linux kernel performance tuning and profiling.</li><li>Experience with kernel tracing and debugging tools.</li><li>Exposure to hardware bring-up and system-level validation.</li><li>Understanding of DMA engines, IOMMU, BARs, and PCIe enumeration.</li><li>Experience working in collaborative hardware/software development environments.</li></ul><h2>Education</h2><ul><li>Bachelor's or Master's degree in <strong>Computer Science, Electronics, Electrical Engineering, or a related field</strong>.</li></ul><h2>Preferred Candidate Profile</h2><p class="isSelectedEnd">The ideal candidate should have strong hands-on experience in <strong>Linux kernel and PCIe driver development</strong>, excellent C programming skills, and the ability to work at the intersection of <strong>hardware, firmware, kernel, and application software</strong>.</p><p>Strong debugging skills, low-level hardware understanding, and experience developing reliable high-performance data paths will be highly valued.</p>

Collected experience requirement

4 - 7 Years