You are here

How to dig past the buzzwords to recruit the best software engineers

public://pictures/Robert-Scheier-Principal-Bob-Scheier-Associates.png
Robert L. Scheier, Principal, Bob Scheier Associates

In today's seller's market, it's hard enough to get a qualified software engineer with popular skills such as C#, Java, C++, or JavaScript in the door. Once you do, how do you separate the superstars from those with just carefully crafted resumes?

Based on interviews with development managers and recruitment experts, these five questions you should be asking job candidates are aimed at evaluating not only a prospect's technical chops also but his or her ability to communicate and work with real, live people.

[ Is it time to rethink your release management strategy? Learn why Adaptive Release Governance is essential to DevOps success (Gartner). ]

1. How deep are your technical skills?

James Brown, chief architect at directory-as-a-service vendor JumpCloud, suggests asking a prospect to "write me a program that reverses a string and then walk me through it." This seemingly simple test can reveal the difference between cursory knowledge and mastery of a language, he says.

Ask candidates which technology products "they are passionate about or have negative opinions of," says John Reed, senior executive director at technology staffing firm Robert Half Technology. Regardless of what they like and why, the answers can give you "a sense into how they think about technology," he says.

2. Is development your job or your passion?

Tonya Shtarkman, lead technical recruiter at San Francisco-based Riviera Partners, asks candidates "...about a personal project you built for yourself, not for work or school." If they can furnish an example, it's a good sign that they're passionate about what they do and willing to invest their own time in personal growth and education. "It's also a good test of their communication skills," she says. "This is their passion project and they should be able to explain it."

Another test of their dedication is how much they've contributed to open source projects. Such experience also makes it more likely that they realize "coding something is less than half the work of actually getting it ready for production," she says. It also requires follow-on work, such as documentation and maintenance. These are disciplines you'll want developers to bring to their work for you.

Reed suggests asking a candidate which blogs, Twitter accounts, or websites they follow for technical information. Again, the specific answers aren't as important as whether they can talk convincingly about those sources and how they help them stay up to date.

[ Get Report: The Top 20 Continuous Application Performance Management Companies ]

3. Can you talk to non-geeks?

Ask the candidate to "pretend I'm your grandmother—can you explain what you are working on in your current role in a way that I can understand it?" suggests Shtarkman. "If an engineer can't get out far enough from the technical details to explain it to a recruiter, they may run into issues communicating with clients or non-technical colleagues."

Have the prospect interview with technical staff and the non-technical staff to see if they can explain jargon such as a "high-performance, scalable platform" in terms business people can understand, suggests Luca Bonmassar, cofounder and chief product and technology officer of Gild, a SaaS platform for finding, evaluating, and recruiting technical talent.

To assess how their work helps meet business and not just technology requirements (and their ability to describe those benefits), Reed suggests asking software engineers "about a recent project or process you made better—something you did that improved the business, made something faster, made something more effective, [or] saved money."

4. How do you solve problems?

"Ask them to divide a small task (a small image sharing server) into two pieces (the front end and back end/API)," says Shtarkman. "Tell them to imagine that they'll only get to talk with the team member once at the beginning and then five minutes at the end. See how good of a job they do at creating and communicating a spec. Then, at the end if things don't work (and they probably won't), do they work to fix problems or assign blame?"

"Recall a moment when you had a problem,'" said Andrey Akselrod, cofounder and CTO of Smartling, an online platform for managing translation projects. "How did you resolve it? Who was involved?" The answers, he says, will tell you if the candidate is trying to make excuses and blame other people, or if he or she will take responsibility for what happened.

Brown suggests asking about a candidate's greatest challenge working with another team member: "What happened? Could you have done a better job in working with the person?"

For mid-level to senior candidates, Brown also recommends asking how a candidate handled a serious mistake made by a junior team member and whether, in retrospect, they handled it right. Again, you're looking for insight into their response to the specific situation and whether they learned from it.

5. How do you handle conflict?

In a big development project, it's not a question of whether something will go wrong—it's a question of when. A software engineer's ability to handle criticism will go a long way toward creating the type of culture that will attract and keep other software engineers.

To test their reactions, Bonmassar recommends asking an engineer why, for example, they built an application a certain way or didn't create a certain test. "If he reacts by explaining himself or says, `Yes, I hadn't considered that' [without] being very defensive, that's a soft skill you want to see," he says.

"[Ask a candidate to] talk about some of the things that haven't worked out great in your career," suggests Reed. "When things didn't go your way at work, like when a project didn't work, or you were passed over for a promotion, when you had a very difficult client that made it very difficult to do their job. How did they work through the problem?" Here, he says, "You're looking for their honesty and candor," as well as what they learned.

The greater a role software plays in your business, the more important it is to hire people who are passionate about it, understand the relationship between code and the bottom line, and can play well with others. Make sure your interview questions hit the soft skills as well as the technical ones.

[ Get Report: Buyer’s Guide to Software Test Automation Tools ]