Good Knowledge of developing Android apps with Android SDK, Kotlin, Java.
Solid understanding of Android architecture components like Livedata, ViewModel, Databinding etc.
Building reusable and adaptable UI components using Google Material design guidelines.
Local database management using Sql, RoomDB, RealMeDB for offline support.
Writing clean and highly efficient code using Clean architecture and design patterns like MVVM, MVP.
Reactive programming using RxJava, RxAndroid, RxKotlin
Experience with third party APIs and libraries for Image loading like Glide, Picasso. Networking libraries like retrofit, JSON parsing libraries like gson, moshi etc
Unit test code for usability and general reliability, robustness including edge cases.
Familiarity with testing frameworks like Junit, Mockito, Espresso.
Working knowledge of GIT version control and repository clients like github, gitlab, bitbucket.
Knowledge of Continuous Integration/deployment process and tools like Circle CI, Gitlab
Good understanding of Firebase and other analytical tools.
Exposure to project management tools like JIRA.
Documenting the application design decisions and core code implementation logic.
Providing constructive feedback on existing architecture to improve it.
Support for entire application lifecycle ie. concept, design, development, test, release and support.
Good debugging skills and tracing the root cause of the issues on production.
Continuously discover, evaluate and implement new technologies to optimise the application and overall development efficiencies.