Layer 3 · Go deeper · 11 min
Go deeper
Size it, build it, then make the calls an interviewer will push you on.
Back of the envelope
Size it up
Tap through each step of the arithmetic.
How many phones navigate at once at peak?
How much CPU does routing need at peak?
How much storage do the planet’s tiles need?
Build-up · 5 steps
Build the high-level design
One functional requirement at a time, ending with a design that works for one city before any scaling.
Step 1 of 5
View the map, pan and zoom
Tiles change only when the map data does, so they cache perfectly. An offline builder cuts the daily dataset into z/x/y tiles; the phone fetches only those on screen, almost always from the CDN.
6 interview moments
You’re the candidate
The interviewer pushes on the hard parts. Pick an approach and see how it holds up.
Deep dive 1 of 6
Interviewer
“1.6 million tile fetches a second at peak, in day, night and Kannada-label looks. How do you serve the map?”
Your move. Pick an approach:
Deep dive 2 of 6
Interviewer
“Bengaluru to Mumbai is about 980 km by road. How do you find the fastest route in milliseconds?”
On the Western Europe benchmark, 18M junctions and 42M segments, at 42k route computations a second.
Your move. Pick an approach:
Deep dive 3 of 6
Interviewer
“Every 60 seconds new speeds arrive for millions of segments. How does routing use them within seconds?”
Your move. Pick an approach:
Deep dive 4 of 6
Interviewer
“840k GPS points a second, noisy by metres, from roads that run side by side. How do you turn them into speeds?”
Your move. Pick an approach:
Deep dive 5 of 6
Interviewer
“You leave Bengaluru at 4 p.m. on a 90-minute drive. How do you predict when you’ll arrive?”
Your move. Pick an approach:
Build-up · 9 steps
Follow one drive through it
Three systems joined at the phone: tiles through the CDN, routes through the gateway, and a drive’s live loop through navigation and the traffic pipeline.
Step 1 of 9
Tiles
The phone works out which z/x/y tiles cover the screen and fetches them from the CDN. The rare miss reads the deduplicated vector tile from object storage, and the phone styles and draws it.