Entrepreneurial Geekiness
Becoming a Freelance Programmer (Part 2)
Turning yourself into a freelancer is easy – you probably want a Ltd. company (see Part 1) and you need to know what you are offering, where you are offering it (probably local places that you can travel to) and who you are offering it to.
Articles: Introduction, Successful Freelancing, Talking to People, Making a Sales Call, Books and Resources.
Becoming a successful freelance programmer is harder – you need a constant supply of interesting work which pays well. You also want clients who will recommend you to others as this simplifies the job of finding new work.
You need interesting work else you will get bored. You need well-paying work as you have to cover yourself for holidays, sickness, down-time when you search for new work, accountancy fees and tax.
A simple rule of thumb is that you’ll pay 1/3 of your overall salary to income tax, corporation tax and National Insurance.
Finding new Work
You’ll spend a lot of time finding new work. Sometimes you can start straight away, sometimes you have to arrange a start date up to a month in advance. You don’t want to be free-wheeling without work so you’re probably going to be working for 1 client and searching for new work at the same time.
Searching for new work normally means sending emails, knocking on nearby doors (ideally in places like an Innovation Centre with lots of close and related companies) and talking to friends in the industry.
Remember – if you run out of work then you have to work hard, without getting paid, to find new work. This is an easy way to run out of your savings and get in a panic.
This is not nice, it will happen to you, you will work darn hard at solving the problem and you’ll get out of the mess and learn from it (I did, several times). Try to avoid it though, it really saps your energy and makes life crappy for a while.
Being a good freelancer
I’m going to assume that you’re an honest and reliable person. Your friends can recommend you in a heart-beat, you can honestly say what you are good (and bad) at and you can advise a potential client if you can help them or not.
Be honest and helpful, always recommend other people who might be useful. Help the potential client to understand what needs solving (often they need an outsider to help clarify things), offer to do some free work with them for an hour or two to help get to the root of any problems. Give them confidence that they can trust you to solve their problem.
Don’t be an idiot, never avoid communication, make everything clear (including costs and hours that you’ll work) and clarify what needs delivering and required timescales in writing (e.g. an email or printed document). Life is easier if both parties agree on what need’s doing, why it needs doing and how long it should take and cost.
Showing up
Woody Allen (probably) said “Eighty percent of success is showing up.”. It surprises me how many people avoid contacting a possible client due to their own fears – they literally talk themselves out of a possible contract.
Remember that if you have skills and you potential client might need those skills, they need to get those skills from somewhere! Don’t ignore that client, instead go talk to them. Analyse their problem, you can always advise them that the problem is outside of your skill set (bonus points if you can point them at a more skilled associate).
I’ve found a lot of consulting work comes because I:
- Talk to someone briefly about what they’re doing
- Talk some more, helping them understand the problems they’ve expressed and if/how you could help
- Offer to solve their problem
Lesson – talk to many people frequently, ask them what problems they have, try to help solve the problems. If you know people you can recommend then spread the love and help your associates – what goes around does tend to come around in your favour.
Here’s another article on successful consulting.
Becoming a Freelance Programmer (Part 1)
Three years ago I dropped out of being a paid-employee and switched to being a consultant. I’ve had a number of people ask about my experiences as they’re interested in following a similar route. I’m going to write a short set of posts on the subject and I welcome questions.
Articles: Introduction, Successful Freelancing, Talking to People, Making a Sales Call, Books and Resources. First I should set the scene.
Why did I quit my job?
For five years I worked at the MASA Group developing A.I. software for ‘big industry’. Our company sat outside of the dot-com boom and bust, none of our products were associated with the web.
I was well-placed in the UK office as Senior Programmer and I ran projects between the UK and French offices, met clients and planned the technical future of our operations. Life was fun. I had however always wanted to be my own boss…
During the last year of my employment the company changed direction and the UK office was bought-out by my direct boss – the new focus wasn’t so much fun for me. The company had a tricky time figuring out who it serviced and what it offered and after a year I chose to resign and start my own consultancy.
The move was somewhat risky as I had no prior experience at being a contractor, no track record for agencies and no private client list for consulting work. I took out a £7,000 loan – enough to cover several months worth of mortgage payments, and resigned. I had no savings as I’d just bought my first property.
Lesson – you need several months worth of living expenses if you’re going to switch to selling your skills. You either want money put aside or a loan which you’ll need to repay. I opted for a 7 year repayment term to give myself plenty of room (I repaid the loan inside of 2 years) .
Freelancing as a Consultant A.I. Researcher
I founded Mor Consulting Ltd. in 2004 as a 1-man company. I needed a limited company as some of my consultancy clients would only want to bill to a Ltd. company rather than a sole-tradership.
Founding the company cost £250 via an accountant, for note my yearly accountancy fees are roughly £500 (paid after year-end accounts are completed).
My accountant (Bristow Still) made the process super-simple, I had no prior experience in founding a company yet the process was painless and completed in a few weeks with just a few things to sign. Having an account in the same town as you is convenient – visiting them to ask questions and sign forms makes life easy.
Spreading your Name (Marketing!)
The hardest things I found were the fact that nobody knew that I was:
- Available
- Skilled in certain niches (programming, artificial intelligence, leadership)
The solution was to talk to all of my friends and past associates and let them know about my change in status, my new availability and what I’d be interested in doing. Each email was hand-crafted, targeted towards their business (for past associates) and personal. Never spam your friends.
The response was very helpful and quickly I was offered various pieces of generic contract programming work, often for short term jobs (1-2 months each), all local to Brighton.
The Sussex Innovation Centre is a great example of a useful hub – 70 tech companies, all small, most hungry for extra resources. You can visit lots of related companies and obtain friendly referrals with a minimum of effort – maximising your ability to search for new work.
Spreading your name and skills around is likely to be the most important thing that you do whilst you get established (which could take a year). It is also the most time-costly – I spent 2 months spreading word around before interesting A.I.-related things came my way.
At first I had to be liberal in what I accepted – anything coding related that paid the bills was useful. Quickly I worked to accept only A.I.-related work as that would help to build my reputation, from there I never looked back.
Right now I’m going through a similar exercise with my second start-up and our new professional screencasting arm, a new part of business inside ShowMeDo.
What do you want to know?
If you’ve read this far then you probably have specific questions in mind. Do leave me a comment, I’m interested in answering questions.
Python at Google (YouTube, Groups, code.google)
Alex Martelli (uber-tech-lead at Google) writes in a thread on Google’s use of Python. I’d heard before but it is nice to see it confirmed:
“YouTube (one of Google’s most valuable properties) is essentially all-Python”
and there’s a link to a short slide presentation on Making YouTube Scalable with Python. He makes the following point about their general philosophy:
“Python where we can, C++ where we must”
A jucier quote, referencing a nanovirus that might mysteriously drop from the sky and attack Google:
“if the mutant space-eating nanovirus should instantly stop the execution of all Python code, the powerful infrastructure that has been often described as “Google’s secret weapon” would seize up. “
Greg Stein (chairman of Apache, big-wig engineer at Google) also states in early 2006 that Python is used for:
“…A few services including code.google.com and google groups.”
It is always nice to hear that Python is used on the larger projects, not just behind the scenes.
ShardCore exhibiting @ Tin Drum (Kemptown)
Those of your who attend our Five Pound App event will have seen some of ShardCore’s intriguing artwork – most recently he spoke about Tycho Brahe (the man with the missing nose, a dwarf and the moose). Picture from the event here.
He’s just begun his first public exhibition at Kemptown’s Tin Drum and I for one am counting on an invite to the private viewing…
£5 App plug – we’re a few weeks away from hearing Jeremy Keith speak on ‘The Session’ and social community building. Mark your attendance at Upcoming please so I know how much beer to buy.
BarCamp Brighton
Last weekend we held our first BarCamp (blog) here in Brighton. 80 or so geeks attended both days, many were here anyway because of Friday’s excellent dConstruct.
Jane took excellent pictures and many of the talks are listed in the schedule on the BackNetwork which Madgex kindly provided. My talk isn’t listed (duh, bad me) – I did an ad-hoc and thankfully smooth presentation (pic) on ‘sales for geeks’ recounting some of my experiences building my own companies over the last few years.
We were blessed with excellent food which was sponsored by Inuda, Nixon McInnes, Ryan Carson, BT OsmoSoft, Microsoft and RealMacSoftware.
Thanks to Matt Weston for organising the food and to Paul Silver as main organiser. Thanks also to Glenn and staff at Madgex for hosting the event and keeping it running so smoothly.
I also got to meet Jeremy Keith who will be speaking at next month’s £5 App.
Roll on the 2nd Brighton BarCamp!
Read my book
AI Consulting
Co-organiser
Trending Now
1Leadership discussion session at PyDataLondon 2024Data science, pydata, RebelAI2What I’ve been up to since 2022pydata, Python3Upcoming discussion calls for Team Structure and Buidling a Backlog for data science leadsData science, pydata, Python4My first commit to PandasPython5Skinny Pandas Riding on a Rocket at PyDataGlobal 2020Data science, pydata, PythonTags
Aim Api Artificial Intelligence Blog Brighton Conferences Cookbook Demo Ebook Email Emily Face Detection Few Days Google High Performance Iphone Kyran Laptop Linux London Lt Map Natural Language Processing Nbsp Nltk Numpy Optical Character Recognition Pycon Python Python Mailing Python Tutorial Robots Running Santiago Seb Skiff Slides Startups Tweet Tweets Twitter Ubuntu Ups Vimeo Wikipedia