Apple

Embedded Software Engineer

Apple Shanghai, Shanghai, China

Computers and Electronics Manufacturing · 10,001+ employees

Jul 28
embedded Mid (2-5 yrs) Full-time China
Log in to apply, save this posting, or score it against your profile with AI.

About the role

You will implement software and drivers for firmware interfaces, chipsets, and communication protocols. Additionally, you will develop features to support hardware testing and diagnostics for unreleased handheld devices.

What they look for

C C++ Embedded Software ARM Architecture Device Drivers Gdb Lldb Oscilloscopes Logic Analyzers USB UART SPI I2C PCIe Lua Python

Requirements

Candidates must hold a BS or MS in Computer Engineering, Computer Science, Electrical Engineering, or an equivalent field. Proficiency in C/C++ and experience with ARM architecture and low-level driver development are preferred.

Full description

The System Firmware and Diagnostics team is looking for an enthusiastic embedded software engineer to join our team. You’ll have the opportunity to work on core technologies to make a major impact in the way that Apple develops, test and manufactures its products. Our environment encourages product innovation, rapid product iteration, collaboration and a liberating amount of autonomy

Description

In this role you will implement software and drivers for common firmware interfaces, chipsets, communications protocols and various SoC IPs. You will also implement features to support hardware testing and diagnosis of unreleased Apple's handheld devices. This is a highly cross functional role and you'll work closely with various teams, like EE, Systems Engineering, Software Engineering, Hardware Testing, QA, Factory, Manufacturing and Operations. The environment is dynamic, fast-paced and requires a go-getter attitude.

Minimum Qualifications

BS or MS in Computer Engineering, Computer Science, Electrical Engineering or equivalent. Excellent communication skills, both verbally and written (In both Chinese and English).

Preferred Qualifications

Proficiency in C/C++, some embedded software experience is preferred. Understanding and experience with ARM platform and architecture/instruction set. Experience developing low level drivers Experience with debuggers such as gdb, lldb, etc. Familiarity with scopes and logic analyzers. Able to comprehend hardware specs and schematics. Familiarity with standard hardware protocols (USB, UART, SPI, I2C, PCIe, MIPI, HDMI, DDR) Familiarity with some form of scripting (lua, python).

Similar roles