11 min read
Technically, hiring freelance developers has never been easier, but don’t lull yourself into a false sense of security. The number of freelance platforms and skilled developers on the market is going up, but so are the challenges associated with finding, testing and selecting a truly great candidate.
So, how do we do this? Well, there are plenty of freelancers to choose from; many are good, but many are not. The bigger the marketplace, the bigger the risk. With more candidates to choose from, checking references and screening individual candidates may be a problem, especially if you post an ad on a major freelance platform and get hundreds of applications.
So what is the fastest and safest way to hire freelance developers? If you are thinking I am about to say Toptal, guess again. Call me old-fashioned, but I still believe in word of mouth and personal recommendations. At any given moment, I can contact a few people I worked with in the past and ask them to recommend a freelance coder or designer. However, this won’t work for everyone; I’ve spent years in tech and happen to know a lot of people who deserve my trust.
Obviously, trust is a prerequisite for any serious commitment in any business or personal relationship. But what happens when you don’t know the right people and have to head over to a huge freelance marketplace to search for talent? After a few dozen applications, people will start to doubt their own good judgement, let alone trust strangers and their promises. Trust is good, trust sells.
Toptal is, in part, built on that concept – that is why our developers are screened and why we can guarantee quality, whereas other freelance platforms do not (and cannot). You see, we simply take a few unknowns out of the equation, allowing clients to focus on what really matters in a candidate, thus reducing their exposure to any type of risk.
So what does really matter? Let’s take a look at a few dos and don’ts of hiring freelancers.
You Cannot Rush It
This is an obvious one; if you want to hire freelance developers, you have to take your time, and there is no getting around this. Of course, this applies to any industry, but in a fast-paced industry like ours, it might not be as easy as it sounds. Competition is brutal, deadlines are tight, yet, a lot of work can be done remotely. Quickly hiring a couple of freelancers to speed up development, or join a new project on a tight deadline, sounds very tempting. However, it’s usually not a good idea.
If possible, you should try working with the developer prior to making the final decision. The trial can involve a small project, or just a number of tests. The evaluation period does not have to be too long, providing it is well thought through. It is also a good idea to involve the rest of the team; after all, they will be working with the new developer and they might be able to identify some issues that would otherwise go unnoticed. Listen to their input, ask them for feedback, and don’t make the decision on your own.
Still, an evaluation might not work in all situations. If your candidate is a very skilled and experienced developer, it might even come across as a bit of a professional insult. It depends on their ego, but you don’t want prima donnas in your team anyway, do you?
A reasonable candidate should be willing to jump through a few hoops, and agree to some form of evaluation. If not, this should be a red flag in itself; it usually means the candidate is not too serious about the job and does not want to commit a lot of time and effort. Another explanation could be confidence, i.e., candidates assuming that they are overqualified for the job and have nothing to prove. There is nothing wrong with a bit of old-fashioned cockiness and competitiveness, but too much of it can create friction among team members.
It’s Not Just About The Tech
So, you are looking for a freelance programmer and your focus is on their coding skills rather than anything else. Of course, technical skills are a priority, but before we get to them, we need to take a look at the human side of things. What’s your company culture like? What does your team think of the new developer? What does the candidate think about you?
Is the candidate a good fit?
While this sounds like a logical question, employers often overlook the cultural aspect due to their focus on technical skills. Now, if you are in a rush and need a couple of freelancers to help you meet a deadline in a month or two, the emphasis, clearly, should be on skill and execution. However, if you are looking for people who will stay on board for months or years, who may become long-term team members, and eventually lead their own teams, it is very important to consider the human aspect. Also, freelance developers can quickly evolve into vital team members, and eventually team leaders. If you hire a good freelancer and everything works out, a year or two down the line you may find yourself sharing an office with that individual.
Technology changes and evolves, so developers have to adapt and learn new skills along the way. People can change, too, but it’s not something you can count on. With that in mind, sometimes it is better to choose a candidate willing to learn new skills and be a team player, than an even better coder who causes friction in the team.
A million coders have a million different personalities, and each company is different, so there is no one-size-fits-all rule when it comes to cultural compatibility; it’s up to you.
Most technical skills become obsolete in a matter of years, but people skills, professionalism and dedication, do not. A developer willing to adapt to new industry trends and master new skills can prove more valuable than a developer who is excellent in one particular area of expertise. A well thought out interview process should address some of these issues.
Depending on where you are and what sort of business you operate, it could be a good idea to consult someone used to dealing with freelance developers, especially if you didn’t have a chance to do it before. A number of legal and tax pitfalls could affect businesses in certain jurisdictions, so if you are thinking about bringing on your first freelancer, be sure to consult your accountant (possibly, even a lawyer). Luckily, in most parts of the world you should not be affected by outdated labour laws or tax codes written in the era of vacuum tube computing.
Sourcing, Preselection, Planning
Human skills aside, technical aptitude is the primary concern for employers. The number of technologies used in development is constantly growing, and so is the need to quickly and efficiently filter out candidates who don’t make the mark. This can be more difficult than it sounds, especially if you need candidates capable of working in a few different frameworks and languages. There is a lot to cover.
Conducting a comprehensive interview takes time and effort. It also requires a fair amount of preparation because you need to tailor your questions carefully. Luckily, Toptal can help with a range of hiring guides covering a wide range of topics. Whether you are looking for a job, or want to hire a freelance developer, you should definitely check out some of our resources.
Let’s take a step back and look at a typical hiring process. Once you’ve identified your needs and started preparing for the sourcing process, several different methods of finding suitable candidates are available – internal sourcing, traditional job ads, online freelance marketplaces, employment services, and good old personal recommendations.
Regardless of which method you choose, you will need to write a good project brief and job description. You can use Toptal job descriptions as a good starting point; for example, check out our front-end and back-end developer job descriptions. Remember, if you want talented developers, people who can get a new job on a few days notice, you have to do a bit of marketing on your end. This does not mean you need to oversell the project, but you do need to market it properly to attract quality people. Ask yourself whether or not you would apply to your own ad if you were a top freelance developer?
Once the applications start rolling in, you are likely to end up with a lot of raw data that needs to be carefully processed before shortlisting individual candidates. Some applicants simply won’t make the mark and will be rejected at this early stage, others will be shortlisted, while some may be considered tier two material – candidates that can do the job, but are overshadowed by the more talented. It might be a good idea to keep track of such candidates, just in case you need them later on.
Interviews Need to Cover Technical Aptitude and Much More
Now that you’ve narrowed down the field of potential candidates, it’s time to schedule a few interviews. This is not just a matter of asking people a lot of technical trivia questions and trying to figure out whether or not they would be a good fit for your team; this is a serious process and needs to be backed up by a lot of research and carefully selected questions, designed to bring out the best (and worst) in each candidate.
Here are a few points to keep in mind when asking technical questions:
- Do not ask trivial questions that have more to do with tech history than the actual job.
- Try to avoid questions commonly found in hiring guides; if it’s online, anyone who tried to prepare for the interview could know it.
- Ask practical, open-ended questions which give the candidate a degree of creative freedom.
- Check out some of the candidate’s previous projects and ask a few relevant questions about them.
- Try to learn more about the candidate’s professional habits and skills, e.g., how often do they learn new skills and polish existing ones?
Now, let’s see how this would look in the real world, using Toptal’s PHP hiring guide. For example, instead of asking trivia/historic questions such as, “When did PHP 5 go mainstream?”, or “Why did the
array_merge() function cause compatibility issues when running legacy PHP4 code?”, you should try asking questions that meet the criteria listed above.
Here is a good example from our PHP guide: “What are traits? Give an example of a trait declaration and a class that uses multiple traits.”
This question will let you know a lot more about the candidate than trivia questions. Traits were introduced in PHP 5.4, which means the candidate has embraced some of the latest features. If you really want to throw the interviewee a curveball, check the PHP release notes and spice the question up with some even more recent additions from the official changelog in PHP 5.5.x and 5.6.x. This straightforward and relatively simple question will let you know whether or not the programmer is keen to embrace the latest developments and use best practices.
Of course, the same principle applies to just about any niche, not just PHP.
Another good idea is to take a closer look at the applicant’s track record and completed projects. When applying for a job, everyone list their best work, which may or may not be representative of actual quality. What if the candidate conveniently forgot to mention a bunch of projects they are not too proud off? Are there any big gaps in the resume? Did the developer complete five five-star projects in five years, without mentioning a dozen cheap and sloppy ones that paid the rent in -between them? Such gaps should be a red flag, although they are not necessarily a disqualifying factor, as long as there is a reasonable explanation for them.
We are no longer in technical territory, this brings us to the candidate’s personality and integrity, which may be more difficult to judge than their coding prowess.
Keep Your Team In The Loop To Ensure A Good Fit
In most cases, the new developer will join an existing team, so it is vital to inform and involve the team at some point of the hiring process. The team can offer invaluable insight into some aspects of the project, help you prepare for the interview and ask relevant questions (or even “gotcha” questions), and, obviously, they have a vested interest in getting the best possible candidate on board. After all, this is the person they will have to deal with day in and day out, maybe for months, maybe for years.
No team wants an incompetent colleague. Use this to your advantage and tap your team for additional input. You’ll find no shortage of interest.
Your team can also make sure that the “new guy” will fit in. Personality goes a long way, and sometimes it can prove more important than dry coding skills. What’s the point of hiring an A-list developer if he or she won’t get along with the team? What if you hire a rockstar developer unwilling to share their knowledge with the rest of the team?
Unfortunately, there is always a chance that your dream hire may turn into a disappointment, a smug egocentric disliked by the rest of the team, but that’s just another reason to consult your team: “Don’t look at me, you signed off too.”
Joking aside, a harmonious team is a well-oiled machine, and every cog works flawlessly. It’s good for morale, it’s good for business. What happens if you add a rockstar Android developer to your team in the hopes that he or she will improve output? Great developers like to work with their peers, so if you have a lot of inexperienced developers on board, new talent may not fix the situation.
Yes, developers who ace all Android tests and interview questions you throw at them will definitely know what to do, but what happens if the rest of the team can’t keep up? Do you expect your shiny new star developer to explain every point to a few “green” developers on a daily basis? Do you expect the new developer to be happy with that? What will the rest of the team think – if you are hiring someone to outrank them, despite their perceived seniority?
Back to the steampunk analogy – a single titanium cog won’t make the rest of the machine nearly as strong. A great developer eager to take the initiative and share knowledge may help a few teammates, but not everyone.
To ensure that there is no unnecessary friction, you simply have to consult your team, and there is no getting around this.
Be Realistic And Straightforward
Everyone wants to hire the best developer out there, and every developer wants to get a dream job, but let’s be realistic; everyone must operate within their budget constraints, so money is often the limiting factor. Good people cost good money, so many organisations simply cannot afford the best developers out there.
Employers usually want the best developer they can afford, and in many cases they don’t actually need the best developer in the business, because the project they are working on does not require cutting edge skills. Developers, on the other hand, want to be well compensated for their efforts, they want to work on interesting projects, with skilled teammates.
However, money is not everything.
If you manage to find a developer that shares your vision and believes in what you are doing, you may get more than you bargained for. If the developer believes they’re working on a good project with a lot of long-term potential, chances are they will try to do an exceptional job and perform above and beyond the call of duty. The project could be a good opportunity for years to come, and it might look good on their resume.
If on the other hand the developer sticks around solely for the paycheck and does not believe the project is truly promising and exceptional, it’s highly unlikely you will get the same level of commitment, or loyalty for that matter.
Bottom line: You can’t expect miracles, you can’t expect to hire the best freelancer out there, especially if you’re on a budget and aren’t working on a top notch project. You need to focus on getting the best developer you can get, not the best developer in the world.