How to be a Freelance Programmer, Part 1

I've attended lots of events in my day, and have had to talk to lots of strangers. The conversations usually start off well enough; some delightful repartee about cocktails or an incisive personal anecdote. We laugh. Once the chuckles fade, however, there is a pause, after which comes that well-worn question:

So what do you do? 

For a long time I wasn't sure how to answer. RestlessDev wasn't really a startup in the traditional sense anymore, since it wasn't trying to fulfill some grand vision or look for funding. After we stopped building our Facebook apps a few years ago, I used to tell people that I was semi-retired, my tongue-in-cheek way of saying I was still figuring it out. Back then I would work random gigs whenever I needed money and just have fun the rest of the time. San Francisco was a lot cheaper then, particularly when you live in the Mission in a rent-controlled apartment with 3 roommates.

Eventually I got more ambitious and decided to take my business more seriously. I started looking for bigger projects and began to understand what parts of my work I enjoyed most. Most importantly, I realized that freelancing was a viable alternative to having a real job, if managed correctly.

1. What is Freelancing?

Wikipedia has a great definition:

A freelancer is a person who is self-employed and is not committed to a particular employer long-term.

Freelancing can take on several different forms:

  1. A freelancer can be a "contract employee," indistinguishable from other employees except for pay rate and benefits. Sometimes they are only around for a particular project, and other times they are around for years.
  2. A freelancer can act as a "consultant," where they are hired through a third party staffing company, often to act as a contract employee for some other organization. While working through the staffing company, the freelancer can be a 1099 employee or W2 employee of the company, with each paying a different rate. Once the assignment is done, the freelancer is free to work for other companies.
  3. A freelancer can be hired to build something or perform some function independently, working outside the company's offices. Often the company is just looking to get something completed without wanting to handle or worry about the day-to-day process.

The important part is that a freelancer is not really beholden into any one company, but moves between them to jump on new projects and opportunities as they pop up.

There is a very subtle difference between a "freelancer" and a "contractor," at least in my understanding. I tend to think of a contractor as someone who is compensated on a similar scale as regular employees, where a freelancer is someone who is paid a premium over regular employees. For instance, if a regular employee at a company is paid $125k per year, a contractor might get paid the hourly equivalent, something like $65-$75 per hour. A freelancer would get paid more like $100-$125.

The difference isn't necessarily that the freelancer is that much more awesome than a regular employee. It is a reflection that the freelancer is only being brought in for a month or two at a time, whereas the contractor is brought in for longer engagements. The higher rate is due to the fact that the freelancer is available right now to fix the client's problem, and that they have the ability to slot in without much ramp-up time and no ongoing commitment past the short project term.

2. Is Freelancing Right for Me?

Freelancing is not the right choice for everyone. Here are some questions that might help you decide if it's right for you.

  1. Are you an independent worker? Are you productive even if there isn't anyone telling you what to do or looking over your shoulder? What have you done on your own in the last year?
  2. Are you good at saving money? Would you be ok if you didn't work for 3 months? How about 6?
  3. Do you have a customer service orientation? If a longstanding client calls on Friday at 6PM and says there is an emergency and they need some work done over the weekend, what would you say?
  4. Can you minimize your fixed costs if need be? With an expensive mortgage or school loans, it can be hard to negotiate breathing room.
  5. Is your independence more important to you than financial security? Would you turn down a full-time job that paid 30% more than you made the year before just because you wanted to stay your own course and roll the dice on making even more?

If you didn't answer each of these affirmatively, freelancing might not be for you.

Freelancing is an exciting and ever-evolving career. In the course of a year you can work for many different companies on many interesting projects. You can have ample free time to take trips and vacations if you are so inclined since there are gaps with work. If you aren't working onsite, you can set your daily schedule however you'd like.

It creates a different sort of lifestyle where (at least for me) it is easier to balance all of the competing priorities in life. For instance, you can just take random days off to hang out with your significant other around the city and visit all of the cafes that are too packed to even enter on Saturday and Sunday. If you have a family emergency, you can just fly back home to take care of it, even it you'll be gone for weeks. Your interactions with your clients are a lot different than they are with a regular employer, and I find that they are more honest. In San Francisco's startup culture, the balance between work and life can be blurred and many employers take advantage of that to get extra concessions from employees. It's much harder to do that with a freelancer, where the terms of the engagement are explicitly negotiated.

Like anything worth doing, though, it is a high-risk, high-reward endeavor. You'll have lots of days when you'll wake up and have nothing going on, and no idea where the next check is coming from. One needs to be comfortable with uncertainty to get through it, at least at the beginning.

3. Sounds Great. How Do I Get Started?

Before you get started with freelancing, there is some groundwork to be done. 

Start Saving

Your bank account is extremely important when freelancing. It is the only thing that prevents you from having to work with crappy clients or accept crappy rates. Ideally, you should have started building your savings years ago, but if not, you should start today.

Put Up a Website/Portfolio 

If you're going to start looking for freelance gigs, particularly for programming work, it's helpful to have a portfolio or some other site up to point people to. Ideally, it would be on your own domain with decent-looking design. The quality of your portfolio/site sends signals to prospects about the quality of your work, so make sure it looks good.

Programmers aren't necessarily designers, a pain I know all too well. It's totally acceptable to hire a designer to build your website, or (if resources are limited) to use a site like ThemeForest to get a decent starter theme. If anyone asks you can always say that you worked with a designer on your site; if you put up something that looks bad, there is a good chance you'll never get to have that conversation at all.

Take Care of Some Legal Stuff

I am not a lawyer, and this should not be construed as legal advice. It is just my personal viewpoint and your mileage may vary.

If you have assets that you'd like to protect and a couple bucks to spend, you may want to consider registering a corporation or an LLC. If executed correctly, these entities can protect your assets (such as your house) in the event that something goes wrong and you get sued. There are companies like BizFilings that can take care of the paperwork for you for less than $400. Similarly, you can get liability insurance (including professional liability insurance, that covers clients suing you for bad advice) at fairly reasonable prices. This is particularly important if you work through certain staffing firms, who require their consultants who wish to work on a 1099 basis to carry a certain level of insurance.

Figure Out Your Pipeline

When you're starting out you need to figure out where your first gigs are going to come from. This requires a couple things.

Firstly, you should become much more talkative. When recruiters message you make sure to respond, and tell them exactly what you are looking for. I know the client is looking for full-time, but might they work with me on a contract basis? Ask around with your friends, particularly if they work in an industry where there tends to be a lot of project-based work, like advertising or IT consulting. Join some local groups active in your area of expertise, or business associations that might introduce you to clients. Meetup.com is a good place to start as they have lots of language-specific groups that meet regularly. Once there, ask around about other events and pass out a lot of your new business cards. Send follow up emails, arrange happy hours.

Referals and networking are the best way to find clients.

If you are currently employed, you can do some projects on nights and weekends to jump start the process while still having a steady income. Ideally, you could work with your employer to try to change your schedule so that you have at least one day a week working from home. This will make it easier to take client calls and/or meet with prospects during the week.

As a very last resort, you can look at freelancer sites like Elance or the Help Wanted section of Craigslist. These can be helpful when you are first building your portfolio and/or skillset, but they tend to put you in touch with clients who are extremely price sensitive and often don't understand what goes into a successful software product. These sites are also full of offshore developers who have a much different cost structure than you do. 

Wrapping Up

So far we've covered what freelancing is, and how to get started in the industry. In my next post I will talk about managing your freelancing business.

comments powered by Disqus