Facebook System Design Interview: Design Twitter

Поділитися
Вставка
  • Опубліковано 26 вер 2024

КОМЕНТАРІ • 71

  • @tryexponent
    @tryexponent  2 роки тому +1

    Don't leave your system design interview to chance. Sign up for Exponent's system design interview course today: bit.ly/3NLRGRI

    • @stanleymakori777
      @stanleymakori777 Рік тому

      But the create API is only factoring in text mesages. What about posts that have videos or images ?

    • @Nexatek
      @Nexatek 5 місяців тому

      If the quality of your courses are as bad as the current mock interview then I would rather never try exponent ..

  • @jojay6472
    @jojay6472 Рік тому +11

    Someone made this guy an EM lol

  • @Crack_interview_with_sim
    @Crack_interview_with_sim 2 роки тому +37

    Very Bad idea giving name like gettweet ,createtweet . Basic naming of Rest API end points . Considering tweet as a resource just have GET and POST on it

  • @justinmilner8
    @justinmilner8 6 днів тому

    Critiques:
    - Make it a conversation with your interviewer, engage them and give them space to speak
    - Detail the scale requirements of the system in more detail, using numerical calculations
    - Non functional requirements didn't have enough detail - clarify the consistency, availability, partition tolerance requirements
    - Don't include the verbs in the API naming
    - Mention load balancers, but don't include them in your diagram
    - Having multiple user boxes was redundant
    - Discuss push/pull mechanisms in more detail
    - Beware of adding too much complexity to a system, and just glazing over it
    - Don't include diagram items for replicas, at most, just mark the service/database
    - More detail of horizontal scaling should be included
    Overall, I think people preparing for interviews should view this as an example of what not to do.

  • @nj1204
    @nj1204 2 роки тому +39

    We should at least do some back-envelope analysis on the MAU, DAU, QPS,etc for the non-functional requirement. We should also make it more interactive, i.e. check the feedback of the interviewer before jumping into the details of the API's. Maybe ask the interview to see if he wants to see which one first: high-level design, API, or data model?

    • @wfan2844
      @wfan2844 2 роки тому +2

      QPS, Storage and Network Bandwith estimation are required.

    • @harshitkhandelwal8515
      @harshitkhandelwal8515 8 місяців тому

      He skipped the data model as well

  • @usrenaem
    @usrenaem 2 роки тому +13

    Thanks for the content! API structure is kind of out of common way to design restful apis. Don’t use verbs when it is possible.

  • @anthonyc8579
    @anthonyc8579 2 роки тому +42

    The geographic load balancing to different API servers part made no sense to me. When a user makes a request to a load balancer, they make an API request specifically to the load balancer and receive from it directly, so the don't make contact with the API servers at all. If you put the API servers in different regions, that would only be with respect to the load balancer, not the user themselves, so it wouldn't help at all since the load balancer is still in the same region. You'd need to do the geographic routing first before the load balancing step to do this properly, aka a traffic manager.

    • @kk20299
      @kk20299 4 місяці тому

      He is kinda nervous or not prepared. He used a load balancer instead of a traffic manager....

    • @prashantchamoli7263
      @prashantchamoli7263 Місяць тому

      That was exactly my question like where would load balancer be geographically
      Can you please explain what traffic manager is in brief?

  • @ashwin81088
    @ashwin81088 3 місяці тому

    This is a good interview. You designed twitter in 20 mins. Haters will say it’s not good.

  • @AshishShah1512
    @AshishShah1512 2 роки тому +75

    This interview feels like it is given by a New Grad Software Engineer.

    • @pratiks3044
      @pratiks3044 2 роки тому +2

      Cant agree more with you.

  • @cpy
    @cpy 2 роки тому +16

    This was pretty rough. If that’s what Exponent’s class teaches you then I’ll pass

    • @donotreportmebro
      @donotreportmebro 2 роки тому +1

      not everyone wants to work at Albertsons, Walmart is ok for some

    • @cpy
      @cpy 2 роки тому +3

      @@donotreportmebro you base the level of learning on what company you are applying to? Aim higher for yourself, forget the company

    • @saurabhtyagi1870
      @saurabhtyagi1870 2 роки тому

      @@cpy Nice

  • @rostislav_engineer
    @rostislav_engineer Місяць тому

    thanks Hozefa!

  • @rajeshg3570
    @rajeshg3570 2 роки тому +11

    To me it sounded like..this is very very high level design ..but in my opinion he could have added some details around some of the below aspects or at least get clarification on requirements to trim out some of these..
    1. Capacity planning
    2. Type of DB and reason behind choosing that
    3. Security aspects
    4. High level db design
    5. Tech stack ..for example.. aws s3 or cloud front or redis or Kafka etc
    6. Scaling ..
    7. peek load handling
    8. caching mechanism

  • @randxalthor
    @randxalthor 2 роки тому +6

    Probably been asked on previous videos, but what software/website is used as the design visualization/scratchpad for the interviewees?

  • @manoelramon8283
    @manoelramon8283 Рік тому +1

    sql db for tweets will be slow... timeline and feeds are different things

  • @nicholasmanning4307
    @nicholasmanning4307 2 роки тому +16

    One of the most horrible and unrealistic design interviews out there on the internet.
    Asks almost no questions (fundamental to design interviews).
    Not collaborative (also fundamental to design interviews).
    Doesn't add a space in front of "(" when writing in English. Super distracting and unprofessional.
    Breaks basic RESTful conventions with routes like /create/tweet

  • @subhashismohanty5420
    @subhashismohanty5420 5 місяців тому

    The API names are not as per the standard. But overall good discussion.

  • @harshitkhandelwal8515
    @harshitkhandelwal8515 8 місяців тому

    When interviewer asked for 80:20 question, I knew he was expecting to listen cache in the answer but the interviewee failed to catch that.

  • @tommysuriel
    @tommysuriel 2 роки тому +6

    He didn't do any capacity calculations such as bandwidth and storage, is that ok for these interviews?

    • @wfan2844
      @wfan2844 2 роки тому +3

      probably not. If you ever interviewed with facebook, their prep doc says those calculations are 100% required.

    • @vineethsai1575
      @vineethsai1575 2 роки тому

      no, its probably a red flag.

  • @jimmycheong7970
    @jimmycheong7970 2 роки тому +3

    Can definitely tell that this interviewee watched the Success In Tech version for this video. Like Chinese whispers, where unfortunately a lot of things are discussed at a high level and not enough rationale is explored.
    I mean he even says Lady Gaga for his example for influencers, word for word as in the Success in Tech video. Just saying 🤷🏻‍♂️

  • @Hanso1o317
    @Hanso1o317 2 роки тому +1

    What app is it in the background?

  • @tushardhingra
    @tushardhingra 2 роки тому +1

    @exponent which tool is being used while answering the question?

  • @bhumir9279
    @bhumir9279 Рік тому +1

    Appreciate content, but little average api design

  • @shawnreichard5497
    @shawnreichard5497 Рік тому

    Would it be good design to have the timeline as a queue. The queue would have a size that could perhaps be increased for people with lots of traffic. That way we store items that would be in the queue in the faster access database space and perhaps the stuff that would be maybe 3 queue away would perhaps be stored in a separate less frequently accessed storage (E3 perhaps?)

  • @vivekkaushik9508
    @vivekkaushik9508 Рік тому +2

    For a facebook program manager that's a potato quality webcam.

  • @theafrodreamer
    @theafrodreamer 4 місяці тому +1

    Candidate seemed nervous

  • @alexfomin1207
    @alexfomin1207 Рік тому

    What tool for creating the diagrams are you using?

    • @tryexponent
      @tryexponent  Рік тому +1

      Hi Alex! The whiteboard tool being used here is “Whimsical”. They have a free and paid version so do check them out if you are interested!

  • @janezhang1550
    @janezhang1550 2 роки тому +3

    For the timeline database, would it make more sense to store a list of tweet ids per user and then query the user database at runtime to compile the tweet text?

    • @DigitalAlligator
      @DigitalAlligator Рік тому +3

      if you only store id, you need to use the id to query the database again, you still need to visit the same database. While in the timeline generator, the timeline already been build and just get everything all-in-once.

    • @gustavoalves4324
      @gustavoalves4324 6 місяців тому

      In this case we are sacrificing storage and consistency to have low latency, which is one of the non functional requirements. It would be way slower to fetch the timeline and then populate with the tweets from the tweets database, not to say we would be coupling the timeline service with the database used for creating tweets.

  • @befuture_ru
    @befuture_ru 2 роки тому +2

    I like it 👍 What IDE do you use for the design prototyping?

  • @souvikghosh5668
    @souvikghosh5668 2 роки тому +15

    I was expecting more out of this. This was a waste of my time.

  • @innoirvinge8431
    @innoirvinge8431 2 роки тому

    its like only 24m system design interviews are like at least 35m

  • @calvio2835
    @calvio2835 Рік тому +2

    a failed interview for both interviewer and interviewee. such low quality

  • @darkmadhavsharma
    @darkmadhavsharma 2 роки тому

    cool makes sense.....

  • @ravindrabhatt
    @ravindrabhatt 2 роки тому +3

    Looks like he didn't prepare well for the interview.

  • @Nexatek
    @Nexatek 5 місяців тому

    This is a bad example of how you should not approach a system design interview

  • @fartzy
    @fartzy 2 роки тому +4

    This design was so mediocre

  • @eurobeesbees3843
    @eurobeesbees3843 2 роки тому +27

    This is a bad video. I would reject this candidate. The API design is too abstract, the get API is not right. FB system design interviews are surely not this easy. This person is very lucky to be at FB.

    • @implemented2
      @implemented2 2 роки тому +14

      And where are you?

    • @slavanikulin8069
      @slavanikulin8069 Рік тому +3

      diversity hiring quotas

    • @abp4708
      @abp4708 Рік тому

      @@slavanikulin8069 helps to have interviewers that look like you. Less bias.

    • @harshitkhandelwal8515
      @harshitkhandelwal8515 8 місяців тому

      He is at WealthFront and was at paypal for 8 years before that. Designing Twitter was asked in a FB interview hence the title

  • @pinkylover911
    @pinkylover911 2 роки тому

    what is the meaning of mvp?

    • @yassinezarir6428
      @yassinezarir6428 2 роки тому

      Minimum Valuable Product.

    • @tryexponent
      @tryexponent  2 роки тому +2

      Minimum viable product - the most basic version of a product you can ship to start getting feedback from users.

  • @42Siren
    @42Siren 2 роки тому +2

    This is too basic design. Unless the candidate has less than 4 years of experience, this should get rejected

  • @JoyceCheng-hn3rm
    @JoyceCheng-hn3rm Рік тому +1

    Does anyone else think this interviewer is annoying?

  • @anonymously7777
    @anonymously7777 2 роки тому

    Lost at influencer service/timeline generation piece. Please elaborate to me how these services work