
Illustrative photo.
You need to hire a developer, but you are not one yourself, or your technical team is too small to run a proper interview loop. The resume looks good and the conversation went well, but you still have the same question every non-technical hiring manager has: how do I actually know this person can do the work? That is what a technical test is for, and most businesses do them badly.
A good technical test is fair, respectful of the candidate's time, and genuinely predictive of job performance. A bad one filters out the best candidates and tells you nothing. This guide covers how to design a test that works, whether you are hiring your first developer in Windsor or building out a team.
Why interviews alone are not enough
Conversations reveal communication skills, attitude, and experience. They do not reliably reveal whether someone can write clean, working code under realistic conditions. Plenty of candidates interview brilliantly and struggle with actual implementation, and plenty of excellent builders are mediocre interviewees.
The test is not about catching people out. It is about seeing a sample of the actual work. You would not hire a designer without looking at their portfolio, and you should not hire a developer without seeing them solve a problem.
The three types of technical tests
Take-home projects are the most popular format for small businesses. You give the candidate a realistic task and a few days to complete it. The advantage is that it mirrors real work: access to documentation, time to think, no one watching. The disadvantage is that you cannot verify who did the work, and strong candidates may decline if the task looks like free labour.
Live coding exercises happen during an interview, usually with screen sharing. They show how someone thinks under pressure and how they handle being stuck. The disadvantage is that they measure performance anxiety as much as skill, and the problems are often artificial puzzles with little connection to real work.
Paid trial projects are the gold standard and the least used. You pay the candidate for a small, real piece of work: a bug fix, a small feature, a code review of your actual codebase. Because it is paid and real, candidates take it seriously, and you see exactly how they work with your systems. If you are hiring for a role that matters, this is the format to prefer.
Designing a test that measures the right things
The most common mistake is testing the wrong skills. Algorithm puzzles from interview-prep sites test whether someone studied algorithm puzzles. Unless you are hiring for that specific skill, test the work the person will actually do.
Base the test on a realistic task from your world. If you are hiring someone to build business web applications, the test should involve building a small piece of a business web application: a form with validation, a data display with filtering, an integration with a simple API. Candidates immediately understand what you value, and their approach tells you how they think about real problems.
Keep it bounded. A good take-home task takes two to four hours for a competent developer. Anything longer is disrespectful and will cost you good candidates, who have other options and other tests to complete. State the expected time upfront and mean it.
Leave room for judgment. The best tests are slightly open-ended: there is no single right answer, and the candidate has to make reasonable choices. How they structure the solution, what trade-offs they make, and what they document tells you far more than whether the code runs.
How to evaluate the results fairly
Decide your criteria before you see any submissions. The criteria that matter for most business software roles are: does it work, is the code readable and organised, are edge cases handled, and is there evidence of testing? Write these down before the first test goes out, so you evaluate consistently.
Involve someone technical in the review, even if you have to borrow them. If you genuinely have no technical person available, a local development shop can review test submissions for a modest fee, which is cheap insurance on a hiring decision worth tens of thousands. Trying to evaluate code you cannot read is guessing, and guessing on hires is expensive.
Look at the process, not just the output. Ask candidates to walk through their solution: why they structured it this way, what they would do with more time, what they found difficult. This conversation is often more revealing than the code itself. A candidate who can explain their trade-offs clearly is usually a strong hire.
Watch for red flags in submissions: code that is clearly copied without understanding, no error handling at all, solutions that ignore the stated requirements, and take-home projects submitted suspiciously fast with suspiciously polished results. None of these are disqualifying alone, but they warrant a conversation.
Being fair to candidates
The developer job market rewards the companies that treat candidates well, and word travels fast in a community the size of Windsor's tech scene. A few principles go a long way.
Never use test work in production. If the test resembles real work you need done, pay for it. Using interviews as a source of free labour is exploitative, and developers talk to each other.
Respect time limits strictly. If you said three hours, do not design a task that takes eight. Test your own task with a developer friend first if you can.
Give feedback. A short note on why a candidate did not pass costs you two minutes and builds your reputation. Companies that ghost candidates after tests develop a reputation that makes future hiring harder.
Move quickly. Good developers do not stay on the market long. If your process takes six weeks, you will lose candidates to companies that decide in two. Have your evaluation criteria ready before testing starts so decisions do not stall.
Frequently asked questions
Should the test be take-home or live?
For most small-business hiring, a short take-home task followed by a walkthrough conversation is the best combination. It respects the candidate's schedule, mirrors real work, and the walkthrough lets you verify understanding. Reserve live coding for roles where real-time problem-solving under pressure is genuinely part of the job.
How do I test for technologies I do not understand?
Test for fundamentals and learning ability rather than specific syntax. A strong developer can learn your stack; a weak one cannot hide behind familiar tools forever. Alternatively, bring in an outside technical reviewer for the evaluation stage. Many development shops, including local ones, will do this as a small consulting engagement.
Is it okay to ask candidates to do unpaid test work?
Short, bounded tasks of a few hours are widely accepted in the industry. Anything longer, or anything that looks like production work, should be paid. When in doubt, pay. A few hundred dollars for a trial task is trivial compared to the cost of a bad hire, which includes salary, onboarding time, and the months of lost progress.
What if a great candidate refuses to do the test?
Listen to why. Senior developers with strong portfolios and verifiable references sometimes decline generic tests, and that can be reasonable. Offer an alternative: a paid trial, a deep-dive conversation about their past work, or a code review exercise using their own previous project. Rigidity loses good people; the goal is evidence of skill, and there is more than one way to get it.
Hiring developers well is a competitive advantage, especially in a market like Windsor where the talent pool is tight and reputation matters. A fair, realistic technical test does not just filter candidates; it signals to the best ones that you are serious about quality. Design the test around real work, evaluate consistently, treat candidates with respect, and decide quickly. For broader guidance on the hiring decision itself, see our guide to hiring a software developer in Windsor, Ontario, which covers the freelancer, agency, and in-house decision. If you would rather skip the hiring risk entirely and work with an established team, Get a free quote.