Ask HN: How do I start freelancing?

184 points by Sargis ↗ HN
I'm a web developer and I have been trying to get a freelance gig for the past few weeks, but it seems nobody wants to hire someone without a decent portfolio. My portfolio consists of two projects, both about 100 LOC.

Is it necessary to invest some time in building an impressive app of my own or is it possible to find someone who'll hire me despite the fact that I have almost nothing to show?

54 comments

[ 3.2 ms ] story [ 111 ms ] thread
You basically should invest some time in building up a portfolio of your own projects.

Otherwise you basically have to either undercut everybody in your bids to make yourself attractive on a cost basis, or when you bid on a project, show the customer a "proof of concept" or something that shows you already have something solid to show them before they choose a freelancer, which may or may not be feasible for the type of projects you're interested in doing.

From my experience, my first jobs were from people I was connected with. Usually it was a small job building a quick website for a friend, or their boss, or a friend of a friend...you get the idea.

Even though those seemingly unimportant jobs were all I had, I was grateful because I knew they would lead to more spectacular and promising prospects.

As expected, almost a year later, I was landing great jobs thanks to my quick, small jobs at the start. People starting seeing that the jobs were finished, people were happy etc.. Although my work is now in another realm, those qualities hold true anywhere.

Try to find some jobs in your own network, see if anyone knows someone that needs a website built or even just a simple button designed. That's how I would start again if I had to.

Did people directly tell you it is because you don't have a portfolio? And was that the real reason? I would be careful about making assumptions.

Most people that get into the freelance game have little experience selling themselves (I know I sure did), I would suggest sales skills will help you much more than a portfolio.

A person will hire you if they believe you can get the job done at a price they like. A portfolio is just a small part of saying I'm the right person for the job.

No-one ever asked me for for a portfolio when I was doing websites, because they aren't interested in what I did in the past, they are interested in what I can do for them. Obviously the more complicated the job, the more proof someone will be likely to ask for. Wasn't sure if your talking about making websites or more complicated development.

Can you post specifically what you have done to try and get a freelance gig. I feel we can help you much better then, rather than give generic advice about yeah portfolios are helpful(which you already know).

I'm a full time freelancer, and I've never shown anyone a portfolio. My jobs are all earned by my reputation, which I get by my networking efforts. Even back when I had a fulltime job, I've been attending conferences and meetups, talking to people, and generally impressing them with what I know. That's how I got the ball rolling in the first place -- I've been doing this for 4 years now.

If you are a developer, and you seem relatively smart, there are hundreds of people waiting in line to hire you. Everyone needs a web developer. Everyone.

Agree 110%. People just don't ask. But people starting out assume they will ask, so they get nervous and maybe even bring it up themselves.

Also I used to charge super cheap, because I figured it was good for me to learn and good for them because they pay less (highly not recommended).

Charge a decent amount upfront, it means you can spend more hours working for them, they will value your work more, respect you more and a whole list of other things. Also if your in competition with other people bidding too low will only land you the worst clients. The best clients pay more and because they are successful will respect your time.

I second that. Meetups begat meetups and leads begat leads, you can contribute things to the conversation and show your experise (your oral portfolio). That is how I look for developers. Things will fall into place. You just have to get out there.
I'm also starting as a freelance after some years of web experience in startups and agencies but I have trouble finding these hundreds of people. Could you elaborate on this?
It really depends on where you live. If you live in an urban area with a decent population there will be people you can meet face to face.

If you live in a rural area it's going to be a lot harder to meet people in person. In that case focus on finding online leads or consider moving.

Last year I started thinking I might one day go freelancing, so started attending relevant meetups and trying to figure out who to connect with locally. It was partly that which lead me to build the http://jobstractor.com (shameless plug) to try and find who was hiring near me so I could connect with them on twitter and start getting myself known. I've not made the leap to freelancing as of yet but networking has I think got me in a far better position should I want to in future.

To the OP, I did find that a lot of people in the local freelancing community were strongly connected with each other. A little bit of networking could go a long way and in my experience there has always been people looking for good developers.

In a sense you have built a portfolio of connections. You spent 4 years developing relationships, building your communication, and getting to know people in the industry. Your experience shows there are many ways to approach this but I would say experience is definitely a prerequisite for any freelancer. Weather you spend time building a portfolio or an amazing network of connections in this industry, you gotta put in the time.
You could try doing what I did; It resulted in 20 leads (that's $20k of work), even though I was really under pricing it.

My pitch was: MVP For $1k. You get an MVP for 1k. 0 iterations. I could have charged $3-5k at least, looking back.

See hn thread here: http://news.ycombinator.com/item?id=2075928

This was the building block of my former consulting company.

Additionally, I'd recommend cold calling (you have to be good in sales, if you're not, get better at it now -- go read the ultimate sales machine). It's highly effective. Personal experience.

A portfolio is a quick way for someone who doesn't know you to get an idea of what you're capable of. Try and get a gig through people that know you, they won't need you to prove as much. What type of gig are you looking for? What are your skills? What skills are you trying to improve?
One easy way to start is by looking for so-called "contracting" gigs - where in practice you join a team, usually on-site, but instead of joining as an employee you bill by the day. It's not very different from having a job, but it gives you a chance to get paid for working on a diverse set of projects and to build relationships with other people who are already working as freelancers. Typically this type of work is shorter term and more flexible, so if you see that you have an opportunity to get some freelancing work you can moonlight on it, or reduce your work to 3-4 days a week.
I get most of my freelance projects from the different agencies that I signed up with. Sure they take a percentage in provision but the salaries are so high anyway that I don't mind too much.

For the provision they will do all the legal work - which can be considerable. I'm very satisfied with this arrangement.

I would recommend you to get in touch with agencies. Just make sure they don't screw you over - the division should be at least 80/20 in your favor.

Could you talk more about your experience working with agencies? Are there any in particular you would recommend?
The customer contacts the agency which then contacts me. I negotiate the salary with the agency and they make the contract and any other legal/paper work with the customer.

Before being hired you obviously have a normal interview with the customer. The depth/length of the interview is proportional to the duration of the assignment which can be anything from 3 days to several years. My last assignment was 10 months and only ended as I decided to not extend the contract.

I generally like that a given job is usually no longer than 3 months. I come, work, enjoy and leave again before it gets boring. And you leave with A LOT more money than being full time employed.

The downside of course that you have no job security, pension, health insurance and you have to manage your own company including accounting and legal work. But this is also why you are paid more as you need the money for the services related to your company.

It is my impression that it is always possible to get work. The more specialized you are and the more experience the higher the paycheck.

If you happen to be located in northern Europe I would recommend ProData Consult (www.prodataconsult.com) - my current agency. They do require your expertise to be at a certain level though.

Even though I am busy at the moment doing one of my own project I am continuously being offered new jobs from these guys and I have the impression that they really care about 'their' consultants.

Create something that a potential client could actually find useful for his/her projects. If that something solves a problem a decent number of people are facing, quality leads will reach you without you even trying.

I wrote a Ruby gem[1] because it was a fun project. It was in a problem domain that interested me. A developer found the gem, saw that it would be useful for his project, and soon became my first client.

I tried the "MVP for $500" approach a few months back[2]. It generated some solid leads, but none of the projects were remotely as fun or as interesting as my current one. It's certainly doable to compete based on some perfect balance of price vs. quality, but I've found it's much more rewarding (mentally and financially) to compete by being the #1 expert of some piece of software a client wants to use.

Further reading:

Ruby dev Giles Bowkett wrote a pretty good blog post on lead generation for freelancers, http://gilesbowkett.blogspot.com/2010/03/programmers-what-to....

[1] https://github.com/adelevie/parse_resource

[2] http://news.ycombinator.com/item?id=2685010

Like others have said, I would work on building your portfolio. One way to do this is to donate some web development work to a non-profit in your area -- hopefully one that is well-known in the community. Not only will this give you something to add to your portfolio, but it will also give you an idea of any underdeveloped skills that you need to work on.
I would definitely spend time building & working on your portfolio. A portfolio is really a business card for any good freelancer. Your portfolio can even be a collection of github projects, there just need to be some real substance there.

Ultimately if you land a job freelancing the client is looking for a few key things, an excellent portfolio, good communications skills, and most of all experience. These qualities take time to develop and allow the client to put more trust in the hands of someone outside the company.

An alternate to freelancing is working for some small startup for a year at a time. You'll get a wealth of experience and also a chance to build your portfolio. Good luck.

If you already have experience, but not a portfoio, I'd recommend targeting dev firms in your area for first-time clients. Here's why:

1) While I found most non-technical folks seeking freelancers to prefer a portfolio over a resume, the same wasn't true for dev firms. They usually have technical staff on board, so even though I lacked a portfolio at the time, they still recognized my technical accomplishments and background (whereas my non-technical clients really don't understand that stuff, they'd rather see a portfolio).

2) Many make use of contractors at a regular frequency, so if you're able to hook up with one, or a few, they'll help provide steady work during the early times.

3) Since they provide steady work, you don't have to concentrate as much on networking or marketing yourself. You'll eventually have to worry about that stuff, but when you're starting out you have so many other things to worry about. Dev firms help defer that burden, or at least keep the work coming while you figure that stuff out.

Best of luck. Freelancing can be tough when you start out, but very rewarding once you get into a good rhythm.

Building a portfolio is definitely worth your time.

Reach out to an open source project that needs a new website and offer your services for free, or make a simple online utility to show off what you can do, and open source that as well (open sourcing your products shows confidence in your code).

Also (shameless plug ahead): if you're looking to pick up some freelance gigs, sign up at http://gun.io and get notified when new freelance gigs for your skills are posted.

The easiest way to get a freelance gig is to have a friend on a freelance gig. Make friends of fellow freelancers.
I got started with only 1 project in my "portfolio". It was more like 5000 LOC however. Since then every client of mine has required me to sign NDAs so I currently still only have 1 project in my portfolio.
I'm surprised by a NDA that wont even allow you to disclose that you performed a project that did some certain things, or that you performed an undisclosed project for X Company, and then a list of the technologies involved.
I do disclose technology and general themes involved but frequently the contact says I cannot mention company names or individuals involved. Also even when I can, I cannot show the result of the projects to potential clients. Therefore, I only have 1 project in my portfolio showed to clients...
Improve your sales pitch. Do some initial work for a lower rate, then you'll have a portfolio of actual work.
It all depends on what you want to do.

Do you want to basically work on your own app but perhaps do custom installs of it, or integration work with it and other systems? Then focus on building on a basic app - while you're talking to potential clients. See if any actually want to use it, and what the pain points are.

I don't do 'design' work specifically, but I suspect if you were pitching 'web site design' to people, they'd want to see a portfolio.

Here's my 'portfolio':

website with my name on it, my location, and some description of what I do. links to sample code/projects (just a handful) link to blog link to resume (outdated by 2 years) list of some moderately current projects (yes, I know you won't have that right now) list of tech I like to work with

That's my 'portfolio' on my site.

What often gets people to me, however, isn't that. It's referrals. Word of mouth referrals from people in my network. But perhaps even more importantly, I participate in local user groups. I nominally still run the local php/mysql group, although I don't do as much day to day as I did years ago. But having my name associated with the local PHP group on meetup.com means I get cold calls from people just because I organize the group.

I get probably 1 a month on average - some random project someone needs done, and they don't know where to turn. They don't care about my resume, portfolio or anything else. They have a need and need it done fast. I sometimes refer them to other people in the local group or my larger network, or take it myself.

"networking" is important, but sometimes a nebulous idea, especially for people who are just starting out. Join other networks - get out there and socialize some, and let people know what you can do. But also promote yourself. An easy way to do that is to run your own group and publicize the heck out of it.

Here's another idea:

Go to local chambers of commerce and organize a 'meet the geeks' ("meet and geek" as a name?) night for local web freelancers in your area and the chamber members. Have it be informal - maybe a couple short presentations by people in the group about "how to get started on the web" or "things to look for in a web designer". DO NOT present yourself, but do organize it. Get everyone's name.

The local chambers should be able to find a space and food and get the word out to their members.

Make yourself known as the go-to guy/gal in your area for work. Even if you can't do the work yourself - that's not as important as being the middleman for that information.

This will end up paying dividends simply because almost no one else will ever do this. The fact that you put 3 hours in to organizing an event and getting people to do something will raise your stature and peoples' estimation of what you can do 100x what it actually is, but that doesn't matter.

Feel free to ping me if you want to discuss this more, or need more help getting started freelancing. I run indieconf.com, a conference for freelancers - perhaps you could attend this fall? (shameless plug!)

EDIT: Someone wrote me asking why I said to not introduce yourself. I was saying "don't present yourself" as in "don't do a presentation yourself", but instead have the event be a spot for other people to present themselves. You'll still have a chance to meet and mingle with X other people, you won't have to be as nervous, and the people you spotlight will reciprocate nice things back to you over time.

Depends on your geographical area, if you are very near a large city such as Chicago, Ad agencies will generally take you on as a temp to outsource to their clients if you have a web project portfolio to show even if its small..its not fully at freelance rates but still nice coin to get..
With only 2 projects and 100LoC each, I would have doubts whether you have sufficient experience to go freelance yet.

Have you thought of scoping out the established freelancers in your area and contact them to do some of their lower level work at a competitive rate and with permission to link to those projects that you worked on? You certainly don't want to claim credit for work you didn't do. So you do need to be clear as to what you did. Showing your are a dependable team worker is going to be in your favour.

Talk to as many prospective clients as possible, face-to-face, in the geographical area in which you want to work. Explore their problems and what you might do to solve them. The ideal contract will have you and the client fitting each other, limited experience and all, and the only way you will find this ideal opportunity is to get out there.

Keep in in mind that technical is only half of it. Communication in the other half. The client wants someone that they can talk to, feel comfortable with and trust. If the client and you are comfortable, you're a long way there, even with limited experience. So again, talk to people.

If you do get online work, great, but I think you will have a better chance of getting yourself established by starting locally. Also, only take work you can comfortably handle, especially when building a reputation. Don't get desperate and say yes to bad jobs. Clients value dependability over heroic efforts.

"Keep in in mind that technical is only half of it. Communication in the other half."

Technical, imo, is about 20% of it. Communication, presentation, professionalism and responsiveness are the other 80%. I recently had a friend bring on two contractors for a project. One senior - years of tech - sr level by any measure - and one juniorish.

The sr guy spent all his time refactoring stuff that didn't need it, ignoring established tickets, not answering phone calls, ims and emails in a timely fashion, and missing deadlines. The jr level guy checked in every few hours, did the work on time and answered every question the client had.

Guess which one the client wants back for more projects? The technical stuff - you can learn that quickly. And in fact, much of that changes or is 'new' anyway so you can't be expected to be an expert at everything. You can be expected to be professional. Acting the part, and being available when a client needs you, is about 80-90% of the business.

That's not to say you should lie/fake credentials and such - you will be found out if you lie about stuff eventually, either by the client or someone in their network. My point is generally, with most client/projects, it matters less whether you're an SQL expert or CSS guru and more about whether you show up when you say you will, and deliver what you promise.

Start a community site regarding something you're passionate about. Blog, forum, etc. Make it clear within that community that you're a web developer and always be clear about the sort of projects you can help with. You need to be in it for the long haul because it won't take off for a while but will help you later. That worked for me at one point many years ago. An alternative would be to become entrenched within another community that is already established. Make sure you're passionate about the topic at hand (sport, hobby, etc) or you'll stand out as an imposter.

Build a personal site - nothing crazy and nothing that is difficult to update or requires constant maintenance to stop it looking dead (e.g., blog component or 'latest news').

Make sure friends and family all know exactly what you do and that you're looking for work. They'll keep an ear out for opportunities. Sometimes they might be over-enthusiastic, but any lead has value. If your work queue is empty, you can handle a few time-wasters or painful jobs to get your start.

Major charities will usually turn down offers of unpaid online work (they want donations) so try for smaller ones. Or community sports groups. Companies may be wary of someone without a portfolio but given your spare time, you can afford to design a concept to prove your ability - no obligation to them. There is a line re: 'work for free or full-rate, but never for cheap', so you might have luck doing some charitable freebies rather than cut-price for small businesses.

Remember that the little jobs will often be the most painful, so don't give up when the early projects drag out. Always be building in your head a picture of how long certain types of tasks take you. Track it manually if you need to - concept design, cut to HTML/CSS, etc.

Business networking can help. Many areas have little small business organisations that will have get togethers or advisors.

Especially look to connect with marketing people who work for small businesses with suppliers/sponsors/etc and marketing freelancers who need a go-to web guy. Make an initial contact through an unrelated interest rather than going in with a sales pitch immediately IMO. If you are a strong programmer, speak with small graphic designers who likely farm out their backend work. Or if you're a designer, try to get a feel for which IT companies want a designer they can tap either as a contractor or someone directly in contact with their client.

(Me: Web developer about to complete a 14th year in business, now with two employees. Started by working on the side during an on-the-job traineeship. All work is now just word of mouth; have never advertised, barely bothered networking, etc.)

I've found that the best way to freelance is via word of mouth. However, if you don't have a portfolio, what are your credentials? How do you plan to convince people you're worth hiring? You might want to work on a side project, it goes a long way towards showing people that you can actually build nice things.

Also, the startup I'm currently working on does something directly relevant, so you might be interested in updates: http://www.instahero.com/

I agree, do side projects until you can convince somebody to pay you for similar services.
Build at least one project that looks nice. You don't need to spend a lot of time, but buy a nice-looking theme (I used themeforest) and build a simple site for a small business. Then hit up your non-technical network. Show them that you can give them an attractive website, and you'll probably find a few people who are interested in working with you.

When I first started freelancing, I spent 10 hours on a redesign for a local fitness boutique. It was an easy project that earned $700, but I would've done it for free if I knew all the business they'd send my way after. After seeing the site, the receptionist's brother wanted a website for his bike store, another client wanted a new site for his business, even the guy who cut my hair wanted me to make him a website after seeing the one project I had done.

If you can't find anyone in your network that's looking for help, try contacting local businesses with crappy websites. You can create some screen-shots of a potential redesign or even create a working demo page using pre-built themes (check out trial.mysitemyway.com). You'd be surprised at how many projects you can get from this type of outreach.