35
Alexander Zolotarev MAPS.ME Offline maps of the Planet Powered by OpenStreetMap and

Александр Золотарёв

Embed Size (px)

Citation preview

Alexander Zolotarev

MAPS.MEOffline maps of the Planet

Powered by OpenStreetMap and

Maps for iOS and Android

• 40M worldwide downloads

• 10M active monthly users

• <10% from Russia

Works Offline

• Fast renderer

• Search

• Car navigation

• Walking directions

Compact & Detailed

• 35 Mb Moscow

• 38 Mb Novosibirsk Oblast

• 41 Mb Greater London

• 28 Gb the Planet

Open Crowdsourced Data

• Wikipedia is the present of

Encyclopedias

• OpenStreetMap is the future of maps

Make the World Better

• Offline Map Editor

• Contribute back directly to

OpenStreetMap

• Easy to use by your granny

Open Source Code

• Contribution

• Issues & bugs

• Forks and code reuse

• Your code is your CV

• https://github.com/mapsme

Under the Hood: Client

• Unit-tested cross-platform C++ core

• OpenGL 3D renderer

• Search & indexing algorithms

• OSRM routing engine

• Lossy map compression

30 bits / coordinate

170 Mbytes

24 bits / coordinate

112 Mbytes

23 bits / coordinate

105 Mbytes

22 bits / coordinate

95 Mbytes

21 bits / coordinate

84 Mbytes

20 bits / coordinate

73 Mbytes

19 bits / coordinate

56 Mbytes

Under the Hood: Servers

1. Planet data generates in 24 hours

2. Petabyte/month served by cheap CDN

3. Statistics server

4. Interregional routing helper

2016: Offline to Online

• Mobile map Editor

• Better search and style

• Routing for Cyclists

• 100M worldwide installs

• More C++ engineers

Epic Fails

• Push notification in 28 languages

• 4 releases in a week

• Small village as a continent

• APK size > 3G download limit

• Yota partnership

Technical Fails

• Buggy NDK & 3party SDKs

• Uninitialized variables (use Valgrind, Luke!)

• OpenGL Android Zoo

• API from higher OS versions

Team Hackathons

• Focused development

• Team building

• Peer-2-peer feedback

Engineering Experience

• Always use code review (github is the best!)

• Do not merge without LGTM

• Autobuild and autotest every change

Daily Dev Workflow

• Fix master branch compile errors, unit tests, crashes

• Review colleagues code

• Work on your own tasks

Engineering Experience

• Coding Standard is a must (derive from Google)

• Always find the root of the problem

• Easy communication tools

Engineering Experience

• Train marketing to git workflow ;)

• Developers are great localization reviewers

• Git interactive rebase makes your code perfect

Team Experience

• Subscribe developers to support and reviews

• Devs reply to users

• Use top hardware

Team Experience

• Be open with your team

• Promote to propose better solutions than yours

• Share positive and negative feedback

The Beginning.

[email protected]

Alexander Zolotarev

Thanks!

@MapsWithMe