System Design Mock Interview: Design TikTok ft. Google TPM

Sdílet
Vložit
  • čas přidán 9. 07. 2024
  • Don't leave your system design interview to chance. Make sure you're interview-ready with Exponent's system design interview prep course. bit.ly/3PhhbMY
    In this interview, Adam (Google Technical Program Manager) a system design interview question of designing Tiktok, commonly asked in software engineering and technical program management (TPM) interviews.
    Chapters -
    00:00:00 - Introduction
    00:00:37 - Question
    00:00:56 - Clarifying questions
    00:01:59 - Answer
    00:02:25 - Requirements
    00:08:06 - Scale
    00:09:51 - Design
    00:25:31 - Follow-up questions
    00:31:54 - Interview analysis
    Watch more system design videos here:
    - Meta engineering manager answers a rate limiter interview question: • System Design Mock Int...
    - Google SWE answers an algorithms interview question: • Google Software Engine...
    - Google TPM answers Tiktok system design interview question: • System Design Mock Int...
    - Flipkart EM “Design Amazon Prime Video” system design interview question: • System Design Intervie...
    - System Design Mock Interview: Design Instagram • System Design Mock Int...
    👉 Subscribe to our channel: bit.ly/exponentyt
    🕊️ Follow us on Twitter: bit.ly/exptweet
    💙 Like us on Facebook for special discounts: bit.ly/exponentfb
    📷 Check us out on Instagram: bit.ly/exponentig
    📹 Watch us on TikTok: bit.ly/exponenttikttok
    ABOUT US:
    Did you enjoy this video? Want to land your dream career? Exponent is an online community, course, and coaching platform to help you ace your upcoming interview. Exponent has helped people land their dream careers at companies like Google, Microsoft, Amazon, and high-growth startups. Exponent is currently licensed by Stanford, Yale, UW, and others.
    Our courses include interview lessons, questions, and complete answers with video walkthroughs. Access hours of real interview videos, where we analyze what went right or wrong, and our 1000+ community of expert coaches and industry professionals, to help you get your dream job and more!
    #softwareengineer #systemdesign #mockinterview #technicalprogrammanagement #tpminterview #tech #technicalprogrammanager #coding #programming #systemdesign #entrepreneurship #exponent #softwareengineering #tiktok
  • Věda a technologie

Komentáře • 422

  • @jasper5016
    @jasper5016 Před 2 lety +51

    Interviewer - Design TikTok
    Candidate - I never used TikTok
    Interviewer - Great. Go ahead.

  • @elmirbrdar1045
    @elmirbrdar1045 Před 9 měsíci +74

    I love how all the google employees reference S3 and EC2 rather than GCP itself 😂

    • @awaisqarni9428
      @awaisqarni9428 Před 8 měsíci +3

      This is amazing and funny at the same time

    • @alHailHale
      @alHailHale Před 4 měsíci +3

      He isn't yet working for Google. He said he was about to move there from oracle.

    • @kengxi
      @kengxi Před 2 měsíci

      ​@@alHailHalePoint still stands, Oracle has their Cloud services.

  • @praveensg
    @praveensg Před 2 lety +579

    As a hiring manager, here is one tweak I'd add to this interview. When asked if you'd like to improve your design, always say yes. Have a few simple concepts in your backpocket. E.g redis clustering, queueing, analytics using nosql etc.

    • @cool_scatter
      @cool_scatter Před 2 lety +49

      I mean, he basically said "yes, and here's what I would add if I had time."

    • @jamesevans2507
      @jamesevans2507 Před rokem

      How about I give an honest and full answer and you don't judge me when I have nothing to add because I already gave everything? God I hate you corporate scumbags and your stupid games.

    • @SHEEPeros
      @SHEEPeros Před rokem +1

      Seems kinda obvious to say yes but can expand what specifically are you looking for? Your suggestion implies to me you’re looking for knowledge of optimising and monitoring production applications.

    • @ruyvieira104
      @ruyvieira104 Před rokem +9

      "just toss in redis"

    • @iamworstgamer
      @iamworstgamer Před 9 měsíci +2

      thats a very vague question in system design, you need to specify the area where it needs to optmize. learn to ask question first. so called hiring manager

  • @chirut4327
    @chirut4327 Před 8 měsíci +22

    This is how it should be. System design interviews are supposed to be interactive and interviewee should feel welcoming and that he is discussing with his future team mate.
    But in majority of the cases atleast from where I come, interviewers feel like they are the supreme architects who designed all the great apps on the internet and interviewee is a kid.

  • @MaxCoplan
    @MaxCoplan Před 3 lety +403

    That milkshake someone is drinking in the background sounds delicious!

    • @DeepakVishwakarma-ts3lc
      @DeepakVishwakarma-ts3lc Před 3 lety

      Z

    • @devakash2
      @devakash2 Před 3 lety +12

      His mic is constantly brushing his clothes causing that annoying noise :(

    • @rajbiswas776
      @rajbiswas776 Před 3 lety +2

      @@devakash2 r/woosh

    • @LoganGabriel
      @LoganGabriel Před 3 lety +12

      Surely the Googler can afford a better mic; frankly it amazes me how people just ignore terrible audio quality when a substantial improvement is easy and would cost ~$30!

    • @Vamshk
      @Vamshk Před 3 lety +8

      @@LoganGabriel He wasn't onboarded to Google by that time. He just left Oracle.
      Probably Oracle didn't pay him well 🤷‍♂️

  • @oliviatierney6724
    @oliviatierney6724 Před 2 lety +113

    This is a great example of a system design interview. I have been interviewing for mid level developer roles and those questions tend to focus more on the API design rather than the distributed system design. I would like to see more videos that focus on designing the API rather than the distributed system. Thank you for all these videos. They are very helpful

  • @B-Billy
    @B-Billy Před 3 lety +101

    I'm really impressed by the questions he asked as part of the Functional Requirement. Those were serious questions ❤️

  • @deathbombs
    @deathbombs Před rokem +7

    9:40 very concise way to check if you're on track and move to next stage
    11:22 I like how you skip the uninteresting stuff that aren't a problem

  • @dewy1503
    @dewy1503 Před 3 lety +600

    13:30 I don't feel as though there was enough thought put into the SQL vs NoSQL discussion. In my opinion based on the non functional requirements presented to us for a highly available system and 1 million active users per day, I think the data scalability should be a huge consideration in that decisions but wasn't even mentioned. Horizontally scaling a SQL database is possible with sharding etc. but can be complicated to do. NoSQL can pretty trivially and cost effectively scale horizontally especially in cloud environments. And the data we are storing related to the videos is just small chunks, we aren't really leveraging a lot of structured data schemas or anything like that. I don't know, I just think I challenge that decision a little bit.

    • @Jiten2141
      @Jiten2141 Před 3 lety +47

      Totally agree with you. I had the exact same thought. I didn’t see any relational operation requirements that would require SQL database.

    • @jack110311
      @jack110311 Před 3 lety +33

      Jokes aside, it can be good to start with a simpler solution and then later on adjust it as you work through bottlenecks.

    • @123vat69
      @123vat69 Před 3 lety +52

      How to pull the videos of users you follow ,I guess that needs a join.Otherwise we have to denormallize and keep all the user and follower information in single table which I assume is bit complex and might have lot of data redundancy

    • @TechVlogger00
      @TechVlogger00 Před 3 lety +2

      He has outsourced the pull videos from ppl one follows to a prefetch service lol

    • @osta6212
      @osta6212 Před 3 lety +2

      @@123vat69 that makes sense.

  • @andrewkicha1628
    @andrewkicha1628 Před rokem +3

    Great job mediating the interview, I really like how you asked Adam to dive into the discussion about relational vs non-relations DBs, we would miss good chunk of information without it.

  • @sivakiranchekka8762
    @sivakiranchekka8762 Před 2 lety +2

    I really liked how he carried the conversation....interactive

  • @tryexponent
    @tryexponent  Před 3 lety

    Don't leave your career to chance. Sign up for Exponent's system design interview course today: bit.ly/3PhhbMY
    Liked this video and want to see more? Let us know by clicking "Subscribe"

  • @chendavid9582
    @chendavid9582 Před rokem +11

    This perons is so pro. Technical background is solid, talking is so good. I wouldn't be surprised he can become director soon! All in all talking and expressing your thoughts is the most important.

  • @haryy91
    @haryy91 Před 3 lety +8

    I really benefited from this video! thanks guys for your time and effort

  • @SafetyLast-_-
    @SafetyLast-_- Před 2 lety +17

    The sound quality is a bit disappointing: all these noises and crackles.
    But the interview itself was pretty interesting and useful. Thanks for sharing 👍

  • @sukhadadeodhar
    @sukhadadeodhar Před rokem

    Great video! This video is well structured and it helped me a lot! Thank you for uploading!

  • @official_roboGOD
    @official_roboGOD Před 2 lety +3

    The guy on the left is perfect Clark Kent. Take the specs off and we have Superman!

  • @mehulsolanki9435
    @mehulsolanki9435 Před rokem

    Thanks for these videos. They are really helpful. 😄

  • @fattailinvestor3660
    @fattailinvestor3660 Před 2 lety +14

    For the DB discussion around minute 21:00, would it make sense to have a scheduled ML job that reads from the RDB or the replicated read only version and creates the user curated list, and then drop the results into a NoSQL db (like Apache Cassandra, with primary key of user Id plus clustering on say uri of video). This would scale horizontally very easily and it’s purpose built for quick reads and supports the non functional requirement of high availability.

  • @apidas
    @apidas Před 2 lety +2

    this is great. it'd be great with more video like these

  • @arnabpersonal6729
    @arnabpersonal6729 Před 2 lety +3

    29:45 shows how huge scaling exponentially increases components complexity. Nice video

  • @kkud01
    @kkud01 Před 3 lety +17

    How to create view feed is perhaps the most important and complex question, for some reason not touched, the only mentioning that it will be prebuilt

    • @ElanHasson
      @ElanHasson Před 3 lety +2

      Yep too high level. If this is the interview bar I'm doing really great. Totally a SDE9

  • @michaelzappa
    @michaelzappa Před 9 měsíci +1

    I like how he drove the direction of the interview

  • @hakanaki
    @hakanaki Před 2 lety +2

    Love you contents, I've learnt alot in just few minutes, my head wants to explode 🤣🤣.

  • @henryzhang5793
    @henryzhang5793 Před 3 lety +55

    Nice video. One thing I think ‘likes’ should not be one column of video table. Its access pattern is different from other columns, like video description, blob link. ‘likes’ could be changed very frequently. I feel it should be a separate service and may be like a even driven thing (e.g. a msg queue followed by nosql db)

    • @mickeyp1291
      @mickeyp1291 Před 2 lety

      likes should be in a graphdb which bis faster. they should also appear in nosql document

    • @DanteS-119
      @DanteS-119 Před rokem

      Agreed

    • @thenextguy4570
      @thenextguy4570 Před rokem

      also, isn't all likes needs to be stored with userid. Because we are certainly allowed to unlike a video. So, if they don't store like count. and which user likes the video there are no option for unlike.

  • @doanthanh7025
    @doanthanh7025 Před 2 lety

    Thank you for great example of system design question.

  • @thaismkmanfrin
    @thaismkmanfrin Před 2 lety

    Loved it. Really great.

  • @kimngochoangkhoi3631
    @kimngochoangkhoi3631 Před rokem +1

    This is what true artistry looks like, just amazing

  • @chaidaro
    @chaidaro Před 2 lety +11

    I wish I can be calm, smooth, and slowly add the complexity to my design like this man. This man is so smooth , just like the milkshake in the background. Great mock interview.

  • @whatTheFcuk9
    @whatTheFcuk9 Před 3 lety

    Loved the video. please make more grokking system design problems

  • @__nitinkumar__
    @__nitinkumar__ Před 3 lety +6

    In my experience in India, usually interviewers aren't that patient. I remembered asking do you want me to explain as I go. The guy said "no no, you implement take your time we will discuss it later" 😀

  • @bakkks
    @bakkks Před 2 lety +31

    There is an entire industry built around passing the SE interview :)
    Looks similar to the 'how to become rich in the stock market' courses, the authors are making way more money apparently teaching you how to go and pass the interview then going themselves and pass it :)

    • @Zero-ui4ep
      @Zero-ui4ep Před 2 lety +3

      facts

    • @sefer-nv6cn
      @sefer-nv6cn Před 2 lety +1

      But they probably can actually pass them if they want to lol

    • @voodoochile80
      @voodoochile80 Před 2 lety +22

      Agree. It also makes me think that here we're learning how to pass a system design interview, whereas one should really be studying "how to design systems".
      It might sound like a subtle difference but it is quite a sad realisation if you think about it

    • @godwinyoh3700
      @godwinyoh3700 Před 2 lety +1

      some have a passion for teaching. Imagine all your coding mentors focused on writing code instead of writing books and going for talks.

    • @sonicjetson6253
      @sonicjetson6253 Před rokem

      Yea too many fucking ppl entering this industry. Its getting nauseating.

  • @traviss7740
    @traviss7740 Před rokem

    The ASMR in the background was a really nice touch... although the tingling were overwhelming from time to time. Jokes aside, very helpful video though. Thanks for this.

  • @hannnah689
    @hannnah689 Před 3 lety

    Thanks for sharing! I like the interactions of the interviewer and interviewee, and a lot good questions.

  • @DoctorLai
    @DoctorLai Před 10 měsíci +3

    Something to add:
    1. how do you handle creation of unique video ids?
    2. how do you authenticate users?
    3. how do you handle the thumbnails and different solutions of the videos?
    4. how do you handle the video duplications? for example, if a user uploads a video twice? how about different users upload same video?
    5. how do you handle hot videos or users?
    6. I would add some message queues to decouple the components

  • @occo5877
    @occo5877 Před 3 lety +70

    I feel the answers were a bit weak overall.a few times actually I felt the answer wasn’t given at all to the question, rather avoided

  • @the_sweet_heaven
    @the_sweet_heaven Před 3 lety +4

    Interviewer asked very realistic questions. There could be more descriptive explanations though. Adam do have clear understanding of each component but could have been much more informative if he could have shared from his experience more in depth explanations of each component.

  • @Alikhan1993
    @Alikhan1993 Před 2 lety +9

    Nice effort but You totally missed some important functionality like how videos will be streamed to user? Also how you will meet low latency high throughput etc.. Considering estimates you didn't used them to calculate your size of database and how you will optimise DB OPS (using indexes etc)

  • @edwindh2007
    @edwindh2007 Před 2 lety +7

    Choose a SQL database has a big problem with big data and doesn't scale cheaply, it could cost a lot of money. A better solution is to use a NoSQL database that is designed for big data, scales and needs low investment in comparison with SQL database products. It's a good subject for an open discussion and to learn more. Anyway the System Design Mock Interview was great!

  • @shashankshekhar8970
    @shashankshekhar8970 Před 3 lety +23

    I feel the interview could have been a bit more engaging, Few areas would have covered:
    1. SQL vs NoSQL, given that its High Avalaibility, Read heavy, huge data volume and the only relation we have is user-video, why would you use SQL
    2. Elaborate more on Video upload API. How would the upload happen? Multipart form data?
    3. Talk more about the pre cache service but you mentioned you would have done that with more time

  • @iminsane7777
    @iminsane7777 Před 3 lety +4

    More than Exponent you have been promoting Whimsical! :D

  • @StevenDoesStuff
    @StevenDoesStuff Před 3 lety

    What software i he using to do that graph/map as he explains?

  • @aalaptube
    @aalaptube Před rokem

    What software do you use to put the notes on screen, the one with white background? I am make doing with Krita but not entirely convenient.

  • @nikolayfx
    @nikolayfx Před rokem

    Congrats, thanks for sharing the interview

  • @guhkunpatata3150
    @guhkunpatata3150 Před 3 lety +33

    imagine how many years it needed to understand and practice all those techs.
    i can catch up to DB design, but beyond that; CDN, LB, caching ... im lost XD (never done that before)
    so yeah, this is very aspiring interview.

    • @BassByTheBay
      @BassByTheBay Před 2 lety +1

      They all work together to improve performance and hence UX, so you'll probably come across all of them soon enough. And you don't need to dive deep to understand what they do and how they're beneficial.

  • @WhiteSiroi
    @WhiteSiroi Před rokem +1

    thank you very mcuh

  • @metarus208
    @metarus208 Před 9 měsíci

    this is very useful

  • @adithyaks8584
    @adithyaks8584 Před 3 lety +4

    One question - after we have consumed the precomputed feed how do you recompute, is it based on timestamp / relevance etc and how will it get served ?
    Whether this new feed will be stored in cache and how ordering will be maintained ? Whether we will have to persist this ?

  • @shrimpo6416
    @shrimpo6416 Před 2 lety

    I just looooove watching mock interview videos

    • @rafaeashraf605
      @rafaeashraf605 Před 2 lety

      yea wait until you gotta do em. they aint fun

    • @shrimpo6416
      @shrimpo6416 Před 2 lety

      @@rafaeashraf605 I'm still very new to it XD

  • @hakanaki
    @hakanaki Před 2 lety +1

    Sorry, quick question. What are you guys using to draw this diagram?

  • @BhushiBalboa
    @BhushiBalboa Před 2 lety +31

    A bit disappointed, in my opinion below aspects should have been focused on -
    1. How will your architecture support a million users.
    2. What makes your architecture scalable
    3. What mechanism will you use to search content across millions of video metadata
    4. How will your data storage be available across geographies
    5. How will you enable a stream of videos of users that you follow
    These are the core questions, what he designed can be a good starting point, but unfortunately the challenging part wasn't tackled

    • @count3ears
      @count3ears Před 2 lety +9

      Nearly impossible to cover this in the time available for a systems design interview

    • @PC-to3rg
      @PC-to3rg Před 2 lety +2

      pre-cache needs more explanation. when will it invalidate for billions of users. W/o users on the system it will still keep running. Is it optimal?

    • @ignashi7plays401
      @ignashi7plays401 Před 8 měsíci

      @@count3ears Bruh they spent only 32 mintues. System design interviews are generaly 1 hr. It would look bad if you end the interview in just 30 mins.

  • @lbb2rfarangkiinok
    @lbb2rfarangkiinok Před 2 lety

    Watched this video in three settings. By the third time, my 2 year old daughter would hear the interviewer's voice and immediately start imitating the milkshake sounds. "Dad, why does what you are watching go swshh swshhh swshhh"

  • @FengZhang1
    @FengZhang1 Před 2 lety

    Very helpful

  • @pratikrudra6508
    @pratikrudra6508 Před 2 lety

    Respect when he mentioned he never used tiktok

  • @santanudas4295
    @santanudas4295 Před 3 lety +2

    In whimsical, which template is this??

  • @jayarameee
    @jayarameee Před rokem

    Thanks!

  • @khongduocbocuoc
    @khongduocbocuoc Před 2 lety +1

    Hello, I'm an iOS Engineer and I'm very curious about the mobile app partial but you skipped it in the video.
    Could you please make videos about system design interview for mobile area ?

  • @mirhosseinmousavi7378
    @mirhosseinmousavi7378 Před 9 měsíci

    Someone is eating icecream in the interview!

  • @bridgethuang581
    @bridgethuang581 Před 3 lety +51

    Great instruction! - a side question: what's the tool you use to draw your flow chart? Thx!

  • @idvishal
    @idvishal Před 3 lety +5

    @Exponent What editor your interviewee's use to draw the system diagrams?

  • @ahmedalsaedi3849
    @ahmedalsaedi3849 Před 9 měsíci

    excellent

  • @abcauditor123
    @abcauditor123 Před 2 lety

    26:11 "basically all of these APIs are going to want to behind a CDN"? Are you saying that you are replicating the LB, microservices, and Databases for each CDN you have, in every region? I was under the understanding that CDNs were used to cache large content (videos, pictures), not to completely replicate your primary environment and that the CDN would get content from the 'blob' storage and the read-only DBs. Any clarification would be appreciated. Thanks!

  • @deathbombs
    @deathbombs Před 3 lety +17

    His high level design is his highlight, clearly done some practice on designing CZcams. He broke up the DB and precache smooth AF
    Also like how he backfill the db model at 24:10

  • @ArmanOhanian
    @ArmanOhanian Před 2 lety

    What's the platform they are using for drawing the diagrams?

  • @shikhaduggal7184
    @shikhaduggal7184 Před 2 lety +1

    I am a bit confused, would you say this is a monolithic architecture scaled horizontally or an SOA? I know it's not microservice architecture since each endpoint/service does not have its own database. Just starting out with System Design, would appreciate the help!

  • @ArunKumar-jk5pq
    @ArunKumar-jk5pq Před 3 lety +31

    CDN should sit in front of static content only. Not sure you need to put that it in front of all APIs.

    • @HardwareAddiction
      @HardwareAddiction Před 3 lety

      Yea, it didn't make sense to me at all. You have databases, how can you access a DB across CDNs? lol, it only makes sense for static stuff, as you said. In the case of Tiktok, that would be grabbing videos blobs/files.

    • @chchristomanos
      @chchristomanos Před 3 lety +3

      @@HardwareAddiction If he used a document-based database he could store the responses as JSON on the CDN

  • @17teacmrocks
    @17teacmrocks Před 3 lety +2

    when sharding became a thing, i was like this is just raid for server data

  • @richarddetsch7912
    @richarddetsch7912 Před 3 lety +3

    like the cdn for the video may want to also go into the audio/video encoding of video before storage or if live streaming how to encode and deliver content before a full store, they talked about scale but may also want to discuss adapting to a change in network bandwidth

  • @smp1843
    @smp1843 Před 3 lety +6

    I agreed on the choice of RDB for read/write to start, but was a bit confused by his assuming the possibility to shard on an RDB rather than switching over to a NoSQL since NoSQL are known to be sharding friendly?

    • @tchangity
      @tchangity Před 3 lety +2

      Depends on the skill set of the team. Some NoSQL databases can be harder to shard than some relationship databases now (such as postgres with built in partitioning)

  • @cberigan1
    @cberigan1 Před 3 lety +1

    Likes requires a many to many table users videos. Follows can be a many to many users users.

  • @sakshisyal2101
    @sakshisyal2101 Před 2 měsíci

    Interviewee - I have never used TikTok, I dont have much idea about it
    20:15 - I know that TikTok has a special algorithm

  • @sohaibkhan114
    @sohaibkhan114 Před 2 lety +2

    If a person is following another person and eac reside in separate shards, how you're gonna tackle that ? I think if you give this solution in an actual google interview, you will be rejected. It lacks a lot of details. The pre-cache service will only populate initial feed objects, what about later ones ? There's no mention of that.

  • @9893011111
    @9893011111 Před 3 lety

    What is the tool used to have blocks / design???

  • @bostonlights2749
    @bostonlights2749 Před 3 lety +23

    This is a good and bad interview.
    Experiences : 2-4 Years --> Good. As he was able to build the structure around the problem.
    Experience : 4 Years + --> Bad . Did not go into any details. Just generic statements.
    PS: I wanted the interviewer to ask more questions and make him struggle.

    • @maroonluph
      @maroonluph Před 3 lety

      collection of experiences

    • @sedat4842
      @sedat4842 Před 3 lety +5

      I once asked to design a video platform like Netflix. They were going so into detail at everything I said. I believe I did better than this video with similar components like cache, CDN, pre population for the feed etc. Talked about NoSQL, scaling, security, etc... but guess what, I failed :D
      experience was 5 years

    • @dijoxx
      @dijoxx Před 3 lety +1

      The interviewer himself is not very good to be honest. I've seen some of his other videos and he appears to be a rather mediocre engineer.

    • @cakec9
      @cakec9 Před 2 lety

      @@sedat4842 Very interesting. Did you fail becoz of the system design interview? Or were there other rounds that led to the consequence?

  • @AmeerHamza-cy6km
    @AmeerHamza-cy6km Před 3 lety +2

    Always start with ERD 🙂

  • @chrise202
    @chrise202 Před 2 lety

    1. Hot, Warm, Cold videos. The hotter, the more copies.
    2. "Viral Regional video" is probably more realistic than "Global Viral". Hence bring data closer to the consumers.
    3. Data is not relational, as videos are not tied together - NoSQL?
    4. Data does not change much, but there are lots of reads - Immutability?
    5. 4k Videos are heavy - CPU/GPU optimized service compression?
    6. Composable UI - so that features like comments, likes etc work independently and in case of partial failure, system continues to offer a best-effort set of features.
    7. Likes feature - mention about Top K problem and hashmaps
    8. Client side caching - once video is already watched allocate a reasonable buffer for storing them.
    9. Protocol focused on delivering video/audio content ?
    At least these are immediate things I could think of...

  • @aivsdeveloper
    @aivsdeveloper Před 2 lety

    anyone know the website they use to plan all that out?

  • @zios21
    @zios21 Před rokem +2

    I wonder if anyone ever starts with the domain model of the problem at hand? I felt we jumped into tables and stuff pretty quickly. PS - I am preparing for such interviews and looking for recommendations.

    • @SwapperTheFirst
      @SwapperTheFirst Před rokem

      depends on your previous experience/background. Some start with APIs, some start with data models first (tables and relations is just one example of data modeling).
      Typical framework to start is - Functional, Non-Functional, Constraints. Then discuss major actors, their use cases and typical user stories. Unfortunately, the exact answer to many software architecture questions is always - it depends on many factors (your background, type of interview, time constraints, role you're interviewing for, ...)

  • @rudyeilabouni
    @rudyeilabouni Před 2 lety

    What's the name of the whiteboard tool?

  • @blakeex
    @blakeex Před 2 lety

    Can we get the website link for the system design drawing made by Adam?

  • @diljitpr1764
    @diljitpr1764 Před 3 lety

    which tool did he use for the diagram?

  • @user-rg5ig1yf5u
    @user-rg5ig1yf5u Před měsícem

    this gives me hope cuz he says things in the most obvious way "It can run on a schedule... or like on demand, or something like that" Google here I come

  • @alexgrissom7251
    @alexgrissom7251 Před rokem +2

    I actually came very close to this design while I was designing TikTok on my own. I'm very proud of myself:) Thanks for the video!

  • @avikchowdhury6933
    @avikchowdhury6933 Před 2 lety +6

    Great video, nicely explained everything. However about database sharding; I think sharding should not be done based on region, right? Because for a particular region with lots of users database sharding could be done based on user_id. Moreover, we also need to keep in mind about popular users. If too many popular users are in one DB, this will create too much load on a single database. So there should be some strategies to evenly distribute the ids of those users among the available servers.

    • @aniketshukla9568
      @aniketshukla9568 Před rokem +1

      Yes, I agree that database sharding should not be based on region. Coming on your suggestion, when we do database sharding based on user_id, this might create huge traffic for a celebrity user. So, what if we do sharding based on video_id(post_id) ? In this way, yes one shard will have multiple instances but we can get away with traffic on a particular shard.

  • @sergeymanetskiy8201
    @sergeymanetskiy8201 Před rokem

    What about counting read:write ratio? counting RPS for reads and writes? (to understand what kind of system in should be) Initial DB storage and storage scaling calculations? How much data you will store in a month? Throughputs? Why cache and not NoSQL in case of GET user feed? What to do with stale cache data? What if you lose all cache data?

  • @pingoklooi
    @pingoklooi Před rokem

    What are some good resources one can peruse to further understanding of this field/study please?

  • @cfbredraider
    @cfbredraider Před 2 lety +3

    Interviewee needed to talk a bit more about fault tolerance. You might introduce a queue to handle processing the videos after they are uploaded.

  • @m1nkeh
    @m1nkeh Před 2 lety

    i would have saved chat about redis cache for the "further optimisation" sections... gotta leave something in your pocket!

  • @mohansuri2683
    @mohansuri2683 Před 2 lety

    What is the tool used for design in your video?

  • @mgdibtygd
    @mgdibtygd Před 2 lety

    I'm curious about what Adam S. is using to illustrate his design? Is it just Powerpoint (or equivalent) or something else?

  • @mickeyp1291
    @mickeyp1291 Před 2 lety +8

    i feel youve developed a great system in 2005 architecture. i expected choreography with events, kafka and streaming . very disappointed in this design that would not scale well, requires huge joins and is very inneficient in eventual consistentancy

  • @quirkyquester
    @quirkyquester Před 2 měsíci

    great job navigating this, while never used tik tok

  • @illyaxo
    @illyaxo Před rokem +1

    This guy is built different

  • @techy0716
    @techy0716 Před 2 lety

    since application is not restricted but anyone can upload and retrieve, I believe RDB database will be bottleneck in terms of network request volume and IOPs. any thought?

  • @harveynguyen8226
    @harveynguyen8226 Před 2 lety +1

    I want to learn the Precache Service he mentioned. Anyone has the keyword to look for? I tried sw-precache but it seems like a different thing.

    • @ImaskarDono
      @ImaskarDono Před 2 lety

      It's not something concrete, just the idea, that it should populate the cache.

  • @dizhang947
    @dizhang947 Před 3 lety +2

    Didnt finish the entire video, pretty good practice

  • @vikram5970
    @vikram5970 Před 2 lety +3

    What was the online designing tool you used for the design? that was pretty cool

  • @techtalkweekly
    @techtalkweekly Před 2 lety

    Lame question- what tool are we using here to draw this system design?

  • @Obrien84
    @Obrien84 Před 2 lety

    what tool is he using to display his diagram?

  • @valerieehimhen2672
    @valerieehimhen2672 Před 2 lety +6

    Great video! Would an interviewer expect a TPM to be this detailed? I'd love to hear some feedback.

    • @swahareddy8822
      @swahareddy8822 Před 2 lety +1

      And would this interview be a fair expectation for post MBA TPM interviews.
      Or would they be less technical

    • @denise9720
      @denise9720 Před 2 lety

      More of a software developer interview.

    • @0DWalker0
      @0DWalker0 Před rokem +1

      Yes for Senior TPM or software engineering TPM