Job ID #: 16558
Job Category: Software Engineering
Employment Type: Experienced Professionals
Division: Architecture & Technology
Department: Architecture & Technology – Engineering
Primary Country: UK
Primary Location: Cambridge
Software Engineer – Architecture & Technology to work at Arm’s Headquarters in Cambridge
This is an excellent opportunity for a software engineer to contribute to the development of machine generated functional models of the Arm architecture. These CPU and System models are built using a toolchain (compiler, interpreter and static analyzers etc.) for a domain specific language and other tools to pre-process data in different formats. If you want to work on an impactful technology, generate these models and collaborating with many engineers across Arm, this can be ideal for you.
The Architecture Information Technology Group (AIG) is part of the Architecture Technology Engineering Group, which is a growing team involved in new exciting challenges. You will help changing the way how computer architecture is going to be developed and shared with partners.
Through your involvement in this team, you are interacting with and influencing many parts of Arm. You will build high-quality, creative and fully performing software, that aligns with well-defined coding standards and technical design.
You and your team work closely with other engineering managers, technical writers and Arm architects (both hardware and software) to understand and document Arm architecture.
Our software engineers work in a flexible, supportive, and collaborative environment. Their skills are highly valued, and extensive education, on-the-job training, and mentoring are provided to support their growth and career progression.
What will I be accountable for?
- Contribute to toolchain (compiler, static analyzers, interpreter etc.) around domain specific language.
- Contribute to design of domain specific language.
- Contribute to development of architecture specifications and functional models including debugging with unit and compliance tests.
- You would be responsible for building and testing high quality tools and releasing them to other teams in Arm
- Understanding and prioritizing key requirements from partners.
- Designing, developing and testing software solutions, to a high level of quality.
- Ensuring good use of machine-readable specifications in this process to promote reuse, efficiency and design.
What skills, experience, and qualifications do I need?
- Bachelors (BS) or Masters (MS) in Computer Science, Computer Engineering or equivalent.
- You have strong skills in multiple high level programming languages – Ideally C/C++, Python and/or Scala.
- Strong grasp of algorithms, data structures and compilers.
- Your experience is extensive in all parts of the software development cycle to ensure good design, continuous integration and quality.
- You are dedicated and self-motivated
- You clearly communicate solutions for complicated technical problems to both the team members, as well as customers. Excellent language skills in English orally and written are mandatory
- You put your partners and customers first in all that you do by understanding their needs and striving to achieve mutually beneficial solutions.
- Arm Architecture or Computer architecture in general
- You have experience with designing domain specific languages.
- You understand the purpose and structure of compilers. awareness of techniques in compiler optimization and code generation.