I recently took the plunge and left my job to freelance full-time as a web developer. It's been an amazing transition and I honestly regret not doing it sooner.
There are so many reasons why more developers should consider freelancing full-time. You have the freedom to control your own schedule. I take advantage of this by carving out a few hours in the middle of the day to read or take my dog for a long walk. If demand is high enough, you can pick and choose the projects you take on. You can also often earn more freelancing than you can working for a single company. I'm on track to earn more than twice what I made at my previous full-time job.
All that said, getting to the point where you can make the jump takes time. I freelanced on the side for five years before I built up enough work to start doing it full-time. It doesn't have to take that long, but it will take a while to build up a steady stream of incoming projects.
I started freelancing for two reasons: I needed the income and I needed the experience. I started right after I graduated from a coding bootcamp. Between the time I graduated and the time I got my first paycheck, I needed some way to cover my rent. Also, being a recent bootcamp grad, I needed some "professional" experience I could show employers. Freelancing ended up being a great solution for both of these.
If freelancing as a developer is something you're interested in, the first thing to figure out is how to get your first paying client.
Starting Your Search
Before you start, you need to realize that the economy is enormous, unfathomably so, and the market for people who can code is huge. If you're flexible with the kinds of projects you take on and the technologies you use, there's more demand out there than you can meet.
My freelance projects have ranged from things like:
- HTML/CSS emails
- Simple scripts that pull data from a website and store it in a database
- WordPress sites with multiple page templates
- Production applications with user authentication and complex relational data
The challenge is finding the demand for your skillset.
When thinking about where to start finding freelance projects, many developers draw a blank. Others jump to networking, whether that's literally hitting the streets, or messaging people on Twitter, Craigslist, and LinkedIn. Still other developers immediately sign up for sites like Fiverr and Upwork.
I tried both of these approaches when I first started. I messaged people on LinkedIn and responded to ads on Craigslist; I also handed out business cards at meetups and other events. Networking can be a good approach, but it never actually turned into a paying project for me. The challenge with networking is that you have to connect with a lot of people in order to ever get any work.
So what about Fiverr and Upwork? I tried these and was able to get a project or two through these sites. A friend connected me with someone who worked full-time through Fiverr. Over coffee, this person validated the challenge with these sites: the projects tend to be small and low-paying, so you have to complete a lot of them in order to make a sufficient living. This developer lived in Costa Rica, so he needed to earn less to be comfortable. I lived in Washington, D.C where rent is, shall we say, significantly higher.
A Better Way.
When Willie Sutton, an infamous bank robber, was asked why he robbed banks, his response was, "Because that's where the money is." If you're looking for work as a freelance developer, you have to take a step back and think, where are the projects?
When someone needs a new website, they research their options and then hire a designer to figure out what the site should look like. Then the designer and the client go out and find a developer who can build and launch the site.
The best thing you can do to start getting freelance work isn't to network extensively or sign up for Fiverr, it's to try and find designers who need a developer.
Partnering with designers has one key advantage over networking and Fiverr: it's where the need for developers is. If you go out and try to find work for yourself, the audience of people you have to network with is huge. Once you finish building a website for a client, they probably won't need another for a couple of years, so every time you finish a project you have to go and find a new client. If you instead focus on finding designers, you only need to find and partner with two or three who can send you a relatively steady stream of work.
So now the challenge is to find a couple of designers who you can partner with.
Finding and Connecting with Designers
So how do you find and connect with designers? Well, the same way you'd find and connect with anyone: using and expanding your network.
The first designer I worked with was the edgy older brother of a close friend. The second had completed the same coding bootcamp, but a previous cohort. The third was a friend-of-a-friend's wife and the fourth was the husband of one of my wife's coworkers.
You should definitely start by tapping your network, as it's likely to quickly lead to some freelance work. But if you don't know of many designers, there are still other options. In a pre-COVID world, I would suggest attending meetups, where you would find large rooms filled with designers, many of them full-time freelancers. Post-COVID, you can still try meetups, but connecting with individuals won't be as easy.
What you can do instead is reach out to people for "coffee" or a quick chat. I have found that people are far more willing to hop on a 30 minute phone call now (audio, not video).
You will likely still have to connect with a few designers before you find someone willing to pass their work on to you. Once you have partnered with a designer though, they're yours to lose. So how do you keep them?
Keeping the Designer as a Client
You want to keep two things in mind. First, the designer will always feel exposed or like there's some risk in delegating the build to you. Second, you are taking on the entire technical side of the project, not just implementing the designs.
You have to understand the designer's side of freelance work. The client paying both of you is actually the designer's client, so their reputation is more at risk than yours. The designer is delegating the actual construction of their designs to you for their client. This is really important for you to remember. You have a skillset the designer probably doesn't have and you are doing something for them and their client. I've built sites for clients and never actually met the client, only the designer who was passing the project off to me. Regardless of whether you meet the client or not, if you deliver sub-par work the designer will look bad in front of their client.
I've had friends and former coworkers try to start taking on freelance projects thinking they would only be responsible for implementing the designs. That's 80% of what you'll need to do, but that last 20% is what's going to make or break your relationship with the designer. The designer hired you because they can't build the website themselves. That means they also probably can't set up hosting or administer the site themselves. In the designer's mind, that's part of building the site, which you are expected to handle.
You're not likely going to get out of hosting and administering the site. So the best solution is to have easy, standard options that you can use. It's not sexy by any means, but I've set up hosting for clients on Bluehost. I know, it's not AWS but it's easy and cheap and I actually had to do very, very little to get the site live. Meanwhile, the designer, who you remember is really my client in this project, didn't have to do anything and was able to give their client an easy and affordable hosting option.
I fell into this insight by accident. My friend and his older brother needed a website built for their startup and my friend knew I had just graduated from a coding bootcamp. The older brother said that he often had a hard time finishing projects for his clients because he couldn't code and he didn't know many reliable people who could. So if there's a formula for success in getting started as a freelance developer it's this: find people who have work (i.e. designers) and be reliable.
With time, you can work up to doing this full-time, like I have, or you can just do it on the side, like I did for the last 5 years. The decision is up to you. I made the switch when I had enough current and incoming work that I felt comfortable giving it a shot. Whatever your end goal is, the best thing you can do right now is get started.