Staff Linux/Android GPU Driver Software Engineer
1st July 2019
This job has now expired please search on the home page to find live IT Jobs.
Are you looking for an exciting and meaningful role at the edge of technology? Are you motivated by learning new things and putting that knowledge into action?
Arm is seeking highly skilled and motivated engineers to join our Agile software development group. You will be part of a new team based in Manchester (UK), working closely with established multi-disciplined engineering teams across Arm's worldwide engineering centers. Contributing to the driver for the next generation Mali™ GPUs and the latest Linux and yet-to-be-published Android versions, you will help shape the technologies that the market will see in years to come.
What you will be involved with:
Developing multiple modules of our GPU driver, including memory management, GPU scheduling, instrumentation, window system management and power management; across kernel and user space. You will help shape the driver to bring cutting edge technology to the automotive industry, potentially bringing benefits to innumerable drivers and passengers. Contributing to different areas of the code base and participating in all phases of software development, this is a fantastic opportunity to broaden your knowledge and make use of a diverse set of skills.
You will cooperate closely with engineers working on other driver modules, modelling, HW design, emulation, verification, etc. You will see all phases of a complex development program.
We have an excellent track record of building up expertise in people, so this is a great opportunity to learn something new and interesting in a friendly and collaborative environment. Join a multinational, dynamic and highly motivated software development group where you will enjoy the support of your colleagues while being challenged by interesting technical problems. Do you like producing high quality, high performance SW and solving complex technical problems? - then we would love to hear from you.
Recent achievements of the team include:
Vulkan extensions to enable direct-to-display rendering.
EGL extensions to support virtual reality (VR), such as Google Daydream.
3D content recording and replaying framework to aid the development of our latest GPU's with flexible visualisation and post-processing abilities.
Complete redesign of the GPU HW interface to hit new degrees of performance in the most up-to-date content.
Support for upcoming version of Android with the latest Linux kernels.
Just-in-time memory allocation for Vulkan GPU jobs.
GPU scheduling algorithm optimizations.
Extend the intelligent power allocator (IPA) model to use hardware runtime metrics.
Day to day activities include:
Participating in the design, implementation and testing of new features.
Working closely with other software teams to interface driver components.
Writing high quality, low overhead code for user and kernel space parts of the driver stack.
Maintaining the existing codebase: fixing bugs and other quality assurance activities.
Reviewing other people's code.
Writing and maintaining documentation.
About GPU Engineering
GPU Engineering produces media processing hardware and software products for mobile, embedded and automotive industries. Our Mali™ Graphics Processor is the #1 shipping GPU. Now we are entering into a new growth phase to provide new technologies and products for new and existing markets and are looking for talented people to join the team.
In GPU Engineering you will work with the world's best companies, making world-leading products based on our IP alongside the best engineers in the world. We are a global team working across numerous sites and cultures. Your ideas will make a difference and you will have the opportunity to lead, challenge the status quo and ultimately change the world of media processing.
Skills & Experience required:
Expertise in C or C++ programming.
Deep understanding of computer architecture and embedded systems.
Experience developing software for Linux, Android, Tizen, QNX, or similar systems.
Proficiency in solution design, problem solving and debugging skills.
Experience with standard GNU/Linux tool chain, shells, source versioning systems such as GIT, scripting languages and build systems.
Practical, organized and analytical approach to work
Experience in the automotive industry.
Kernel development experience.
Experience of driver or HAL development.
Knowledge of the graphics stack on any major operating system.
Experience mentoring or leading one or more significant projects
Experience with customer interaction and interfacing
Arm is committed to global talent acquisition, offering an attractive relocation package.
At Arm, we are guided by our core beliefs that reflect our rare culture and guide our decisions, defining how we work together to defy ordinary and shape extraordinary:
We not I
Take daily responsibility to make the Global Arm community thrive.
No individual owns the right answer. Brilliance is collective.
Information is crucial, share it.
Realise that we win when we collaborate " and that everyone misses out when we don't.
Passion for progress
Our differences are our strength. Widen and mix up your network of connections.
Difficult things can take unexpected directions. Stick with it.
Make feedback positive and expansive, not negative and narrow.
The essence of progress is that it can't stop. Grow with it and own your own progress.
Be your brilliant self
Be quirky not egocentric.
Recognise the power in saying ‘I don't know'.
Make trust our default position.
Hold strong opinions lightly.
Arm has a responsibility to ensure that all employees are eligible to live and work in the UK.