What is the interview process for software engineers?
Are you a recently graduated software engineer looking for your first job? Or has it been a while since you applied for a job as a software engineer? Either way, interview processes might seem intimidating. Let’s see what the interview process is for us, software engineers.
A traditional interview process for software engineers starts with a phone or video call with a hiring manager, including between 3 and 5 interviews with team members, managers, and executives. Also, the interview process often involves whiteboard and coding exercises to test algorithms, data structures, and programming concepts, in general.
How long are software engineering interview processes?
An interview process ranges from a few days to a couple of months. It varies a lot from company to company.
Big companies have established processes that include HR, technical interviews, and contact with a C-level executive. Even though the entire process could take months, they could interview candidates in only one day, either over video or in person.
Small and medium-sized companies tend to have a shorter process that takes a couple of days, including only a technical interview with a software architect or CTO and with the future team lead.
Software agencies tend to have longer processes depending on the availability of clients and projects. A candidate who went through the interview process might have to wait to get assigned to a client or project.
What gets asked in a technical interview?
All interview processes have in common one or two technical interviews in the form of a discussion about a past project, a whiteboard exercise, or homework. Let’s take a close look at every type of technical interview.
1. Discussion about past projects
During a technical interview, some interviewers start a casual conversation about one of your past projects. Choose one of your projects and be ready to describe its purpose and market segment. Also, don’t forget to share your role, responsibilities, and challenges.
When discussing one of your projects, use the STAR method. Instead of answering with a long story or with unrelated facts, be concise and describe:
- the situation you were in,
- the task you were asked to do,
- the action you took, and,
- the results of that action.
For example, use the STAR method when you’re asked about one of the challenges you faced in your project.
2. Questions about programming concepts
Other interviewers test your knowledge of the languages and tools you will be using in your new position by asking many questions.
During a technical interview, the type of questions depends on the role and the tech stack you’re applying for. They vary from nuances of the programming language to design patterns to Object-Oriented principles.
For example, for a backend position, you will find questions like:
- What’s the difference between a clustered index and a non-clustered index?
- What’s the difference between an abstract class and an interface?
- Describe one of the SOLID principles
- Describe one of the Design Patterns
And, for a frontend position, you will find these:
- What’s the difference between observables and promises?
- Describe how to pass data between two components
3. Coding exercise
Some interviewers want to see your programming skills in action. They will ask you to solve a coding exercise involving algorithms and data structures on a whiteboard. These days, online tools and text editors have replaced physical whiteboards. But, the idea is still the same.
When doing coding exercises, don’t rush to code or solve them in silence. They expect you to ask questions. Clarify your assumptions before starting and talk through your solution. These are only two steps of the REACTO method to answer technical questions.
In coding exercises, interviewers are often more interested in how you approach a problem instead of coding in a particular language. Ask your interviewer if you can write pseudocode. Otherwise, choose a language you’re comfortable with.
For example, you could be asked to find two numbers in an array that add up to a given number or check if an expression has balanced parenthesis.
Instead of a live coding exercise, you could have a medium-size exercise as homework and between 4 hours to 2 days to solve it.
When working on homework exercises, write clean code and follow best practices. Try to use the same tech stack advertised in the job description. Otherwise, make it easy to review and test your solution: use Docker images or publish it online.
For example, for backend engineers, they can ask you to write a RESTful API to receive, process, and report user data. And, for frontend engineers, you could be asked to create a dashboard to retrieve, filter and sort data from an existing RESTful API and display more detailed information about an entry on a second screen.
Often after sending your homework, you could have a follow-up interview to explain design choices and walk through your solution.
That’s the interview process for software engineers and the type of technical interview questions you could get. Remember, it could range from a few days to a few months. Feel free to ask the recruiter or hiring manager about the next steps in every stage of the interview process. You might only find one or two technical interviews.