Google Interview Question
Software EngineersCountry: United States
Interview Type: In-Person
gmail is complex platform. bunch of things are involved in it.
on very high level , there are GUI and Backend.
Some GUI actions will manipulate GUI only other needs to be sent to backed.
Backend will consist of business logic layer, persistent layer (+ database)
Database design:
for sake of simplicity lets say we maintain, 3 tables of mails associated with email id.
1.Received
2.Sent
3.Contacts relationships
(1 and 2 can be merged by adding extra columns but search will slow down )
One table having adjacency relationship with mail id and mails and another table with mail id and list of its contacts .
Business layer, has an User object, which has following attributes:
email id
list of mails in box (maintains top 100)
list of contacts
list of sent mails (maintains top 50)
this object is sent to GUI on authentication and browser renders them as we see it today.
of course there are tons of features I have left out,but hope you get an idea.
WTF is this crap? You've posted like 20 questions which are completely open ended. You could not possibly have been asked all these questions. I could just make up 100s of these: design Google Inbox, design Google Maps, design Spotify, design Windows, design Linux.
What are you trying to achieve here?
I'm not trying to achieve anything, just posting the questions I was asked in on-sites (I tried couple times already)
I'm not trying to achieve anything, just posting the questions I was asked during on-sites (I tried couple times with Google, once at Facebook and Amazon).
I also collected questions from a few friends who went (successfully) through their round of interviews.
And, yes, the folks at Google do ask open ended questions as part of the System Design interview
I'm not trying to achieve anything, just posting the questions I was asked in on-sites (I tried couple times already)
- Anonymous July 14, 2015