If you don’t know anything about programming then finding the right developer might be a problem. Most of the times you will try to use somebody from your network, but good developers are rarely available for work, so the chances are that everyone you know is busy already. Luckily, these days the whole world is connected, and you have plenty of options where to look for a developer. I want to guide you through the options that are there and how to make sure that the candidate is a good fit.
When you want to hire a technical team (even a team of one) you have three options — hiring local employees, an agency or remote contractors. Each option has its pros and cons and choice depends on your situation.
- Hire local employees when you are confident about the product and the project. It's the most expensive option not only because you need to pay a higher salary plus taxes, but also because you need an office space for the team. As a benefit, the team will be more efficient at working together. I’d recommend this option only if you have experience managing developer teams, have secured funding and will be able to pay the team for at least a year.
- Hire an agency if you have enough funds but have little to no experience managing software developers. If you created user stories, wireframes and product spec you’ve come a long way, but the implementation phase is one of the trickiest so if you can avoid learning by mistake — do that. Agencies are quite expensive, but if you choose the right one they can deliver a quality product and save you much time.
- Hire remote contractors when you are bootstrapping the development of your product or when you want to build your company in a lean way. There’s a steep learning curve, but you’ll be able to create the product with a smaller budget. The only drawback is that this approach requires more time commitment — you’ll need to go through the process of trial and error before you have an efficient process.
Where to find remote contractors
There are plenty of platforms that where you can hire remote workers of various types. During my career, I’ve hired developers through most of them, but only two platforms were giving me the best results — Upwork and Toptal.
The problem is that most of the platforms out there are built for freelance work — short-term projects with small pay, that most workers use either to supplement their income or as a launchpad for their career while learning. You want someone who’s not a freelancer but a professional remote worker who commits full-time. There’s a huge difference in how these two types of workers will approach your project. For a freelancer there’s no significant value in a single short-term project — there are always other clients that need help. However, a remote worker treats your product as something he cares about because it’s a long-term commitment, just like on ‘real’ work, only with the benefit of working from home.
Upwork is a platform where people go to find a deal. It’s absolutely possible to find great developers there. The only problem is that it’s a lottery. The volume of applications you will get for your job posting will be so high that you will need to spend a few hours on filtering the shadiest ones. The real talent is buried behind tons of spammy applications and unprofessional applicants who manage to create nice profiles. Despite its high fees and the amount of time I had to spend to filter and screen candidates, I was able to hire few people who have been working for me for years (and still do).
Toptal is slightly different from Upwork. They promise to screen the candidates for you so that you don't have to. The problem is that they don’t do that — they just run people through a set of automated tests that filter out only obviously fraudulent ones, and that’s all. They don’t do any management or hand-holding for you so think of them as an Upwork with a spam filter. One thing that I find annoying about total is that they filter the talent based on desired pay. From a hiring standpoint, it might seem right because you will spend less, but it also keeps many professionals who want to earn a decent pay away from the platform.
How to vet candidates
The best way to vet candidates if you don’t have the technical skill is to hire a consultant to do that. If you hired someone to write the spec document for you, it makes sense to continue working with them to screen and interview candidates on your behalf. Here are a few tips if you want to do this yourself.
- Make sure the candidate has a good track record and can provide references to previous clients. Take your time and contact those clients to learn about their experience working with the candidate. Pay attention to the type of projects a candidate was working before — an ideal developer will have experience in your industry or was working on a somewhat similar project before.
- Communication is the key when working remotely, so you need to note how the candidate interacts with you during the screening process. Does he respond promptly? Is his English good enough or it is hard to understand? If there’s a time difference, does he stay late or get up early to respond to your messages quickly?
- If you found a promising candidate ask him to perform a test task. It can be a simple app that can be a base for your product — for example, an app where you can sign in, sign up and create, read and update a list of items. This app should be simple enough to complete within a week, and you should pay for it. It will allow you to see the developer in action without committing for a longer relationship and you will immediately notice how good he is.
- Schedule a video interview. It's important because you want to make sure that you are working with a real person and that you will enjoy interacting with this person day to day. While it may be easy to fake it in writing, a personal interview will reveal the true issues in communication. You need to be able to talk with your developer by voice and see his reactions because sometimes it much quicker to discuss things verbally.
- Agree on a trial period. Even if the test task is completed successfully, you need to have a trial period to evaluate the developer. I usually start with a 6-week trial period to see how it is like to work together. After all, there’s a chance you will spend years working with this person, especially if it’s the first developer you hire for a project.