Awesome advice.. Had to share
* avoid freelancing sites like elance. It will artificially deflate your value and it’s basically a breeding ground for cheap clients. Remember, most clients are going there to try to get work done as dirt cheap as possible.
* Go to meetups, conferences, and events – specifically tech or programming related. Speak at meetups, conferences, and events. Work on side projects and present on them. Establish yourself as a knowledgable developer who *gets shit done*. That’s all people really care about – can you actually deliver.
* NEVER, EVER, do work for free. I cannot stress this enough. It’s the worst possible idea. Do not use the excuse of building your portfolio to give away work. Build your portfolio by working on your own projects or contributing to open source. Seriously, don’t bend on this rule, even (especially?) for friends and family. The main issue behind pro-bono work isn’t that you aren’t getting paid, but that the “client” never feels comfortable giving you honest criticism because they feel guilty doing so when the work is free. Just don’t.
* Prefer fixed price over hourly. Again, clients who prefer hourly quotes are usually looking to squeeze as much value out of you as they can for as little cost. They are leaches. Do your best to estimate the whole project up front and demand no less than 50% down before you lay down one byte of code. This will also filter out the time wasters who aren’t serious about spending cold hard cash on a quality product.
* Take your current rate and double it. Right now. You are undercharging. Again, this filters out time wasters, but it also increases your perceived value. If you confidently quote a high rate they will either walk away (and you’ll have dodged a bullet) or they will actually take you seriously and become more confident you will deliver quality work. It’s the same reason people buy luxury vehicles.
* Learn the whole stack. You simply cannot freelance effectively if you relegate yourself to the front-end or other slice of the stack. You should understand how to administer a server, db, build a server side web application, design and implement a front-end, and everything in-between. This opens up your potential market and allows you to raise your rates. Your rate is directly proportional to the number and variety of clients you can accommodate.
* Under promise, over perform. This is probably the most important point on my list. Freelancing depends almost entirely on word of mouth. If you knock the socks off your first few major clients, you will almost certainly have a jam packed pipeline for as long as you want to keep freelancing. It’s all an exercise in managing expectations. Never burn bridges unless the client was toxic (which you thankfully avoid by following the steps listed above). Your clients should be your biggest advocates and salespeople.
* I agree with the OP’s advice about building a good personal site. Use it as your playground for all the cool new tech you know how to use. Keep rebuilding it every year or so to keep it fresh. I got a lot of work simply by building killer personal sites and blogging fairly consistently.
* Look for the holy grail: a long term contract with a large company. This involves a lot of networking and will likely come up as an opportunity by over-delivering for your clients. If you’re presented with such an opportunity make sure to bid your rate way higher than you’re comfortable with. Double it, in fact, the worst that can happen is they counter with something slightly lower. Established companies understand value and are willing to pay for it. Underbidding is like burning cash.
That ended up being longer than I intended but I’ve been freelancing for 7 years and built up a lot of knowledge about it. I never once had a dry pipeline and my rate is in the $100-150 range.