Previous Job
Previous
Embedded Engineer
Ref No.: 17-23634
Location: Cupertino, California
The Platform Team is looking for a talented embedded software engineer to help with pre-silicon simulation, early silicon support and development of the boot firmware and software. We're looking for detail oriented engineers with exceptional problem solving skills and a passion for quality.

Description

You will play a central role in building the support for early system development during the pre-silicon and early silicon phases, including involvement in specification review for hardware platforms, work in system simulation technologies, boot firmware, low level device drivers, and new system bring up. Work closely with internal and external teams to enable firmware development long before first hardware availability. Design and implement software and firmware, and perform system level debug of hardware, silicon, and software. The successful candidate should be comfortable working on a large spectrum of issues ranging from hardware/silicon issues to overall system operation, performance and power management.

Education

BS or MS in Computer Engineering or Computer Science or equivalent experience/skills

Additional Requirements

Experience with common embedded SOC architectures x86 bring-up/validation experience is a huge plus Knowledge of high speed interfaces (e.g., PCIe, memory) Knowledge of CPU and device power management OS kernel/userland experience (including threading and memory management) Ability to understand board schematics Familiarity with UEFI is a plus A working knowledge of various scripting languages: Perl*,Python*, Bash Shell* and Make is a plus.

Key Qualifications

Working knowledge of processor architecture & micro-architecture (ARM preferred)
Solid experience in hands-on development and troubleshooting of boot-loaders, mask ROM on embedded targets
Solid programming experience in C or C++. Understanding of ARM assembly is a plus.
Previous experience writing embedded device drivers
Previous experience with platform bring-up or porting of operating systems
Previous exposure to hardware and processor simulation and emulation environments
Understanding of clock trees, bus/fabric interconnects, and advanced peripherals such as PCIe, USB
Understanding of on-chip debug and trace facilities. Exposure to hardware logic analyzers, oscilloscopes is a plus.
Demonstrated creative, critical thinking and troubleshooting skills
Highly professional, with the ability to deliver solid work on tight schedules
Excellent collaborative skills especially with silicon design, validation and board design engineers.
Outstanding written and verbal communication