I once interviewed a candidate with a degree from a well-known CS college. I asked him a warm-up question involving a BST.
He solved it well, demonstrating his knowledge of that particular data structure. He also coded it correctly, demonstrating that he knew coding.
Then, I took it a step further and gave him a problem where the input dataset required to be put into a BST to efficiently find a target element.
He couldn’t solve that. I gave him plenty of hints until he got it. But when he proceeded to code, he fumbled and ended up with a few basic bugs.
He was a great guy. We all liked him as a person and thought he’d fit well with our company culture. He had it all — general aptitude, knowledge of data structures, algorithms, coding skills, and culture fit. But they didn’t culminate into the most important skill of all — problem solving.
He was not hired.
Technical interviews at companies such as Facebook, Apple, Google, and other global tech giants are a whole other ball game. They can be tricky — they are designed to be super challenging to shortlist only the best of the best.
Every software professional wants to work at the world’s top tech companies such as Facebook, Amazon, Apple, Netflix, and Google (popularly known as FAANG) and other top players.
But even the thought of undergoing the grueling interview processes at these companies is enough to overwhelm them and convince them to give up even before they’ve tried.
While we cannot make the interview process at the tech behemoths any easier, what we can do is train you to be exactly the kind of software professionals that these companies want to work with. We have helped over 5000 candidates prepare for tech interviews at the largest technology companies of the world.
Related article: If you want to learn about how to prepare for technical interviews, read this post that walks you through every aspect of interviews at leading tech companies.
In this article, we list down the 7 key principles that you must follow to ace technical and coding interviews at FAANG and other tech giants.
- Practice is the only way
- Develop recall through mock interviews
- Write down the code
- There’s no magical “I’m ready” moment
- Articulate your thought process
- Repeat problems — find more than one solution
- Think long-term
Let’s understand each one of them.
7 Guiding Principles to Nail Technical Interviews
If you’re preparing for technical interviews for top-tier tech companies, let your prep strategy be underscored by these key principles. They work all the time!
1. Practice Is the Only Way
There is no substitute for diligent practice. It's surprisingly difficult to stick to simple habits, but that's the key difference between success and failure. For example, taking 2-4 hours a day to solve one or two problems is a great habit. Necessary and often sufficient. But it's imperative that you do that several days a week for a number of weeks, rain or shine, to reap compounded benefits.
Always say "Yes" to practice, no matter how good you think you’ve become.
2. Develop Recall Through Mock Interviews
Coding interviews are not standardized tests with binary answers. You can't prepare for them in a vacuum for several months and then hope to get it all right on the day of the interview. That could work for an exam such as SAT, but not for non-standardized tests like technical interviews, where the process of grading is highly subjective.
After every few problems or days of practice, you have to take mock coding interviews. Mock interviews are best done with engineers at top companies, but they can also be done with your friends and peers.
Mocks will help your recall circuitry and give you feedback about where you stand. That will, in turn, either increase your confidence or let you tweak your practice early on. In either case, it’s a win-win for you.
There’s no such thing as "too many mock interviews." Never decline an opportunity to take one.
3. Write Down the Code
Merely skimming through problems and loading the solutions in your head is not enough to make you a good problem solver. To crack a coding interview, you have to practice writing code. That’s how your solutions become real.
When you write code, you’ll also discover and learn the nuances of the programming language you're using, which will come in handy in actual interviews and when you’re working on real problems.
Your coding practice is incomplete if you don’t write down the code.
4. There’s No Single Magical Moment When You Feel “Ready”
The thumb rule is to solve about 150 medium to challenging problems as your first milestone. I've seen people cross 300. Some even solve 1000. By this time, assuming you've written code for those many problems and repeated them, you should feel pretty confident about your coding abilities. It’s tempting to stop practicing when you hit that stage. Beware of falling into that trap.
Learn from the feedback you receive on your performance in mocks and work on them to get better.
Let mock interviews guide your prep. Not your feelings.
5. Articulate Your Thought Process
Sure, interviewers want you to solve problems. They want you to write the code that works.
But, that’s not the be-all and end-all. What they also want to see is how you apply your learning and knowledge to solve problems. How you arrive at a solution is equally important, if not more, than arriving at the right solution.
For this, you should be able to walk them through your analysis of a problem, how you approach it, and finally, the solution. The more you do this, the better you’ll get at structuring your problem-solving process into well-articulated sentences. This will give them a peek into the way you think and approach a problem.
During practice, talk through your problem-solving process along with the reasoning as clearly as you can.
6. Repeat Problems — Find More Than One Solution
Repetition deepens your understanding of problems and their solutions. Often patterns emerge only after repeating several problems. Plus, repetition also improves recall and boosts your confidence.
While practicing problems repeatedly, go one step ahead and find alternate solutions to a problem.
In an interview, offering more than one solution to a problem and comparing them on multiple parameters will highlight your ability to analyze and review code and decision-making skills, which may go unnoticed otherwise.
Solve one problem more than once. And don’t settle after finding one solution to a problem. Find one more.
7. Think Long-term
It’s not your goal that differentiates you from others. Every candidate you compete with has the same goal — they too want the job just like you. The differentiating factor is the habit.
Prepare for your technical interviews with a long-term objective of being a better engineer. Build a process and stick with it.
Practicing interview problems regularly and consistently (i.e., making it a habit) will naturally turn you into a better coder and system-design-er. That will make your short-term goal of getting a job more enjoyable, realistic, and far less agonizing.
Focus on becoming a software professional that deserves the job. Not just on getting the job.
What’s Expected From You in Technical Interviews?
No, you’re not expected to write perfect code on your first attempt — not even at top-tier tech companies. Even your interviewer is unlikely to have written perfect code at first shot in an interview. Heck, even Steph Curry doesn’t get it in the basket every time.
Interviewers don’t expect you to have perfect solutions. Definitely not in your first attempt. But they expect you to:
- Understand the problem without a lot of back and forth. Not necessarily at first, but quickly enough, by asking the right questions.
- Articulate the solution — even brute force — with examples. Again, not necessarily at first shot, but soon enough, to reinforce your claim that you have really understood the problem.
- Improve your solution beyond brute force to be optimal for practical applications. Again, you may take some time for this. But do it with proper thought articulation and enough logical leaps, taking the interviewer along with you through your thought process.
- Write code idiomatically in a programming language you claim to know well. Not pseudocode, not hand-wavy code, but idiomatic code. Not at first shot, but quickly enough.
- Be clear about what you know and what you don’t. For example, if you don’t know the syntax of a function, you point that out to the interviewer, make reasonable assumptions and move on. They understand that in the real world, there is going to be an IDE.
- Find and correct your own mistakes, preferably without prodding from the interviewer.
That was an encapsulation of principles that stemmed from my experience of having interviewed, trained, and coached thousands of software developers to nail technical and coding interviews at FAANG and other big tech companies.
I’ll leave you with a couple of FAQs that we often get from our students.
Frequently Asked Questions
Question 1. If writing perfect code at first shot is not expected, is it okay to take it easy in our prep?
Not really. Interviews do need speed, but not inhuman robotic speed. As long as an easy problem is complete within 20 minutes, a medium one within 30, and a hard one within 40, you’re good.
Question 2. Are there interviewers who DO care about giving perfect working code in the first shot?
Yes, there are. But are such interviewers in majority? No. Relax and prepare systematically with the right rigor and right people, and you’ll be fine; we’ve seen that with over 5000 engineers we’ve trained.
Question 3. What should I do if I’m stuck on a problem and don’t have a solution?
When you don’t have a solution to a problem, say so. But not exactly that. Your future employers don’t want to work with someone who has all the answers but with someone who can figure out the answer.
If you are stuck, in addition to telling the interviewers so, talk them through your thoughts and articulate the next steps you’ll take to arrive at the solution. Always be honest. Never pretend to know an answer when you don’t. Pretense rarely works in interviews.
Begin Your Prep … With the Right Approach
It’s time to put these principles to practice and see yourself become a better software professional, and crack your next technical interview. To know more about the right prep strategy, register for our webinar. We’ll tell you how you can take your interview prep to the next level — the Interview Kickstart way!