Position: Android Developer
Company: Smart Solutions
Category: Android
Experience required: 2y
English level: intermediate

Geniusto is a digital First Fintech Company.

Our next-generation Banking and Fintech solutions take financial institutions to the next level, empowering customers digitally across the globe to carry out their transactions securely with ease and speed.

Job Description:   
The successful candidate will be responsible for the development and maintenance of applications aimed at a vast number of diverse Android devices. The successful candidate’s primary focus will be the development of Android applications and their integration with back-end services.  The candidate will be working alongside other engineers and developers working on different layers of the infrastructure. Therefore, commitment to collaborative problem solving, sophisticated design, and creating quality products is essential. 

Responsibilities 
* Translate designs and wireframes into high quality code 
* Design, build, and maintain high performance, reusable, and reliable Java code 
* Collaborate with cross-functional teams to define, design, and ship new features 
* Ensure the best possible performance, quality, and responsiveness of the application 
* Identify and correct bottlenecks and fix bugs 
* Work with outside data sources and APIs 
* Help maintain code quality, organization, and automatization 
* Unit-test code for robustness, including edge cases, usability, and general reliability 
* Work on bug fixing and improving application performance 
* Continuously discover, evaluate, and implement new technologies to maximize development efficiency.

Skills:
* Proven software development experience and Android skills development 
* Proven working experience in Android app development and have published at least one original Android app 
* Solid understanding of the full mobile development life cycle 
* Strong knowledge and experience with Android SDK, different versions of Android, and how to deal with different screen sizes 
* Familiarity with RESTful APIs to connect Android applications to back-end services 
* Strong knowledge of Android UI design principles, patterns, and best practices 
* Experience with offline storage, threading, and performance tuning 
* Ability to design applications around natural user interfaces, such as “touch” 
* Experience working with remote data via REST and JSON 
* Experience with third-party libraries and APIs 
* Familiarity with cloud message APIs and push notifications 
* Familiarity with the use of additional sensors, such as gyroscopes and accelerometers 
* Working knowledge of the general mobile landscape, architectures, trends, and emerging technologies 

* Knowledge of the open-source Android ecosystem and the libraries available for common tasks.

Native Android Development 
- Kotlin 
- Java 

Android Architecture 
- MVC  
- MVP 
- MVVM 
- MVI 

3rd Party Libraries :
- Multithreading (RxJava, Kotlin Coroutines)  
- Dependency Injections (Dagger, Koin)  
- Image Loading Libraries (Glide, Picasso)  
- Networking (Retrofit)  
- Local Database (Objectbox, Room)  
- Firebase (FCM)  

* Ability to understand business requirements and translate them into technical 
requirements 
* A knack for benchmarking and optimization 
* Understanding of Google’s Android design principles and interface guidelines 
* Proficient understanding of code versioning tools, such as Git 
* Familiarity with continuous integration