Hello Interview - SWE Interview Preparation
Hello Interview - SWE Interview Preparation
  • 20
  • 570 888
System Design Interview: Design Tinder w/ a Ex-Meta Staff Engineer
00:00 - Intro
02:38 - The Approach
5:44 - Requirements
13:55 - System Interface & Data Flow
20:13 - High Level Design
40:29 - Deep Dives
1:12:11 - Conclusion
A step-by-step breakdown of the popular FAANG+ system design interview question, Design Tinder.
Evan, a former Meta Staff Engineer and current co-founder of Hello Interview, walks through the problem from the perspective of an interviewer.
Connect with us on LinkedIn:
Joe (author of the write-up and total legend): www.linkedin.com/in/joseph-antonakakis-323b92a8/
Evan (dude in the video): www.linkedin.com/in/evan-king-40072280/
Resources:
1. Practice with our new Guided Practice: www.hellointerview.com/practice
2. Detailed write up of the problem: www.hellointerview.com/learn/system-design/answer-keys/tinder
3. System Design In a Hurry: www.hellointerview.com/learn/system-design/in-a-hurry/introduction
4. Excalidraw used in the video: link.excalidraw.com/l/56zGeHiLyKZ/7R2iUqFdfqP
5. Vote for the question you want us to do next: www.hellointerview.com/learn/system-design/in-a-hurry/vote
6. Netflix scaling Cassandra blog: netflixtechblog.com/revisiting-1-million-writes-per-second-c191a84864cc
Preparing for your upcoming interviews and want to practice with top FAANG interviewers like Evan? Book a mock interview at www.hellointerview.com.
Good luck with your upcoming interviews!
มุมมอง: 12 217

วีดีโอ

Coding Interview Fundamentals: Post-Order Traversal
มุมมอง 2.1K14 วันที่ผ่านมา
00:00 Intro 00:45 Diameter of a Binary Tree (Easy) 02:21 Brute-Force Approach 04:20 Optimal Approach (Bottom-up, Post-Order Traversal) 06:50 Visualizing Optimal Solution 10:30 When to use Post-Order Traversal 11:54 Practice Q1: Binary Tree Tilt (Easy) 14:58 Practice Q2: Longest Univalue Path (Medium) 21:33 Practice Q3: Binary Tree Maximum Path Sum (HARD) 24:29 Conclusion FREE interactive, visua...
Elasticsearch Deep Dive w/ a Ex-Meta Senior Manager
มุมมอง 14K28 วันที่ผ่านมา
Elasticsearch is a powerful, open-source, distributed search engine which is perfect for your system design interview with companies like Meta, Google, Amazon, and others. Walk through how to use Elasticsearch, pitfalls, how it works under the covers, and how you can use its design to inform your own. 00:50 Introduction 02:50 Search 04:24 Core Concepts 05:48 Ingesting Documents 10:49 Filtering ...
Coding Interview Fundamentals: Depth-First Search and Recursion (Binary Trees)
มุมมอง 3.8Kหลายเดือนก่อน
Depth-First Search and Recursion are the two most important topics for the coding interview, as they can be used to solve a wide variety of problems. This video will give you a strong foundation in both topics by teaching you how to solve Binary Tree problems using recursion. 0:00 Introduction 1:44 Depth-First Search Basics 4:24 Thinking Recursively 7:04 Visualizing a Recursive Function 10:21 R...
Design Yelp, Meta Staff Product Architecture: Hello Interview Mock
มุมมอง 8Kหลายเดือนก่อน
This is an anonymized recording of a real mock interview conducted on www.hellointerview.com. This is being shared in an anonymized fashion with the written consent of the candidate. In this session, the candidates was asked to design Yelp in a Staff, Meta Product Architecture interview. This candidate did 2 more mocks on the platform and was hired by Meta as a Staff, Product SWE! 🎉 Interested ...
System Design Interview: Design LeetCode (Online Judge) w/ a Ex-Meta Staff Engineer
มุมมอง 20Kหลายเดือนก่อน
00:00 - Intro 01:49 - The Approach 3:21 - Requirements 9:23 - System Interface & Data Flow 17:42 - High Level Design 35:55 - Deep Dives 59:50 - Conclusion A step-by-step breakdown of the popular FAANG system design interview question, Design LeetCode also named Online Judge, Online Coding Platform, or Live leaderboard. Evan, a former Meta Staff Engineer and current co-founder of Hello Interview...
Kafka Deep Dive w/ a Ex-Meta Staff Engineer
มุมมอง 43K2 หลายเดือนก่อน
Kafka is a must-know technology for System Design interviews. This video, with a former Meta staff engineer, breaks down the essentials, starting at a high level and working our way down into more and more detail. 00:00 Intro 01:53 Motivating Example 08:09 Overview 18:41 When to Use 23:43 Deep Dives 41:54 Conclusion Full writeup here: www.hellointerview.com/learn/system-design/deep-dives/kafka ...
System Design Interview: Design Top-K Youtube Videos w/ a Ex-Meta Senior Manager
มุมมอง 27K2 หลายเดือนก่อน
00:00 Intro 01:44 The Approach 02:46 Requirements 09:46 Core Entities & API 15:25 High-Level Design 29:09 Deep Dives 47:46 Conclusion A step-by-step breakdown of the popular FAANG system design interview question, design a service to calculate the top-k TH-cam videos by view, which is asked at top companies like Meta, Google, Amazon, Microsoft, and more. Stefan, a former Meta senior manager and...
Interview with a Meta EM: AI Impact on SWEs, Team Match, Ramp-Up, How to Learn
มุมมอง 9K3 หลายเดือนก่อน
In the first of our Hello Interviews series, Stefan interviews Christian, an EM at Meta, about his career path, the role of software engineers in the tech industry, and how to be effective in a big company. * Make It Stick - The Science of Successful Learning, Peter C. Brown // www.amazon.com/gp/product/0674729013/ * The Death of the Junior Developer, Steve Yegge // www.linkedin.com/feed/update...
Redis Deep Dive w/ a Ex-Meta Senior Manager
มุมมอง 40K3 หลายเดือนก่อน
Redis (Valkey, MemoryDB, Garnet, Dragonfly, etc.) is one of the most versatile and useful technologies to know for your system design interview with companies like Meta, Google, Amazon, and others. Walk through essential elements of Redis in system design interviews: how it's used, how it works under the covers, and common patterns you're likely to see in practice. 00:50 Why Redis 01:51 Redis a...
System Design Interview: Design a Web Crawler w/ a Ex-Meta Staff Engineer
มุมมอง 31K3 หลายเดือนก่อน
00:00 - Intro 01:58 - The Approach 4:08 - Requirements 10:31 - System Interface & Data Flow 14:48 - High Level Design 18:20 - Deep Dives 1:04:09 - Conclusion A step-by-step breakdown of the popular FAANG system design interview question, Design a Web Crawler, which is asked at top companies like Meta, Google, Amazon, Microsoft, and more. Evan, a former Meta Staff Engineer and current co-founder...
System Design Interview: Design an Ad Click Aggregator w/ a Ex-Meta Staff Engineer
มุมมอง 40K4 หลายเดือนก่อน
00:00 - Intro 01:55 - The Approach 4:16 - Requirements 10:49 - System Interface & Data Flow 14:12 - High Level Design 29:43 - Deep Dives 52:10 - Conclusion A step-by-step breakdown of the popular FAANG system design interview question, Design an Ad Click Aggregator, which is asked at top companies like Meta, Google, Amazon, Microsoft, and more. Evan, a former Meta Staff Engineer and current co-...
System Design Interview: Design Dropbox or Google Drive w/ a Ex-Meta Staff Engineer
มุมมอง 55K5 หลายเดือนก่อน
System Design Interview: Design Dropbox or Google Drive w/ a Ex-Meta Staff Engineer
System Design Interview: Design Uber w/ a Ex-Meta Staff Engineer
มุมมอง 87K6 หลายเดือนก่อน
System Design Interview: Design Uber w/ a Ex-Meta Staff Engineer
System Design Interview: Design Ticketmaster w/ a Ex-Meta Staff Engineer
มุมมอง 103K6 หลายเดือนก่อน
System Design Interview: Design Ticketmaster w/ a Ex-Meta Staff Engineer
Design FB Live Comments: Hello Interview Mock
มุมมอง 20K7 หลายเดือนก่อน
Design FB Live Comments: Hello Interview Mock
System Design Interview Walkthrough: Design Twitter
มุมมอง 48Kปีที่แล้ว
System Design Interview Walkthrough: Design Twitter

ความคิดเห็น

  • @ElHassaneBoushib
    @ElHassaneBoushib 2 ชั่วโมงที่ผ่านมา

    Awesome content as usual! Keep up the great work!

  • @michaelgreco2326
    @michaelgreco2326 5 ชั่วโมงที่ผ่านมา

    Love the content! Watched so many videos and they have really helped me in interviews. I had one questions. Instead of dumbing data from Kinesis to S3 to be read by spark. Why not just have spark batch processing read right off of Kinesis? If you are doing reconciliation every hour, day, or whatever. If is is smaller than the retention policy on Kinesis, I thought you could just do it from there. What am I missing?

  • @fernieqin90903
    @fernieqin90903 7 ชั่วโมงที่ผ่านมา

    Very very nice video.

  • @tuskiomisham
    @tuskiomisham 8 ชั่วโมงที่ผ่านมา

    Q: I've never heard a systems design question about a write-heavy application. why even specify a system is 'read heavy' anyway?

    • @hello_interview
      @hello_interview 7 ชั่วโมงที่ผ่านมา

      There are lots of write heavy systems. Ad click aggregator and tinder and two we even have videos for

  • @troyfischer6786
    @troyfischer6786 8 ชั่วโมงที่ผ่านมา

    Echoing the existing sentiment in that this content is incredibly informative and well put together. Really appreciate your work

  • @saber3112
    @saber3112 9 ชั่วโมงที่ผ่านมา

    Great video , is it necessary to have the back of calculations for storage or just throughput and bandwidth..

  • @mse312
    @mse312 10 ชั่วโมงที่ผ่านมา

    I have 2 questions and would be most grateful if you could answer them? 1) Is there a reason in TicketMaster example you drew the API Gateway component but not here? 2) Is there a reason you mentioned CRUD Service in TIcketMaster example but not in this one?

  • @MrCSFTW
    @MrCSFTW 10 ชั่วโมงที่ผ่านมา

    Maybe a nit or I'm not in the know. But SQS doesn't have built in exponential retry right? You'd need to implement with approxRecieveCount and modify visibility timeout?

    • @MrCSFTW
      @MrCSFTW 10 ชั่วโมงที่ผ่านมา

      God my TH-cam handle is unbearable I apologize

  • @DilipKumar-ij3cf
    @DilipKumar-ij3cf 15 ชั่วโมงที่ผ่านมา

    Can you please explain why we need kinesis in the middle and not directly write to Flink? Just a suggestion, when you introduce a particular technology please explain why. You do at time for DB but sometime you miss.

    • @hello_interview
      @hello_interview 13 ชั่วโมงที่ผ่านมา

      Write throughout. Pretty sure this is covered as it’s the crux.

  • @thomaskim5742
    @thomaskim5742 18 ชั่วโมงที่ผ่านมา

    This is the best system design study resource I've came across that has depth and feedback (pass/no pass for mid/sr/staff) on design choices. Question: How can we use DynamoDB for Driver Lock? I thought DDB is eventually consistent for writes, so it doesn't offer strong consistency. It offers strong consistency for reads. Is that sufficient?

  • @jagrit07
    @jagrit07 18 ชั่วโมงที่ผ่านมา

    As always the content is awesome, I had a QQ on the cron job thing to fix the stale reserved tickets. In the video you mentioned, There could be a scenario that ticket remains unreserved for 19 minutes when the cron job runs every 10 mins or so. I didn't understood that. If at all anyone is reading and has time, Can you please explain? Thanks in advance!

  • @IshaZaka
    @IshaZaka วันที่ผ่านมา

    Hi It is so good, plz add back of envelope estimation in the session

  • @anthonytafoya3451
    @anthonytafoya3451 วันที่ผ่านมา

    You are a beast

  • @eshw23
    @eshw23 วันที่ผ่านมา

    PLEASE start using the dark mode for excalidraw, i watch these at night to prep haha.

  • @TedMosby-fk5gj
    @TedMosby-fk5gj วันที่ผ่านมา

    Thank you your explanations are the best, please also do one for Netflix I got asked that recently and its the most interesting.

    • @hello_interview
      @hello_interview วันที่ผ่านมา

      Check our TH-cam write up. Pretty similar.

  • @IshaZaka
    @IshaZaka วันที่ผ่านมา

    plz make live streaming app or twitch type of system

  • @IshaZaka
    @IshaZaka วันที่ผ่านมา

    Its so helpful, plz make more

  • @CS-eh8eo
    @CS-eh8eo วันที่ผ่านมา

    BTW, really enjoying the content! I think if you made a statement like "kafka never goes down" in an interview it would be a bit of an odd thing to hear as an interviewer... of course kafka could go down even if running a managed service. Your application should surely handle this scenario in such a way that the system can recover when Kafka comes back online, hopefully due to its durability and persistent storage of events, your application should be able to resume where it left off. Wdyt? Edit - I need to add precision to my statement here, so am I correct in saying Kafka is only as durable as how you configure it, specifically how you configure replicas and how producers set replica acknowledgement before marking commit transactions as complete. If acks=1 is set, the producer only waits for acknowledgement from the leader broker, which could fail before writing to replicas, and data could be lost. acks=all is called Leader and In-Sync Replica Acknowledgement. So in summary, Kafka can certainly fail, I think a good answer to this question would be detailing how to configure it for durability, how that will impact performance, whether the operation needs such data consistency vs availability, and how your application reacts to unavailability of the kafka broker, and how it recovers when Kafka comes back online.

  • @8610803eternal
    @8610803eternal วันที่ผ่านมา

    Thanks for the video! When implementing the Redis solution, wouldn’t availability of cache resources be an issue? Now every swipe event will cause a check in the cache for the inverse swipe. If redis is single-threaded, wouldn’t that overload the cache?

    • @hello_interview
      @hello_interview วันที่ผ่านมา

      In memory! Redis clusters can handle hundreds of millions of reads a second

  • @jagrit07
    @jagrit07 วันที่ผ่านมา

    I want to take a moment to explain why Evan is actually the King and it's not just his last name. Around 55 min into the video, When we are handling the consistency to only send 1 request to a driver at one time, He gave 2-3 solutions starting from adding a driver status like request_sent. He explained it properly and even said it's good enough for mid level with the cron job etc. Then he removed all that and brought it Redis into picture with it's TTL thing. Now this is where the whole thing becomes beautiful because he gave multiple approaches and then choose the best. Just like any DSA problem doing 2 loops and then using some dsa/algo to make it linear. And also he co-related it by saying it is just like a HashMap. I think this is how it will stay with one instead of just saying from starting - Okay use Redis bye. I have read tons of tutorials and some do say that. So yeah, Evan is the King! Thanks Evan. This might be the first time I have commented on each video of the channel I have gone through. You deserve it! Thanks

  • @jagrit07
    @jagrit07 วันที่ผ่านมา

    Watched first 30 minutes of the video and I have to say this is by far the best tutorial of Uber because you haven't used Websockets and all other jargons yet. We must understand the basics first. Like The system should atleast work for 1 user and me being mid-level candidate, It is important to build what you did in first 30 mins to actually understand things. All the other tutorials out there first talk about Websockets etc etc. Those are good but I think your method is a better. Amazing. Time to watch the remaining 30 mins! Thank you, You are doing awesome job to the community.

  • @furrygoldennuts
    @furrygoldennuts วันที่ผ่านมา

    FWIU, Redis is crazy fast because it is in memory database. There's a possibility of data loss during which we're likely to miss matches altogether. Adding Redis is 1 step closer to getting a better experience of instant matches. However, we still need a cron job to look back and look for matches. Unless of course we use persistence like append only log but then we lose on performance -- it is equivalent to a memtable + append only log same as Cassandra. Or am I wrong here ?

  • @CS-eh8eo
    @CS-eh8eo วันที่ผ่านมา

    Where do we draw the line between handling of mega users vs normal users? To me this suggests an issue with the design, is this actually the way big social media companies handle this?

  • @CS-eh8eo
    @CS-eh8eo วันที่ผ่านมา

    How can you rate limit from stateless API gateway, are you suggesting a) using IP hash based load balancing and storing state on the gateway workers? b) using distributed state storage cache and reading from this upon every http request?

  • @jagrit07
    @jagrit07 วันที่ผ่านมา

    Hey Evan, This is truly awesome content. I had one question, In each of your video, You end up telling lot of amazing things like in this, One of thing you mentioned was FileSystemWatcher to tell the local changes. Now my question is more on How did you learn all this stuff? Like You have 10-12 videos on different designs so it's not likely that you practically built those systems in your career. So How do we basically learn these unknown of unknown things? Do you read some books etc etc? I hope my question made some sense, Thanks in advance.

  • @jagrit07
    @jagrit07 วันที่ผ่านมา

    Watched 20 minutes of the video so far and This is the 3rd resource I am watching regarding Dropbox design, I have read Alex's book, read Grokking book and now watching this just for fun and I think Evan King is actually the King lol. Amazing video, Please keep on adding more content. Yesterday, I commented on Tinder's Design video and now here. I think I might have to comment on all the videos once I watch those because this is really good stuff and we viewers should appreciate it and hence I will keep adding comments lol :D

  • @brwv
    @brwv วันที่ผ่านมา

    This is the best HLD content available on youtube. The way you explain complex things so elegantly is just amazing!!!

  • @Harry-p3d
    @Harry-p3d 2 วันที่ผ่านมา

    Hi Evan, great video! A quick question for the consistency definition. In CAP, the consistency is defined as "every single read of the system needs to read the latest write or else it will fail". Based on this definition, how can you derive the definition of matching consistency in this video? (i.e. <1> we don't send more than one request at a time for a given ride; <2> we don't send any driver more than one request at a time). I am looking forward to your reply. Thank you!

    • @hello_interview
      @hello_interview 2 วันที่ผ่านมา

      Yes! Driver matching in this system needs to be consistent. Specifically for the driver lock.

    • @Harry-p3d
      @Harry-p3d วันที่ผ่านมา

      @@hello_interview My actual question is "Why is the driver lock related to the consistency in CAP?". Sorry for not describing the question clearly...

  • @jagrit07
    @jagrit07 2 วันที่ผ่านมา

    Lol you are great, I stopped the video half way to comment this. The way you explained the eventually consistency problem where two users swiped each other at the same but Cassandra being eventually consistent will prevent them to ever know and they will not be able to find the love they are seeking lol. Amazing Stuff. Requesting you to create more and more content. You are a legend!

  • @ranganathg
    @ranganathg 2 วันที่ผ่านมา

    As i watch this again, why do you say checkpointing is not required at 45:30 ish time? How does a job keep track of which time interval to process the click rate? Does flink internally maintain a state of the processed timestamp? (im not familiar with flink! )

  • @derekxu9476
    @derekxu9476 2 วันที่ผ่านมา

    phenomenal

  • @sumitgadi7633
    @sumitgadi7633 2 วันที่ผ่านมา

    Please keep some free mock interviews on your Hello Interview website.

    • @hello_interview
      @hello_interview 2 วันที่ผ่านมา

      How would the coaches get paid? :)

  • @yaoyao8180
    @yaoyao8180 2 วันที่ผ่านมา

    below are not clear to me, appreciate some explaination: 1. is the database in seralization isolation lvl, will a weaker lvl work? 2.say both user A and B try to book on same 3tickets. userA's whole process went through well and booked all three ticket. UserB's network is laggy, the request reached booking service 10min late, how will the system prevent double booking for userB? if we use select and update for ticket table, then we must use seralization isolation lvl right? will this isolation lvl good enough for large write traffics?

  • @Richard-yw9if
    @Richard-yw9if 2 วันที่ผ่านมา

    Why not talking about cache invalidation when using as a cache?

  • @IshaZaka
    @IshaZaka 3 วันที่ผ่านมา

    Its so helpful plz make more,

  • @eshw23
    @eshw23 3 วันที่ผ่านมา

    Nice video! I would love it if you can do a design Netflix video as well, recently I got asked that.

  • @eshw23
    @eshw23 3 วันที่ผ่านมา

    This dudes explanations are so perfect, well organized and easy to understand for people like me who are more around the mid level, thank you!

  • @jaymiller3757
    @jaymiller3757 3 วันที่ผ่านมา

    Aah thank you for this!! I'm just learning system design for the first time really. This is the first walkthrough I've watched and it is SO helpful to see your process and how all the building blocks fit together! 🤩

  • @Harry-p3d
    @Harry-p3d 3 วันที่ผ่านมา

    Hi Evan, thank you for sharing the high-quality video! One quick question: in the step of drawing the design diagram, when do you use one-directional arrows between boxes? When do you use the bidirectional arrows? I am looking forward to your reply. Thank you!

    • @hello_interview
      @hello_interview 3 วันที่ผ่านมา

      Tbh I don’t focus on it much. I’m sure I have inaccuracies there. Yo be correct it would be whether the flow of data is bi- or uni-directional

  • @ahmed.kamals
    @ahmed.kamals 3 วันที่ผ่านมา

    Thank you man, very wonderful, should you also mention observability?

    • @hello_interview
      @hello_interview 3 วันที่ผ่านมา

      You can. The fact is there are a million things you *could* mention. CI/CD, monitoring, GDPR, all things you need in any system. Mention them if you like, but to me as an interviewer I don’t learn anything about the candidate when they say these things so it just wastes some of the valuable (and very limited) time we have

  • @clee6030
    @clee6030 3 วันที่ผ่านมา

    can you make a video or blog post on flink/spark deep dive?

  • @Richard-yw9if
    @Richard-yw9if 3 วันที่ผ่านมา

  • @sparrow2068
    @sparrow2068 3 วันที่ผ่านมา

    Why do we use nosql for the write heavy db? Since the data is very structured and you might want complex queries…

  • @mailtokvvn
    @mailtokvvn 3 วันที่ผ่านมา

    Thanks for great video, one question on swipe db, what is the partition key based on as two users are required to form the key.

  • @RajU-mb7oq
    @RajU-mb7oq 3 วันที่ผ่านมา

    Genius to explain the system design making it look easy. Fantastic job

  • @Hangar1318
    @Hangar1318 4 วันที่ผ่านมา

    Hey Evan. I am a former FAANG staff engineer and I am interviewing actively now. Your content is the best out there. The deep dives are the best. They've helped me a lot. Please continue creating content. And if there is a Patreon or something I can contribute to then please let us know.

    • @hello_interview
      @hello_interview 3 วันที่ผ่านมา

      Awww man you rock! No need re-patreon. Tell a couple friends about hello interview and we’re more than even. Cheers

    • @Hangar1318
      @Hangar1318 3 วันที่ผ่านมา

      ​@@hello_interviewI have already told a few friends and will continue telling more people :)

  • @smkhan007
    @smkhan007 4 วันที่ผ่านมา

    What if I login through a web app and upload a file? Who will do the chunking in that case?

  • @remipan4604
    @remipan4604 4 วันที่ผ่านมา

    Hi i just want to say your work is truly fantastic and you are an excellent educator! I started watching your videos to prepare for system design interviews and your explanations and examples are top notch. I'm motivated to continue watching not just to prep but also to expand my knowledge and improve my craft. Eagerly awaiting the great work you'll do next!

  • @theyayaa
    @theyayaa 4 วันที่ผ่านมา

    I have my amazon interviews coming up and your videos have been an amazing resource. Thank you!