Freelance Software Development and Money

Freelancing can be extremely rewarding. It can help you become more self reliant, learn to sell, negotiate, and handle finances, and can ultimately help you earn far more money for your skills than you would in a salaried position. You don’t need to be tied to a single geographic location, and you don’t need to commute.

Maybe you’re already freelancing, or maybe just starting out. Whatever the case, freelancing isn’t for everyone. It’s not a ticket out of working hard, and you actually need to know what you’re doing.

I’ve been a freelancer in the US for twelve years. Here’s the article I wish I’d read when I started — sure would have saved me a lot of time and money.

Charge enough to do good work that you understand

A common mistake made by many young freelancers — and one that I made, is taking on over-ambitious projects for too little. When you don’t have work you may be tempted — and starving changes things — but in general, you should only take on a project when you understand the requirements, are confident in your ability to meet them, know what the unknowns are, and are sure you’re going to average enough on an hourly basis to make it worth your time. If you can swing it, work on a personal project or learn something new instead of taking on a project that is too ambitious for the budget. There are plenty of projects out there, that while maybe only netting a few hundred dollars, also only take a few hours to complete. $10,000 may sound like a lot of money, but if your rent or mortgage payment is a thousand bucks a month, and you’re realistically going to work six months to do a crap job, it’s worth passing on. I barely scraped by until I had sufficiently learned this lesson.

If you’re working for so little that you’re practically volunteering your time, just quit and start actually volunteering your time on something you care about.

Never work for free, unless you’re volunteering or working in open source

I generally never made this mistake — but I see people make it all the time, especially new programmers. I’ve spent many hours intentionally volunteering over the course of my career, from building a website, videos, and promotional materials for a great charity, to starting, organizing, and supporting a hackathon which grew to hundreds of attendees per event before being wound down. I never took a dollar for my volunteer work, and I got a lot out of it.

One thing I’ve never done, is work on deferred payment for a startup, or for free, hoping to “get my foot in the door.” Unless you’re interning for Google (and I think they generally pay their interns), this almost never works. You’ll end up broke, and your only experience gained will be doing the work the paid employees don’t want to do. You’ll feel like a fool.

So…never work free:

  • Even if you’re just getting started
  • Even if it’s for a friend
  • Even if your startup “needs” you to
  • Even if someone claims it’s temporary
  • Even if “the check is in the mail”

Spending an hour giving advice to someone is fine, but don’t start coding until you’re confident you’ll be paid for it. I’ve known far too many people who fall into this trap and then end up needing to be financially supported by their friends and family. For their sake, don’t let your foolish business decisions become their burden.

Get things in writing

There are some times that you can do business “on a handshake.” Those times are when you’re doing a small project for trusted friends or clients you’ve had a professional relationship with for years. In all other cases, you want the terms of your engagement in writing. While a great project agreement usually involves much more, at a bare minimum you should establish:

  • What the expected deliverables are
  • How much you’ll be paid
  • What the payment terms are
  • What the penalty is for late payment (including interest)
  • A termination clause

This is NOT overdoing it. This is how you establish a working framework with someone. This is how you protect yourself from future problems.

It’s also sometimes a good idea, especially with new clients or clients who you have invoicing problems with, to get a deposit, and sometimes even a retainer. The retainer model works well if you honor your commitments (otherwise, you won’t be getting retainers for long), because it gives you peace of mind knowing that at least the first X hours you work for the client, you’ve already been paid for.

Always have more than one client

You never know what’s going to happen. Your client could get hit by a bus, run out of funding, or hire someone cheaper. You could also simply get tired of the project. It’s in your best interest to diversify.

Work with an accountant, but know the laws and review your own statements

At least every 90 days, spend some time reviewing every transaction. This will help you stay on top of your expenses and reflect on which projects (if any), are more trouble than they’re worth.

Read at least the general overview for the tax code which applies to you.

Mint and TurboTax will only go so far here. Especially as your career matures and your financial situation becomes more complex, it becomes essential to have someone you can trust giving you sound advice and accounting for the situations which TurboTax and H&R Block never could.

If you’re looking for one, I can give you a reference to someone outstanding who handles remote work, or you could ask around in your own personal network.

Fully fund your retirement accounts

The best way that you’ll be able to set yourself up for a better future is to save money, and the best way to save money is through tax-free retirement accounts. Many people don’t know this, but as long as you structure it properly, it’s perfectly legal to fund a startup through funds you invest from a retirement account. You simply need a private IRA/401k administrator who can handle this.

How much can you squirrel away tax free? As a freelancer, potentially around $60,000 per year. Set up an Solo / Individual 401k, as well as an IRA, and max them out. I generally prefer Traditional over Roth for my personal financial goals, but that’s deep topic which is outside the scope of this discussion. The essential difference is that a Traditional allows you to deduct money from your taxable income now, while a Roth has you pay money now but allows you to make tax free withdrawals in retirement. New Directions, which gives you extremely flexible investment options (they’ll basically cut a check anywhere you want and handle all of the IRS paperwork) and Vanguard, a non-profit with low commissions, both offer these plans.

Again, you don’t have to stick to investments in stocks and mutual funds here — if you structure it correctly, you can buy bitcoin, gold, land or other real estate, invest in your own startup, and much more — totally legally.

Get every tax deduction humanly possible

Many freelancers don’t know just how much they can legally deduct from their taxes. There is a standard deduction which all tax payers are eligible for, but sometimes you can save much more money if you itemize your expenses. Here’s a short list of things which you can deduct all or some of from your taxes:

  • Home office (based on the square footage in your home or apartment used as a dedicated work space)
  • Mileage / travel expenses (including food, housing, meals)
  • Subscription software services
  • Business communications tools (MyFI, business phone number, etc.)
  • Tax preparation fees (seriously)
  • Professional education (conferences, books, etc.) that help you maintain or improve existing skills (but are not switching careers)

There are far more. Knowing the tax code will really help you get all possible deductions.

Consider expatriation

Living outside of United States territory as a US citizen can offer incredible tax incentives. Through the foreign earned income exclusion, you can be receive a deduction of over $100k/yr on your taxable income.

I personally moved to Panama, a country that does not tax you on income from foreign sources, so that I could take full advantage of this huge savings.

Take advantage of tax credits

Tax credits are preferable to deductions because while deductions lower your taxable income, credits actually give you a dollar for dollar reduction on your tax bill. Here are a few:

  • Buy a new electric vehicle (even one you got on credit and let people rent from you on Turo to pay the balance) and get up to a $10k credit between Federal and State taxes. Be sure to calculate the cost of insurance to make sure this is worthwhile.
  • Want to take some classes? Make sure you get an education credit.
  • There have been other Renewable Energy credits at the State and Federal levels for years now, such as the Solar ITC, which was just renewed in December.

Other tax credits are possible as well. Again, knowing the tax code helps.

Use a high deductible health plan (HDHP) and health savings account (HSA)

Though there’s only a narrow window when you can sign up for new health plans in the United States, if you get a HDHP, you essentially pay a much lower monthly fee in exchange for a higher deductible. The basic idea is that you’ll pay for checkups, dental visits, and minor injuries out of pocket, and your insurance is just there for catastrophic injuries. If you’re healthy and can swing a $10,000 deductible, you could potentially save thousands per year on health insurance premiums.

Another advantage of an HDHP is that it qualifies you to participate in an HSA. This allows you to save (and invest) another $3300 per year that you can use to cover your medical expenses. This gives you the flexibility to go out of the country for medical tourism, and to save, and see yields on that money in the mean time.


There are plenty of other ways you can structure your freelance business. I believe that remaining a sole proprietor and using some of the strategies described in this post is one of the simplest, and until you’re generating the kind of money that you need a more aggressive strategy — also the cheapest, with the least amount of paperwork.

About Me

I started doing freelance computer work of some sort around twelve years ago, fixing computer issues, changing hard drives, setting up networks, and making simple websites. I started paying taxes when I was sixteen, the same year I bought my first car, and bought a house the month I turned eighteen. I sold a small web design company I started when I was in high school when I was twenty-one. I’ve spent a grand total of about eight months in an office, and had the time and flexibility to do things like live and travel in various places, and thru-hike the Appalachian Trail.

Now I do mostly software and web application work in JavaScript, using tools like NodeJS, Babel, ES6/7, React, and Redux.

Software developer, investor, energy markets analyst.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store