Coding interviews at top tech companies can give even seasoned programmers the chills. In fact, not many things make software engineers shudder as much as technical interviews. Yet, cracking these interviews at the biggest companies is a cherished dream for most developers - at least for those who wish to have exciting and stimulating careers as programmers.
If you want to see yourself nailing tough coding interviews at FAANG and tier-1 companies, your preparation must be nothing short of thorough and meticulous. A number of factors like the extent of your knowledge in data structures and algorithms, your ability to design engineering systems, your emotional balance, soft skills, and your ability to solve complex problems should come together if you are to land that dream offer.
Here are some important things you should know to crack the coding interview.
How to crack the coding interview?
Here are 9 things that you should know to crack the coding interview:
Learn how to code up algorithms
Knowing how to code algorithms is a big part of cracking the coding interview. Writing code for problems in coding interviews is very different from the regular code you write as part of your job. The problems asked in these interviews require you to code algorithms in order to find solutions to them.
Here are some important algorithms you’ll have to learn in order to stand a good chance at acing technical interviews:
- BFS and DFS
- Sorting algorithms
Dijkstra algorithm - shortest path from the source to all graph vertices - Floyd Warshall algorithm - shortest path from every single vertex to all other vertices
- Prim’s minimum spanning tree algorithm
- Kruskal’s minimum spanning tree algorithm
- Algorithms to find bridges in a graph
You’ll have to practice coding algorithms quite extensively if you wish to rise above the fairly stiff competition. As a rule of thumb, practice at least two problems everyday for about 2 months before your interview to bring your problem solving skills up to speed.
You can use popular online resources like TopCoder, Codechef and Leetcode to expose yourself to different types of questions. Picking up a good programming book specifically focused on interview problems asked at FAANG and tier-1 companies can give you an insightful peek into what to expect at these interviews.
Pay attention to the systems design interview
The systems design round usually happens during the Onsite interview. The weightage and extent of design interviews varies in accordance with the position in question. Companies usually focus more on systems design questions for senior software developer positions and programmers applying for managerial roles in engineering.
Here’s broadly what you’ll need to cover for your systems design interview:
- Sharding techniques
- Scalable systems
- Concurrency
- API modelling
- Database management
- Distributed caches
- Load balancing
Give yourself at least two-three months to prepare
Don’t jump the gun and ignore important topics (graph algorithms and dynamic programming for instance) while devising an effective prep strategy. Preparing hastily with inadequate time in your hands will definitely drive things south. If you’re serious about locking offers from Google, Facebook, Amazon or Microsoft, the last thing you’d want is to go there underprepared and scratching your head to find solutions.
As such, a solid prep plan must have a reasonable timeline. Preparing for at least two months before your interview will allow you ample time to address every important concept in data structures, algorithms and systems design. Moreover, with enough time in your hands, you can expose yourself to multiple problems of varying difficulty, and develop the capability to understand the unique, inherent patterns in them.
A timeline that lasts at least two or three months will also help you brush up concepts in your programming language (of choice), pick out the right resources, (like finding courses and books), and optimize your LinkedIn profile to land interviews.
Think out loud in your interview
Thinking about how to recursively insert a new node into an ordered Linked List? Well, think out your solution aloud. That’s because interviewers can’t really read what’s going on in your mind as you go about solving a problem.
Thinking out loud gives hiring managers a fair idea of what your approach to problem solving is. You might not arrive at the solution in the most optimal way; but talking out your solution will let the interviewer know that you’re on track, and that you’ve got substance. Oftentimes, you get points for thinking out the right approach to a problem, even though you don’t end up getting the solution right.
Behavioral Interviews are super-important
Behavioral interviews have proven to be the ideal sieve in hiring programmers demonstrating good emotional and behavioral balance.
Every company has a mandatory behavioral round where recruiters ask questions around work ethics, the sort of behavior to exhibit in a workplace setup, past projects, and some emotionally challenging questions.
Behavioral interviews have more weight for senior positions at companies (Engineering Managers and above), as those positions demand strong leadership, ethical, and integrous attributes. Devoting adequate time to go over commonly asked behavioral questions and scripting answers to them will stand you in good stead to answer questions posed by hiring managers.
Try and devote at least a week to practicing and answering behavioral questions, and work to fine-tune your answers to tricky questions. Getting professional help is a great way to go about it too.
Here are some common behavioral interview questions to expect at technical interviews:
- Tell us about a time when you were frustrated because a project wasn’t progressing as planned. How did you deal with it?
- What would be your approach to resolve conflicts at a workplace?
- What are your thoughts about a healthy work-life balance?
- What would be your approach while dealing with a particularly uncooperative or confrontational colleague?
- Tell us about the learnings that were imparted while working on a challenging project.
Judiciously practice mock interviews
There isn’t a more obvious tip to crack technical interviews than practicing mock interviews. But there’s a catch - it hits the jackpot only if you practice with the right people/resource.
Finding the right resource for mock interviews is a little hard, mostly because a lot of bootcamps and courses don’t give you the right feedback. You’ll often find courses that give out handwavy and improper feedback, not equipping you with enough ammo to pass tough technical interviews.
If you find the right resource, however, there’s nothing like it. The ideal resource would be one where you can practice mock interviews with hiring managers and technical leads from FAANG companies. Instructors at Interview Kickstart, who are actively employed as technical leads and hiring managers, have first-hand information about interview processes and changes in recent times, giving students a significant edge.
Get over interview anxiety
There is nothing worse than being prepared but suddenly ending up frantically sweating if you’re unable to find the solution to a problem or constantly erasing and rewriting code on a whiteboard in the Onsite interview.
If interview anxiety has come in the way of your performance in the past, it is important that you address it.
Find out how to completely overcome interview anxiety with this comprehensive guide on How to Deal With Interview Anxiety.
Optimize your LinkedIn profile and update your resume
LinkedIn is the most prominent resource for recruiters to find suitable candidates. Recruiters use LinkedIn’s boolean search algorithm that scans the platform for profiles with the right keyword distribution.
Knowing how to leverage LinkedIn to land FAANG interviews is extremely important. If you’re not comfortable doing it yourself, you should definitely consider taking help. Enrolling for a course that focuses on helping you build the ideal LinkedIn profile is a good leap to take.
As for your resume, make sure you’ve updated it with the right information pertaining to your skills and experience.
Sometimes, if you’re applying to a position that isn’t related to your previous experience but has descriptions that match your areas of expertise or interest, consider updating your resume to suit that particular position/description.
Don’t give up if you don’t make it the first time
Recently appeared for a coding interview and fell short for reasons that are still unclear? Well, you should be ready to try again.
A huge percentage of engineers fail their first coding interview (usually at the big tech firms) for a number of reasons. The important thing is to strike harder the next time around.
If you’re looking for the perfect resource to ride the tide with, register for Interview Kickstart’s webinar on cracking technical interviews at FAANG companies.
Conclusion:
Cracking the coding interview is mostly about being a great problem solver and emotionally balanced. The rest is about doing everything right on the day of your interview.