Graduate Software Engineer

  • arm
  • Austin, TX, USA
  • 17 Mar, 2024
Full time Software Engineering SCaLE21x

Job Description

We are searching for a Graduate Verification Tools Software Engineer to join the Raven Random Test Generator team at the Arm Austin Design Center. On our team, you will help develop our core product, Raven – a powerful dynamic random test generator written in C++ that has been used extensively by CPU design teams throughout the Arm ecosystem for more than a decade. You will work in close collaboration with senior CPU verification engineers both inside and outside of Arm to define and develop new ways of achieving their verification goals.

 

The Raven team is part of Arm’s Architecture & Technology Group – the part of Arm that develops architectural specifications and technologies needed to support Arm’s partners in successful development of processors conforming to the architecture. In addition to our product for CPU verification groups, we also collaborate early and frequently with Arm’s architects to help ensure that new architectures can be verified effectively.

 

Job Overview:

 

As a member of our team, your day-to-day work will consist primarily of software development in C++ and will rely heavily upon your knowledge of computer architecture concepts and ability to read and understand new architectural specifications. If you are looking for a role that combines hardware and software skills in an environment where you can make a significant contribution and collaborate with a hard-working team that builds innovative verification technologies and methodologies, we’re looking forward to hearing from you!

 

Responsibilities:

  • Work on development and deployment of Raven for A, R, and M-class cores
  • Design and implement new Raven features
  • Actively participate in feature discussions and help set direction of Raven development
  • Debug and fix issues reported by Raven users and internal QA
  • Coordinate and provide customer training, as needed

Required Skills and Experience:

  • Strong object-oriented programming skills, using modern C++
  • Good understanding of computer architecture fundamentals
  • Good written and verbal communication skills
  • Understanding of operating system internals and design
  • Experience with assembly language programming
  • Experience with a scripting language (e.g., Python)
  • Experience with software development on Linux
  • Exposure to pre-silicon verification, testbenches, modeling, or hardware design

“Nice To Have” Skills and Experience:

  • Some exposure to multiple architectures (preferably including Arm)

In Return:


Throughout the graduate position we’ll support you with continuous learning and development through a blend of on the job and formal training, mentoring and a knowledge network. Our program is crafted to give you the best start possible and support your personal growth as well as professional development.

Job Level

Entry Level