Senior Graphics Software Engineer
Stamp your mark on the future of mobile graphics by researching techniques and helping improve the performance of games and other applications on billions of Arm-based devices. Gain a deep understanding of how to optimize for the most widely used compute solutions within mobile handset market. The mission of Arm is to accelerate the adoption of our technology and open new markets through close collaboration with our product and marketing groups.
About the role
We are looking for an inquisitive software engineer, passionate about Computer Graphics and video games, willing to explore the full software stack to learn more about the underlying hardware and processor architecture.
The team fulfils two key roles. The first one is the analysis of gaming and graphics workloads on modern smartphones, identifying performance bottlenecks and new and interesting graphics techniques. The results of these investigations help developers build better software and our GPU (Graphics Processing Units) teams design the next generation of graphics hardware. The other one is to perform extensive research into innovative mobile graphics techniques, such as ray tracing, looking for opportunities to push the state of the art forward.
The team develops primarily in C and C++, working with OpenGL-ES and Vulkan on Android platforms. There are also opportunities to look at other languages such as Rust or WebAssembly with WebGPU.
When hiring for this role, we will look for evidence that you can contribute positively to the work of this team. Any experience working at a low level with Arm processors or Mali GPUs, SIMD instruction sets, mobile performance and debug tools, or experience working with Unity, Unreal or other game engines would be looked on favourably.
Required skills, experience, and qualifications:
- Strong programming skills
- Experience in using a modern graphics API
- University degree in Computer Science, or equivalent
‘Nice To Have’ Skills and Experience :
- Arm Mali or other GPU architectures
- Game engines
- Rendering techniques and associated mathematics
- Mobile software and developer landscape
- Agile Scrum process
- Android or Linux internals