10-Step Guide for Literally ANYONE to Land a 6-Figure FAANG Job (Part 1)
Level 3 - DeFi Virgin Analyst
Welcome Avatar! Another day. Another dose of Equal Opportunity, Unequal Results. Today we have BowTiedFox who we are *considering* for the tech recruiting niche. Unlike others? We don’t talk about things we don’t know. So please leave comments on if this guide is “BowTied” level. If it is then we will likely begin working with anon BowTiedFox on a tech project. Lettuce see how dis here goes.
Author BowTiedFox ←— follow here
Introduction
The problem with breaking into tech is that your résumé and interview prep varies significantly depending on the size of the company. Some companies will require actual programming skills and knowledge of computer science, whereas others just require you to be an algorithm monkey.
In contrast, other professions have a uniform process. For example, a management consultant must know how to solve a case interview, regardless of the company they apply to.
For a software engineer, the interview varies among three options: 1)Small startups; 2) Large to mid-size companies, including non-techs in the Fortune 500; 3) A top-tier company, think FAANG and Microsoft, plus unicorns such as Uber
The interview process is completely different depending on which company you apply to because they are looking for different skillsets. Let us break each down:
What F500s and Startups Look For
F500s and startups are focused on building applications and working in small teams. F500s will ask you a handful of algorithm questions, but focus on your résumé and coursework. What kind of pedigree do you have? Do you have basic computer science knowledge to on-ramp to the company’s technologies quickly?
Whereas startups will emphasize a portfolio. What have you built? Are you able to help us develop our product quickly? In fact, there exists a list of companies that do not require algorithms knowledge in order to get hired.
As for behavioral interviews, F500s will ask you standard behavioral questions such as, “Tell me about a conflict you had with a team member” which should be answered in standard STAR format. A startup’s behavioral questions will vary, but they typically they expect you to hold a ~30 minute get-to-know-you conversation moreso than answer specific behavioral questions because is a flatter hierarchy.
While you are preparing for FAANG, I suggest getting one of these jobs to maintain an income stream. Also because tech experience is valued regardless of where it is from. With enough experience, you will be able to apply for senior level positions anywhere including FAANG whether you work as a programmer at McDonalds or a 10-person startup. Even if you are unable to get into FAANG, it is still possible to obtain substantial salary increases by job hopping every 18-24 months for a 20% – 50% raise per hop.
Note that larger companies will generally have less work, but more rules. Whereas smaller companies will generally have more work with more freedom. I would say bigger companies are better for doing your own thing on the side, whereas smaller companies are good for learning rapidly with a higher-risk equity position. These are some factors to consider, especially if you want to do multiple remote jobs (will be covered in a later Substack post).
What FAANG Is Looking For
In contrast, the primary qualities that a FAANG interviewer is attempting to assess are as follows:
Does this person know how to write efficient code that is scalable?
Does this person know how software systems generally work?
Does this person know how to communicate their ideas clearly and succinctly?
The key is that this process can be GAMED. Let me emphasize. You can get into FAANG by memorizing these concepts even if you have never used a computer before. You can teach yourself some algorithms and optimization tricks for (1), you can teach yourself some basic system design for (2), and you can network and do practice interviews for (3).
80% of your interview will be data structures and algorithms (DSA). If you can master them, you have a strong chance at breaking into FAANG. There are a handful of question types, and if you are able to detect the general pattern, you will be able to solve all of them. I would say if you are able to do about 200 practice questions within 20-30 minutes each, you can solve any problem FAANG gives you.
10-Step Guide to Breaking Into FAANG
1. Basic Math Prerequisites
You must know these basics to design algorithms.
If you are having trouble with Calculus, brush up on Algebra using Khan Academy.
I also used Paul’s Online Math Notes to supplement my courses during undergrad.
2. Basic Computer Science
If you have never used a computer before, start with Khan Academy’s Computers and the Internet series.
If you have zero computer science background, take Harvard’s CS50.
Then, complete Stanford's Algorithms specialization on Coursera.
That’s it. That’s all the computer science knowledge necessary for entry-level roles.
Upload your assignments onto GitHub to start building a small portfolio.
HackerNoon has a short guide on making a good GitHub profile. It looks good if you have a GitHub with frequent contribution history:
Sly Fox Tip: You can enable commit history on private repositories. There is a bot that takes advantage of this.
3. Data Structures and Algorithms (DSA)
Do algorithm practice problems on LeetCode.
This is 80% of what you need to recruit into FAANG. Seriously.
Why? The same reason management consultants do case interviews. But also because it is a legal IQ test that they call “assessing general cognitive ability.” Does this person think logically and in a structured manner? Can this person work hard to study?
You do not need to know any specific tools; they know how to on-ramp anyone who is a logical, hard-working, and reasonably intelligent person within a few weeks; every company has an internal bootcamp. Instead, they are looking for a solid foundation.
Think of this as the Computer Science version of the GMAT, MCAT or LSAT.
What Is LeetCode?
LeetCode has collected hundreds of algorithm interview questions and categorized them by difficulty. They give you a better score on your answer depending on its efficiency.
Spend most of your time on the Medium-difficulty ones and a few Hard ones. If you have difficulty with the Mediums, go to the Easys. The Easys with the lower “Acceptance” rates are harder. Target well-formed questions by looking at their ratings.
I suggest using Python because it has the simplest syntax. Use this Miller & Ranum DSA book as reference.
If you are unable to solve a Medium question within 30 minutes or a Hard within 45, just look at the answer. But make a genuine attempt before you give up.
I think of Hard questions as Medium questions with a twist. These will be asked in the final rounds of the interview process, so it helps to know them. Typically, if you are able to walk through your thought process and come across a roadblock, the interviewer will give you a hint. These hints may not make you a perfect candidate, but if you still generate a solution, you will be fine.
Also, do not just solve the problem–deeply understand the concept so you can apply it across other questions. Use the aforementioned book as reference, read the LeetCode discussions, look back on your course notes, Google the problem, watch a YouTuber solve it, understand the underlying data structure and math.
Why Is LeetCode Important for Software Engineering?
Let us imagine you have a 1000-page dictionary, and you are searching for a word.
There are two options: 1) Search for the word starting from page 1 going to page 1000; 2) Start at the halfway point (page 500), then keep going to the next half of the dictionary that is closer to your word.
Say you are looking for the word “Fox.” Unbeknownst to you, it is located on page 300.
Using method 1, if we begin at page 0 and traverse to page 300, we will end up doing 300 page flips.
Using method 2, if we start at page 500, then go to page 250… and so on, we will be finished in 10 page flips max. In fact, any word in this dictionary can be found in <10 page flips.
Method one is linear search, which is O(N) time complexity. N is size of the input. So, in the worst case, we would look through N = 1000 pages.
Method two is binary search, which is O(log N) time complexity.
This example seems trivial, but imagine the Google Search engine. 1 million websites with 1 search per second on an O(N) algorithm would take 11.5 days. On an O(log N) algorithm, it would take 20 seconds. On an O(N²) algorithm, 32,000 years.
Analyzing the running time of algorithms is called the study of Asymptotic Computational Complexity, which you must know for your interview.
Asymptotic Analysis, AKA Big-O Notation
You must analyze the running time of all of your algorithms, including during your interview. Analyze the runtime of your LeetCode problems while you practice.
Big-O is typically used to represent the time complexity of an algorithm, specifically for the worst-case runtime.
Resources:
freeCodeCamp Big O Notation - Full Course
Cornell Asymptotic Running Time of Algorithms Lecture Slides
Cornell Introduction to Asymptotic Analysis Lecture Notes
Big-O Cheat Sheet (understand 80% of this)
How Long Should I Spend on LeetCode?
Many people do up to 500 questions to prep for FAANG. You do not need to do this. Here are the ~120 best questions I have come across to help you understand the general “type” of problems you will be dealing with so you can cut your workload by >75%.
All of these LeetCode questions should take you about 40-60 hours total. You can prep this in ~3 weeks if you put in 2 hours a day. However, it should realistically take more time to truly understand the concepts because you should be reading answers/discussions and researching on Google/YouTube in between each question.
If you want even more questions, try LeetCode Premium. It will enable you to sort the questions by the companies that are known to ask them.
Let us also look at a few free resources. Look at this Educative list; you can look up these problems on LeetCode without buying the Educative course. There are plenty “Best Of” lists that you can find online as well. Here is a free list of questions that can be sorted by company to get you started without having to buy LeetCode Premium.
Sly Fox Tip: LeetCode Premium is great for convenience, but if you are stretched on money, any premium question can be found online with a quick Google search. And all solutions can be found online as well.
~120 Best LeetCode Questions
Array (10): 1) Two Sum; 2) Contains Duplicate; 3) Product of Array Except Self; 4) Maximum Subarray; 5) Maximum Product Subarray; 6) Rotate Array; 7) Find Minimum in Rotated Sorted Array; 8) Search in Rotated Sorted Array; 9) 3Sum; 10) Container With Most Water and 11) Finding Pairs With a Certain Sum
Binary (5): 1) Sum of Two Integers; 2) Number of 1 Bits; 3) Counting Bits; 4) Missing Number; 5) Reverse Bits
Dynamic Programming (20): 1) Climbing Stairs; 2) Coin Change; 3) Longest Increasing Subsequence; 4) Longest Common Subsequence; 5) Word Break; 6) Combination Sum; 7) House Robber; 8) House Robber II; 9) Decode Ways; 10) Unique Paths; 11) Jump Game; 12) Paint Fence; 13) Maximum Subarray; 14) Unique Paths; 15) Unique Paths II; 16) House Robber; 17) House Robber II; 18) Best Time to Buy and Sell Stock; 19) Best Time to Buy and Sell Stock II; 20 Coin Change
Graph (8): 1) Clone Graph; 2) Course Schedule; 3) Pacific Atlantic Water Flow; 4) Number of Islands; 5) Longest Consecutive Sequence; 6) Alien Dictionary (Premium); 7) Graph Valid Tree (Premium) and 8) Number of Connected Components in an Undirected Graph (Premium)
Linked List (14): 1) Reverse a Linked List; 2) Detect Cycle in a Linked List; 3) Merge Two Sorted Lists; 4) Merge K Sorted Lists; 5) Remove Nth Node From End Of List; 6) Reorder ListLinked List Cycle; 7) Linked List Cycle II; 8) Remove Duplicates from Sorted List; 9) Remove Duplicates from Sorted List II; 10) Add Two Numbers; 11) Swapping Nodes in a Linked List; 12) Rotate List; 13) Reverse Nodes in k-Group; 14) Copy List with Random Pointer
Author BowTiedFox ←— follow here… To be continued in a few minutes.
Disclaimer: None of this is to be deemed legal or financial advice of any kind. These are *opinions* written by an anonymous group of Ex-Wall Street Tech Bankers who moved into affiliate marketing and e-commerce. Child Labor Investments is a joke/meme and not a legal entity.
Solid substack! Great resource for getting someone from "I code a little" to actually having a career in software.
As someone who has interviewed >100 candidates at tier 1 companies, can confirm the info here is accurate
Fox clearly knows what he's talking about, the content is also angled as "you can game this" which got my attention. The sources intelligently picked, they're of the highest quality IMO. Designing Data-Intensive Applications is excellent.
He earned the spotlight