Qureos

FIND_THE_RIGHTJOB.

Senior Software Engineer - PCie

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:

  • Provident Fund

Work Location: In person

© 2025 Qureos. All rights reserved.