What to ask when hiring a developer

Here at Creare we are always looking for talented PHP developers but sometimes it’s hard to determine who is right for a particular role purely from reading through a bunch of identical-looking CVs.

We’ve found a great way to filter these CVs is to provide the candidate with a simple 5 question test to accompany their application prior to any interview.

What skills do you have?

As any developer knows the skill set they list on their CV is what most recruitment agencies filter them by. So naturally most developer CVs are littered with technologies such as PHP, MySQL, MongoDB, JQuery, LAMP etc.

If a candidate is missing a crucial technology on their CV does this mean they should be discarded from the pile? Or worse, not submitted to your company in the first place? No it shouldn’t.

Simply put, the fact that most candidates list these skills is testament to how fast they CAN learn new technologies. Most developers learn new technologies faster than they can even update their CVs.

The only real way to tell some CVs apart is to look at their employment history or portfolio. Unfortunately most candidates do not publish their code on Github for us to review, which means that most portfolios tend to become front-end user journeys of a system or website. Employment history is also rather useless if you’re looking to employ a recent graduate.

5 Question Test

The aim of the 5 question test is to see if the developer has the overall knowledge, skills and expertise to meet your company requirements.

From our experience the best tests involve a consistent, realistic scenario. An example of something that the candidate will likely be involved in within the first couple of months of joining the team.

Each question should force the candidate to think about the bigger picture and hopefully revise their earlier answers.

We need to get the candidate thinking about:

  • Project Scoping / Requirements Gathering
  • Simple PHP techniques
  • Database Storage / Data handling
  • Knowledge of different technologies
  • The ‘flow’ of a project from an end-user perspective

Intended to be vague, the following questions give the candidate enough of a brief to attempt an answer but also the flexibility to answer in whatever format they choose.

Most candidates will answer in code – some may answer in sentences – either way shows a level of understanding that is useful to an employer.

The following is an example of our 5 question test. Mostly we submit the test to the candidates a few days prior to their first interview. This allows them to take as long as they like over their answers.

Each question has an aim, and of course an appropriate grading of response. How you grade each response is particular to your company however, the below is how we anticipated the candidates to answer for our PHP Systems Developer position.

Question 1

The customer services team need a list of 200 customers to contact with a customer survey. You have been given an array of 1000 customers. Customer services want 100 high paying & 100 low paying clients and a cross-section of businesses.

Explain how you would achieve this

Aim: For us, the first aim of this question is to test simple PHP skills, but more importantly, to see how the candidate decides on how to split the data in order to accurately adhere to the requirement.

Not-so-good response: A simple ordering of data and chopping top and tail without any explanation.

Good Response: A good response will be one that takes into account the data format that we have provided and expands on the requirement asking relevant questions where appropriate.

Great Response: A candidate who makes logical assumptions about the requirement in order to make the data as fair as possible. The candidate should then explain these clearly and effectively.

Question 2

Creare now want to create a ‘web app’ to survey the customers retrieved. The customer needs to go to the ‘web app’ and answer questions on how their service with Creare has been.

Please list how you would gather requirements for this project and what assumptions you would make

Aim: Requirements gathering is an essential skill for any developer. Asking the right questions is vital in scoping a project successfully.

Not-so-good response: Asking for a list of survey questions.

Good Response: Asking what information needs to be stored and where it needs to be stored. Do we need to take into account the customer data as well as the questions? Will this data feed anywhere else?

Great Response: Taking into account the platform and the delivery of the survey – what logical questions could be raised?

Question 3

For the ‘web app’ mentioned previously what would the database look like?

Aim: Another skills test but this time we test the developers knowledge of storing and handling data – taking into account their previous answers. Candidates can choose whether to draw an ERD or simple table structure.

Not-so-good response: Single flat table to store all data.

Good Response: Multiple tables to store different data as well as showing the relationships between tables.

Great Response: Showing knowledge of keys, field types and character lengths. Adhering to what was mentioned in previous answers.

Question 4

What technologies would be best suited for the ‘web app’ taking into account, scalability, longevity and speed?

Aim: A developer should always keep on top of new technologies within the industry. Whether this be frameworks, coding practices or simply the latest coding version. We added a few buzzwords in there such as “scalability” to get the candidate thinking about best-practices.

Not-so-good response: Only mentioning the core languages such as PHP, MySQL etc

Good Response: Using best-practices to ensure that data is stored in an efficient manner. Possibly using a back-end framework of some kind.

Great Response: Showing knowledge in front-end as well as back-end development. ‘Web Apps’ can be made on any framework – a list of these would be beneficial.

Question 5

What would the process flow for the ‘web app’ look like?

Aim: Here we give the client a start point (Customer Arrives on Survey Web App), and an end-point (Customer Closes Web App). The candidates job is to fill in the middle – looking closely at the user experience.

Not-so-good response: one or two steps that are purely descriptive of the process e.g. Customer Answers Question, Customer Completes Survey.

Good Response: Plenty of steps – including validation steps and repeat processes.

Great Response: Taking into account customer journey as well as data storage, email notifications and any other system processes that may take place.

Make it relevant to your business

The above is obviously just an example for a PHP Systems Developer position but the same general rules could apply for any developer position.

Pick a scenario – take it through to completion and leave it vague enough to allow the candidate to express their solution in a format they feel most comfortable with.

As the employer you can then draw conclusions on any of their ‘working-out’ so to speak. As long as the scenario matches your day-to-day workflow you should get a good feel of how the candidate may handle themselves when you put them to work.

The employer can now combine the simple tests with the appropriate CVs to have a clearer indication of whether the candidate is a ‘good-fit’ for the role.

For more information on jobs available at Creare check out our job board.