Fantastic Opportunity for a Principal Software Engineer to work in the Architecture & Technology Group at Arm's Headquarters in Cambridge
This is an opportunity for an experienced engineer to lead a team and contribute to the core development and publication environment for the Arm architecture which is used in billions of Arm CPUs!
We are looking to evolve how we develop, validate, and publish architecture to improve correctness, quality, efficiency in production and enablement of the ecosystem, as well as downstream teams. If you want to work across engineering teams to provide engineering solutions that multiply to enable others, then this can be ideal for you!
You will provide technical leadership for the Infrastructure Tooling team inside the Architecture Information Group (AIG) in respect of the tooling environment that supports architecture development and be responsible for enabling the generation of the Arm Architecture. We are a diverse mix of software engineers and technical writers, and a growing team, who support the development of architecture within the Architecture Technology Group (ATG).
Through your involvement in this team, you are interacting with and influencing many parts of Arm. We work closely with architecture product owners, technical leads, engineering teams and technical writers to understand, develop, document, and publish Arm architecture. You will build high-quality, creative, and fully performing software, that aligns with well-defined coding standards and technical design.
This role will suit someone who is a pro-active problem solver with a strong commitment to quality in a high-performance dynamic environment and has a forward-looking vision on the deployment of architecture specifications.
What I will be accountable for:
- Owning the roadmaps and the tooling for both development and publication environments, to support development of machine readable and authored specifications.
- Engaging across a wide range of partners both inside and outside the group to understand, define and prioritise requirements, build a development roadmap and enable the ecosystem.
- Providing technical direction, guiding, and making the technical decisions for design, methodology and quality. This means that you must have very good leadership skills to technically lead capable engineers.
- Proposing new software solutions and strategies to solve problems, develop capabilities and add value to the architecture development environment.
- Driving continual improvements to the efficiency and flexibility of the platform while keeping a high bar for performance, reliability, and availability.
- Defining, developing, testing, and releasing software solutions, to a high level of quality.
- The role may require some line management responsibilities.
What skills, experience, and qualifications do I need?
- A successful candidate will be flexible, with a variety of skills and a commitment to extend the breadth and depth of their knowledge.
- Bachelors (BS) or Masters (MS) in Computer Science, Computer Engineering or equivalent.
- Demonstrable experience in technical leadership through product ownership and/or leading a team
- Extensive experience in all parts of the software development cycle including creation and management of software requirements, release/delivery, and maintenance/support.
- Strong skills in multiple high-level programming languages – Ideally C/C++, Python.
- Proven track record in delivering software (or software solutions) to customers that meet their given need.
- Experience with modern practices and processes for software development, testing, and delivery.
- Experience with configuration management tools, for example git etc.
- Ability to clearly communicate solutions for complicated technical problems to both team member and customers/partners. Excellent language skills in English orally and written, and strong presentation skills are important.
- You are dedicated and self-motivated, and have a strong interest in taking solutions forward
- You put your partners and customers first in all that you do by understanding their needs and striving to achieve mutually beneficial solutions.
- Experience in software tooling product development
- Experience with review management tools, for example Gerrit etc.
- Experience in documentation generation and/or publishing
- Exposure to Arm Architecture or computer architecture in general
- Experience in leading business change and operational support
- Prior experience in a Continuous Integration (CI)/Delivery (CD) environment or DevOps/Infrastructure position