Staff Software Engineer - C++ functional models


Cambridge, England, UK

full time

13 Jan 2020


Want to use your C++ skills creatively in an exciting, dynamic company?

Arm is looking for highly skilled and motivated engineers to join us, modelling Arm’s next generation architectures and devices. We create C++ software models of leading edge Arm technologies that will power future systems in markets such as machine learning, high performance computing, mobile and the Internet of Things (IoT). You will have to opportunity to provide technical leadership to other members of the team. As one of the first consumers of new architectures, you will influence the success of an industry and develop tools that are vital to many of Arm’s development flows and those of our customers.

Job Purpose

You will build highly efficient C++ models and platforms, as well as working with other Arm teams to design systems to allow our Fast Models product to be used within their workflows. As a senior team member, you will be expected to develop into a leadership role for an aspect of the project.

Please note that we are currently hiring multiple software engineers into this group.

Key objectives of this role include:

  • To take a lead role in developing, testing, and maintaining high speed software models for Arm’s advanced CPU and system level IP
  • Technically support other specialists and users of your models
  • Be responsible for producing and executing model development plans for your area of responsibility, in conjunction with project management and engineering peers
  • Build Virtual Platforms that can be used for early software development
  • Collaborate with other engineering, architecture and research groups to advance the Arm-based ecosystem
  • Contribute to the continuous improvement of Arm modelling methodologies

Arm® technology is at the heart of a computing and connectivity revolution that is transforming the way people live and businesses operate. From the unmissable to the invisible; our advanced, energy-efficient processor designs are enabling the intelligence in 86 billion silicon chips and securely powering products from the sensor to the smartphone to the supercomputer. With more than 1,000 technology partners including the world’s most famous business and consumer brands, we are driving Arm innovation into all areas compute is happening inside the chip, the network and the cloud.

With offices around the world, Arm is a dynamic community of dedicated, creative and highly talented engineers. By enabling an inclusive, meritocratic and open workplace where all our people can grow and succeed, we support our people to share their unique contributions to Arm's success in the global marketplace.

Job Requirements

Essential skills:

  • Excellent C++ skills
  • Strong Software Engineering experience, including requirements analysis, design, implementation, performance analysis and debugging
  • Excellent interpersonal and communication skills
  • Enthusiastic and self-motivating
  • Flair for lateral thinking and problem solving
  • Willingness to be flexible and accept new challenges

Skills to make you stand out from the crowd:

  • Detailed understanding of CPU architecture, familiarity with one or more CPU instruction sets, knowledge of ABIs (particularly Arm and x86_64)
  • Experience providing leadership to a team, taking a product/feature from concept to customer
  • Experience with 'modern C++' (C++11/14) or Python
  • Experience of cross-platform development for Linux and Windows
  • Knowledge of modelling technologies, such as SystemC or gem5
  • Specialist knowledge of machine learning technologies

Education & Qualifications

  • Good university degree in computer science or equivalent experience

For more jobs like this subscribe to the weekly newsletter or follow C++ JOBS on Facebook, Linkedin and Twitter for frequent social updates.