How to Make Money through Freelance Programming Jobs
January 25, 2020
How to Make Money through Freelance Programming Jobs
The first step in making money as a freelance developer requires an understanding of how to make money in general. Trying to make money without understanding these fundamental things will go about as well as playing monopoly against an expert without having an understanding of the game’s rules.
The three rules for making money
- Understanding that the amount of money (or lack thereof) that you earn will be in direct proportion to the level of value which you provide to others.
- Understanding that making money requires putting time into high value activities.
- Understanding that you have a full-time job as soon as you strike out on your own, regardless of whether you actually have any clients.
Let’s look at each of these in turn.
Developers must understand that making money means providing value to others
Most people starting a business for the first time are used to working traditional jobs. Such jobs often mean getting paid for one’s time. When you go into a job that pays “x” per hour, for example, then you get paid “x” regardless of what you actually produced in that hour.
When you’re providing dev services to a client, however, all the client is going to care about is how much value they receive out of it. If, for example, you’re building a website or app for a small business then what the business is willing to pay is going to depend on the value they expect to receive from the website or app in the future.
The price the customer is willing to pay is not based on the time you put in (as is the case in hourly jobs). Instead it’s based on the increase in value that your customer will receive.
So, to put it bluntly, making money means understanding that your services are about providing value to others and not about putting in time.
It’s also important to understand that value will always be based on the customer’s perceptions and not yours. Too often developers see a website built on one type of framework as “better” than something that looks and functions the same, but is built on another framework.
The bottom line, however, is that if each meets the customer’s needs just as well as the other, then the one which provides the most value to the client is that which costs less.
Think of it like this - suppose a customer can get a website built by someone using a CMS for $2,500. You propose building something with Bootstrap for $3,500. You think yours would be better because you’re using “real code” and not a CMS like WordPress or Joomla.
At the end of the day, however, both websites visually look the same and one does just as good a job of bringing in business as the other. This means that your “better” website didn’t provide more value to the customer, it just cost more. Of course, the customer would not be happy with such an arrangement.
Want to make money? Then start thinking in terms of how you can provide what the customer perceives as value.
Developers must understand that making money means putting time into high value activities
The heading for this section may seem like something you would say “duh” to, but you would be surprised. I see many, many, many, many (many) instances in which small businesses or solo operations are putting time into efforts which really don’t matter very much at the end of the day.
Think of it like this. Many small operations make really good money engaging in activity “x.” They then think that they want to grow their business by beginning to offer service “y” in addition to x. When service y doesn’t work out, they then scrap the idea on move on to service “z.”
This strategy, unfortunately, is a bit insane. If activity x is making money then, instead of spreading resources across activities, just do more of x. In other words, pick your highest value activity and do more of it! This is why Mark Cuban has been quoted as saying that “diversification is for idiots.”
Let’s look at two examples of what I mean by this.
Suppose you can build a relatively simple website, with certain functionality, for small businesses and charge $3,000 for this service. Creating such a site takes you twenty hours (meaning you make $150 per hour of input).
Now suppose you can build larger scale ecommerce products for around $7,500 to $10,000 a pop, but only earn $130 per hour of input due to the projects being more complex.
It’s easy to look at these projects and think the latter is worth more money. The former, however, pays more per unit of input. This means you should be focusing on getting more of those $3,000 projects and try to make such projects your primary business.
To put it simply, identify the projects which pay the most per unit of input and to the extent possible, focus solely on getting as many of those projects as possible.
Freelance developers must understand that they now have a full-time job
I’ve talked to a lot of start-ups and entrepreneurs who don’t understand that they got a full-time job as soon as they struck out on their own. This is true even if they don’t have a single customer. I strongly, strongly, strongly (strongly) believe that this is one of the main reasons why many small businesses fail.
Let’s look at why I say you have a full-time job as soon as you start up.
Suppose Joe Developer starts up his new freelance dev operation. He puts up a website advertising his services and maybe pays for a little bit of advertising. He gets the occasional customer here and there. He completes projects for these customers on a timely basis but never really does much else to grow his business. He probably only puts about twenty hours a week into the operation during the course of the year.
At the end of the year he wonders why his business is stuck in first gear. Joe then shuts down his operation thinking that his phone “didn’t ring enough” from customers and that his advertising was ineffective. Joe blames “bad advertising” for why his business failed.
What Joe failed to understand was that he had a full-time job once he started up. His business failed because he only worked part-time (twenty hours a week) at it.
It’s really quite simple. People don’t get paid for not working. This goes for business owners as well. Once you start up, consider yourself as having a full-time, minimum of forty hours per week, commitment.
What this means is that if your coding and admin work only takes up twenty hours a week, then you are now required to put the other twenty hours a week into hustling up new business. So Joe spent twenty hours a week coding, and should have spent the other twenty hours a week going to networking events or some other marketing activity. If he had put in his time, he would have gotten more business.
Once you start up, just remember one simple rule. You now have a full-time job. To the extent that you don’t have coding projects to put in time on, you are now obligated to spend the rest of your working time trying to hustle up more business.
Do you want to be successful? If so then it’s simple. Understand that you have to provide value to your clients and that you should be focusing on the value providing activities which yield the highest amount of money per unit of input. Finally, put the time into your new business. Those three rules are key to making money in any new enterprise.
Planning your new freelance development business
Once you’ve decided to start up it’s then important to plan out your business. I can’t stress enough how crucial this is. Too many entrepreneurs just open up shop and start haphazardly engaging in activities out of the hope that such activities will yield a profit.
Well, no disrespect to such fine folk, but starting a business without a plan is a lot like getting in your car, driving around aimlessly, and acting surprised when you don’t wind up in a place you’d like to be.
So let’s look at what you need to for the “planning” phase of your new venture.
There are several steps involved in getting your new endeavor off of the ground. We’ll look at each of them in turn. These steps include:
- Funding your new operation.
- Deciding what niche you’re going to serve.
- Deciding on the services you will offer, as well as pricing.
- Structuring your business.
Let’s dive in.
Freelance developers will need to fund their new business
After reading the heading to this section, you may be saying “what funding?” This is understandable as most think freelancing requires little more than their laptop.
Well…...wrong. There are going to be expenses associated with your new venture. Especially if you want to…you know...make money. Such expenses can include renting server space, buying liability insurance for the business, fees for professionals (such as attorneys and accountants), and more.
The good news is that it takes very little money to start up in today’s world. The amounts necessary will seem especially small once you start generating some revenue. With all of that said, let’s look at a few rules around funding your initial operations.
The number one rule to remember with your finances is that, contrary to what many people in tech-related businesses think, it is not OK to lose money! This point was driven home really well in the book Profit First, which I strongly suggest reading.
While many small companies are willing to lose money for the sake of growing quickly, I cannot stress enough that this is actually a really bad idea.
The reasons that this is a bad idea would be a) lengthy and b) the subject of another article. The biggest point to take away for now is that you should be profitable on Day One and in each month thereafter.
The easiest way to ensure that you start out profitably, and stay that way, is to remember to avoid debt when you’re starting up as a solo.
Unfortunately, way too many people start a business (of any type, not just coding) and start putting initial expenses on credit cards. They may also take out some type of personal loan to get started.
But ensuring that you are profitable from Day One, and that you stay that way, is simple as long as you avoid debt. Why do I say this? Because if you’re avoiding debt then you can’t spend more than you take in. So, by definition the worst you can do is break even.
Growing your operations then comes from reinvesting your profits. As you make money, reinvest in the business for growth. This leads to greater profits. Keep repeating the process and next thing you know the business is doing really well without ever having borrowed any money.
Freelance developers must decide which niche they are going to serve There are a few things to address in regards to deciding what niche you’re going to serve. The first is an explanation of why you need a “niche” in the first place. The second is how to go about choosing that niche.
As I’ll explain below, focusing on a particular subset of customers, and not saying “I’ll take whatever walks in the door” leads to higher profits and a more scaleable business. Second, picking that niche is a lot easier than many people think. So let’s have a discussion.
When striking out on your own it’s crucial that you focus on a few particular types/classes of customers instead of trying to be a general purpose coder for every type of business.
The reason for this is simple: if you’re always building different types of products then you put yourself in the role of constantly learning new frameworks and familiarizing yourself with whatever third-party applications the customer may want to integrate into the product.
While I understand that it is fun to learn new things (I like to consider myself a constant learner), this is not the way to run a business.
The reason for this is simple - it’s scale. If you build products for a particular type of company then you will certainly have to learn something new for each customer, but this learning curve will be nowhere as extreme. This leads to greater profits on your end. Let’s look at what I mean.
My primary business tends to focus on building and maintaining websites for law firms, as well as individual app development which allows an attorney’s practice to run more smoothly.
Since many law firms have similar needs I can generally re-use the same code base. Since I charge a flat rate for dev services, I’m collecting my full fee without always having to build a product from the ground up.
If, by contrast, I offered these same types of services to every type of business which existed, I would lose the ability to scale up the use of existing code. Do you want to grow your profits? If the answer is “yes” then find a niche and focus on it.
One other point about choosing a niche is that you wind up providing a much, much, much (much) higher level of service to your customers. Because I have extensive experience in serving a narrow class of companies, I’m able to anticipate their needs and offer solutions they may not otherwise have thought of.
Also, since I’m not completely starting a new codebase all the time, the client does not have to be overly worried about bugs. So, in other words, I am able to provide a better product and better service by focusing on a niche.
Unfortunately, many startup developers decide to take whatever work “comes in the door.” This is very bad for their long-term profits. I just spelled out why serving a niche increases profits. Taking “anything you can find” works in the opposite direction.
First, you may put a lot of time into learning something new only to find that you never use it again after you deploy the customer’s product. Second, all that time that you put into having to learn something new or write a brand new code base could have been put into developing marketing towards your niche.
In other words, people who take whatever they can get are foregoing actual business building to make a few quick bucks. This is the equivalent of stepping over a dollar bill so you can pick up a penny. Never a good idea.
When deciding what type of niche you want to serve, you really only need to ask yourself two questions.
First, is there an area where you can bring unique experience or value that some other developers may not be able to provide? If the answer is “yes,” then you have an opportunity to provide value to your customers.
Second, ask yourself if there is a particular type of work which you would enjoy doing.
If you don’t fit into one of these two types of niches then you’re going to have problems. The reason for this is simple.
First, if you’re not providing unique value then you’re going to grind it out and get frustrated with how difficult it is to run your business.
Second, even if you’re not providing truly unique value, if you’re really passionate about what you’re doing then you’ll be able to persevere the grind.
Picking an area that you’re good at/have specialized knowledge in or picking one that you have a passion for will help you to succeed.
Developers must figure out their services and pricing in order to be successful
Once you’ve carved out the niche you’re going to serve it’s then time to decide what services you will offer, within that niche, and what you’ll be charging for your services.
Your services
Deciding what services to offer may seem like something you can do quickly, but it’s actually important to consider a few different factors in regards to your offerings. Also, when determining pricing it’s important that you consider going the flat fee route for services as opposed to charging by the hour. Let’s dive into each of these issues.
There are three things any freelance developer should consider when deciding what services they wish to offer. Once these three areas are analyzed, if your potential service offering seems to make sense, you consider the size of the current addressable market. They are:
- your level of interest in a given area
- the extent to which you can scale up the offering, and
- your ability to outsource some of the work.
You then look at the market to see if there is enough available work to turn the offering into a business.
I can’t stress enough that your service offerings should focus around things which interest you. Again, as stated in the section above, you’re likely to burn out and quit if you start engaging in activities that leave you looking bored.
By selecting an area that you are generally excited to learn about and work in, you will be able to view your work as something other than drudgery. This leads to you putting in more hours which, in turn, leads to more of dat sick cash flow. So, again, when deciding what services to offer, ask yourself what you’re actually interested in.
It’s also crucial to consider scaleability when deciding what services to offer. The concept of scale is simple. You want to focus on something where your profit margins actually increase, or at least stay the same as you grow your revenue.
Areas in which you can write, and then re-use, a codebase allow you to achieve this.
Areas in which you are constantly doing things from scratch, and spending a lot of time learning things that won’t apply to more than one or a few clients, will take you in the opposite direction. Always ask yourself “can I scale this up” before diving into an area.
The final thing to consider is the extent to which you’ll be able to outsource the work which needs to be performed. The greater the ability to outsource, then the more you can grow the company by leveraging the labor of others.
In our main business, for example, we subcontract the writing of legal content to attorneys and law students who wish to write as a side hustle. Given that there is a large population of people who have the skills to do this work, and are looking for the opportunity to do so, outsourcing our content needs does not prove to be a problem.
Another example of products which outsource well are those which don’t have complicated codebases. The simpler it is to build a product then the easier it will be to hire/subcontract another developer to assist you. This is because you will not need to bring on an individual with as high of a skill set.
So when deciding what services to offer your niche, you’re looking for a scalable area which interests you and in which you can outsource as much of the work as possible.
Once you find this area, it’s time to weigh it against the actual size of the market. If you have a great offering, but there just aren’t enough available customers, then you’re not going to get anywhere for obvious reasons. If, however, there is an abundance of available customers, then have at it.
Let’s look at how the concepts discussed above work in practice. As an example, a company we recently started is focusing on building simple (often single page) websites for small businesses for a low introductory rate.
We greatly enjoy working with small businesses, and given the simple nature of the websites we’ll be building, we’ll be re-using large amounts of code. Also, since the websites won’t require extensive JavaScript development, or much other development beyond HTML and CSS, this is work we can outsource. So this area would be considered viable under the three factor test I just laid out.
We then have to weigh the idea against the size of the market. Well, as I mentioned in my article on whether one should become a freelance developer, roughly thirty percent of America’s 24 million small businesses didn’t have or needed a new website in 2017. This means that there are roughly 7.2 million potential customers out there for the new company we started (30% * 24 million).
This is certainly a large and addressable market. Since our business idea passed the three tests and will address a large market, we went ahead and launched the service offering.