About Imagine Worldwide
All children have immense potential, but hundreds of millions don’t have access to the learning they need. Imagine Worldwide believes that every child should be empowered with the basic right to literacy and numeracy. We provide an innovative education technology solution and implementation model to the global literacy/numeracy learning crisis using the onebillion application and various toolkits and systems to support implementation. Our model is massively scalable, evidence-based, and can deliver foundational learning to millions of the most marginalized children.
Imagine Worldwide partners with governments, organizations, and communities to provide child-directed, tablet-based learning that is accessible, effective, and affordable. We are incorporated in California (United States) as a nonprofit organization, but operate in Sub-Saharan Africa through locally-registered entities in Malawi, Sierra Leone, and Tanzania. Learn more on our website.
Role Overview
The Android Systems Engineer will play an instrumental role in carrying out Imagine’s mission, to design, test, and scale tablet-based learning solutions that enable children to become literate and numerate. They will join a highly committed and collaborative team working to empower every child, everywhere to achieve their full potential. They will work directly with the Head of Technology, Director of Product, software engineers, device manufacturers, and external technical partners to build, maintain, and improve the Android tablet platform that supports Imagine’s programmes. They will report into the Head of Technology.
Over the next six years, Imagine’s goal is to serve more than 10 million children in at least four countries, ultimately achieving three times the typical level of literacy and numeracy outcomes of national education systems in Africa. Building a reliable, secure, and maintainable Android device platform is key to achieving this goal while delivering the programme at less than $5 per child per year.
This is a systems engineering role with a primary focus on Android firmware, bootloader/BSP work, device configuration, and long-term device maintainability across tablet hardware variants. The role will also contribute to Android application development and diagnostics tooling where close integration with the device platform is required. A major near-term priority will be supporting component changes in Android tablets, including MediaTek-based devices, while preserving a safe and consistent software experience for existing and future deployments.
Key Responsibilities
Android Systems Design
- Collaborative Requirements Gathering: Engage with engineers, product managers, operations teams, contract manufacturers, Industrial Design Houses, and other stakeholders to understand device, programme, manufacturing, and support requirements.
- Platform Architecture: Design maintainable Android device software architectures that can support multiple tablet hardware variants while preserving a consistent user and operational experience.
- Hardware/Software Compatibility: 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.
- Technical Documentation: Create clear technical design documents outlining Android platform architecture, boot flow, device configuration, build process, flashing process, factory dependencies, and validation requirements.
- Risk Assessment & Mitigation: Identify technical risks in the tablet platform, supply chain, firmware dependencies, secure boot configuration, and update process, and develop practical mitigation plans.
- Security & Compliance: Integrate secure Android platform practices, including secure boot, verified boot, signing, device hardening, data protection, and responsible handling of keys and credentials.
Android Firmware, BSP & Bootloader Development:
- SoC Vendor Platform Engineering: 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.
- Component Integration: 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.
- Bootloader and Kernel Work: Modify, build, test, and document bootloader, kernel, device tree, vendor image, and related Android platform components.
- ROM Compatibility: 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.
- Vendor Collaboration: 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.
Android Application & Tooling Development
- Application Development: Contribute to Android application development in Kotlin and/or Java, especially where apps interact closely with device settings, diagnostics, provisioning, updates, storage, or networking
- User Experience Reliability: 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.
Implementation & Delivery
- Coding: Write readable, efficient, and well-documented code that aligns with technical designs and project standards.
- ROM Build & Release: Maintain Android ROM build processes, release artefacts, signing steps, versioning, and reproducible release documentation.
- Quality Assurance: 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.
- Continuous Integration: Integrate code regularly into shared repositories, ensuring compatibility and stability through automated build and deployment pipelines where appropriate.
- Debugging & Optimisation: 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.
Manufacturing, Deployment & Maintenance
- Factory Readiness: Define and document production flashing, device provisioning, hardware variant detection, factory testing, and quality control processes for Android tablets.
- OTA Safety: 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.
- Validation: Create validation plans and reports covering boot reliability, memory stability, thermal behaviour, storage, battery, networking, application reliability, and field-support scenarios.
- Bug Resolution: Monitor device and application performance, promptly diagnose issues, and implement effective fixes to maintain system stability.
- Security Patching: Apply security patches, update dependencies, and address vulnerabilities promptly to safeguard the platform.
- On-call Support: 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
- Any of the following would set a candidate apart:
- 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
Compensation & Benefits
Salary is competitive and commensurate with experience.
Location
The role is fully remote. The Android Systems Engineer is preferably based on the African continent with a preference for the countries that Imagine is already operating in. 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.