Embedded Systems Jobs

Embedded Systems Jobs

For embedded developers

Apple
San Diego, California, United States
Embedded Firmware Engineer
Full-time

The Human Interface Device group is looking for motivated engineers to join the multitouch embedded development team. The HID group designs and ships firmware and software for the best sensing interfaces in the world across iPhone, iPad, AirPods, Mac, health sensors, and more. We get involved from the very earliest project phases years before a new product launch, specifying custom silicon, bringing up novel hardware with Apple’s EE teams, refining the user experience with our algorithms, software, and Quality partners, and supporting factory builds of millions of units!


The HID Mac embedded team develops embedded software and firmware for the MacBook trackpad and keyboard. We develop solutions from the lowest level firmware up to the device driver layer across custom and off-the-shelf analog front end chips and the Apple SOC. As our products ship to millions of customers, our team’s impact is felt around the world! If you join our team, you will have immediate exposure to shipping products and will help shape our future roadmap as we continue to explore new architectures and technologies.


Key Qualifications

  • Proficiency in C or C++ for Embedded Systems
  • Experience with multithreaded programming
  • Experience developing complex architectures in RTOS environments
  • Working knowledge of inter-processor communication methodologies and SOC concepts such as MMU’s, caching strategies, and ARM architectures
  • Experience designing and implementing communication protocols
  • Experience optimizing for memory and execution time in resource constrained environments
  • Experience with advanced debugging in embedded environments (e.g., coredumps, traces)
  • Experience with NEON / SIMD or similar hardware accelerators
  • Experience working with analog and digital sensors
  • Proven capability to apply software best practices to firmware designs
  • Strong communication and collaboration skills
  • Experience contributing to large software projects
  • Experience with unit testing, static analysis, and continuous integration


Description

As a HID developer working on many of Apple's embedded solutions, you will be expected to:


- Be an active participant in the design process, presenting your new designs and the data to back them up, as well as soliciting feedback from internal and external partners

- Architect, implement, and maintain complex firmware/software designs

- Write clean, easy to understand, robust, testable, and sustainable code tailored for embedded systems

- Quickly debug and effectively close out system issues related to the product firmware, software, and systems

- Participate in the definition and bring up of new sensing chipsets, ASIC’s, and SOC’s

- Specify and document communication protocols, system states, and feature requirements in partnership with other firmware and software teams

- Help select microcontrollers, define power management strategies, and review schematics with hardware teams

- Collaborate with Quality Engineering teams to inform and craft their white-box testing

- Collaborate with the Continuous Integration team to implement and maintain new automated testing strategies