search
HomeWeb Front-endJS TutorialBeginner's Guide to Freelancing

1. Introduction

Beginner’s Guide to Freelancing

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

Beginner’s Guide to Freelancing

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

Beginner’s Guide to Freelancing

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

Beginner’s Guide to Freelancing

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.

Beginner’s Guide to Freelancing

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

Beginner’s Guide to Freelancing

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

Beginner’s Guide to Freelancing

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.

The above is the detailed content of Beginner's Guide to Freelancing. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Java vs JavaScript: A Detailed Comparison for DevelopersJava vs JavaScript: A Detailed Comparison for DevelopersMay 16, 2025 am 12:01 AM

JavaandJavaScriptaredistinctlanguages:Javaisusedforenterpriseandmobileapps,whileJavaScriptisforinteractivewebpages.1)Javaiscompiled,staticallytyped,andrunsonJVM.2)JavaScriptisinterpreted,dynamicallytyped,andrunsinbrowsersorNode.js.3)JavausesOOPwithcl

Javascript Data Types : Is there any difference between Browser and NodeJs?Javascript Data Types : Is there any difference between Browser and NodeJs?May 14, 2025 am 12:15 AM

JavaScript core data types are consistent in browsers and Node.js, but are handled differently from the extra types. 1) The global object is window in the browser and global in Node.js. 2) Node.js' unique Buffer object, used to process binary data. 3) There are also differences in performance and time processing, and the code needs to be adjusted according to the environment.

JavaScript Comments: A Guide to Using // and /* */JavaScript Comments: A Guide to Using // and /* */May 13, 2025 pm 03:49 PM

JavaScriptusestwotypesofcomments:single-line(//)andmulti-line(//).1)Use//forquicknotesorsingle-lineexplanations.2)Use//forlongerexplanationsorcommentingoutblocksofcode.Commentsshouldexplainthe'why',notthe'what',andbeplacedabovetherelevantcodeforclari

Python vs. JavaScript: A Comparative Analysis for DevelopersPython vs. JavaScript: A Comparative Analysis for DevelopersMay 09, 2025 am 12:22 AM

The main difference between Python and JavaScript is the type system and application scenarios. 1. Python uses dynamic types, suitable for scientific computing and data analysis. 2. JavaScript adopts weak types and is widely used in front-end and full-stack development. The two have their own advantages in asynchronous programming and performance optimization, and should be decided according to project requirements when choosing.

Python vs. JavaScript: Choosing the Right Tool for the JobPython vs. JavaScript: Choosing the Right Tool for the JobMay 08, 2025 am 12:10 AM

Whether to choose Python or JavaScript depends on the project type: 1) Choose Python for data science and automation tasks; 2) Choose JavaScript for front-end and full-stack development. Python is favored for its powerful library in data processing and automation, while JavaScript is indispensable for its advantages in web interaction and full-stack development.

Python and JavaScript: Understanding the Strengths of EachPython and JavaScript: Understanding the Strengths of EachMay 06, 2025 am 12:15 AM

Python and JavaScript each have their own advantages, and the choice depends on project needs and personal preferences. 1. Python is easy to learn, with concise syntax, suitable for data science and back-end development, but has a slow execution speed. 2. JavaScript is everywhere in front-end development and has strong asynchronous programming capabilities. Node.js makes it suitable for full-stack development, but the syntax may be complex and error-prone.

JavaScript's Core: Is It Built on C or C  ?JavaScript's Core: Is It Built on C or C ?May 05, 2025 am 12:07 AM

JavaScriptisnotbuiltonCorC ;it'saninterpretedlanguagethatrunsonenginesoftenwritteninC .1)JavaScriptwasdesignedasalightweight,interpretedlanguageforwebbrowsers.2)EnginesevolvedfromsimpleinterpreterstoJITcompilers,typicallyinC ,improvingperformance.

JavaScript Applications: From Front-End to Back-EndJavaScript Applications: From Front-End to Back-EndMay 04, 2025 am 12:12 AM

JavaScript can be used for front-end and back-end development. The front-end enhances the user experience through DOM operations, and the back-end handles server tasks through Node.js. 1. Front-end example: Change the content of the web page text. 2. Backend example: Create a Node.js server.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Clair Obscur: Expedition 33 - How To Get Perfect Chroma Catalysts
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft