Responsibilities
- Work across multiple platforms and application domains, from consumer or mobile to automotive or data centre, to understand how GPU software is deployed and executed on Imagination products.
- Develop the software architecture responsible for mapping multiple modern graphics and compute APIs from high‑level, user‑facing software to silicon deployment.
- Investigate and optimise end‑to‑end performance of various GPU software, including proposing and prototyping new features or techniques at the boundary between hardware and software.
- Work with product owners to understand and define the roadmap for APIs and their implementation across current and future hardware platforms.
- Maintain a holistic view of software architecture, informing and coordinating with Imagination teams working on specific areas of implementation.
- Work with customers in understanding their issues and steering the technical roadmap to help solve issues they face.
- Establish the technical standards and architectural software patterns that Imagination uses to develop and support multiple hardware generations and their graphics and compute APIs.
- Collaborate with the wider ecosystem: evaluating, developing and refining common standards, APIs and technologies to efficiently deliver high‑quality and performant graphics, AI and compute.
Qualifications
- A background of 5+ years in commercial software development in a graphics or GPGPU‑related field.
- In‑depth knowledge of at least one modern 3D graphics or compute API and its associated software ecosystems (e.g. Vulkan, DirectX, OpenCL, CUDA).
- Demonstrable technical expertise in the optimisation of software targeting such ecosystems (e.g. game engines, visual effects, computer vision, AI).
- Experience with GPU profiling or API tracing tools.
- Knowledge of how to write and optimise graphics shaders or compute kernels.
- Understanding of both the fixed‑function and programmable aspects of GPU architecture.
- Experience working directly with senior technical stakeholders and mapping their requirements and requests back into product roadmap items.
- Excellent problem‑solving abilities along with the ability to break down and solve problems and complex situations lacking existing solutions.
- Experience architecting software products spanning multiple development teams or working in a multidisciplinary environment.
Preferred Qualifications
- A solid understanding of computer architecture at both instruction level and system level, e.g. understanding memory and communication interfaces and how they impact software.
- Experience working closely with silicon architects and design engineers to improve platforms for software applications.
- Exposure to GPU drivers for Android, Linux and Windows operating systems.
- Experience interacting with open‑source communities and external ecosystems.
- Understanding of debug or performance analysis hardware in support of application development.
- Experience presenting at a technical conference or supporting external events and shows.
- Occasional willingness to travel, working onsite to support or train customers around the world.
- A breadth of software programming experience that spans multiple languages and development platforms.