How to be a Freelance Web Developer

I answered a question a while back on [Doctype])(http://doctype.com) about how to start out as a freelance web designer and developer, and I wanted to go into a bit more depth with it. My answer there is fairly thorough, and is certainly a good overview of the process, but here I wanted to get a bit more into specific good steps, where to start from learning to getting hired, to maintaining a good level of product while still doing enough work to make a living.

I want to clarify right off the bat that I while I am a freelance developer, I do not do it to pay my bills, but instead use it as supplemental income. I am at a point in my life where I have school, and often times work, and various other professional and social obligations where I can’t easily take enough jobs to make the money I’d need. That said, I do know the freelance landscape, how competitive it can be at times, and some good strategies to succeed.

Step 1: Learning the Lingo

So, let’s start with the most basic thing we can, learning how to make websites. If you want to try and do freelance work, and are using products like Dreamweaver or Frontpage without ever getting your hands dirty in the code of things, you probably won’t be able to pay the bills. At least not very easily. I would put at the very minimum requirements HTML, Javascript, CSS, a server side scripting language of your choice (though PHP is one that I see a lot), and some sort of SQL. If you don’t know quite how these technologies interact with each other, I’d recommend reading up on it. There are many ways to learn these technologies, but probably the best in my experience is enrolling in a local college course that teaches these. I say this for a few reasons. Firstly, you can learn these technologies via online resources like w3schools.com and you can certainly learn them well, but if you’re not careful, or if you’re not reading good tutorials, you can very easily learn these wrong. For example, a lot of online tutorials will have you use tables to layout your design, and will use tags like <center> or <font> to accomplish things that are done better in different ways. In a classroom, you are more likely (though not necessarily guaranteed) to get a better and more up to date explanation of things. If your teacher, however, doesn’t at some point mention that HTML is the information, CSS is the look and feel, and Javascript is the functionality (basically) then you might want to question this. Separating those is very key to good, forward looking web development. Secondly, I would recommend a classroom because they will give you assignments where you are forced to come up with the code to a problem, instead of just following along in tutorials. If you are given the answers, you’re not going to learn to solve the problems you need to as well. The most important thing to learn is how to develop. Syntax is easy to learn and look up, but you need to get the fundamentals and be able to truly solve the problems at hand and transition from a design to a finished working product.

Step 2: ???

I’m sorry, I had to throw in the South Park reference.

Step 3: Honing Your Skills

Now, you may think that learning the technologies should be enough to get you going, but you want to be careful and walk before you run here. Web design, even at its simplest, can have a lot of tricks. It, unfortunately, isn’t enough to just know how to code a site, you need to know how to make the site compatible for all browsers and resolutions, and a lot of times be able to handle user input, which also means making sure a website is secure and fluid enough to be able to handle that input and display it back to both users and administrators. Not only that, but you need to make sure administrators have the ability to manage their site going forward without having to rehire you every time they want to fix a misspelling on the front page. You’re not going to get very many recommendations if they have to call you every time they want to post something new to their blog. Here, is actually where tutorials are great. And, luckily for us, a lot of this is made extremely easy by new content management systems like wordpress or joomla which have systems built into them for user management, administration, and page updating while making customization easy. The downside is that we as freelance web developers have to learn these new technologies and learn how to customize them effectively for our clients. It’s really a trade off. Until recently, I custom built every new website from the ground up including a new database, administration area, and user system. This takes a lot longer, and is something that can be complicated for new users, especially when scalability comes into play. There are entire books on effective database design, and I’m not really going to get into that. For now, I’d recommend learning these CMS systems so that you can avoid that redesign every time.

Step 3.5: Build Your Portfolio

Now, my real recommendation here is actually just get your hands dirty with these technologies. Practice designing and building websites. If you need a theme, you can just pick something at random. It can be easiest to do this with things you know and like. Build sites, some static, some otherwise, and practice a new technology each time. These will also serve to build a portofolio, but you shouldn’t necessarily include all of these in to a showcase. You want only your best work in your portfolio to show off, otherwise, you’re going to have a hard time finding clients. Many designers start with completely fake websites in their portfolios to begin with, and replace out client sites when they have some available that they want to show off. Be sure, though, that when you do this you aren’t copying or showing any information you shouldn’t. For example, don’t show real users information if you are showcasing a clients user page. Build a fake user to show off, and delete it afterwards.

Step 4: Getting Clients

This can be the toughest one to start out. First off because in the beginning you are going to need to find people, and have others help you get your name out there. I find that a lot of my jobs come from word of mouth. Talk to friends and family and see if they know of anyone that is looking for a website. This is a good way to get the first couple of jobs. Be careful here though. You’re going to get the “Oh, but I know you, so how much of a discount do I get?” mentality. You need to charge for your services realistically. And this can be tough to do with your first few jobs, since you don’t quite have a grasp yet on how much work you have ahead, and how long each step will take. I would say, as a rule of thumb, take any amount of time you took building a site on scale with your clients request, and double it. For two reasons. One, your client will always change their mind. It is tough designing for someone else, especially since most people don’t know what they really want. You can end up redesigning something a few times just to scrap it later. It happens, and you need to be prepared for not only that frustration, but the criticism that will come. I’ll cover more on that in the tips, but for now, understand that for the first couple times, overshooting your window is not terrible. You don’t want to promise too much and overextend yourself. But you want to be careful in overshooting by too much because then your client is going to think you didn’t do all you could have. It’s a tricky balance. As time goes on, this estimate will get easier to do.

Now, here is a key thing, and I will say this in the tips as well. Don’t ever be afraid to say no, or fight for something you think is necessarily. There are design principles that are key to every website. Logos link back to the homepage, user information and login is at the top, often on the right hand side, etc etc. These are design decisions which you may need to argue with your client over. But, don’t argue over things that are client preference. Explain to them the choice you made, and why you made it, and many people will understand. If they don’t, and they continue to want it that way, you have two options. Option 1 is to just walk away from the project. This can be tricky, seem mean, and put you into a sticky situation with clients, but as you get more of a name for yourself, you’ll find this easier to do. And it can be an important thing to do as well. You should be proud of the work you do, and what you attach your name to, and you need to be clear. But make sure you are not walking away because they didn’t like your layout. People are not going to like your designs, and that is not why you should walk away. Only walk away when it is a principle of design or interface which would make your site difficult to use, program, or maintain. Don’t be afraid to challenge yourself, but don’t let them tack on work that you didn’t sign up for. Option 2 is to just do it. This is their website and you are providing a service to them. Design it the way they want it, and from there you can choose to not attach your name to it, not give yourself credit, and not include it in your portfolio. This will often be what you will have to do in the beginning.

As far as getting more clients, you can do a few things. First, you can check out sites like Elance and job boards to find positions listed and offer your services. Here, it is a good idea to have your own website (which I’ll talk about more next) so that you can show off your work. You can also place ads in the local newspaper and visit a local chamber of commerce meeting and let people know about your services. Depending on where you live, this can be more or less effective. Again, word of mouth seems to have worked best for me in the past.

Step 5: Building a Brand

As a freelancer, you are a brand in and of yourself. You are selling you and your services, and that is important. Especially as a website designer, you should have your own website where you can point clients. This will give them a contact point, a link to share with friends, and place to see your work. Building a name for yourself can include being a good designer that clients share with their friends, and can also include making sure that sites you work on point people in your direction. Your site should also maintain at least a semi-professional atmosphere. That means you shouldn’t link to your Facebook page where clients can see a bunch of pictures of you getting drunk on the weekends. You are selling not only your design abilities but yourself and your personality. You need to be something that people can like, or at the very least respect, though I think you’ll find you get more jobs if you can get both.

Tips:

- **Don't be afraid to say no**. I know I said this already, but its that important. Turn down jobs if you don't think you can do them, if you don't think you'll have enough time, or if you don't feel the job is worth it. In fact, when you are swamped, it is good to know other freelancers whom you can pass along work to. You'll find that they will do the same, and being in a network like that is very good.
- **Have your own website.** This feels like a no-brainer to me. You need to be able to showcase what you can do, and give you clients whom you may meet in odd places, a site to visit to get in contact with you. It's also great to be able to put it on a business card. This is by far the best investment you can make in your career, especially at the beginning.
- **Be friendly.** This one may seem silly, but clients are going to be more receptive to you if they like you. They are going to listen to your suggestions and often be more wiling to show you respect if you return the favor.
- **Don't take bad jobs.** If a client isn't going to pay you enough for a job, you shouldn't do it. Your work is how you make your living, and you need to be able to continue to get work, and it should be worth your time. Pass on things that look like they won't be a good move for you.
- **Write up exactly what you are going to do so both you and the client are on the same page.** This one can sometimes take getting burned a few times to figure out. You need to be clear about what you are providing for them. You'll find a client will sometimes say 'oh, well, where can users log in?' and all you can think is, when did you decide you wanted users. You need to be clear about what features will and won't be included in the fee they are paying you. Contracts here, while formal, can often times be helpful and are protection for both you and your client
- **Walk away when you need to.** This gets tricky if you have a contract as I recommend above, but sometimes a project is circling the drain and the client is not getting the picture. You'll find that a client will think that you've agreed to something you haven't, and sometimes, you have to exercise your right to just wash your hands of a project. Be careful though, as this can be very detrimental to your brand.
- **Know how to speak clearly.** Seriously, this is more important then most people think. You need to be able to talk on multiple levels with multiple clients. Some clients will come in knowing a fair bit of lingo, and be able to follow along, and others will not even know there are browsers other than Internet Explorer (really). You should be able to articulate yourself clearly to people, and have good grammer. Remember, there are times when you are going to need to copy edit client's writing, so you should know how to write and speak well.

This turned out to be a lot longer than I had intended, but hopefully this will help some people out. If you have any questions, comments or concerns, let me know.

Written on July 20, 2011