About You
We are looking for enthusiastic and creative people with an interest in computers and an ability to write software. You may be about to earn a degree in computer science, software engineering, or similar, but we also welcome applications from students with relevant experience. Our teams include people who have studied physics, electrical engineering, biology, and more.
We have a very diverse set of development environments, so we do not have any specific requirements. However, we would ideally like to see candidates with some knowledge of C, C++, Rust, Java or Python. If you have played with Micro:bit, RaspberryPi, Arduino, Mbed boards or a model, these are also good introductions to embedded software. If you haven’t but you’d be interested, come and learn with us.
What Could You be Doing in this Role?
Within each team, you are given problems to work on that make use of your existing knowledge and skills, while also requiring you to learn something new (be that a new language, an internal codebase or a new API). You participate in different aspects of commercial and open-source software development, from product design and implementation to testing and support, with plenty of help on hand from our team as you learn.
Since we work with open- source communities, such as Linux and Android, our work is very collaborative, both inside and outside Arm. When a new architectural feature or new processors are developed, we contribute software that enables some new complex features or optimizations specific to Arm. You have a dedicated mentor to provide you with technical and practical help. We treat you like another engineer on the team with your own tasks on the project, having the chance to participate in knowledge sharing, having your ideas heard, solving problems independently, and being supported by the rest of the team. And hopefully, the opportunity to upstream your code.