Becoming a contractor can be a daunting decision to make, in any profession. The loss of certain perceived benefits from being a permanent employee such as holiday pay and sick leave can appear to be an inconceivable risk to some people. I want to use this post to share some insight into how I've dealt with certain aspects of being a contractor and hopefully give some advice to those of you also considering the move into contracting.
Deciding to become a contractor
The move into contracting was a difficult decision for me to make. I had doubts; I actually didn't think I was good enough at the time. I thought I lacked in experience but had the potential to be successful. I had a mental image of what consultants in the industry must be like to command the kind of rates on offer and by that I mean the kind of people who speak at conferences, have a Github account with more stars than the milky way and are maybe even beyond working for some of the big players like Google or Facebook. I soon found out that the reality of course is very different. I've come across very few of these "rock star" programmers during my time contracting and have found the majority to be fairly average. I don't mean that in a derogative sense just that you don't need to be any kind of special to work as a contractor.
The recruitment and interview process
IT Recruiters tend to get a bad wrap. A lot of them deserve it, they really do, but some are worth building a working relationship with. When you're a contractor this relationship with recruitment agencies is quite a different one. They're often a necessary tool in finding work and it can pay to use the ones you find you can trust to represent you and your skill set without too much of the bullshit and bolshy sales patter. Expect to get the probing questions like "Oh you're currently working at x company, are you working on Mr. Nobody's team?" and the request for references when you haven't even been to an interview. These are ploys to find contacts within organisations you have previously worked with. Stick to your guns when it comes to your rate as they often work to a percentage and will do their best to balance the scales in their favour. They'll plead that the clients budget will only stretch to a certain amount below your expected rate, I've even had them try to push me down £5 on my day rate before now! Oh, and don't under-sell yourself because you're probably worth more than you expect even on your first contract (I made this mistake!).
If you're good at what you do you'll soon start to build a network of people who'll recommend you for future roles or ask you back into companies you've previously worked with. This is a great way to find future work and it always pays to keep in contact with key people like resourcing managers even if it is just on Linkedin. It can also work to improve your rate as it's often possible to cut out the middle-man recruitment agency and draw a contract with the company directly.
I'd had little experience with interviews before working as a contractor and to be fair not a great deal of success with the formal interview process. I'd been turned down for more than one permanent role where I was told that they felt I may become bored in a few months and leave. Looking back this was probably a good indicator that I was ready to make the transition but at the time this kind of feedback was nothing but frustrating. I'd been with my current employer for nearly three years, I blogged, attended meetups and was as passionate about the industry then as I am today. Probably even more so. I now actually quite enjoy the interview process as it is more about the project and my skills with much less emphasis on whether I'll fit the organisation or hang around to fulfil the "five year plan" conjured up in the interview.
You can expect to be asked to complete a technical test before interview on a lot of roles, some do the test at the interview stage which I find a much better format as you are on a strict time box and have already planned that time out of you schedule.
Work life balance
You start work on your first contract after battling through the recruitment and interview process but what should you expect now? Well I've found this to vary from company to company. I've found the typical digital agency environment to be very accepting of freelance workers as they run from project to project and rely heavily on this type of disposable resource. Other companies can be different, you'll often not be involved in any form of decision making and effectively be there to keep your head down and code. Don't expect to get an invite to the office Christmas party or be included in any other team building activities either. That relationship is now a B2B one where the company you're working for is your client.
You'll be moving around more as a contractor and through this you'll get to meet and work with many cool people as you do so. This has been one of the most unexpected benefits from my life as a contractor. Another benefit working as a contractor offers you is the ability to create a strict work life balance. You're paid for a specific amount of your time and there is no good reason for you to do any more than this. I'm a firm believer in this and it's not something a lot of people practice. At the end of the day you're running a business, if you know you have done what is expected of you and what is feasibly possible in the time available then there is no reason for you to do any more without renumeration for your time. This includes taking your lunch hour to get away from the office and clear your head. This is good advice for anyone and when practiced can make you more productive and focused for the time you are at your desk. You know, quality over quantity.
Something to remember is to plan your holidays. I suck at this! Last year I only took two weeks off, one in the summer and one at Christmas with the odd days in between where I had things to do. This is something I'm working on improving this year but it can be hard to plan when you move between shorter term contracts. I plan to book at least a two week break this summer and work around that not plan around work. You need to take time out or you risk a burnout which can be quite a depressing thing with a surprising lack of support and understanding when you work for yourself.
Finding time to develop yourself
I mentioned previously that it's quite easy to get pigeon holed when you work as a contractor. Some may see this as being specialised in certain technologies but I imagine there is a lot of people similar to myself who require learning new skills to maintain interest. It can be hard to find the time to do this and you now have to fund this independent learning yourself. Where you do have disposable time and income you can take online courses and read books which are legitimate business expenses that you can put through your company. Open source contribution is a great outlet for learning and it also builds your profile giving you something to show prospective clients. Github is a fundamental tool in the hiring process these days and you can expect to be asked for this from most prospective clients. I've had the fortune to be involved with hiring on a few of the projects I was hired for over the last year which has given me great insight into how I am being viewed and judged when I apply for contracts myself. During the selection stage I definitely favoured the candidates who showed a decent stream of activity on their Github page. It's not necessary to show a project with thousands of stars but just to demonstrate an interest in what you do outside of the 9-5 day. It can be difficult to find reason to start your own open source project so it's worth looking through the issues on one of your favourite tools to see if there is anything there you can get your teeth into. It may be an idea to ask the project authors for ways to get involved but more often than not it's good enough to fork the repo, figure out the code and set about fixing the issue before putting in a pull request.
If you do have a project idea then great! Make sure you give that project a decent Readme file, write some tests and treat the code you push up as something you will be judged on by future clients because rest assured, you will be!
I want to close this post by stating that the switch to contracting has been the best work decision I've made next to choosing to learn to program for the web. It's often hard work but the benefits, for me, far outweigh the so called security of a permanent role. It's not just the money and the detachment from any form of company politics!