Job Description
We need talented engineers with a strong low-level graphics and GPU development background on the Android platform, ideally with experience of working in the consumer electronics industry.
The successful candidate will contribute to new, high-performance graphics solutions, integrate our solutions with new hardware platforms, optimise the Android OS graphics stack, benchmark our systems against competitors, work with 3rd party software developers and generally ensure that we have the best possible graphics experience on the market.
Role and Responsibilities
* Develop innovations to optimise real-time rendering pipelines and deliver class-leading performance
* Implement standard features and extensions for the Android Graphics stack (SurfaceFlinger, SKIA, HWUI, etc.)
* Analyse different graphics workloads, identify bottlenecks and optimise for performance and power usage
* Develop optimal middleware libraries based on graphics and compute APIs (such as Vulkan & OpenGL ES)
* Bring-up and evaluate new devices, working with other teams to define and implement new UX requirements
* Have technical responsibility for one or more significant sections of an assigned project
* Translate complex functional and technical requirements into detailed design and implementation
Skills and Qualifications
Required Skills
* A degree in Computer Science, Electronics, Natural Science, Mathematics, Engineering or any related discipline (an equivalent period of industrial experience may be substituted)
* A proven track record in real time embedded software development - preferably for mobile devices – with a good understanding of the latest development environments
* Expertise in computer graphics with experience in the design and development of middleware based on Vulkan (preferred), OpenGL ES, OpenGL or DirectX
* Understanding of computer graphics pipelines and modern mobile GPU architectures
* Expert proficiency in C and C++ programming languages
* System level performance analysis and strong OS fundamentals (memory management, multithreading/synchronization, user/kernel mode interaction)
* Excellent communication and team work skills, with a results-oriented attitude
* Proficiency in problem solving and debugging
Desirable Skills
* Experience of SKIA graphics library
* Experience working on GPU Drivers
* Experience designing and implementing GPU shader algorithms (in glsl, hlsl or equivalent)
* Experience developing system software for Android OS
* Experience designing and implementing image processing algorithms
* Experience working with ARM 64-bit architecture
* Familiarity with CPU/NPU hardware architectures
* Java and/or Python development experience