FIND_THE_RIGHTJOB.
India
5+ years of experience with Linux device driver development, preferably with a focus on PCIe devices.
Open Source Contribution: Experience contributing to the Linux kernel or relevant open-source projects is highly valued.
Expertise in C Language: Mastery of C for low-level, performance-sensitive code, including bitwise operations, memory management, pointer arithmetic, and data structure optimization.
Familiarity with C++: Advantageous for certain projects, though most Linux kernel drivers are written in C. Understanding object-oriented concepts in a C context is also helpful.
Deep Understanding of Linux Kernel Architecture: Familiarity with kernel space versus user space, kernel modules, device driver concepts, and memory management.
Kernel Module Development: Experience writing loadable kernel modules (LKMs) and integrating them with the Linux build system.
Debugging and Profiling: Proficiency with debugging tools such as kgdb, ftrace, perf, dmesg, and sysfs interfaces to troubleshoot and optimize drivers.
Comprehensive Understanding of PCIe Specification: Knowledge of the PCIe standard, including enumeration, configuration space, BARs (Base Address Registers), MSI/MSI-X interrupts, and bus mastering.
Device Datasheet Interpretation: Ability to read and interpret PCIe device hardware documentation, including register maps, timing requirements, and signaling protocols.
Interfacing with Firmware/BIOS: Understanding how PCIe devices are initialized during system boot, and the mechanisms by which firmware and BIOS communicate with hardware.
Device Driver Development Lifecycle
Probing and Initialization: Experience writing probe() and remove() functions to handle device enumeration and teardown.
Resource Management: Skills in managing memory and hardware resources, including DMA (Direct Memory Access), I/O regions, and interrupt lines.
Interrupt Handling: Ability to write efficient and robust interrupt handlers, using mechanisms such as bottom halves, tasklets, work queues, and threaded interrupts.
Power Management: Familiarity with runtime and system power management interfaces, including suspend/resume operations.
Concurrency and Synchronization: Understanding race conditions, atomic operations, spinlocks, mutexes, and semaphores in a preemptible kernel environment.
Bachelor’s or Master’s Degree: In Computer Science, Electrical or Computer Engineering, or a related technical field.
Desirable Additional Qualifications:
Knowledge of Other Operating Systems: Familiarity with Windows, FreeBSD or RTOS driver models for cross-platform development.
Experience with FPGA, SoC, or Custom Hardware: Useful for teams working on nonstandard PCIe endpoints or accelerators.
Performance Tuning: Skills in profiling and optimizing for low-latency, high-throughput data paths.
Community Engagement: Involvement in Linux kernel mailing lists, conferences (such as Linux Plumbers Conference), or speaking at industry events.
Note: Please send Cv only, who can attend the interview weekdays, with short notice period (max 15 days only)
Job Location: Bangalore (Work from office)
Job Type: Full-time
Pay: ₹1,691,666.37 - ₹4,003,384.60 per year
Benefits:
Work Location: In person
Similar jobs
Bosch
India
3 days ago
LexisNexis Risk Solutions
India
9 days ago
RELX Group
India
9 days ago
Elsevier
India
9 days ago
PayPal
India
9 days ago
Flexi Sourcing Private Limited
Kolar, India
9 days ago
WSP
India
9 days ago
© 2025 Qureos. All rights reserved.