Beginner’s Guide to Freelancing

Lucas Lima do Nascimento - Sep 10 - - Dev Community

1. Introduction

https://media2.giphy.com/media/7GkvffN8RiThRLXDSP/giphy.gif?cid=7941fdc6jkqpn6c7ctkh725p0echmou2ujrpnyazxcnow4h3&ep=v1_gifs_search&rid=giphy.gif&ct=g

Hello there!

If you’re reading this, I assume that: you’re beginning to freelance (or want to) or you’re just looking for some tips in the process itself. Currently, I’m sitting at 6+ years of freelancing, and the intent of this article is to try to guide you through the different learnings I gained throughout those years.

Honestly, I can’t complain about the things I gained throughout those years — I started mostly for the experience (but, I’m not gonna lie that the extra cash always felt great) and I ended up with a bunch of different learnings besides sole experience: From developing a bunch of different ideas to communicating better with customers and even learning things I didn’t had an opportunity to put in practice.

These for me, are the greatest selling points for freelancing.

2. Getting Started: Customers

Literally the description the average customer is going to give you about what they want

Literally the description the average customer is going to give you about what they want

First of all, we have to learn a little bit about customers. Here, we have 3 important topics to cover:

  • Finding and Securing
  • Negotiating
  • Legal stuff

Finding and Securing Clients

Let’s start by going over the first one: Finding and Securing Clients. This can actually be pretty hard — when I started freelancing I didn’t have a clue on where to actually find a customer, so, I started going into websites like Workana and Fiverr.

Did it work? No. Not only did I never get a client from those types of websites, but, to be honest with you here, that type of website always made me feel that the work I was doing creating software was cheap and disposable. To be fair, there are a bunch of developers out there who actually make money on this, so, maybe, it was only a misfortune on my end.

After that, I started to go through my friends to see if anyone knew someone who was looking for a developer, and in less than 2 days I had my first customer asking for a website, not a direct friend, but a friend of a friend. After finishing the work with this first client, he felt that the work was really good and spread the word — ever since I’ve never been without a freelance gig.

Here’s my first tip for you then: Don’t ignore mouth-to-mouth and organic reach. It’s tremendously powerful and can get you a long way! Ask your network and soon enough, people will start finding you. Don’t have a network? Start to build one (here’s a reference for you to start and you can try those websites while that isn’t ready).

A second tip? Don't necessarily accept your client's idea. They think they'd like an app, but maybe, the person would be better suited with a web application. You're the specialist, use your expertise (or reach out to others to better determine this) what is the best course here.

Negotiating

https://media0.giphy.com/media/xT1Ra159XCvq33VvqM/giphy.gif?cid=7941fdc621npdwvr7ffzgspmxdyjhnjgwtp4jvh0yr5zxc44&ep=v1_gifs_search&rid=giphy.gif&ct=g

It finally happened, you found a client and they want software from you! Congrats! Now we jump to the second part which is negotiating. This is a crucial skill for you to gain as a software engineer (if you’d like to learn more, you can find more content about communication here).

Every single deadline you’re going to have is impacted by the capacity of negotiation of yourself and the people above you, in a corporate world.

Usually, when you talk to a client, they want a budget idea from you as quickly as possible — and here’s where things go bad, software time is HARD to estimate, so, if you rush things out here, there are only two possible outcomes: you overbudget it, and the client won’t like it or you underbudget it and you’re going to work for free.

Besides budget, they also want to know dates and time ideas, because they don’t have a clue if their project is going to take a week or a year and the cycle repeats, only two possible outcomes, or you’re going to cut short, having to work way more than intended or you’re going to put too much time for the client to be comfortable with.

Your job here is one: simply calm the heck out of this other anxious person you’re dealing with. They want to know things, and they want to know them fast, you just have to remind them that this is an engineering process and you’ll have to make some refinements before coming to the budgets and dates with precision.

Sometimes, you’ll find some clients that are especially anxious about wanting to know things, here, if you have done some freelancing before, you can try to eyeball a range to make them more calm. If you’ve never made freelancing and you feel that this client is this edge case, ask someone with freelancing experience how much you should charge and they’ll help you out.

Legal Stuff

Here’s a good thing if your customer is acquainted with you in some manner: you’re probably not going to go deep into the legal stuff! But, honestly, at least some contractual idea is generally necessary — everyone is great at demanding stuff, but not everyone is great at paying for the stuff they demand. Haven’t made a contract and your money didn’t arrive? Well, that’s bad — at least you learned something. The funniest implementation of a solution to this problem in my opinion is this one:

kleampa/not-paid: Client did not pay? Add opacity to the body tag and decrease it every day until their site completely fades away (github.com).

It’s important for you to get some sense into your country's regulations for taxes and informal jobs like this too. You don’t have to dig deep initially, but just learn a little bit about how things work and which taxes if any you should pay for.

3. Project Management and Engineering

https://media1.giphy.com/media/gQm37vKLwkUVjOvVmp/giphy.gif?cid=7941fdc6f9hhprin3ago5fzqxpvkvbcaeooimygscgg2dxr6&ep=v1_gifs_search&rid=giphy.gif&ct=g

Now that we've covered the basics of finding clients and handling the business side of freelancing, let's dive into the core of what makes a successful freelance software engineer: effective project management and engineering practices. As a freelancer, you're not just responsible for writing code; you're also in charge of managing the entire project lifecycle. This includes several key aspects:

  • Understanding and defining project requirements
  • Creating accurate time and cost estimations
  • Breaking down projects into manageable tasks
  • Using project management tools and methodologies
  • Show the progress weekly or recurrently

Usually, while in university, we have a whole 6-month discipline to learn about software engineering processes and how to do precisely that. Don’t have 6 months? Here’s the small version:

  1. Divide the whole project into a set of major milestones
  2. Break those milestones into features to make those milestones possible
  3. Go deep into those features and learn what your client wants
  4. Try to estimate those features in hours/days of work
  5. If you have some experienced people nearby, ask them to make revisions in your estimations considering YOUR skill level

PLEASE, plan things out. A recent study found that projects that had requirements clear before development started were 97% more likely to succeed than those that didn’t.

Engineer Reference

After estimating the features, add some extra time for the chaos of the world, bugs, or revisions. This practice helps manage client expectations and ensures you have room to deliver high-quality work — this is the goal since this is what is going to propel your organic reach.

Remember: it's always better to under-promise and over-deliver. Not the other way around.

4. I made a tool to help: Founders Kit

Founders Kit

Throughout the years of freelancing, I tried a bunch of different tools to help me actually organize my process. It took a lot of trial and error only to realize that no tool perfectly fit my needs — in some cases, they were too complex, bringing tons of functionalities that I didn’t use, in others, they didn’t have some essential stuff.

The great part of this is that I’m an engineer! So, throughout the past month, I worked hard to create a solution to help manage the business side of this. It’s called Founders Kit and I’d love it if you could help us on Product Hunt and check it out ;D

5. Conclusion

https://media1.giphy.com/media/VFMIvNlKndpf2gO5Xp/giphy.gif?cid=7941fdc6susv7t2js3spr3lrn9qf558a61mp3y2v33loioim&ep=v1_gifs_search&rid=giphy.gif&ct=g

Hey! You made it to the end. I hope that you have started to realize how freelancing in software engineering can be a rewarding and challenging career path, which can earn you some extra money and grant you some really cool experiences.

By following the guidelines outlined in this guide - from finding and securing clients, to negotiating effectively, managing projects, and utilizing tools like Founders Kit - you'll be well-equipped to start your freelancing journey.

. . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player