There are times, however, when we need to go beyond our basic levels of competence in our multi-varied skillset and hire an expert to do what they do best. Developers are one such example, especially when we need to build certain tools or oversee large scale technical issues. But, if you have ever tried to hire a good one, we both know just how difficult and stressful that entire process can be.
Is there a proven way to find a great developer, every time?
Maybe. But after hiring a ton of developers, we still haven’t found it. Nevertheless, we can provide some clarity and tips on how to increase your chances in finding the perfect fit, for you and your development goals:
1. Dip Your Toe In Many Pools
Searching multiple sites to find a great developer was almost expected a number of years ago, when resources like ScriptLance, Rent-a-Coder, eLance, oDesk and GetAFreelancer were independent beings and boasted a wide variety of talent. These days, it seems there are only two giants that remain, and we are relegated to their rules and way of operations. I am of course referring to UpWork and Freelancer, which hold the largest market share and are rarely overlooked in favor of alternative solutions and options.
We may not realize it, but there are multiple niche and alternative players in the “hire a developer” space that may lead to a better experience than one found on the big two. The list looks something like:
- Scalable Path
Some of these we have used with mild success, others with a less-than-ideal outcome. Our experience, however, is subjective to our desired requirements, timeframe, budget, vetting process and communication style. As a result, it’s almost impossible to rate one service above any other. Any one of them could be a hit or miss, depending on a varying hint of factors.
Regardless, it’s a good idea to check them all out and compare them to see which may be the most appropriate one for the project you have in mind.
2. Ensure The Job Description Has Been Read
It goes without saying that a high quality job description will attract high quality applicants. Alas, they also come with the lower quality guys by default. When a job has been posted, it gains the attention of many out-of-work developers, who may or may not actually be qualified to fulfill the task in question. A good portion of them have a standardized cover letter and application, which they use (or automate) for each open application they come across. It would be the equivalent of sending millions of spam emails, hoping that one or two reply to maximize or justify the scale of the operation in leu of replying to each application individually with careful consideration.
As we want to avoid such applicants, the most straightforward way to weed them out is to require them to reply to the job with a unique phrase or word. I typically use the word(s) “Caio” or “Banana”, which they must include as the first word on their cover letter for me to even entertain their application at all. If it is absent, it doesn’t matter how much experience they have — they will not be hired.
Additionally, I ask developers to name their price + how long they estimate it will take to complete the task. While there is already a rate they include with their application, it is interesting to see how it changes when they are required include it a second time. More often than not, it is a little lower than what they had initially quoted, which is in itself not an indication of anything sinister or misleading, but a more accurate representation of what they estimate the job requires. It is equally interesting to witness the range of timelines some developers quote, which is telling to what degree of confidence they have, along with their current workload and if any research needs to be done. Unsurprisingly, the less time they estimate, the better it would appear to be for both parties.
3. Test Their Responsiveness
While not a clear indication of quality, it is still important to understand how timely a developer responds to a question or comment. For this step, I would simply ask a relatively simple question, whether it be about their experience, location or technical setup, but to specifically ask them at two separate and unusual occasions; the first could be late on a Friday evening to see if they reply over the weekend; the second at a regular time to see if they share a similar time zone or work hours.
Do they respond within minutes, hours or days?
Most people are consistent with their work activity, therefore it wouldn’t be unreasonable to assume their productivity based on their response rates. I usually give developers 24 hours to respond to a query (an arbitrary number, but one that seems to work for me), at which point I can decide clearly on what I want to do next.
4. Don’t Ask For References
I’ve never understood the concept of work references, or allowing the applicant to provide their own “proof” of their competence. It’s perhaps the most vague aspect of the entire hiring process.
An average applicant, when asked for proof of previous work, will typically provide URLs of certain websites or resources, which you must only assume is theirs. There is absolutely no way to tell if they worked on that project totally, partially, or at all! There is no verification process in place, and those of us who hire developers are routinely pressured into leaving positive reviews for all completed jobs (whether we are happy or not), as it is a reciprocal exchange and employers want to receive a positive review, too.
The best way, I have found, is to ask for a link to a developers Github account. This is a simple and effective method in discovering how competent, organized, disciplined and experienced a developer really is. There is no way to fake a Github repository (as far as I am aware?) and it is reassuring to witness the extent of the developers contributions — how much of it is actively being used on the web at any given moment. If they do not have such a profile, the very least they can provide is their LinkedIn; if they don’t even have that, then it’s time to find somebody else.
5. Require A Small (Paid) Task
If there are still a decent number of applicants left at this stage, there is still a way to determine the right fit for you: Hire them all!
Seriously, hiring them all to do a small task is the only way to truly know who will do a good job in the future and if they are good at understanding and implementing the instructions you provide them. Find a small tool or task that can be completed relatively easily, and ask them all to do so. This is exactly how I hired my developer for the redirect tracker, as there were many willing and able applicants. This is all it really takes to single out the optimal candidate.
Granted, this may turn out to be an expensive endeavor, as you may have to choose between 2-5 competent developers, but it is absolutely worth it, as you would lose a lot more time and money if you were to hire the wrong person, only to not have it work out and leaving you to repost the job all over again. Not ideal.
When you find great developers, don’t let them go! They are extremely valuable in this environment of increased competition, professional sabotage and offshore outsourcing. Your team is a valuable asset, so spend the time and resources in finding the right one for your company; it will pay for itself in spades.