Skip to content
Switch branches/tags
Go to file
Some of the banks I've had referenced earlier are highly unethical. I've
switched away from them since.

Swap the paragraphs about banking to encourage people using
modern banks, as user experience is a lot better with them and with open
banking integration most accounting software will integrate with all banks
equally well.
13 contributors

Users who have contributed to this file

@tadast @kalleth @frosas @FergusInLondon @tbm @SimonHFrost @shrink @NRKirby @malcolmbaig @johnhamelink @ingmaras @antstorm

Becoming a contractor programmer in the UK

After delaying it for more than a year I have finally made the big move from a stable full time job to the dynamic world of contracting. One of the biggest reasons for delaying the move was not knowing the technicalities of getting all the machinery up and running. The main goal of this document is to provide an easily replicable process you can follow to become a contractor. I can not claim it is the best process to follow, but it has worked for me and other people who have advised me. Use my advice on your own responsibility.

I have made this a github repo with hope to receive community contributions to fix any inaccuracies, out of date information and typos. If you want to suggest any changes, please open a Pull Request or let me know on twitter. You can read the discussions on Hacker News here and here.

The post contains some affiliate links, they are denoted with (aff.). I am not recommending these services because they have referral deals - any of their competitors do. I am recommending them because they worked really well for me. Moreover, some of them gives you a sign up bonus too.

When is the best time to transition?

There is no easy way to tell when is the best time to do it. However, there are some preconditions and concerns that may impact your decision.

Financial stability

You should have savings to cover at least 4 months of your usual expenses. You will spend some money establishing a company. It may take several weeks to find your first contract. Even if you're lucky enough to sign a contract immediately, you may need to wait a month to invoice your client and another month to get it paid. In short, most likely you'll not be able to withdraw any money from your business account until 2-3 months after you start looking for a contract position.

Also, you may have unexpected expenses, because life.

Am I ready?

One of the biggest concerns for me was confidence. Am I good enough to become a hired gun who creates value for the client even when hired for a short period of time? You will know when the time comes. I've spent 5 years accumulating valuable experience before I was confident I'm worth the money I'm aiming to charge.

When making the move I was confident I can understand and solve business problems by writing code, or sometimes suggesting alternatives. Besides that I can mentor junior team members, and build teams around projects. You may not wait this long, because, although harder to come across, there are also junior contract positions available.


Timing matters. The contracting market has its own trends over the year. Sometimes there are unpredictable droughts though. You can get a sense of the trends by looking at the number of recruiter emails you receive. Browsing through job boards and local meetup group mailing lists is also helpful. Just make sure to search for relevant terms like "contracting", "freelance" etc.

Obviously, you may need to align the move with your personal life. Moving a flat, getting a mortgage, and anything else that requires you to prove stable income may become more difficult after you switch. Needless to say events like this often require upfront payments. So plan accordingly.


It is a bit easier to get a mortgage if you're employed full-time. However, there are a few contractor-friendly lenders too. You might want to conduct some more research if you're planning to buy a property in near future. Contractor Financials might be a good starting point to get a feel for the kind of quotes you can get - they typically provide options from the major banks based on your day rate rather than your company's accounts.


Inevitably, there will be some research to do, some phone calls to make and some papers to fill before you can call yourself a business owner. By that I'm suggesting you incorporate a Ltd. You can consider becoming a sole trader, but if you're planning to earn £50,000 or more, go for a Ltd.

Incorporating a limited company

You can incorporate a company online. You can do it in advance, no extra work is required until you start trading.

A service like (aff.) will make the incorporation process easy. It usually takes up to three business hours. The most difficult thing will be choosing the company name :) I'd recommend getting the most popular "Privacy Package". You need the first three items in the "What You Get In Each Of Our Packages" table, and the Service Address. The Service Address helps to protect your name and address from identity fraud attempts. I will revisit this topic further below.

Pay for the company incorporation from your personal bank account, you will expense it later.

Getting an accountant

You will need an accountant. Unless you know a trustworthy accountant who specialises in your industry, sign up with Crunch (aff. link that gives both of us an Amazon voucher). Crunch is an online accounting services provider for freelancers and contractors. They will provide you with a dedicated team of specialised accountants. Their teams are very responsive via email or phone during business hours.

Crunch also have a nice web-based accounting tool. It helps with tracking expenses, calculating taxes, invoicing your clients etc. It takes care of providing all required information to HMRC. It also notifies you about important things you need to do, such as tax payment deadlines.

After registering, your dedicated account manager will call at the time convenient to you. During the first call they will get to know you and your business. Then they will explain how to pay yourself in a way that's tax efficient. They will also discuss registering your company for VAT.

Registering for VAT

If your annual turnover is (or you expect it to be) £85,000 or more you must register for VAT (there might be other criteria too).

You can still register for VAT below that threshold, because the standard VAT scheme allows you to reclaim VAT on your business purchases.

Reasons you might not want to register for VAT if you're below the threshold:

  • You expect to work with very small clients (below £150,000 annual income) that are on a Flat Rate VAT scheme (more below) and can't claim back VAT from your services.
  • You expect to work with clients abroad via your Ltd. They might not be able to re-claim VAT, making your services more expensive to them.

There are two types of VAT schemes you can register for: Standard and Flat Rate VAT. The Standard scheme allows you to reclaim VAT on all your purchases. You should consider it if your business will have a lot of expenses that are subject to VAT.

The flat rate scheme is for small business (income under £150,000) and allows you to claim back VAT only for capital purchases over £2000, for example, if you buy a top of the line new MacBook Pro.

The Flat Rate scheme does not let you reclaim VAT, but it has very little administrative overhead and you pay a lower rate than you charge your clients. The difference is small as of the recent budget changes, but it adds up over time.

For example, as a company providing software development services you'll be adding 20% VAT to your client invoices. HMRC will take slightly less than that of your flat rate turnover, e.g. 16.5%. The flat rate percentage may vary in your case. For example, if you charge your client £10,000, you'll add 20% VAT, totalling £12,000. This is your flat rate turnover. You'll need to pay £12,000 * 16.5% = £1980 to HMRC. That leaves you with an extra £20 of income.

As a rule of thumb:

  • annual turnover < £85k : no need to register, unless you'll be buying a lot stuff
  • £85k < annual turnover < £150k: Flat Rate scheme, for simplicity, unless you'll be buying a lot of stuff
  • > £150k: you must register for a Standard VAT scheme

Your Crunch team will give you a more tailored advice. They will also register you for VAT without any extra cost.

A note on addresses

A UK limited company has two published addresses - a registered address and a service address.

The service address is the official contact address of the director. Personal statutory mail and notices from Companies House and HMRC will be sent there. Normally, this would be set to your office or residential address. Exposing your residential address increases risk of identity fraud. That's why you should get the Privacy Package provided by CompaniesMadeSimple. You can then set your service address to the one provided by the service.

The registered address is the official address of your company. This address is used by Companies House and HMRC to deliver statutory company mail and notices to the company. Crunch will become your agent and thus set the registered address to their address.

Both services will filter out junk mail and forward important letters to your personal address. If you use the setup above, your personal address will not be visible publicly.

Professional indemnity insurance

Most of the clients ask for professional Indemnity Insurance. This ensures that any loss incurred to their business as a cause of your negligence is insured. No need to rush with this one, your clients will let you know their liability requirements. Lately I've been happily using Hiscox, but it's also worth checking out SimplyBusiness to compare the quotes from other providers. Jack is also worth checking out - they provide insurance tailored towards contractors and freelancers. Don't forget to expense it :)

Getting a bank account

Most UK banks offer business accounts with similar conditions. Some people advise using a different bank than the one you use for your personal finances. This is because some banks may freeze your personal account if your business account gets frozen.

There is a plethora of new start-ups offering business bank accounts that are much quicker to setup compared to traditional high street banks. When doing your reaserch, make sure the bank is UK FSA regulated and has FSCS deposit protection. A good example of such a bank is Starling. Monzo seem to be working on business accounts too. You can get an account setup in one day, all from your mobile phone, without having to wait weeks for appointments.

If you decide to go with a high street bank, you might need to call the bank and schedule an appointment. It may take up to four weeks to get an appointment slot if you're in London. Do it as soon as you incorporate your company. During the appointment they will scan some documents, ask a few generic questions and try to sell you extra services you most likely don't need. It took 2 days after the appointment to open my account.


The services above will cost you some money. Pay for them from your personal account. Make sure to keep the (email) receipts. Once you sign up with Crunch, add all expenses to their system as 'Paid by director'. Once your client pays the first invoice, you can transfer the money back to your personal account.

Finding your first client

Finding your first client might be hard. The good news is: the first one is the hardest. What makes finding the first client hard, at least if you're a programmer, is the fact that most companies are looking for a contractor to start working immediately. Most likely you will not be able to secure a contract before giving in your notice at a full time job.

Two weeks before your desired start date is a good time to start looking. You'll want to squeeze in as many interviews as possible into a short period of time. You want to have many offers to choose from because the offers will not stand for long. You will have 2-3 days to decide whether you accept or reject the offer.

I employed a few techniques to improve my chances of landing a good contract. Even though demand in the market was low, I have managed to get several interviews. I got my first contract in two weeks time.

Mailing lists and communities

I'm putting it first, because my email to the LRUG mailing list has led to three promising reach-outs (I'm excluding emails from recruitment agents). One of them resulted in my first contract. If you've been programming for a while you should know about similar local professional communities, forums and mailing lists. If not, is good place to discover them.

Make sure you read the rules before posting there. It's a good idea to browse the archives for good examples of other people looking for jobs and to better understand the culture, values, and standards within the community. Doing that you may also discover companies looking for contractors just like you :) Make sure your post is clear, concise. Provide only necessary information about your professional strengths and skills. Post a link to your website as the main way to contact and learn about you. You can update your website any time. Thus if someone finds your post a year later, following the link they will see up to date information on your website.

Do not put your phone number in your posts or the website. This will result in unwanted frequent calls from recruitment agents for years to come.

Social circles

Reach out to your friends and ex-colleagues working for companies that may use your services. This is also a great chance to catch up with some great people you haven't seen in a while. I've worked for only three companies that use Ruby before, this approach has resulted in two interviews.

Crawling LinkedIn

As much as I dislike LinkedIn as a company, I admire them for the value their data provides. You can use LinkedIn as a tool to identify potential leads in your network in the above approach. You can also gain a lot of insight about the industry as well.

For example, I peeked at career histories of people I found in London with terms "ruby freelancer", "rails freelancer", "ruby contractor", "rails consultant". I was able to identify a dozen of companies that don't advertise anywhere, but do consider contractors. I have also learned a lot about how different contractors present themselves on LinkedIn.

Based on the found position descriptions I have selected a few companies. Reaching out to them has landed me two interviews.


I gave it a try despite the bad reputation recruitment agencies have earned amongst developers. I've dealt with 6 different recruiters, 5 of them resulted in utter disappointment. However, many people have identified this strategy as the easiest one for getting some contract work. Perhaps I was not lucky to find the best recruitment agents to work with.

One potential issue with dealing with Recruiting Agents is their commission: on a contract this may be as much as '10% to at least 25%.', i.e a £350 per day contract may have as much as £87 of daily commission paid to the agent. It's worth remembering this, as this comes directly from the client's budget, and demonstrates another way in which contracting directly to the client provides advantages to both parties.

Whilst recruiting agents can prove to be useful for times where it's difficult to find work using your existing network, it's worth highlighting that once you have been introduced to a client via a recruiting agent - you will need to seek the recruiting agent's permission to work with them directly in the future; as any subsequent work will also see the recruiting agent due a commission.

Here are a few pieces of advice for those who dare going down this route.

Recruiters will email you with vague information about positions for unidentifiable clients. Sometimes they will ask you to sign an agreement that you will not try to circumvent them and reach out to the client directly. Don't sign anything. Ask what companies are they recruiting for. If they are not willing to disclose the company names, chances are they've just conducted the "LinkedIn Crawling" step above and are not working for their "clients". They are merely forwarding your CV to random companies. Try to avoid this kind of recruitment agents if possible. Employers do not like dealing with this type of recruiters either.

I've had some friendly conversations with recruiters who would innocently ask general questions about my background. Then they would start gathering intel on my former employers so they can add them to their target list. Beware of questions about who was your boss, how the teams were structured and who were your colleagues - they'll try to poach them later. As soon as you notice that, politely tell them you know what they're doing and ask them to stop if they want to continue working with you.

This approach has resulted in no interviews for me.


Don't be surprised, it is common to be inquired about your rates during the first contact, be it an email or a phone call. Always charge for your work on a daily basis. Rate per project will lead to working much more than you anticipated, because the scope of the project will definitely grow. Hourly rates will lead to nonsensical time tracking minutia.

If you don't know any friends who could advise you on this topic, there are websites that help you calculate the contracting rates for the full time salary you're getting. A good rule of thumb is to multiply the equivalent daily rate by at least 1.5. You may need to adjust it depending on the current situation in the market. You may also need to ask for less for your first contract and then raise it as you gain confidence and grow your clientele.


IR35 is the United Kingdom tax legislation designed to tax "disguised employment" at a rate similar to employment. It means that if HMRC think you're contracting only to reduce your tax rate but qualify as a permanent employee, you will get a massive tax penalty.

I can not give you a reliable advice here, but please look it up online how to reduce the risk of "getting caught" by IR35. As far as I understand, the most important points in the contract are:

  • Substitution and Exclusivity. You should be able to substitute yourself with another equally qualified person to meet your obligations to the client, at your own expense.
  • Control. The client should not have control over you e.g. you should be able to have other clients at the same time; less importantly, you should not be restricted to working at a specified location on a specified schedule.
  • Mutuality of obligation e.g. the client does not have to keep giving you work or pay you money when there is no work; likewise, you are not obliged to accept work from the client.

If the client insists otherwise, be ready to move on.

It also helps if your contract

  • has specific, named deliverables or a project you'll be working on (rather than just joining a team and working on whatever is required to keep a software platform going, for example);
  • has a short or no notice period.

There are a lot of myths and ambiguities around IR35 among contractors, so use your own judgement or consult a professional if you're in doubt. I have not used them myself, but a few people have recommended Among other things, they provide IR35 compliant contract templates and tax investigations insurance, which is helpful if you get categorised as a disguised employee.


That's all the info that I can remember. If there are any missing steps or inaccuracies, once again, please open a pull request, let me know on twitter or comment on Hacker News. I may write more similar posts in future and the best way to stay up to date is on twitter. If you want to hire me for some ruby or Rails work, check out my website.

A special thanks goes to a friend and a great ruby developer Malcolm Baig who has taught me about a lot of the things above.