How to Win Your First Client as a Freelance Software Developer
If you’re a software developer looking to become a freelancer, one of the biggest questions you need to answer is how to get that first client.
Using personal experience, we’ve written this simple guide that outlines exactly how you can find your first freelance programming client.
When it comes to actually landing your first client and contract, there are 4 steps you need to take:
First, Defining Your Product is where you identify what you can do and for whom you can do it.
Second, Building Your Brand is where you market yourself.
Third, Finding Prospective Clients is what it says — this is where you find clients to whom you can sell yourself, using the product definition and brand you’ve created in the first two stages of this process.
And fourth, Winning Your First Contract is where you actually enter the negotiation phase. Here, you agree to build something or work on a specific project, in exchange for your freelance rate.
These are the four steps we advise to actually sign a contract with your first client. But if you already know what your product and brand is, feel free to skip ahead.
Defining Your ProductAll we’re talking about is defining what problems you can solve (for clients) and what tools you use to solve their problems. In other words, what programming skills do you offer and what solutions can you deliver?
Many clients looking for freelance programmers already have a good understanding of software development projects, programming languages, and other technical details.
But the more you can define your product in terms of the problems you solve, the easier it will be to sell yourself to clients.
Where to start
Start by listing the programming languages, frameworks and libraries you know. Include recognised qualifications and certifications.
List the industries or technical areas in which you’ve applied your software development skills. Now, add the ways you’ve used those languages in the past. Include relevant related skills and experience such as refactoring, version control, IDEs, and database admin.
When it comes to the problems you’ve solved in the past, you want to be able to outline the problems in simple terms. However, you should be prepared to go into more technical detail. You should also outline the strategy you adopted to solve the problems.
Also consider how you might create case studies you can post to LinkedIn, social media, or your website. This helps to build your profile as a subject-matter authority.
Last but by no means least, find ways to quantify the benefits for clients or projects in each case covered above! The better you can demonstrate the value you bring to a client in terms of money savings, improved product performance, superior end-user outcomes or similar, the easier it is for a client to see why they should hire you.
Building Your Brand
Now that you’ve defined your product, you can take that information and build your brand. Building your brand isn’t just about creating a CV with your work experience and technical skills.
For maximum effect, it’s time to start selling the solutions you bring to the table.
Selling actual solutions
Let’s take an example.
Maybe you used Python to automate data processing in MS Excel. The goal was that your previous employer could quantify risk exposure at the push of a button. Re-phrasing that, you could say that you gave the client the ability to instantly quantify risk exposure, allowing them to better manage risk, avoid costly mistakes, and strengthen their decision-making process while at the same time reducing overheads.
Note though: eloquent and intelligent explanations of past success are excellent, but nothing beats hard numbers.
If you optimised runtime routines on a server to boost performance by 90%, that means the client saved a huge amount on their server costs. Hard numbers like this help clients to say yes to hiring you.
Of course, clients will always want to know what skills you have, which programming tools you know, how much experience you have, and where you worked. They’ll also want to know about formal qualifications, industry certifications, and related interests.
But if you focus on the numbers, and keep in mind the rest, you’re good to go!
Sharing your Brand & Portfolio
So now that you’ve defined your brand, how do you share it?
If you were a creative professional, you would build a creative portfolio and publish it on your own website or a platform like Behance.
As a software developer, your portfolio will take a different shape and you’ll share it with the world through different platforms.
There are many platforms out there where you could build your brand and share a portfolio, from Reddit to Arc.
Don’t make the mistake of seeing online platforms simply as a place to post your CV and wait for clients to find you. Remember: the more you can sell yourself, the sooner you’ll get that first client (and more to follow).
As an example, on LinkedIn you could simply list your skills and work experience and leave it like that. But that would mean saying good-bye to a huge opportunity to build your brand, network, and engage with prospective clients.
What’s more, many prospective clients will look at your LinkedIn profile before moving forward with the hiring process. Seize that opportunity to sell yourself!
As you work through the channels below, consider how you can build your brand through those platforms while at the same time actively looking for clients.
How to Find Prospective Freelance Clients
In our experience working with hundreds of freelancers, there are four basic avenues you can follow when it comes to finding clients as a freelance programmer:
- Personal Referrals
- Professional Networking
- Freelance Marketplaces
- Recruitment Agents
You can speak to programmer friends and colleagues from existing and past jobs. Ask them if they’ve done any freelance work. If they’re already freelancers, ask them how they found the work they’ve been doing. And most importantly, ask if they know about any available freelance projects that might suit you.
If you’re fresh out of college, you can talk to classmates, advisors, and professors. With little or no experience in the workplace, you might have a bigger challenge finding freelance work but it’s certainly not impossible.
The people you’ve studied with and worked with know you, and they have a good idea of your ability to develop software. So that means when they recommend you to the people they know, you’re already getting a quality endorsement.
Even more important is that networking expands your job ‘fishing net’. The people you know might hear about freelance work before it’s advertised online and before it goes to recruitment agents.
Professional Networking and Branding
As you build your freelancing business, you can boost your brand by leveraging the power of professional networking sites like LinkedIn, StackOverflow, Reddit and GitHub.
First, ensure your LinkedIn profile is up to date, complete, and free from mistakes. Not only does that boost your chances of landing another client, but prospective clients are likely to check your LinkedIn profile before hiring you.
Start building your LinkedIn profile before you leave university. Make it a habit to review and refresh your LinkedIn profile on a regular basis or if anything changes. If you’ve worked on any interesting projects or authored relevant papers at university, you can highlight these.
Similarly, Stack Overflow is another great place to build your brand and cultivate your position as a subject matter expert. Not only can you demonstrate your knowledge there, but you can also be seen as a valuable member of the IT community.
And you’ll find similar opportunities to build your online brand in forums like Reddit and GitHub. Reddit is a great place to enjoy the benefits of two-way communication. Plus there are specific subreddits dedicated to finding freelance work, such as /r/hireaprogrammer.
And lastly, GitHub lets you contribute to community projects (building valuable skills and contacts along the way) and show off your own pet projects.
You’re in it for the long haul
The one big drawback about networking is that it can take a long time to generate results. But that’s not always the case. Remember: you have to be in it, to win it. By leveraging your networking channels, it’s always possible that you’ll find your first freelancing client. And over time, you’ll build a brand and momentum that help you win more clients.
So, in the meantime how can you find freelance clients more quickly? The next section covers that question.
Freelance Marketplaces / Job Boards
Freelance marketplaces and job platforms are great resources, not just for finding clients but also for finding out what skills and experience are valuable, where to focus your efforts on personal/professional development, and as a way help build your brand.
However, there are some special skills you’ll need to make the most of freelance marketplaces. Always make sure you read and understand the terms and conditions of each marketplace or platform. You don’t want to make a mistake that gets you kicked off the platform.
Some popular freelance marketplaces you can consider:
But there are also more conventional job boards, which can be a great place to find your first freelance contract:
Lastly, we wanted to mention recruitment agents. Some employers love using recruiters because the agency helps with things like vetting freelancers and qualifying their skills. A good recruitment agent can be a great way to find your first freelance programming client.
A recruitment agent should also help you sell yourself. They understand that your core skill is programming, and they want you to get hired, so they should be able to help you improve your ability to win clients.
Recruitment agents know about freelance work that might not be available through other channels. On top of that, recruitment agents can help you get a better understanding of how much work is available, find out which skills are most valuable, and polish your resume. They can also tell you how much your skills and experience are worth in the current job market.
Winning Your First Contract
Let’s say that you’ve taken all these steps. So you’ve defined your product, you’ve built a brand, and you finally found some potential clients.
So, how do you go from having found a potential client to actually winning your first freelance contract?
Understand the Requirements
First, make sure you really understand the requirements of the client and project.
Read the job ad and the description to help you understand the project. If there are any areas of the project or job that aren’t clear to you, you can do some further research online. If there is no job description, contact the client and ask if they can send you one.
In your first meeting (see below), you can dive deeper — and either clarify areas of uncertainty or to confirm your understanding of the job’s requirements.
How Much to Charge?
Many freelancers worry about how much they should charge. They might even worry that they’re asking too much. If you’re looking for your first client, you might struggle to answer this question too.
So before your first meeting, look at other listings for jobs like the one you’re considering. Many of them will give details of the expected rates. Reddit is a great place to ask about the going rates. Of course, Lancebase specialises in helping you find out how much you’re worth.
It can be very tempting to price yourself low, hoping to win your first client. It’s always a good idea to remain flexible on rates, especially if other aspects of the contract make it attractive. But some freelancers, seeking to differentiate their brand, think that being ‘cheap’ is a good option.
However, business is business. If you price yourself too cheap, it can hurt your brand, lower your respectability in the eyes of clients, and leave you competing with the bottom of the market.
So take your time and determine your preferred rate for the contract, but also decide on the minimum you will accept (the rate below which you have no choice but to say “No” to the job).
The First Meeting
By now you have probably already set the first meeting. When you confirm the meeting, ask the client if they have any special requests, such as referrals they want to call or examples of past work.
Prepare for the meeting based on your understanding of the requirements. Consider exactly which skills, experiences or testimonials fit with what the client is looking for. If you can emphasize those during the meeting, you make a good chance.
In addition, make sure to consider the questions you want to ask. Questions don’t have to be just about the job or project. You also want to make sure you’re happy with any conditions of the working relationship, such as where you’ll be based or when the client expects you to be available.
Start the Negotiation
You might have several things to consider after the first meeting with the client, in which case, a second meeting might be needed. You might want to come back to the client with a proposal, or simply consider whether this project is right for you.
But in some cases, you can already start the negotiation right away. Consider the project, due date (if there is any), client, and the rate you have in mind.
Now start the negotiation. You could either share your preferred rate (or even a bit higher rate) right away, or ask the client: “What budget do you have for this project?”
How you go from here really depends on your negotiation style, but you can find useful negotiation tactics and arguments here.
Considering the Contract
After you’ve come to an agreement with the client, you have to sign a contract.
There are no firm rules about who supplies the contract when you’re a freelance programmer. In some jurisdictions, it’s important to have certain conditions in place so that you don’t end up with tax problems. For example, in the UK, the Inland Revenue Service determined that many contractors working under “IR35” rules were considered to be full-time employees of the clients (which you don’t want!).
If you’re working through a platform like Fiverr or Upwork, the platform handles the contracts. And if a recruitment agent is helping you to find work, they might supply a standard contract wording that they’ve agreed with clients.
So our point is: consider what is ‘normal’ in your situation. And of course, consider the terms of the contract including intellectual property and payment terms (do they pay you after 14 days? 30? 60? etc.). And of course you can still negotiate this too!
Remember: It’s a Numbers Game
Don’t worry if you leave the first meeting unsure what to do. After getting some answers to your questions, you might decide that the opportunity isn’t for you. That’s okay. That’s what meetings are for.
Landing a client is a numbers game. The more prospects you contact and the more you meet, the more likely it is that you’ll get your first client. And, every time you meet a client, you’ll learn more about how to approach prospective clients and how to build those professional relationships.
And whatever you do: Make sure to carry out a debriefing session with yourself after a client meeting. Ask yourself what you could have done better. Could you have prepared better? Did you fail to ask an important question? Did the client fail to answer any questions? What was the personal chemistry like in the meeting?
If you think the meeting didn’t go well, don’t worry; there’s always next time. If you’re really struggling to win your first client and have had ten client meetings without success, consider writing a polite message asking for feedback.
Good Luck with Landing Your First Client
As you can see, there’s a lot to do to get your first client as a freelance developer.
But if you start with defining your product and building your brand, you’re set. After that, you can find some prospective clients, and start the negotiation.
And remember — this is a process, not a one-off event. As you learn more about your work, clients, the marketplace and branding, you can revisit the resources you’re using to sell yourself and find more work!
And if you need more inspiration, check out our article for starting freelance software developers.