In this article, I want to talk about the selection stages in a FAANG (aka MAANG) company. I’ll make a reservation right away that I will include not only companies that are included in the abbreviation, but also all companies that conduct interviews using the same system as such companies.
And this is how a typical interview looks like in such companies (depending on the company / position, the set of sections may differ, I will describe the most common ones). The first thing that happens everywhere is a phone call with a recruiter. Here, in general, everything is standard, you ask each other a couple of questions and then the recruiter gives a description of the projects for 10 minutes, which flies out of your head as soon as you leave the call. The second stage is a technical screening, which can be carried out by a recruiter, then this will be done in paragraph 1, or by a separate call to a technical specialist. Then the most interesting begins: communication on your language and stack, algorithmic section, system design, behavioral (aka behavioral) section. Let’s take a closer look at these stages.
Just think, in order to prepare for an interview from scratch (from scratch, this does not mean that you decided to “get into IT”, but you want to interview at a FAANG like company for the first time, or after a long break), you have to solve algorithmic problems for at least a year with LeetCode, HackerRank or any other equivalent. It reminds me of preparing for an exam. Just think, what does the successful passage of this section say about the candidate? For me, the fact that he can successfully solve problems with LeetCode, so if such a skill is important for the position, then this is definitely a plus.
Then the preparation for the sys begins. design, which is usually asked to design some popular social media. network or something like that, so it would be logical to study and memorize this process, for example, using the well-known book Grokking the system design interview. This stage looks more useful than the previous one, but only at first glance. Firstly, you need to understand whether the candidate will really need the skills to build such systems or will he sit and fix a couple of bugs in a sprint? Even if it is necessary, again, it is far from always that going through the system design section in this form will give an understanding of the candidate’s skills. He may not have any real experience in designing complex systems at all, but memorizing and getting the hang of going through these sections is enough to gain approval.
The third stage is the behavioral section. I don’t even know what to say here. For those who don’t know, in this section you are usually asked about various situations that may arise in the course of work (for example, conflicts / disputes, etc.) and how you solved them. Hmm, what can you say to that? I’ll probably remember some situation where the conditional June Vasya, whom I mentored, created a PR, I reviewed it, and Vasya had questions about my comments and instead of talking constructively with Vasya, I told him to go into the forest and go remake, because I’m a signor? Of course not. I’ll just come up with a couple of stories with small conflicts and how my colleagues and I sorted it all out well, drew conclusions and promised never to do it again. Amazon even formed the principles of leadership Leadership Principleson which to rely when answering such questions. As a result, in this section, you can find out from the candidate how well he comes up with conflict situations and ways out of them.
Then it’s a good idea to go through a couple of interviews in a company that takes one stage to remember the main questions on your stack (yes, a lot of things are simply forgotten, because you don’t use them at the moment, but are easily remembered with a couple of queries to Google in case they are needed).
And so, here you have gone through such a path of preparation and further … that’s right, you can start to pass a mock interview and only after that you can already apply for real vacancies. In total, we get that preparing for an interview can take somewhere around 1.5-2g (of course, there are those who do it much faster and those who take even more time). Is it a lot or a little and is it worth it, everyone decides for himself, but I have such a conclusion.
Passing an interview has almost nothing to do with real work experience. This is the same skill as the knowledge of java / c ++. And then the question arises, why is all this needed at all, if so many stages of selection check not the technical level of the candidate, but his ability to pass these stages?
Surely there will be those who will ask me, well, if you criticize this approach, you probably know how to do it right? Not really. I have yet to come across a good and objective way to evaluate a candidate, and it is unlikely that it even exists. We just need to admit that we do not know how to conduct interviews.