Embedded Linux Engineer, Kernel Developer, Android Open Source Project, Yocto
ARM Linux Kernel engineers are expected to support all aspects of product engineering within the team and take the lead on developing and maintaining the Linux kernel components.
The responsibilities of ARM Linux Kernel engineers include:
Product software development
- Linux kernel porting, patching and maintenance across a range of ARM-based SoCs
- Android porting and updates; porting new Android releases to our hardware platform
- Linux kernel driver development, to interface both with our own FPGA designs and 3rd party components integrated into our hardware
- Helping to maintain embedded development environments and board support packages (Yocto and AOSP-based)
- Software development and support for chassis management microcontrollers
- Working with the hardware and firmware teams to define hardware and software interfaces and to support the set-to-work and integration of new hardware platforms
- Contributing to the scoping and design of software and hardware, supporting planning and estimating, including responsibility for estimating individual development tasks
Integration, test and sustainment
- Performing the integration and test of Linux kernel components with other Garrison hardware, firmware and software components
- Developing continuous integration and test capability for the Linux kernel elements of our solution and integrating this with our solution-level CI and test systems.
- Identifying and investigating defects in the system, whether found internally or by clients, and developing bug fixes and corresponding enhancements to the product Engineering improvement
- Improving code maintainability and supportability for example through ongoing code refactoring, code peer-review, unit test development and provision of stable APIs
- Developing automation for common engineering tasks, including testing, environment provisioning and build and release management to improve development efficiency
In addition to the specific software engineering responsibilities above, all members of staff are expected to contribute to the wider business where possible. By way of example, this could include providing technical support to customer trials, helping to write customer-facing documentation or building and setting up demonstration systems.
There is also the opportunity for ARM Linux kernel engineers to get involved in wider software, firmware and hardware development tasks if desired. This is, however, not a requirement for the role and the successful candidate could be entirely focused on Linux kernel development.
1st or 2.1 Degree in a relevant Engineering, Maths or Science subject or equivalent professional experienc
Minimum 2 years development experience in
- C and C++ low-level software development
- Linux kernel development, porting, support and maintenance
- AOSP; Android porting to new hardware
- Embedded systems development and the Yocto build system o Porting and maintaining board support software for custom hardware o Working in a product engineering environment
- Enjoys technical challenges
- Results driven
- Ability to cope when thrown in at the deep end
- Needs to be able to communicate well, verbally and in writing
- Team player with the ability to collaborate effectively
- Flexible and adaptable