We are searching for a dedicated Verification/Software Engineer to join the Raven Random Test Generator team at the Arm Austin Design Center. As an engineer on our team, you will help develop and deploy 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 collaborate closely with senior CPU verification engineers both inside and outside Arm to understand their verification challenges and develop new ways of achieving their verification goals.
Your day-to-day work will consist primarily of developing our C++ verification technology and working directly with Raven users and verification teams to solve complex verification problems. This work relies heavily on a strong understanding of computer architecture and the ability to read, understand, and apply new architectural specifications.
If you are looking for a role that combines hardware and software skills, provides opportunities to work on challenging CPU verification problems, and allows you to make meaningful contributions to groundbreaking verification technologies and methodologies, we look forward to hearing from you.
Responsibilities- Collaborate across the team to develop, document, test, and deploy Raven.
- Design and implement innovative Raven functionality to enable verification of architectural and microarchitectural features.
- Design and develop Raven test templates that exercise and stress architectural and microarchitectural features of Arm CPU designs.
- Investigate, debug, and resolve issues reported by Raven users and internal QA.
- Work directly with CPU verification engineers to understand verification challenges and develop effective solutions.
- Use AI responsibly to accelerate engineering work, while leading the resulting changes. Engineers are expected to understand and be able to reason about the code they contribute, and to ensure that all changes are correct, maintainable, and consistent with the team's software architecture and design philosophy.
Minimum Qualifications- Professional software development experience in C++, with experience in Python or other scripting languages.
- Bachelor's degree in Computer Science, Computer Engineering, Electrical Engineering, or a related field.
- Strong software engineering skills, including knowledge of modern object-oriented programming, data structures, and algorithms.
- Experience with assembly-language programming and a strong understanding of computer architecture fundamentals, including concepts such as caches, TLBs, and processor pipelines.
- Strong written and verbal communication skills.
Preferred Qualifications- Professional experience with microprocessor architecture, CPU verification, random test generation, or other complex software systems.
- Master's degree in Computer Science, Computer Engineering, Electrical Engineering, or a related field.
- Advanced CPU microarchitecture knowledge, including areas such as out-of-order execution, register renaming, and instruction scheduling.
- Familiarity with Arm architectures and assembly languages.
- Experience with CPU design or verification environments.
- Experience collaborating across organizational and geographic boundaries.
- Familiarity with Verilog HDL and hardware simulation environments.
Hybrid Working at Arm:Arm's hybrid approach to working is centered around flexibility, where we split our time between the office and other locations to get our work done. Within that framework, we empower groups and teams to determine their own particular hybrid working pattern, depending on the work and the team's needs. Details of what this means for each role will be shared upon application. In some cases, the flexibility we can offer is limited by local legal, regulatory, tax, or other considerations, and where this is the case, we will collaborate with you to find the best solution. Please talk to us to find out more about what this could look like for you.
Salary Range: $130,100-$176,000 per year
We value people as individuals and our dedication is to reward people competitively and equitably for the work they do and the skills and experience they bring to Arm. Salary is only one component of Arm's offering. The total reward package will be shared with candidates during the recruitment and selection process.