Are you a big-picture thinker who loves setting ambitious goals? Do you have a passion for understanding how each line of code affects all the others?
In the Core Operating Systems group ensuring the OS is inseparable from each device's identity as a whole. That's because this group is committed to building fully integrated operating systems that combine hardware, software, and apps into a single Apple experience. Your dedication to cross-disciplinary collaboration will help develop groundbreaking technologies, such as iOS, macOS, watchOS, and tvOS. By crafting these distinct, holistic user experiences, you'll continue to uphold and advance the excellence people expect from Apple devices.Apple's CoreOS Mac Platform team is seeking a Debug Tools Engineer that can develop silicon and system debug features, low level debugging tools, and related infrastructure that scale from pre/post silicon bring-up to productization and field debug of Mac systems.
Experience interfacing software with hardware debug technologies (e.g. JTAG, on-chip debug)General understanding of compilers / linkers / object file formats and associated tools such as objdump and otool
Proficient in Python and C programming
Experience with LLDB and/or GDBProven creative, critical thinking, and troubleshooting skills
Excellent written, and verbal communication skills
You will work directly with silicon vendors to improve the adoption of on-chip debug tools within Apple environment and provide a solution to Apple Software, Hardware and manufacturing teams to improve debug flows. In addition, you will work with Mac hardware architecture and software teams to continue improving Mac debug infrastructure.
BS in Computer Engineering or equivalent experience
Experience developing and validating debug tools
Track record of driving debug tool adoption with partner organizations
Understanding of system architecture and/or micro-architecture for CPU, PCH, SoC, and server
Familiarity with the USB protocol
Experience with Intel debug architecture
Embedded software development experience
Operating system kernel development experience
Ability to understand board schematics