Ryan Bigg

⟵ Posts

Contracting as a developer in Australia

04 Mar 2021

(All advice in this blog post is of a general nature and comes with the regular disclaimers, such as: “I am not a lawyer / tax agent”, etc. etc. If you have questions about the law or your tax obligations, talk to real lawyers, tax agents or even the people at the ATO.)

(This blog post will be updated as I find out more things about contracting – there is definitely more to learn!)

After working as a developer full-time for a number of years, I’ve decided to give that a break. And instead I’m now working full-time as a sole-trader contractor instead.

Maybe it was the two redundancies and then being fired. Maybe it was the “ride or die” / undying loyalty that companies want from their employees now. Who knows what truly led to this ridiculous decision to work as a solo contractor.

It wasn’t supposed to be full-time – but having two months off work does nasty things to your bank account. Alas. So I’m working full-time (for now) as a contractor, hoping to reduce that to 4 days in the near future.

Another developer by the name of Susan Pan asked these questions on an Australian web developer Slack group recently:

Hey everyone, was wondering if there are any people here with contracting experience? I’m new to the industry and also new to contracting so I have no idea about the logistics of it all (working out a salary, need an abn?, legal protections, etc). I’d be super appreciative if anyone has any time to chat/dm about their experience? Thanks!

Here’s my (slightly edited) answers to those questions, and I’ll add a bit extra here too that I didn’t include there. Just for you!

ABN

If you’re working as a contractor within Australia it’s likely that you’ll need an ABN. You can check your ABN eligibility here. I have an ABN. You can look it up!

An ABN helps identify transactions between businesses within Australia. The government will probably require you to have one, so I would suggest getting one as a first point of call. But! Check your eligibility first.

Money

Working out a daily rate

I contract out at a daily rate that was worked out based on what I was previously paid ($150k as a senior Ruby / JavaScript dev), plus a bit of extra padding to account for things like 1) making my own tax + super contributions 2) giving myself annual leave and sick leave.

I am now charging out at [redacted] as a contractor, working 8 hour days (with an hour lunch break somewhere in there, unpaid). This works out to [redacted]/day, which is a nice round number that makes me happy.

This base-hour number is a point-in-time sample and may vary, depending on circumstances. Someone else on that same Slack group gave this advice:

The best advice I ever got for setting your rate is “think of the highest number you can say with a straight face, then say that number”

That’s essentially how I work out my number, too. What I will say is that if I was working full-time at this rate that I would make somewhere north of $200k/yr, pre-tax. The overall plan is to not work full-time, and to work part-time instead.

What clients get for that number is someone with a decade and a half of web development experience in many different teams of different shapes and sizes, with a good knowledge across many different languages. And: “he wrote the book on Rails!

Invoicing

Invoicing: get yourself a Xero subscription and hook it up to your bank account. Dedicate a time on a particular morning each week to track expenses in Xero and issue invoices or to follow up unpaid invoices.

Expense tracking is incredibly helpful for depreciating things around tax time like the “tools of the trade”: laptops, chairs, desks, pencils, pens, rulers… if you use it for a job, keep the receipt (in Xero) and list it under business expenses.

On that same topic: talk to a tax agent around tax time. Again, this is another couple-of-hundred-dollars worth of expenses but the good ones will save you more than what you pay them in raw time-value. The tax agent bill can then be expensed the next financial year. Your tax agent’s job is to sift through the data you’ve diligently collected in Xero and to help you pay the correct amount of tax, or even in some cases to get a tax refund if you’ve overpaid in your tax obligations.

GST

Speaking of tax: if you’re earning over $75k, you’ll need to register for GST as well. The ATO purports to have the facilities to do this online, but when I tried using their app it shit the bed (maybe they need to hire more contractors?) and so I had to call them up. Even though I had to wait a while, the agent was super helpful and guided me through all the steps.

I’m now registered for GST, which means that I need to collect GST from the clients that I charge, and then pay that money every quarter to the government, through a process called a Business Activity Statement. You take all the money you charged for GST, minus the GST on purchases you’ve paid for the business, and that’s then your BAS payment for the quarter.

Xero has a great automatic tool for calculating BAS.

What’s it going to take to run the business this month?

Once I’ve invoiced the client, received the money and correctly set aside the GST amount, it’s math time.

For the sole-tradership that I operate, there are business expenses that need to be taken of on usually a monthly recurring rate. There are some that are yearly as well. These provide me with a baseline cost of what it’s going to take to run the business this month. The yearly ones get divided by 12 and treated like a monthly cost, except the money is transferred into the business savings account.

Pay yourself

Using that base number, I can then work out that my income tax rate is somewhere in the range of 37c-45c in the dollar (after certain amounts), depending on if I end up making more than $180k this year or not. This depends on how many weeks I can work this year. This is impossible to predict, given the nature of contracting work. Tide goes in, tide goes out.

So I err on the side of it being 45c instead of 37c. To make the mental math easy, I take whatever I get paid and put away half (50%) of that into a savings account that is then, essentially, untouchable. That then goes to paying my quarterly BAS bills that I get from the government with the money set aside for tax reasons listed in the BAS as a “tax withheld” amount.

Previously, I was on a Pay-as-you-go quarterly payment plan with the government thanks to my Leanpub royalties – but that’ll be changing to a quarterly Business Activity Statement soon due to the increased nature of my “business’s” earnings.

My effective tax rate is not exactly 37c or 45c on the dollar for every dollar – it’s important to note here that it’s 37c on every dollar over $120,000. So if my annual income was $150,000, the tax would not be $55,500 ($150k x 0.37). It would be more like: $150,000 - $120,000 = $30,000. Then that $30,000 x 0.37 = $11,100, plus the base rate of $29,467, or $40,567, or about 27% of $150k. An important distinction to make here!

By the time tax time comes around and I talk to my tax agent (below), we do some math and work out how much additional tax I need to pay. Hopefully this amount is zero, and that there’s also a nice tax return attached to that. If it’s not, no sweat: the money in the business savings account will cover it.

If there’s still leftover money in the savings account after all that then that gets rolled into the general transaction account for the business and I’ll spend it on things that I need, or transfer it into my family’s accounts as an extra bonus.

I then take 9.5% of whatever I get paid and put that directly into my superannuation. When I retire, I want money to be able to live, so this is a sensible choice. I could contribute more here.

I also take 5% out of this total amount for leave entitlements. I am (unfortunately) not invulnerable, so I will need paid sick leave from somewhere, and occasionally I might like to leave my computer so annual leave needs to be accounted for too. This really should be somewhere in the range of 11-12%, as annual + sick leave entitlements are usually in the range of 6 weeks of the year (11.5% of the year)… but I’m bootstrapping my consulting business now and I’m choosing to take fewer leave days for the moment.

By this point I’ve deducted these things from my business’s income:

  • Running the business expenses
  • Tax obligations (both GST + personal income tax)
  • Superannuation
  • Leave entitlements

The rest of this money then goes into my family’s bank accounts.

Get it in writing

Next up: contracts!

My wife is an ex-lawyer and read over a contract that I drafted using my significant (read: completely lacking) legal expertise.

Having a Real Lawyer™ look over the contract ensures that I’m not missing obvious things (like including GST in payments, dummy!). Get yourself a contract lawyer who can do the same.

The contract is designed to answer the who, what, why, where, when, how questions:

  1. Who’s this contract between?
  2. What’s this contract about?
  3. Why are we entering into this agreement?
  4. Where are we gonna be doing the work?
  5. For how long is this work going to happen?
  6. How are we going to work together?

Get a contract. Get it signed.

You cannot be a contractor without a contract. You will be an “or”. Nobody wants an “or”. Get it in writing. Get it signed. Dated. As the wise Jeff Casimir once said, contracts are written while in love, but only ever used in hate. You will want a good one for when shit hits the fan. And it will hit the fan.

If you agree to some work, it’s in writing in your personal email account, not in their company’s Slack. It’s timestamped, filed away and easily accessible. Can you find that documentation with minimal effort? You better be able to.

Getting paid

In order to make it ridiculously easy for people to pay me, I work with Australian-only clients and I offer two different payment methods: bank transfer or PayPal. Anyone who’s adulted a single day in Australia will know how to do a bank transfer between Australian bank accounts. Australian-only clients means that I don’t need to worry about international transfer fees, currency conversions or tracking alternative income for tax purposes. PayPal is for the occasional international client, and for Leanpub royalties.

I issue invoices (through Xero) fortnightly for one week gone, and one week coming. For example, if I was issuing an invoice on next Monday, the 8th of March, that invoice would cover all my work for the week of the 1st-5th of March and also the work that I would do during the week of the 8th-12th March. If I (unexpectedly) take time off that week, it would be deducted from the following invoice. That invoice would be on the 22nd of March, and would cover 15th-19th and 22nd-26th March, and so on and so on.

On the topic of getting paid: all my invoices are 14 days payable. This means that if an invoice is issued on, say, the 8th of March, then it must be paid by the time the 22nd of March comes around.

If the invoice is not paid by that time, then I will stop working. No exceptions. No “check is in the mail”, no “I’ll pay you next week”. If the money is not in the bank account by the very day the invoice says it is due, the work does not get done. Absofuckinglutely not.

Why am I so bullish on this point? Because I’ve been dicked around before, and I will not let it happen again. As a contractor, I rely on a steady stream of income to support my family and the moment that is cut off is the very moment I will need to start finding a new stream.

Take pride in yourself as a contractor and have the same rules.

Billable hours

On a related topic: billable hours. Did you spend time working for a client between the hours of 9am and 5pm? That’s billable time. Did you spend time outside of those hours working for the client? Maybe you had an on-call incident in the middle of the night or had to work a weekend? That’s billable too. Get it in writing in the contract that it’s a thing that might happen, and bill for it.

Conversely: did you spend an hour at a dentist appointment? That’s not billable. Haircut? Unbillable. Had a case of the “dunwannas” and needed to lie on the couch? Don’t you dare think about billing for it.

When it comes to invoicing clients for hours worked, keep it honest in both directions. Bill for the hours you’ve worked (even if they’re slightly outside of the agreed time) and do not bill for the hours you did not work for them. Honesty is the best policy here.

Leave the campsite better than how you found it

The header of this section is a Scouts motto. After attending the scouts for precisely zero days of my life, this statement still resonates with me.

I care about the long-term viability of your codebase, company and team, not just the money coming in the door. The money in the door helps me keep my family alive and happy. The work I deliver at your company keeps your families alive and happy, and I want that to remain that way long-term. If it remains that way, it’s likely you’ll keep me as a contractor or at least recommend me to your favourite people.

I’ve had to work on codebases where contractors who didn’t care about those things (“oh fuck we’ve only got 2 weeks shipitshipitshipit”) and it was miserable. I don’t want misery – I want happiness. I want people to go “yeah, you should hire Ryan because he came in for 3 months and did X, Y and Z and rocked our socks.” Yeah it’s nice being paid, but the success of doing a good job is what counts.