Recently I contacted a few freelancers off of the monthly Hacker News thread to get their opinions and advice on being a freelancer. This is a summary of their responses.

What sources do you use for clients at the moment, and what's been your most reliable source so far?

The range of potential sources for clients was fairly extensive, from referrals to LinkedIn to AngelList to myriad freelance developer sites. The top answer though, was referrals. Many freelancers stressed that it's important to do a great job for your first clients because they'll be the ones who refer you to future gigs. If you have a network that you can tap into, that's an invaluable resource as well. The next most common answer was the monthly HN thread, which is not surprising considering how I found these freelancers in the first place .

Any good horror stories from clients?

Most of the freelancers had actually managed to avoid horrible clients, but one story stood out in particular:

I had one guy who wanted me to build "a clone of Pinterest." He didn't really know what he wanted, kept changing his mind, and kept asking for more features, saying it was "part of the initial deal." The lesson is, write up a clear list of specifically-defined features beforehand, agree on milestones, and don't work with people who say "build me a clone of x." (Or anyone who wants to create a derivative of a social network and thinks it's going to make him the next Mark Zuckerberg.)

Do you work on independent projects or as part of a team for a set duration?

Most freelancers did both, which surprised me. Truth be told, when I first started asking questions I expected most freelancers to do independent projects; it was only after receiving a couple of responses from freelancers who only worked with teams that I explicitly asked them about it.

What is your current rate (if you don't mind my asking)?

[REDACTED]

Is your rate per hour, per day, or something else?

A slight majority charged at an hourly rate, but there were many who charged at a daily rate instead. Very few did fixed-price, mostly because the project scope is usually liable to change after development begins; a fixed price project isn't able to account for these changes. As one freelancer said:

My rule is only to offer flat rates if they are an extreme overestimate, or if you know precisely how long it will take.

Has your rate changed much in the last six months?

Nearly all freelancers answered with "no" or "gone up slightly."

Do you tend to negotiate your rate with clients?

This received a resounding no. In a nutshell:

Never negotiate your rates. Negotiate the scope of the project instead. Usually people who ask you to lower your prices are the worst type of clients.

How involved are clients during the process (e.g. do they have access to a GitHub repo, do you make sure to do weekly calls, etc.)?

Good clients will care about communication, and will usually get involved (especially if they are technical). Bad clients will only care that it gets done. However much you communicate, it's extremely important to manage client expectations properly.

What payment structure do you use (e.g. X% up front)?

The structure usually depended on the type of project/client:
- Small project, new client: X% up front, where X was some number between 25 and 50. - Large project, new client: Payment was broken up based on milestones. - Old client: Most were willing to be much more flexible if they were working with existing, trusted clients.

Do you begin work before payment is arranged?

No. Absolutely not. The vast majority said no, with the sole exception being for an existing, trusted client.

Always ask for something upfront, and don't feel guilty about it.

What tools do you use for invoicing and time tracking?

This received a variety of answers, including Toggl, Harvest, Xero, Microsoft Office, Google Drive, Teamwork.com, FreeAgent.com, and Paymo.biz. Don't get hung up on tools though; just pick one and start using it.

Do you have a standard contract that you use with clients?

Very few did, but most recognized that they should. Shake.com was recommended as a boilerplate contract generator, and this book was recommended if you want to fully understand your contracts.

What "gotchas" should I be aware of when using a contract prepared by a client and not by me?

Ensure that you have control of the relevant IP until payment is complete (and that you're giving away only relevant IP once the payment is made). Do not take on liability for anything after the project is finished. NDAs are fine. Avoid non-compete clauses, especially if it extends beyond the completion of the project.

Aside from just the source code, what else do you do for clients(e.g. unit testing, documentation, maintenance, etc)

Most do all of the above (though if a client has a smaller budget, there is room for negotiation here).

Are these things standard or do you negotiate an extra amount for them?

Ensure that everything you do is factored into the price.

How do you deal with requests for revisions or extra features?

With hourly contracts, revisions will simply cost extra. For milestone-based projects, revisions can be folded into the next milestone. For fixed price jobs, it's important to push back on revisions that are unreasonable in scope, otherwise you can easily end up doing twice as much work as you signed up for.

These last three questions were much more open ended than the rest, so rather than summarizing the answers, I decided to include some that I felt were particularly helpful.

What's something that you wish you knew when you started freelancing?

Charge more. The higher you charge, the better clients you get.

How to keep disciplined work habits.

If a project looks like it might be no fun, listen to your intuition and don't do it.

What's something that's burned you with this job in the past?

Beware of overbooking yourself, things always take longer than you think.

Not defining the scope of the job and letting it drag out forever.

Anything else that you think I should know, just getting started?

Web development is this stupidly overpaid industry. By that I mean the amount you get paid is disproportionate to how hard it is. The thing to understand is that market prices are determined by what people want, not how hard the work is. The latter is usually a predictor of the former, but when you have a field like web development whose demand has blown up so fast, it no longer is.

Have enough money to be able to last through the lean times. Be extremely anal with your book keeping. Have a good accountant and lawyer.

Getting started is always tough, so send out emails every day and network hard. You really just need one normal client a month to pay the rent, so I just keep reminding myself of that -- how hard can it be to just find one client in an entire month?