Senior Linux Kernel Developer - PCI & Drivers

Оплата: По договоренности
Удаленно
Full-time
Part-time

 As a Linux kernel specialist, you'll contribute to the development of cutting-edge solutions that enhance PCIe device functionality through advanced address translation services.


Key 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.


Required Skills & Qualifications

- 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.