Have you ever wanted to be a freelance web developer? Whether you're working for the man or developing as a hobby, there are some tried and tested tips you can use to ease yourself into the life of a freelance web developer - even if you only do it part-time.
By working with many and varied clients, your web dev and business skills will grow at a rapid pace. If everything goes right, you should be able to make a good living doing something you love.
So today we're going to go over how to actually become a freelance web developer, and all that goes with it.
Just Starting Out
Starting is an incredibly hard thing to do for many web developers who don't have any clients. The most important thing to remember is that without clients, you don't have a business. It's quite easy to get caught up in things like building a portfolio site, playing with invoicing tools, and other semi-important tasks. So it's most important that you just start working with people and getting bids.
I've found that starting in a niche area is the best way to begin building a successful freelancing business. For example, my specialty is working with content management systems like Drupal and Wordpress. Starting out I only tried to find work within those fields, so that I could become an expert in customizing content management systems.
If you're a designer, you might try becoming an expert in a design niche as well. Ecommerce design, blog design, Twitter backgrounds, you name it. Becoming a leader in a niche means that you'll be in higher demand. Higher demand for your services means that you can be choosier about your clients, charge more, and ultimately have a better freelancing experience.
You Don't Need to Know It All
If you're afraid of not knowing what you're doing right out of the gate, take heart. You don't even have to know a lot about a programming language in order to make a bid on a project. You can learn how to do it along the way. Don't be afraid to work on a project if you don't know exactly how to finish it. That's what our good friend Mr. Google is there for. However, you have to make sure that you can deliver what's been asked. Just don't let not knowing a little bit discourage you from trying. Web developers do most of their best learning when they've stepped outside their comfort zone.
Experience Working With Clients
Thanks to services like Jobs.FSw, Elance, ODesk or even RentACoder, you can quickly start bidding and working on projects without having a portfolio. It's important to just dive in and start getting experience wherever you can find it. Experience with the language(s) you'll be working in, but most importantly, experience working with clients. Working with clients is one of the hardest parts of the job. Some clients are wonderful, others are awful. Learning how to find great clients and how to talk to them is a fine skill even the world's most gifted coders will only develop with practice.
Communication is an often overlooked aspect of freelance work. Good communication can make the difference in snagging a bid, finishing a project on time, and ultimately keeping the client happy. If you take the time to keep your client in the loop, they'll be appreciative of the transparency. Even if you're letting them know that the deliverable is going to be a bit late. Communication is a critical piece of the freelance world that many often overlook. It's nearly impossible to communicate too much with a client.
When you're just starting out, bid as low as you can handle. I know it's hard to imagine that your time isn't worth much, but until you get some experience under your belt, it really isn't. This time period of one month, two or three, is an investment in being able to charge more later on. The goal isn't to make a lot of money at the start, but rather to just get experience as a web developer. In the beginning stages, experience is a hundred times more valuable than your hourly rate. You'll soon be able to raise your rates with glowing testimonials and excellent work to showcase.
Another huge aspect of learning how to become a freelance web developer is learning how to be a disciplined web developer. Many developers start out programming in "blitzes" of work, where they slack off for a few days and then start pulling all-nighters close to the deadline. Not only will you produce shoddy work, it's also not a sustainable work cycle.
Learning how to discipline your work schedule is incredibly important for someone wanting to become a full-time freelancer. I have a simple system where I make sure that I work X billable hours a day. When I've hit my quota for the day, I get to do whatever I want. But I force myself to work until I've hit that quota. This has made my workday much less stressful, as I always know how much I have to work to pay the bills.
Being Honest With Yourself and the Client
There's a strong temptation to take an overly ambitious timeframe on a project. However, you've got to account for Murphy's Law. Projects nearly always take longer than you think they will. If you're not being realistic with how long a project might take, you're only making it harder on yourself when it comes time to talk to the client. A client would rather you overshoot the amount of time the project will take and finish it on time (or early!), as opposed to hearing that the project is going to take a lot longer than you initially thought.
Being honest with the client also means that you might have to tell them no. They might want something added to the site that is, well, ridiculous. It's your job to "let them down easily". Any reasonable client would much rather hear that you think it's a waste of your time and their money than blindly going along with their ideas. Remember, you're the expert. They're paying you. If you're honest with them, they'll respect your opinion and your authority. In fact, they'll appreciate it. You just have to remember to be tactful and honest while telling them.
If you're looking out for the client's well being, they'll look out for you.
The Mighty Testimonial
Testimonials are gold to the freelance developer. Imagine a scenario where instead of spending your precious time bidding on projects and looking for work, people are looking for you. They're emailing you to see if you're available to lend your expertise and build them a site. It's simple: The more people that love your work, the more recommendations you'll get. There is nothing more powerful than a happy customer.
You'll find that the more projects that you do, the more referrals you'll receive from satisfied customers. Eventually clients will make a way to your door, just based on your reputation.
A portfolio is an important part of web development. You'll find that many of your prospective clients will want to see your portfolio, and any chance you can show off your work, the better. Collis has an excellent tutorial on how to set up a portfolio site, and it really doesn't take that long to put one together.
However, not having a great portfolio isn't the end of the world either. I haven't built one yet for my own projects, and while many people have asked to see one, I've never lost a bid for not having one. Your reputation is much more valuable.
How to Bill Your Clients
Billing is a mysterious part of freelance work.
Billing clients is a tricky part of being a web developer. I've found it's best to use software or an online service like Freshbooks to handle the client billing.
Desktop applications are great for invoicing as well. They typically give a little more functionality than online invoicing systems, and all of your data is private and secure on your own computer, if that's an issue for you. I use Mac software called Billings to manage my invoices and time tracking, but there are many other options available as well.
Whatever solution you use, make sure that it does all of the nitpicky client work so that you can keep your focus on the most important stuff: learning and working with clients.
There are numerous ways to bill clients. Some people just wait until the project is finished and send a final bill. Others ask for a ratio up-front (ie. 50% up front, 50% upon completion). I usually ask new clients for a certain amount of payment up front, just to make sure I don't get burned. For example, I'll probably ask a client for half of the estimate up front before I start working, and then the other half upon completion. If I've worked with the client before or I know them personally, I might just send a bill when the project is done.
Another thing to think about when billing is the scope of the project. If it's a massive project, I might bill at weekly or bi-weekly intervals. I usually give the clients updates on how many hours I've worked and what to expect on the bill. (Are we seeing yet how valuable communication is with client work?)
Whatever the method, make sure that you and your client are crystal clear on the billing arrangements. That's the most important part. Nobody likes to be surprised when it comes to money.
Marketing Your Services
I've seen some people put tons of money into marketing and advertising. I'm going to let you in on a little secret: Save your money. Programs like banner ads, Adsense and other "scattershot" approaches to advertising your business don't really work. And here's why.
Like we said before, the best form of advertising is a testimonial or recommendation. But there's another way to generate leads, and it is almost as effective: teaching.
There is no better way to showcase your talents and command of a subject than by teaching. People want proof that you're an expert, and the best way to do that is to start teaching. If you start teaching, you'll show that you're an expert. Say a searcher found an article that Nettuts+ writer Richard wrote on learning ExperessionEngine. The article clearly showcased Richard's knowledge on ExpressionEngine. Would you rather hire a nobody to develop your EE site? Or would you rather hire someone who has already demonstrated a strong command of EE?
Aside from generating more leads, you'll also start to gather a following. People follow experts on places like Twitter or blogs. There are tons of designers and web developers out there who have gathered strong followings on the web, and as a result their work has skyrocketed. They can charge more because it's simple supply and demand.
Twitter is an excellent way to:
- Start giving back to the community and teaching and
- Generate a following
Another excellent way to showcase your talent is to start blogging and teaching. Write about topics related to web development and your niche. The best marketing a freelance worker can do is to give value and teach. If you can do these things, you'll never have a shortage of work and can often charge your dream rates because people trust you and see you as an expert.
What Should You Charge?
There are a few different methods when it comes to determining rates. I believe that if you're just starting out, it's best to charge a lower rate until you really figure out what's going on. Once you've gotten experience working with clients, billing, and winning bids, than you can raise your rates. But here's something else that I've learned when it comes to rates. Often people associate your rates with the quality of work you'll provide. For example, if you're bidding against a freelancer that charges $100/hour, and you only charge $10/hour, the potential client might believe that the other guy is 10 times better than you and give him the bid. He's associating your price with value, even though you might be just as talented as the other bidder.
I know this sounds crazy, but once you get some experience under your belt, you might win more bids charging higher rates. It all depends on who the client is. However, clients that are willing to pay more for better service and quality are more likely to be better clients. I don't necessarily recommend you radically change your pricing overnight, but experiment with your hourly wage and how it affects how many bids you're getting. You might be surprised.
Rates all depend on your personal profile and how specialized your service is. If you're creating cookie-cutter templates or sites, you might not be able to charge as much. If you've become a leader in a niche area of web development, than you can certainly charge more for your services. It all depends on the service that you're providing.
Wrapping It Up
I know we've covered a lot in this article, but if there's one really important thing that you should remember when you're just starting out it's this:
Experience working with clients is the most important part of getting started. Billing software, portfolios, blogs, Twitter and everything else are important, but the most critical part of freelancing is learning how to work with clients and building relationships. Everything else should take a backseat to diving in and getting to work!
Another useful tutorial to consider is our guide on how to How To Use WordPress Plugins. It's a tangentially related, but something that's equally handy to know!