Hi Everyone,
I interviewed this week (Aug-2022) with google for my system design.
My Exp: 15 years of total exp.
System Design-I
Design a metrics collection system for a company.
your company has mobile app/website from which you wants to collect these user metrics.
These metrics data are not critical (ex not SRE related)
System Design-II
Design a system for street view image taxis. Taxi can take street images and upload it into sytem.
system should do some processing on images (quality, privacy, consistency checks) before saving the final image to cloud.
My approach SD-I
I asked first questions about the requirements-
Funct Req.
Non-Functional Req.
Scale
(all confirmed with interviewer about data, I did some wrong calculate also in hurry, which I corrected here :)
100 Aps
10-20 events /hours
50 Million / app ->
100 * 50 M * 20 -> 100 Billion/hour -> 2400 Billion/day -> 2 B/sec
No of Servers ->
1 event -> 1KB size
2 Bil/sec * 1 KB -> 2 TB/sec
one server bandwidth: 100 MB/sec
2000,000 MB/100 MB -> 20 K servers (looks a lot)
total storage- 2 TB/sec * 10^5 -> 200 PB/day
Then talk about these topics->
followup questions
overall it was good.
My approach SD-II
Functional Requirement
Non-Functional Requirement
Scale & Estimation
1k taxi/city
10 impage/1 km
2k * 1k image/day -> city
2 M /city
2 M * 10 MB -> 20 TB/day
20 PB /day
High Level Design
first talk about base design then used async model -
User (devices) -> LB -> MQ -> Image Upload Service -> Image Process Service -> DB (meta-nosql & cloud storage)
then same all topic wise discussion.
It was not very good as interviewer asked a lot so I was not able to talk all my points.
Please provide your expert comments so we all can smash these companies interviews together :)
still waiting for the feedback about interview!