About this role
Do you love poking around and reverse engineering hardware and software products?
We are looking for talented, team oriented software, firmware and embedded systems engineers to work cross-functionally to analyze system level issues, debug and ship the next generation of Apple products. We need problem solvers with excellent written and verbal communication skills, both one-on-one and in group settings. Our products include the next generations of all Apple hardware products including iPhone, iPad, and Mac. Join us as we continually push the envelope to create the future of personal computing for Apple’s customers.
We work on products from the initial system bring-up phase, through all of the pre-production factory build phases, through when they “ramp” and afterward during early field return periods, participating in every phase of the development life cycle. Join our team and make a huge impact on the quality, performance, and successful shipment of future iPhones, iPads, and Macs!
Minimum Qualifications
Experience in embedded software development using version control and modern software development practices.
Experience with software failure analysis using standard debugging tools.
Proficient in use of JTAG software debug tools and symbol level debug environments (gdb/lldb/Trace32).
Comfortable with programming in low level languages like C (memory & pointer management).
Comfortable with programming in scripting languages (Python, Lua, Perl, Tcl, or similar).
Persistence to drive towards solutions of sophisticated problems across multiple teams and domains.
Embedded systems knowledge: Boot-up processes, OS/RTOS concepts, boot-loaders, OS drivers.
Preferred Qualifications
Hands-on experience with board bring-up & debugging of hardware system problems such as unexpected resets, system hangs, and others.
Experience building and debugging code with embedded OS tools & environments (such as iOS/Android/QNX).
Driver development experience on HW interfaces: UART, USB, I2C, SPI, SPMI.
Experience with assembly language programming.
Familiarity with ARM or other embedded SoCs.
Basic web tools and web development skills