13/02/2016
Android System Engineer (Storage Framework):
· Strong experience in C/C++/Java programming language
· Good understanding of android architecture. Knowledge of Android boot up process starting from bootloader, kernel and root file system is preferred.
· Developing and integrating embedded Linux systems. Experience in OS internals (Linux), real time / embedded aspects.
· Experience with Android NDK and SDK is required.
· Strong debugging and analysis skills required.
· Should be familiar with one or more scripting languages.
· Experience with Linux kernel and device drivers. Knowledge of pre-emptive multitasking environments and CPU configurations, bootloaders, debuggers, and memory management in an embedded space.
· Git, gerrit, repo, or other distributed software version control systems
· Experience in the Development of Android apps using native SDK.
· Experience with storage drivers, threading, and performance tuning
· Good understanding of the complete flow from Application layer to kernel layer. Understanding of Android HALs and lower userspace layers.
I/O diver engineer:
· Strong experience in C programming language
· Good understanding of interfaces to the kernel layer above and eMMC / SD interface drivers
· A strong understanding of Linux driver development, preferably on android.
· Understanding of Linux block IO subsystem, storage drivers (MMC/SD/NAND/NOR), ext4/vfat/f2fs file systems.
· Popular IO bus protocols on mobile device, and corresponding Linux driver stacks (MMC/EMMC/SPI/SDIO/USB).
· Android/Linux power management infrastructures (wakelock, runtime-PM, standby), power tuning experiences.
· A thorough understanding of computer architecture issues (virtual memory, MMUs, caches etc.)
· Developing and integrating embedded Linux systems. Experience in OS internals (Linux), real time / embedded aspects.