Position: Android Developer for Driivz
Company: Grid Dynamics
Category: Android
Experience required: 3y
English level: intermediate

**About the project:**
Founded in 2013, Driivz offers the best-in-class Electric Vehicle (EV) charging and operations management solution that effectively responds to the demands and challenges of the exponentially growing Plug-in EV (PEV & PHEV) market. 

The Driivz cloud-based platform spans EV operations, grid and user management, home, public, and workplace charging management, advanced billing, and driver self-service charging apps. The Driivz platform is modular, role-based, and fully customizable to fit any business model. It supports more than 80 charger types, multiple tariff plan options, and can effectively integrate with any third- party System.

Driivz manages some of the largest public EV charging networks in North America and in Europe including over 10,000 charging sockets, and used by over 300,000 drivers. 
Driivz has been selected as a premium technology provider by the largest global utility & energy companies. We manage leading innovation projects in the field of power management and serve as the technological platform in the areas of smart charging, grid management, vehicle to grid (V2G), and EV fleet management.

**Responsibilities:**

Design, implement, deliver, and test awesome features in the main user app while understanding our products from both a technical and business perspective in the context of our larger business.
Break down complex problems into elegant technical solutions that are easy to use and understand.
Communicate with leadership, product owners, other technologists to create working software based on an understanding of business and technical priorities.
Actively contribute to the adoption of strong software architecture, development best practices, and new technologies. We are always improving the process of building software; we need you to help contribute
Architect, design, implement, test and deliver highly scalable products.
Operate effectively in the hybrid engineering model where engineers are expected to be able to design and execute the necessary work to ensure quality in their own code as well as other engineers
Work closely with a team of engineers, product managers, user experience experts, and performance engineers to build new features our customers will love, adopt and use while keeping our trusted platform stable and scalable.
Mentor others in development technologies, tools, and processes.
Present your own designs to internal/external groups and review designs of others.
Develop test strategies, design automation frameworks, write unit/functional tests to drive up code coverage and automation metrics.
Communicate with mobile app developers integrating our product and deliver mobile-first solutions to their use cases.

**Requirements:**
4+ years of experience building Android apps in Java and Kotlin.
Working knowledge of the Android platform and tools.
An understanding of Android app architecture and the use of design patterns.
Demonstrated skills in writing and testing high-quality, readable, well-architected, and efficient code.
Experience with Android Jetpack: ViewModel, Data Binding, Live Data, and more.
Strong understanding of user interface & amp; user experience
Experience with at least two of the following: Retrofit, Dagger, and RxJava.
Familiarity with Agile methodologies
Proficient understanding of code versioning tools (Git).
Passion for high performance and user experience
Solid grasp of mobile networking, push notifications, services, persistence, paging, caching and
navigation mechanisms.
Experience in designing mobile architectures, good understanding of well-known patterns such as MVVM, MVP, VIPER, MV* and their tradeoffs.
Experience in Android multithreading and memory management.
Experience in building intricate and modular UI components.
Good understanding of Android theming and styling system - good knowledge of Material theming components and practices.
Experience with Api design, unit testing, UI testing.
Good communication skills, Team player, a must!
Experience building highly scalable applications.
At least Upper-Intermediate English level

**Will be a plus:**
Projects on Github/Gitlab
Experience with Espresso, Robolectric.
Strong problem-solving skills in large, scalable systems.
Experience or exposure to Dependency Injection components and practices.
Experience consuming public RESTful API’s.
Experience in modern deployments through a CI/CD pipeline.
Experience in automated testing.

**We offer:**
Direct cooperation with the customer
Dedicated HR / Client Manager
Regular performance reviews
Competitive salary, medical insurance, 20 working vacation days
Regular corporate events, team buildings, etc.
English classes / Grid University courses 
Remote work opportunity