Graphics SW Engineer (Low Level)
4 days ago
Hemel Hempstead
As an Graphics (Android) Engineer you will: • 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 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), • 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, • A proven track record in real time embedded software development - preferably for mobile devices – with a good understanding of the latest development environments, • 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 designing and implementing GPU shader algorithms (in GLSL, HLSL or equivalent), • Experience developing system software for Android OS, • Experience working on GPU Drivers, • Experience designing and implementing image processing algorithms, • Experience working with ARM 64-bit architecture, • Familiarity with CPU/NPU hardware architectures, • Experience with Java and/or Python development, • Familiarity with ML and neural networks