PCIE Driver Development _2919

Tessolve

Bengaluru

Sur place

INR 1 200 000 - 2 500 000

Plein temps

Il y a 10 jours
Générateur de candidature

Transformez ce poste en entretien — un CV et une lettre de motivation conçus selon ce que cet employeur recherche.

Passez les filtres ATS

Résumé du poste

Tessolve is seeking an experienced Linux kernel and PCIe driver engineer in Bengaluru to design, develop, and maintain kernel drivers for custom hardware. You will work on PCIe transport interfaces, MMIO, interrupts, and high-performance data paths, collaborating with hardware/FPGA teams to debug and optimize system bring-up.

The role requires strong C programming skills and deep knowledge of kernel subsystems, synchronization, and DMA. A Bachelor's or Master’s in CS/ECE/EE is expected.

Qualifications

  • 4–7 years of hands-on experience in Linux kernel development.
  • Strong expertise in Linux kernel device driver development, particularly PCIe drivers.
  • Excellent C programming skills and understanding of kernel interactions with hardware.

Responsabilités

  • 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, MMIO, interrupt handling, and synchronization.
  • Work with MSI/MSI-X interrupts, DMA, memory management, and kernel synchronization primitives.
  • Design and develop a transport/abstraction layer for 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 for bring-up.
  • Analyze and debug kernel crashes, race conditions, timing issues, deadlocks, and performance bottlenecks.
  • Collaborate with hardware/FPGA teams to understand registers and device behavior.
  • Debug hardware/software interactions using low-level/system-level analysis.
  • Contribute to kernel code reviews, patch development, maintenance, and releases.
  • Work with kernel build systems, source-control tools, and patch workflows.

Connaissances

Linux kernel development
PCIe driver development
C programming
C++ integration
MMIO
Interrupt handling
DMA
Kernel synchronization
Debugging kernel crashes
Multithreading
Hardware bring-up

Formation

Bachelor's or Master's in CS/ECE/EE

Outils

Git
Kernel build systems
Patch management

Description du poste

Role Overview

We are looking for an experienced

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.

Obtenez votre examen gratuit et confidentiel de votre CV.

ou faites glisser et déposez votre fichier ici.

Similar jobs

Postes similaires à comparer

Device Driver Developer
Device Driver Developer

Sasken Technologies • Bengaluru

Sur place
INR 1 200 000 - 2 100 000
Senior Engineer – Linux BSP and Driver Development (Ethernet/SerDes/PCIe)
Senior Engineer – Linux BSP and Driver Development (Ethernet/SerDes/PCIe)

Larsen & Toubro • Bengaluru

Sur place
INR 1 500 000 - 2 500 000
Looking For embedded developers with PCIe / USB expereince_Hyderabad
Looking For embedded developers with PCIe / USB expereince_Hyderabad

Qualcomm • Hyderabad

Sur place
INR 1 400 000 - 2 200 000
Senior Engineer I - Software
Senior Engineer I - Software

Microchip Technology Inc. • Chennai District

Sur place
INR 1 400 000 - 2 100 000
Linux Kernel Engineer
Linux Kernel Engineer

Evollabs Tech • Hyderabad

Sur place
INR 1 800 000 - 3 200 000
Senior Engineer II-Software
Senior Engineer II-Software

Microchip Technology Inc. • Chennai District

Sur place
INR 900 000 - 1 200 000
Linux Kernel Engineer
Linux Kernel Engineer

Evollabs • Hyderabad

Sur place
INR 1 800 000 - 2 800 000
Linux Device Driver Development Engineer
Linux Device Driver Development Engineer

Capgemini Engineering • Bengaluru Urban

Sur place
INR 900 000 - 1 300 000
Senior Engineer II - Software
Senior Engineer II - Software

Microchip Technology Inc. • Chennai District

Sur place
INR 900 000 - 1 300 000
Senior Engineer II - Software
Senior Engineer II - Software

Microchip Technology Inc. • Chennai District

Sur place
INR 900 000 - 1 300 000