A software engineering position working in a small team on our cutting-edge ray tracing technology. Responsibilities will include design and implementation of drivers to expose our unique ray-tracing hardware, working alongside other software teams implementing the full driver stack for PowerVR graphics hardware. The role will include liaison with other teams within the company to ensure hardware designs meets specification requirements, and will also involve interaction with the external technical community that drives forward graphics technology. This will bring you into contact with current and future generations of 3D hardware targeted at mobile and embedded devices.
As part of the ray tracing graphics driver team you will be working on the cutting edge of Vulkan and GLES driver software for our unique ray tracing technology, as well as influencing the design of graphics hardware which will be seen in millions of future devices. This team will be focusing on specification and implementation of drivers to allow our hardware to expose hybrid rasterisation and ray tracing technology.
This role involves writing ray tracing drivers for current and next generation low power graphics cores, as well as influencing future hardware design. The team works to support major device manufacturers and OS vendors to produce cutting edge graphics for the low power market.
Working as a part of a team, you will have some or all of the following responsibilities:
Design and develop ray tracing graphics drivers for our current and next generation graphics cores.
Hardware and software performance analysis and optimisation of drivers to get the most out of our graphics cores.
Interaction with simulation, research and hardware design teams to improve our next generation graphics cores.
Support customers and their partners in bringing new products to market.
To help maintain architectural and functional documentation.
Excellent software design skills
Excellent C/C++ programming skills
Experience of working with a large codebase
Experience in low-level driver development for Linux or Windows
Experience with modern, advanced OpenGL or OpenGL ES, and GLSL
An understanding of operating systems and computer architectures (virtual memory, MMUs, caches, scheduling etc.)
Knowledge of the principles of ray tracing would be very desirable.
A broad understanding of 3D graphics and its APIs.
Knowledge of 3D graphics shader compilers.
Experience with user-mode or kernel driver development for Android or Linux.
Experience working with hardware development platforms and pre-silicon environments.
Knowledge of the Vulkan 3D API.
Use of modern Linux development tools, compilers and debuggers.
Good problem solving skills
Good design skills
Tenacity, hard working and a motivated self-starter
Able to communicate effectively and work well in a team
Able to understand and communicate complex ideas
Willingness to learn and work with existing codebases
Relatively informal, non-hierarchical environment. Small but growing team, all well-educated, dedicated and technically competent and many long serving. The working environment is both relaxed and fast moving, the latter necessary to operate in the current international consumer electronics market.
Minimum of a Bachelor's Degree in Engineering, Computing or related subject.