How to prepare for a software engineer job interview

Before getting a job offer, you most likely have to go through a process called interview.

The interview process

When you apply to work at a company, via direct application through their website, through a recruiter or a job ad, the company determines, based on your CV and cover letter, if you could be a good fit.

If you stand out in the big pile of applications they might receive, you will start what is called the interview process.

During the interview process, you need to demonstrate your ability, so the company can correctly assess your skill level, determine if you are a good fit for the role and offer you an appropriate wage.

How hard is a tech interview? It depends a lot on the type of company.

The FAANG interview process

FAANG stands for Facebook Apple Amazon Netflix Google and it’s a way to identify a big tech company.

A big tech company is very, very selective. You can’t just apply and hope for the best. Candidates that get hired prepare for that interview, specifically that inverview, for several months before applying. There are books and whole courses dedicated to preparing those interviews.

The reason is that preparing for an interview requires a totally different preparation than learning programming. I have is no clear explanation for why things are like that, and I hope they will change in the future. But basically my understanding is that they want you to go through this process to make sure you really want to work there. You are very determined to work there, to spend months preparing just for the interview. Then once the interview is done, you’ll work on totally different things.

I’m talking in particular about computer science algorithms, data structures, etc. Websites like HackerRank and LeetCode are places where you can prepare for the technical interview questions.

In my opinion (just my opinion, mind you) there should be a different way to assess your skills, but that’s the current state of the industry.

While they ask you those tech questions they will analyze your ability to solve problems, to discuss your solution and they will try to see how you deal with issues by changing the requirements.

The Google interview process

For example Google typically has a 4-to-9 steps interview process.

First you have a screening phone call with a recruiter, who will analyze your CV and answer some basic coding questions. There might be another phone interview later.

If you pass that, you are invited on-site to the company to do 4 or 5 interviews, each lasting 45 minutes. Those interviews will be whiteboard technical interviews. If you get selected you’ll get an offer.

The process is really selective because lots and lots of people apply to Google every year, and they can only hire the best talent.

The interview process in smaller companies

Smaller companies have a shorter process, and the exact interview workflow will generally be shorter.

If you’re lucky the interview is very quick. This might happen if you already know the people that will hire you, and they already know you are a good fit. But in the vast majority of cases you will have an interview process.

You might be asked traditional computer science algorithms and data structures questions because they do what big companies do.

They might also have a different process, for example they might assign you some take-home exercises before having an on-site interview. And on-site you will discuss the take-home work rather than being asked about implementing a random algorithm.

Evaluation of soft skills

Every interview is done to evaluate you and your skills. They will measure your tech skills, but also your soft skills.

Soft skills include communication, collaboration, and in general how well you’ll play as a team member.

Download my free Programming Ebooks!