Responsibilities
- Engage with engineers, product managers, operations teams, contract manufacturers, Industrial Design Houses, and other stakeholders to understand device, programme, manufacturing, and support requirements.
- Design maintainable Android device software architectures that can support multiple tablet hardware variants while preserving a consistent user and operational experience.
- Assess the impact of component changes, including DDR memory, storage, displays, touch panels, radios, batteries, and sensors, on Android firmware, kernel, applications, factory tools, and OTA updates.
- Create clear technical design documents outlining Android platform architecture, boot flow, device configuration, build process, flashing process, factory dependencies, and validation requirements.
- Identify technical risks in the tablet platform, supply chain, firmware dependencies, secure boot configuration, and update process, and develop practical mitigation plans.
- Integrate secure Android platform practices, including secure boot, verified boot, signing, device hardening, data protection, and responsible handling of keys and credentials.
- Work with SoC vendor (e.g. MediaTek) based Android tablet platforms, including vendor BSPs, bootloaders, preloader and early boot components, kernel configuration, device trees, and Android system images.
- Verify whether new hardware components can be supported by existing firmware and work with manufacturers or IDHs to update early boot, kernel, and Android configuration where needed.
- Modify, build, test, and document bootloader, kernel, device tree, vendor image, and related Android platform components.
- Develop practical approaches to support old and new tablet hardware variants through a single Android image, unified kernel/system image, variant detection, or a clearly documented alternative where a single image is not technically feasible.
- Work directly with contract manufacturers, IDHs, and component suppliers to obtain technical data, source drops, build instructions, signed binaries, and validation evidence needed to maintain the tablet platform.
- Contribute to Android application development in Kotlin and/or Java, especially where apps interact closely with device settings, diagnostics, provisioning, updates, storage, or networking.
- Improve device-level behaviour that affects the learning experience, including kiosk mode, app launch reliability, offline operation, data sync, storage management, power management, and recovery from faults.
- Write readable, efficient, and well-documented code that aligns with technical designs and project standards.
- Maintain Android ROM build processes, release artefacts, signing steps, versioning, and reproducible release documentation.
- Develop and execute unit tests, integration tests, automated device tests, hardware validation tests, and an appropriate level of manual testing to ensure reliability and performance.
- Integrate code regularly into shared repositories, ensuring compatibility and stability through automated build and deployment pipelines where appropriate.
- Identify, diagnose, and resolve bugs and performance issues across Android applications, system services, kernel, bootloader, and device configuration; optimise for reliability, speed, storage, battery life, and resource efficiency.
- Define and document production flashing, device provisioning, hardware variant detection, factory testing, and quality control processes for Android tablets.
- Ensure over-the-air update processes remain safe for devices already deployed in the field and for future hardware variants, including rollback and recovery planning.
- Create validation plans and reports covering boot reliability, memory stability, thermal behaviour, storage, battery, networking, application reliability, and field-support scenarios.
- Monitor device and application performance, promptly diagnose issues, and implement effective fixes to maintain system stability.
- Apply security patches, update dependencies, and address vulnerabilities promptly to safeguard the platform.
- When assigned to an on-call rota, diagnose and fix urgent issues outside of regular working hours.
Requirements
- A Bachelor’s degree or higher in a relevant field such as Computer Science, Electrical Engineering, Computer Engineering, Mathematics, or a related discipline is of advantage but not required.
- A minimum of 5 years working experience in Android systems, embedded Linux, firmware, or related software engineering roles is required.
- 5+ years of experience in Android systems engineering, embedded Linux engineering, firmware engineering, or related roles
- Hands-on experience with Android BSPs, Android Open Source Project concepts, vendor Android builds, bootloaders, Linux kernel configuration, and device trees
- Experience with MediaTek / MTK Android platforms, including early boot components, vendor BSPs, kernel/vendor images, flashing tools, and production image workflows
- Experience diagnosing hardware/software compatibility issues on Android devices, ideally including DDR/LPDDR memory changes or other significant component substitutions
- Experience developing Android applications or device-side tools in Kotlin and/or Java
- Comfort working across Android application code, platform configuration, system services, kernel, and bootloader boundaries
- Experience with secure boot, Android Verified Boot, signing processes, OTA updates, factory flashing, and safe rollback/recovery strategies
- Experience using UART logs, adb, fastboot, vendor flashing tools, crash logs, kernel logs, and device test tools to diagnose low-level issues
- Experience writing clear technical documentation for engineering, manufacturing, operations, and support audiences
Nice to Have
- Prior work with Chinese contract manufacturers, ODMs, or Industrial Design Houses
- Experience supporting Android devices deployed at large scale in low-connectivity or field environments
- Experience with kiosk mode, mobile device management, provisioning, offline-first Android applications, or educational technology deployments
- Knowledge of OpenWRT or other embedded Linux platforms
- Mandarin language skills
Work Arrangement
Remote (Worldwide) — Sub-Saharan Africa, Malawi, Sierra Leone, Tanzania
Team
Structure: The Android Systems Engineer will work directly with the Head of Technology, Director of Product, software engineers, device manufacturers, and external technical partners. They will report into the Head of Technology.
Additional Information
- Regional travel to field sites or manufacturers may be required at least once every year.
- Applications are reviewed on a rolling basis.
- Imagine Worldwide is proud to be an equal opportunity employer. All applicants will be considered for employment without attention to race, color, religion, sex, sexual orientation, gender identity, national origin, veteran or disability status.