Position: Android OS Engineer
Company: Waverley Software
Experience required: 5y
English level: intermediate

Since this is a remote position, good communications and the willingness to work as a team are important.  We are not looking for a rock star, but we believe that anyone can be a rockstar if given the chance. 

Responsibilities:
The project will have a broad set of initiatives and these are the types of projects you will be working on.  Though we are not looking for a full-stack engineer, there are opportunities to do work up and down the stack. So you won’t be stuck in one area and you will be able to move around.
- Android OS and Linux OS based device management.  Opportunities to learn some key drivers and a surface-level enough to get key information and to deliver the info to a host server.  From driver/RIL to OS to app services to cloud.
- Solving hard problems at the module levels of USB, telephony, wifi, Bluetooth, etc.
- Distributive OS automation.
- System tools for memory profiling, power management, memory leaks, etc.
- We’re starting to use Raspberry PI’s quite a bit for the work we’re doing.

Requirements: 
- Android programming concepts such as services, async tasks, fragments, threads, activities, AIDL, JNI.
- Experience with the AOSP build system or complex builds.
- Must be able to work on devices and comfortable with HW, complex build systems.
- Solid computer science concepts:  threads, processes, memory usage, OS, mutex/semaphores.
- C/C++, Java
- Ability to navigate large amounts of code.
- Be able to implement a simple new app from scratch with a few hours and do some basic prototyping. We are not looking for experts here, but a Hello World app should only take 15 minutes to set up and doing something interesting within 8 hours.

Nice to have:
- Basic to medium level scripting on Python, Javascript, Bash.  Need the ability to learn more to get the job done.