Job Overview:
We are seeking a talented Android Developer with expertise in OS level customisation suitable for enterprise device. In this role, you will work collaboratively with cross-functional teams to design innovative features, ensure application performance and reliability, and write clean, maintainable code. Staying current with Android development trends, you will contribute to delivering exceptional user experiences
Key Responsibilities:
Design, build, and maintain Android custom OS ROMs for BCI enterprise devices
Collaborate with cross-functional teams to define, design, and ship new features.
Ensure high performance, quality, and responsiveness of applications.
Write clean, maintainable, and well-documented code.
Debug and resolve issues to improve application performance and reliability.
Stay up-to-date with the latest Android development trends and tools.
Participate in code reviews to maintain code quality and best practices as per BCI ISO 27001 and 9001 policies
Desired skills to make enterprise device
Linux System Administration & Command Line: High proficiency in Linux (typically Ubuntu) is required for managing build environments, using bash scripts, and compiling.
Version Control (Git & Repo): Ability to sync large codebases (AOSP/LineageOS) using git and Google's repo tool.
Programming Languages:
C/C++: Essential for HAL (Hardware Abstraction Layer) and kernel modifications.
Java: Necessary for modifying framework-level code.
Python: Often used in build scripts and automation.
AOSP Architecture Knowledge: Understanding the relationship between the Linux kernel, HAL, system libraries, and the Android framework.
Device Tree and Kernel Management: Ability to clone or write device-specific configurations (device trees, vendor blobs, kernel source) to map software to hardware.
Build System Knowledge (Android Build System): Using make, soong, and blueprint to compile source code, including handling build errors.
Debugging & Troubleshooting: Using adb (Android Debug Bridge), fastboot, and logcat to fix bootloops and hardware failures.
Over the air upgrades (OTA) provisioning
Device hardening
Hardware Knowledge: Understanding bootloaders, partitions, and custom recovery installation (e.g., TWRP).
Skills or knowledge or experience:
Proven experience in developing Android applications, with a focus on Kotlin.
Strong knowledge of Android SDK, Android Studio, and Jetpack libraries.
Familiarity with Java
Understanding of RESTful APIs, third-party libraries, and integration.
Experience with version control systems like Git.
Knowledge of MVVM/MVC architecture and dependency injection frameworks (e.g., Dagger, Hilt).
Excellent problem-solving and analytical skills.