Flock Safety · Jan 7th 2021
About the opportunity
Flock is looking to add an Android Framework Engineer to our device software team. Our device team is made up of scrappy engineers who are responsible for all of the code running on a variety of devices Flock deploys in the real world. They enable the whole experience by writing applications that reliably capture, process, and upload over 200M images per day for years at a time without needing human interaction to keep them running.
Some challenges you’ll tackle
Integrate and customize Android frameworks to Flock Safety’s custom hardware platforms
Work with the kernel team and device software teams to enable required functionality in Android-based devices (e.g. cameras, environmental sensors, power systems, etc.)
Optimize Android system services and frameworks to run in a headless environment
Develop, review, test, and debug Android APIs and system services
Ensure the stability and robustness of the system software from ideation through production and launch
Work with systems designed for ultimate redundancy and high availability
Balance performance with energy consumption - we’re a machine learning enabled media processing machine powered by the sun!
Integrate Android with other IoT devices to share data to help each other understand and respond to the environment
About You
Strong desire to understand the root cause of a problem and deliver a robust solution.
Development experience with embedded systems, especially headless and/or industrial/non-consumer devices
Experience bringing up devices and customizing BSPs for Android other embedded build systems such as Yocto or Buildroot
Experience developing for non-phone/tablet/watch Android Devices (preferred)
Strong knowledge of and experience with AOSP architecture and comprising projects
Extensive experience coding in C/C++ and Java, specific experience with Android Frameworks and System Java preferred
Extensive knowledge of Android fundamentals (ART, RIL, AIDL, Broadcast, Binder, Messenger, SystemServer, etc.). Specific experience with the Java/Frameworks side of these interfaces preferred
Experience in dealing with complex systems and codebases (AOSP, Android Makefile, Soong, HALs, etc)
Familiarity with Linux internals (process scheduler, memory management, concurrency, synchronization, memory allocation, file system, networking, storage, subsystem architecture)
Familiarity with Android system software, Android HALs and Driver Architecture
Experience working in a Linux development environment with GNU toolchain and standard project management tools (Git, Github, Gerrit, etc.)
Some knowledge of common peripheral bus technologies including SPI, I2C, UART with focus on how Android interacts with these types of peripherals