Your plan for acing FAANG interviews

Everything broken down, step by step

Devansh
Geek Culture

--

Join 31K+ AI People keeping in touch with the most important ideas in Machine Learning through my free newsletter over here

So you’ve seen how much the FAANG companies pay in compensation. You want the money, snacks, and prestige associated with working with one of the FAANG companies. Now you want to get into one of them. Things are challenging; with 3 Million + Applications/year, Google has an acceptance rate of 0.2%. You’re 20 times more likely to get into Harvard.

Most people will never make it past the first stage. However, you’re an experienced developer with years of experience. This makes getting your resume through the recruiter to an interviewer straightforward.

This person went to the FINAL round of their Amazon interview before failing

There is a slight concern, however. Even with your years of experience, the Coding Interviews are a nightmare. You can’t remember what data structures to use, optimizing your code always seems impossible, and how are you even supposed to calculate the time and space complexity when your interviews are so stressful. This is something that I come across very frequently.

He was able to get to the interviews no problem. Getting through them was another matter

This happens to experienced developers as well. The above person has been working in the industry for 15+ years. So getting interviews is not a problem. But during our first session, they told me that even Leetcode Easy-Medium problems seemed impossible to them.

One of the many success stories

Unfortunately, because of my work, commitments, or just a mismatch between us(time, student availability, etc), I can’t always tutor the people that reach out. In this article, I will give you the step-by-step footprint that I recommend to everyone that reaches out (student or not). With this, you will have a clear idea of how you can prepare for and ace your coding interviews. If you would like my help with any of these steps, feel free to reach out.

Step 1: Master Data Structures and Algorithms (cue the surprise)

That was probably your reaction to this. Everyone and their grandma recommends this as the first step. What they don't tell you is how you should do it. Which data structures do you need the most? How much do you need to learn? For graphs, do you have to learn things like Network Flow, Kruskal's algorithm, etc? Graph Neural Networks? The problem with the general, “Learn DSA” is that it’s too vague.

Based on my experience with competitive programming, lots of interviews, and (most importantly) helping a lot of people with their interviews you can maximize your results by focusing on a few key structures and concepts. They are:

  1. Hashmaps + Sets. Understand the idea behind hashing and why their lookups/insertions are constant time. Going over these will also help you because some of the harder questions require you to write your own hashes as optimization. Shows up often in string manipulation questions. This Microsoft Question is a good example
  2. Graphs. Graphs are one of the trickiest topics. They can show up in unexpected places. Understand what graphs are. Learn what they do/why they are useful. And look into traversal.
  3. LinkedList, Arrays, Stacks, and Queues: Make sure you can build these from scratch. Learn to use very well. Learn the spinoffs (Priority Queues etc.)
  4. Heaps: Shows up from time to time. Good to know the basics.
  5. Trees/Recursion. I am bunching these together because simple tree questions are the perfect tool to understand recursion and solve questions with recursion. Practice building trees from scratch and doing elementary operations (size, depth, traversal, insertion, etc.). This is the standard tree pattern for most questions:
def treeFunc(root, **other params):
if(root==null):
return baseCase/other relevant params
val=operation(treeFunc(root.left), treeFunc(root.right))
return val

This is not exhaustive obviously. But it is a good start (and will cover most questions). Then we fine-tune our understanding with the next step.

Step 2: Lots of practice

Next, we want to practice. A lot. Depending on your capability, we will mix in easy, medium, and hard questions. On average you want to spend at least an hour-1.5 hours every day. This goes to roughly 1–2 questions a day. If you want to maximize your learning from every individual question, read this article on Medium. I go into depth about the procedure to learn the most you can from every question. Remember to build up from easy questions, and work your way up.

Doing questions the right way will help you identify areas where you are weak, giving you further feedback on how to improve.

Step 3: Mock Interview (Work this into Step 2)

Once you are able to get through easy questions consistently, we add in weekly mock interviews. Having talked to many students I’ve worked with, this is consistently the most effective for confidence building.

Getting feedback from a successful student about the tutoring process

Ideally, we want to keep 1 day a week for this. 6 days a week you’re practicing your questions, and 1 day you just mock interview. Mock interviews will help you get into the habit of articulating your thoughts verbally, which is very important. To get the best results in your mock interviews, use this format.

Closing

This procedure is relatively simple. There’s no 3–4 hour Leetcode grind advice that is so common online. Because that’s how it should be. The important thing is consistency and constantly improving from feedback. Being able to do so will let you get exponential results from a relatively modest time investment.

If you’re looking for help, I have great reviews :)

If you’re looking for projects that can help you get interviews at big firms check out this short (60 second)video. The video gives a great example of a project that can highlight your coding skills (check the description for more details).

A reason to connect with me :p

If you liked this article, check out my other content. I post regularly on Medium, YouTube, Twitter, and Substack (all linked below). I focus on Artificial Intelligence, Machine Learning, Technology, and Software Development. If you’re preparing for coding interviews check out: Coding Interviews Made Simple.

For one-time support of my work following are my Venmo and Paypal. Any amount is appreciated and helps a lot:

Venmo: https://account.venmo.com/u/FNU-Devansh

Paypal: paypal.me/ISeeThings

Reach out to me

If that article got you interested in reaching out to me, then this section is for you. You can reach out to me on any of the platforms, or check out any of my other content. If you’d like to discuss tutoring, text me on LinkedIn, IG, or Twitter. If you’d like to support my work, use my free Robinhood referral link. We both get a free stock, and there is no risk to you. So not using it is just losing free money.

Check out my other articles on Medium. : https://rb.gy/zn1aiu

My YouTube: https://rb.gy/88iwdd

Reach out to me on LinkedIn. Let’s connect: https://rb.gy/m5ok2y

My Instagram: https://rb.gy/gmvuy9

My Twitter: https://twitter.com/Machine01776819

If you’re preparing for coding/technical interviews: https://codinginterviewsmadesimple.substack.com/

Get a free stock on Robinhood: https://join.robinhood.com/fnud75

--

--

Devansh
Geek Culture

Writing about AI, Math, the Tech Industry and whatever else interests me. Join my cult to gain inner peace and to support my crippling chocolate milk addiction