December 31, 2007
I recently left the world of 9-5 software development, and now I work from home as a freelancer. While it’s not required, many people doing this in the UK set up their own limited company.
I’m going to describe the process of getting yourself set up in this way. I think you’ll be surprised how little work and money you actually need to become director of your very own company.
Firstly, you actually need to create the company. Companies in the UK are registered with http://www.companieshouse.gov.uk/ and you can fill in forms and pay a small fee to do it directly. But many companies will do all this for you – you simply select a company name and give some details and they do the rest. You can do it all online, even, and in most cases your company will exist by the end of the day! Places like here allow you do do it for just £75 (+VAT).
To start a company you must have at least one director (you) and you must also have a company secretary. This person has very few responsibilities and does not have to receive shares in the company or a salary… many people use their wife/husband/parent.
You will also want a business bank account. All the banks you’d go to for a personal account also provide business accounts, but there is a tendency for them to charge for just about every action you’d want to take. I have been recommended The Abbey by many people, as not only is it free, but you can operate your account online. You can also apply for an account without having to go and visit them – you just post them an application form and some photocopied proof of identity/address.
Finally, you’ll probably want to hire an accountant. It’s not at all essential but unless you want to delve into tax law, and are confident you can do it all correctly, an accountant is something you need. As well as making sure you don’t accidentally commit fraud, an accountant can figure out what you can claim as expenses against tax, and generally make sure you pay as little tax as legally allowed.
Personally, I’d rather be making money than poring over tax documentation. I signed up with Quay Accounting. For £66 (+VAT) a month, they do everything. I will give them my income and expenses each month and they will not only do the tax for my company, but also my personal tax returns, as well as sorting out the salary I am paid by my company. They also operate a company creation service (it cost me £100 to get my company set up) and can provide a bank account, although I preferred the Abbey account over theirs. Basically, using a full package like this means I can get on with doing some actual work.
2 Comments |
Article, freelancing | Tagged: business, contracting, freelancing, programming, software development |
Permalink
Posted by d000hg
December 27, 2007
…All through my house
Nothing was heard
Except the click of a mouse.
While others wrapped presents,
Or drank hot, mulled wine,
This coder was coding,
On a fierce deadline.
Freelancing isn’t all about lounging at home eating biscuits and throwing in the odd hour of work every now and then. The flexibility I get is great – after a mid-week deadline I can decide to blow off an afternoon to go out for coffee – but it does have a flip-side. If you take on work it’s up to you to get it done, and that means if you take on a short-term contract on 22nd December you are going to work long hours on Christmas Eve. I did an 18-hour day on Christmas Eve, crawling into bed in the early hours of the 25th.
But I did choose to do it. Of course I did – I didn’t have to take the work. I signed up for two software design components on TopCoder knowing I had a good shot at $4000 for two days’ work. And frankly, that kind of opportunity is hard to turn down when you’re just getting set up as a professional freelancer – if I were working in a 9-5 job that’s nearly a whole month’s salary!
3 Comments |
Article, freelancing | Tagged: contracting, freelancing, programming, software development |
Permalink
Posted by d000hg
December 18, 2007
I’ve now been working as a freelance software developer for a couple of weeks. So far, it’s going OK. I have plenty of work – in fact there’s considerably more work than I could manage when you take TopCoder’s design and development projects into account (if you sign up please enter d000hg as referrer, and feel free to message me and say “hi”).
I’ve been looking this whole time into the legal ramifications of working as a full-time freelancer in the UK. I essentially have 2 options:
- I can work as a “sole trader” which basically means I just do work, get paid, pay tax & National Insurance (I think that’s equivalent to social security in the US?) – it’s just like a normal job except I have to work out my tax returns each year.
- I can set up my own “limited liability” company, and trade through that. That means creating a company, taking a salary, figuring out tax for both the company and myself as an individual, having a business bank account,…
I’ve picked 2). I’ve picked a name and am in the midst of getting my company incorporated. It might seem a lot more complicated, and it is. Although, actually becoming the owner of a bona fide company is very easy, and cheap too. There are at least 3 reasons why it’s sensible for a freelancer:
- As a sole trader, if you end up owing a lot of money then all your belongings and personal wealth are up for grabs. With a company, only the company funds can be taken if things go wrong – your house, car & personal savings are safe.
- There are potentially quite large tax savings to be made. You can take a small salary and then take director’s dividends also, which basically means you take the same amount of money but pay less.
- It looks a whole lot more professional if you own a company.
It’s too complicated to explain now how the tax savings are possible, and it’s only applicable to the UK, but if anyone’s interested post a comment and I’ll post some links or more information.
As I said, it’s a lot more complicated this way. In fact the vast majority of people hire an accountant and that’s what I plan to do. They can do pretty much everything, leaving you simply reporting your income and expenses and free to get on making money. An accountant shouldn’t cost more than the equivalent of 2-4 hours of what you charge per month, and I could easily spend that much time doing it badly!
1 Comment |
freelancing | Tagged: contracting, freelancing, programming, software development |
Permalink
Posted by d000hg
December 10, 2007
I’m now one week into my new career as a freelance software developer, working from home. I’ll talk about that a bit more later but I thought I’d share what I can about my current projects (I’m under NDA on some of them):
*I’m the designer and lead developer on a multiplayer game, incorporating a client written in Flex 2, server written in Java, and an SQL server database.
*I’m working on a C++ game project (I can’t disclose anything else on this one).
*I’m writing some articles and sample C# code for a new commercial multithreading library.
*I’m doing several TopCoder design contests.
So in the last week I have worked with C++, Java, C#, SQL, UML, Flex as well as doing some writing. Personally, I think that’s really cool!
4 Comments |
freelancing | Tagged: contracting, freelancing, programming, software development |
Permalink
Posted by d000hg
December 9, 2007
I’ve been playing Batteball (www.battleballgame.net) for a few months now. It’s a highly polished, fast, 3D multiplayer version of pong – players chat in a lobby and challenge each other in single matches or as part of a tournament, as well as being able to play single-player modes too. As well as simply hitting the ball, you gain experience from winning games which can be used to upgrade your paddles’s speed, size, power… and you can also win coins which can actually be exchanged for real money!
If you’re a fan of Pong or Curveball, check it out…

2 Comments |
Uncategorized |
Permalink
Posted by d000hg
December 5, 2007
Now there’s a bold way to start a blog entry aimed at programmers. You can complain all you like about monopolies, bugs, security & performance. But then, Microsoft probably didn’t just give you $10,000K worth of software practically for free, so you’ll have to forgive my temporary rush of enthusiasm…
So basically the deal is that Microsoft have a partners scheme, where just about anyone can sign up. If you’re a partner, you are eligible to register for the Microsoft Action Pack, which is a big goody bag of software. You get a nice folder and a big stack of CDs shipped to you, and then a quarterly update of any new version released in the following year.
You can see the full list here but there is a lot of stuff I’ve never heard of so let me give you my highlights, i.e the software I’d actually want:
- Windows Vista Business (32 & 64 bit versions) X 10 licenses
- Office 2007 Enterprise Edition X 10 licenses
- MS Project X 10 licenses
- MS Visio X 10 licenses
- Windows Server 2003 (32 & 64 bit versions)
- Windows Small Business Server
- SQL Server 2005
And next year, I will get full versions of Windows Server 2008 amongst others.
If you’ve never thought how much server software costs, i suggest you take a look. You might have been thinking 10 Vista licenses was worth a lot… not compared to Windows 2003 or SQL Server 2005!
If you’d like to post how much it would cost you for all this where you live, that would be cool. But how much did I pay? Well, for all that software, on actual CDs, delivered to my door from the US, I paid a little under… $500US.
Neat, eh?
4 Comments |
Uncategorized | Tagged: Microsoft, programming, software |
Permalink
Posted by d000hg
December 4, 2007
Background
A very common problem when teaching about algorithms and data structures is to find the shortest path between two points in a maze, where the maze is represented as a grid and each square is either clear or blocked. For example we might be given a grid like this, where black squares are blocked, and told to find the shortest path length between the two red squares. For example in this case the shortest path is shown in purple:

I’m not going to ask you to solve that problem. If you never did this kind of thing before, then it’s pretty fun, and it’s a very useful algorithm in real-life programming – but we’re going to look at a slightly less common problem.
The problem
The challenge is that given 2 points (x1,y1) & (x2,y2), and a square NxN grid, you have to build a maze which maximises the shortest path between the 2 points. In other words the grid starts off all white squares, and you have to add black squares to make the shortest possible journey from one point to the other as long as it can be. You can’t make it impossible to get between the 2 points, and you can’t block either of the two points given.
There are 2 versions of this problem. The easier version is simply to write a function which returns the maximum length the shortest path could be, given x1,x2,y1,y2 & N.
The harder version requires you to also calculate the smallest number of cells in the grid you must block to achieve this path length.
Obviously it gets harder as the grid gets bigger. Initially, how about a solution that would take no more a than a couple of seconds for N<=20. If you can do that, then what about for N=100?
Example function signature (C/C++/Java/C#):
void nastyMaze(int x1,int y1,int x2,int y2,int N);
Please feel free to post your ideas or code as comments. If you find the problem interesting, please tell me – if you find it too hard or too boring then please tell me that too!
10 Comments |
Algorithms | Tagged: algorithm, java, programming, programming problem |
Permalink
Posted by d000hg
December 3, 2007
Today is officially the first day of my new career. It’s 6pm here so I’m just finishing up my first full day of professional freelancing.
I’m visiting some friends who set up their own company tonight, as the first serious investigation into how the legal stuff works. I’ll report back from that once I’ve assimilated it.
ps: Tomorrow, expect a new algorithm problem.
pps: If you have any questions about anything, just post a comment. And if you’ve got me hooked up to RSS, I’d love to know about it. I’m trying to get an idea of the traffic I’m getting…
1 Comment |
freelancing | Tagged: freelancing |
Permalink
Posted by d000hg
December 1, 2007
Until yesterday, I was a full-time software developer working a 9-5 job writing Java web applications. From today, I am a professional contractor / freelancer. I have decided to work entirely from home over the internet, which is potentially both exciting and lucrative… but also lot a little scary!
There is quite a lot to do when you work for yourself. Creating a company to trade as, getting to grips with accounts & tax, liability insurance… and not to forget the small issue of finding work! Fortunately I have done some work previously and am lucky enough to have a contract already. And there is always money available from TopCoder’s design & development projects. Some people make $100K+ a year doing just that! I would certainly recommend it over RentACoder or GetAFreeLancer any day of the week. If you have any questions on that, feel free to ask – and if you register there after reading I’d appreciate it if you put me (d000hg) as referrer.
Anyway, tangent over…
I had it in mind that other people might be interested in the idea of going independent, but aren’t sure where to start. So, I plan to blog my progress in this new adventure. Setting up the legal stuff, what it’s like working from home, if it pays well, everything. If anyone’s familiar with Patrick’s excellent MicroISV on a Shoestring blog, I was imagining something a little like that, only about freelancing.
5 Comments |
freelancing | Tagged: contracting, freelancing, programming, software development |
Permalink
Posted by d000hg