Design Tinder - System Design Interview (with TikTok Senior Engineer)

Поделиться
HTML-код
  • Опубликовано: 25 ноя 2024

Комментарии • 61

  • @tryexponent
    @tryexponent  11 месяцев назад +1

    Make sure you're interview-ready with Exponent's system design interview prep course: bit.ly/46cS6ZF

  • @kakhapilauri7251
    @kakhapilauri7251 10 месяцев назад +108

    1M active users a day generate 1B matches a day? That is 2000 matches a day per person

  • @herooo.2928
    @herooo.2928 Год назад +208

    I really like how she is driving the interview! However, the design seems to be very high-level and monolithic, not necessarily a system you can deploy at scale. I think the functional requirements need to be narrowed even further, because recommendation is a system design question on its own. We touched geosharding, but that discussion seemed out of place for something that was supposed to be high level.
    I think back of the envelope estimations were a bit out of place, there was really no reason given for why those calculations were done. We calculated the amount of metadata storage we might need, but not much discussion other than that. No mention of whether this is a read heavy vs. write heavy system and what implications that has on the rest of the design. Do we need to be consistent or highly available? This is a very read-heavy service where people are swiping left and right like crazy, refreshing feeds all the time. You're going to need to be highly available, so someone that is new on the app might not have their profile readily seen until replicas pick them up.
    I'm thinking for the feed generation / finding other users in your area, you'd have some sort of document store that you can scale as you go (like Mongo), with support for queries / searching based on strings. We'd have location in the user's metadata, so you'd probably let Google S2 handle the geometry and get all the users in a particular user's location. Honestly you might even consider a Graph DB since you're essentially building a recommended network of users based on a bunch of preferences and biographical information.
    There seemed to be no goal in getting a complete, scalable system on the whiteboard, and the interviewer also didn't really do much to steer the candidate in the right direction unfortunately.

  • @DominikPlaylists
    @DominikPlaylists 6 месяцев назад +40

    I love how she first starts to describe the app in so much detail and at some point gets self conscious. "Oh, I'm actually not a user of Tinder and I have only heard about these super like things from a friend of a friend"

  • @ДенисЛарионов-м2ц
    @ДенисЛарионов-м2ц Год назад +59

    Is there an error in the calculations of the profile photos storage? It should be around 60TB, not 300-600TB. 200kb * 6 * 50M = 60TB, isn’t it ?

  • @Neural_Network_News
    @Neural_Network_News 5 месяцев назад +3

    Some of the calculations and approaches are not good however I appreciate their times and efforts to explain how we develop systems. Thanks

  • @playfriends-f6m
    @playfriends-f6m Год назад +35

    I think the calculations were way off.
    She did 200kb per picture (which in reality is 3-6mb per pic. and exponent sys design course it mentions to round up or down so rounded up is 10mb)
    She also gave herself a hard number of 6, i think calculation wise it would been smart to say 5 or 10.
    At 10mb per picture and a user can upload 5 -> 5 * 10mb = 50mb per person
    50mb * 50,000,000users = 250,000,00 Gb -> 2.5 Terra Bytes worth of data just for the pictures
    As for text, an average line of text takes up about 70 bytes (rounded up is 100 bytes per person). 0.10 of a Kb.
    So for 10 people your looking at about 1kb. Fairly small but for the 50million = 1Kb -> 50,000,000 = ~50million Mb -> ~50Gb worth of data for profiles.
    So 50Gb x 2.5Tb is around 2.55Terra bytes. Takes a LTO of mental math but her estimate of 300-600Tb was just her throwing a number out there.

  • @ClashRoyaleAtman1
    @ClashRoyaleAtman1 7 месяцев назад

    This was use case driven design and will iterate slowly in to a high level system design

  • @cicciove178
    @cicciove178 5 месяцев назад +3

    I think that doing an interview being only assertive, never asking for a feedback on assumptions, requirements, design proposals, or numbers might be leading to failing the interview because it can give the impression of being opinionated and self-centered.
    Also, I think there's a lot of concepts that are explained fast, they are not super clear, and there aren't considerations about tradeoffs of why choosing what.
    A candidate like this would make me think twice about giving a positive feedback, if I were the interviewer.

  • @vernielariosa8996
    @vernielariosa8996 Год назад +2

    I am hooked. I love the videos on this channel.

  • @SwikarP
    @SwikarP Год назад +8

    Which is this tool that draw design diagram? Can you send me the link? My next system design interview I have to draw whiteboard..I am looking best website that available?

    • @tryexponent
      @tryexponent  11 месяцев назад +3

      Hey SwikarP! The tool used here is called "Whimsical"!

  • @rja62b
    @rja62b 9 месяцев назад +2

    i didnt even know what geo sharding was. If you didn't know a certain technology existed in an interview that requires it, does that just mean I am inexperienced?

  • @ravingsofalunatic
    @ravingsofalunatic 9 месяцев назад +4

    wouldn't it be better to ask questions about the functional and system requirements at the start rather just riffing off like that?

  • @lamborghinicentenario2497
    @lamborghinicentenario2497 4 месяца назад

    Lol iof they actually introduced a balancing system to reduce matches for people who get too many, like she mentionned she would add, the app would actually be worthwhile

  • @SkyLee91
    @SkyLee91 Год назад +30

    How to get 1 billion matches per day while the active user per day is 1 million?

  • @suri4Musiq
    @suri4Musiq 7 месяцев назад

    Loved it!

  • @ComfortChauke
    @ComfortChauke Год назад +7

    Which software is this, I am shopping for something to do those diagrams with

    • @tryexponent
      @tryexponent  Год назад +6

      Hey ComfortChauke! This whiteboard software is "Whimsical". They've got a free version if you want to try it out!

  • @quirkyquester
    @quirkyquester 6 месяцев назад

    users' location are always changing, sharding by geo, probably wouldn't be the best idea. but great content here

  • @HighSky-lt5kn
    @HighSky-lt5kn 6 месяцев назад

    minute6 estimate looks off..
    profile pic storage estimate is 200kb x 6 x 50M
    = 200 x 10^3 x 6 x 50 x 10^6
    = (200 x 6 x 50) x 10^3 x 10^6
    = (6 x 10^4) x 10^3 x 10^6
    = 60 x 10^12
    = 60TB
    600TB is 1000% of real estimate

  • @onlypersona
    @onlypersona Год назад +5

    Why she is explaining ERD using JSON? is it not effective, isn't it?

  • @theshallowriver
    @theshallowriver 4 месяца назад +3

    Curious on why NOSQL DB is chosen for profile. IMO SQL in this case would have been better. Any thoughts/perspectives?

  • @adilsheikh9916
    @adilsheikh9916 2 месяца назад

    Not sure if the System Design interviews are done like this.

  • @startup_engineer
    @startup_engineer Год назад +1

    It was a great session thanks for that, can we also add/cover the remaining part, specially the matching of profiles.
    Thanks in advance

  • @DanielSummr
    @DanielSummr 6 месяцев назад

    User profiles are not unstructured data, quite the contrary. 50M records are not that many for a RDBMS to handle, so I think the interviewer missed an opportunity here to ask clarifying questions.

  • @speeddykuang-ty9cq
    @speeddykuang-ty9cq Год назад +1

    The best in Exponent channel.

  • @peterhorton9063
    @peterhorton9063 Год назад +4

    Thx. Anyone know which tool she is using for the diagram?

  • @yoniziv
    @yoniziv Год назад +2

    this is gold. thanks for sharing!

  • @SeriM-qc1qr
    @SeriM-qc1qr 11 месяцев назад +2

    which tool / website people are using in this video to display the diagrams and text. Its very neat and clean and looking for something like this

    • @sahugaurav0
      @sahugaurav0 11 месяцев назад

      same question!!!!! let me know if u find it.

    • @tryexponent
      @tryexponent  11 месяцев назад +2

      Hey! The tool used here is called "Whimsical"!

  • @SacWebDeveloper
    @SacWebDeveloper 10 месяцев назад +1

    Yipes! I've never installed a dating app or used one, I've only ever heard of things like "swipe right" in movies and television. I would be very disadvantaged if asked to design something like this. The interviewer would have to define all the business req's since I don't know what is in the app. Is "swiping right" a good thing? Like what is the positive vector for creating the directed graph relationship?

    • @martinomburajr.5905
      @martinomburajr.5905 9 месяцев назад

      This is why you speak up at interviews. It's perfectly fine if you have never used Tinder, you could request for another system. Interviewers would have a few that they could ask you,.

  • @Engineer_With_A_Life
    @Engineer_With_A_Life Год назад +6

    Wonderful session!
    I am wondering how recommending service is handling already recommended users.
    Are we going to store the action taken by user on each recommended profile? This can make database bulky.
    If we are to store action taken by user on each recommended profile, then what would be the query strategy, how data should be partitioned?
    Looking for someone to suggest here! Thankyou

  • @mikeymop
    @mikeymop Год назад +7

    Does anyone know which web app is being used for her to whiteboard on?

    • @tryexponent
      @tryexponent  Год назад +14

      Whimsical :) whimsical.com/ - it's free!

  • @NamTeGiac
    @NamTeGiac 6 месяцев назад

    thank you

  • @austinhoag5130
    @austinhoag5130 Год назад +1

    Helpful!

  • @dineshmohanty9229
    @dineshmohanty9229 7 месяцев назад

    why cant we cache the recommendation input for the user similar to fb or twitter feed

  • @nalinmathur6954
    @nalinmathur6954 9 месяцев назад

    Why didn't she talk about how matching will work, how she will store likes in DB etc.

  • @swapnilgt
    @swapnilgt 9 месяцев назад

    For recommendations, passing the userprofile id to the recommendation service and then lat, long and other profile data from the profile service might cause unnecessary load to the user profile service. One. of the options can be to pass the required data from the app itself. Another way could. be to setup a cache on the profile data.

  • @sauravjha2933
    @sauravjha2933 Год назад

    Thanks for sharing❤

  • @SKDev11
    @SKDev11 Год назад +1

    that was impressive

  • @SirTopHat_
    @SirTopHat_ 2 месяца назад

    This is helpful but I want to point out it does seem like she has notes she's referencing for the video so they probably thought all this out beforehand with resources available. Not an issue at all for learning purposes but just thinking about setting realistic standards. In a real interview setting, you may not get this detailed and that's okay. What they care about is high level stuff.

  • @abhineetsingh6720
    @abhineetsingh6720 2 месяца назад

    whats the site/tool she is using for jotting down requirements?

    • @tryexponent
      @tryexponent  2 месяца назад

      Hey abhineetsingh6720, the tool is called "Whimsical"!

  • @eduardoromao
    @eduardoromao 10 месяцев назад

    A lot of errors and a lot of important system components design.
    It's must like simple request workflow

  • @ncherrytree
    @ncherrytree 7 месяцев назад

    What text/diagram editor do you use?

    • @tryexponent
      @tryexponent  7 месяцев назад

      Hey ncherrytree! The diagram editor is a free whiteboard tool called "Whimsical"

  • @hungchau
    @hungchau Год назад +4

    She good. Hired!

  • @LucianTugui
    @LucianTugui 6 месяцев назад

    What tool is that?

    • @tryexponent
      @tryexponent  6 месяцев назад +1

      Hey LucianTugui, if you are talking about the whiteboard tool, it's called "Whimsical"!

  • @qutaibabs1
    @qutaibabs1 9 месяцев назад

    name of the app she is using

    • @tryexponent
      @tryexponent  9 месяцев назад

      The whiteboard app used here is called "Whimsical"!

  • @greglambert6199
    @greglambert6199 Год назад +1

    Well done but a little humorous to me a tik-tok employee didnt touch upon security.

  • @SatyaPrakash-il2ed
    @SatyaPrakash-il2ed 11 месяцев назад

    Can someone tell me what is the software she is using to write text and draw the design of the flow diagram.

    • @tryexponent
      @tryexponent  11 месяцев назад +1

      Hey SatyaPrakash-il2ed! The whiteboard used is called "Whimsical"