Haptics Software Engineer
Summary
We are looking for a creative, motivated, and hard-working software engineer to develop drivers, frameworks, and tools for haptics-enabled next-generation Apple products, including iPhone, Watch, Pencil, and Mac. Come join a tightly-integrated team of hardworking engineers to deliver world-class haptic experiences that will be enjoyed by millions of customers!
Description
As a software engineer in haptics, you will work on all stages of the product development cycle with a vertically-integrated technology team. In this role you’ll collaborate with teams across the company, including firmware, algorithms, UI, services, and design teams to deliver a coordinated customer experience.
Responsibilities
- You will bring up proof-of-concept prototypes and demos to help design teams explore and evaluate new interactions and user experiences
- To ensure we craft well-considered features, you will architect low-latency, end-to-end haptics solutions by collecting requirements and constructing block diagrams; you will also negotiate and specify APIs, communication protocols, operating modes, and feature requirements with other software and firmware teams
- You will develop and detail software features on prototype hardware, potentially with custom silicon and/or algorithms with tight real-time requirements
- You will debug and root cause issues with QA teams to deliver high-quality, robust software in iOS/watchOS/macOS releases
Minimum Qualifications
- BS/MS in Computer Science or related fields and 3+ years relevant industry experience
- Strong C/C++ and object-orientated programming and debugging skills
- Expertise in developing system software such as drivers or frameworks
- Ability to build tooling with scripting languages such as Python and Bash
- Experience with profiling code in both kernel and user-space
Preferred Qualifications
- Familiarity with application-level programming using Objective-C and Swift
- Experience with digital signal processing, filter design, and transforming time domain signals
- Exposure to wireless data transport concepts and protocol design for real-time wireless streams
- Ability to quickly familiarize yourself with code you’ve never seen before
- Experience working with microcontrollers, sensors and/or actuators
- Experience with AI-assisted development tools and LLM applications in software development
- Experience crafting SW interfaces or APIs with customer-facing features