Google system design interview: Design Spotify (with ex-Google EM)

1,044,791
0
Published 2023-03-10
Today's mock interview: "Design Spotify" with ex Engineering Manager at Google, Mark (he was at Google for 13 years!)

Book a coaching session with Mark: igotanoffer.com/en/coach/mark-3?utm_source=Youtube…

Chapters:
00:00 Intro
01:16 Question
01:51 Clarification questions
04:24 High level metrics
10:05 High level components
13:18 Drill down - database
19:30 Drill down - use cases
25:00 Drill down - bottleneck
37:30 Drill down - cache
35:02 Drill down - load balancing
38:00 Conclusion
40:55 Final thoughts

About us:
IGotAnOffer is the leading career coaching marketplace ambitious professionals turn to for help at high-stakes moments in their career. Get a job, negotiate your salary, get a promotion, plan your next career steps - we've got you covered whenever you need us.

Come and find us: igotanoffer.com/?utm_source=Youtube&utm_medium=eng…

All Comments (21)
  • This video is a perfect example of how things should be explained. The way Mark has explained entire design is commendable. Kudos to the guy interviewing for being so patient and polite.
  • @adennis200
    Im still a junior but I remember some classes that featured system design and watching this interview brings up a lot of memories. What I also love about that is the "doing things from scratch" part. When you're dealing with system design, it usually means you're creating something new, a new app, a new service etc and that's always an exciting endeavour
  • Mark does a great job of explaining the different aspects of design in a clear and concise way.I really enjoyed this video,keep going on man 🤟
  • @abanerjee3704
    The elegance with which Mark explained it 🤌🤌. Exquisite!!!
  • @SeviersKain
    This is pure gold, explains almost everything when you need to learn what a system is and how it functions...very very useful !!! Thanks man !
  • @yaronnir
    it's always best to start the interview answer and define the "Functional requirements"(FR) and the "Non-Functional Requirements" (NFR) that are needed for the design. NFR could look like this for this design: 1. low latency 2. high availability 3. secured connection etc.... this helps to flush out point of failures, and bottlenecks early in the design.
  • What a pleasure it's to listen to this kind of people and the way they design solutions, they make it look easy but it takes years of experience to abstract like that
  • @shpluk
    Just the fact that the interviewer could shut up and listen to the answer makes this interview great. There is nothing otherworldly about design interviews, not much has changed or invented in the recent decades the only issue in my experience is that people can't just sit and listen, they'll be constantly asking questions, breaking up the train of thought, I'd say its a tutorial for the interviewer and not the other way around)
  • @KShi-vq4mg
    This is a great session. This format works when interviewer is a good listener and allows Mark to finish what he has to say, put a logical end before transitioning to next stage of SD or asking questions. and that is great. Can you do a session where the interviewer is constantly interrupting? you neatly define stages of the SD interview and its a flow we (interviewees) would like to get into. but more often than not, interviewer doesn't wait for you to finish a topic.(usually non FAANG companies) they just want to get into details of a component. or more often than not ask "why". I personally find it hard to transition from "answering their question"(which could take easily 2-5mins) to getting back into original format I had planned for the session. and because I'm unable to logically complete i fail the interview.
  • @freezefrancis
    That was a nice one. I like how Mark evolved the design.
  • @sevilayozt
    great video to watch before an interview for any position in computer science fields...
  • @SafetyLast-_-
    Great content, thank you! This channel should have more subs.
  • @carlosluque4753
    Love the video! Before playing the whole video I played around with a design of my own and ended up with pretty much the same design with some variations that I'll add bellow. I think Mark and the Interviewer missed on digging a bit deeper into one of the main requirements Finding Music. Mark talks about performing the search operation directly from RDS. Taking into consideration the scale of the system, that would have been a terrible decision. With millions of users, the search function would hit the DB constantly and generating read queries in the RDS instance that stores its data on disk. Resulting in overuse of the DB and high latency. In my design, I went for a dedicated search service that is powered by a Search Engine such as ElasticSearch. This service is populated in the background asynchronously by a Consolidator service. Essentially, each time a data is added to the RDS (new songs, etc) an event or message is sent to a queue, the Consolidator Service would get the new data and push it to ES. Then the users can search very fast for songs using a highly optimised Search Engine.
  • @user-mz9gf8ux8u
    Really like how Mark communicates so effectively, and designs iteratively.
  • @startup_cult
    I knew every single measure and strategy which Mark presented here. But I dont think I would have been able to present it the way he did with a gradual continuous increase of complexity. Awesome answer Mark. I wish I could get interviews to be able to deliver these answers, Im good at that.
  • @shashwatswain6103
    Recently had an interview with the same, hadn't come across this video then. I wish my design was as neat as it is here. The simplicity does help explain the data flow a lot better.
  • @pawan_047
    I'm having an interview at swiggy and i went through out several of youtube videos to understand that how to design an system at high level or low level but this is what I'm searching for , which made me confident to make answer in the low level design interview that how things work and function. Thank you so much