Hendra Nicholas I am a software engineer, consultant and CEO at 41studio currently living in West Java, Indonesia. My interests range from programming to sport. I am also interested in entrepreneurship, technology, and design.

How to succeed as a freelance developer

5 min read

Freelancing will change your life. Working as a freelance programmer offers many benefits. While some of the positives come from the flexible nature of the work, still others relate to programming specifically.

Here are major benefits when working freelance:

  • A better work-life balance: You can have breakfast with your partner again!
  • Being your own boss: Being a freelance Web Developer means you can work all morning (or all night for that matter)…
  • Freedom to choose your working hours / clients / rate of pay: Say a polite ‘no thank you’ to that miserable client and a ‘no thank you’ to his criminally low budget too.
  • The chance to work on more interesting projects: No more monotony, each month bringing a variety of work, clients and opportunities.

1. Begin with Full-Time Work

This can be a bit of a challenge if you have no prior experience and if you are primarily self-taught. Without credentials from a school and with no samples of work that have actually been paid for, you are competing with others who already have a “leg-up.” One of the things you can do is contribute to open-source projects that are out there, such as those on GitHub. You can build a technical portfolio from such projects and demonstrate you skills to potential employers.

Here are a number of important skills you can pick up once you are employed by a company:

  • You will learn how the business side of a development company operates
  • You will have time to enhance your skills
  • You will learn how to work with clients of all “stripes.”
  • You’ll have the chance to build up some savings which you will need when making the move to freelancing.

2. Start Building Your Portfolio

Begin a web-based portfolio as soon as you are hired, and put every project in there. These can be categorized with hyperlinks. At the same time that you are developing that portfolio, begin to work on your resume. Here you will provide the details of each of the projects in your portfolio, explaining the client requirements, the scope of the project and its ultimate success. Here you will have the link to the specific project.

In the end, you will most likely weed out projects and choose which ones you will actually discuss in your resume or CV, but right now, provide detailed descriptions and process explanations for them all. As a web developer, there may be other related projects that your employer will assign. Gladly assume them and, as you get each project done, add it to your portfolio and resume too. It’s good to show versatility. Again, the time to clean and polish both of these things will come later when you get ready to make your move. Right now they are working rough drafts.

3. Find Your Niche

Freelance developers who do really well have established themselves as the “go-to” people for very specific things – sort of like specialists in medicine or law. There are “Jack-of-all Trades” developers who will do a good job on most anything, but then there are the specialists who do a good job on most anything, but a really stunning job in a few key areas. To become a specialist, consider taking up a new language, or keep upgrading your skill set on a couple of those you already know. Take online courses and earn certificates; pick up skill in complementary areas such as UX or UI design. To be able to design and develop together makes you far more valuable as a freelancer – a one-stop shop so to speak for someone in need of a website from scratch.

As a niche expert with complementary skills sets, you will have a much easier time marketing your personal brand. If you are not certain what programming niche(s) you should choose, these are pretty hot right not:

  • Ruby on Rails: This is the preferred open source framework for startups all over the globe right now.
  • Swift: This is Apple’s language for Cocoa and Cocoa Touch. It is specifically structured for iOS development – hot, hot, hot.
  • Node.js: A platform for building fast and scalable applications. A lot of developing experts believe that it will become a big competitor to Ruby on Rails pretty quickly.

4. Network

You should begin to network from the day you land your feet into your job. There are so many developer communities out there, all of which have meet-ups, either on or offline. Begin with your colleagues at your job. Have conversations about things beyond the scope of your current project(s) – the more you learn about project variety and the business operations, the better.

It goes without saying that you will also need to have a LinkedIn profile and join groups on that site. Participate in discussions in all niche and niche-related groups, so you’re your name becomes known. Show your expertise through those conversations.

Get on Instagram and display carousels of projects in various stages and, of course, the final product. Start showing some of your projects on your Facebook Page. Follow other freelance developers and get involved in conversations with them. Check out development blogs and become a contributor.

All of these activities will spread your personal brand, and you can do this even before you strike out on your own. You will probably have a “conflict of interest” clause where you work, so you cannot take on side projects while you are employed, but having the contacts in advance will make getting gigs later much easier.

5. The Day Comes

You will have a lot to do when you launch. Set up your website with your portfolio (which should be well-organized if you have kept up with it). Go full-steam ahead on your marketing.

  • Let all of your contacts know that you are open for business. Ask for referrals.
  • Ask colleagues you know for overflow work if they have any.
  • Get your profile on as many freelance clearinghouses as possible.

Beyond your self-promotion which is almost a full-time job in the beginning, you will have all of the other aspects of running a business. If you have prepared yourself, you will be ready to assume budgeting, marketing, invoices, and tax requirements. There are great apps out there to do a lot of this for you, so consider outsourcing some of your paperwork. Just don’t ignore the day-to-day operations and then have to play catch-up after a large backlog has developed.

Becoming a freelancer is a big leap. It will take superior organizational skills and a willingness to put in far longer hours than you did working for someone else. If you have the passion for this; if you have planned in advance; if you can treat your freelancing as a business, then you have the recipe for success.

6. Use a Contract on every project

If you’re just beginning to learn how to freelance, let me help you avoid making one of the most common mistakes I see.

Use a contract for EVERY client project. But, don’t get bogged down in finding the perfect contract.

Starting off with a template is okay, as long as you remember to keep making improvements along the way.

Too many freelancers get caught up in the details of contracts, and it’s ultimately wasting a lot of time that should be spent making money.

All you need for the time being is a general agreement that covers some basic, yet important terms that both you and the client need to agree upon.

In its simplest form, your contract terms should cover:

  • The work that you produce is original and not plagiarized.
  • The client’s proprietary information stays confidential.
  • Your payments terms. (How much you’ll get paid and when during the process.)
  • That once the client accepts the completed work, they accept full responsibility for any further processes in which the work is used (e.g. printing, putting the logo to use, etc.)
  • You and the client have the right to terminate the services, and what that entails for you both.

Having some basic terms in place for every project will help protect you, but more importantly, will help inform the client of how you work.

7. Be transparent with your clients

As a freelancer, your business is just you running it inside out. That’s something you must be proud of, so don’t hide behind a facade:

Be the name and face of your business, because your business is you.

From a client’s perspective, if I were to hire you to provide a service, I would want to know who I’m giving my money to. So be sure to inject who you are into your brand. You can shape that however you’d like, but the key is to be personable. Also, when a client is interested in working with you, be transparent in conversing with them.

If you only take on freelance opportunities part time, let them know. Otherwise, you could run into a situation where expectations are misaligned and conflicts pop up as a result. If they’re going to hire you, explain to them how your process works.

Show your interest in them and their business, then break down what they can expect by working with you step-by-step.

Being transparent isn’t a weakness, it helps build trust and confidence, and can be what seals the deal in a proposed project.

8. Communication & PR

Being a freelance developer means marketing yourself as a professional to sell your services. You must be skilled in public relations and a good salesman if you want to succeed as a mobile app freelance programmer. You are no longer selling a product or service from a particular company but selling your own services. This is why communication and personal branding are two of the most essential components towards building confidence in potential customers and getting app projects.

Hendra Nicholas I am a software engineer, consultant and CEO at 41studio currently living in West Java, Indonesia. My interests range from programming to sport. I am also interested in entrepreneurship, technology, and design.