Staff CPU Validation Software Engineer
Are you a skilled software developer, who are interested in CPU micro architecture and debugging of both software and hardware? Then we might have the perfect role for you. The CPU team in Cambridge has produced some of the company's most successful products with processors designed by this group being shipped in billions of designs in use around the world today. This team has been responsible for developing processors from high-end A-class parts such as the Cortex-A53, one of ARM's first 64 bit processors, through to microcontrollers in the M-class series such as the Cortex-M0+.
We are looking to enhance our verification capability within the Cambridge CPU group by recruiting outstanding candidates with strong hardware and software technical skills.
A good grounding in a software perspective of the ARM Architecture can be obtained from ARM Infocenter with registration at Registration.
For this role we are looking for engineers who are comfortable with both software and hardware in order to run operating systems and associated test payloads on ARM IP products in development. The purpose is to validate that their design matches specification.
The suitable candidate will ideally need to be able to bring up and test payloads, and debug failing cases to identify whether or not there are software and/or hardware issues. If you are looking to work in a growing, exciting and fast paced environment, if you are self-driven professional and like problem solving and you enjoy working with multi sites team then this is the role for you!
You should have achieved at least a 2.1 degree (or equivalent) in Electronic Engineering, Computer Science or other related subject. Other subjects will be considered with relevant experience
Essential Skills and Experience
- Experience of developing and debugging low level software at the architectural level
- Good knowledge of CPU architecture concepts such as caches, MMU, SMP, coherency
- Very good knowledge of C and assembly language programming
- Good knowledge of OS internals preferably Linux
Desirable Skills and Experience
- Knowledge of micro-processor micro-architectural features and implementations
- Experience of working with hardware emulators and using trace and waveforms for debugging
- Experience of validating hardware systems using OS-based software tests
- Experience with scripting language, e.g. Perl, Python or TCL, in the context of medium to large projects
- Automatic test harness development based around embedded processor architectures
- Desire to push the boundaries of validation and to explore the interface between HW and SW
What are the desired behaviors for this role?
At ARM, we are proud to have a set of behaviors that reflect our unique culture and guide our decisions, defining how we work together to defy ordinary and shape extraordinary. These behaviors are assessed as part of the recruitment process:
Delivery of results - You demonstrate a can-do attitude and you drive to overcome obstacles, acting with a sense of urgency because you're passionate about what you do.
Partner / customer focus - Your tendency to put your partners and customers first in all that you do by understanding their needs and striving to achieve win-win solutions.
Creativity / innovation - Possessing curiosity and a passion for driving continuous improvement through spotting opportunities and seeking the views of others.
Collaboration / communication - Your ability to forge lasting relationships which are built upon mutual trust, open communication and sharing of information and success.
Personal impact / influence - You listen to different perspectives, evaluate, persuade and carefully shape your work to deliver truly impactful results.
Team / personal development - You take time to drive your own development, while also encouraging team members and partners to do the same.
ARM is committed to global talent acquisition, offering an attractive relocation package.