Job Summary
The embedded system Software Engineer is responsible for system level software design and development across Linux and Android platforms, with a primary focus on Android BSP, Linux system services, native frameworks, and hardware adaptation for wireless and IoT products.
This role drives end to end system software integration, spanning Android Framework, native services, HAL, Linux user space services, kernel interfaces, and hardware abstraction layers, and plays a key role in enabling productization of embedded and intelligent devices on Android and Linux platforms.
In addition, the role requires hands on experience with MCU based cellular module software development, including RTOS based systems, peripheral integration, and modem interaction, supporting a broad portfolio of IoT, industrial, automotive, and intelligent terminal products.
Objectives & Responsibilities
- Design, develop, and maintain system level software on Android and Linux platforms, including native services, system services, framework extensions, platform middleware, and long term lifecycle support.
- Lead Android BSP and Linux BSP development, covering board bring up, platform adaptation, system configuration, and sustained maintenance across multiple product generations.
- Develop and integrate hardware adaptation layers, including HAL, driver interfaces, and platform abstraction, enabling stable and efficient interaction between system software and underlying hardware.
- Drive MCU based cellular module software development, including RTOS based applications, middleware, peripheral drivers, power management, and interaction with cellular modems and host systems.
- Support system bring up, performance optimization, and productization, collaborating closely with hardware, RF, AI, test, and manufacturing teams across EVT/DVT/PVT and mass production, while delivering clear system and BSP documentation.
Requirements & Qualifications
- Bachelor’s degree or above in Computer Science, Software Engineering, Communications, Electronic Engineering, Automation, or related fields.
- Strong experience in Linux system software development and Android platform internals, with solid understanding of Android Framework architecture and native system components.
- Hands on experience with Android Native Service development, familiar with Binder, AIDL, HIDL, JNI, system services, and related mechanisms.
- Proven experience in Android BSP and/or Linux BSP development, including board bring up, platform porting, and system integration.
- Experience developing Linux user space services, native daemons, and system components, supporting system level integration of hardware capabilities.
- MCU based software development experience for embedded or cellular modules, including RTOS based systems, peripheral drivers, and low power design.
- Solid understanding of hardware–software interaction, including sensors, peripherals, and platform interfaces in Android and Linux environments.
- Experience with system performance profiling and optimization, including analysis of latency, throughput, power, memory, and stability.
- Proficiency in C/C++, with strong competence in Java; experience with scripting languages (e.g., Python, Shell) is an advantage.
- Good English reading and writing skills, capable of reading technical documentation and participating in cross site collaboration.
Preferred Qualifications
- Experience deploying or optimizing AI / ML workloads (including LLMs) on Android, Linux, or embedded platforms, especially on edge devices.
- Background in smart devices, IoT, automotive Android, industrial Linux systems, or embedded products.
- Familiarity with Kotlin, Android platform evolution, VINTF, and system compatibility mechanisms.
- Experience with heterogeneous computing frameworks or AI acceleration middleware.
- Prior exposure to carrier, module, or wireless product environments is a strong plus.