It’s common for developers to go the freelance route. This is true for many who have just finished freeCodeCamp and are thinking of working for themselves as opposed to working for “the man.” It is also true for many who have developer jobs but are considering going out on their own.
The idea of freelancing is also appealing to those who would like to make extra money even though they’re already working a dev job.
Regardless of the reason you’re striking out on your own, it’s important that you go about it correctly. Going about things “the right way” can help you look like the person pictured above.
While doing things the “wrong” way can leave you counting pennies like this:
I’m assuming you would rather look like the former and not the latter. If you have decided to go out on your own, and you are not opposed to prosperity, then this guide will help serve as a road map for how to get your new business running. It will also serve as a guide as to how to manage things once you’re off the ground.
If you’re someone who absorbs information more by reading, like me, then read on. For those who prefer a discussion based format, I’ve prepared this video:
This guide is geared towards those who have already decided to go the freelance/self-employed route. If you’re debating whether you wish to work for yourself, then you may wish to read the first section of my article on making money as a freelance developer.
For those who have already decided that it’s time to strike out on their own, let’s get to it.
This guide, for obvious reasons, is quite long. This road map provides a layout of what we’ll be discussing:
- Three essential rules for making money as a freelancer (jump to section)
- Planning your new business (jump to section)
- Funding your new venture
- Deciding what niche you’re going to serve
- Determining what services to offer & pricing
- Structuring your new business
- A “to do” list for planning your new business
- Getting started with your new business (jump to section)
- The importance of “starting out right”
- Administrative items to complete
- Marketing items to complete
- A “to do” list for getting your business started
- Finding clients for your new business (jump to section)
- The need to get clients in the short-term, while focusing on the long-term
- How to sell yourself to clients
- Getting clients in the short-term
- Building a brand for the long-term
- A “to do” list for getting your marketing started
- Managing your day-to-day business (jump to section)
- Administrative & financial management
- Managing your development/substantive work
- A “to do” list for making sure you properly manage your business day to day
When reading this guide, just hit a “back to top” link and you’ll be brought back to the road map. So, without further delay:
There are three essential rules for making money has a freelance developer (back to top)
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 are:
- 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 (back to top)
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.
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 as bored as this guy:
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 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.
It’s time to determine your price structure once you’ve decided what services you’re going to offer your niche. It’s important that, as much as possible, you stick with flat fees for a project as opposed to any type of hourly billing. You also want to try to create recurring revenue. Let’s discuss why these things are true.
To the extent possible, you should work for flat rates and avoid “by the hour” work. This leads to greater profits for a few reasons.
First, as your expertise within your niche expands, you’ll be able to complete work in less time.
Suppose you take on a project for $5,000 and get it launched after 50 hours. This equates to $100 an hour. Now suppose that a similar project comes along a few months later. You charge another $5,000.
The second time, however, you don’t have to spend as much time learning about the domain of the business and you can also re-use some of your previous code base. You get the second project done in only thirty hours.
This means that your “per hour rate” just went from $100 to $166. This value of prior experience and code writing is lost when you elect to charge by the hour.
The fact that you are reusing old code, in the example above, in no way means that your second client is receiving less value. In addition to the product you launch for them, they are also receiving the benefit of your gained expertise in their area. They are also gaining the benefit of your experience in building similar applications. This experience means a smoother launch, fewer bugs, etc. So flat fees are a win-win for everyone.
In addition to working for flat fees, you want to develop offerings which can generate recurring revenue. As an example, the company we started which services small businesses also provides ongoing maintenance after we launch a website. We host the customer’s website on our virtual private server and keep everything up to date for the client. We charge $50 per month for this service and it forms a nice piece of recurring revenue.
By offering services with a recurring revenue stream, you help to make your income more consistent.
So, to wrap up, when deciding your pricing it’s important to remember three words: “flat fee” and “recurring.”
Freelance developers need to choose the right business structure when starting up
It’s time to form your business after you’ve selected a niche and narrowed both your service offerings and pricing.
It is generally suggested that you form an LLC through which to run your business. Doing so provides you with liability protection that you won’t receive if you operate as a sole proprietorship. (Disclaimer: this article can’t be construed as legal advice and I am not holding myself out as a legal professional. I suggest that you discuss your individual situation with an attorney).
Generally speaking, this liability protection can help you in the event of a lawsuit and can also help to prevent you from being personally responsible for business debts if your affairs are structured properly. Also, there are tax benefits, which I briefly discuss below, associated with forming an LLC.
Once your LLC is formed then it is important to remember that you and your company are now considered separate legal entities. This means that you must keep separate bank accounts and that you must not run personal expenses through the business.
For a full breakdown of the legal requirements associated with managing an LLC it is, again, a good idea to speak with an attorney.
There are also multiple tax benefits which you can reap by forming an LLC for your business. The specifics of these benefits should be discussed with a tax professional, as I am not licensed to give tax advice.
But to summarize, the benefits of an LLC include, among other things, being exempted from self-employment taxes in regards to the company’s profits. To ensure that you receive this break you need to fill out IRS form 2553 and “elect” to be treated as an S Corp. You will also need to pay yourself a reasonable salary.
To avoid making this part of this guide too long, I break this idea down, in further detail, in this video:
The tax benefits alone are reason enough to go the LLC route. Add in the liability protections and it becomes a no-brainer.
Action items for developers who are preparing to start a freelance business
I can’t stress enough that it is crucial for you to adequately plan your new venture. I’m a very strong believer that the reason for which many small businesses fail is a lack of adequate planning. If you take the time to “do it right” then you can avoid the fate that many small businesses, unfortunately, arrive at.
Your immediate list of needs should include the following:
- Determine how you are going to fund your new venture
- AVOID debt or credit cards as a form of funding
- If necessary, work some type of second job until you have the money needed to get off the ground
- Decide on the niche that your new business is going to serve
- The niche you wish to serve should be in an area you enjoy and/or are interested in
- DO NOT get in the habit of taking work simply because it is available - stay in your niche
- Determine what services you will offer to your niche and determine your pricing
- When determining pricing and services, weigh your ability to scale the service and to outsource work against the size of the addressable market
- Charge flat fees whenever possible and avoid hourly billing
- Make sure you have a model which can build recurring revenue
- Form an LLC for your new company
- Discuss the benefits, and specifics, of doing so with an attorney immediately
- Discuss your tax situation with a professional and consider making the S Corp election (again, after talking to a tax professional)
Getting started with your new freelance development business(back to top)
Once you’ve planned your new business then it’s officially time to hit the ground running. The first step is making sure you have everything you’re going to need in order to start out effectively.
If you don’t have everything you need then it’s going to be like hitting the ground running with no shoes on. That’s why this section of the article will be devoted to things you need to do right away in order to make sure that you’ve got clients coming in and that you’re operating efficiently.
I’m going to look at several points in this part of our discussion. The topics we’re going to dive into include:
- The importance of getting started off on the right foot
- Administrative items which need to be completed
- Marketing items which need to be completed
- The importance of ongoing learning
Freelance developers must understand the importance of starting their new business off on the right foot
Before I get into how to hit the ground running, it’s important that we discuss the need to start out well-organized and with all of your ducks in a row. It’s crucial for multiple reasons.
First is the fact that there is no easier time than right now to get organized. Think about it - as you get more customers and get busier, it’s only going to get harder to get things done.
Second, if you don’t have the items discussed below taken care of in advance, then they’re only going to get in the way once you’re trying to run full speed ahead.
In other words, starting out in a disorganized fashion will get in the way of trying to get your substantive work done. This, in turn, will interfere with your ability to do a good job for your clients.
A final, and crucial, reason to get organized now is that not doing so will make you work in an inefficient manner. This inefficiency will stem from the fact that you will constantly be interrupting your work to deal with administrative headaches. This leads to massive inefficiencies throughout your workflow. These inefficiencies will compound on one another and you will suffer from decreased profits as a result.
So, choose to get organized now and not later. This organization includes both your administrative needs and your marketing needs.
Developers must get their administrative affairs in order when starting up
One of the biggest challenges to freelancers who are just starting up is dealing with the various administrative tasks involved with running a business. It’s easy to get in the mindset of “I’ll deal with these tasks later.” Such tasks, after all, can seem boring, confusing, and completely irrelevant to the actual work you’re doing.
Neglecting these items now, however, can create massive problems down the road. A little later this article will discuss how to deal with such things on an ongoing basis. For now, let’s look at the items that you need to deal with from the start.
The first item of business is to make sure you properly form a company. As mentioned above, it will often be the best course of action to form an LLC. The specifics of your situation, however, should always be discussed with a lawyer.
In addition to forming the company, it is important that you get any necessary business licenses and that you complete any other documentation required by your Secretary of State as well as your county level or city level governments. Some states will require more of this documentation than others.
Failing to properly obtain your necessary business licenses, or to obtain other necessary records, can result in you not having the legal right to do business. Make sure you’re properly complying with all requirements in this area.
The second item of business is to get your company its own mailing address. It is generally a good idea that your business have an address other than that of your residence.
First, it allows you to list an address on your website that is not your home. Second, doing so can prevent people from looking up the business on a Secretary of State’s website and getting your home address. Third, having a separate business address helps your company to appear more legitimate.
If you’re just starting out, and have few to no customers, then a post-office box may be your best bet. You can also look into shared working spaces (such as WeWork). Such spaces not only give you a place to work, but you will be provided with a mailing address as well.
The third item on the agenda is to open a bank account for the company. It is crucial that you do not intermingle your personal finances with the business finances. This company account is what you will use to pay for business-related expenses, to reimburse yourself for business expenses which you paid out personally, and to accept payments from customers.
Personally, I would suggest using a large national bank (such as Chase, Wells Fargo, and so on). The reason I suggest this is that the largest banks will be the most likely to integrate with various payment options, to have branches in every state, and so on.
Next up is to sign up for different software services as well as other services that you will need to run your business on a day to day basis.
First on this list is a business suite with which you can set up a branded email address, receive cloud storage for the company, and so on. We use G Suite in our company but here are plenty of other options, such as Office 365.
Next is to sign up for a service offering accounting software (I cannot stress enough the importance of keeping good books). There’s more below about how to keep the books in your business, but for now just know that you need to have accounting software set up from the get go.
For most freelancers I’d suggest trying Wave’s accounting software. I suggest Wave because, while not as robust as Quickbooks Online (which many consider to be the gold standard for accounting software), it is much easier for non-accountants (a.k.a. “you”) to use.
Three other reasons to use Wave are,
- it’s free,
- it’s free, and
- it’s free.
After you’ve signed up for your accounting software you’ll also need to sign up a payment processor so you can accept credit cards and e-checks. Most accounting software options also have an add-on component for payment processing. Personally, I find the option Wave offers to be acceptable and we use it in our company.
While not an exhaustive list, these are some of the services and software offerings which you should sign up for immediately.
It is also critical to have the contracts which you will use with your customers ready from the start. Not having a properly written contract can result in you not getting paid, in you getting paid less than what you thought you had bargained for, or even in you getting sued.
To explain the importance of contracts in some detail, and your options for preparing properly drafted agreements, we are fortunate enough to have this contribution from Cari Ross, an Ohio attorney with Ross Legal Services (the video embedded below is a larger course, but will open directly to the section containing Cari's lecture).
Personally, I would suggest erring on the side of caution and retaining legal representation to review your agreements. Often, you can find an attorney who will review your documents for a one-time fee.
Another thing that I would strongly suggest is that you sign up for professional liability insurance on behalf of your business.
We maintain insurance in our company and it costs us less than $70 per month. If a client were to sue us, claiming that we bungled a product that we built, we would be able to turn the lawsuit over to our insurance company and they would deal with it. Having an insurance policy such as this makes it easier to sleep at night.
The foregoing list shouldn’t be considered as everything you will need to have starting out. These are, however, things which I don’t believe you should consider optional.
Freelance developers should get their marketing infrastructure in place before starting up
Striking out as a freelancer means the opportunity to make money. You are going to need clients to make that money. You need to get your marketing infrastructure set up as soon as possible in order to get those clients.
Let’s go over a list of things which you should get set up from the get go. While some of the items on this list may make you say “duh – I know to set that up,” you’d be surprised at what some people don’t do before getting started.
The first order of business is to build your company website and to include a portfolio of your various projects. A great thing about freeCodeCamp is that you will have built some projects for your coursework even if you don’t have any customers yet.
It’s important to remember that your website is the equivalent of a store front. The level and quality of the work you put into it will go a long way in deciding how seriously your potential customers take you. Your site should highlight work you’ve done, make clear to the layperson what type of work you’re available to do, stress customer service, and make it easy for clients to contact you.
When you're building your website, it's important to consider your audience. All of us (including me) can be guilty of forgetting that most of our customers really don’t care about code or technology. They just want a solution to their problems.
A customer likely doesn’t know what HTML is and they don’t care if you're using Bootstrap, Flexbox, or some other framework to build a responsive page.
If you want people to become your customer then don’t alienate them by talking like a tech head on your website. Instead, present yourself as a problem solver that is ready to assist them.
The next crucial point is to have a branded email. You can take care of this by signing up for a business software suite, which I suggested above. Having a company email is important because you want your customers to take you seriously. And trust me that they won’t take you seriously if your email address is “email@example.com”. You might as well be using “firstname.lastname@example.org” if that’s the case. Get a branded email.
Another important item to get is a dedicated phone number for your business. There are a variety of reasons why you don’t want business calls going to your personal cell phone. These include the fact that clients will then have your personal number, you’ll be putting your personal number on your website, and you’ll have to answer personal calls with a professional sounding greeting (since you won’t know if it’s a potential customer calling).
The best way to deal with the separate number issue is to sign up for Google Voice - which is included with any free Google account. This allows you to add a second VOIP number to your cell phone. You’ll be able to receive calls, make calls, and text from this number. And again, the beautiful part is that it’s free.
If, for some reason, you don’t want to use Google Voice or some other VOIP, you can always get a second cell phone. If you go the second cell phone route, make sure it is signed up under your LLC so that the monthly bill is deductible on your taxes.
A key, key, key, key (key) part to your marketing is going to be to sign up profiles on which clients can leave you positive online reviews. These include your profile on Google My Business, a business page on Facebook, and a Yelp profile for the business.
Many people, even those referred to you, will want to look at your online reviews prior to deciding to hire you. Failing to have a bank of reviews is going to cost you money, and a lot of it. I’ll be speaking more below about how you can actually go about getting those reviews. For this part of this guide, just be aware that you need to sign up and fully fill out these various online profiles.
Another important step is to make sure that your LinkedIn profile is as complete as possible. Make sure your profile makes clear that you are available for freelance work. You’ll want to include your various projects in your profile and make sure you list your various skills.
These are simply some initial “must haves” that you need to get taken care of immediately. I’ll be discussing, in depth, how to actually get clients as you move further through this guide. For now, just be aware that you should have the above items before you dive into the world of trying to hustle up your next project.
Freelance developers must decide to be continuous learners in order to succeed
Yep, perhaps you’ve just learned to code. But before you even get that first customer you should've already decided that you’re going to continue learning about a variety of topics.
In truth, coding only makes up a part of your business. And unless you decide to continuously improve your skills in a variety of other areas, you’re going to have problems. The areas about which you should be learning on an ongoing basis include:
- communication/soft skills
- personal and business finance
- business history (in order to learn from the successes and mistakes of past entrepreneurs)
- and more.
It’s important to remember that completing freeCodeCamp, and learning to code, is the beginning of a new chapter and not the end of an old one. If you want to succeed, get in the habit of lifelong learning before you even get your first customer. If you don’t want to succeed then, don’t worry, you never have to pick up another book again.
My suggestion would be to set aside some time every morning during which yo improve yourself through learning.
Personally (and this is just what I do), I read for forty-five minutes each morning. My daily routine consists of “wake up,” “eat a quick breakfast,” and then “open a book” for forty-five minutes. Again, this is what works for me.
Some initial readings I suggest include:
- Profit First
- How to win friends and influence people
- The Millionaire Next Door
- Small Time Operator: How to Start Your Own Business, Keep Your Books, Pay Your Taxes, and Stay Out of Trouble
- The Innovators
- The Everything Store
These are just my suggestions. I will say though, that each of these books went a long way in changing my outlook and making me better at business. One of the most common habits among super-successful people is continuous learning - so get to it.
Action items for freelance developers who have just started their own business
Again, it’s important that you have all your ducks in a row before you start taking clients. That’s why I’ve put together this list of “to do” items that should be completed after you’ve formed your business and are preparing to start taking customers.
Your “to do” list for this section includes the following:
- Research the local business and licensing requirements for your new company and make sure you follow these requirements
- Establish a separate address (such as a PO box) for your business
- Open a separate bank account for your business
- Sign up for “administrative software” that you will need
- A business suite
- Accounting software
- Credit card processing
- A payroll service
- Develop/obtain the contracts you will have potential customers sign
- Sign up for professional liability insurance
- Build out your website and online portfolio
- Establish a branded email
- Establish a dedicated phone number for your business
- Sign up the profiles necessary for your business to receive online reviews (Google My Business, Yelp, etc.)
- Build out your LinkedIn profile
- Continuing Education
- Make a plan to become a lifelong learner
- Execute on the plan to become a lifelong learner
Freelance developers need to start finding clients after their business is organized, up, and running (back to top)
Once your business is planned, formed, and your initial “to do” list is taken care of, there’s something you will need: customers. Hustling up business is going to be crucial for anyone just starting out.
Like anything else there’s a right way and a wrong way to go about getting business. I fully recognize that you will need clients now, in the short term, while you are building your new empire.
It is vital, however, that you don’t make the mistake of focusing only on getting clients in the short term and, as a result, don’t do the things needed to build a venture that is sustainable for the long-term.
In this section of our guide we’ll be discussing the following:
- The importance of building your long term business while still getting clients in the short term
- How to sell yourself to your clients
- Sources of business for the short term
- How to build your company over the long term
- A list of action items to get rolling with immediately
With that said - on to the next section!
Freelance developers must get business in the short term while focusing on their long-term business
Before we get into how to get clients for your new business, it’s important to discuss your strategies over both the short and long term.
In the short term you will be working to hustle up work, to make a few bucks today, while over the long term you’re going to build a brand. The value of having a brand is that you will be able to get more work, with less effort, and will often be able to charge higher prices.
Unfortunately, too many developers get caught in a trap. This trap involves developers putting all of their time and resources into getting clients today in the short term. These developers can never rest easy and know that they’ll have a steady flow of business and, quite often, spend many years working at reduced rates.
By building your brand over the long term you’ll be able to avoid this trap while still making money in the meantime.
The difference between a short term hustle and a durable brand is simple. Short term hustles involve you spending quite a bit of time and money convincing others to let you do work for them. Again, this work will often be at a reduced or mediocre rate.
Having a brand means that people will seek you out, as opposed to the other way around, and you can then charge higher rates. The latter is a path to success while the former will make you feel like you’re stuck on a hamster wheel like this guy:
Now let’s figure out how you can avoid getting stuck like this. We’ll start by looking at how you’ll get clients today and then move on to building your brand.
The first part of getting clients today is learning how to sell yourself to potential customers.
Developers can sell themselves to clients by playing the role of a problem solver
It’s impossible to succeed as a freelance developer unless you’re able to effectively sell your services to clients. A big problem for most freelancers, however, is that they don’t go about selling their services in the right way.
This is often because, as developers, we tend to think that we are selling code and products to clients. The fact of the matter, however, is that we are selling solutions to clients' problems. When we see ourselves as “developers,” instead of “problem solvers,” we tend to fail to effectively communicate our value to a client.
The truth, at the end of the day, is that a client won’t hire someone if they don’t see value in the services being provided. By presenting ourselves as solving our clients' problems, we can show how much value we are providing and, in turn, the client will want to hire us.
Consider the following example. Suppose your are called by a local pizza shop that wants to develop a new website. They want to implement online ordering, and they also want to develop a mobile app so that people can order food while on the go.
You go to the pizza shop and explain which language you will build the app in and start speaking technical mumbo jumbo which the shop owner probably doesn’t understand.
After your presentation, the shop owner won’t understand the difference between what you’re going to build and what someone else can build, for less money, in a CMS such as WordPress. They are simply left with your word that your product is “better” without any understanding as to why.
This shop owner is not likely to hire you because all they want, at the end of the day, is something that meets their needs.
Now suppose that you go to the pizza shop and have a conversation with the owner in which you take the time to understand their needs and goals. You then show them how the website and app you are going to build can meet those goals. You’re doing this while using little to no technical jargon.
You then explain, in layman’s terms, why the person using a CMS won’t meet those goals (for example - you may specifically explain how limited the CMS’ functionality will be when translated into an app).
Now you’ve spoken to the owner in their language and they see value in the service you’re providing. They are now more likely to hire you because you spoke to their needs, through the lens of a problem solver, without using “tech head” speak.
Do you want to close more sales with clients? If so, then it’s simple. Present yourself as a “problem solver” and don’t speak code. Once you start freelancing, you need to stop seeing yourself as a developer and, instead, recognize that your purpose is to solve a client’s problem in the most efficient way possible.
Now that you know how to sell your services to clients, let’s look at how to go about getting business over the short term.
There are several ways for freelance developers to get immediate business
There are several ways to get clients in the short-term. As you will see in the following discussion, these methods do not involve spending large sums of money (or any money for that matter). Let’s take a look at how you can immediately get clients through the following types of resources:
- Leveraging of your existing contacts
- Services such as Upwork and Thumbtack
- Services such as Fiverr
- Free advertising through Craigslist
- Networking groups, such as BNI
Let’s dive into the pros and cons of each of these.
A good place to start getting clients is by simply leveraging your friends and contacts. What I AM NOT saying is for you to simply start telling everyone you know that you are now a freelance coder and you want to build them a project.
Instead you take the approach of telling various individuals that you are embarking on this venture and that you just wanted to let them know of your availability in case they come across anyone who needs your services. Also, make sure that you give them some of your business cards. I wouldn’t suggest bringing it up again after these initial mentions - then you’re just annoying your friends and acquaintances.
I’ll give a personal example of how powerful it can be to simply reach out to your circles.
I recently spun up a separate business which will assist small to medium sized businesses/entities with basic web design. First, I mentioned to one friend that I was starting this service, in the “fyi” fashion I described above. The friend became excited and quickly told me that her mom had founded a church (something I didn’t know) and the church needed a new site designed.
Second, I mentioned that I would be starting the new business to my next door neighbor (who is self employed) and that I would drop him off some business cards just in case he came across any entrepreneurs who needed help. His wife quickly mentioned to me that the parent-teacher organization at the school their child attends wanted to build a new website.
So, two conversations wound up yielding $6,000 worth of work for what are actually very simple projects. And these were just the first two conversations I had. You get the point. So, making your availability known to your immediate circles can be a great way to get started.
The next step is to sign up for services such as Upwork and Thumbtack. These are platforms on which consumers can state what services they need and ask for proposals. You will typically pay for the ability to submit a proposal and these jobs will often be for lower amounts than what you would normally charge.
Is this perfect? Nope. Is it good for someone just getting started? Yep, and especially so when the alternative is to sit around and twiddle your thumbs.
There are a few things to make sure of when signing up for these types of services. First, you need to make sure that you fill out your profile as robustly as possible. Include introductory videos for yourself and your services if the platform allows them.
Also, as you complete projects it is important to ask clients for reviews if you are sure that they will leave you good feedback. As you build up a bank of reviews, you’ll be able to bid on higher priced jobs available through these services.
While these types of services aren’t a good way to get rich, they are a good way to start building up a portfolio of work while getting paid for doing so.
The next option is to set yourself up as a service provider through a company such as Fiverr. If you are unfamiliar with Fiverr, it is a website that essentially allows you to set up a store front and provide services in different categories. The available categories include web and software development.
As with Upwork and Thumbtack, you’ll typically be providing services for a good amount less than your normal “going rate.” With that said, Fiverr simply brings the customers to you and you pay a portion of your fee to the service. You are not paying up front for the leads.
Personally, I prefer this approach over services like Upwork. This is because you are not paying for leads and, perhaps more importantly, you are not putting time into submitting proposals for work that you may or may not get.
As with the other services discussed above, it's important to do a good job for your customers, to provide quality service, and to get good reviews. This will allow you to charge more over time. Again, while not a long term solution, this is a good option for getting started.
Another option that you’ll want to take advantage of is advertising on Craigslist. For reasons which go beyond my understanding, this remains a highly under-utilized option. You can advertise your services on Craigslist at the cost of $5 per post and a post will last up to 30 days.
Depending on how many people are using Craigslist in your area, one post may still be visible, without being pushed to the bottom, for the entire month. In other areas, it may be necessary to post once a day or so.
When creating a Craigslist ad, I’d strongly suggest that you do a few things. First, create a graphic to insert into the post. This should include your name, the services you provide, contact information, and so on. The standard size for a Craigslist graphic is 600 x 450 pixels. Also, you can use a limited amount of HTML when writing the text of your advertisement. So make it look nice.
Right now you may be thinking “Craigslist?” My answer to this is “yep!” People always look at me oddly when I tell them that this is an under-utilized option. Over the years I’ve suggested to various businesses (including attorneys, realtors, and others) that they advertise on the service. The same naysayers are then surprised at the fact that they actually make money doing so. These won’t be high end clients (you’ll typically only be doing very basic web design). But, again, it’s revenue to help you get started.
A final option for those starting out (and an important one at that) is to join a networking group through your local BNI chapter. BNI (short for “Business Networking International”) is a worldwide networking group which focuses on helping entrepreneurs grow their businesses through effective networking (I stress the effective part). I’ll be writing an article in the future on how to network the “right way” (spoiler alert).
In short, BNI is a way to have other business owners refer you business whenever the opportunity arises in exchange for you doing the same. It also allows you to meet entrepreneurs with whom you can form a business synergy.
If, for example, you want to build websites and apps for small businesses then you will likely need a photographer to help companies produce proper photographs of their products. Your local BNI chapter may include a photographer to whom you can refer business. That photographer, in turn, may refer you business whenever they do work for a company which mentions wanting to improve their web presence.
Don’t underestimate the power of networking, when it’s done correctly. BNI really does give you the opportunity to “level up” your networking efforts.
One of the downsides of the networking route is that it can be quite time-consuming. Also, if a referral source ever decides to get out of the game, then you lose your flow of business.
These are just some of the reasons why you can make a few bucks in the beginning through networking, as well as the other methods discussed above, but it remains important to build your brand and long-term business. Let’s talk about how to do so.
Freelance developers must build their brand and company over the long-term
It’s one thing to put time and effort into your business and to get a few bucks back in return. The real power of working for yourself, however, comes from building a brand and an actual company. You will then be able to charge higher rates and customers will seek you out, as opposed to you having to find them.
Building an actual brand/company helps you to look like this:
I’m assuming that you find this type of look acceptable. In order to get there, you need to build something enduring. There are several aspects to and options for doing so. Let’s take a look at the following:
- Why repeat customers, and referrals from former customers, will always be your most important source of business
- The importance of online reviews
- Leveraging a blog
- Leveraging YouTube
Let’s dive into each of these, shall we?
The first point, which I cannot stress enough, is that you have to provide your customers with both high quality service and a high quality product. This makes them want to use you again in the future and, importantly, turns them into a referral source.
Why is this so important? Simple - you can’t succeed otherwise. Think of it like this: Your marketing efforts lead to a phone call from Joe the baker. Joe has you build a basic $2,500 website for his bakery. You do a good job for Joe.
Six months later he refers you his friend, Bob the restaurant owner, who pays another $2,500 for a restaurant website. Then you do a great job for Bob and he later refers you someone.
Do you see what just happened? Your marketing only led to one phone call from Joe, yet that one phone call indirectly turned into two additional phone calls.
The above example relates to a crucial point. You’re not going to make it if you have to generate a marketing related phone call for every eventual customer. Doing so is resource intensive and kills your profit margins (if you’re able to stay in business at all).
If Freelancer “A” earns 10x the revenue of Freelancer “B”, it’s not because A’s marketing yields 10x as many calls. It’s because, while they do get more calls, they make sure that one phone call yields more than one customer.
This is how you grow your business exponentially. Conversely, if growing your revenue by 10x requires you upping your marketing by 10x then…….good luck with that.
So how do you make sure that you’re earning repeat business and referrals?
First, deliver a quality product in the time frame that you promise and DO NOT make excuses.
Second, be timely in responding to phone calls, emails, and other customer communications. Be courteous and simply treat your customer the way you would want to be treated.
In short - provide good service. While this may sound like something that makes you go “duh,” you’d be surprised at how many developers fail in this area.
Another important part of building a brand/enduring business is to consistently get good online reviews from your customers. Even if you're dealing with customers from a wide range of geographical areas, it’s vital that you have a bank of reviews with which potential customers can evaluate whether they want to hire you.
You can also refer potential customers to these reviews for their consideration. The reason I’m stressing this is that good reviews mean that your marketing won’t need to generate as many phone calls for your to make money. Let’s use a hypothetical to explain why this is.
Suppose that every $1,000 devoted to marketing, by Joe Developer, generates two paying customers. Now suppose that each of these customers pays Joe an average of $3,000. This means Joe nets $5,000 for the first $1,000 in marketing [($3k * 2 customers) - $1k of marketing expenses].
Now suppose Joe wants to double his business. He spends $2,000 on marketing this month and nets a total of $10,000 after expenses. This sounds fine and good until you consider the epic story of Jill Developer.
Jill Developer regularly gets good online reviews from customers while Joe doesn’t think that such reviews are important. As a result, people who find Jill online, or via referral, are more likely to hire her. As a result, Jill gets three clients for every $1,000 in marketing as opposed to Joe’s two clients.
So, Jill’s first three clients yield a net profit of $8,000 [($3k * 3 customers) - $1k of marketing expenses). This is sixty percent higher than what Joe gets for his first $1,000 in marketing spend. When Jill doubles her marketing budget, her $8,000 in profit jumps to $16,000.
Do you see how the gap in income is going to continue to grow between her and Joe, even though they are increasing their marketing budgets by the same amount? Getting good online reviews turns more of your marketing dollars into actual revenue. Neglecting the accumulation of reviews will leave you spinning your wheels.
There are a few tips to follow when it comes to reaching out to your customers for good reviews. First, while it may sound obvious, don’t ask for a review unless you’re sure the customer will actually leave a good one (you’d be surprised what some people do).
Second, it’s important to get the reviews on websites which people actually visit (Yelp, Google, Facebook, and so on).
Third, don’t just ask customers to leave you reviews. Simply asking will result in a very low percentage of your clients actually doing so.
Instead, once you’ve completed the project, call your client and thank them for their business. Then make sure they know that if they ever need anything they can give you a call. Ask if there was anything you could have done to improve your services and, if they are happy, ask if they will leave you an online review. Once they say “yes,” thank them and let them know that you will send them an email with review links. That email should look something like this:
Dear [name of customer],
Thank you for allowing us to assist you. As I mentioned, I’m including a few links for online reviews. We greatly appreciate you taking the time to say a few kind words. The links below will take you directly to our review profiles:
If we can ever be of assistance, please don’t hesitate to contact us.
The links to your review profiles should go straight to the review section and not the general page. You’ll find that this approach will lead to many more customers who say they are going to leave you a review, actually doing it.
Another tool for building a lasting brand is to develop a blog which speaks to the needs of your customers. This has been a key to our primary business which deals with providing solutions for law firms.
The key to developing a successful blog is to provide information that is, again, useful to your customers and not simply that which you want to write about.
Why do I stress this? Simple: one of the most common blogging mistakes I see is people taking the approach of “I’m going to write on the things I want to write about” as opposed to writing on the topics about which their potential customers are seeking information. Let me give you two examples of what I mean.
I wrote an article on how law firms can use Evernote as a tool for reducing clutter in their office. Over time, my analytics showed that article consistently receiving traffic. Since the article was popular, I wrote a comprehensive series of articles on how law firms can leverage Evernote to make their offices more efficient. Each of the articles in that series went on to generate significant traffic for our website.
Conversely, I also wrote a series of articles on how law firms could improve their cyber security (you would think this would be a big deal to those who handle sensitive information). The thing was, however, that our analytics showed those articles were receiving little to no traffic. In other words, our potential customers simply weren’t looking for the information (maybe that’s why law firm cybersecurity is so bad - but that’s a rant for a later time).
The moral of the story is this - monitor your analytics and write more on the topics that are proving to be popular and stop writing on the topics that are not popular. You’ll be surprised how many potential customers pick up the phone and call you as a result of you providing useful information.
As with a blog, it is also a good step to start a YouTube channel. The steps for integrating YouTube into your brand building are very similar to those involved in building a blog. This means that you should leverage your analytics and do videos on the topics your customers show interest in. Do not devote energy to topics which your customers are clearly not interested in.
Also, it’s important to actually put some effort into your YouTube videos. Do a few takes so you are putting out a quality product. Make sure you have adequate lighting, use a microphone, and do some basic video editing at a minimum (there are a ton of free/low cost and easy to use editors out there).
The one thing I’ll add on YouTube is that it’s natural to be nervous and apprehensive about doing video. Just remember this: the biggest YouTubers didn’t start out big. If you look at their early videos you’ll see a big difference in quality from where they started and where they are today. Everyone has to start somewhere, after all.
The big thing to remember, as we close out this section, is that you can make a few bucks with short-term strategies. Building a brand, however, will give you something which no one can take away and will lead to a far more lucrative business.
Action items for freelance developers who are ready to start bringing in business
The foregoing discussion provided information about how you can bring in business in both the short and long-term. It also discussed the importance of brand building so that you can increase your profits.
The following is a “to do” list which will help you get a stream of customers a flowin’:
- Start to think of yourself as a “problem solver” and not a developer
- Remember that your customers don’t care about code or technology. They only care about getting their needs met.
- Begin brainstorming the potential issues that your customers face, and how you can discuss a solution to those issues in ways that your customers will understand.
- Work on your “active listening” skills so that you can “hear” the needs and concerns which your potential customers are conveying.
- Begin the process of “short-term” business building so you have immediate revenue
- Make everyone you know aware that you are starting up. The goal of these conversations is not to sell your services to your current circles. Instead, it is to turn your current circles into referral sources.
- Complete a robust LinkedIn profile. Your profile should make clear that you are a freelance developer accepting work.
- Create robust profiles for yourself on services such as Upwork and Thumbtack. Consider bidding for jobs through these services.
- Make your services available through Fiverr and begin advertising on Craigslist as well.
- Join BNI or other similar networking groups.
- Begin the process of long-term brand building
- Create profiles for your business on Google My Business, Yelp, and Facebook. Begin getting client reviews on these websites and make the acquisition of reviews an ongoing process.
- Develop a blog which speaks to the needs of your customers. Leverage your analytics over time to ensure that you are writing on topics which interest your customers.
- Develop a YouTube channel which also speaks to the needs of your customers. As with a blog, leverage your analytics to ensure that you’re doing videos on the correct topics. Make sure you put some effort into your video production. This includes considering your scripting, lighting, sound quality, etc.
Freelance developers must develop systems to manage their business on a day-to-day basis (back to top)
Once you have customers coming in the door then it is vital to ensure that you properly manage your business on a day-to-day basis. Failing to do so will lead to inefficiencies and wasted time. This leads to two horrible things - decreased profits and unhappy customers.
Assuming you want to avoid these things, it’s important that you embrace your new role of business manager in addition to that of being a developer. When managing your business, you should focus on the administrative side of things as well as on the substantive work to be done. Failing to do so will lead to administrative problems which will pop up at bad times. These problems will then get in the way of your substantive work.
So, while administrative tasks may seem boring, it is vital that you give them the attention they deserve.
Too many freelance developers get into the mindset of thinking “I’m a developer, not a businessperson.” Well, if you take this mindset once you start freelancing then you won't have to worry about being a businessperson. Because you’ll go out of business so fast that the problem will simply take care of itself.
If you want to avoid this fate then focus on running all aspects of your business correctly.
This section is going to focus on the following areas when it comes to running your operation:
- Managing your business’s administrative and financial affairs.
- Managing your substantive development work in an efficient and profitable manner.
- An action list meant to help you develop procedures for keeping your business running.
Again, I can’t stress enough the importance of seeing yourself as a “businessperson” and understanding that your business is now development. Think of it this way - if a chef starts a restaurant and makes themselves head cook, they are now a restaurateur and not a “chef.” The same is true for your new business. Now let’s get to it.
Freelance developers must focus on their business’ administrative and financial management
The reason why I’m discussing the management of your administrative affairs before the management of substantive work is simple - this is the area where most freelancers get themselves into trouble.
Neglecting your administrative affairs leads to problems which have to be dealt with immediately. This means having to drop whatever current development task you're working on, telling a customer that there is going to be a delay, and putting out an unnecessary fire.
A simple example, which I’ve seen more than once, is the small business owner who never does their bookkeeping. At the end of the year, those books must be done so that the business can file its tax return. The business’ return must be filed so that the developer can file their individual returns.
Once tax filing deadlines are getting close, the small business owner has to drop everything, run around like crazy, and blow off their substantive work in order to get twelve months worth of bookkeeping figured out.
All of this could have been avoided by spending a small amount of time each week simply doing the books. Such weekly bookkeeping could have been handled in an orderly fashion, planned as part of a workflow, and handled in a way which did not disrupt the business.
The first step in managing your freelance business’ administrative affairs is to develop a monthly budget for the company as well as financial restraints.
Far, far, far, far (far) too many small business owners utilize “bank balance budgeting.” By this I mean that they simply look at their bank balance and they assume that having “X” in the bank means that they have “X” at their disposal. Gee, with an approach like that I can’t imagine why so many people have financial problems.
The crucial first step for your new venture is to set up a financial system. How to do so would be a very lengthy guide in and of itself. So, for the purposes of this guide, I strongly suggest that you read the book Profit First and implement its suggested systems. While there are certainly other possible approaches, I think this book gives a solid framework which will help those who struggle with financial management.
A key thing to remember when running a business is that your company’s bank accounts are not your personal account. You do not get to simply raid the business funds anytime you like.
An issue which I see far too often is when a business owner takes excessive withdrawals from their business account for personal purposes. The business then finds itself short on cash when bills are due and, to make up for this shortfall, the business owner then takes work at a reduced price to generate immediate cash. This reduced price work means there is still not much money in the business account and the owner has a hard time getting their personal bills paid.
This begins a difficult cycle which can be hard to break. By practicing financial restraint, you can avoid this trap.
The next critical point is that you regularly perform your accounting and understand your business’ books. I never understand the small business owners who don’t do their books regularly. Such business owners, as a result of not doing their bookkeeping, never actually know how much money they’re making. This can lead to a belief that you’re doing better or worse than you actually are.
To put it simply, if you’re not going to be regular about doing your books then don’t go into business for yourself.
How to do your books could easily be a course in and of itself. Fortunately, Erin Lehr of KPI Bookkeeping was willing to put together a group of instructional videos meant to get you started when it comes to keeping your books. She also put the slides from her presentation together into two separate documents. You may download her slides on money management here and her sample chart of accounts here.
Again, the following videos are introductory only (Erin's videos are embedded into a larger course, this link will open directly to her section of the video):
Again, and not to beat a dead horse, but it’s crucial that you handle your books regularly. If you need assistance then contact a bookkeeper such as Erin. Don’t neglect this chore.
One last point I’ll make, regarding managing your finances, is that you need to understand the difference between not having any business and not having any money.
I’ve consulted for way too many small businesses who call me freaking out because they have no money in the bank. The freaking out entrepreneur, however, starts these conversations by saying that business is dead. In other words, they assume that the fact that they’re broke is due to business being slow.
Upon talking to such people, however, it turns out that they actually have quite a bit of business. It’s just that they spent the money as fast as it came in, usually on indulgences (including large indulgences such as high end cars).
“Not having any business” would mean that you’re twiddling your thumbs and that you have nothing to be working on. If you’ve got a mountain of work to do, and no money, then it’s probably a sign that you need to practice better financial restraint.
It is vital that you manage your administrative tasks as well as affairs involving your finances. Administrative tasks include timely filing of any necessary documents with the Secretary of State, keeping your business licenses up to date, and so on.
Not keeping these affairs in order could be devastating. You don’t want to be sitting there, in the middle of a coding project, only to find out that you’ve lost your legal right to do business for the time being, all because you didn’t file a piece of paper with a regulatory entity. Know your licensing and regulatory requirements and, if necessary, hire an attorney to help you with these matters.
Freelancers must manage their development in an efficient manner
A freelance developer’s “substantive” work consists of the tasks which they are actually paid to perform. In other words - development work.
If you’ve come this far into this guide then I think it’s fair to assume you’re interested in making money. Assuming that you are on a quest for prosperity, and that you haven’t read this article because there was nothing interesting at the public library, we’ll devote this section to making your substantive work as profitable as possible.
As mentioned above, the key is to identify your high value activities and to ensure that such activities receive a serious and efficient time commitment on your end.
To help you get there, this section will discuss the need to focus on the right tasks, how to make sure you’re putting in the right amount of time, and tips for making sure that you’re using that time efficiently. If you focus on these things, then you’re likely to make more money. If you don’t…then you’re not.
The most important part of getting rich is making sure that you’re focusing your time into higher value activities. This concept is pretty simple: identify the tasks which yield the best results and do more of those tasks!
While that sentence may leave you going “duh,” you’d be surprised at how many entrepreneurs fail to recognize this concept. Let’s look at some specific examples, both in terms of your substantive work and your marketing activities.
Suppose you develop what you consider to be a typical small business website for $3,000. The site includes multiple pages, lots of media, and extra functionality (such as online ordering for a restaurant).
Now say that such a project typically takes you about twenty hours to complete. This means that this type of work yields you $150 per hour ($3k/20 hours).
Now suppose that you can drum up work building one-page “starter websites” for small businesses for $500 a pop. You can typically handle such projects in two hours (given that you’ll likely develop a number of templates to work from). This means these “starter” sites can be completed at a rate of $250 per hour ($500/2 hours).
While the latter may pay less in total than the former, it actually pays more per unit of input. A developer who actually wants to make money would focus on doing more “starter” sites and less on the larger projects I mentioned.
While the math I just laid out may seem obvious, you would be shocked at how many developers (and small business owners for that matter) fail to focus on the work which yields the most per unit of input. This can be due to not keeping track of the inputs (i.e. not tracking how much time you’re putting into something) or simply focusing on the price tag as opposed to the hourly profit.
Whatever the reason, those who fail to identify their most profitable activities, and focus on them, are making a big mistake.
Mark Cuban is on record as saying that diversification is “for idiots” and Warren Buffett is on record as referring to diversification as “madness.”
This is also true when it comes to the activities you are engaging in as a freelancer. If you identify an activity as being more profitable than any others then it makes NO sense to engage in other activities. Instead, you should be trying to drum up as much of that profitable activity as possible.
This is true in terms of your substantive work, your marketing activities, and pretty much anything else. In short - focus on high value activities.
Once you identify your high value activities then it is vital that you put a lot of time into them. Think about how much you need to work should as a function of efficiency and time (a few speeches from Elon Musk really opened my eyes to this).
Consider it in these terms: Jill and Joe perform similar tasks as freelance developers. Jill, however, works twenty-five percent more efficiently than Joe, meaning that Jill can get twenty-five percent more done in an hour.
You might think that Jill is going to make more money than Joe, right? The problem, however, is that Jill only works thirty hours a week and thinks her increased efficiency makes up for any lost time. Joe, by contrast, works forty hours every week. At the end of the week, Jill’s thirty hours of work will produce the same amount that Joe would produce in 37.5 hours (30 hours worked by Jill * 1.25 of Joe’s efficiency).
Since Joe works forty hours each week, he’s going to get more done than Jill. Since Joe produces more than Jill, due to his better work ethic, he will make more as a freelance developer. If Jill had just worked forty hours, like Joe, then one week would yield an amount of production that would have taken Joe fifty hours (40 hours * 1.25 Joe’s production = 50).
What you can take from the epic story of Jill and Joe is that you have to put in the hours while working as efficiently as possible.
The foregoing concept is why I put a minimum of 43.3 hours into my business each week. My hourly requirement of 43.3 hours is based on a simple formula: if I’m working at the same level of efficiency as some hypothetical person, and that individual only works forty hours a week, then by putting in 3.3 extra hours per week I add one working month to my year.
In other words, someone working at the same level of efficiency as myself, who is only putting in forty hours a week, will take thirteen months to equal the level of production I reach in twelve months.
It’s important to stress that the average of 43.3 hours a week is a minimum that I put in. If there is additional work which must get done due to some type of deadline, then I put in extra time. Any extra time that I put in can then be taken off from a later week.
When working efficiently, however, it isn’t too often that I have to go over my 43.3 hours. By adding an extra working month to my year, using this method, I feel my production greatly increases.
The point of putting in your hours is so important that I’m going to rant about it for just another moment. An overhyped belief is that it is important to work “smarter not harder.” To this idea I say:
It is, instead, important to work smart and hard. I deal with plenty of self-employed individuals who put in many of hours and manage to get nothing done. This is because they work in an extremely inefficient manner. You can put in sixty hours a week, but if you’re only working at fifty percent efficiency, then the average Joe will equal your production in just thirty hours a week.
At the same time, the math shown above in the hypothetical about Jill and Joe shows that you do need to put in the time. This is why the amount you produce, which largely dictates how much you make, is a function of both working efficiently and putting in the time. There can be no compromise on either.
Here’s an important tip, which I cannot stress enough, for working as efficiently as possible: always assume that you’re operating inefficiently.
I work with way, way, way (way) too many people that are convinced that they are operating in an efficient manner. After going through how they do things, however, it quickly becomes obvious that improvements can be made.
My approach to my business is to assume that I am inefficient and to be in a constant state of trying to do things better. Remember that no matter how well you think you are doing, there is always room to do better.
Now that we’ve gone over the importance of identifying high value activities and putting time into them, let’s give some specifics on how you can run your business more efficiently.
Again, it’s vital that you streamline your operations. It’s too easy, after all, to work all day, not get anything done, and then go home feeling like you’ve actually accomplished something simply because you put in time.
The tips below (which by no means should be considered an exhaustive list) will help you eliminate “noise” which causes unnecessary distractions, eliminate unnecessary work, and avoid self-inflicted extra tasks. Let’s get to it.
How to work more efficiently:
The first step for working efficiently is to develop the Only Handle It Once (O.H.I.O.) method. This is a straightforward time-saving idea which too many entrepreneurs fail at.
The idea is simple. Do not deal with an item unless you are prepared to take action on it at the time you deal with it. Consider how often the following occurs. Joe receives an email from a customer. He skims it and says to himself “I’ll deal with this later.” When “later” comes, Joe then has to read the email a second time before dealing with it. In other words, Joe to take the time to read the email twice instead of just reading it once and dealing with it.
Now multiply the wasted time of one extra reading by every email received in the course of a year. The time lost quickly becomes mind-boggling. Instead of making this mistake, Joe should not even open the email until he is prepared to deal with it. This will save him the time of a second reading.
The O.H.I.O. method can be applied to a number of different contexts. Imagine every piece of administrative paperwork you receive (notices from the Secretary of State, forms you have to fill out, and so on). As with the email example above, it’s easy to look at such a document and put it off to the side for later handling. Again, when the task is completed this means you will have reviewed the document twice.
The idea of Only Handle It Once means just what it says - do not open an email, pick up a piece of paper, or start a task unless you are prepared to actually deal with it. The time savings that come out of this method can be extreme.
The next step for working more efficiently is to adopt the mindset that you’re not going to start on something until you finish it. In other words, don’t spend a little time each day working on numerous projects. Finish one project and move on to the next one. Failing to do this means that you never get into a groove with your work.
Let me explain this by way of personal example. A big part of our primary business is adding blog posts to our client’s websites. Also, we recently switched our virtual private server from the company we were using to Siteground. As a result of this switch, we had to migrate all of the websites we manage from one server to another (this was a lengthy process).
In regards to adding client content, and migrating websites, we could have taken the approach of adding content to a few sites each day and migrating a few sites each day. This would mean constantly switching tasks, however. So, instead, we set aside time where we weren’t going to add content and were going to devote ourselves to site migration until it was finished.
Once that was done, we devoted ourselves to adding content to the websites until that project was completed. In other words, we finished one thing before we moved on to the next.
The benefit of this is extreme: when you switch tasks it takes time to get into a groove with the task you just switched to. This “lost groove time” greatly reduces your efficiency. It is, therefore, important to finish one task before moving on to another. Don’t keep jumping back and forth between partially completed projects.
When taking on new freelance projects, I take a “one at a time approach.” If I’m building something out for customer One, and I know it’s going to take me a week, then I let potential customer Two know that I won’t be starting their project for a week. I also adjust my proposed delivery date accordingly.
Manage your workflow so that you’re working on one thing at a time, but so that you have a stream of work lined up.
It is common for us to have multiple projects lined up and under contract. We, however, always finish one before moving on to the next. We do not jump back and forth between projects. This allows us to get more done, in less time, and we make more money as a result.
The third step to increasing your efficiency is to deal with problems as soon as they arise. And when I say “as soon as they arise,” I mean immediately. Not doing so will simply allow the problem to swell and become larger.
Here’s a simple example - my business partner pointed out to me the other day that the app we use for syncing contacts between everyone’s email accounts wasn’t working. I immediately stopped what I was doing to fix it.
It would have been easy to say “I’ll deal with this later.” In between that moment and later, however, people in our organization would have needed to make notes about customers, to pull up contact info, and so on. The app not syncing would have created problems in others’ workflow. This would result in a small problem (the app not working) compounding into larger issues.
Not dealing with inefficiencies immediately can compound in other ways. Consider this real world example: I was once talking to a customer on the phone while they were heading to their office. Once they got to their office, it took them extra time to get in the door. This was due to the fact that the customer had an excessive number of keys on their keychain and she said “I don’t even know what most of these keys are for” while we were talking. When I talked to the customer again, about a year later, they made the same comment.
Now consider this - the customer probably loses thirty seconds a day fumbling through keys that didn’t even need to be on her key ring. That’s 2.5 minutes lost per week. Over the course of the year that works out to roughly two full hours that are lost. 2.5 hours of substantive work likely works out to several hundred dollars. If this customer had taken a time out to take unnecessary keys off of their key chain immediately after realizing it was a problem, they would be making several hundred dollars more a year.
The foregoing story of the key ring may seem silly to some. It proves the point, however, of dealing with issues as soon as they arise. Failing to do so results in ongoing lost production. Taking the approach of “I’ll deal with this minor annoyance later” will result in you losing many hours over time in order to save a minute today. Don’t sacrifice hours to save a minute.
The fourth, and one of the biggest steps towards increased efficiency, is to improve your management of communications. Communications are one of the biggest ways you can lose time, for completely unproductive purposes, while feeling like you’re getting work done. Let’s look at the need to completely avoid real time communications and to better manage email.
One of the biggest problems in many tech companies (and businesses in general for that matter) is the use of real time messaging platforms such as Slack, Microsoft Teams, Google Hangouts, and others.
The problem with these platforms is twofold. First, they result in people sending a large number of small messages as opposed to requiring that they put all of their thoughts into one message. This means that the reader of these short messages has work in a constant state of distraction. The individual gets far less done as a result.
Second, and perhaps worse, is the fact that these platforms lead to co-workers/employees/partners sharing random thoughts that don’t really have anything to do with the project at hand as well as the sharing of messages essentially saying how much one liked the last message.
These types of interruptions contain no actionable information and, instead, just lead to the reader being bombarded by extra noise. It is far more efficient to read one comprehensive message, which is why we avoid these types of platforms.
Many developers could also improve how they manage email. It is a mistake to read emails as soon as they come in. Instead, you should completely deal with your email inbox during one to two set times per day, and avoid it for the rest of the time.
There are several reasons for this. First, as stated above, you shouldn’t read an email unless you are prepared to act on it. Second, it is important to consider how people tend to use email. Way too many people fire off a message as soon as a thought enters their head.
It’s not uncommon for me to open my inbox in the afternoon and have multiple emails from the same customer. By waiting to deal with emails until a set time, I can then read all of their emails and write one consolidated response. This is opposed to writing separate responses, which would take more time.
Also, you actually create more email for yourself to read if you respond to messages immediately. Suppose Joe Client sends you a random thought and you respond. Now suppose that Joe does this several more times, and you respond, during the day. Joe is likely to respond back to each of your responses (creating a large number of emails to read). By writing Joe a consolidated response, at a set time of the day, Joe will only have one email from you to respond to. The net result is far fewer messages hitting your inbox. This saves a great deal of time.
After reading the prior paragraph on email management, you may be saying to yourself “but my clients want to hear from me right away.” If you go through your inbox at least once a day, then they’re never going more than about 24 hours without a response.
If something is so important that someone can’t wait 24 hours for a response then they should be calling you on the phone as opposed to shooting you an email.
I never go through my email more than twice a day and our customers feel that we give good service. Save yourself time and only respond to emails during set time blocks each day.
When you put all of the above-mentioned concepts together you will greatly improve your efficiency.
By using the O.H.I.O method you will reduce the amount of time you spend reading email, reviewing documents, and so on.
Only starting projects when you are prepared to finish them, and working on one thing at a time, reduces distractions and allows you to stay in a groove.
Dealing with problems as soon as they arise will result in you losing minutes today, but saving hours over time.
Finally by improving/reducing your communications, you will avoid distractions and actually have fewer messages to respond to. Put these things together with actually putting in the hours and you can look like this happy person:
Suppose the foregoing efficiency tips make you twenty percent more efficient than the average developer. Also, suppose you average a minimum of 43.3 hours worked per week (the reason why I use this number was explained above). Finally, suppose your competitors average forty hours a week at average efficiency.
You will achieve in one year what it takes your competitors roughly 15.5 months to achieve. If you focus all of this production on high value activities, then your bank account will grow quickly.
Action items for freelance developers who wish to better manage their business on a day to day basis
Freelance developers can greatly increase their net income by better managing all aspects of their day-to-day operations. The following is a list of “action items” which can help you to immediately increase profits:
- Properly manage your financial and administrative affairs.
- Read Profit First and adopt its suggested financial plan for your business. Alternatively, develop your own financial plan and stick to it. Sign up for accounting/bookkeeping software and get in the habit of doing your books regularly.
- Research and learn about administrative requirements you must meet (i.e. filing for a business license). This will vary by state and locale. Your local Secretary of State’s Office may be able to assist with this information.
- Manage your development work in an efficient manner and identify your “high value” work opportunities.
- This is the work that pays the most per hour of labor, not necessarily the most in total.
- Make a plan to focus your business on these high value activities and maintain a narrow focus in regards to the type of work you take.
- Decide on a minimum number of hours that you will commit to the business each week. Make sure you hit this hour requirement on a weekly basis.
- Adopt the Only Handle It Once (O.H.I.O.) method.
- Adopt the habit of not starting on something until you are prepared to finish it.
- Adopt the habit of dealing with problems as soon as they arise.
- Improve your management of communications.
- Avoid “real-time” communication platforms such as Slack or Microsoft Teams.
- Set aside time each day in which you will deal with email. Do not deal with email outside of these designated time periods.
In no way is this guide meant to tell you every last thing you need to know about running your own business. Sticking with these tips, however, will help you to get out ahead of your competition.
Keep in mind that being successful in business requires effort in all of the areas described above. You’re never going to be better than the area you are weakest in. Because of this, I can't stress enough that you need need to be striving for constant improvement in all aspects of your business.
I am a web developer who maintains websites and other software on behalf of law firms through SEO For Lawyers. I am also a co-founder of Modern Website Design. I enjoy writing on issues related to small business and entrepreneurship.