Has it been your dream to get into Google or Facebook?
Every engineer shares this dream - a profound excitement in landing an offer and working for their dream company.
If you’re someone who’s tried but failed, you’re not alone. If you’ve only just graduated, you’re not alone either. And if you’re deciding to give an interview in the coming months, you’re one of several many engineers in the fray.
The thing is, tons of candidates apply to these companies across several roles, and many of them are excellent programmers. But still, only 5% of them make it.
In order to crack these interviews, you must be ready to chalk up the hours. if you don't pace your prep, you’ll be outdone by the competition.
Even if you’re an experienced programmer, you must know that the questions asked at these interviews don’t quite pertain to your line of experience. So whether you’re a front end engineer or a Machine Learning expert, you’ll only be asked questions around Data Structures, Algorithms, Systems Design, and behavioral attributes.
The FAANG Interview Process
Landing an offer with a FAANG company is difficult but not impossible. In order to crack these interviews, you need to be completely thorough with data structures, algorithms, and systems design, while also doing enough to ace the behavioral interview.
Most tier-1 companies have contrived a process that fundamentally tests your problem-solving skills. So naturally, you’ll have to become a great problem solver if you wish to nail the interview.
The process broadly comprises three rounds. There can be additional interview rounds for certain positions.
The Technical Phone Screen Round
After you’re contacted by human resources, the Technical Phone Screen is the first round that you’ll have to ace in order to advance in the process.
The technical phone screen usually lasts 40-50mins where you’re asked to solve a fairly easy problem. This mostly happens on a shared doc or a coding platform, and can be done in a language of your choice.
For the technical phone screen, you’re expected to be proficient with at least one programming language - preferably C#, C++, Java, or Python.
Core Technical Rounds
If you manage to clear the Technical Phone Screen, you’re called on-site to appear for the core technical and behavioral rounds.
The core technical rounds can be 2-3 in total, and seek to test the extent of your knowledge in Data Structures, Algorithms and Systems Design.
You can be asked to code on a white board, a coding platform, or via a shared doc.
Clearing these core technical rounds at FAANG and Tier-1 companies can be arduous. Working on your problem solving skills is key to succeeding in this endeavor.
Behavioral rounds have become quite popular in technical interviews, with several top companies incorporating mandatory behavioral interviews into the selection process.
Behavioral interviews essentially seek to understand your tendencies in situations and how you’d react to them in a workplace environment.
Especially if you’re interviewing for higher positions (Director of Engineering and above), it’s all the more important that you exhibit sound decision making, good leadership qualities, and strong emotional balance to ace the behavioral round.
What should you do to Ace Technical Interviews at FAANG and Tier-1 Companies?
In this section, let’s understand the things you’ll have to do to ace technical interviews.
Choosing a Programming Language
The first step is choosing a language. Pick one that you’re comfortable with - one that you’ve navigated through your college education.
Choosing the right programming language is key if you are to express your thoughts and decisions with purpose and clarity.
To begin, pick an Object oriented Language like Python, C++, or Java.
Many top-tier companies usually prefer candidates who’re proficient with any of these 3 languages and don’t give options outside of these three.
If you’ve chosen a particular language, make sure you know all the Object Oriented principles in that language.
Preparing Data Structures and Algorithms
Becoming thorough with Data Structures and Algorithms is super important if you want to stand a chance in clearing these interviews. This component makes up about 80% of the questions asked in FAANG (and tier-1) interviews.
In order to prepare yourself thoroughly, pick the right resource and stick with it. There are several resources available in the form of books, websites that allow you to practice code, mock interview offerings, and interview training bootcamps.
Choosing the right resource to help you with your prep can very well be the determining factor in acing these interviews.
Here is a list of topics that you’ll have to be thorough with:
- Linked Lists
- Greedy Algorithms
- Dynamic Programming
- Bit Manipulation
- Binary Search, and
Use Competitive Programming Websites
During the course of your prep, it is super-important to put into practice what you’ve learnt. Competitive programming websites like Hackerrank, Leetcode, Codechef and Codeforces help you polish your understanding of programming concepts through implementation. Solving a bunch of problems with varying levels of difficulty not only polishes your skills but also boosts your confidence.
Self-Study and Self-Paced Courses Might not Actually Cut It
We’ve spoken about using resources available to you while preparing for these interviews. The reason for this is that technical interviews are never straightforward, and there can never be a single resource that can take you through. The path is replete with roadblocks and setbacks, and requires you to be motivated throughout the journey.
The fact that even experienced engineers fail to crack these interviews is clearly indicative of the underlying difficulty. FAANG and tier-1 interviews are built in a way to test your problem-solving skills, and there isn’t a straightforward path to mastering problem-solving. With self-study and self-paced courses that lack depth, you never know where you stand against the competition, putting you on the backfoot right from the start.
As you must already be aware, the prep journey isn’t charming. In fact, it may very well seem dull, arid, uninteresting and monotonous. If giving up isn’t an option, keeping yourself motivated is key in order to come through.
There are various activities you can resort to in order to stay motivated. Taking to exercise, yoga, or meditation can help balance your emotions and keep you in the right state of mind. If you have an interesting hobby, don’t leave it behind while preparing. For all you know, it can help you to stay calm, relaxed, and in the right frame of mind during your preparation.
Now here is the serious part. If you want to ace FAANG interviews, mock interviews should form a crucial part of your preparation.
Mock interviews are a proven way to know where you stand and what areas need improvement. If you practice mock interviews with the right professionals, you can get better clarity on your shortfalls, and what action you must take to get better. There are many platforms that offer you mock interviews to help you with your prep.
Solve a lot of Problems
Solving tons of problems is the only way you can improve your problem solving skills. And because the biggest companies test particularly for problem solving, it is all the more important that you master your problem-solving skills. As mentioned earlier, using competitive programming websites can give you just the exposure you need to up your problem-solving game.
Revise Concepts Frequently
Revision is centric to a thorough prep strategy. With the sheer number of concepts that exist, it’d be impossible to master them without frequent and thorough revision. Make sure you revise every individual concept, and practice adequate problems pertaining to these concepts.
Company Specific Interview Preparation
While it is true that the top tech companies focus almost entirely on algorithms, data structures and systems design questions in their interviews, preparing for company-specific interviews can give you quite the push you need to beat the competition.
Some companies tend to focus more on specific topics pertaining to algorithms while others lay greater emphasis on behavioral interviews to shortlist candidates.
If you’re preparing for an interview with a specific company, say Google for instance, here’s what you must keep in mind and execute:
Going Through Interview Archives and Problems
The best way to begin your company-specific prep is to go through archives available on popular coding platforms. Read through experiences of candidates who’ve appeared for these interviews and take a close look at the type of problems that are being asked in each round. This will help you avert any adverse surprises.
Dig-up Interview Videos and Spend Time Watching Them
You can find videos relating to the interview process on coding networks like Stackoverflow, Hackerrank, or even video platforms like youtube.
Make sure to spend some time understanding the process from the lens of various sources to get a clear picture of what to expect.
Practice Mock Interviews with Hiring Managers from the Company
This is where picking the right resource to partner with you is important. Interview Kickstart’s instructors are actively employed as hiring managers with FAANG and other tier-1 companies.
Therse hiring managers are often responsible for any changes in the interview process and set the tone for coding interviews. Practicing mock interviews with them will give you insights into how to nail technical interviews at specific companies.
As a member of IK’s MasterClass, you can choose the instructors you want to interview (mock) with during the 8-month support period.
Interact with Alums
Interacting with alums who’ve cleared challenging tough coding interviews is a huge advantage. Not only will you learn how they did it, but also pick up a few tricks to solve problems and get ahead in the interview.
During the Interview
You’re all set for the interview after going through an arduous and thorough prep exercise. Here’s what you need to do right during the interview to land your dream offer.
Understanding the Problem
The first thing to consider is how to approach the problem in front of you. In order to do this, you must understand the problem correctly.
Remember to apply your problem-solving skills by identifying solution patterns to the problem and decide which approach is best suited.
Approaching problems through the breadth-first approach rather than employing a depth-first approach will help you view possible solutions through a broader lens, allowing you to identify the right route in solving the problem.
Select a Good Example Case
There’s a high probability that you wouldn’t have encountered the problem in front of you. You must relate the possible solution to a close example case that you’ve solved during practice.
As such, viewing the problem from different directions will help you cite multiple example/test cases. Choose the one that best fits the case at hand and proceed.
Pick the Right Algorithm to Solve the Problem
As you must be aware, there are many algorithms that help to achieve different problem solutions. After closely understanding the problem, pick the algorithmic solution that best suits the problem and proceed.
Explain Why you Picked a Particular Solution
If you’ve taken a particular route to solve the problem, explain why you chose the path. Be honest with your replies and be open to hearing alternate solutions and discussing the pros and cons of other solution routes.
Talk About the Time and Space Complexity of your Solution
Make sure to explain the time and space complexity of your algorithm. This is important to depict the value of the solution you’ve taken. As you must be aware, the time complexity signifies the time taken to arrive at the solution while the space complexity projects the amount of memory consumed in running the solution.
Time Management - 2 Months Coding Interview Prep
Here's how you can pace your 2-month interview prep:
- Focus on learning the fundamentals of data structures.
- Search for good online resources or sign up for an interview training bootcamp to help you with your prep. Make sure to do your research as your resource can significantly influence your success.
- Attend technical interview webinars to get an idea of the current technical interview landscape. Webinars will also help you take the right step forward in your prep.
- Look up company-specific information after you’ve decided which companies you want to interview with. There are a bunch of resources available online. Make sure to use them to your benefit.
- Solve commonly asked company-related interview questions. Understand the various rounds specific to the company, and dig up candidate experiences and interview archives.
- Get active on coding networks to stay updated on the latest interview trends.
- Solve at least 10 problems a day at this stage. Don’t mug up solutions - always seek to test the limits of your ability by allowing yourself to think about solutions deeply and intently.
- Practice mock interviews with experts and hiring managers. Choose the right resource to help you with this. The more mock interviews you practice, the better the outcome.
- Interview with hiring managers/instructors who are currently employed with the company of your interest. Make sure to take feedback that comes your way in good spirit, and make amends wherever necessary.
- Make sure to do a few problems everyday and identify patterns in every problem that you solve.
- Spend two days on Object Oriented Programming
- Work on your LinkedIn profile and resume
- Brush up concepts on database management systems and computer networks
The bottom-line is that if you follow the right approach, you’re certainly setting yourself up to crack tough coding interviews and land coveted offers.
If you follow all these guidelines and tips to the tea, you’re sure to unlock multiple offers from the biggest companies in the world.