How to select good developer on Upwork

Eduard Khorkov
4 min readNov 16, 2020

--

My name is Eduard and I’m the CTO at Polecat. Sometimes I help my friends to find developers on Upwork. Below, I describe how I recently searched for a React developer on Upwork.

First, I made it clear what kind of developer I needed. In this particular case, I was looking for a React developer with at least a few years of experience and hands-on skills with GraphQL and Hooks.

Upwork Job Posting

When posting an Upwork job, I use the following template.
[Title: Who I am looking for]
[Short project description]
[List of required skills]
[Expected workload]

Upwork Job Description
Upwork Job Description

Not all the developers on Upwork are constantly looking for new jobs, so I spend around 20 minutes searching and inviting freelancers to apply to for mine. When searching, I use the filter to define the minimum threshold:
- $1+ earner amount,
- at least 1 hour billed,
- activity in the last 2 weeks,
- job success above 90%.

Upwork Filter Settings

Also, I always look at the freelancers’ availability and response time so that I don’t invite anyone who is currently unavailable. You can find this information is available on their upwork Upwork profiles.

Building a Candidates List

I create an Airtable where I collect the profiles of the developers I’m interested in along with their hourly rates. The thing is that a candidate can increase their hourly rate when they realize that you are interested in working with them, and it’s useful to have such details recorded.

Airtable with developers rates

Selecting a developer involves a series of steps.

First, I ask each developer several questions about their experience in the technologies involved in our project. I used the following checklist for the current search:
1. Experience with React Hooks
2. Experience with TypeScript
3. Experience with React.JS
4. Experience with GraphQL

Questions for developer on Upwork

Next, I receive answers to my questions from each candidate. I pay attention to how they’ve answered my questions — whether or not the answers were clear and precise. If there are problems with communication at this stage, there will be problems with communication when it comes to collaborating on a project.

I add the answers to my Airtable.

Airtable with Upwork candiates

I then select the top 5 candidates and ask to do a quick call with each of them. I point out that it will be a video call.

The Screening Call

During the call, I ask a few technical questions about each technology (GraphQL, React, and TypeScript). To get hold of the type of questions you need, try googling typescript interview questions and answers, for example. Or message me via Twitter and I will try to help.

During the call, I pay attention to the following:
1. Making sure I ask direct questions and that candidate’s answers are clear and direct.
2. How confident a candidate is when answering my questions (people are usually confident when they know the answer but not so confident when they have to come up with the answer).
3. Whether they answer most of my questions correctly.
4. The quality of the video and the internet connection.

Based on these questions, I choose the best developer and give them a small trial task. This should be a task that can be completed within a day or two and produce a clear and visible result. It’s important to check that the developer can deliver.

If there is no result, I stop the contract and hire another developer from my top 5 list and give them the same task.

P.S. When hiring a developer, I suggest disabling manual time tracking so that your developer will track time only via the Upwork tracker.

P.P.S. Follow me on Twitter, where I will be posting more thoughts on finding good developers.

--

--