DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’» is a community of 963,673 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

Create account Log in
Cover image for Acing a coding interview
Kachi Cheong
Kachi Cheong

Posted on

Acing a coding interview

If you're reading this, it means you're either looking for a new role or considering looking for a new role. This article will be specific to coding but the principles can be applied to any sector.

My name is Kachi and I am a former recruiter turned full stack engineer. Whilst applying for Jobs, within a 2 week period, I interviewed with 4 companies, got to the final stage interview with all 4 and got 3 job offers.

This article will offer a little bit of a different perspective on coding interviews and I hope it helps you land your dream coding job.

Landing the interview

Now this article isn't so much about landing interviews, this article is about preparing you for the interviews you've already scheduled.

When you get an interview, it means a few things:

  1. There is a position available.
  2. They hope you can fill that role.
  3. They will convince you why it's right role for you.

No one spends up to an hour of their day talking to someone if you weren't interested in hiring them. If you have an interview, it means there's something about your application or CV that they like. You've already impressed them, so during the interview process, it's time to prove them right for giving you a chance.

During one of my interview, a CTO said one thing that stuck with me:

"We hire for attitude, we train for skill."

Most companies will hire you if they like you, not if they think you're qualified. Wouldn't you rather work with someone who you like over someone who is skilled with bad attitude? Don't get me wrong, you can't have no skill what so ever, but the fact you have an interview means you've so what met their requirements.

Coding jobs generally require 3 interviews stages: A general interview, technical interview and a final stage interview. Of course some companies may have 2 and others may have 4 or more, but the industry standard is three.

If a company only has one stage, this is a huge red flag as it implies they are impulsive, how much can you learn about someone from one meeting?.

The general interview

During the general interview (first stage), you'll speak to either the hiring manager, technical lead or CTO about your experience.

Conduct during an interview

Always thank you interviewers for their time during the start:

"I know you must be super busy. So honestly, from the bottom of my heart, I appreciate you making time to speak to me today."

During the interview try not be nervous and robotic, speak to them like you're already a colleague or friend. Do not answer a "how are you?" with a "I'm fine thanks, you?". Interviewers do not like candidates who they have to force an answer out of. Making the conversation less formal will make the interviewer like you more. Maintain eye contact and a smile when possible, these traits signal confidence to you interviewer.

Here is an example of a more relaxed answer:

"Honestly, a little nervous (haha) but excited. Yeah, it's monday today, not my favourite day of the week, but there's sun, so can't complain! It'll be a good week, we're starting it right! How was your weekend by the way, did you get up to much?"

Use suggestive language as if you're already part of the team. This will help the interviewers imagine how it would be to work with you. For example:

"When I start, what projects would we be working on?"

or

"I look forward to working under you. Honestly, based on this conversation alone I know I'm going to learn so much in this role".

Interview questions

Do not go into this interview and improvise, predict the questions you'll be asked and have answers prepared. Here are questions that you should expect to come up.

  1. Tell me something about yourself.
  2. Why do you want to work here?
  3. What is your greatest strength?
  4. What do you know about this company?
  5. What is your greatest accomplishment?
  6. Where do you see yourself in 5 years?

You will also have a chance to ask the interview questions and skipping this chance will hurt your odds at getting the role.

Here are two questions I used very often and found them to receive very positive responses.

"With the way coding constantly updates and evolves, one thing I want to improve on is keeping up to date with new technologies. As a developer with years of experience, how do you navigate this? How do you decide what new technologies are useful and which ones you should ignore?"

Why ask this?

This question not only shows you are a keen learner of new technologies but you're also humble when it comes to learning. This question allows the interviewer to share their knowledge (which everyone loves to do), whilst also imagining how it would be to teach and work with you.

"Who is the last person you hired, why did you decide to hire them? and how are they getting on right now?"

Why ask this?

This question gives the interviewer a chance to explain the type of candidate they want to you as they've already given this person the job. It also gives the interviewer an opportunity to sell their company to you and why you should work there.

At the end, thank the interviewer:

Thank you once again for your time, I'm very excited to hear back from you regarding the next stages.

Technical interview

During this second stage, you'll be quizzed on your programming languages or have a live coding session where you will pair program with the interviewer.

Technical questions

Before your interview make sure you've searched the most common questions asked about your language (for example, most common javascript interview questions).

If for example, your programming language is javascript you might be asked the following:

  • The difference between a map and filter function.
  • The difference between a scope and function.
  • Name the different primitive values in javascript.

Live coding session

A live coding session is where you will pair program with a member of your future team or CTO. The aim of this exercise is to see how easy you are to work with, not how quickly you can finish the exercise.

Always keep the goal of the test in mind, they want to see your collaboration skills as much as it is your coding skills. If the interviewer is quiet, ask questions such as:

"I think I'm along the right track, is this how you wanted me to solve the problem? or do you have any suggestions to improve this code?"

Make the interviewer engage as much as possible, ask them for help if you're stuck or ask them if you're able to use google.

I never finished one of my live coding session exercises during the allocated time but have never failed a technical interview. This is because I explained my thought process throughout and even asked questions to demonstrate I am open to external input.

Final Stage

The final stage is generally conducted by decision makers at the company. Depending on company size, you may find yourself speaking to the managing director, CTO or CEO.

You'll generally be asked questions to determine if you're the right fit. If you've made it this far, they've liked you enough to think you'll fit in. Most of the hard questions are out of the way. Just don't saying anything stupid.

There is a chance you're competing with other candidates for the role and you might want to prepare statements which will make you standout. In the time given, try and get the interviewers to like you as much as possible. Ask them questions about the company and their particular roles. Try discuss personal interests whenever possible to improve the rapport, decision makers will hire people they like over people that are qualified.

Extra Tips

Here are tips that can be applied to every interview stage.

Remain positive throughout

Remember during an interview they are looking for red flags, do not give them any by saying anything that can be perceived as negative like:

"I hate debugging code, it takes so much time and effort"

Or

"My last company was so toxic, they forced us to work late all the time without overpay."

Never look desperate

Never put the company on a pedestal, remember interviews are still a negotiation. Interviews are a negotiation between a company who have a role and a candidate who might be interested in accepting that role.

Try being a little indifferent and asking what the company can do for you. Questions like "what perks do you guys offer?" forces the interviewer to sell you on why you work at the company. There is a fine line of being indifferent and being uninterested so here is an example of both when ending an interview:

Indifferent:

"From what I've heard, the company looks great and I'd say of all the companies I'm interviewing with, this is the one that stands out right now. Im excited to see where we go from here."

Uninterested:

"Okay, interesting. Im interviewing with a few companies right now, so I guess we'll see how thing go."

Make the company feel good whilst also suggesting you have other options and they might need a little extra effort if they want you on their team.

Always say you interviewing with multiple companies

Even if it's not true, never say "no" when asked if you're interviewing with other companies. This is something they can never verify and companies don't want developers that have been left on the shelf. By making it known that you are interviewing with other companies, it signals you are desirable and introduces a fear of missing out on you. From personal experience, I found that companies will move up their timeline if you play on this fear.

When I got an offer from one company, the other three companies I was interviewing with all pushed up their schedules to conduct their final stage interviews. Now even if you are only interview with one, you can still get away with saying something like this during an interview (even during the first stage):

"So I'm expecting a job offer in the coming days from another company, but from speaking to you guys today, I'd really like to finish the interview process with this company. So how quickly can you guys get back to me with an answer? I'm not sure if I'd still be available if you guys don't get back to me within the next day or two."

Expected Salary

The question of salary might pop up during any of the three stages.

What is your salary expectations?

The longer you avoid this question, the better. As you progress through the stages, the amount they like you will increase. If they approach you through a platform such as Hired or Otta, make sure you've listed your salary expectations to the industry standard for your particular role.

Never start with the number you'll settle for. If you are willing to accept 40k, start the negotiations at 45k-50k. You also don't want to start too high cause you don't want to price yourself out of an offer.

Here is an example of how to answer this question:

"I am in discussions for a couple roles and the figures that are floating around are 45-50k. But my decision will be based on the role and project but these are expectations as far as salary is concerned."

Summary

Interviews are only as hard as you make them. Be prepared, have a good attitude and most importantly remember your value. Don't come across as desperate or like a show off. The goal of an interview is to make the interviewer like you. The willingness to hire is based on likability as much as it is qualifications.

Good luck, leave any questions you have in the comments or send me a message!

Oldest comments (0)

Classic DEV Post:

caching

Web Caching Explained by Buying Milk at the Supermarket