I decided to become a software freelancer in November 2015, after doing side gigs for six months. My stint as a freelancer has successfully progressed over the span of the last four years. It has thrived either sides of a year-long trip India 360. The number of months I have freelanced so far has ticked to 34, which is nearly 3 years. In this article, I explore some Q&A about freelancing, answering some questions, giving tips and busting myths. If you are embarking on freelancing, then this article is for you.
Q: I have my updated profile on LinkedIn, Fiverr, etc. But no one is approaching me with projects.
A: The foundation of freelancing is trust. Someone has to trust that you will deliver their project flying solo. They are taking a huge risk by trusting a single person to deliver something for their business. The completion or failure of that ‘something’ could mean the difference between the business booming or going bust. No one owes you anything based on your graduation, your claimed skills or your star-studded resume mentioning that you worked for a large cap company and programmed with or ‘managed’ large teams to deliver projects in the past.
To a business seeking a freelancer, only certain points matter. Can you write software yourself (as against managing a team that can write software) ? Have you written complete or large chunks of software in the past and was it a success? Plus points for you if that project is still live.
To be a freelancer, you must have something tangible to show. A piece of software for which you wrote most of the code or at least the code’s backbone. It can also be a personal project that you wrote from scratch yourself and manage actively. An app live on a mobile app store, a website / blog that you host on your own server, an online service that you wrote yourself, etc. There must be as much of your TECHNICAL skills in that project as possible. Management skills are overlooked.
Q: Can I work from a beach, mountain or a lake-side
A: It is common for TV shows, magazine articles, blog posts and YouTube videos to glorify software freelancing as something you can do from anywhere in the world. That scene where someone sits with a Mac Book Pro on a beach shack. The incredible scene where a programmer concentrates on a line of code by sitting on the edge of Grand Canyon. Please STOP endorsing that.
Laptop on the go is only good when you need to check mails and forward them to the ‘team concerned’, typical of management people. For them, technology is only the means for short bursts of communication, not critical programming work and project delivery. You can’t even work reliably on complicated formulae on a spreadsheet when your mind is in ‘holiday mode’.
To deliver a complicated algorithm inside a working piece of software, you need an environment conducive to work. A quiet room with a desk, preferably requesting people not to disturb you for a while, a reliable Internet connection, a way to test your code on multiple machines or devices and an enormous amount of battery. Compiling and running code is both memory and processor intensive. You will be surprised how soon your battery drains. Writing code needs utmost concentration. There should be no distractions like a gorgeous natural landscape, the noise of tourists around you or the concern that water might seep into your laptop.
Q: My client wants me to come to his premises. I can’t work on this project from home. What is the point of such freelancing?
A: It is still freelancing. The only complete definition of freelancing is that you are on your own with no team managing you or you not managing a team. You get to choose how much you earn and how long you will be part of the project. Everything else, such as working from your home, working only four hours a day, choosing your working hours are simply perks that you enjoy with certain projects. It’s up to you to choose to work on projects with perks or those without but with great scope in the future.
There are certain projects which are very lucrative and even ground-breaking. They may be working on special algorithms or new hardware. They will require that the software code does not leave their premises so that secrets can be protected. They may use custom hardware for which tools are available only at their premises. They will require you to come to their office no matter how experienced or capable you are. If the project is really lucrative and can change the future, then you should relax some perks.
Q: My payments are delayed
A: You are not in a salaried job where things will happen like clockwork. Your money won’t come to you magically at the end of the month. You are a freelancer and there is no team managing your money for you. Invoicing and collection are solely your responsibility.
Rather than complain about your client, it is your duty to take initiative and ensure that the client pays. You need to think strategically and hold something to ransom until the client pays. You need to learn to be firm and have a conversation with the client that their delays are not helping you with your monthly financial plans and that if it continues you will have to cut your losses and leave.
Q: Can I rent an office?
A: When you are freelancing, you are working with your own money. You are not a company. No investor is backing you, nor do you have a partner who will lend a helping hand when you are in trouble. Expenses should be kept to minimum and necessary.
Co-working spaces may advertise that you get to enjoy an office-like space or that you will meet people that may lead to opportunities. But such spaces cost ₹₹₹₹₹ per month and you are better off setting up your home as an efficient office. Upgrade your laptop and your Internet. Purchase software subscriptions and licenses if required and become a part of online forums or talent pools. That is enough.
Q: Can I hire people?
A: There will be overwhelming projects. There will be projects that require skills you don’t have. While my preference is to reject modules that are out of my scope, a company may want to entrust everything to a single person. They may ask you to hire people where you lack skills or bandwidth. They may even agree to pay a good amount of money for such hires.
In such cases, be sure to hire only for the duration of the project. Your hires should be on a per project basis. At no point in your freelancing career should you commit to monthly salaries for people, nor expect people to commit to you for long term. As a freelancer you will often go weeks or months without projects. You don’t want to be paying steady salaries during such lean times.
Q: I haven’t got a project for three months.
A: Every freelancer, however successful, goes through a lean patch, where he/she struggles to land projects. There are several reasons for this. The software market may be currently down. Your skills may be outdated and the industry may have moved on to other requirements. Your skill is no longer a niche and the market must now be flooded with options other than you, perhaps even with people less pricier than you are.
During such lean months, you should try to find out why you are irrelevant. You may need to learn new skills that the industry is slowly moving to. The skill should neither be too new for companies to consider, nor too common place that the market is flooded with talent for it. If the market is lean, then it is an opportunity to work on your own software which will become your asset. You can release the service as a trial version and later price it economically enough for the market to consider paying for it. Once it gains traction, it will become your cash cow.
Q: Where should I specialise?
A: The answer to this involves three questions.
- Which technology / programming language do you love and believe that you will not get bored of long term.
- Are you good at it? Have you built successful projects with it?
- Is the industry ready to pay freelancers for it?
Here is my own personal example. I am good at Android and the industry pays well for as app building. But I don’t enjoy Java language or any of its derivatives like Kotlin. Nor do I enjoy building user interfaces. So I refuse Android projects since I don’t enjoy them.
I love embedded technology and working on small devices such as Raspberry Pi or Beagle Board. The industry is also adopting these devices rapidly for their smart devices. But I am not good at those platforms yet. I have work to do before the industry will trust me to deliver such projects.
I love writing programs in C/C++. I am good at it and have experience worth several years in the languages. But it is hard to find freelance projects in C/C++ or any that will pay well. C/C++ is used to program custom hardware or device drivers these days. Such technologies are proprietary and companies hire full-time developers, who are made to promise that they’ll keep things secret. Freelancers are considered risky outsiders. Another good use for C/C++ is for Linux kernel development, which is seen as experimental. These projects fail easily and companies don’t pay for it. They rather look for voluntary programmers who work for free and like an additional line on their resume.
Answering those three questions, I stick to web applications, NodeJS applications and Python programs.
Q: Should I take up projects from big companies or small ones?
A: Big companies usually do not hire freelancers. If they do, they impose more terms and conditions. But on the positive side, they offer higher pay. There are systems in place. Most things are automated. Requests are dealt with in a timely manner. Doubts are cleared fast. Big companies behave more predictably and follow the rules of the contract between them and you.
Small companies are just getting started, so you have more bargaining power for perks. Not all of them have systems in place. You often have to take the initiative to introduce systems to clear hurdles in the project. Even the requirements for what they want you to build are often vague.
Q: How do I know when to take the plunge?
A: Freelancing is always started as a side gig. You should constantly measure how much you are making from the side gigs. There are two cues to quit your day job and to enter the world of freelancing full-time. The cues must be considered ONLY if you have delivered at least three projects over the last six months to a year as a side gig.
The cues are:
- When you have at least six times your monthly expenses in your savings account. This makes sure that you can run your home even if you don’t have projects for six months.
- The average income you gain from freelancing per month should exceed your monthly expenses. It is not necessary for the income to be more than your last salary.
Q: Should I be an individual or a one-man corporation?
A: It is common to be advised to set up your own private limited company with you as a proprietor to save taxes. I have calculated that the cost of establishing and maintaining a private corporation far exceeds the tax benefits.
First, there is an upfront cost for registering a company and its tax records. If you don’t like the name you registered and later want to change it, then there are costs for that too. There are even costs if you want to deregister your company.
Second, as a freelancer in India, I do not need an audit on my income, expenses and taxes by a chartered accountant. But it is mandatory for a company’s financial statement and tax statements to be audited and signed by a certified accountant with rights. The fees for that signature is very high and it recurs every year.
Only start a company when you are ready to establish yourself as a business with partners and multiple employees. Opening a corporation to reduce taxes and then managing that paperwork on your own is a distraction and a productivity killer.
Q: When should I stop being a freelancer and start building a team and hence a business?
A: I haven’t seen such a day despite having flown solo for four years. So I am not an expert for this comment. But here is what I feel.
You may consider hiring a team when you have a steady stream of good businesses wanting to work with you and willing to wait for you for up to a month. You genuinely like these clients and feel that doing business with them is a privilege. They feel the likewise. You have already worked with these clients, earned a lot of money from them and there is a good relationship going. In such a situation, it would be bad to lose that client just because you are not available to work with them or you can only work with them months later. If you have two to three clients like that, then it is time to expand your operation.
Q: How often should I learn?
A: You have to learn all the time. Software is a field that changes everyday. What you learnt a month from now may be outdated today. You must prioritise learning new skills, taking existing skills to new levels, practising and letting old skills go.
You must set aside at least one day a week where you refuse to work for clients because it is a day for you to learn new things. Work and routine should be avoided. For me, weekends are days to learn something new.
Q: Should I be financially literate?
A: Absolutely. Since you are a freelancer, no one is managing your wealth for you. You must be financially literate to manage the following things.
- Income: You must record all the income that you get. This will be payments from clients, but can also be other things such as dividends in stock investments, interest paid by your bank, etc.
- Expenses: It is important to note down expenses so that you know how much is flowing out of your hard-earned money. Also some expenses like Internet and telephone should be noted down seperately as business expenses, so that you don’t have to pay taxes for them. Your other expenses such as food, fun, etc are part of your lifestyle. It is necessary to know your monthly lifestyle expenses without having to look at your expenses sheet everytime. If you spend enough months recording expenses, an average will stick to your mind.
- Cashflow: Often, people are good at staying on top of income, but they forget about cashflow. Income may be recorded in advance. E.g. if a company agrees on contract to pay you ₹ 1,00,000 for a project, that is income. You may record it as income this month. But the client may pay you just an advance of ₹ 20,000. That is cashflow. ₹ 80,000 will be the cashflow three months later. Expenses may also be recorded now, but deferred for later. E.g. payments using your credit card. Cashflow is the actual money you received minus actual money you spent. The value may be different from profit, i.e. income minus expense.
- Investments: It is important to know where to invest all the income you earn. You must learn about different financial instruments and know what is good for you and for how long.
Q: Where can I find projects?
A: When you first move to side gig mode or from side gig to freelancer mode, your projects will usually come from your friends from your previous companies. One of them might have moved to some other company which is looking for freelancers. Others can come from companies of relatives. The first couple of projects always come from people you know or through references from people you know.
Once you have those projects in your resume, you can move to other sources such as LinkedIn. Some companies act as freelancer pools, i.e. they ask freelancers to sign up on their website and contact you when a project is available. Some of these websites make you go through a rigorous screening process to see if you are worthy of their clients, e.g. Toptal. They make money by taking a cut from your income. Another source is through task-based websites, where tasks are posted by potential clients and you can apply to do it for them, e.g. ODesk.
Finally, you can be a freelancer who creates his / her own service online and sells that service to multiple clients. E.g. what if you know how to convert videos from a high quality format to something that can be saved in 2MB. What if you have a knowledge of commodities market and you make an online service for recommendations on buy / sell / hold? You never know which of these gigs will become a successful business.
Q: When should I start worrying that my freelancing stint is not working?
A: That’s quite measurable. If your average monthly income is less than the typical amount you spend per month, i.e. lifestyle expenses, then you should be concerned. If your savings account or emergency fund can last only another two months, then it is time to quit freelancing and re-apply for a job. Or you can take up a gig where your desired perks are not met, e.g. number of hours, working from home, etc.
Q: How much do I charge?
A: This is a common question and has no single valid answer. There are several pricing models.
When you start freelancing, you should stick to the simple hourly or daily model, i.e. you charge a certain amount per hour or day of work. You must record your working hours diligently and frequently tally it with that of the business that hires you, since they also keep tabs on you. This is typically called the “engineer’s model” of pricing, where the value of the project is measured based on your effort.
With experience and as you enter a lucrative niche, you should move to the “businessman’s model”. A businessman always values a project based on opportunity. When my project is delivered, how much will this company make out of it? What costs am I helping this company cut with my project, by automating this operation? What is the cost of the alternative solutions which achieve the same thing? If the current solution used by the company requires a recurring payment and my new solution requires a one-time payment, how much total savings will they gain over the next 1, 5 and 10 years?
These questions are hard to answer and require a lot of valuation, guesswork and even guts. But once you are sure, you can stand your ground when the company pushes for a lower price. You can present them facts and also your observations.
Q: How is freelancing different from being an employee?
A: When you are an employee, what you earn is decided by someone else. No matter how lucrative the project that came in, you will always earn a fixed amount every month. Raises and promotions are also decided by your employers. With freelancing, you can earn as much money as the project is lucrative. One project earns you low, while another earns high. Employees are taxed at a higher rate than freelancers. This is because freelancers, like business, need to pay tax only on profits. If they maintain a seperate statement of expenses specific to their practice, such as Internet, telephone, etc., then those amounts are shaved off from the taxable income.
Employees are entitled to certain benefits, such as retirement plans from big companies, corporate environment, a chance to enjoy things on the company’s tab and the security of a monthly salary. In freelancing, you rarely meet other people, don’t get perks at company expense and are not guaranteed a fixed income every month. But you control how much you earn, by being smart and landing lucrative projects and you get to keep all the money.
Q: How is freelancing different from owning a business with employees?
A: If you have a business with employees, then activities that erode your software engineering time will be handled by others, e.g. accountant, errand boy, scheduling, etc. You will also hire software engineers to work under you. Eventually you will be part of business development and stop writing code. This may be a good thing or a bad depending on your preferences. But building a business is a key to financial independence, i.e. your monthly expenses are met without you having to work directly on writing software code. You will be more focused on talent development, acquiring clients, etc. One big hurdle in business is that you have to commit to pay a monthly salary to your employees. So it is necessary to bring in income all the time. While you don’t directly work in the business, you do have to work on the business.
In freelancing, you will always be coding. Your technical skills will always be used and stay upto date. Eventually, you may be doing more gigs or you may have set up online services that others are paying for on a recurring basis. But you also have to take care of your finances, issues with clients and service outages. One good thing is that there are no employees, so you don’t have to pay salaries. This helps you relax and take a sabbatical.
Freelancing can bring you a life of freedom and control. You are free to choose which project to work on. You are usually given autonomous control to use any technology that you see fit. But you are also responsible for plenty of things not related to software engineering. This is because you don’t have a team to take care of them like when working for a company or when owning a business. You should get on top of these issues and build systems as soon as you can. Freelancing has the potential to reduce the amount of time you work per day and may even give you such financial freedom that you need to retire very early. But this is possible only if you take control and responsibility of your practice and don’t play victim when adversity happens.