Senior Linux Kernel Developer - PCI & Drivers
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.
