How to earn more as a freelancer

I've recently read a study done by WPEngine on how much WordPress developers in US earn and I was unpleasantly surprised. Most of them make less than $30 per hour, which is, compared to developers in other industries, an insult, if I put it mildly. And even if we compare developers within the WordPress ecosystem, we find huge disparities in income, since some make well over $125 per hour or even more.

So why is it that some WordPress developers easily earn four times as much as others, while working a considerable amount of time less? Short answer? Because they're good at the business side of things. Development means nothing if you can’t sell it.

So here’s a few tips that will hopefully inspire you to re-think your approach to both business and development and, in turn, help you earn more.

Charge more!

I know what you might be thinking right now: "Well thank you mister obvious", but that doesn't make it any less valid. Your day has the same amount of hours as anyone else’s so to make more money with what you have at your disposal, you have to start charging more for your work.

There is a huge fear among developers that if they do that, clients won't hire them anymore, and this fear is completely subjective and has no basis in real life. Quite on the contrary. Developers are in high demand (and it's only going to go up for the foreseeable future!), so there are always clients out there, looking for work to be done on their projects.

If there are developers that make $200/hour doing the same thing you are, then it can be done! So how can you get closer to that number? First, you have to know the difference between price and value, which I’ll illustrate with the following (simplified) example:

Your client, which has a WooCommerce-powered website calls you that their website is down. You immediately investigate and find an issue, which takes you 15 minutes to fix. Now assuming they sell $10.000 worth of products each day with 20% margin, this means they lose $2000 in profits for each day that their site is offline. So how much do you think your work was worth to the client? Five dollars? Nope. Do you think the client will say no even if you charge them $100 for those 15 minutes? Or even $200? I don’t think so.

It's all about the cover letter

I learned this trick back in the days when I was still freelancing through Elance. I drastically increased my chances of winning a project, not by racing to the bottom (a technique where all the applicants lower their prices hoping they'll win the project), but by providing an awesome cover letter to my prospective client. I would investigate who they are, what they do, where they are from and what kind of problems their business is solving in general.

This would allow me to get really them and then write the cover letter in a manner they would feel we're on the same cultural level.

Furthermore, I'd analyze the brief in great detail, and suggest a couple of approaches with outlined pros and cons of each approach. This assured them I was the expert in a particular domain and increased the confidence in hiring me significantly.

The effect this approach had? I could easily be the most expensive applicant (even twice as expensive as the second one) and still win the job, because for the client, it was not about the money (you’d be surprised how little it often even matters), it was about getting their problems solved by a professional, in a timely manner.

Help the client with a detailed brief

If there’s one single advice I got in life regarding work that I'd recommend to my fellow developers is that good preparation is half the work done. And this holds especially true for software development – and you know it. How many times did it happen to all of us that – after the work has been done – client got back to us, saying "this is not what I asked for".

The brief (which can be part of the contract or a separate document) should not only include all the required work in great detail but also the work that will not be included, since your clients are usually not as technical as you are so they expect the difference between features are just a couple of clicks (more on this at a later point).

The more you get into details at this stage, the better. And since you’re already spending time for the client, charge for this step as well – remember you had to do your homework and, at least, some initial research (not to mention have a lot of experience) which means you are already providing value to your customer, even if you haven’t written a single line of code yet!

Again, don’t sell time – sell value!

When estimating, add buffer

Even with all the preparation in the world, no project has ever been defined 100%, so always add an additional buffer to your estimate (sometimes as much as 30%!). The more an experienced developer you are, the easier it gets to estimate properly, so the buffer gets constantly smaller, and that's okay – the chances are that you’re also charging more at that point. If you’re not, read the first point again.

My mate Chris Lema also has a very solid advice on how to estimate better, and he explains it in this YouTube video.

Be responsive and communicate

We see this at Codeable on a daily basis. A project goes haywire, not because of technical issues or lack of developer’s knowledge, but because the client keeps asking for updates to no avail. Sometimes they get frustrated to a point we have to refund the whole project (and sometimes kick the responsible developer out) because they get afraid they are being scammed. They don’t know the developer personally, after all.

We, developers, tend to get a bit arrogant with our supreme understanding of how computers work, so we think that updating clients on a regular basis is just a waste of time; they won't understand what we’re doing in any case.

But that’s not the point. No one likes to be kept in the dark, especially if their money is at stake, so update the client as frequently as necessary. In some of our most productive projects, clients and developers talk on a daily basis – preferably at the same time – and go through the key daily activities and expectations.

Avoid the undermining words (like "just", "easy" and "only")

This one happened to me more times that I care to admit. And it was me who said it. "I'll just make a few modifications, and it'll be done." The problem with these words is that somehow they make it sound your work is easy which makes you and your client appreciate your work less. Don't do that.

You have to realize you’re an expert in a particular domain (and you're damn good at it!), and if you check this survey by Stack Overflow, most of us, developers, are self-taught, which means it took us years of learning and perseverance to get where we are.

The main cause of this behavior is also the fact that we love what we do so we often like to say our work is also our hobby. But it's not! You spend money on hobbies, and you make money with work. It's okay to love your work, but doing it for free (or too cheap) hurts you on a personal level and the industry as a whole.

The bottom line is, even if it really takes just two clicks, you've spent hours, days or even weeks to learn where and when to make those two clicks to get the needed results (which was an >opportunistic cost at the time).

Upsell

If you follow the tips from above, this one should become pretty obvious, or more importantly, easy. No work in software development is truly done; there's always maintenance work to be done, such as updates and service level agreements (SLA).

This is also one of the aspects that are greatly emphasized in the startup world, but something no one talks about when approaching the usual, brick and mortar businesses: It is always cheaper to get more money from existing clients than to get new ones.

One reason for that is that you already have an existing business relationship with the client, and with it, a certain degree of trust. And trust is everything in business, because businesses are people – a thing many of us tend to forget since we're interacting with computers more than actual people on a daily basis. And it's so easy to hide behind a computer.

Get help

Again, one of the mistakes I've done in the past, thinking if I try to do all the work, I'd end up with more money, as opposed to hiring subcontractors to do parts of the project for me.

I wish I realized how big this mistake was sooner actually. Sharing piece of your pie with others has plenty of benefits:

You expand your network

You expand the knowledge and services you can offer

You get to socialize more

Others get to know your expertise and share their work with you

**You get to focus on what you're best at**

Look outside your community

Another thing many developers do is look for work where they live. While certainly a viable option if you live in a densely populated areas with many businesses, this plan falls flat in rural, less developed areas. It's also that statistically, the income in these areas is lower which means businesses operate with smaller margins and can only afford lower prices.

Luckily, WordPress is a web publishing platform. And that very web spans all across our globe, so really there's no reason for you not to look for work online.

And finding work online has never been easier. There's Codeable, IRC, Facebook groups, Slack, you name it. Follow threads, participate in conversations and you'll soon find some other members seeking for help that you can provide.

Become visible to the world – expose yourself.

Contribute to Open Source

You know the saying what goes around, comes around? In the Open Source community, this phenomena is also called karma. The more you contribute, the bigger it gets, the more people know you (recognition), all coming down to the most desired result: You get to become an authority.

Once you're an authority, you don't even need to look for work – it finds you. And with any position of power, you get to choose what you want to work on, and for what price.

Learn other tools

As much as we all love it, WordPress is not end all, be all. It's a tool, a means to an end (that end being able to publish content online). With the recent rising popularity of the REST API, we see an increasing demand for developers with extensive JavaScript/Node.js knowledge since that’s how web apps mostly communicate with API endpoints.

And if you look at the StackOverflow survey again, JavaScript developers are paid as much as 30% more than PHP devs. Not an insignificant difference!

In my book what separates good developers from great ones is the ability to write unit tests (and a habit of doing so). Why? Because unit tests add as much as 100% of additional development time. In the beginning, it’s hard to reason this with a client, but in truth, it should become the norm (just like responsive design is becoming) – it saves the client a lot of headaches in the future. If done right, of course.

Good advices! A pity that there are customers who do not understand the difference between the value of work and time worked. “The task not only Took 15min , it took 15min and years of study to know how to resolve it” :D

These are all great business points. They apply to good developers. First you have to be good on the code side. And then you have to have very good communication skills. And finally you need to have an aptitude for business and take the time to learn negotiation.

Most importantly your product – you – has to be good. Business skills before coding skills is a deadly cocktail.

Great article, I’ve already been a freelancer and would like to share a little bit of how I was organizing at the time!

Being your own boss has your challenges there, but it’s just organizing the money and the routine that everything gets easier. The goal of more freedom will only come to fruition if you plan to make the financial instability typical of a freelance career impact your life negatively.

>> Prepare the change of life

Make the transition from employee to freelancer life in the least radical way possible, as you do not know exactly what your income will be.

>> Calculate your income in a new way

The freelance life can be a seesaw. In a few months you can accumulate multiple projects and earn a lot, but in others you may run the risk of having fewer jobs than you would like. Therefore, it is safer to set a goal of how much you need to earn per year, not per month

>> Learn how much your working hour costs

Pricing your time is indispensable. To find out how much your working hour costs, look at your competitors and your audience. “Feel how much your customer is willing to pay.” If time is short or delivery time is too tight, increase the price.

>> Pay a salary for yourself

To work for yourself, you will have expenses you did not have before, such as the telephone bill, travel costs, and taxes that were previously deducted from the salary. Add all these expenses and exclude them from your net sales.

>> Prepare a work environment

You do not want the phone or the bell of your home to hinder the workflow, but at the same time you want to be able to go out to pick up your kids at school or go to the gym in the middle of the afternoon? To balance productivity with flexibility, set daily goals. For example, meet 50% of the tasks until lunch time to be able to go out and have coffee.

I have a potential client who tried the following: ‘Yes I was talking to my partner and we definitely feel like you are a great option, but 3000 dollars is a little out of our range’

Then my question was: Whats your budget range? He said: ‘We weren’t looking to spend over 1000 on the site.. we have guys in that range but not as qualified.. is there anyway you could get it done in less than 60 hours?’

My answer was: Well it was estimation. Let’s do 50 hours.

He replied: ‘Ok so I just talked to my partner and I tried to convince him. He is stuck on the 1000 figure. Is there anyway you could cut it to that? I know it’s a big ask but we will continue to do business with you if everything goes as planned and changes are needed’