Two women and a man sitting at a table, working on a laptop.
How do you find duplicate characters in a string?

Asking data structure-based questions like this can quickly tell you whether a candidate has the basic hard skills needed to do the job well. Specify a programming language that the role relies heavily on, such as Java, then ask the candidate to briefly explain how they would go about finding repeated characters on a string in that language. To make this extra challenging, you could also give the candidate a problem and ask them to write a solution in real time.

 

What programming languages do you work in? Describe your experiences using these languages—and which do you prefer?

Great​ developers know that programming languages are just tools for them to wield—it’s the logic behind them that really matters. But it’s helpful to know which languages they’re fluent in, which they’re only familiar with, and what sort of projects they prefer to do in each. ​Whether they’re old school with C++, PHP, and Java, or have mastered newer languages like Swift and React, this question lets candidates share their know-how—and their stories. Expect j​unior programmers to focus more on their experience, while senior level engineers may go into more detail about why they love a particular framework. Regardless, a strong answer will give you a good indication that the candidate can hit the ground running if hired.

What would you consider to be an indefensible programming mistake?

Mistakes are a natural part of the workflow for programmers, but it’s the quality (and sometimes quantity) of mistakes that matter. Look for answers that show the interviewee recognizes the difference between a reasonable error, like those stemming from a lack of familiarity, and the kind that comes from sloppiness. For example, they may mention that it’s inexcusable to submit code without first testing it with a reasonable number of valid and invalid inputs.

How do you keep up with current trends and advances in software development?

The rapid evolution of technology means that part of a programmer’s job is to keep their skills current. Often, that means pursuing continuing education classes, learning new programming languages, adding certifications, and attending conferences and networking events. If the candidate describes taking steps like these, they are likely committed to keeping up with industry standards.

Tell me about a time when you were asked to lead a project. What did you do first? What did you learn?

In order to lead a software project through to completion, a programmer needs to think both granularly and big-picture. A great answer will demonstrate the candidate’s ability to visualize the distinct stages of a project and prioritize effectively. This question can also give you an insight into their experience level and ambition. Even if they haven’t led many projects before, they may be eager to do so in the future and have clear ideas about which steps they would take.

How do you approach high-pressure situations where everything seems to be going wrong? Give an example from your experience.

Programming isn’t always smooth sailing. You need to know that your candidate can keep a cool head and persevere, even when the sky seems to be falling or the timeline feels impossibly tight. The interviewee may also demonstrate that they use problem-solving skills and teamwork in these situations, since both can be instrumental in navigating a crisis.

Tell me about a time when you worked as part of a team to complete a challenging project. What role did you play, and how did the team work together to get the job done? What would have changed about the experience?

Top candidates are comfortable working independently, but they’re also team players when the role requires it. Listen carefully to the role they played—were they more of a facilitator or a leader? Did they drive the whole team to do its best work or focus more on their own responsibilities? You should also listen closely to how they describe the rest of the team. If they seem dismissive of others’ accomplishments, for example, they may not be a good fit for a team-focused role.

What’s your ideal work environment?

Programming requires deep focus, and many candidates have very particular productivity preferences that help them stay in the zone. These preferences may make it harder for them to work effectively in your specific work environment, so this question can help you screen for culture fit. For example, if they say they need total silence and privacy, an open plan office may not be compatible with their work style.

Do you find it easy to explain elements of your work to non-technical employees when the role requires it? Give me an example of a time where you had to explain something technical to a non-programmer.

In some roles, programmers may primarily interact with other programmers and technically minded staff. But if they regularly need to get buy-in from other leaders in the business or work with another team to develop a product, it’s important to ask a question like this that screens for communication skills. An ideal answer will show that they’re comfortable breaking down complex concepts to help a layman understand—and that they’re a patient and thoughtful teacher.

What inspired you to pursue programming professionally, and what do you hope to achieve in your career?

This question tests a candidate’s ambition. If they’re only in it for the high salaries common in tech, they might not have the passion and intrinsic motivation you’re looking for. Listen for answers that display a genuine interest in logic, math, and coding, as well as inspiring goals like changing the world through their programming prowess.