The Pros and Cons of Freelancing as a Programmer
I end each day by setting my own priorities for the following day. I work when I’m feeling productive. When I need a break, I sit down with a video game for a few minutes. I pick up my daughter from school and take her to appointments. I take time off to attend conferences and networking events when I feel it’s important. All this without worrying about appearances in the “busy theater” atmosphere that is the workplace.
As a freelance developer, I enjoy freedoms I never had as an employee … but all that comes at a price. Some of it is intuitive; some of it is more unexpected. Let’s live inside that yin and yang for a bit as we explore some of the pros and cons of freelancing.
Pro: Making Your Own Decisions
You’re discussing with your boss the UI for a new feature. Your boss insists it needs to be an item in a dropdown menu, but you’re sure there’s a more natural way to integrate it into the app. You’ll need a week to prototype your idea, and it will take some more development time than the menu item.
Your boss wins out, of course, and you build the feature, adding it to the menu. The feature is shipped with a big announcement. Support requests skyrocket as users—clamoring for the feature—have no idea where to find it or how to use it. You can’t help but think your more elegant design would have made customers happier … and less confused.
Micromanagement like this also leads to employee disengagement, which leads to poor performance. That’s not productive for anyone. It makes both you and your company look bad.
As a freelancer, you’re running the show. No one can tell you not to do things your way (although that doesn’t mean you shouldn’t listen to advice). The days of not even knowing what the goals of the company are, let alone having enough information to make an intelligent decision, are gone. You’ll have as much information as anyone, and you’ll be the final word on every decision.
Con: The Buck Stops With You
Since you have the final word as a freelancer, that means you’ll also own all the outcomes of those decisions. You’re no longer insulated from the results. Your business will live or die on the back of how well you’re able to determine which course of action to take.
I said before that you’ll have as much information as anyone. If you read between the lines, you’ll realize that no one has full transparency and the clairvoyance to see the results of their impending decisions. At some point, you’re going to be making decisions at least partly on intuition. Some of the time you’ll be right, and some of the time you’ll be wrong. You’ll have to take your lumps and learn from your mistakes.
Imagine this scenario. You find a gig that sounds cool, but you’re not quite sure how to execute on all of it. The gig asks you to build a social media scheduler—that part you can handle—but it should use machine learning to refine the posting schedule over time.
You’re not familiar with machine learning, but you’ve taken on many other projects with pieces you weren’t sure about. It’s never been a problem before, so you put your name in the hat, figuring this project will be no different.
You win the contract! Turns out, you’re not able to pick up machine learning as quickly as you hoped. You end up going way past your estimated completion date. To add insult to injury, you’re not even able to complete the project yourself. You’re forced to hire a contractor with machine learning expertise to come in and clean up after you.
This eats up all of your profits and reduces your earnings per hour on the project way below your minimum hourly rate. Turns out, you bit off way more than you could chew, and now the only one to take the blame and the losses is you. Your reputation as a freelancer may suffer as well because you missed a deadline.
You may be used to someone else taking responsibility when activities fail to achieve their desired outcomes, and that may make it hard to stomach your own losses. You’ll have to find the strength to come out the other side with both your self-esteem intact and some lessons to take forward.
Pro: Setting Your Own Schedule
You’re a night person. You know that you do your best work between 8pm and midnight. Unfortunately, the rest of the engineering team works 9-5, so you will too. It doesn’t matter that you’re massively less productive during that time, because they really need you there for the daily stand-up.
Freelancers work when it makes sense for them, and they stop when there’s something more important to do. It’s still critical to pay attention to the needs of your client, but you don’t have anyone watching over you, making sure you’re doing the same thing as everyone else. You have a lot more leeway to fill out your days in a way that produces the best outcomes in both your personal and professional life.
Con: Scheduling Too Much or Too Little Work
Balance is really tricky here. If you enjoy your work, you’re likely to keep finding more of it and work yourself into burnout. On the other hand, if you have a lot of things going on in your personal life, you’ll probably find yourself neglecting work, which means less billable time and smaller paychecks.
My approach to this has been to get up at the same time every day and get dressed just as though I’m going in to work. This lets my brain know that I’m working today! If I lie around in bed until 10am and then go grab my laptop and pull it into bed with me, I’m not going to get much done.
I also try to stop working at the same time each day. My day has a natural inflection point when school lets out. I put down my work and go pick my daughter up. I try really hard to stop working at that time, and devote the rest of my evening to my family (although, I admit, it doesn’t always work out).
My best strategy to quit on time is to fully focus while I’m working. If I divide my attention during work time, it feels like I didn’t get anything done. That makes me feel guilty for stopping work … so sometimes I don’t. Even so, finding the balance as my own boss is difficult, and I’m nowhere near mastering it.
Pro: Getting to Choose Your Work
If you work for a studio, you get assignments. You’re going to do the work that needs to be done to satisfy the contracts the studio has won. If you have one-to-one alignment with them philosophically and they take on work that plays to your strengths, this isn’t a problem. What happens, though, when they work with a client you’re not comfortable with, whoever that might be?
Maybe you’d say you’re just working for a paycheck, and there are no clients you’d object to working with. That’s fine. Even so, what if you end up doing work with technology you don’t enjoy?
You’ve recently discovered Vue, but your studio just signed a big money contract to work on an Angular app. You’re going to be stuck writing Angular for the next six months, and unless you want to carve out some of your free time, your newly developed Vue skills are probably going to atrophy in the meantime.
In your freelancing practice, you’ll choose who you want to work with. If you don’t want to work with certain companies or certain industries, that’s your call. If you’re in love with Vue now, position yourself as the Vue expert, finish up the projects you have going, and take only Vue projects from here on out. It’s your call.
Con: Keeping the Pipeline Full
On the other hand, just like the studio, you’ve got to make payroll … and the salary you’re paying is your own. If you have a couple of bad months, you might find yourself posting on Craigslist, taking all comers, and relaxing your standards much more than your studio might have. Whereas you had no choice who you were working with before, you may now find yourself choosing between a client you don’t especially like and eating ramen for the next month. Yes, the choice is yours, but it’s not a good one.
If you want to have only the contracts that are the best fit for you, you’ll have to find a rich vein of them you can tap to keep them coming. Otherwise, you’ll gain nothing by going freelance other than a healthy respect for the people at your previous employer who were responsible for keeping the pipelines and payroll accounts full.
The Upshot: You Get to Do Everything (and You Have to Do Everything)
The cost of going freelance as a developer is high. It’s not for everyone. The downsides I’ve mentioned in this post may be enough to give you pause if you’re used to sitting behind a desk and having work assigned to you. This is nowhere near an exhaustive list of the various new responsibilities you’ll find yourself with after you make the jump.
Each downside, though, is a natural consequence of a compelling upside. Sure, you’re going to have to own your decisions, but the only way around that is not making any. Yes, you’ll have to struggle with work/life balance, but you can only avoid that by having your schedule determined for you (and sometimes you can’t avoid it even then). You may need to be selling yourself all the time to keep food on the table, but the alternative is to cede the ability to choose your clients to someone else.
The overall reward, though, is hard to put a price on: freedom, autonomy, agency … the marks of adulthood which, sadly, most of us never get to purely experience. Autonomy is also the primary contributor to happiness.
When I first became a successful freelancer, it was empowering. It felt like I had finally taken charge of my own future. The gratification of building your own career from nothing, in whatever way you choose, is hard to describe.
The freelance life, for all its flaws, allows you to not only do the work you want to do but also to design the life you want to live. Now that you have a clearer understanding of the costs and the benefits, I’m confident you’ll find the freelance lifestyle worth it.