Software Engineer Interview Secrets

Acing the software engineer interview is whole set of skills upon itself. In my 20+ years experience in software development like the meme here it can be much harder to pass the interview itself than doing the actual job. There are plenty of resources to help you pass the technical interview Leetcode and cracking the coding interview book are usually the top places to start.

software engineer interview

While it’s really important to have your technicals down solid, as that’s what's going to get you in the door. Honestly in all my years doing interviews, in my experience, I already knew within the first 10 minutes of an interview if you’re going to make it to the next round. Your behavior matters more than you think.

Knowing how to prepare for a software engineering interview the right way will save you hours (or days) of your life and needless frustration. I've been there myself over the past 20 years on both sides frequently getting new offers in less than 2 years. 

The interview is broken out into three sections, before the interview, what you should expect the day of the interview, types of interviews, and key action steps after the software engineering interview are over. The key is to prepare and always be ready to adapt.

Before The Software Engineer Interview

Preparing to Crush The Software Engineer Interview

coding interview
  • Algorithm Practice - One of the best ways to do this is to use online coding challenges and practice problems, such as those available on LeetCode. These challenges can help you get used to the types of questions you may encounter in the interview, as well as familiarize yourself with the syntax and language of the programming language you are using. Additionally, practicing with coding challenges and practice problems can help you develop your problem-solving skills and build your confidence. 

  • Learning technical concepts - The more DS/Algorithms you know well the more you can solve different types of problems so balance your time with learning the concepts as well as applying them in your coding challenge sessions. 

  • Build Side Project (or clone open source app) - When you’re in the early stage of your developer career and want a FAST trajectory to much higher income, you should Always Be Coding (ABC). Build your own project or clone an open source and contribute to the project (even documentation) 

  • Mock Interviews - nothing beats real-world practice than actual practice interviewing in front of someone (one of the best ways to improve is getting better at explaining your code and thought process.
  • Teach (Learn In Public) - Talking while coding is an underrated skill for a software engineer interview but teaching it to the world is even better and more scalable. (This is something I’m personally doing for machine learning)

For each position, you will be prepared differently. Here are the few that I've had to prepare for: 

  • Fullstack Engineer 
  • Frontend Engineer 
  • Backend Engineer

What You Should Expect for a Software Engineer Interview

  • Phone screen - During a phone screen, a software engineer can expect to have a conversation with a member of the hiring team, typically a recruiter or an engineer, about their background and experience. The purpose of a phone screen is for the company to get a sense of the candidate's fit for the role and to determine if they should move forward in the interview process.

  • Software engineer phone interview - The interviewer will ask technical questions and past projects to gauge your knowledge and understanding of the technologies and programming languages relevant to the job. These questions may include coding challenges, algorithm design, and problem-solving.
  • Whiteboard Interviews - Ah yes, the most intimidating way interviewers have candidates solve a coding problem on a whiteboard in front of the interviewer. Not only will you write code you’ll be asked to follow up with further questions to see how well they communicate and understand the coding process. Just know, the right preparation and mindset this can actually become a fun challenge and eventually …. a breeze.

  • Non-technical behavioral interview - if you made it this far, you’re likely one of the top few selections - but don’t take your foot off the gas. This is where your company research and your marketing efforts will pay off as in most cases the hiring manager will be interviewing you here.

  • Reverse Interview - You should ALWAYS be interviewing them as well. So be prepare to have a list of solid questions of your own. Have you ever been on a date where she didn’t ask you any questions? I’m betting that’s not relationship material for you. (you did write your questions in the

Types of Software Engineer Interviews

  • Technical Interview (Algorithms) - For the most part you don’t have to be an Algorithms Titan, but you should know the basics - have passing familiarity with the main ideas in Gayle McDowell’s Cracking the Coding Interview, memorize and be able to map the Big O’s of the commonly used algorithms. Most technical interview is at most 45 minutes of coding (interviewers have other people to interview and usually have software to build). Just have the basics solid. Click if you want a free interview prep worksheet.

  • System Design Interviews are meant to test the candidate's ability to design a scalable and maintainable system, taking into consideration the various constraints such as performance, reliability, and security. The interviewer will typically give the candidate a high-level description of the problem and ask them to design a solution that meets the given requirements. The candidate is expected to ask clarifying questions, propose a high-level design, and discuss trade-offs and decisions made. The interviewer may also ask the candidate to go into more detail about specific parts of the design, or to optimize certain parts of the design for specific scenarios

  • Take Home Projects are given to complete on their own time. This type of interview is meant to test a candidate's coding skills and problem-solving abilities in a more realistic setting without the social pressure of a whiteboard interview. Candidates will be given a set of requirements and expected to write code that meets those requirements. The project may also include a set of test cases that the candidate's code should pass. (applying TDD will make you a rock star)

  • Blind Interviews - While I haven’t experienced this, sometimes a company may want to reduce bias. So they are may not have interviewer know the identity of the person being interviewed. The goal is to focus the interview on the job qualifications.
virtual software engineering interview

After The Software Engineer Interview

  • Follow up on job interview - One of the EASIEST ways to tilt the odds in your favor is to follow up immediately after the interview. It shows them you care and actually want the job - if done properly it can help you showcase more of your skills or help cover-up

  • Software engineer salary negotiation - You ARE negotiating every offer are you? Americans in general are terrible at negotiating their salary out of fear. There are some fantastic strategies you can use to easily earn another $5000 more (most times, much more than that)

Acing the software engineer interview is a skill in itself, and requires preparation in the form of algorithm practice, learning technical concepts, building side projects, mock interviews, and teaching. Different types of interviews include phone screens, coding challenges, whiteboard interviews, non-technical behavioral interviews, and reverse interviews. After the interview, ALWAYS follow up and negotiate salary if an offer is made.