Overview
The Android Engineer will develop and maintain mobile applications targeted at multiple Android versions and devices while employing best practices for creating beautiful and performant apps. In addition, code should follow best practices for programming in a team environment with an emphasis on code clarity and maintainability. The engineer will interact with various product owners including internal departments and directly with external clients. The engineer may be asked to lead technical development on some projects, and follow technical lead on others. Remote work acceptable for US-based engineers.
Responsibilities
Build beautiful and performant Android apps
Write clean, readable, and maintainable code
Develop for a variety of Android devices from phones to TVs
Create pixel-perfect renditions of design comps
Work with legacy code as well as create greenfield code
Work with various data sources and APIs
Work on bug fixes, application performance and architectural tasks
Evaluate and implement new libraries, patterns and technologies to solve challenging problems
Peer review code for correctness, adherence to style norms, efficiency
Interact directly with product stake holders and collaborate with cross-functional teams
Skills and Experience
5+ years shipping Android apps
Proficient in Kotlin and Java
Expert understanding of threading/concurrency
Solid understanding of Dependency Injection, with experience using Dagger
Solid understanding of Reactive Programming with experience with RxJava and/or Kotlin Flow
Experienced in writing and maintaining Android apps with MVVM, MVP, MVI (pick 2)
Strong in the art of Git Fu
Experience working with small teams and interacting directly with stake holders
This Developer:
Keeps up with updates to the Android Framework
Values code simplicity over "cleverness"
Forms strong opinions on new libraries and programming paradigms before putting them in production code
Knows when to solicit opinions before they code, and when to demonstrate the solution first
Holds a strong opinion of their code, but will throw it away when a better solution is needed
Knows that they don’t know everything
Wants to teach as much as learn
Is comfortable in Agile or traditional workflows
To find out more about this job, please visit this link