Interview Process for Software Engineers

Okan Menevşeoğlu
Blue Harvest Tech Blog
9 min readSep 2, 2019

In one of my previous posts, I wrote about sources where you can apply for jobs in the Netherlands. After publishing it, I got some questions such as what kind of preparations to make, what do they ask during interviews and how long they take. As a result, I continue by explaining interviews in detail for Software Engineers.

Can we also automate interviews, please?

Expectations & Company Culture

Based on the level of your education, technical knowledge, area of business or past work experiences, you will get through different steps. However, the essence is always the same; A company has a list of technical expectations and an employee profile. To get a job, you need to meet their criteria. For the technical side, they expect you to have specific hard skills based on your area of expertise along with some soft skills. Still, if you show that you are fit to the culture, they would want to work with you even if you lack some technical knowledge.

Hard Skills

Technical skills that the position requires and the company expects are called “hard skills”. You will see the details of these in the job description. Sometimes companies put a long list of skills in a single job description. Even though it may indicate that the company doesn’t know what they want, it is usually intentional. There are two good reasons for that. The first reason is that they don’t require every skill that is listed there but they want someone who knows a large subset of them. The second reason is much simpler and a bit cruel. There are too many applicants and they want to eliminate some.

If you don’t know some of the listed skills but have similar experiences or if you show your willingness to learn, you may pass this step successfully.

Another thing to mention is that you should apply for positions that are related to your knowledge or experience.

During the time of my applications, I had 2 years of Java Spring Web Developer experience along with some Angular framework and AWS experience. So, I applied for Web Application positions that contain backend plus DevOps. I don’t prefer writing front-end that much.

If you have an experience like above, you have a higher chance of getting a job for a “Web Application Developer” position and a little chance of being a “UI/UX Developer”.

Soft Skills

A “soft skill” is an ability that you use in your relationships with other people, that defines your personality, your habits, and your emotional intelligence (EQ).

In software engineering, you will be busy with people as much as you are busy with code. Thus, you need to have good soft skills besides hard skills. I won’t go into details here. However, I have a good reading on this subject and I recommend you to read it to get a deeper insight into this.

Your Expectations

Like the companies, you too should have a set of expectations from them. The idea is that if you agree to any work without any criteria, it might create a bigger problem for you in the future. There is a probation period in almost every company which can last from 2 to 6 months. The company observes you during this period. If you are not like as they expected, they decide not to continue working with you after this period. They thank you and ask you to find a new job. Therefore, the company should also meet with what you expect so you can align with them and have a higher chance of passing the probation.

Interview Steps

The number of steps during an interview process varies based on the company. There is a minimum of 3 steps. Large tech companies tend to have a longer process that takes up to 7 or 8.

1. Phone Interview

The first step is always either a phone or a Skype interview. Recruiters will contact you via email or phone to set up this meeting. They will ask for a suitable time for both sides. I always try to set a meeting during lunchtime, so my current job won’t get interrupted. A non-technical recruiter talks to you on this call. They want you to introduce yourself a bit more detailed than your CV and ask your motivation for the position. Be honest here. So, even if they think the position is not for you, they might consider you for a different position.

2. Skype Interview

Skype interviews are similar to phone interviews. As a difference, the interviewer might ask you to open the camera but in general, they won’t. This type of interviews also might take place again in the later steps with a technical interviewer or one of the higher-ups like a manager or the boss to evaluate whether you fit the culture.

3. IQ/EQ Tests

Some companies require you to take IQ/EQ tests. You will be asked to take multiple-choice tests that evaluate your intelligence, personality, and emotional status. IQ tests are traditional tests which require you to find sequences, match images, find the following number, etc. The hard part about these is time. Time/question ratio is something like 30 minutes for 60 questions.

Personality questions are usually one-liners. You select from a range of 1 to 5 how well it fits you such as “I like to work with a team rather than working alone.” It’s ratio differs but is close to 15 minutes for 120 questions.

I would advise you to take these tests in an evening or during a weekend in a place where you won’t get disturbed. Moreover, turn off your phone and all notification channels during this time to keep yourself more focused.

You will receive the test results in a maximum of 1 week. The results will give the company insights about your adequacy.

4. Technical Tests, Code Assessments and Algorithms

Next step is technical evaluation. You might be asked to solve tests that contain various questions from computer science, programming languages, and algorithms. There are several websites to prepare for such tests like; Hackerrank, Leetcode, Codility, Top Coder, Project Euler, interviewing.io, firecode.io, etc.

If you are asked to solve an algorithms challenge, you usually get 3 questions. First is easy, the second one is a bit difficult and the last one is challenging. You must solve at least two of them to pass this step. The last one is a bonus and if you solve it, they might consider you a valuable candidate.

In some cases, you will be asked to do live code assessments which test how well you perform under pressure. Questions will be like designing an object-oriented class hierarchy, writing an SQL to find a subset of a given data or writing small code snippets to solve a problem. Recruiters want you to think aloud and explain your solutions as you solve the problems so, they can understand your way of thinking. The difficulty increases based on how well you keep performing.

5. Preparing a Project

The next phase which occurs almost always is preparing a project. You will be asked to prepare a project that is related to the applied position. If you applied for a backend position, you get a task to design an API that meets some requirements. If you are a front-end developer, you will be given an existing API and asked to create a user interface for that. If you are a mobile developer you need to create a mobile application. An important point to mention is always to write unit and integration tests. It should have a positive impact on the results.

Sometimes there are limitations like not to use any frameworks, not to use any external libraries or use certain technologies, etc. that tests your ability to work with limited resources. Nevertheless, this step evaluates how well you develop with the given requirements.

6. Project Evaluation

After you complete the project, they evaluate it. If the results are positive, you might get an invite to another Skype call with a technical team about it. You will be required to explain the project in general, architecture and object design you used, impediments you encountered, how you solved them and finally, how you could improve it further.

7. Meeting with a Manager / Boss

Another step is having a meeting with a manager or with the boss. This conversion will also take place on the phone or via Skype. They will ask questions about your expectations, the reason that you want to move over, your plans, etc. These questions are important. They want to make sure that they are not hiring someone who is not fit for the company culture. Managers are best to understand this because of their high experience level.

8. On-site Meeting

On the final step, most companies will invite you to meet you in person to see whether they are accurate with their choice or not. Some companies will call you to take technical tests or code assessments with the development team. Nevertheless, after you successfully pass this meeting, you will get an offer from the company.

Magic Question!

I have a trick which I believe is a great way to end an interview. No matter if they are from the development team or HR always finish the conversation with the following question: Do you like to work there?

This pushes them to think about their work environment and since they are not expecting a question like that, you can get an idea on the work environment they have. They will most likely be honest with you and tell you the details. It also leaves a great last impression. Just try it when you have an interview next time.

The Offer

After you successfully pass all the steps that you encountered, you will get an offer. First, they will call you to say that they are positive with results and they want to hire you. Then, they will tell you details and how much they are offering to you.

But… I expected a bit more.

Most of the people have a hard time negotiating the offer or they don’t negotiate at all. The reason is simple, they think that they had a hard and long interview process so, they don’t want to lose their chance. However, there is no need to panic. They are giving you an offer because they think that you are a valuable person and they want to work with you. Companies would also be afraid to lose you after investing time on you that much, possibly rejecting some others during the process. In my opinion, you should try to negotiate the offer unless you think they are paying what you deserve.

During the negotiation, you should be very polite. Indeed, the company wouldn’t want to lose you but if you act like you only care about the money they may revert their offer. After receiving the offer, you can call back the HR you talked before (it is better to talk this on the phone than sending an email). Tell that their offer is good but you were expecting a bit more and ask whether that would be possible. Most of the time they will say that they understand and return to you soon after talking with higher-ups. Tell that you would be really glad if you could get a little adjustment on the offer and thank before you hung. If you are lucky you will get a bit more salary. If not they will just inform you that it is not possible. Just say that you understand and thank them for trying. After that, you can think if the offer is acceptable or not. Just call back for the final response.

In the end, they will send you the details in an email. From this point, it is totally up to you to accept it or not.

What if I get rejected?

As a job seeker, you should get used to getting rejected. At the end of the day, companies won’t hire the most intelligent or skillful applicant. They will choose who did the best during the process. Naturally, you won’t always be that lucky person. Don’t let this influence your job hunt. I did 20–25 interviews before my current job. I got a call to an on-site meeting from only 3 of them. Just try until you find the best company for you.

I accepted the offer! What to do next?

Congratulations! You got accepted. Sign the contract. Inform your current company that you received a new offer. Consider that you will have a notice period. The length varies based on the time you spent in your company. Next step is preparing documents, arranging a place to stay and learn about the country. Ask the company to determine if they arrange an appointment for BSN number to open a bank account and rent a house. Otherwise, you need to do it yourself.

Conclusion

Don’t forget that the job search is a process that takes a long time. If you have a specific time in your mind to start to a new position, you must start seeking a job at least 3 months before the date. Finally, don’t stop applying even after you get rejected too many times. You will find the fitting position for you in the end. For more questions, feel free to reach me.

Have a nice day!

--

--