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

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

Upload: codefest

Post on 10-Jan-2017

273 views

Category:

Software


0 download

TRANSCRIPT

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