So you've decided to hire a freelancer
For one reason or another (maybe you've gone through my process) you've decided to hire a freelancer. You've posted on job boards, scoured Upwork, and you finally have a list of candidates you'd like to speak to. Problem is, you're not a programmer, so how on Earth can you evaluate one?
Your gut matters
First and foremost, your instincts matter a great deal. Don't ignore or downplay them! Keep this in mind at all times during the interview process: do you want to work with this person? If the answer is no, there's probably a reason, even if you can't put your finger on it.
Here's a list of questions I like to ask. There are no right or wrong answers to these questions; when listening to the candidate's response what you're looking for is alignment with your own values.
1. Every developer is on a scale between "ship it now" and "get it perfect first". Where are you on that scale and why?
2. How do you prefer to receive requirements? Do you like a detailed specification or does a phone call and white board drawing suffice?
3. Every team has a different methodology, eg. agile vs. waterfall. What do you prefer?
4. Tell me about a time that you disagreed with a task or approach you were asked to implement. What happened?
5. If you didn't have to work full-time what projects would you build? Are there any new technologies you're excited about?
6. If I asked your previous supervisors, what would they tell me you're good at professionally?
7. If I asked your previous supervisors, what would they tell me you're bad at professionally?
Credit for the last two questions goes to the book Who. Again, what you're looking for are genuine, well thought out answers that match as closely as possible to your own values. If candidates give you terse answers that sound like they're just saying what they think you want to hear then that's a big red flag.
Give them a trial project
Once you have a developer who shares your values, give them a paid 2-3 hour trial project. There are two purposes for this project: to ensure they can deliver a working product and to see how they collaborate.
The project itself should use the same technology you're hiring them for. The requirements you give them should be purposefully vague and poorly defined. Encourage them to ask as many questions as they wish and answer promptly.
If you need help coming up with a project to give your candidates please feel free to reach out to me at firstname.lastname@example.org and I'll be happy to help.
Make the hire
Now that you have a developer who shares your values, collaborates the way you like, and is technically capable, it's time to bring them on board. Your job isn't done, though! You still have to keep track of your developer. Babysit them closely at the beginning and be prepared to end the relationship quickly if it isn't working out. Let them work more independently as you build trust with each other, and hopefully you'll have a great long-term working relationship.
Need a hand?
Want to go more in-depth?
This article is pretty high-level. If you want more details and tactics on how to deal with developers, sign up to get 50% off my upcoming book, Dealing with Developers.