# The Unofficial Freelance Developer Tax Guide [for Hackers]

So, you want to create your thriving freelancing business? Congratulations, this has been the best decision in my professional life—and it’s rewarding to earn more money per time spent (Python freelancer average is \$61 per hour), be your own boss, have no commute, and no more meeting.

(**Disclaimer Begin**) Am I an accountant? Not quite—I’m a programmer like you. So, take any advice I give you with a grain of salt. In other words, don’t trust me—but verify with your accountant or tax lawyer! (**Disclaimer End**)

Taxes are the most significant expense for you as a business owner and as a private person alike.

As an employed person, you pay income tax year after year. You know the rule: the more you earn, the more you pay. This holds from an absolute (nominal) and a relative (percentage) perspective.

As a business person, however, there’s a different formula at play:

```Profit = Income - Expenses
----------------------------------
\$100,000 = \$120,000 - \$20,000   (Alice)
\$50,000 = \$120,000 - \$70,000   (Bob)
\$20,000 = \$120,000 - \$100,000   (Carl)```

Alice, Bob, and Carl earn \$120,000 per year. They have the same income. However, they reinvest different amounts into their businesses, so they end up with vastly different profits at year end.

Despite its name, income taxes are paid only on the profits, not the incomes. Every legally accepted expense reduces the taxable amount. The taxable amount is a function of the profits, not the income!

Therefore, Alice, Bob, and Carl will pay a different amount of taxes:

```Alice: 50% of \$100,000 ---> \$50,000
Bob: 30% of \$50,000    ---> \$15,000
Carl: 10% of \$20,000    ---> \$2,000```
• Due to her high profit, Alice pays most taxes of \$50,000 per year. She works for almost half a year for the government.
• Bob pays a moderate amount of only one-third of Alice—only \$15,000 per year. He works for one or two months for the government.
• Carl pays only \$2,000 per year in taxes. He works only a few days per year for the government.

You can see, plain and simple, Carl has a significantly reduced tax burden.

This leads us to the second tip:

## #2 Good Versus Bad Expenses

Expenses are always bad, and you want to minimize them. Right?

Wrong!

There are bad expenses, but there are also good expenses.

• You spend money on an unfocused marketing campaign.
• You waste money on courses you don’t take.
• You buy a car even though you don’t need one.
• You buy furniture you don’t need.
• You eat in a fancy restaurant too often.
• You “invest” in software as a service without need.
• You hire a designer for a webpage nobody visits.

You get the point: Bad expenses are like burning your hard-earned money.

Good expenses are investment expenses:

• You buy productive assets such as machines or a faster computer that allows you to work 10% faster.
• You spend money on focused marketing campaigns that work.
• You buy office space for rental and future cash flow.
• You hire a copywriter to improve the copy on your personal webpage which leads to higher conversion and future cash flow.

Good expenses are investments and generate future cash flow. Either they generate cash themselves (like the rented office space), or they help generate you more cash (like the increased website conversion).

If you spend money on bad expenses, it is gone and never comes back.

If you spend money on good expenses, it comes back with dividends. I’ve seen many instances where money spent in the “good expense” column doubles or triples over a period of one year. For example, my freelancer course students start with a 50% increased hourly rate and gain more traction immediately. They spend a small and fixed amount of money, like \$300—but earn it back week after week after week.

Many very successful companies such as Upwork, Netflix, and Fiverr, spend all the money they earn on good investments (like improving their products), because they know that every dollar they spend comes back as \$3 in the upcoming year. That’s their growth engine.

Action Step: Reinvest as much income as you can

## #3 Pre-Tax Investments Compounds

If an employee wants to build wealth, they must invest after-tax dollars.

Here’s how it goes: Alice employee earns \$100,000 per year, pays 45% taxes to end up with \$55,000. After consumption and living expenses, she has only \$10,000 left to be invested in the stock market earning 7% per year or so.

While this is a solid strategy, the small numbers involved cannot build wealth fast.

Let’s have a look at what business owner Bob can do differently:

Bob also earns \$100,000 but he reinvests \$50,000 into his business by hiring an employee that improves the efficiency of his business system. Bob calculates that the return on investment (ROI) will be 50% in one year. So, if Bob spends \$1 in one year, he earns back \$1.5 in the next year.

How fast can Bob get rich investing \$50,000 per year into his business with an ROI of 50%? How does it compare to Alice’s wealth equation investing \$10,000 per year into the stock market?

The following plot shows three business owners Alice, Bob, and Carl. Each starts with a yearly income of \$100,000 and is able to reinvest with 50% ROI in one year.

• Alice reinvests only 10% into her business and has a profit margin of 90%.
• Bob reinvests 50% having a profit margin of 50%.
• Carl reinvests 90% having a profit margin of 10%.

While Alice earns more in year 1, this is not the case for very long. Have a look at the following graph:

In year 4, Carl’s reinvestment strategy leads to a profit that is as high as Alice’s. In year 10, Carl earns \$450,000 profit per year (after tax) while Alice is stuck at \$60,000 per year after tax.

You can try this code yourself with different assumptions in the following interactive code shell:

Here’s the code I used to generate this plot:

```income = 100000
tax_rate = 0.4
years = 10
investment_return = 1.5

alice_margin = 0.9
bob_margin = 0.5
carl_margin = 0.1

profit_alice = [income * alice_margin * (1-tax_rate)]
profit_bob = [income * bob_margin * (1-tax_rate)]
profit_carl = [income * carl_margin * (1-tax_rate)]

for i in range(years):

profit_alice.append(income * alice_margin * (1-tax_rate) # profit
+ profit_alice[-1] * (1-alice_margin) * 1.5) # investment

profit_bob.append(income * bob_margin * (1-tax_rate) # profit
+ profit_bob[-1] * (1-bob_margin) * 1.5) # investment

profit_carl.append(income * carl_margin * (1-tax_rate) # profit
+ profit_carl[-1] * (1-carl_margin) * 1.5) # investment

import matplotlib.pyplot as plt
plt.plot(profit_alice, 'x-', label='Alice Profit (\$)')
plt.plot(profit_bob, 'o-', label='Bob Profit (\$)')
plt.plot(profit_carl, 'v--', label='Carl Profit (\$)')

plt.xlabel('years')
plt.ylabel('profit (\$)')
plt.legend()
plt.grid()
plt.show()
```

Action Step: Build a pretax growth engine by reinvesting as much as you can in a profitable way!

## Summary

As a business owner, you’re a capital allocator. You must find ways to spend resources in a profitable way. The more profitable, the better. If you find unorthodox ways to spend money profitably, do it! It’s a pretax investment and you create a growth machine on pre-tax dollars that compounds very quickly.

## Where to Go From Here?

Enough theory, let’s get some practice!

To become successful in coding, you need to get out there and solve real problems for real people. That’s how you can become a six-figure earner easily. And that’s how you polish the skills you really need in practice. After all, what’s the use of learning theory that nobody ever needs?

Practice projects is how you sharpen your saw in coding!

Do you want to become a code master by focusing on practical code projects that actually earn you money and solve problems for people?

Then become a Python freelance developer! It’s the best way of approaching the task of improving your Python skills—even if you are a complete beginner.

Join my free webinar “How to Build Your High-Income Skill Python” and watch how I grew my coding business online and how you can, too—from the comfort of your own home.

Join the free webinar now!