A necessary condition for hiring a new developer

Software developers often take part in the recruiting process. Determine whether a candidate is suitable for our team/company is a challenge to say the least. This is especially correct for us – software developers with no HR training and in most cases used to take decisions based on well constructed set of rules. However, this is not the case we face in the recruiting process. This process requires us to use general guidelines, our experience and intuition.
At our company the recruiting process begins with a professional interview where the candidate is asked to code something, design something and show understanding regarding the running environment.
Who passes the professional interview stage? 
We do not have golden rules. After each interview we conduct a short meeting to decide whether the candidate is suitable or not. We use similar questions throughout all of our interviews which enable us to better compare candidates. We interview in pairs and each interviewer can veto. We believe our general impression has the most weight on our decision.
How hard it is to make a decision?
Well as Joel Spolsky once wrote, there are three kind of candidates. The ones that you easily know you want, the ones you easily know you don’t want and the maybes. Most of the effort is invested in the latter.
Lately we started noticing that the ones we eventually hire from the maybes group have a certain characteristic. It is the ability of the candidate to evaluate his own answers. When asked a question, he knows which information is missing in order to answer it well. He will then state what he knows and what is missing. If he has been asked to solve a problem he will be able to state which aspects of the problem his solution works for, and ask for more info in order to provide a complete solution.
A candidate which does not have said characteristic behaves differently. They write code that doesn’t work and algorithms that does not do as expected. The problem with this kind of candidates is that we had to tell them that there solution does not work. They supply shallow, inaccurate, missing answers while they believe they answered the question fully.
This ability of the candidate to evaluate his own answers is extremely important for software developers. As developers, almost every task requires evaluating which information is missing in order to complete the task successfully. Developers that do not have the ability to evaluate missing information will start coding too early and write bad code.
Following this characteristic, we thought we might test this directly in the interview:
  • Ask the candidate directly what information he is missing to answer the question? This is good for knowledge questions.
  • Ask a very hard question. The candidate does not have a chance of answering. What we are really looking for if to see if he realizes that instead of providing false answers, he can show us his way of thinking.
  • Guesstimate questions.
  • Ask to design something with little information and hope he will ask you for what he is missing.
That’s it. We hope it will help you add another aspect for your interviews.
Reference: A necessary condition for hiring a new developper from our JCG partner Nadav Azaria & Roi Gamliel at the DeveloperLife blog.

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you two of our best selling eBooks for FREE!

JPA Mini Book

Learn how to leverage the power of JPA in order to create robust and flexible Java applications. With this Mini Book, you will get introduced to JPA and smoothly transition to more advanced concepts.

JVM Troubleshooting Guide

The Java virtual machine is really the foundation of any Java EE platform. Learn how to master it with this advanced guide!

Given email address is already subscribed, thank you!
Oops. Something went wrong. Please try again later.
Please provide a valid email address.
Thank you, your sign-up request was successful! Please check your e-mail inbox.
Please complete the CAPTCHA.
Please fill in the required fields.

Leave a Reply


six + 2 =



Java Code Geeks and all content copyright © 2010-2014, Exelixis Media Ltd | Terms of Use | Privacy Policy
All trademarks and registered trademarks appearing on Java Code Geeks are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries.
Java Code Geeks is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.
Do you want to know how to develop your skillset and become a ...
Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you two of our best selling eBooks for FREE!

Get ready to Rock!
You can download the complementary eBooks using the links below:
Close