A

Apple

Designs phones, computers and their operating systems

Software Engineer: Linux Driver and Kernel Developer

Systems Software EngineeringConfirmed live in the last 24 hours
Full-timeNo salary listedIn-person

About the Job

Requirements

  • A bachelor's degree in Electrical Engineering, Mechanical Engineering, Computer Science, or a related field and 10 or more years of relevant industry experience are required.
  • Experience in embedded Linux kernel development is required.
  • Experience in C programming is required.
  • Experience with ARM architecture is preferred.
  • Familiarity with the Linux graphics stack, including Mesa, Vulkan/OpenGL, and GPU compute, is preferred.
  • Experience validating GPUs with graphics and compute workloads, stress tests, or conformance suites such as Vulkan CTS and igt-gpu-tools is preferred.
  • Knowledge of Linux kernel internals, including process scheduling, memory management, concurrency and synchronization, memory allocation, and file systems, and knowledge of networking or storage subsystem architecture are preferred.
  • Device driver development and support across one or more of USB, networking, graphics, video, storage, and power management are preferred.
  • Kernel-space debugging skills are preferred.
  • Experience exercising and validating systems from user space, including knowledge of user-space APIs, is preferred.
  • Experience porting or maintaining a Linux distribution for a platform is preferred.

Responsibilities

  • Work closely with designers and architects to understand functional IP blocks and their use cases.
  • Implement board support packages and perform software bring-up on pre-silicon and post-silicon platforms.
  • Develop Linux device drivers and user-land tests to exercise and validate subsystems in complex systems-on-chip.
  • Debug and identify the root cause of hardware and software issues.

Desired Qualifications

  • Experience with ARM architecture.
  • Familiarity with the Linux graphics stack, including Mesa, Vulkan/OpenGL, and GPU compute.
  • Experience validating GPUs with graphics and compute workloads, stress tests, or conformance suites such as Vulkan CTS and igt-gpu-tools.
  • Knowledge of Linux kernel internals, including process scheduling, memory management, concurrency and synchronization, memory allocation, and file systems, and knowledge of networking or storage subsystem architecture.
  • Device driver development and support across one or more of USB, networking, graphics, video, storage, and power management.
  • Kernel-space debugging skills.
  • Experience exercising and validating systems from user space, including knowledge of user-space APIs.
  • Experience porting or maintaining a Linux distribution for a platform.

About the Company

Apple

Designs phones, computers and their operating systems

Apple designs and sells consumer electronics, from iPhone smartphones and Mac computers to tablets and wearable devices. Its operating systems manage apps and built-in functions for communication and work, while iCloud stores files and synchronizes data across devices. Customers buy additional digital services through subscriptions such as Apple Music and Apple TV, and developers distribute software through the App Store. Apple earns money from hardware sales, subscriptions and digital transactions, selling directly to customers and through retailers and mobile carriers around the world. It was founded in 1976 and has its headquarters in Cupertino, California.

Company size
10,001+
Company stage
IPO
Headquarters
Cupertino, CA
Founded
1976

Recently Posted Jobs

Explore more opportunities at Apple

See more jobs