Reach out directly about this role
Mobile Developer for Maps and Navigator
Our Product
Maps and Navigator help millions of users solve various urban tasks daily: finding places and building routes to them using any transport, booking appointments at beauty salons, calling a taxi.
We don't stop there: we conduct experiments, research user needs, expand existing scenarios, and create new ones. For example, we recently launched ultra-detailed navigation. We've also started offering users combined routes using taxis and the metro, and added parking and EV charging payments. All this makes Maps and Navigator powerful super-apps.
How is development organized?
We've bet on multi-platform development: our iOS and Android apps are practically identical. This allows us to support broad functionality everywhere and optimize resources.
Several years ago, we chose Kotlin Multiplatform as our primary technology for cross-platform development and were among the first to use it in production. Kotlin Multiplatform does not impose restrictions on using platform SDKs; we only write business logic with it, while UI and interaction with the operating system remain platform-specific.
Thanks to shared code, iOS and Android teams are in close contact, exchanging knowledge. For new large projects, we assemble cross-platform v-teams, simplifying process control and joint launches. Mikhail Kurenkov spoke about the specifics of our multi-platform development in his talk at Mobius 2020.
The Maps and Navigator project is divided into modules. Inside modules, we use an established "clean" architecture with unidirectional data flow. Feature modules are maximally independent, allowing us to develop new scenarios in separate lightweight test projects. Nikolay Likhozhud talked more about modularity, and Mikhail Kurenkov talked about test projects.
A large project cannot evolve without investment in infrastructure. We spend 80% of our time on product development, allocating 20% to technology development, automation of routine tasks, and addressing tech debt. CI/CD, automatic synchronization of resources from editors and designers, automation of task lifecycle and release processes, UI tests, A/B experiments, monitoring of application health and processes—we have everything we need.
Our iOS stack: * iOS 15+, Swift 5.9, Kotlin Native * UIKit, SwiftUI * RxSwift, Kotlin Coroutines/Flow * MVI/MVVM, Redux * Fastlane, SwiftLint * UI tests with XCTest & Allure * Modularity with Cocoapods
Our Android stack: * Kotlin, Gradle, Retrofit, OkHttp, Kotlin Coroutines/Flow, Glide, LeakCanary, Kotlin Multiplatform Mobile, RxJava 2, Ktor, Kinzhal, ktlint, AppMetrica, CameraX, Compose, SpeechKit, MapKit, KotlinX.Serialization, Wire * Espresso & Allure for UI tests * Advanced modularity * Dagger 2 for DI * Redux (UDF)
Challenges
The main product challenge is the simultaneous development of place selection and navigation scenarios. We are working on making it easy to find ideas for places to go in Maps and build optimal routes to chosen places using any convenient transport for the user.
We continue to enhance navigation through complex interchanges for drivers and add new features for pedestrians and cyclists.
We want to move to a weekly cycle and release updates twice as often. Right now, a major process restructuring is underway, along with optimization of application performance (startup time, power consumption) and builds, and increasing UI test coverage. To implement logic across platforms, we use Kotlin Native. We are implementing SwiftUI and experimenting with Tuist.
We are also launching products on international markets, considering regional specifics and needs.
What about the atmosphere?
We love sharing knowledge: we regularly hold general tech meetings for the entire development department, where we talk about interesting research and achievements in various technological areas. We meet weekly as platform teams to discuss current problems. We hold product demos at the end of each sprint.
We respect work-life balance, team building, informal communication, parties, and support a friendly atmosphere. We teach at mobile development schools and help with conference talks. Perhaps you've seen our presentations:
3-5 years
Experience
Full-time
Employment
Hybrid
Work Format
Middle
Grade
Mobile Development
Specialization
IT & Tech
Industry
Corporation
Company Type
By city
Mobile Development
Specialization
IT & Tech
Industry
Corporation
Company Type