Drawbacks of Freelance Web Development

I’ve been a web developer since 2004, which thinking about it is almost 10 years—quite a long time.

During this time I went through different phases: from being excited about starting up my own business, to learning how to deal with clients, how to charge the right price, how to find new projects, etc.

I also went through different levels of happiness. Generally I stayed on the happy side—but it wasn’t before many years of doing this that I realized about the perils of freelance web development/consulting, and that this job slowly made me more frustrated than happy, and most importantly that it had little by little been eating away my passion…

Freelance vs. employment—advantages of freelance web develpment

Italy (where I’m currently based in) is one of the worst in Europe for salaries and buying power. Renting an apartment can take as much as 80% of your salary (yep, that’s why many people live with their parents at 30 years old here). One way to survive is to open a small business, which of course can bankrupt you but also allow you to live a pretty good life if it’s successful. I don’t remember if this was one of the reasons that made me decide to do freelancing instead of looking for an employer—I’d say probably yes—but regardless, in my opinion freelancing does have many advantages over employment.

You can make more money

First, you can potentially make more money. If that’s not the case, at least you’re in control of how much you charge: following the rules of supply and demand, if you get good at what you do you can literally charge whatever you want. I remember looking at Thomas Fuchs’ hourly rate when I started: currently $800/hr with very limited availability. Of course, I didn’t get even remotely as good as he is, but it was a good motivator :-). In addition, if you win an award, release some awesome software or similar, you can increase your rate exponentially—and most importantly overnight.

On the contrary, usually employment pays less (at least here), and it can take years or decades to earn much more than what they started you with—if it ever happens and if you can keep your job.

It’s not as repetitive

Of course I’m generalizing here, but if you’re employed it’s very possible that you get hired to build some huge application or software suite, and chances are you’ll work on that project for a good while, if not the whole time. If you’re hired as a—let’s say—PHP programmer, in addition, very rarely might you be able to abandon the technology and start programming in Ruby.

Being a freelancer, you work on different projects all the time. I usually work on 2-months projects, and then offer support. I do a lot of custom web applications and sometimes websites as well, and jobs are always pretty different, either in what needs to be done, or at least the industry. In addition, I started doing layouts in HTML and CSS, and after a while I totally abandoned that, taught myself PHP, and I now mostly program web apps in PHP/MySQL, of course with lots of Javascript which I also taught myself in my very limited spare time.

You can fire your boss(es)

In pyramid schemes infomercials they always claim that you can become your own boss. While I don’t believe this is the case with freelancing—more about this below—I do think that at least you can fire your boss.

The way I see it, if you are a freelancer your clients become your bosses: they have the power to try to make you do what they want, fire you, pay you less or pay you more, etc. etc. The advantage over employment is that if you are fed up with one or more of them you can get rid of them (e.g. find another client). Of course, I’d rather work out a compromise—I’m not saying you should leave a project half way or break a contract (actually I don’t think I’ve ever done it)—but it’s always nice to know that it’s an option you have, and that it wouldn’t cause any terrible consequence in most cases.

Disadvantages of freelance web development

After a few years of excitement, some disadvantages of being a freelancerbecame very apparent to me. Some of them can be fixed, while some of them come with the job.

It’s not true that you’re your own boss

When you don’t have somebody tell you what to do, it’s empowering. The problem is, you think that as a freelancer you won’t have a boss and you’ll be able to do what you want, but in reality each one of your client tells you what to do and acts and feels exactly like a boss (at least for the duration of the project). So, you just end up having 10 bosses you have to deal with at the same time, and in many cases they can also disrupt your work.

You are a business (even if you don’t know it)

While it may not be true that you are your own boss, you are certainly an actual business, with all the good and bad that comes with it.

That means that you have to charge an appropriate amount, and ask people for money (and making the switch between consumer and supplier is hard at the beginning), find enough clients to pay your bills, file taxes, pay for equipment, make sure people pay on time (a rare thing in Italy), and all other nice things businesses do.

All this might seem easy, but you have to think that you have to do all thaton top of the actual work. As you might be working long hours—specially at the beginning—doing everything can get overwhelming.

You work all the time

With this, I don’t mean that you work 14 hours a day. You certainly will work 14 hours a day, but that’s more than acceptable. What I mean is that you never take a break from work. For some reason you’re expected to be on call all day long, and this can be a real strain on your personal life.

Clients would call me at the weirdest times ever: on Sundays at 10:00 PM, holidays (including Christmas Eve once), day and night. It’s never an inconvenient time to call because your forgot the password I sent you the day before via email and is still sitting in your inbox, after 2-3 new emails.

If you’re off at 5/6 PM and want to relax, or if you’re at a party, people can still talk to you about work or a project, and you might even be interested, so you talk about it for 4 hours instead of enjoying yourself.

Most importantly, you think about it all the time. Whether it’s going well or badly, you think about it, and taking a break from it all is hard.

Of course, during the years I learned to worry less (I used to worry way too much—certainly more than I should have—and more than my clients themselves), but there is no comparison with getting off work at 5 PM and leaving your job at the office.

No security

When you are employed, you still get paid if you get sick. You have paid vacation, paid health insurance (for folks in the States), etc.

When you’re a freelancer you don’t get all that.

If you have a fever you can’t just call in sick and stay in bed. If you want to go on vacation you have to plan for that, you still have to give support in case of problems or catastrophes (which always happen during the weekend and when you’re on vacation), and you have to save money for it in advance.

When you’re employed all that is taken care of in most cases, which is definitely awesome.

Freelancing isn’t scalable

I realized this after a few years, when I became more concerned about money and got more clients.

As a freelance web developer or consultant, it’s really hard to scale your business.

You can work 8, 10, 14 hours a day, but if you want a life and avoid collapsing from lack of sleep the amount of hours you can work—and therefore what you can bill your clients—are limited.

Of course you could hire help, but from my experience people come to you because they want you, and they’ll still want to talk to you and in general follow the project more than you’d need or want to.

This means that being successful can get you really stressed, and that the amount your business can grow is limited. When this comes after years and years of hard work, it’s frustrating to say the least.

Finding Clients

Let’s not forget this one: while if you are good or considered good clients will come to you after a few years, if you’re employed you go to work and—unless or until they fire you—your job is there waiting for you. Being a freelancer,besides doing to work you also have to find it. While for software things are better off than other professions, it can be hard finding new clients, especially if you live in a highly competitive city.

Doing your own thing and getting in control of your own destiny

So, after 10 years I realized that I was spending less time having fun developing, and more on clients and running the business, and most importantly that that was progressively eating away all the passion that I have for software and web development.

In particular, during the past 2 years I’ve been thinking about that a lot, and slowly realized that I wasn’t going anywhere long term.

So, I took the obvious decision: to fire all my clients and to start working on my own thing.

Projects vs. client work: put projects and clients at the same level

It happened gradually at the beginning, but I really made a conscious effort to wrap up all client work and work on my projects more, especiallySnaplive, my open source web editor project.

Working on my spare time on projects didn’t really work, as I really didn’t have any spare time. So, I forced myself to put projects and clients at the same level. In my to-do list you’d see Snaplive between client A and client B, and that made me deal with Snaplive in exactly the same way as with client projects.

Given the appropriate attention, the project became something major enough to push me to just go for it, and in January of this year I basically dropped all my clients but a few big ones (although I kept providing support to all of them) and started working on it part-time.

I’m firmly convinced that side projects don’t work. I had some projects going for years that I’d work whenever I had a chance, but the truth is that if you don’t start putting your client work and your own projects at the same level your projects will never get anywhere. At least for me, I would do client work and then be exhausted and either don’t do anything or do really sloppy work, or even worse I’d end up working on them during the weekend. Now I’m giving Snaplive the attention it deserves.

Freedom rocks

Now that I literally have only 2 clients—and losing more every day :-P—I truly feel free.

I’m totally in control of my own destiny, for better or worse.

If I want to give my software away for free (which I am), I’ll do it. If I want to use it to power a software as a service business (which I am, too) I can, and sell it to 10 people or 1,000 and it’s 100% my decision.

I’m very happy with my decision so far, and for now even surprised at how well it’s going.

I guess only time will tell, I might write a “The downfalls of being in control of your own destiny and how to get your first 1,000 clients” in a year from now.

But let’s hope not.


NewsletterHot content in your inbox!

Get an email next time an article is published.