Interviewing software engineers can be tricky. You need to look for candidates with many skills. The following tips can help you with how to prepare for a software engineering interview.
Most recruiters have a list of stock questions to ask during interviews. Many will not apply when interviewing software engineers because of the technical nature of the interview. Consequently, you need to be ready with your questions and tests. Your goal is to check for coding skills, personality fit, and problem-solving skills.
You might think that your experience in interviewing developers will be enough to get you through. However, software engineers are not just programmers. Their main task is to apply engineering principles to software development to ensure application efficiency, quality, and performance. These engineering principles include:
- Single Responsibility Principle – each module, class, service, or function has one clearly defined responsibility
- Open Closed Principle – functions, classes, or modules are open for extension but closed for modification
- Liskov Substitution Principle – objects of a subclass behave in the same way as the objects of the superclass
- Interface Segregation Principle – never force a client to depend on methods it does not use
- Dependency Inversion Principle – interface use instead of concrete implementations wherever possible
Software engineers need coding skills because they must check the work of the developers against these principles. However, they don’t do any coding themselves.
Given that software engineers have a big-picture role in software development, keep the following tips in mind. They can help you when interviewing software engineers.
1. Filter candidates by their experience
Technical interviews take time to conduct. In most cases, it involves several coding tests and whiteboard challenges. Before putting yourself and the candidates through that, check their resumes. You want to make sure you only ask qualified candidates for the interview.
The software engineer seat is not an entry-level position. With developer positions, coding boot camp can give them a fighting chance. However, software engineering requires experience. In most cases, you want someone with at least ten years on the job.
Applicants with no experience in software development or similar roles are unlikely to have the requisite skills for the position. You might give computer engineering graduates a pass in the experience department. Instead, look for internships or other on-the-job training in project management in their resumes.
In any case, be sure to contact their employers or trainers before scheduling an interview. Their feedback will help you decide if the candidates are worth a second look.
2. Choose the right questions for interviewing software engineers
Typically, you would do an initial interview before the technical interview. Below are examples of questions for the initial interview.
- What programming languages do you know?
- Describe your last project and how you contributed to its success.
- What do you understand about “Agile” software development?
- How would you explain problems with the development process to people with no technical knowledge or background?
- What do you think is the essential part of software development?
- How do you know if a project is a success?
These are easy questions for an experienced programmer. That’s okay because your purpose is not to grill them on their technical ability anyway. In most cases, that first interview is to see how the applicant communicates. Software engineers deal with all stakeholders up and down the hierarchy. Therefore, their audience should be able to understand what they are trying to say.
The initial interview should not take more than 30 minutes. You should be able to see quite easily if the candidate has the right personality for the job. For example, a little nervousness is natural during most interviews, but not in this case. A software engineer should be confident and assured in any and all situations.
3. Take note of “trivial” details
Problem-solving abilities are a trait you need in software engineers. As a result, you might feel tempted to overlook details when interviewing software engineers. After all, qualified candidates are not easy to find.
However, that would be a mistake. Remember that a software engineer oversees critical aspects of software development. You want to make sure the candidates you consider tick all the boxes of the essential traits of software engineers.
Diligence
A software engineer ensures the smooth and efficient performance of programs where small mistakes matter. The resume should reflect a keen attention to details you want in a software engineer. Check the resume for form, structure, and accuracy. The resume should be easy to scan, have a logical flow, and be free of errors.
Punctuality
Effective time management is a critical trait of a software engineer. Think twice about a candidate that shows up late for an interview or reschedules at the last minute. Behavior like this shows a lack of organization as well as consideration for the time of others.
Professionalism
Software engineers deal with executives, clients, and development teams. As such, they should command respect and exude authority. A candidate that attends an interview with an unkempt appearance is not likely to inspire confidence in anyone.
4. Get an expert to help when interviewing software engineers
If you are not a developer or software engineer, you want to get help from an expert. As adept as you might be at interviews, it will not help you with software engineers. In most other cases, you already know the right answer to your questions. That is not the case when interviewing software engineers.
Likely, you will not know the correct answer because you are presenting complex problems. Development problems often have more than one solution. While all of them might be right, some are better than others. How will you know the difference?
Get your most senior developer or development manager to help you with the technical assessments. The first will be the preliminary coding test. Candidates that pass will then go on to more complicated tasks, including whiteboarding challenges.
Aside from getting an expert to design the tests, you also need someone to sit in on the interview. You might be doing all the talking, but someone who knows the development process will be doing the actual evaluation. It would really help if you had a software engineer to help you with this part of the interview process.
Make interviewing software engineers easy
Finding qualified people to take on the software engineer role is not easy. Even when you do find them, you still need to go through hoops when interviewing software engineers. However, if giving up is not an option, use these tips to help you get through it.
You do have another choice, though. Do away with hiring software engineers in-house altogether by outsourcing it. Full Scale is a US-based company with operations in the Philippines. We specialize in building IT teams quickly and affordably. Full Scale can take away the stress of interviewing software engineers from you. All you need to do is ask.
Are you ready? Let’s get started!