Discover more from Cavan Klinsky
Finding a Developer for your MVP
Navigating The Wild Wild West Of Online Freelancers
The most common question new founders ask me is how to hire developers to help build their MVP. These founders are normally passionate and knowledgeable, but are not technical. Their companies (like most nascent start ups) are normally tight on cash and time.
In an ideal world, these potential founders would all have a trusted technical friend who had the time, willingness, and ability to help build an MVP. In a slightly less ideal world, new founders could go to a meet up, hit it off with a person who is a great initial fit, and have them build it. Unfortunately, both these scenarios are rare. Good developers are in high demand, dev jobs are well paid and stable, and new startups are risky and painful (albeit hopefully rewarding). This leaves a tiny pool of developers that fit the above two categories.
New founders can’t afford to wait for the perfect developer to come along. To get the ball rolling quickly and affordably, these founders normally need to look to a much bigger pool of talent, namely online freelancers.
What follows are the tips and learnings I’ve gained from hiring contractors at Healthie, as well as helping a bunch of brand new companies find their first engineers.
The below advice is for you, assuming you’re a non-technical (or not technical enough) founder building a web or mobile application with minimal tech risk. For example If the MVP of your app is based around machine learning or has intensive graphical needs like custom 3D rendering, there is likely better advice out there. This advice also assumes you’ve exhausted preferable options like finding a developer who is a great fit and you know directly (or comes highly recommended as a referral).
First, three pieces of general advice on hiring and working with your first engineer hire.
References, references, references - no matter who you hire, you should always do reference checks. No one is offended by it, and talking to references really helps you work with the hire. In the case of good references, they help you learn how the hire likes to work and interact with others. On the downside, the hire can’t provide references (or the references are lukewarm or negative) and you can avoid a huge amount of trouble. The worst candidates we hired at Healthie looked amazing on paper and from their initial interviews. We were very excited, and didn’t want to risk losing them, so we made offers without doing reference checks. In hindsight, references would have exposed the issues that we had to learn very painfully.
Own your accounts - You should be the primary account holder/admin on all services that your engineering hires are using to work with you. Most notably, this includes where your code is stored (e.g Github), where your server is hosted (e.g AWS), and the tool you use to manage the project (Trello or Clubhouse). Your first engineering hire may have (strong) opinions on the specific tools to use. Whatever tools you use, you need to be the one to create the account, and then invite the engineer as a user. This has a range of benefits, but most importantly, it protects you and your company if your relationship with the engineer ends badly. It makes you much less vulnerable to a bad first hire, which unfortunately, does happen.
If you’re non technical, avoid making technical assumptions. When it comes to development, some seemingly complex things are trivial, and some seemingly trivial things can be incredibly time-intensive to add. It is important for you to trust your developer, to respect their estimated degrees of difficulty, and to not micromanage. That said, it is worth doing the work upfront to feel very good about your engineering hire. It can also be helpful to have an outside technical resource that you can bounce basic assumptions off of (e.g does two weeks to build out a graphing dashboard make sense?)
With those pieces of advice in mind, it’s time to find the engineers to build your MVP. I normally see founders look at five main sources -- agencies, Toptal, Upwork, AngelList, and Fiver.
I’ll go through them one by one, but first, here’s a TL;DR summary. You should use
an agency if money is of no concern,
Toptal if you have time, (less) money, and few tech skills
Upwork if you are comfortable taking a risk, very cost-conscious, or able to thoroughly vet candidates.
AngelList along with Upwork (it’s more focused on full-time employees and with a smaller talent pool)
Full service agencies promise the world, and sometimes, they deliver it. They normally pitch an approach where you give them the project details, and they can handle everything from design to tech specs to development to QA to release. Working with an agency is generally more opaque, hands-off, and expensive than trying to work with developer(s) directly. That management layer needs to be paid for somehow, and they are, through the prices you pay the agency. They also generally charge high upfront project deposits that can be cost-prohibitive for new companies.
When their work turns out good, it is high-quality, cohesive, and takes some serious weight off your shoulders. When it doesn’t, you can be left high and dry midway through a project. In my experience, you really get what you pay for with agencies. If the price sounds too good to be true, it is.
Compared to the free-for-all nature of the other platforms, Toptal is a guided tour to finding a freelancer. You start using their service by getting on a call with a “matcher.” You explain the project and what you are looking for, and the “matcher” introduces you to potential fits that have already been interviewed and vetted by Toptal. You then get to interview the different suggested candidates yourself, and if you want, hire one. This approach has serious pros and cons.
On the plus side, you completely avoid a lot of the outright scams and fraud that can be prevalent amongst online freelancer sites. If you are non-technical, you can feel comfortable knowing that Toptal has done both personality and technical interviews, and the candidate is who they say they are. I’ve worked with a lot of great freelancers from Toptal, and the average quality is the highest of all freelancer platforms I’ve used.
However, Toptal does have large drawbacks. First, you are basically at the mercy of your “matcher.” I have seen cases where the matcher doesn’t set up many introductions, or is slow to respond. Other times, the matcher doesn’t have a good understanding of your project (or the project is badly explained to them), and you’ll be introduced to candidates that are clearly not a fit. This can be frustrating, and outside of badgering your matcher, you don’t have meaningful direct control over the speed or quality of matches. Finally, this extra layer of vetting and staff need to be paid for, and that is reflected in the general higher rates that Toptal freelancers charge. From my experience, freelancers on Toptal are not meaningfully cheaper than devs in New York.
Decades old and formed by mergers of large freelance platforms, Upwork is the largest freelancer marketplace out there. It is a marketplace that covers every type of skill and experience level. Every job posting you make will be quickly inundated with applications. However, Upwork does close to no verification of it’s candidates. It’s basically a wild, wild west where you’ll find amazing developers for great prices, fraudulent but convincing charlatans, and everything in between. With Toptal, the difficulty is finding candidates. With Upwork, the hard part is sifting through them.
For some ”fun” anecdotes, we’ve had Upwork candidates switch out people between interview rounds, switch out people between the interview and the first day of work, and secretly take multiple full-time jobs and farm out work to lower paid devs. I have also been asked to give references on Upwork candidates who I have never heard of. It turned out there’s a whole series of fake portfolio websites out there that have added Healthie as work experience. Despite all those above stories, we still use Upwork! Why? If you can separate all the noise out, there are some fantastic freelancers on Upwork. If you are comfortable and capable of doing the vetting, and ok with some risk, Upwork has the best price to value freelancers that I have found.
Here are some tips that have made a big difference to our usage of Upwork.
Have your application require specific questions to be answered. Try to make the questions specific enough to your project that candidates cannot just copy and paste answers. These questions lower the number of total applicants, show that the candidate put some initial effort in, and make it much easier to choose who you want to interview. In other situations, a longer application can deter good candidates, but that will never be an issue with Upwork.
Be very selective about who you interview. Your big cut of candidates should come between the application and the first round interview. Otherwise, you will spend way too much time on video calls with clear non-fits.
Require video to be turned on for all interview rounds. I like taking calls without video personally, but this is an important verification step
In the interview, make sure the person’s description of their experience and work timeline matches what was in the Upwork application.
Take a screenshot of the person you interview, and at every round of the interview. Make sure that the picture matches anything online (e.g LinkedIn), and also that it is the same person at different interview rounds. This sounds insane, but candidate swapping (e.g a different person interviews than applied, or different people do different interview rounds) happens regularly.
Ask for references, but don’t stop there. You want to do due diligence on the reference, both to ensure that a) the reference company is real b) the person you speak to actually works at the company. Candidates will provide fake work experience, and even fake references. If possible, you want to speak to a technical person at the reference company.
If you move forward with the hire, hold them to a high initial standard of a) joining a daily check-in on time, and b) joining with video on and giving their update. This helps cut down on the farming-out-work problem, and you can be a lot more lenient once you get comfortable with the dev.
AngelList is similar to Upwork. Anyone can join AngelList, and they do not vet candidates for you. Compared to Upwork, AngelList is more full-time focused, and is more U.S-centric. In general, it takes minimal extra time to post the same job on Upwork and AngelList, and there is no harm in doing so.
Fiverr can work well for odd-jobs (e.g freshening up the design of a pitch deck), but your MVP is not an odd-job. Personally, I’ve had bad results with even trivial non-programming projects I’ve tried to use it for. It’s not a fit for this.