Skip to content
← Back to job listings

PCIE Driver Development _2919

Tessolve Semiconductor Private Limited · Electronic City, Bengaluru, Karnataka, India

Imported listingfull-timeabout 1 month ago

About The Role

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

This is an external listing. JobSpring does not represent or verify the employer. Report this listing