Facebook System Design Interview: Design Twitter

preview_player
Показать описание

Watch our mock Facebook system design interview. Kevin Wei (Coinbase PM) asks Hozefa (Facebook, Wealthfront EM) a system design question on designing Twitter.

Chapters -
00:00:00 - Introduction
00:00:43 - Answer
00:01:00 - Requirements
00:05:18 - API
00:08:02 - Design
00:22:12 - Tips

Watch more videos here:

ABOUT US:
Did you enjoy this interview question and answer? 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!

#systemdesign #facebook #software #engineeringmanagement #tech #entrepreneurship #exponent #tpm
Рекомендации по теме
Комментарии
Автор

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

Crack_interview_with_sim
Автор

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.

usrenaem
Автор

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?

nj
Автор

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.

anthonyc
Автор

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

ashwin
Автор

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

randxalthor
Автор

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

anonymously
Автор

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?

janezhang
Автор

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

cpy
Автор

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

manoelramon
Автор

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?)

shawnreichard
Автор

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

tushardhingra
Автор

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

rajeshg
Автор

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

befuture_ru
Автор

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

tommysuriel
Автор

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

subhashismohanty
Автор

What tool for creating the diagrams are you using?

alexfomin
Автор

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

AshishShah
Автор

Appreciate content, but little average api design

bhumir
Автор

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 🤷🏻‍♂️

jimmycheong