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