topic: Technical Interview Preparation

Tags employability-sprint

There are many general-purpose guides available on how to prepare for software engineering interviews. This is one of our favourites: Interviewguide.dev

Automated Technical Tests

Often, you’ll need to first pass technical tests at home before even getting into the room with a human recruiter. Code tests are a quick and easy (and highly automated) way to assess whether you have the basic skills needed to land the interview. Normally they don’t expect juniors to get 100%, but they do want to get a better understanding of your skills.

Preparation

Practice makes perfect and there are many sites that allow you to practice your coding skills.

Focus on your general problem-solving skills. These links are great for this:

Technical interviews are notoriously biassed towards questions on algorithms and data structures, for which you can and should prepare well.

Practising a wide variety of problems on the platforms mentioned above should power you up to tackle anything the technical test throws at you. You can never know exactly what they’ll test you on, so instead of trying to “hack the test”, practise a variety of different problem types on various platforms. If the first few interviews don’t go well, you’ll at least gather valuable data on where to lean in more.

The actual test

One place where a lot of people go wrong in these tests is poor use of time. Below is a basic procedure to try out. Of course, everyone is different and you might want try a different approach, but this one has worked for many people:

Step 1: Browse

The first thing to do is read through all the questions. Get a basic idea of what you are dealing with. Your subconscious brain will then start working on the problems in the background.

Step 2: Pick a question

Choose something that looks doable to start off with to get your brain warmed up. Double check your understanding of the question.

Make sure you RTFQ! It’s very important that you don’t jump to conclusions.

Step 3: Decompose into smaller problems

Most problems can be broken down into smaller problems. Do your best to decompose the test question and work through all its parts one at a time. Be consistent and keep your logic clear. The intention of your code must be clear at all times.

If you hit a wall…

If you get stuck, don’t immediately give up and move on. And don’t just bash your head against the problem until you run out of time. Check how much time you have left, and set a time limit for yourself. Somewhere between two and five minutes is generally good.

Bash your head against the problem and focus as hard as you can on this one problem for those two-five minutes. If you make a breakthrough, continue working. If you are still completely stuck at the end of your two-five minutes, move onto another question. You can come back to this question once you have attempted others.

Multitasking

Multitasking slows you down and splits your focus. Seriously, don’t try to think about two problems at the same time. Focus on one thing, and then continue.

If you finish the test ahead of time

Go and read over all your answers:

  • check for bugs
  • double check that your code is clean and understandable. Remember that coders work in teams. If your code makes you seem inconsiderate and short-sighted, that would be a bad thing

If you panic

Tests can be scary, we get it. But panic isn’t useful. If you are feeling overwhelmed, stop what you are doing, take a deep breath, and intentionally slow down.

Yes, slow down. By slowing your movements, you actually calm yourself.

Focus your mind only on the one problem that is right in front of you. It might be a single question, or even a single part of the question.

Sometimes when people panic, they start to jump from question to question. This isn’t useful. Use the time-boxing technique mentioned above to stop yourself from doing that and to help you focus. For two-five minutes, you only have one problem to think about. Do your best on that one problem.

One thing worth knowing is that if you do well at your work you will probably get promoted to a position where there is a lot of pressure. Anxiety is part of the job! Anxiety is also very normal so there is a lot of wisdom out there that you can tap into.

For more information about anxiety please read this TOPIC: Dealing with anxiety (for coders)

In-Person Technical Interviews

Lots of companies only do these after you’ve done “well enough” on an automated test, but some prefer to do these earlier in the process. Either way, the preparation discussed in the section on automated technical tests should power you up quite well for these as well.

In this section, we’ll explore some of the softer skills and live-interview techniques that will make a difference during in-person technical interviews.

Talking About Your Experiences + Portfolio

This is a very important part as it is a visual representation of the skills that a learner/junior has.

Most companies ask, for example, for a link to the candidate’s repo to see their work.

  • Know your CV incredibly well. Chances are you will be asked to talk about the work you’ve done.
  • Make sure to have the correct link to your GitHub repo. It’s very important to check that everything on your GitHub profile works as it should.

Theoretical Technical Questions

These are questions that are specific to the role that you’re going to be filling. It helps interviewers see if you know what the job involves and if you can fulfil the role.

You can prepare for this by:

  • Getting to know exactly what is involved in the role you are applying for so you can see what you need to either prepare for or sharpen.
  • Practising common terminologies in that specific language/jargon and ensuring that you’re able to explain them.

If you get interviewed and you get asked a question that you don’t know the answer to, admit that you are unsure. Don’t ever, ever pretend to know something you don’t.

Examples of questions to help you prepare:

Your Playbook For Whiteboarding In Technical Interviews

First, read this: HackerNoon Whiteboarding Advice

Culture Fit/Behavioral Interviews

Any interaction you have with a human at the employing organisation will feed into a “culture fit” assessment, but sometimes employers will set up time with senior staff specifically to assess “culture fit”. Cultural fit is the likelihood that you will be able to conform and adapt to the core values and collective behaviours that make up the organisation where you are applying for a job opportunity..

Your biggest weapons in these sessions are preparation and empathy. The better you understand the context of the organisation and the person sitting across from you, the better equipped you are to align what you can offer with what they are looking for ––whether from a skills standpoint or in terms of values alignment.

These articles give great overviews of how to engage well at every step of the process, as well as how to prepare for the relational/people-focused side of the interview process:

Remember that you can also ask people in your network for support on this. Friends, mentors, or even just kind acquaintances in the industry can often be a powerful resource in your preparations. As we mentioned earlier in the course, people generally do want to help. Sometimes you just need to ask!

“I’ve never found anybody that didn’t want to help me if I asked them for help.” Steve Jobs (This two minute video might just change your life!)


RAW CONTENT URL