Software engineering as a service

Custom-built software that fits exactly your needs. Get in touch today.


Demystifying the behavioral interview: Part 3 - Tricky coding interviews

Interviews Jan 25, 2023

Welcome to the third installment of our series on demystifying the behavioral interview. We already went through the necessary groundwork and covered some popular questions the hiring managers ask. Now we’ll share more tricks of the trade and see how interviewers assess cultural fit during the coding interview.

When it comes to coding interviews, it's important to be aware of the hidden behavioral components. Even if the interview doesn't explicitly mention it, the interviewer(s) are likely assessing your fit with the team and the company culture. As an interviewee, it gets tricky as you have to pay attention to the problem at hand, your code, and your communication.

Live coding

In the case of a live coding interview, you are presented with a problem to solve on the spot without having prior knowledge about it. Some tips for this kind of interview are:

  1. Listen and ask questions: Show that you are actively listening by asking relevant questions and engaging in a dialogue. This demonstrates that you want to have a good understanding of the problem before plunging into the implementation. It also shows you take time to think and challenge any assumptions.
  2. Communicate clearly: As you are talking, make sure you are using clear language and that you are communicating your thought process. Explain the steps you take and why you take them. This shows that you have a firm grasp of the problem and that you can explain your thought process. This skill will be crucial when communicating with your team to solve problems together, but also when you communicate technical topics to not technical people.
  3. Be honest: Be transparent about what you do and don't know. Don't be afraid to admit when you don't know something or when you make a mistake. This shows that you can be open and honest about your progress and that you can learn from your mistakes. Observe your interviewers and heed any tips they might give you in terms of the direction they would like you to take.
  4. Be positive: Keep a positive attitude and stay engaged during the interview. Show that you are interested in the job and that you are passionate about the work. This will demonstrate that you can bring a positive attitude to the team.

Code challenge review

Some companies provide candidates with a coding challenge that they can solve in their own time and submit for review. If the submission is deemed adequate, an interview is scheduled to go over the solution with the hiring engineers. In these scenarios, I’ve found that the following strategies help a lot:

  1. Be thorough: Typically, you will take the driver’s seat in this interview. Explain your understanding of the project, detail your approach and be exhaustive when talking about your decisions, especially in the first parts of the interview when you go over the high-level description. When you go into more details, either on your own accord or when asked by the interviewers, meticulously describe any nuances which are not clear by the code or why certain decisions were taken instead of others.
  2. Be original: Use your ideas and code instead of relying on code from others (e.g. youtube tutorials, stack overflow, etc.). You will be asked to navigate your code and explain your decisions. Your interviewers might take a deep dive into a specific aspect of your submission (e.g. testing or the dependency injection framework you used) and it’s expected that you can justify your code and the decisions you took.
  3. Be mindful of strong opinions: This one is twofold. If your interviewers are the ones holding strong opinions, it might be better to avoid confrontation. You can express your view, politely disagree if that’s the case, and then find a way to move forward from the topic. A compromise would be ideal, but a “disagree and commit” approach would also work here (i.e. you don’t agree with their opinion but will still follow it if this is the only way to proceed).

    If you are the one holding strong opinions about something, be mindful of how you express them and give space to your interviewers to share their opinions. It’s more important to have a dialog instead of winning an argument. Your interviewers may be trying to provoke you on purpose. Maybe you are indeed correct but they want to see how you handle disagreements or even “ridiculous” arguments. Don’t fall into the trap and keep your eyes on the goal.

    Lastly, be apprehensive; if something feels off it might be an indication that this position is not the right fit for you. If you see too many yellow or red flags, consider if this is the ideal working environment for you or if it’s better to pursue other opportunities. Interviews are two-way exchanges, never forget that.
  4. Be honest and clear: As described above for the live coding, you have to be honest in case you don’t know something or made a mistake (if pointed out by your interviewers). You also need to be clear in your communication. This interview is about explaining how you understood the problem and how you solved it; clarity is key.

And there we have it, folks, I hope you found my advice helpful and feel primed to nail your upcoming coding interviews!

Don’t forget to check out the other parts of the series as well as my talk at DevFest Greece & Cyprus 2022.

The behavioral interview in software engineering
Coding is an integral part of a typical software engineering interview process but what is less thought of by candidates is that companies dedicate a big chunk to assessing “cultural fit”.
Your guide for success in the behavioral interview
An in-depth analysis of popular questions software engineers are asked during the behavioral interview with sample answers from expert sources.

Tags

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.