This section reflects our philosophy for hiring people. It shows the way we as interviewers think, so that you can put yourself in our shoes and understand where we’re coming from. We know for a fact that all smart companies in the tech space think and act similarly. As you may expect, different companies focus on different things, but ultimately they all pay attention to the same basic set of characteristics. We will look at what they are below.
Over time we've realized that many job candidates have a complete misunderstanding of what the interview is about. Many think of it as a war during which the interviewers will try to destroy them with hard questions. This is one of the reasons why people are stressed and fail to show the best they have.
In fact things look differently from the eyes of an interviewer. If they are looking for candidates this means that there is a job opening that they would like to fill. So, usually an engineer from the company sets in their calendar that there will be an interview. They will probably be working hard until 15-30 minutes before the interview a reminder pops up. Most likely this is the first time they will look at your resume, perhaps underline a few things and rush to the meeting room. Their hope usually is that they find a good fit for their company and the concrete position. Most interviewers find joy when they meet smart and pleasant candidates who manage to solve their problems. Their goal is not to humiliate someone and show them how stupid they are.
Let's move to the actual interview. The goal of it is to check whether you are a good fit, of course. One way or another, smart interviewers look for several characteristics in a candidate to evaluate them. Here they are:
How you score on each of these is going to ultimately determine how well you do. Being great at any one of them (e.g. knowing the source of Java by heart) is usually insufficient to get hired. Many candidates assume that the highlight of their interview is to solve the given problems. It is essential to do that but is not enough, as we will see. Very often we hear people complain that they solved their problems but still didn't get hired. As we've already shown there are so many other things to consider in a candidate. They can also have a negative effect on the outcome of the interview.
Character refers to the way people behave in different cases. For example, in a difficult situation, do they become negative, cheat, or just be mean. Or do they handle problems well, showing integrity and support for their peers. This is hugely important as each software engineer is usually working in a team interacting with others. If you have a group of the smartest people who cannot communicate well among each other, you would still get bad results out of this group.
Culture fit is something specific to each company. For the more popular ones you can learn about their culture from their website and various publications. This is another common reason to reject smart people. It's all about whether you match the profile of the other people in the company. A simplified example is: if the company consists of geeky people who like all the new gadgets and read many blog posts about all the new technologies and you aren't such a person. Probably there won't be a good culture fit there.
Intelligence refers to the way you approach new problems. That's why it's very important for the interviewer to see your process for solving problems at the interview. If it turns out that you just memorized a number of algorithms and problems then it may become apparent that you cannot solve problems, which are new to you.
Skills are the last characteristic that is tested at an interview. It refers to your knowledge of various programming languages, technologies, etc. For example, how well do you know Django, Ruby on Rails, C++ and so on. Our opinion is that this is the least significant of the four characteristics. The reason is that someone who possesses the other three will be able to quickly pick up new skills. There are perhaps companies requiring highly specialized skills where this characteristic is more important, of course.
Finally, interviewing is not a zero-sum game: your interviewer wins and you lose, or vice versa. It’s also not a situation where your interviewer is trying to intimidate you by asking impossible questions you can never answer, just to show they’re smarter.
Instead, it’s a friendly conversation by two (or more) people who’re trying to form opinions of one another in a short period of time. It’s designed to be fast and efficient, hence the structure. But at the end of the day it’s nothing more than a conversation on an interesting topic: algorithm or system design, where often times the interviewer is just as anxious and nervous as you are.
In this section you learned:
One common misconception about interviews and how most interviewers actually think. Just solving the problems may not be enough sometimes. There are four main characteristics that a smart interviewer will look for in a candidate. Having just one of them is not enough to get hired.
There is a set of questions that we've heard people ask over and over again. Thus, we decided to answer the most important of them. Take a look next!