If you have programming skills, persistence and accountability, you can make a good living doing freelance programming.
Do you have a passion for programming? Do you feel a thrill of accomplishment when your work compiles without errors? Would you love to make a living doing what you love - working for yourself? Then you might have what it takes to become a freelance programmer.
I said 'might' because there's a lot more to succeeding as a freelance programmer than just loving to write computer programs. You'll need persistence to track down jobs, great communication skills to make successful bids on projects that you want to tackle, organizational skills to keep track of what you're working on and accountability to finish your work and deliver on time.
As a freelance programmer, you'll be free to set your own hours without punching a time clock. Work in the middle of the night if that's your most productive time. Work straight through three days and take the next five off if that's what you want. The reverse side of all that freedom is that it comes with the freedom from a weekly paycheck. You may get to pick and choose your own jobs, but there's no guarantee that the jobs you want will be available to you. There's no company to sign your paychecks every week. You are, in the eyes of the government, an independent contractor producing works for hire. You'll need to be responsible enough to keep accurate records and submit taxes on a timely basis. If all that sounds just fine to you, then read on.
How to Become a Freelance Programmer in Easy Baby Steps
1. Know what's in demand.
Are people hiring ASP programmers? Do they want people who are proficient in PHP? Is there a big demand for content management software, web services or productivity software? Keeping on top of the business is more important for a freelance programmer than it is for an in-house developer, because you have to go out and sell your expertise every day. There are some things that never go out of style - a good C# programmer will never lack for work, but the programmer who is conversant in the latest bubble on the horizon will manage to keep up a steady stream of paying freelance projects.
2. Get your own house in order.
Your best advertisement for your work is your own 'home' - your web site. Spend the time to brush it up and make it look professional. Be sure that it reflects your areas of expertise. If you've written desktop applications, include subsidiary pages with screenshots and instructions. If your programs are available for download, make sure that the links work.
3. Pay your dues.
In every business, you need to prove yourself before you get the good jobs, and freelance programming is no different. The best way to pay your dues in freelancing is to do some work for free - but be selective about the work you choose to do. To make an impact and get your name known, choose an Open Source software package that you know well, and design a module or two for it. Write tutorials on how to create a module for your favorite Open Source software. Join the community forum and development group for that software and post regularly to their forums. Make sure that you include a link to your own web site on every single post that you make.
Why Open Source? Open Source development forums foster more than just development for the software they support. They foster relationships between programmers and developers. They foster respect for those in the community who know what they're doing, and are happy to be helpful. And for the person who develops a popular module for a well-known software package, the benefits include reputation, contacts and visibility. Those will all help you sell your expertise when you're looking for freelance jobs.
4. Join freelance job boards.
Nearly ten years ago, Guru.com launched their freelance job matching service. Since then, dozens of competitors have sprung up. Like more traditional job search web sites, freelance job boards allow employers to post employment opportunities. Rather than a job, though, the buyer posts a 'project' that defines his needs. Providers - that's you - can then make bids on the job until the close of the project selection date. At that point, the buyer chooses a provider to hire for his project.
Most freelance boards charge a monthly subscription fee to programmers, writers, artists and other providers. For that membership fee, you get varying levels of access to bid on jobs. Depending on the level of membership you purchase, you may be restricted to only bidding on jobs under $500, or only bidding on jobs that exactly fit your posted profile. You also get portfolio space to display your work, and a profile to list your skills and abilities. Aside from the obvious benefit of having a ready market for your skills, many freelance boards offer additional benefits. These might include an escrow service, a rating service that allows your clients to comment on your ability and professionalism, and professional development opportunities.
A word of warning here, though. Don't be taken in by web sites that promise you 'access to thousands of markets that regularly hire people to work from home'. Every reputable freelance job search board allows you to join for free, even if they don't allow you to bid. Join and watch for several days to make sure that they have the activity level to support the kind of work you want to do. If the only jobs being posted are outside your area of expertise, you might be better off looking elsewhere.
5. Learn to make bids on work.
That may seem like a given, but for many a bid means '$60'. The bid you make for a posted project on a freelance board serves the same purpose your resume and cover letter do when applying for a job. Make it friendly but professional, and be certain to lay out exactly what work you will do for what price, and when it will be delivered. Most buyers will be far more impressed with a complete, professional bid near the top of their price range than they will be by a sloppy, ill-written bid under their price range.
6. Be professional.
When you win a bid, be professional. Communicate with the buyer if there are problems, and be sure to deliver the work complete and on time. Even small jobs result in satisfied customers, and you never know when the customer might be ready for a larger project.
7. Sell yourself every day.
While there are businesses that hire someone to do a project that will take months, more typically, you'll be working on much shorter-term projects. A 20-minute project like installing a script for a web master can net you a quick $25-50. How long would it take you to write a custom login script? $30 to $100. Those are what I call 'bread-and-butter' jobs. Even if you're doing a longer-term project for which you are being paid well, it makes sense to spend 20 minutes to half an hour a day checking the freelance boards for quick and easy jobs that will keep your name visible and make more contacts for you.
8. Remember to take time off.
You'll be surprised how quickly your freelance programming business can take off. One day you'll be kicking at doors and wishing they'd open - and the next you'll be drowning in work. Once you build a reputation for quality work delivered on time, people will actually start sending you work. Take a few minutes to rejoice at your success - and then learn to prioritize. Scheduling 160 hours of work for yourself in a week isn't going to be good for anyone, least of all you. Pick and choose the jobs that you WANT to do - and pass on the others. You've made it, kiddo. You can pick just the jobs that you want to do.