1. Flash Sale (Google, TikTok Interview Question) (*exact* counters -- CRDTs and even sharded counters on their own won't get you there) 2. Video recommendation service (ML Interview Question) (no "black box ML service" -- do proper collaborative filtering / matrix factorization) 3. Digital Wallet (Google Interview Question) (idempotence for fault tolerance is key) 4. Get Active Events (Uber Interview Question) (counter accuracy and proper indices is actually tricky here in an OLTP scenario) 5. Ticketmaster (Amazon Interview Question) (50k+ TPS scale, delayed fail notifications are unacceptable -- also group seating) 6. Ad Targeting (Pinterest Interview Question) (somewhat of an extension of ad click counter, business rules engine won't scale, consider how the ML models would work) 7. OTP with Cache (Uber Interview Question) (this is 2FA -- you have 2 devices involved. Try to think through the multiple variations of which receives the code and which enters the code.) 8. Distributed Tracing (Uber Interview Question) 9. WhatsApp / Discord (group chats, higher scale than one machine holding all the connections, properly handle routing messages to the proper persistent connection, when might polling be more cost effective than web sockets?) 10. Search Autocomplete ("Tries" are LLD, not HLD) 11. Google Calendar (recurring meetings, handle event updates) 12. Stock Exchange (limit orders and market orders, live price updates, L2/L3 data) 13. Design a system for nested comments (reddit-style, and dodge the N+1 retrieval issue. 2nd variation: DAG instead of tree of comments) 14. Design a system for showing mutual friends ("Graph DB" like neo4j can't handle LinkedIn/Facebook scale) github.com/systemdesignfightclub/SDFC youtube.com/@SDFC https://discord.gg/invite/system-design-fight-club-993670645718204479 POLL: WHICH ONE IS THE HARDEST? Got your own "very hard" question to share? Leave it in a comment below. TC 370k
What’s very hard is figuring out which one is very hard!!
😂 I was originally going to try sorting them by difficulty, but decided to just get this post out before investing too much effort
How about a collaborative doc editor. Google docs, word online, notion?
That’s a great one to ask folks
well, the trick is that op transform CRDT, and then it just devolves into mostly just how well you understand a CRDT like that one on top of the file sharing part (although RBAC would easily add an extra dimension of complexity) that is a good one though 👍
Inception
Sharding sounds like sharting. Shitting and farting at the same time.
Who gets asked questions this hard?
By your mates
Are these questions for mid or senior+ level?
My hardest was TikTok recently which dive deep into CRDT which is exactly what you mentioned based on #1. This was for 3-1(Staff)
Well, the CRDT usually won’t work You can do a thing called a forgetful bloom filter, but it’d still be at least a little probabilistic to my understanding — and you’d have to roll it yourself (which is totally possible with stuff like Cosmos DB or Riak, but an absolute pain to do in practice)
India
17h
3174
Why is it so G*damn difficult to move money out of India
Cars
Yesterday
2024
Cyber truck killer: Chinese version of EV truck
Tech Industry
11h
506
How’s capitalism going?
AMA
Yesterday
3271
I have worked at TikTok US core tech for 3 years. AMA.
Personal Finance
Yesterday
567
At what point is using a financial advisor worth it?
Design an app that builds itself
I think a “low code” / “no code” platform for making apps/websites that also has stuff for adding integrations would actually be fair game and another pretty solid question