Discover more from BowTied Bull
10-Step Guide for Literally ANYONE to Land a 6-Figure FAANG Job (Part 2)
Level 3 - DeFi Virgin Analyst
String (10): 1) Longest Substring Without Repeating Characters; 2) Longest Repeating Character Replacement; 3) Minimum Window Substring; 4) Valid Anagram; 5) Group Anagrams; 6) Valid Parentheses; 7) Valid Palindrome; 8) Longest Palindromic Substring; 9) Palindromic Substrings; 10) Encode and Decode Strings (Premium)
Tree (19): 1) Maximum Depth of Binary Tree; 2) Minimum Depth of Binary Tree; 3) Same Tree; 4) Invert/Flip Binary Tree; 5) Path Sum; 6) Binary Tree Maximum Path Sum; 7) Binary Tree Level Order Traversal; 8) Binary Tree Zigzag Level Order Traversal; 9) Serialize and Deserialize Binary Tree; 10) Subtree of Another Tree; 11) Construct Binary Tree from Preorder and Inorder Traversal; 12) Convert Sorted Array to Binary Search Tree; 13) Validate Binary Search Tree; 14) Kth Smallest Element in a BST; 15) Lowest Common Ancestor of BST; 16) Implement Trie (Prefix Tree); 17) Add and Search Word; 18) Word Search II; and 19) Merge Two Binary Trees
Uncategorized (10): 1) Valid Parenthesis; 2) Move Zeroes; 3) Meeting Rooms; 4) Meeting Rooms II; 5) Is Subsequence; 6) Next Permutation; 7) String to Integer (atoi); 8) ZigZag Conversion; 9) Trapping Rain Water; and 10) Knight Dialer
4. System Design
System Design is more important for senior-level roles, typically with at least 3-5 years of experience. There are low expectations for entry-levels to know system design because they are inexperienced. Interns are not required to know system design at all.
Some companies will give you an option to avoid the System Design Interview (SDI) entirely. They will ask, “Would you rather do 4 DSA interviews + 1 SDI or 5 DSA?”
Regardless, you should know some basics.
Entry-levels and interns should at least know basic Object-Oriented (OO) Design principles such as polymorphism and inheritance, as well as how to create UML diagrams. These are important because companies want you to write maintainable code, not spaghetti code that is unintelligible.
Knowing how to design a UML diagram perfectly is unimportant, but rather it is useful simply to see how basic software is structured and created. Having some decent projects helps with this as well because you will learn through experience.
If you want Python-related resources, freeCodeCamp has a full course on OOP with Python and Corey Schafer has shorter OOP Python tutorials. OOP is typically taught with Java, but since you will be doing DSA in Python, these tutorials should be easy to follow just to get a high-level overview. All of these are available for free on YouTube.
Skimming the System Design Primer should be more than sufficient. Go with the “Short” timeline topics because it emphasizes breadth over depth. System Design is important because it helps design software that can be scaled. This Educative list of System Design questions has good advice for how to answer System Design questions and some example answers.
If you are applying for a senior-level role, you are expected to know far more about computer science, which is beyond the scope of this guide. For example, you are required to understand threads and concurrency issues, mutexes and semaphores, deadlock and livelock. I may discuss senior-level recruitment in-depth in my Substack if there is enough interest. But, for system design specifically, I suggest reading Designing Data-Intensive Applications by Martin Kleppman. There is also this System Design Interview GitHub resource list.
5. Résumé Screening
Do not make your résumé annoying or dense. Keep it to one page. Follow the standard Wall Street format. Include Education, Work Experience, Programming Projects (if you have any), Extracurriculars.
Descriptions should be concise and focus on accomplishments, quantifiable results, and relevant experience. Do not include any information that is part of a protected class such as race, religion, and so on.
Ensure that your résumé is ATS compliant. Meaning the company’s software will be able to read your résumé.
Something like this is good. I found this résumé template on Harvard’s Guide to Resumes & Cover Letters:
If you do not have any work experience, you should try to get an internship, have some freelance projects, or contribute to open source. Paid experience is infinitely more valuable than unpaid experience. But unpaid experience is better than personal projects.
If you want a few programming projects to fill up your résumé, it is trivial to look up a few projects for beginners and simply following along with tutorials on YouTube. Should take you a few weekends max.
If you have a passion project, feel free to work on it longer because it helps demonstrate interest if you can speak in-depth about a project. Plus, you will learn more about system design. If you want to get your hands dirty, Full Stack Python will teach you how to make fully-fledged applications using Python.
Do not forget to upload all of your projects to GitHub.
When you list projects and work experience, they will not hesitate to ask you highly-specific questions about all of them. Deeply understand your projects and work experience listed on your résumé because it raises a red flag if you stumble on a question. For example, they may think that you were on a team and let the others do the work.
Although relevant work experience and programming projects are useful for demonstrating interest, it is not absolutely required to get an interview, especially if you have a referral. However, do note that because there is a lot of burnout in tech, they will want to know that you are genuinely interested and will not get sick of programming after a year. Hence why there are far more senior-level positions available than entry-levels. Work experience and programming projects serve as proof that you will stick around.
Sly Fox Tip: If you are desperate, just lie. Make a personal project such as a website, list it under “Work Experience as a Web Development Summer Intern,” and say that you did it for a company. Nobody needs to know that it was your uncle’s nonexistent plumbing service. However, make sure it is an actual, well-thought out website you have made on an actual domain so they can look it up and ask questions about it.
If you want to take this even further, make a fake startup website. You need a name, a logo, and fake photos of employees. Make up a project and tell them you are bound by an NDA so you are unable to share many details. This is extremely high risk, so tread carefully. However, wealthy people already do this by being “employed” under family members’ businesses while contributing absolutely nothing.
6. Picking Companies and Finding Jobs
FAANG is an acronym for the five best performing tech stocks on the market. However, there are companies that offer more or comparable total compensation
(TC = signing bonus + salary + equity, etc.)
Here are some other categories of companies with good TC:
FAANG: Facebook, Amazon, Apple, Netflix, Google
Big-N: FAANG, Microsoft, Twitter, Square, Snap, Nvidia, and other top, public companies
Unicorns: Uber, Airbnb, Dropbox, Palantir, and other top, private companies
Careful: Some Unicorns such as Uber, Plaid, Compass include live coding or take-home assignments like typical startups
Tech Companies Ranked by Total Compensation (2019)
Tier 0 (Finance): Jane Street, Citadel, Hudson River Trading, Jump Trading, Two Sigma
Tier 1: Facebook, Netflix, Snap
Tier 2: Google, Apple, Linkedin, Uber, Lyft, Pinterest
Tier 3: Amazon, Twitter, Slack, Dropbox, Splunk, Robinhood, Airbnb, Stripe
Tier 4: Microsoft, Yelp, Square, Salesforce, Zillow, Reddit, Spotify, Twitch, Box, Roku, VMWare, Okta, Zoom, Tesla, Coinbase, Twilio, Bloomberg, Indeed
Tier 5: Cisco, Oracle, Yahoo, Walmart , GE, Workday SAP, Intel, Adobe, IBM, Intuit, eBay, PayPal, Juniper, Citrix
Note: Blockchain/Crypto/Web3 developers can get paid mid 6-figures, but these companies expect you to know far more than just algorithms and prefer some experience. However, getting into a FAANG/well-regarded company will make it 10x easier to get into one of these companies later.
Applying to Companies
Find companies on levels.xyz, search for the company’s careers page, and apply directly on their website
Get referrals (more on this later)
7. Company Research
Each company has their own unique process and questions. You can get this info via networking (more on this later), or by just looking it up on Google or YouTube. Try to know things such as industry trends, company competitors, and recent projects.
When they ask, “So why (company)?” you must be prepared with something besides “ya’ll pay hella 🤑” even if that is why all of us are here.
Sly Fox Tip: Easy way to do this. Just read the company’s page on Wikipedia and pull up recent news from Google News, then mention them as talking points. Something along the lines of, “I think it’s fascinating that Facebook is rebranding into Meta, it shows that they understand how intertwined tech is in our lives now. They are going to be frontrunners in the Metaverse/Web3 space I want to be a part of this company in the long-run.”
It is also fantastic if you mention a good networking interaction. “I had a great time speaking with one of the engineers here named X. If he/she is in any way representative of the company’s values/people, I think it would be great to work here.” However, make sure that the person is comfortable with you name-dropping. More on networking in the next section.
Just search “(company) interview” or “(company) interview questions” on Google/YouTube
You can also look up “(company) LeetCode questions”
Facebook interviews you for the entire company, not for a specific team. Facebook LeetCode questions emphasize Graphs, Dynamic Programming, and Strings.
Amazon is particular about their leadership principles. They are notorious for being the “easiest” FAANG interview because they weigh the behavioral section heavier than the others. When you answer their behavioral questions, make sure that you use stories that highlight at least one leadership principle. They will ask you a few basic system design questions.
Apple will not ask system design questions to entry-level candidates.
They also have 2-on-1 interviews where you must know how to deal with 2 interviewers at the same time.
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.