- Software jobs require the interviewer to ask highly technical questions to confirm that the recruit has the hard skills to excel in the workplace.
- Interviewers will also want to check on how well the person works with a team. The candidate should be able to communicate with team members effectively.
- Time management should be another topic broached during a software engineer interview. The candidate should provide a weekly coding average.
Software engineering is an extremely technical job function that has its own language, which can be a challenge to understand if you're not in engineering yourself. HR professionals and hiring managers rejoice. We've assembled this list of 15 interview questions to ask a software engineer.
See the questions below, and keep a copy of our infographic handy for the next time you need an engineer.
1. Perfection or excellence?
Engineers need to understand that perfection is unattainable. An engineer who focuses on perfection might always focus on edge cases rather than shipping features and providing value to stakeholders.
2. How do you stay up to date and keep your skills sharp?
A candidate needs to demonstrate they stay on top of the changes in the industry, but that they are not distracted by every shiny new object out there. Code is a craft that needs to be nurtured.
3. What personal projects do you have going on outside of work?
Software engineers are tinkerers, hackers, and problem solvers. If they don't have a side project going on outside of work, they likely don't have passion about what they do.
4. What type of challenges excite you professionally?
If spending time fixing bugs excites them, they're likely not fit for a full-stack role working on user interfaces.
5. Can you solve this coding problem?
Make sure every candidate writes code as part of the interview process. Engineers should be able to whiteboard a simple problem. If they don't solve it as fast as they can write, look elsewhere.
6. What does being a defensive programmer mean to you?
Great engineers always think about worst-case scenarios. What happens when the inputs that are always going to be what you expect aren't? Does the whole thing blow up?
7. How do you test your code?
When someone points out a bug, engineers shouldn't say "Weird. It worked on my machine." A solid engineer will talk about unit tests, functional test automation and other methodologies. Make sure they have a process.
8. Do you prefer working as an individual, or as part of a team?
Understand the engineer's working style and preferences so it lines up with the way your corporation has structured its team.
9. What are you looking for in your next team or company, what is important to you culturally?
Building a strong team requires finding individuals who interact well with others and is a cultural fit for your organization. Make sure these line up.
10. Do you prefer to work for a company that is in build mode or maintenance mode?
Build can be exciting while maintenance is often routine. Make sure the candidate's interest matches the mode the company is in.
11. What would you do if a colleague asked you to review code and you found it was full of errors?
This question allows you to look into how the interviewee potentially works with others. Their response is very telling as to whether the person is a team player. The question can lead into what the candidate feels is the most important thing to review when checking someone's coding.
12. What kind of company do you work best in?
This interview question is open-ended enough to give the recruit a chance to describe his or her ideal work environment. You can figure out what type of environment the person thrives in and whether he or she fits in with company culture. Does the candidate prefer working at startups? Or established companies?
13. How do you prioritize projects?
For this question, you're evaluating how well the person manages his or her time. Software engineers often have to work under pressure with tight deadlines. Task management is an important quality for exceeding in the role.
14. What is your biggest past project achievement?
This interview shines a light on what the recruit is most proud of over the course of his or her career. Knowing what the person considers his or her best work allows you to gauge if he or she has the skills to meet the job requirements. As an alternative, you could ask what the person deems his or her biggest failure. No one likes to admit fallacy, but this can show how a person turned a bad situation around.
15. How much coding can you do on a daily basis?
This question helps you quantify exactly how much work you can expect the person to complete on the job. For instance, if the candidate plans to work a 40-hour week, then you may expect him or her to say he or she spends at least 25 hours a week coding with the rest of the time spent on administrative tasks.