From the desk of a brilliant weirdo #1:
Thanks for deciding to take a look at this article. I genuinely hope you enjoy it.
In summary, here’s what you’re going to learn in this article about freelance programming:
- The only question that keeps freelancers awake at night.
- The best way for getting freelance clients within a month (it doesn’t work if you don’t have balls though).
- Can you find freelance work on Hacker News?
- A mischievous way for raising your rates (I don’t recommend it though)
- How much can you make as a freelance developer?
- The best freelance websites for landing clients fast.
- Why are most people wrong about UpWork?
- And more…
Without further ado:
How to approach freelance programming?
As an entry-level freelance developer, you can take two general approaches to freelance.
Here’s the first one: If your savings are draining out and your back is against the ropes, you won’t be able to weed out bad clients and charge high fees. Initially, you’ll need to take on any client you stumble upon to make ends meet.
Some freelance programmers believe that taking on bad clients first is better as it allows you to differentiate great clients from terrible clients further down the line.
And here’s the second one: If you’re working in a well-paid 9-to-5, you can negotiate higher freelance rates because you won’t be too hard up; thus, you’ll avoid the stress that stems from bad clients.
With that said…
How do you find freelance clients?
It’s the only question that keeps so many freelance programmers awake at night.
Truthfully, there isn’t a magic method for finding clients. There are many, and all of them work. You just gotta find the one that works best for you.
But don’t worry, I won’t leave you empty-handed.
Let’s take at some of the most effective methods for finding clients:
As a freelancer, you can get overwhelmed by work by…
Signing a contract with an agency.
Even though agencies keep a percentage of your earnings, they’ll keep you busy with tons of work, so you don’t have to stress about finding clients yourself. Agencies can be great for improving your skills.
How do you find an agency?
Google it up. See if they’re hiring any freelance programmers, and apply. You can also directly reach out to them via cold email (more of that below).
Another effective method of growing your freelance programming career and finding clients is, of course, word-of-mouth.
It’s considered the best way for landing great clients by many freelancers. They have a point.
Regardless of how great your website looks, or how much experience you have, nothing builds more authority than other people recommending your services.
In order to grow your network and get word-of-mouth business, you need to join communities where your potential clients hang out.
Such communities may be local meetings, online conferences, Facebook groups, Slack communities, forums, subreddits. Think where your potential customers may be and go there.
Build relationships with other freelance coders. If someone has tons of work, maybe he can hand some work over to you in exchange for a small % of what you make.
But at the end of the day, your results speak for themselves.
Something important to remember: never be anonymous.
When you are marketing yourself through guest blog posts, make sure people know who you are and how they can get in touch with you. It’s a huge deal breaker.
The next method for finding clients is…
Google + LinkedIn
You can Google up web agencies in your city and reach out to them.
Another great way for connecting with tech managers, VPs of Engineering, CTOs, etc. is LinkedIn.
LinkedIn’s Sales Navigator, in my opinion, is the perfect prospecting tool. It costs around $70/mo, but it’s worth it. You can narrow down your search, and pick only quality leads that would potentially want to do business with you.
Once they accept your friend request, you gotta reach out… and this is where it gets interesting…
Growing your freelance programming career with cold email
Most freelancers talk about building a strong network of other freelancers and clients, and thus getting lots of word-of-mouth business. While this can be very effective in the long-term, most freelancers want to land clients ASAP.
And what do you do if you have no one in your bubble to bootstrap your freelance programming career?
Well, you start reaching out to businesses. Tedious, but if done right, very effective. And you can get results in less than a month.
Now, there are a lot of mediums you can use to reach out to businesses. LinkedIn is booming right now.
The other one is cold email, and I’ll be focusing on that one specifically (though both outreach methods, LinkedIn and cold email, can be quite similar).
A lot of people think cold email doesn’t work. I call that BS. They are simply doing it wrong. Before becoming a Marketing Manager at Codegiant, I got some of my biggest and most pleasurable-to-work-with freelance clients by sending unsolicited messages via email.
Someone has to take the first step, and guess what, it won’t be your client; it has to be you.
So far, if you’ve been reading only goofy articles on Google about cold email… well, I’m sorry to burst your bubble, but you’ve been wasting your time.
But hey, I don’t blame you. That’s fine. Everyone starts from somewhere. I used to do that too.
With time though, I became more experienced, and met some great marketers who taught me the secrets of cold email. (Shout out to Jon Buchan.)
Now, with cold emails, there are a couple of key points to remember.
First, you always gotta stand out from the crowd. Your cold emails should look completely different to what other people are sending.
The typical cold email goes along the lines of…
I saw you’re searching for [job position].
I’m [your name] and specialize in X,Y, and Z.
I’m looking for a job and would love the opportunity to work for you.
When do I get started?
This email is… boring, templated,maybe even automated, and intrusive.
Your job here isn’t to sell them that they need to hire you right now.
No, your job is to sell them that a call or a brief chat with you isn’t a bad idea.
Let’s get down to brass tacks.
Here’s the 7-step framework for making the most out of your cold emails:
It’s the best way for getting clients fast, within a month.
- Greet unusually. Don’t just say “Hey” or “Hi.” Everybody does that. You need to stand out. Try “Greetings” or “Salutations.”
- Make yourself the butt of the joke. Include slight humour at the beginning of your email. You need to put a smile on the reader’s face so he doesn’t perceive your email as an unsolicited, intrusive, and sales-y message. Making readers smile or laugh will increase your chances of getting a reply. For example, you can try, “I wanted to introduce myself as someone who seems interesting, clever, and witty, alas, I wrote this message instead.”
- The next step is simple. Tell who you are and what you do. Be as specific as possible but don’t get too sophisticated. Remember, brevity is a by-product of vigor. “I’ve been a React developer for 5 years and have worked with X,Y, and Z companies. Here are some of the projects I’ve done…”
- Say that you’d love to have a call (or a meeting) with them. The trick here is that you need to move their attention away from the call being “sales-y.” To do that, we use humour. You can say “If you are interested in what I have to offer, I’d love to chat with you. If you agree, I promise to buy you a coffee, lunch, or tequila shots. If you’re lucky, I might even tell you the lamest joke I know.”
- Conclude your thoughts with a formal, but unusual, phrase. Instead of just saying “I await your response,” you can say “I await your profanity filled response.”
- Sing off creatively. Don’t just say “Cheers” or “Have a great day.” Say something more colorful and full of vigor; “Have an absolutely splendid day.”
- Include a P.S. Tell something completely absurd and unrelated to the topic. It relieves all the tension from your reader. For example, you can put a picture of your dog and say “Below, you’ll find a picture of my dog. His name is Jonny and he says “Hi.” I hope it puts a smile on your face.”
If you follow these 7 steps, I guarantee you that you’ll have much more success with cold email than you have ever had before.
And before commenting that this framework doesn’t work on managers, CTOs, CEOs, and other C level figures without sending out even one email, ask yourself the following question…
Do people lose their humanity and sense of humour when they become CEOs?
No, they don’t.
So, with that in mind, don’t be afraid to send cold emails.
I love getting cold emails that are worth reading. What I hate is getting templated emails that everyone is using.
And remember, cold emailing is a numbers game.
You can also find freelance programming jobs on Hacker News.
In a lot of Hacker News’ freelance-related threads, you’ll find managers posting jobs, searching for freelancers.
Here’s what the typical what “hiring” comment looks like:
Searching for a full-stack developer.
We’re an X startup based in Y.
We’re looking for a freelance programmer with Z years of experience. Someone who can work with APIs, implement UI, set up server infrastructure and architecture design.
Ideally, this person will be familiar with HTML5, CSS3, Python, Django/Flask, Java/NodeJS, React, etc.
Candidates please email me at email@example.com.
You can also find computer programming job posts on Reddit, specifically the /forhire subreddit.
And, of course, let’s not forget…
The best freelance websites
Toptal seems to be the go-to freelance website for many developers. It offers some of the best freelance, part-time coding jobs.
You can choose your own rate and go as high as you like. Keep in mind that the higher your rate is, the more difficult it’ll be for you to land a client.
The downside of Toptal, however, is that they accept only 3% of the freelancers that apply for their platform.
But, don’t let that discourage you if you’re just starting. Apply for their interview process, see how it goes, and take notes on what you need to improve.
As your freelance programming career grows, and you decide to found an agency, you can start hiring other programmers using top freelance sites such as Toptal.
Gigster is another great platform for finding freelance programming projects, be it remote or on-site coding jobs.
Another option is UpWork. It’s perhaps the most popular free freelance platform.
And as much as it is disliked, it’s still one of the best places for finding entry-level basic programming jobs online.
You can start making money on UpWork coding pretty much within a month as a beginner programmer, from the comfort of your home.
This freelance platform is indeed inhabited mainly by cheap clients, but UpWork also gives home to great clients. I’d say that 1 out of every 10 people you chat with is a good client.
If you’re sending up to 3,4 proposals every day, and have 15–20% response rate, you’ll be getting a response from a good client every other day or two.
So don’t completely cross-check UpWork from the list; it’s a great freelance platform for finding beginner computer programming jobs. Even as a student without a degree, you can land some freelance programming gigs on UpWork while working on side projects; thus, grow your programming skills and get more experience.
As far as security is concerned, UpWork is considered safe as long as you abide by the contract rules.
Here are more freelance online job boards:
- We Work Remotely
- Authentic Jobs
- Working Nomads
All in all, freelance websites are great if you’re a beginner, and want fast and quick projects to build out your freelance programming resume. Follow the 7-step framework described above, you’ll get programming jobs much faster than you’ve expected.
Know your standards
As an experienced developer, search for clients who can afford you; don’t waste your team on cheap clients. They’re toxic, unreasonable, and stressful to deal with.
Here are some tips to go by when searching for clients:
- Rarely pick fresh startups with less than 10 people unless you are passionate about the project. That’s because they might not have the funds to afford you, if your rates are high.
- Pick someone who is already making money via their website.
- Don’t pick too large organizations so you can have direct contact with the owner or a C-level executive; a 50-person company seems to be the sweet spot.
- Pick someone who has some understanding of programming and values your skills.
If possible, find out if clients have worked with other freelance software developers previously, and ask how it went.
If they say money isn’t a problem, that’s a red flag. Not always, but quite often.
Okay, let’s talk about your rates now.
Freelance Programming Rates
There’s a rule of thumb that as a consultant or a freelancer, you should always charge more per hour than you’d be getting if you had a 9-to-5 coding job.
The reason for that is simple.
In a normal job, you work 8 hours a day and are paid, for example, $30/hr.
Not all of these 8 hours are spent on work though. You take breaks, go to lunch, chat with colleagues, drink coffee, etc. Realistically, you’re working about 5–6 hours a day. But, you get paid for the total amount of 8 hours.
Freelancers get paid only when they are doing ACTUAL work.
That’s why you need to charge more.
Also, if someone is hiring you quick projects, you may raise your fees even more.
If someone is looking for a long-term relationship, however, you should be willing to make discounts as this client will keep you busy with work for months; thus, you won’t have to worry about finding new clients. A sign of goodwill.
As a freelancer, you’re also doing a lot of stuff you aren’t getting paid for. Things like searching for clients, marketing yourself through blog posts, networking, etc. You need to keep this stuff in mind when negotiating your rates.
If you aren’t happy with your current rates, you can do a couple of things:
- Double your rates right off the bat.
- If you aren’t confident in doubling your rates, do it anyway.
- If you feel you would be ripping off clients by doubling your rates, and think you don’t have the necessary skills to back up your high fees, then work on honing your skills.
There’s really no magic trick to raising your rates; you either do it, or you don’t.
Higher rates, however, imply that the work you do is of high-quality which can, quite often, imbue your image with authority; hence, attract clients who are willing to pay a lot in order to get a quality service.
You can also use a different…
Wicked method for increasing your rates significantly
A mischievous method that can cause harm to your reputation in the long run though. It works best when you’re just starting out, but use it at your own risk.
To put this evil method into practice, you’ll need to use UpWork or, I guess, any other freelance platform.
The reason why Upwork works great for increasing your rates, especially when you are a beginner, is because the vast majority of UpWork clients don’t care about building a relationship with you (at least that was my experience), which allows you to be sort of arrogant and greedy.
Hark unto me.
The key is that you should never stop searching for clients on UpWork; send proposals every day. Once you find clients that are willing to pay a lot, simply put them in the place of your current clients. And thus, you’ve wickedly but successfully increased your rates.
Keep in mind that I don’t recommend this method. Even though you might make more money in the short term, your reputation will be damaged in the long run as you’re basically cutting out clients that rely on you to get their job done.
Speaking of making more money…
How much can you make as a freelance developer?
Many web developers start at $30 — $40/hr and can go as high as $200/hr and even more. It really depends on your skills, confidence, and more importantly, the clients you’re negotiating with.
For example, experienced AI and ML engineers can take up to $250/hr for relatively short and simple programming projects. For longer projects, you can still charge 3 figures easily when you have the skills and experience.
According to Bonsai — freelance rate explorer — the majority of full-stack freelance software developers with 5–10 years of experience from the US makes from $140 to $160/hr.
We can pretty much say the same for front-end freelance developers and back-end developers.
The majority of freelance DevOps engineers with 5–10 years of experience, however, makes from $120 to $140/hr.
Entry-level iOS freelance engineers can make somewhere from $60 to $100/hr, whereas experienced developers make between $120 and $160/hr.
And finally, the majority of Android freelance developers with 5–10 years of experience makes from $80 to $140/hr.
As you can see, if you live in the US, a web developer’s salary can easily jump over to 6 figures a year. In Canada, for example, the freelance software developer salary is pretty much the same but the currency is CAD.
Charging per the hour isn’t the only solution though. Sometimes, fixed-price contracts can be more profitable.
Hourly or fixed-price contracts?
Many freelance programmers prefer hourly contracts over fixed-price contracts. I think there are pros and cons in both cases.
Hourly contracts are a safer choice. They are perfect for vague projects where you don’t know how long it will take you to complete them.
Fixed-price contracts, however, can be extremely profitable if you know what you’re doing and have done similar projects before.
The price you set up for a client’s project can convey into $1000/hr activity.
As a beginner, I’d recommend starting with hourly contracts.
Also, bill your clients regularly; don’t wait until the end of the project. Bill them every week or month.
So, if they aren’t consistent with your compensation, you can stop working on the project while your losses aren’t as high as they’d be if you had done the entire project.
What if you are new to freelance and programming?
Well, here are some of the most sought-after programming languages that will help you to land well-paid coding jobs.
On top of that, it’s not a hard language to learn, and it’ll give you a solid foundation if you’d like to specialize in other programming fields.
Java was created in 1995. Back then, Java was nothing more than a simpler solution compared to the other existing languages.
Initially, it was made to be a general type of language, portable to any environment.
Today, Java has inhabited many companies in various industries.
Java freelance developers are well paid, and can find java-related freelance jobs easily.
Python, on the other hand, is the fastest-growing programming language. On top of that, it’s easy to learn.
Python is mainly used in Data Science, along with Machine Learning and AI. With Python you can deploy small apps using Flask or Django.
Entry-level python developers can easily land a couple of starter projects on freelance sites like UpWork.
I hope you found some useful information on becoming a freelance software engineer, landing freelance clients, and growing your freelance programming career.
Remember, cold email works. It’s a numbers game. Use the 7-step framework I’ve described above, and you’ll see results, guaranteed!
Also, use the *wicked* method for raising your fees at your own risk. Personally, I don’t recommend it.
That said, I wish you nothing but success and happiness.
P.S. I decided to save the short Codegiant commercial for the last. The reason is simple.
I also hate it when I get irrelevant app commercials constantly throughout the article. I didn’t want to put you through such a terrible experience.
With that said, here goes…
If you are searching for a GitHub/GitLab alternative that offers a simply-designed issue tracker, git repositories, built-in CI/CD, and documentation tool, then feel free to check out Codegiant. That’s it. Enjoy!