Reach out directly about this role
iOS Developer for Maps and Navigator
Our product
Maps and Navigator help millions of users daily to solve various tasks in the city: find places and build routes to them using any transport, book appointments at beauty salons, call a taxi.
We don't stop there: we conduct experiments, research user needs, expand existing scenarios and create new ones. For example, not long ago we launched super-detailed navigation. We also started offering users combined routes with taxi and metro rides, added payment for parking and electric charging stations. All this makes Maps and Navigator powerful super-apps.
How is development structured?
We have placed a bet on multi-platform development: our applications on iOS and Android are practically identical. This allows us to maintain broad functionality everywhere and optimize resources.
Several years ago, we chose Kotlin Multiplatform as the main 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 in it, while UI and interaction with the operating system remain platform-specific.
Thanks to the shared code, the iOS and Android teams are in close contact, exchanging knowledge. For new large projects, we assemble cross-platform v-teams, which simplifies process control and joint launches. Mikhail Kurenkov discussed the specifics of our multi-platform development in his talk at Mobius 2020.
The Maps and Navigator project is divided into modules. Inside the modules, we use the established "clean" architecture with unidirectional data flow. Feature modules are as independent as possible, allowing the development of new scenarios in separate lightweight test projects. Nikolai Likhogrud told more about modularity, and Mikhail Kurenkov talked about test projects.
A large project cannot be developed without investment in infrastructure. We spend 80% of our time on product development, and allocate 20% to technology development, automation of routine tasks, and paying down tech debt. CI/CD, automatic synchronization of resources from editors and designers, automation of the task lifecycle and release process, UI tests, A/B experiments, monitoring of application and process health—we have everything we need.
Our tech stack:
iOS 15+, Swift 5.9, Kotlin Multiplatform / UIKit, SwiftUI / RxSwift, Kotlin Coroutines/Flow / MVI/MVVM, Redux / Fastlane, SwiftLint / UI tests with XCTest & Allure / Modularity with Cocoapods
Our targets
Challenges
The main product challenge is the simultaneous development of place selection and navigation scenarios. We are working to make it easy to find ideas of where to go in Maps and build optimal routes to chosen places using any transport convenient for the user.
We continue to enhance navigation through complex interchanges for drivers and add new capabilities for pedestrians and cyclists.
We want to switch to a weekly cycle and release updates twice as often. Right now, a major process restructuring is in full swing, optimizing application performance (startup time, energy consumption) and build times, and increasing UI test coverage. To implement logic between platforms, we use Kotlin Multiplatform. We are adopting SwiftUI and experimenting with Tuist.
And we are also launching products on international markets, taking into account regional characteristics and needs.
What about the atmosphere?
We love to share knowledge: we regularly hold general tech meetings for the entire development department, where we discuss interesting research and achievements in various technological areas. We meet weekly as platform teams and discuss current problems. At the end of each sprint, we hold product demos.
We respect work-life balance, team building, informal communication, parties, and maintain a friendly atmosphere. We teach at mobile development schools and help with conference presentations. Perhaps you've seen our talks:
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