Whether you are a seed-stage startup, an entrepreneur, or an established tech company, more businesses are finding working with freelance developers to be an ideal way to source high-level talent while saving time and slashing budgets. If you hire properly, that is.
There are plenty of talented web developers out there — but a stellar on-site software engineer does not necessarily equate with a good freelance developer. This difference needs to be accounted for in your interview process.
When hiring for on-site positions, engineering managers tend to focus on recruiting a developer with the right technical abilities. Finding a freelancer who has the technical background for your project is no trivial task, but it's only half of the equation.
Communication skills, professionalism, and personality are equally important when it comes to working with a freelance software engineer. Without these accompanying qualities your project is at risk of missing budget and timeline, or at worst completely collapsing.
While technical vetting is the requisite first step, we are going to focus on how to identify a developer with the soft skills necessary to execute a freelance project. To this end, you need to ask the right questions during the interview process.
We will first introduce the soft skills that make a strong freelance developer, and then 10 key interview questions that will help you unveil the presence or lack of those qualities.
A technical genius will do you no good if they don’t have the soft skills and professionalism to match. There are a certain set of qualities that tend to predict the successful completion of an outsourced software development project. Here they are:
Reliability. After interviewing a number of recruiters, it is clear that the highest priority quality is reliability. A freelance developer should be attentive to your project, be available for reports, and committed to seeing the contract through.
Project Management. Project management encompasses all of the other traits below, and its importance is therefore considered second only to reliability. Project management means the ability to gather the right information to start the project and execute it. It also means meeting deadlines, and delivering an ideal product to the client with minimal confusion and hassle.
Communication Skills. Communication is essential to project management. You need a developer who can follow instructions, provide feedback, and ask the right questions to accurately translate your idea into software. Since developers are technical and clients may not be, a developer should be able to explain what he or she is working on, why they are working on it, and how individual tasks fit into the overall project.
Problem-Solving Skills. It would be great if your project goes through without a hitch, but usually that’s not the case. A number of unforeseen issues can occur — corner cases that break the code, an unforeseen need for refactoring, or the need to create abstractions for scalability purposes. If something goes wrong, you want your freelance developer to be able to creatively problem-solve and code solutions.
Proactive. Being proactive goes hand-in-hand with problem-solving. When something unexpected happens, you want your developer A) to let you know, and B) actively seek out solutions. Avoid at all costs hiring an “Aww shucks” developer.
Time Management. Sought after freelancers will be working on more than one project at a time. This is a good sign, but always makes new clients a little anxious. Good freelance developers should be experienced in balancing tasks and meeting milestones, no matter the size of the project.
Receptive to Feedback. If you want a healthy relationship with your freelancer and a strong resulting product, you will undoubtedly be giving feedback throughout the course of the project. It’s important that your developer listens to and implements feedback. This is all the more important when the partnership is between a technical freelancer and a non-technical client. This is your project, and you want the finished product to reflect that.
Interest and Enthusiasm. You should avoid lackluster developers who see your project as “just another job.” If this is the case, they will likely perform poorly on all of the other qualities listed here, and you will find it difficult to get satisfactory results. The ideal candidate will be enthusiastic about your project and use case.
Asking the right questions to screen freelance developers is the key to identifying a talent match to help you successfully complete your project. These are 10 must-ask questions for your behavioral interview, and correspond directly to the crucial qualities presented above.
1.Tell me about your freelancing experience and the types of clients you have worked with.
The answer to this question will give you some insight as to the types of technologies your candidate is familiar with, the use cases they have worked on, and more importantly, their reliability. If the interviewee is able to explain a handful of projects they have completed and clients they have worked for, it demonstrates that they are building up a reputation and are considered a reliable freelancer.
In some cases, you may be interviewing an experienced developer who is just starting their freelance career. A developer new to the freelance world can discuss work they have done with their past employers or side projects they have worked on.
Follow-up: Can you tell me about your worst client experience ever?
This follow-up question can reveal how a freelancer characterizes past partnerships that were more difficult. Here you are listening to see if they can remain positive about less ideal projects, or if they bash former clients. Client bashing is a red flag, as it suggests they either weren’t receptive to feedback, did not effectively problem-solve, or just generally did not manage the project well.
2.Has there been any instance in which a client was not 100% satisfied?
This question can help to expose potential issues a developer might have when working with clients. Of course, clients are not always expected to be 100% satisfied, and it’s not necessarily the developer’s fault. You want to listen to whether or not the developer can objectively describe why the client was unsatisfied, and what they did to remedy the situation. Asking about client satisfaction can also help to judge a candidate’s self-awareness and confidence.
Follow-up: What feedback did you receive?
If the developer can recall the feedback that they received, they most likely found that feedback valuable and acted on it. This shows they are receptive to client feedback, and are willing to help clients build their ideal product. If they cannot recall any client feedback or decline to share, it suggests poor communication and poor use of feedback.
3.Can you tell me about a problem you encountered in a previous development project?
Throughout the course of most projects, at some point problem-solving will be required. There may be technical debts to identify, bugs that bring about the need for more testing, or any number of bumps in the road. This question gives your candidate the opportunity to showcase their ability to overcome mistakes or roadblocks encountered during a project. In other words, can they be proactive in handling hiccups?
Follow-up: In retrospect, how could this have been avoided?
In this follow-up question, you are looking to see if the engineer has used past experiences for professional development. If they have learned from past mistakes, they are consciously cultivating the crucial soft skills that we discussed earlier.
4.What type of environment are you most experienced working in? (i.e., structured teams, on-site, distributed teams, high autonomy).
Knowing the environment and preferences of the developer can help you determine if they will be a good fit for your structure and team culture. If they only have on-site experience, you will really want to drill them on how they would execute a remote project.
Follow-up: How do you work with distributed team members?
Assuming the team is not all centrally located, this is an indispensable follow-up. This question can be left intentionally broad to see what the developer can come up with on their own. They may explain favorite tools, workflow habits, or communication strategies.
Indicators of strong remote project management ability include familiarity with tools like Trello, Asana, and Google Sheets which serve as spaces to share progress with team members. Developers should have a specific formula for using these tools or others, whether it is to communicate, give and receive feedback, or check-off milestones.
5.What criteria would you look for if you were hiring a freelance developer for this project?
This question is sure to keep candidates on their toes. It forces the developer to think about who they might like to work with or what qualities a good candidate for this opportunity should have. If they can answer the question objectively and intelligently, it indicates good project management ability and interest in the project.
Follow-up: Do you meet the criteria?
Hopefully your candidate can make a strong case for why they have the right technical and professional skills to take on this project.
6.How do you gather requirements when starting a project?
To nail down project requirements, the developer should be interviewing you of course. They should be able to come up with a detailed list of questions to ask you to determine the tech stack, appropriate database, specific use case, core features, and timeline. This interview question is also a measure of project management skills.
Follow-up: What would you do if you realized you lacked some information when working on a project?
As the technical expert, it’s the developer’s job to drill into the details of your vision, and identify missing information in order to build quality software. They should be consulting closely with you to weed out any possible information gaps or redundancies in the project requirements, and referencing resources like StackOverflow and GitHub for code specific issues. How a developer approaches information gaps can also help to gauge communication skills.
7.What is the first thing you would do to start this project?
After requirements are gathered, you want to check that the developer knows how to take action. Frame this question so that it refers to your specific project, and the developer has a chance to pitch you his/her plan. If they can list several initial steps to get the project moving, chances are they will have strong project management skills.
Follow-up: How would you communicate your progress and results along the way?
An essential part of communication is giving and receiving feedback. You want to be updated on the progress of your project, and your freelance developer should be well practiced in providing clear reports to a client. This could include daily or weekly reports as agreed upon by you and the freelancer, updates on Asana, or checking off scheduled milestones.
8.What is your workflow process for sticking to a project timeline?
Good freelance developers have a process and plan to execute projects on time. They will most likely be using some of the tools mentioned above to track progress. They may have a system to do sprints to hash out features, or a progress calendar they share with the client. You want to know how they work and manage their time.
Follow-up: What would you do if you realized there may be delays on agreed upon milestones or deadlines?
This is a tricky question that makes many developers squirm. The truth is that even the best software engineers experience setbacks at times. What’s important is how they deal with it.
If you and the developer are both on the same page regarding project priorities, there should be a mutually agreeable way forward. If you are working on a “must-have by” deadline, maybe you want to scale back a feature. If you are working on a “must-have” feature, you can adjust the timeline or do another sprint. The key is having a proactive developer, and strong communication between the two parties.
9.What was the last non-contracted or non-paid project you worked on?
Follow-up: What was the purpose or value?
10.Do you have any questions for me?
Follow-up: What motivated you to apply for this project?
In questions 9 and 10, you are looking for signs of interest and enthusiasm. By asking the developer what they work on when they are not being paid, you can learn what they are passionate about and the types of projects they enjoy. Additionally, the developer should have some questions, or even advice on your project. A complete absence of questions is indicative of a lackluster candidate.
By asking specifically about your project and why the freelancer was drawn to it, you can hopefully gauge excitement towards your specific case. Developers who are genuinely interested in your use case are always preferable, as they are more likely to put forth their best effort.
If their pet projects are similar to your use case, you may have a stumbled across a perfect fit.
Once you have found a technical and professional match, how about a practical match? The realities of availability and budget govern almost all business decisions. Compensation and timeline must be agreed upon before moving forward. You can format these questions any way you like, but we recommend not overlooking these factors:
Today many companies are constrained by smaller budgets and increasing costs of labor in their locality. Luckily, there are a number of global talent platforms that allow you to identify high-quality developers in any tech stack.
Once the developer has passed technical vetting and a behavioral interview, you should sample the talent. Further guarantees that the developer is the right fit for the job can be in the form of references from past clients, or completion of a small task. If you are able to obtain a reference, this can be a great resource to confirm the candidate’s work style, reliability, and delivery on past projects. However, because of the generally short-term nature and remote structure of freelancing, candidates may struggle to provide professional references to speak on their past work.
Therefore, a small task or short term project is a great method of verifying the talent’s ability. The small task can be an initial milestone in the larger project you are hiring for, or an unrelated assignment.
To recap, hiring the right freelancer to match your software engineering project includes the following process:
With these 10 key interview questions, and the many other resources out there, you are now ready to move forward and hire your freelance developer!
Once you've hired a developer, a proper onboarding process will be key to getting a productive team up and running. Check this post for 7 Best Practices to Developer Onboarding.
If you have any thoughts or additional advice on behavioral interviews for freelance developers feel free to comment below or tweet us @CodementorIO.