About the role
We are looking for a highly skilled Embedded Software Engineer focused on power and Performance for Android mobile. In this role, you will optimise system-level efficiency, maximise peak performance, and reduce power consumption on next-generation mobile platforms. You will work deep within the Linux kernel and Android userspace to identify bottlenecks and implement critical improvements.
Responsibilities:
- Kernel and Driver Development: Design, develop, and maintain Linux Kernel code and Device Drivers using C and C++.
- System Optimisation: Analyse and improve system performance, including Clock handling, Scheduler tuning, and memory optimisation.
- Power Management: Implement and validate low-power modes, DVFS, and CPU driver configurations to extend battery life.
- Performance Analysis: Conduct deep-dive analysis of mobile workloads using profiling tools like ftrace, perfetto, atrace, and perf.
- Root Cause Analysis: Identify and resolve system-level issues related to power consumption, latency, and stability across hardware-software boundaries.
Requirements:
- Core Languages: Strong proficiency in C and C++ for low-level development.
- Linux Internals: In-depth experience with the Linux Kernel, including Interrupt handling, Scheduler, and Device Driver models.
- Android Domains: Hands-on experience in one or more areas: Power analysis, Performance improvement, or Memory management.
- Debugging Tools: Proven ability to use ftrace, stack traces, or similar kernel/system-level tracing tools.
- Technical Knowledge: Understanding of low-power modes, CPU drivers, and Android userspace architecture.
Optional / Desired Skills:
- Familiarity with the AOSP (Android Open Source Project) build environment.
- Experience with Java for Android framework or application layer interactions.
- Exposure to ARM-based architectures (ARMv8/ARMv9) and Qualcomm or similar chipsets.