paint-brush
How to Prepare for a Technical, Software Engineering Interviewby@commit
232 reads

How to Prepare for a Technical, Software Engineering Interview

by CommitOctober 20th, 2021
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Technical interviews are a chance for both startups and software engineers to get to know one another and assess whether they’d like to commit to working together. A typical job interview for software engineers and developers tends to consist of a few phases. Interviews with hiring managers typically consist of an informational conversation and technical skills assessment. Panel interviews: A group, or a series of individual, interviews with peers, business stakeholders, and team members. The “culture fit” interview where various people from the team, and maybe even from around the company, are given the chance to assess candidates.

Company Mentioned

Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - How to Prepare for a Technical,  Software Engineering Interview
Commit HackerNoon profile picture

Photo by Timur Garifov on Unsplash

We prefer to think of technical interviews as a chance for both startups and software engineers to get to know one another and assess whether they’d like to commit to working together. 

With all that in mind, there are still some standard procedures in the technical interview process that we can shed some light on, so that you’re feeling confident going into your next meeting whether it’s a remote or in-person one.

Summary of the Software Engineering Interview Process

A typical job interview for software engineers and developers tends to consist of a few phases:

  1. Phone screen with recruiter or hiring manager: A 30-minute phone or virtual conferencing meeting to get to know more about you and discuss your resumé. 
  2. Interview & technical assessment: Interviews with hiring managers typically consist of an informational conversation (see more on behavioural and situational questions below) and conclude with the technical skills assessment.

    You may be asked to do a take-home assignment, where you complete your technical assessment asynchronously, as an alternative to doing it live. Some hiring and human resources managers may ask you to team up with an existing team member and work through pair-programming to solve a shared challenge. This interview tends to last anywhere between 60-90 minutes. 
  3. Panel interviews: A group, or a series of individual, interviews with peers, business stakeholders, and team members. You can largely consider this the “culture fit” interview where various people from the team, and maybe even from around the company, are given the chance to assess candidates.

    Remember this is an opportunity to ask your potential coworkers questions about their work styles and preferences as much as you’re answering questions about yours. 

If you make it through this process, congratulations, the next step is likely an offer letter from your future employer. 

The Three Kinds of Software Engineering Interview Questions

As we mentioned, technical interviews tend to include both an informational component and a technical one. Broadly speaking, you can bucket interview questions into three categories: 

  • Behavioural interview questions: Questions about your previous roles and responsibilities, your work habits, your communication style, and whether you’d be a good fit culturally  
  • Situational interview questions: Questions gauging how you manage and/or react to different people and circumstances in the workplace and your approach to problem solving 
  • Technical interview questions: Questions assessing your skills level, knowledge, creativity, and subject matter expertise

Here are some common questions for each category that you may encounter. Don’t be afraid to workshop your answers to these questions with peers ahead of time (but try to avoid sounding scripted during your interview). 

Sample Behavioural Interview Questions

Behavioral interview questions are all about uncovering your values, your communication style, your work ethic, your ability to adapt, and how you work within a team.

These kinds of questions require concrete examples and a little bit of storytelling on your part. 

  • What interests you about this role/company/industry? 
  • Tell us about a time that you made a difference or your biggest accomplishment. 
  • Describe a project that didn’t go as well as you had hoped. How did you react and what were your next steps? 
  • What’s your approach to advocating for your ideas and solutions or getting buy-in from multiple stakeholders?
  • Talk about a time that you went through a big change at work, how did you adjust to the circumstances?

Sample Situational Interview Questions

  • The project you’re on is running over schedule, but you see a critical error in the code that could cause bigger problems down the line. What do you do?
  • Tell us about a time that you had to address a conflict or misunderstanding with a coworker.
  • What would you do if you were unsure about the goals or direction of a task or project? How do you identify your next steps in that situation?
  • Let’s say you’re in a meeting with a client and they ask you for a feature that isn’t on the roadmap yet, how would you respond? 
  • You find out that you have half the time to deliver a feature than you initially planned for, how do you adjust for the new timeline? How do you handle surprises like that?

Sample Technical Interview Questions 

  • From your experience, describe the key elements of agile software development.
  • Which programming languages are you the most fluent in? Rate your proficiency in each.
  • What’s your approach to QA and testing? How do you check your own work for accuracy?
  • What do you do when you get stuck on an issue? How do you resolve it?
  • In your opinion, when is a product or project ready to release?  
  • Do you work on any of your own projects or have you worked on any open source projects?
  • Are you currently a member of or a contributor to any developer communities? Are you working on any side projects? 
  • Tell us about the type of work and challenges that interest you most. 

How do you Prepare for a Technical Interview: A Step-by-Step Guide

1. Get Your own Story Down First

Most interactions with prospective employers begin with a handful of get-to-know-you, or behavioural, style questions.

Learn how to weave a story from the jobs listed on your resumé by answering questions like:

  • Why did you take that job?
  • What did you do in that role?
  • Where did you excel? 
  • Why did you move on from that role? 

The most important thing at this stage is to show your passion for your work and show some self-awareness around the types of challenges and work environments that you thrive in.

Remember that your career progression doesn’t have to be linear to be meaningful. Sharing your story in terms of how you’ve followed your curiosity and taken on new learning opportunities is a surefire way to win over recruiters and hiring managers. 

2. Learn About the Company’s Mission and Values, Check the News for Recent Company Updates

It helps to do some homework on the organization you’ll potentially be joining.

You can learn a lot from reading through their website’s “About Us” pages, their blog, and their online newsroom or FAQs to get a better sense of the company’s mission and their offering.

It’s also generally a good idea to see whether they’ve been in the news lately or put out any press. 

Mentioning good news in an interview shows that you’re thoughtful and detail-oriented. It also shows serious interest: you’re not just here for any job, you want to make sure the role is right for you too. 

3. Study up on Subject Matter Expertise, for Example, Programming Language(s), Mentioned in the job Description

You’re obviously going to brush up on your knowledge and responses to skill-testing technical questions in your area of expertise—whether that’s going through coding practice tests online or with peers, or recalling complex systems and infrastructure challenges you’ve previously had to solve. 

Keep in mind the end-to-end process and how you would handle each phase, from prototyping to testing. You’re likely going to be asked to improvise a little bit in your technical assessment, so remember it’s all about how you think your way through a problem.

Practice working out loud with a friend beforehand to ease any nerves or performance anxiety. 

4. Seek Clarification From Your Interviewer(s) as Needed

Your hiring manager is going to be listening to you work as much as they’ll be watching your work. Remember that it is perfectly OK to ask clarifying questions as you do your technical interview.

It’s better to seek clarification than to continue on blindly and risk making a costly mistake. A big part of the technical interview is actually about testing your communication skills. 

Some Examples of Useful Clarifying Questions are:

  • Was the goal of this feature to perform this function?
  • Do you know whether anyone has tried taking this action before?
  • Did I hear you say that this piece will flow into this section? 
  • Do you know of any potential risks if I were to do this?

5. Prepare Your own Questions for Your Interviewers

One thing we tend to forget is that interviews go both ways.

You’re also there to ensure that you will be joining a team or a project that values your expertise and the skills that you bring to the table. 

That’s why it’s important to come prepared with your own questions for the hiring team.

You’ll likely want to ask about the day-to-day working culture of the team, how the team handles disagreement or conflict, how they celebrate wins, their views on work-life balance. You can always ask for some real-life examples of these things. 

Anything that is critical for you to thrive in your role, you’re going to want to ask about that before the whole interview process is over. 

Following up on Your Technical Interview: Dos and Don’ts

Post-interview, you’ll want to follow up immediately (or within 24 hours) with a thank you note to the recruiting and hiring team. It doesn’t have to be an essay, just a simple ‘thank you for your time and consideration’ will do, and perhaps a short note on any conversations that resonated with you for an added personal touch. 

There are some general etiquette to follow when it comes to following up on an opportunity: 

Do:

  • Ask for a timeframe or window for when the hiring team will be making their decision.
  • Follow up after 1-2 weeks if you haven’t heard back from the hiring or recruitment manager. 
  • Ask for feedback on your interview performance, especially if you don’t land the job.

Don’t:

  • Send multiple follow-up emails if you don’t hear back within a reasonable amount of time; give the hiring manager space to make their decision and go through their process.
  • Follow up with a list of things you would have said and done, but didn’t at the time. 
  • Take every rejection to heart. If you ask for, and receive, feedback that’s a gift as well.

Try to remember that the hiring panel is rooting for your success, as your success is ultimately a boon for them. They want to fill their open role with a skilled, reliable and experienced person.

We hope this guide offers you a two-way approach to preparing for your upcoming software engineering technical interview.

Good luck! 

As more job opportunities become available to remote software engineers—and the tech interview becomes more virtual as a result—we, at Commit, feel especially equipped to lend a hand in preparing software engineers and developers to seize this moment and blaze the trail towards the future of work. 

First published here.