Senior Engineer, Device Driver
Qualcomm10 months ago
Boulder, CO, United States
Hybrid
Full-time
Junior Level (1-3 years)
Job Description
Position Overview
Qualcomm is seeking a software engineer to develop Linux device drivers for Machine Learning use cases targeting its high-performance inference accelerator AI 100 and related products. The candidate will work on writing and upstreaming code, as well as collaborating with cross-functional teams to implement and debug low-level code. Familiarity with functional simulation of SoC systems including bus subsystems, DMA, PCIe, peripherals, and synchronization mechanisms such as semaphores is beneficial.
Key Responsibilities
- Develop Linux device drivers for Qualcomm high-performance inference accelerator AI 100 and associated products.
- Upstream developed code and collaborate with team members to ensure robust implementation.
- Work on low-level implementation and debugging in a structured software development environment.
Required Qualifications
- Qualifications: Experience with Linux kernel driver development, kernel modules, HWMon, sysfs, and debugging techniques.
- Experience with PCIe virtualization and SRIOV.
- Proficiency in embedded development in C.
- Familiarity with RTOS, SoC architecture (core, cache, memory, bus architecture, IOs) and common hardware blocks.
- Experience with source code and configuration management tools, particularly git.
- Education: Bachelor’s degree in Engineering, Information Systems, Computer Science, or a related field (or advanced degree with corresponding experience).
- 2+ years of academic or work experience with programming languages such as C, C++, Java, or Python.
- Willingness to work in a structured development environment and perform low-level coding and testing.
Preferred Qualifications
- 2+ years of relevant industry experience.
- Experience with the Linux kernel PCIe stack.
- Familiarity with high speed interfaces such as PCIe and LPDDR.
- Experience in implementing systems with high reliability expectations including the use of ECC and PCI AER fields.
- Working knowledge of SOC building blocks like interrupt controllers and timers, and kernel subsystems related to isolation and security.
- Strong understanding of DMA, IOMMU, and device assignment in virtualized or isolated contexts.
- Proficiency with virtualization technologies, such as KVM and guest/host split drivers.
Benefits & Perks
- Salary: $100,200.00 - $150,200.00
- Competitive annual bonus program, potential RSU grants, and a comprehensive benefits package designed to support your success at work and at home.
Required Skills
Kernel modules
Linux kernel driver development
KVM virtualization
Embedded C development
DMA and IOMMU
PCIe virtualization
HWMon and sysfs
Source code management (git)
RTOS and SoC architecture
SRIOV
Device assignment in virtualized contexts
Debugging techniques