Position: Android Developer
Company: GeeksForLess
Experience required: 2y

Mandatory Requirements: 
Programming languages:
- Java SE
- Kotlin

Environment and tools:
- Android Studio 3.5 and higher
- Gradle build scripts
 
Frameworks:
- High level components(Activity, Service, Content Provider, Broadcast Receiver, Intents)
- Views System, Layouts (via XML, via code)
- Fragments
- Resources Management
- Media Frameworks
- Material Design Concepts
- Platform API, Support Libraries and Google Play services API concepts and differences
- Dependency Injection Framework(Dagger 2 or Koin)
- Networking API - okhttp, (Retrofit - good to have)
- JSON Parsing framework(any), (GSON - good to have)
 
Experience:
- Good knowledge in Object Oriented concepts and software engineering 
- Experience on developing multi threading modules
- Good knowledge in database concepts and SQLite fundamentals
- Experience on developing rich UI components on Android platform
- Supporting different screen sizes and resolutions
- strong GOF patterns;
- SOLID Principles
- MVC, MVP и MVVM
- RESTful APIs (JSON, XML)
- JIRA
- GIT

Qualifications:
- Understands mobile performance, latency, and security issues
- Comfortable with Android performance (memory, speed, networking) and experience using performance analysis tools
- Good experience with local caching and offline mode concepts
- Knowledge of common theory of algorithms and data structures

Main Responsibilities: 
Creating application from scratch. Working on architecture, feature implementation, bug fixing and release. 

Project description:
New application for Canadian universities supporting access cards, internal universities payment systems, utilizing NFC and BLE.