Should you give a developer with 20+ years experience a coding test? Absolutely!

Tom Winter
Devskiller
Published in
8 min readJul 19, 2018

Let me set the scene for you. You’re hiring a senior or lead developer. And guess what? You got somebody who looks great on paper. Their CV stretches back to the 90s. Let me put it this way. When I was running around watching Power Rangers and collecting Pogs, this person was starting out their career in software development in the middle of the first dot-com boom along with these guys.

Since then, they have moved from blue chip company to blue chip company, including banks, healthcare providers, and even a startup that went public in a big way. And this isn’t because they are a dilettante either. They have a solid track record of producing and delivering projects that are impactful and work. Included in the application are glowing reviews from this person’s colleagues and superiors.

And in their free time, they don’t stop. I mean this person’s contributions to Stack Overflow start to make them look a bit like Jon Skeet. On GitHub, their repositories seem to get forked all the time. And what do they do when they’re not coding? Rescuing retired donkeys. Donkeys!

I mean how did you even get this developer to apply? This looks like the exact kind of person who is going to propel your team to new heights. And considering how rare these people are, you’ve got to decide whether to give this person an offer before they get snapped up by someone else. So should you give this fine specimen of software development a coding test? Should you risk letting them get away just to satisfy your concerns about whether they can actually code?

Absolutely!

You should always test the coding skills of anyone who is going to have to contribute to or oversee your code base.

What a CV’s worth of accomplishments don’t actually tell you is weather the candidate’s skill can fit the business case you need them to fit. Let me explain.

But before I do let me make one point. A developer who is this experienced is rare and usually knows how valuable they are. First of all, provide them with an extra special candidate experience. It is important to treat them with the utmost respect or they will quickly move on to another opportunity. Make sure that they will understand the relevance of any testing you do. Also, experience its self doesn’t tell you everything but if they regularly speak at conferences, you can probably assume that they are experts in the subjects they present on.

Any developer, even one with 20 years experience does their best work in an environment that fits them and their skills. Just because they have been working on projects for 20 years, doesn’t mean that they use the same technologies that your company does. You don’t know how up-to-date they are with the most recent practices and technologies behind software development. Beyond that, you don’t know how familiar they are with the prevailing libraries and frameworks that are used in the environment that you use. What do I mean by this?

Take Java, JavaScript, Python, and you find that the libraries that are common now are often not the ones that were common 5 or 10 years ago. Has this person had all their successes using these old libraries? Are they able to adapt to the new environment or do they persist in using old and inefficient technologies.

Did they accomplish all this on their own?

Also you don’t know to what degree they were successful on their own or and what to what degree they are held up by the rest of their team. People who are well-liked can last in an organization for a very long time but still end up being net negative contributors to their team’s output. Open source contributions just show curiosity but you don’t know how efficiently these projects have been executed Why do I keep bringing up all these issues?

Software developers are incredibly expensive

Somebody with 20-plus years of experience is going to be more expensive than most. So right off the bat, even if they don’t do anything negative they’re costing you a lot of money. Not only that but software developers also have their hands on the family jewels. In other words, they are directly responsible in most cases for your company’s product. Changes they make can either produce a ton of value or can equally sink your product.

We actually did a study of this and found that a bad software developer can cost nearly half a million dollars in their short tenure. So at the end of the day, it’s not just reasonable, it’s expected that you are going to test the skills of this developer. So how do you do it?

How should you test your developer’s skills?

First of all, avoid algorithm tests like the plague. Algorithms are great for telling you if your candidate aced their algorithms class recently. The problem? Your candidate hasn’t taken an algorithms class in 20+ years. And even then, algorithms don’t actually tell you whether they can do the job. It will merely say where they have an aptitude for computer science.

You want to know a couple things about this person.

  • Can they code?
  • Do they use business logic?

First one of these is pretty obvious. You want to know a lot about the candidate ability to produce code.

  • Can they use the language correctly?
  • Are they up to date with paradigm’s like test driven development?
  • Can they create a solution that works?

Business logic is a bit different. It is important because developers don’t code in a laboratory. They aren’t trying to create the perfect line of code, you’re trying to use code to solve a problem in an efficient way. What you want to learn about your candidate is:

  • Does this solution solve the problem?
  • Was it delivered in a timely fashion?
  • What kinds of resources like libraries and frameworks can the candidate draw on to make the process more efficient?
  • How clean is the code and how easy is it for other people to understand and modify it?
  • What kinds of trade-offs does the candidate make between development objectives and business objectives?

Now how can you figure out whether your super experience developer can fit this criteria? Probably the best ways to give them a task and see how well they perform. But will a 20-year veteran take a couple weeks off to do a hiring task?

Even if you pay them, there’s literally no incentive for this person to jump through hoops for you like this. Somebody with 20 years of experience, even a bad developer with 20 years of experience will probably get snatched up by some other company in the interim. In fact, one thing that’s a huge drag for technical recruiting is the amount of time the hiring process takes. Believe me, if you try to ask them to do this for free, that is the quickest way to reduce your pipeline to only the worst kind of developers who have free time because no one wants to hire them.

A work sample tells you a lot with a small time commitment

Instead of a full project, give your candidate a task that they would be expected to do once they start working for you. It should be a task that shouldn’t take too long to complete, let’s say 2 hours max. Then check how they came up with the solution. First of all, you’ll see the quality of the code they produce. You can also see the kinds of decisions and trade-offs they made to fix the solution. It will show how familiar they are with the environment you use and what libraries and frameworks they can easily drawn to produce good results within the deadline.

Ways to do a work sample

Now you can invite them to do their work sample as a part of a code pairing interview. This can give you a ton of information but often times this is in practical. A work around is to conduct it remotely.

The thing to remember though is that candidates come from all over the country or the world. At very least are likely to already be working. Even if they’re available to come in ,you might have 20 candidates. If you consider that each of these interviews takes 2 hours, that’s an entire week worth of man hours that a technical interviewer will need to conduct interviews. That is time they could use to work on your product.

The perfect solution is Devskiller. It’s an automatic platform that you can use to give your candidate a work sample test. Candidates can take tests from anywhere they like at the time of their choosing. The platform then automatically evaluate their results so that you don’t need to use a lot of your technical interviewers time. A non technical recruiter can even use it. You can use this as a quick and screen to remove candidates who simply can’t code from your recruiting pipeline. And the interesting thing is they will love you for it.

A work sample test is preferred by both sides

A good work sample will give your candidates a taste of the kind of work that they’ll be doing for you. Not only that, it shows that you are serious about the technical abilities of your team. Not only will they be doing serious work for people who understand technical realities, it shows that the other members of the team will also be technically sound. This is super important as the candidate won’t have to spend half their time lifting up and underperforming team mate.

You should always test developer candidates

I know it can be tempting to rely on even the most experienced candidate’s CV but you need to stay strong and still test their skills. You can start by going over to Devskiller’s coding test catalog to find tests that fit your environment. Is a quick and easy way to get the best candidates for the job.

--

--

Tom Winter
Devskiller

Co-founder @Devskiller and Tech Recruitment Adviser