Junior Power Software Engineer
Our team is responsible for developing and improving the software eco-system around ARM's next generation of applications processors. This frequently means working with processors and other hardware technology not yet available to the general public. Work is carried out on a range of development platforms, software-models, FPGAs and early silicon, sometimes many months before the processors are used in real products.
You will join a team of motivated and professional Software Engineers who all share a passion for wanting to stamp their mark on the future of computing, wherever it may lead. You will help ARM maintain its leadership in the embedded market, as well as playing an essential role in making ARM a successful server platform. If you share a similar passion we want to hear from you!
This position offers a fantastic opportunity for you to join a successful, growing and highly motivated team who specialise in power management software. You will develop an awareness of the Linux kernel, build a reputation for yourself amongst the open source community, gain experience of software development processes, and influence the performance and battery life of hundreds of consumer devices within the next five years, improving millions of people's user experience, worldwide.
Responsibilities/ Key accountabilities:
- Analysing and subsequently improving or replacing existing frameworks in the Linux kernel to yield increased energy efficiency.
- Interacting with the upstream Linux community to submit patches and work towards their acceptance into the upstream kernel.
- Participating in the design, implementation and testing of new features based around the latest ARM technology such as big.LITTLE
- Working with the latest mobile computer software stacks to ensure the best user experience from the available hardware.
- Software development, test and debug on different platforms (from software models to development boards and shipping products)
Education & Qualifications
Good university degree (or equivalent), ideally in a numerate subject, although other graduates would be considered if they have relevant experience.
Essential Skills & Experience
- Good knowledge of modern operating system fundamentals
- Knowledge of the C programming language
- Good communication skills
- Ability to work well as part of a team
- Professional and enthusiastic approach to work
- Good problem solving skills
- Pro-active and self-motivating
- Willingness to be flexible and accept new challenges
Desirable Skills & Experience
- Expert knowledge of embedded C development
- Working knowledge of the Linux kernel, especially the scheduler and power/performance subsystems.
- Experience of Linux kernel development and/or low-level Android frameworks
- Open source software project contributions
- Good understanding of the issues around power and performance in embedded systems
- Awareness of issues that arise when programming multi-core platforms
- Knowledge of the ARM architecture and tools
- Experience with scripting languages, e.g. Bash, Python, Perl, etc.
- Understanding of how to rigorously test software and design software for test