Create Alert
Email me similar jobs

System Software Engineer - Human Interface Devices

Summary

The Human Interface Devices Software team at Apple develops high-performance drivers, frameworks, and tools that support innovative sensing technologies across Apple products, including Multi-touch and other input systems. We collaborate closely with cross-functional teams, including Algorithms, Firmware, Design, and UI, to ensure an optimal user experience. This role offers an exciting opportunity to work on cutting-edge technology alongside some of the brightest minds in the industry.

Description

As a System Software Engineer, you will be responsible for maintaining and developing system software for iOS, macOS, tvOS, watchOS, and visionOS, focusing on drivers, frameworks, and software stacks for future sensing technologies. Your core responsibilities will include:
- Contributing to key subsystems within the HID software stack, including driver pipelines and input frameworks
- Collaborating with multi-disciplinary teams — including Algorithms, Firmware, and UI — to integrate hardware and software and deliver reliable, low-latency input experiences
- Participating in design and code reviews, and sharing technical insights to help drive good engineering decisions
- Sharing domain expertise with peers and supporting the growth of those around you
As you develop in the role, there are opportunities to take on greater ownership of projects and grow toward a leadership track over time.

Preferred Qualifications

Experience defining communication protocols and implementing transport drivers, such as USB, Bluetooth, and SPI.
Familiarity with the USB HID specification and experience working on sensing technologies (e.g., multi-touch) and user-facing input systems.
Proficiency in profiling code in both kernel and userspace.
Experience shipping production system software to end users.
Familiarity with IOKit, Objective-C, and other Apple-specific technologies such as iOS and macOS.
Strong verbal and written communication skills, with the ability to present complex technical topics clearly to both technical and non-technical audiences.
Experience contributing to projects from conception to completion.
Interest in growing technical scope and responsibilities over time.

Minimum Qualifications

3+ years of experience in system software engineering, with a strong focus on C/C++ and object-oriented programming.
Experience in driver and framework development for embedded or OS-level systems.
Proven ability to work across both higher-level software design and lower-level systems development.
BS in Computer Science or a related field.
Similar jobs