HID Firmware Engineer
Santa Clara Valley (Cupertino), California, United States
Come join a team of creative, high-energy, and enthusiastic firmware engineers responsible for next-generation Human Interface Devices for iPhone, iPad, Apple Watch, and Mac. We are looking for talented individuals who enjoy building firmware for microcontrollers and embedded processors, prototyping concepts, investigating new technologies, and ultimately delivering high-quality products. This is a great opportunity to be at the focal point of many multi-functional interactions with the hardware, software, and QA teams.
- C or C++ for Embedded Systems
- Experience working with microcontrollers with analog and digital sensors
- Working knowledge of one or more communication protocols ( e.g. USB, Bluetooth, UART, SPI, I2C )
- Experience implementing firmware in bare-metal or RTOS environments
- Proven capability in applying software best-practices to firmware designs
- Proven board bring-up and debug skills
- Strong communication and collaboration skills
As a HID firmware engineer working on many of Apple's embedded input devices, touchscreens, trackpads, keyboards, mice, cameras, health sensors, etc ), you will be expected to: * bring up new sensing chipsets and processors from initial specification to production * quickly debug and effectively close out system issues related to your firmware * architect, implement, and maintain complex firmware designs * write clean, easy to understand, robust, and sustainable code tailored for embedded systems * negotiate, specify and document communication protocols, system states, and FW/SW feature requirements with the SW team * help select microcontrollers, define power management strategies, and review schematics with the HW team * collaborate with the QA teams to inform and craft their white-box testing
Education & Experience
- Experience with one or more microcontroller cores (ARM, AVR, MSP430, PIC, M8C, 8051).
- Debugging skills with JTAG, Oscilloscopes, and/or Logic analyzers.
- Development experience on Unix, Linux, or Mac OS X is preferred.
- Familiarity with video camera, displays, input, or health technologies is helpful.
- Cocoa, Objective-C, or IOKit is helpful.