Cracking FAANG
Cracking FAANG
  • 270
  • 776 847
Mock Meta Product Architecture/Design Interview Discussion - Design Instagram
Discord Link: Channel Discord Community: discord.com/invite/s8JX2ARnSg
Today we are doing another mock interview discussion where we talk about how to approach the designing Instagram question from a product design/architecture variation.
This again is not a wholistic answer and there are many areas where you can deep dive further and many topics which I did not even cover. Everyone's interview experience will be different and this video is meant to be informative: giving some insight into the types of things you might want to discuss when approaching the design of a system with the end user in mind.
TIMESTAMPS:
00:00 Introduction & Disclaimer
00:47 Question Presentation & Basic Requirements
03:41 SQL DB Models + Schema
08:00 System Diagram + Some Deep Dives
23:30 APIs
30:18 More Deep Dives
45:00 Recap + Outro
zhlédnutí: 3 973

Video

Writing Hack Code @ Meta | All You Need To Know In Under 10 Minutes
zhlédnutí 1,5KPřed 2 měsíci
Channel Discord Community: discord.com/invite/s8JX2ARnSg Hack documentation: docs.hhvm.com/hack/source-code-fundamentals/introduction In today's video we are doing a quick run-down of everything you need to know about the Hack programming language before joining Meta. Most of the things you will learn quickly on the job but for those of you who are curious then watch this video and pick up the ...
Meta Engineering Culture Explained - RFC Documents
zhlédnutí 1,8KPřed 3 měsíci
Channel Discord Community: discord.com/invite/s8JX2ARnSg In today's video we are diving into Meta's engineering culture and explaining some of the day to day us engineers do. There's not much information about working at Meta and what it's like other than superficial day-in-the-life videos, so I figured I'd give you guys insight into a piece of our engineering culture that plays a big role in h...
Meta Product Architecture/Design Interview - Part II - Mock Question Discussion
zhlédnutí 3,9KPřed 3 měsíci
Discord Link: Channel Discord Community: discord.com/invite/s8JX2ARnSg Part 1: czcams.com/video/jj7NIIkJW4U/video.html Today's video is the follow-up to the video I did explaining the Product Architecture interview. Today we are going over a leaked question and how you might want to approach this in terms of the things you need to discuss. I purposefully did not make this a complete solution be...
Meta Product Architecture/Design Interview - Part 1 - Overview
zhlédnutí 3,7KPřed 3 měsíci
Channel Discord Community: discord.com/invite/s8JX2ARnSg In today's video we are discussing the topic of the Meta Product Architecture interview. There aren't many resources out there which really dive into this round so I figured I'd help you guys out and let you know what to expect here at a high level. This is part one of a two part video where we go over the interview and it's expectations....
K-TH MISSING POSITIVE NUMBER | LEETCODE 1539 | PYTHON SOLUTION
zhlédnutí 2,3KPřed 4 měsíci
Channel Discord Community: discord.com/invite/s8JX2ARnSg Problem Link: leetcode.com/problems/kth-missing-positive-number/description/ Today we are solving a fun and simple question that is really good for training your brain to think in an algorithmic way. It's First Missing Positive Number (Leetcode 1539). TIMESTAMPS 00:00 Intro 00:08 Question Prompt 00:17 Examples 02:00 Solution Intuition 04:...
LARGEST PALINDROMIC NUMBER | LEETCODE 2384 | PYTHON SOLUTION
zhlédnutí 1,5KPřed 4 měsíci
Channel Discord Community: discord.com/invite/s8JX2ARnSg Problem Link: leetcode.com/problems/largest-palindromic-number/description/ Today we are solving an interesting palindrome based question that on the outside seems a bit easy to solve but has some nasty tricks up its sleeve we need to watch out for. It's "Largest Palindromic Number" (Leetcode 2384). TIMESTAMPS 00:00 Intro 00:07 Question P...
VERIFYING AN ALIEN DICTIONARY | LEETCODE 953 | PYTHON SOLUTION
zhlédnutí 846Před 4 měsíci
Channel Discord Community: discord.com/invite/s8JX2ARnSg Problem Link: leetcode.com/problems/verifying-an-alien-dictionary/description/ Today we are solving a cool easy level question that actually used to be Meta's top interview question before the hiring freezes: Verifying an Alien Dictionary. It's quite a fun problem and pretty easy to solve though there are some minor gotchas we need to wat...
FIRST BAD VERSION | LEETCODE 278 | PYTHON BINARY SEARCH SOLUTION
zhlédnutí 775Před 4 měsíci
Channel Discord Community: discord.com/invite/s8JX2ARnSg Problem Link: leetcode.com/problems/first-bad-version/description/ Today we are solving a question that is fantastic for learning Binary Search. it's First Bad Version (Leetcode 278). This question is great because it's very easy intuition wise and it exposes us to a different variation of binary search where we want to move our pointers ...
FIND PIVOT INDEX | LEETCODE 724 | PYTHON SOLUTION
zhlédnutí 417Před 4 měsíci
Channel Discord Community: discord.com/invite/s8JX2ARnSg Problem Link: leetcode.com/problems/find-pivot-index/description/ Today we are solving an easy level question that is great for beginners to learn the ropes of algorithms and thinking in an LC way: Find Pivot Index. TIMESTAMPS 00:00 Intro 00:05 Question Prompt 00:31 Basic Examples 01:45 Solution Intuition 03:20 Coding 04:40 Time/Space Com...
LONGEST UNIVALUE PATH | LEETCODE 687 | PYTHON DFS SOLUTION
zhlédnutí 830Před 4 měsíci
Channel Discord Community: discord.com/invite/s8JX2ARnSg Problem Link: leetcode.com/problems/longest-univalue-path/description/ Today we are solving yet another of these postorder DFS problems where we need to do some computations after traversing to the children nodes. It's Longest Univalue Path (Leetcode 687). Luckily we've solved a lot of these types of questions before so this one shouldn't...
FIND DISTANCE IN BINARY TREE | LEETCODE 1740 | PYTHON GRAPH BFS SOLUTION
zhlédnutí 855Před 4 měsíci
Channel Discord Community: discord.com/invite/s8JX2ARnSg Problem Link: leetcode.com/problems/find-distance-in-a-binary-tree/description/ Today we are solving my favorite type of question: Binary Trees where you need to transform them to a graph and traverse. It's Leetcode 1740: Find Distance in Binary Tree. TIMESTAMPS 00:00 Intro 00:08 Question Prompt 00:21 Basic Example 01:00 Two Possible Solu...
MAJORITY ELEMENT | LEETCODE 169 | PYTHON SOLUTION
zhlédnutí 498Před 4 měsíci
Channel Discord Community: discord.com/invite/s8JX2ARnSg Problem Link: leetcode.com/problems/majority-element/description/ In this video we are solving another question for some of the beginners to the Leetcode journey: Majority Element (#169). Pretty straightforward question but there's a catch that we want to solve it without using any extra space. TIMESTAMPS 00:00 Intro 00:10 Question Prompt...
SLIDING WINDOW MEDIAN| LEETCODE 480 | PYTHON TWO-HEAP SOLUTION
zhlédnutí 3,7KPřed 5 měsíci
Channel Discord Community: discord.com/invite/s8JX2ARnSg Problem Link: leetcode.com/problems/sliding-window-median/description/ Today we are solving a very tricky problem that involves finding the median of a sliding window. We'll need to use two heaps in order to keep everything in check but it definitely isn't trivial how we want to do this. We'll need to use our brains here to come up with a...
SORT CHARACTERS BY FREQUENCY | LEETCODE 451 | PYTHON BUCKET SORT SOLUTION
zhlédnutí 479Před 5 měsíci
Channel Discord Community: discord.com/invite/s8JX2ARnSg Problem Link: leetcode.com/problems/sort-characters-by-frequency/description/ Today we are solving a very strange question that has an interesting and not so common solution: Sort Characters by Frequency (Leetcode 451). This question's optimal solution is a strange algorithm called Bucket Sort and is quite cool and unique. TIMESTAMPS 00:0...
BEST MEETING POINT | LEETCODE 296 | PYTHON OPTIMAL SOLUTION
zhlédnutí 1,6KPřed 5 měsíci
BEST MEETING POINT | LEETCODE 296 | PYTHON OPTIMAL SOLUTION
FIND NUMBER OF COINS TO PLACE IN BINARY TREE NODES | LEETCODE 2973 | PYTHON DFS + HEAP SOLUTION
zhlédnutí 902Před 5 měsíci
FIND NUMBER OF COINS TO PLACE IN BINARY TREE NODES | LEETCODE 2973 | PYTHON DFS HEAP SOLUTION
INSERT INTERVAL | LEETCODE 57 | PYTHON SOLUTION
zhlédnutí 709Před 5 měsíci
INSERT INTERVAL | LEETCODE 57 | PYTHON SOLUTION
Is being a software engineer at FAANG hard? | Software Engineer Ramble Episode 3
zhlédnutí 1,8KPřed 5 měsíci
Is being a software engineer at FAANG hard? | Software Engineer Ramble Episode 3
SUBARRAY SUM EQUALS K | LEETCODE 560 | PYTHON SOLUTION
zhlédnutí 2,3KPřed 5 měsíci
SUBARRAY SUM EQUALS K | LEETCODE 560 | PYTHON SOLUTION
TRAPPING RAIN WATER | LEETCODE 42 | PYTHON SOLUTION
zhlédnutí 1,1KPřed 5 měsíci
TRAPPING RAIN WATER | LEETCODE 42 | PYTHON SOLUTION
STICKERS TO SPELL WORD | LEETCODE 691 | PYTHON DFS + MEMOIZATION SOLUTION
zhlédnutí 2,7KPřed 5 měsíci
STICKERS TO SPELL WORD | LEETCODE 691 | PYTHON DFS MEMOIZATION SOLUTION
FAANG Behavioral Interview Guide | Most Common Question Types | Right Way & Wrong Way to Answer!
zhlédnutí 2,4KPřed 5 měsíci
FAANG Behavioral Interview Guide | Most Common Question Types | Right Way & Wrong Way to Answer!
VALID PALINDROME III | LEETCODE 1216 | PYTHON MEMOIZED DFS SOLUTION
zhlédnutí 2,6KPřed 5 měsíci
VALID PALINDROME III | LEETCODE 1216 | PYTHON MEMOIZED DFS SOLUTION
GROUP SHIFTED STRINGS | LEETCODE 249 | PYTHON SOLUTION
zhlédnutí 2KPřed 5 měsíci
GROUP SHIFTED STRINGS | LEETCODE 249 | PYTHON SOLUTION
COUNT NODES EQUAL TO AVERAGE OF SUBTREE | LEETCODE 2265 | PYTHON DFS SOLUTION
zhlédnutí 749Před 5 měsíci
COUNT NODES EQUAL TO AVERAGE OF SUBTREE | LEETCODE 2265 | PYTHON DFS SOLUTION
LEETCODE STRATEGY FOR 2024 | MY PERSONAL APPROACH WHICH GOT ME FAANG OFFERS | END TO END ADVICE
zhlédnutí 9KPřed 5 měsíci
LEETCODE STRATEGY FOR 2024 | MY PERSONAL APPROACH WHICH GOT ME FAANG OFFERS | END TO END ADVICE
MAXIMUM SWAP | LEETCODE 670 | PYTHON SOLUTION
zhlédnutí 3KPřed 5 měsíci
MAXIMUM SWAP | LEETCODE 670 | PYTHON SOLUTION
TOP K FREQUENT WORDS| LEETCODE 692 | PYTHON CUSTOM HEAP SOLUTION
zhlédnutí 1,6KPřed 5 měsíci
TOP K FREQUENT WORDS| LEETCODE 692 | PYTHON CUSTOM HEAP SOLUTION
MOVE ZEROES | LEETCODE 283 | PYTHON SOLUTION
zhlédnutí 825Před 5 měsíci
MOVE ZEROES | LEETCODE 283 | PYTHON SOLUTION

Komentáře

  • @dnm9931
    @dnm9931 Před 7 hodinami

    Thanks soo much you are appreciated

  • @dnm9931
    @dnm9931 Před 10 hodinami

    Thanks so much! You’re amazing!

  • @m.y.7230
    @m.y.7230 Před 16 hodinami

    very good explanation thanks

  • @davidmwangi4312
    @davidmwangi4312 Před 17 hodinami

    Great overview as I 'm awaiting to do my Meta final rounds end of this month. Your DSA Videos has been a real gem. Maybe a simple request, would kindly point me to some good Product Architecture materials, I will really appreciate

  • @niyatikhandelwal7017
    @niyatikhandelwal7017 Před 18 hodinami

    Very well explained!

  • @dnm9931
    @dnm9931 Před dnem

    Thank you soo much! You are appreciated!

  • @dnm9931
    @dnm9931 Před dnem

    Thanks a lot man

  • @AngadSingh97
    @AngadSingh97 Před dnem

    Awesome, thank you for explaining everything so neatly. Doesn't even feel like a Hard problem now.

  • @sherazdotnet
    @sherazdotnet Před dnem

    I think it's better to mention the read write ratio as part of your non functional requirements. Here we can say that it's 100 to 1 which means many more read vs write and therefore we will scale our design accordingly.

  • @sherazdotnet
    @sherazdotnet Před dnem

    Don't think there is such thing as async Queue. It's just a queue that you can have many workers to pull from giving you async operations. Just wanted to clarify that there is no special queue referred to as async queue.

  • @Global_nomad_diaries

    Do we need to implement Trie Solution?

  • @HarbiDr
    @HarbiDr Před dnem

    These are very insightful questions to ask that some may really overlook e.g. inward honesty

  • @HarbiDr
    @HarbiDr Před dnem

    Emotional Damage @ 5m 31s

  • @markvaldez8602
    @markvaldez8602 Před 2 dny

    Awesome! Thank you!

  • @pradeeprekapalli8355

    Thank you I I just now seen all 18 videos on resume review and this common mistake video helped me to realize what mistake I am making in, Thank you. I will share my resume after changing it all again. Now I understand why my resume does picks at FAANG

  • @hinocenciopaulo
    @hinocenciopaulo Před 3 dny

    Man, I am loving your videos 😂

  • @hinocenciopaulo
    @hinocenciopaulo Před 3 dny

    Nice video.

  • @LastVoyage
    @LastVoyage Před 4 dny

    If we init right to max(piles) wouldn't it make sense to init left to max(min(piles)//h, 1)? Am I missing something here?

  • @kareni7572
    @kareni7572 Před 4 dny

    Found this solution and explanation more intuitive than others!

  • @sunwoodad
    @sunwoodad Před 5 dny

    You said the time complexity of naive solution is O(2N), but I just think it's O(N). Even the traverse is twice which is by p and also by q, total sum of them won't be greater than N.

  • @noextrasugar
    @noextrasugar Před 5 dny

    This is the best solution and explanation to this problem! Thank you because finally after watching 3 different videos, this one matches with the intuition I was originally thinking of.

  • @user-xi7lg3em8i
    @user-xi7lg3em8i Před 6 dny

    Very clear explanation, thank you so much! I only knew how to use union find to solve this problem instead of dfs, now i know both!

  • @shoaibakhtar9194
    @shoaibakhtar9194 Před 6 dny

    Great video as always. I came across another solution which is also very good, little tricky but still good one. class Solution { public boolean isValidPalindrome(String s, int k) { int stringLength = s.length(); int[][] dp = new int[stringLength][stringLength]; // Initialize each character as a palindrome of length 1 for (int i = 0; i < stringLength; ++i) { dp[i][i] = 1; } // Build the table in a bottom-up manner for (int i = stringLength - 2; i >= 0; --i) { for (int j = i + 1; j < stringLength; ++j) { // If characters match, take the length from the diagonally lower cell and add 2 if (s.charAt(i) == s.charAt(j)) { dp[i][j] = dp[i + 1][j - 1] + 2; } else { // If characters do not match, take the max from either side (ignoring one character) dp[i][j] = Math.max(dp[i + 1][j], dp[i][j - 1]); } // If the palindrome length plus the allowed deletions covers the whole string length, it is valid if (dp[i][j] + k >= stringLength) { return true; } } } // If none of the substrings could be a palindrome with the given k, return false return false; } }

  • @JRivero
    @JRivero Před 7 dny

    I love your honesty. This is one of the most useful videos you have posted. Thanks so much for this.!

  • @kamilnuriev7437
    @kamilnuriev7437 Před 7 dny

    Thanks

  • @usamabaig5856
    @usamabaig5856 Před 8 dny

    How is T: O(n) + O(D), if for every node we are checking if its in to_delete then shouldn't it be O(n) * O(D), what am I missing?

  • @45vinitthakkar56
    @45vinitthakkar56 Před 9 dny

    good explaination!

  • @vishirox69
    @vishirox69 Před 9 dny

    subbed!

  • @vishnukumartr
    @vishnukumartr Před 9 dny

    Thanks Bro for the Clear Explanation..

  • @sherazdotnet
    @sherazdotnet Před 10 dny

    So hello Interview has a video on Ad Click aggregator where he mentions that if candidate doesn't take the streaming approach (Flink or Spark ....) and instead propose batch processing, that's a straight downgrade to a lower level. You mentioned to just know of what streaming is but they are saying that you not only need to propose but go in the ins and outs of it as to how Flink provides different features that are used in a System Design. I for one who is preparing for Product design just get confused with mixed requirements 😞

  • @sherazdotnet
    @sherazdotnet Před 10 dny

    Great stuff. I got one coming for E5 and I opted out for Product Architecture since I primarily have been a front end developer and full stack for last 5 years. Issue is that I have front end for Desktop applications (Winforms + WPF) and not web and clearly when talking about api, we need to use Rest API which is web. Don't think that's a big transition though. I have been trying to get my head around exactly how Product Architecture is different from System design and this video did help out a lot. Looking forward to watch part 2 :-). Though, it'd be great if you could take like say a list of 20 most common questions and categorize them b/w Product Vs System Design. Some are obvious but some are not. For example, Web Crawler is clearly a system design but what about Ad click Aggregator? For Ad click, user has to interact with the ad. So does it not fall into Product? But based on Hello Interview, its a System Design. So it gets confusing. What about short Url? Is it Product Design? Hopefully you see my point :-). If you are interested, I can list 20 questions and you can categorize?

  • @AmgaaKhosbayar
    @AmgaaKhosbayar Před 11 dny

    For the good karma!

  • @sayeedchowdhury11
    @sayeedchowdhury11 Před 11 dny

    Usually your explanations are awesome, but this one, didn't quite understand. Lee's sol on leetcode solutions is much better

    • @crackfaang
      @crackfaang Před 11 dny

      This is one of the most shit questions I've ever done. Not sure why I even bothered. Plus saying that Lee guy's solutions are good is ridiculous lol he always has some crazy DP solution with 0 explanation and never explains the T/S complexity. Great if you just want the answer to be accepted, useless if you need to understand a solution for an interview. YMMV

    • @sayeedchowdhury11
      @sayeedchowdhury11 Před 10 dny

      @@crackfaang I specifically said about this que's sol by Lee, he does have a pretty neat explanation on this, T/S complexity too, do check it out. But overall, I agree, yours, neetcodes, alpha-code, Algorithmic cast, happy coding are some of the best on youtube for LC sols

  • @marjanramin1769
    @marjanramin1769 Před 13 dny

    Both time and space complexity are exponential in backtracking.

    • @crackfaang
      @crackfaang Před 13 dny

      No that's not always true. In this case it's not and the complexity is O(N-M). You can check the Leetcode solution if you don't believe me

  • @balltomessi8515
    @balltomessi8515 Před 13 dny

    6:54

  • @lvnd98_
    @lvnd98_ Před 13 dny

    So for the back of the envelope calculation, one thing that always bother me is that it tells the interviewer next to nothing except that the candidate can do some basic maths, so it would just take up a few mins without actually contributing to the interview. most, if not all of the time, the system that we are designing is supposed to handle “a lot” of traffic, I dont think I ever actually refer back to the numbers because ultimately in these scenarios they are made up, just make the system scalable and add cache for faster read if its read heavy. The video is great, I just wanted to rant a bit. Thanks for all of the content, keep it up.

    • @crackfaang
      @crackfaang Před 11 dny

      Depends on the question, depends on the interviewer. It's generally more important for systems design questions but it's something you should still be able to do in case the interviewer expects it.

  • @dibyendusaha1295
    @dibyendusaha1295 Před 13 dny

    public class Solution { public double[] MedianSlidingWindow(int[] numbers, int k) { if (numbers == null || numbers.Length == 0 || k == 0) { return new double[0]; } // Work on C# List, not array var list = new List<double>(); int half = k >> 1; int median = half + (k & 1) - 1; // k = 1, median = 0; k = 2, median = 0; k = 3, median = 1 var slideWindow = new List<double>(); for (int i = 0; i < numbers.Length; i++) { if (i >= k) { slideWindow.Remove(numbers[i - k]); } int index = slideWindow.BinarySearch(numbers[i]); if (index < 0) { index = ~index; } slideWindow.Insert(index, numbers[i]); if (i >= k - 1) { list.Add(half == median? slideWindow[half] : (slideWindow[half] + slideWindow[median])/2 ); } } return list.ToArray<double>(); } }

  • @AnkitaNallana
    @AnkitaNallana Před 14 dny

    So crisp and clear! I think for the `neg = 1 + neg if neg else 0` some comments in the code would've been helpful just to explain whats going on when you revisit the code later on

  • @m.y.7230
    @m.y.7230 Před 14 dny

    R.E.A.D.M.E format is really good. This video could be your best video ever. Thanks a lot for sharing!

  • @total9559
    @total9559 Před 15 dny

    Very great video! Is there any way I could ask you a quick question? In any case, you’re such talented man

  • @JRivero
    @JRivero Před 16 dny

    So clear. Thank you very much

  • @RamjiMisra-if6xt
    @RamjiMisra-if6xt Před 16 dny

    Why can’t we set right as min(ribbons) as we cannot make a cut if ribbon is smaller than mid?

  • @davidmwangi4312
    @davidmwangi4312 Před 16 dny

    Super helpful as I prepare for my upcoming Meta Interview

  • @aneeshakaushal267
    @aneeshakaushal267 Před 16 dny

    Thanks. Very well explained :)

  • @annlaosun6260
    @annlaosun6260 Před 18 dny

    Your answer did not go through. The hash map method went through fine. I got this "time limit exceed' error using your answer. Please help....

  • @annlaosun6260
    @annlaosun6260 Před 19 dny

    omg, thank you thank you thnak you!

  • @annlaosun6260
    @annlaosun6260 Před 19 dny

    this question should be marked easy. So many easy ones on LC are way harder than this one.

  • @ajajajaj686
    @ajajajaj686 Před 20 dny

    Thanks for your videos. It is shame that not so many people know about your channel.

  • @janarboke4005
    @janarboke4005 Před 20 dny

    I like how you went through what the hashmap will look like in the beginning, very clear

  • @kalp2586
    @kalp2586 Před 20 dny

    Explanation at 4:47 is wrong. You want to undo the 3 + 5 operation, so it would be 8 - 5 , not 8 - 3. Best to avoid this approach. Stack based approach is much simpler.

    • @crackfaang
      @crackfaang Před 20 dny

      Stack is easier but you will not pass with this question if you use extra space. You need to do it in O(1) space in a real interview unfortunately. Stack is considered too easy