Lessons Learned from Working with Freelance Developers, Designers, and Agencies
The first time I ever hired a freelancer was over ten years ago. I had many ideas for side projects. Having a day job meant I was limited to how much I could get done by myself, so I thought I’d try hiring people online to speed things up.
From the initial job posting, reviewing proposals, negotiating fees, interviewing candidates, to eventually signing contracts and managing remote teams, the whole process was new and exciting - the fact that I could get stuff done while managing people from a laptop in my studio apartment felt like a super power to me a decade ago.
Soon after that, I left my job to start a game production company. My team was mainly remote, and I worked with many passionate and talented individuals. But I’ve also made my fair share of mistakes hiring freelancers. Some of these mistakes ruined projects, and others turned into new opportunities.
Here are a few lessons I’ve learned in the past decade hiring and working with freelance developers and designers:
Prepare for the Unexpected
I found a very talented illustrator on a freelancer platform. I was excited. The portfolio looked amazing, just the style I needed to update the visual for one of our games. The fees were reasonable, and the artist was easy to work with.
Then the Greek debt crisis happened. It was a major political and economical event in Greece. And my artist was Greece living through it.
He stopped communicating cold turkey. No warning, no messages. He disappeared all of a sudden.
And I did not have a plan B. It was unexpected and sudden. I kept thinking he’d respond soon so I waited week after week, not wanting to waste the work he had done prior to disappearing.
In the end, the project had to be cancelled due to this delay. If timing is important to your project, have a plan B, make sure the work is structured in a way that it can be picked up by someone else, and take swift action when communication is stopped - a huge red flag.
Interviews - Make Video Calls
I was looking to hire an iOS Swift developer in 2015. I did not know that many Swift developers at the time, so I posted the job on multiple freelance platforms.
Some of the resume from freelancers on these platforms looked really promising, people working on major projects and big brands (AirBnb, Uber, Microsoft…etc.) So I picked a handful of candidates and messaged them to schedule interviews.
Not one of them wanted to do video calls. Some did voice calls, and many just wanted to do text chat.
Now I know doing calls is not for everyone, particularly if someone’s not confident with spoken English, or culturally it’s not customary to show your faces. But what I’ve realised is that one big reason why some of these candidates did not want to do video calls was because their profiles are made up.
I was suspicious of some of the candidates, particularly ones claiming to have worked on major tech projects. So I did reverse image search on their profile pictures. As it turned out, many were using profile pictures from other people. I even reached out to one of the people whose picture had been used, and confirmed that the person claiming to be him was not him at all.
Always do a video call if you are hiring for a key role. It’s less of an issue if it’s an assistant role in my opinion, as the risk is lower in terms of cost and impact. But when it comes time to hire designers or developers, always request a video call.
Hiring a team vs hiring a person
Is it better to hire an agency / team or developers or hiring individuals? This depends on how confident you are with managing a product / development team.
I once hired a software outsourcing company to help with a project, when we were overwhelmed with existing client work but I really wanted to take on a particular project. The company had a good portfolio, had worked on something relevant to the project, and the sales manager was very convincing, promising short delivery times and a dedicated 8+ person engineering team.
So I went for it, hiring an entire team of engineers from this outsourcing firm to take on this project.
However problem starts very quickly once we got going. Communication was difficult. Although we were all speaking the same language, they were having trouble understanding the requirements and design, and I was having trouble understand their reasons for underperforming.
Despite weekly meetings and a lot of back and forth over more than two months, eventually what they’ve developed was not usable and we had to break the contract and dispose of all the work. I had to negotiate the remaining invoice, on top of having to figure out how we can deliver the project now that we had to start from scratch.
Fortunately Mike stepped in to take over, building the whole thing from scratch, and made more progress in a couple of weeks than the previous team in over 10 weeks to save the day.
Not everyone can be as fortunately as I was. My big take-away is that when it comes to software development, more people does not equal better. One star programmer can be more productive than a dozen, easily!
If you hire on a platform such as Upwork, you will see reviews on past projects a freelancer has worked on. My view on online reviews is that they are just one additional information but shouldn’t trusted blindly. The star ratings are less meaningful than the actual words written about a person. And I also consider the lack of reviews from past projects, in combination with not having repeat customers, a negative signal.
I used to almost always negotiate. Partly because of a few Harvard Business Review articles on the psychology of negotiation - that on both sides, people feel happier about a deal if it’s been through a negotiation.
I think this is still good practice if you don’t know the going rate for the service you are hiring for. But remember to not get to a point where you might be damaging potential long-term relationship or reputation.
I didn’t know how to negotiate or what kind of language I should use. I learned that by creating a budget for a particular task / project in advance helps. It also helps if you have multiple proposals from good candidates. Again, think about long-term partnerships when you negotiate - a good partner in the long run is way more valuable than a quick discount you might get for the immediate project. The cost of finding another good person to work with can be high.
One thing I failed to realise was that when you work with people from different countries and cultures, they will have different holidays! (I had to push back a project for a month for Diwali one time on a short notice.) A good contractor will let you know in advance, but you want to leave room for delays in case if they made the same mistake of assuming you know about their holidays.
There are many places where you can find legal documents nowadays. If you are to use a contract template, make sure you read it thoroughly. Contracts are normally either pro-contractor or pro-employer, so make sure you find one that you are comfortable with. Always seek legal advice when you can, particularly if you think working with contractors will be a long-term thing for you, it’s worth working with a lawyer to create a document that works best for you and your business.
Scheduling things over different timezones is tricky, particularly when day-light saving is involved as it doesn’t start or end on the same day across the world (and many parts of the world don’t use it). I use WorldTimeBuddy to schedule calls now.
Regular calls and check ins
I used to do calls every other day with my remote teammates. Not being in the same physical space means it’s harder to build rapport. Building rapport to me was important for the small team as we had to have our priorities aligned and make sure we feel a personal connection to one another.
For freelancers that you do not consider part of your core team, regular calls are not necessary, but do schedule frequent check ins to make sure they are on track and working on the right direction.
It is not an easy task to find the right talent for your project, be it in-house or remote. The growing pool of talents who are going freelance is fantastic for getting great help for your project. It does, on the other hand, require a different type of management, from finding/sourcing (previous blog post: where to find developers/designers ), interviewing, to keep track of the good talents you’ve found. Markd was actually a tool I wanted to help me stay organised with the freelancers I work with, so that I always know who I can find to help when the right projects come along. (I wrote a blog post on this a while ago).
Have you made hiring mistakes before with contractors? Feel free to share your story in the comments!