Senior Systems Software Engineer
Cambridge, United Kingdom
About the role
We are looking for a Systems Software Engineer with experience of the design and implementation of low-level systems software with knowledge of security issues at this level of the stack. You should be comfortable close-to-the-metal and have a good understanding of the hardware/software interface. In particular, you should be familiar with the impact of architecture and microarchitecture on your software (and, in turn, the impact of your software on components higher in the system stack). You should have real-world experience of systems programming (such as firmware, kernel or device driver development) and, ideally, have experience building related tools and infrastructure.
In this role you will contribute to research into security on novel architectures and next generation computing systems, and design, implement and support prototypes, tools, and infrastructure.
What will I be accountable for?
What skills experience & qualifications do I need?
- Bachelor degree or better in Computer Science, Computer Engineering, or related area, or equivalent experience.
- Essential Skills & Experience
- You should have demonstrable experience in designing and implementing low-level systems code.
- Excellent C/C++ knowledge
- An active interest in and awareness of security issues and security implications of common software patterns
- Experience with at least one assembly language, preferably ARM
- Excellent debugging & problem solving skills
- Excellent software engineering skills including working with version control, code review, continuous integration, bug trackers, and related tools
- Excellent communication and inter-personal skills
Desirable Skills & Experience
- Knowledge of architectural, micro-architectural and system on chip concepts such as cache hierarchies, hardware debuggers, etc
- Familiarity with the ARM architecture and instruction sets
- An interest in programming languages and their effect on security and safety
- Experience interacting with open source projects such as the Linux kernel, u-boot, LLVM, etc
- Familiarity with working in a research environment
What are the desired behaviours 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