Smartbrain logo

Senior Linux Kernel Developer - PCI & Drivers

Smartbrain·Salary not specified

Primary stack

CLinux

Nice to have's

Linux

Job description

About the Position

We are seeking a Senior Linux Kernel Developer specializing in PCI and drivers to enhance PCIe device functionality through advanced address translation services. This role is remote and offers full-time and part-time opportunities.

Responsibilities

  • Design and develop custom Linux kernel PCIe drivers to support checking and enabling Address Translation Services (ATS) and Address Translation Cache (ATC) capabilities.
  • Architect driver solutions that seamlessly integrate with the existing Linux kernel PCIe subsystem.
  • Optimize driver performance for stability, speed, and resource efficiency.
  • Debug complex kernel-level issues using advanced diagnostic tools and techniques.
  • Implement and maintain proper error handling, logging, and recovery mechanisms.
  • Collaborate with hardware engineers to ensure driver compatibility with various PCIe devices.
  • Create comprehensive documentation for driver architecture, APIs, and usage patterns.
  • Conduct thorough code reviews and participate in technical discussions with the engineering team.
  • Stay current with Linux kernel development trends and contribute to open-source projects when appropriate.
  • Mentor junior developers in advanced kernel programming concepts and best practices.

Requirements

  • Minimum 7 years of professional C programming experience, with specific focus on Linux kernel development.
  • Extensive expertise developing and maintaining Linux kernel modules for version 5.15 and above.
  • Comprehensive understanding of PCIe driver architecture, including endpoint drivers, root complex drivers, and bus enumeration.
  • Demonstrable experience implementing PCIe device drivers with advanced features like MSI/MSI-X interrupts, DMA operations, and memory-mapped I/O.
  • Proficiency with Linux kernel debugging tools (kgdb, ftrace, perf, etc.).
  • Strong knowledge of memory management within kernel space.
  • Familiarity with the NVMe driver stack and its underlying principles.
  • Experience with kernel-level performance optimization techniques.
  • Excellent problem-solving skills and attention to detail.
  • Proficient English communication skills (B1-B2 level).
  • Self-motivated and capable of working effectively in a remote environment.

Nice to Have

  • Experience with ATS/ATC implementation in PCIe drivers.
  • Understanding of IOMMU architecture and virtualization technologies.
  • Knowledge of SR-IOV and PCIe virtualization mechanisms.
  • Contributions to the Linux kernel or other open-source projects.
  • Familiarity with real-time operating system constraints.
  • Experience with PCIe 5.0/6.0 specifications.
  • Understanding of CXL (Compute Express Link) technology.
  • Knowledge of hardware security modules and trusted execution environments.
  • Experience with embedded Linux systems.

Technical Environment

You'll be working with cutting-edge technologies including:

  • Linux Kernel (version 6.8+).
  • PCIe 6.0 specification and hardware.
  • Advanced C programming (C17/C18 standards).
  • NVMe 2.0 specification and driver stack.
  • Various debugging and profiling tools for kernel development.
  • Git for version control and collaborative development.
  • CI/CD pipelines for automated testing of kernel modules.

© Smartbrain. This job description was sourced from the employer's public career page. TheJob is not the employer — we index the posting and route candidates to the source. All content rights and hiring decisions belong to the employer.

More at Smartbrain

All 121 roles

Popular searches