About the Role
Responsibilities and Opportunities
Develop and maintain Linux device drivers for Rebellions NPUs, building robust foundations for high-performance AI computation.
Design and implement high-throughput, low-latency data transfer solutions and complex DMA operations across PCIe subsystems.
Architect and optimize advanced memory management subsystems, ensuring high stability, zero-overhead, and safe memory handling during host-device communication.
Investigate and adopt modern kernel development paradigms (e.g., safe memory abstractions, Rust-for-Linux concepts) to eliminate memory reference vulnerabilities and maximize DRM subsystem stability.
Design and implement effective communication interfaces with device firmware, developing customized features for seamless hardware integration.
Support and debug complex system-level issues across the software stack and hardware interfaces, optimizing overall system architecture.
Key Qualifications
- Bachelor’s or higher degree in Computer Science, Electrical Engineering, Computer Engineering, or related fields.
- Minimum of 5 years of experience in general Linux kernel and device driver development (e.g., PCIe, DMA, Network, Storage, DRM).
- Deep understanding of SR-IOV / PCIe device virtualization, IOMMU/SMMU, and DMA (dma-mapping, dma-buf, scatter-gather).
- Strong command of kernel concurrency (locking and ordering (AB-BA), refcounting/object lifetime, RCU, workqueues/kthreads) and the ability to debug deadlocks and use-after-free.
- Proven low-level debugging from kernel logs, KASAN/ASAN, and coredumps.
- Proficiency in C/C++/Rust.
- Strong foundation in handling hardware-software interfaces and interrupt handling.
- Excellent communication, analytical, and problem-solving skills.
Ideal Qualifications
- Interest or hands-on experience in modern Linux kernel memory management trends, including the use of Rust for Linux (e.g., utilizing ‘zerocopy’ or safe abstractions for device drivers).
- Previous experience in GPU, NPU, or other complex accelerator device driver development (e.g., DRM subsystem).
- Understanding of device memory communication protocols and handling zero-copy data movement between user-space and kernel/hardware.
- Over 5 years of experience in kernel driver development and performance tuning for large-scale systems.
Commitment to Diversity
Rebellions is committed to fostering a diverse and inclusive workplace. We are an equal opportunity employer and value diversity within our company. We do not discriminate based on personal identity. Applicants who would like to contact us regarding the accessibility of our website or who need special assistance or a reasonable accommodation for any part of the application or hiring process may contact us at: recruit@rebellions.ai.
Requirements
Linux kernel development
Minimum of 5 years of experience in general Linux kernel and device driver development.
Memory management
Deep understanding of SR-IOV / PCIe device virtualization and DMA operations.
C/C++/Rust proficiency
Proficiency in C/C++/Rust is essential for this role.
Debugging skills
Proven low-level debugging skills from kernel logs and coredumps.
Nice to Have
Previous experience in GPU, NPU, or complex accelerator device driver development is a plus.
Interest or hands-on experience in modern Linux kernel memory management trends, including Rust for Linux.