Before I started freelancing, I had been working full time as a full stack web developer for about 10 years. While there are lots of developers who start their careers as freelancers, I would guess there is a large majority of developers who would like to work for themselves but are not able to line up the pieces. Here are some tips from my own experience that I've compiled that I hope will help you get closer to becoming a freelancer.
Build up your financial cushion
Before you can take a leap you need to figure out your cost of living. How much do you need to live comfortably or even well? What is your burn rate, and what could you cut out if you had to? It's important to do this before because once you become self employed the line blurs between your personal costs and your business costs. I recommend having enough cash to live off for 2 years or at least 1.5 years so you give yourself the time to really try this out. You want to make sure you're not completely stressed at the beginning, a little is good but not the kind that hinders your ability to think clearly and creatively.
- Often a more effective way of increasing your profits is by lowering your burn rate by cutting out expenses that are not vital. Making more money is difficult because you're usually not factoring taxes into your take home pay when you look at the bank.
- Be careful with any subscription services as those costs will really creep up on you fast.
- Setup a spreadsheet with your expenses & income for the year. Figure out where your money goes and how much you save. Once you know where you're at, you can start to target goals for yourself as an independant freelancer. Here are two handy google spreadsheets you can try out to get started on budgeting.
- Budget Template 1
- Budget Template 2
Connect with people in your field and start to build up a list of people you could email or call about sending referrals your way. The first thing you'll want to do when you begin your business is to send an email to people within your network about your next chapter in life. The larger the pool of people the greater the odds of solid referrals. Most people want to help out friends and are often excited about friends who are starting their own business. You might be surprised that people you least suspect become your supporters, think ex-bosses as an example. It's important to remember that your bosses are often entrepreneurs and will appreciate the challenges you will face when you make the leap to self employment.
- Compile a list of contacts/emails including people you would like to have on the list. Work on growing your list and network so that when you're on your own you have a solid list of people to reach out to.
- You might find this tutorial handy. It gives you a way to streamline your own personal leads with google spreadsheets. I personally use Trello but if you have a lot of contacts or leads to manage a spreadsheet would be more appropriate.
Become friends with people who aren't developers
Developers often stick together, we grab coffee in packs and generally put on headphones to stay in the zone. Try branching out, while I love the developer culture it's usually not developers who will be able to help you expand your business. Often they are the ones you want to hire or subcontract to.
Tip - Try joining company functions which involve other departments and just chatting more with other folk.
Put yourself in the shoes of your boss
When I started working for myself I started to have a lot of empathy for all the people I had worked for before. You realize how hard it is to run a business, keep expenses low, and make clients happy. When you are working in a company it's easy to get complacent about the business side, and focus on code output.
Tip - Assuming you're still working at a company, take the opportunity to understand the business and how it makes money. Even try to get to know your boss better if that's reasonable.
Become good at what you do
It's paramount that you become really good at whatever service you are selling. In my case that was specifically being a full stack web developer. If on the other hand you are really good at APIs, then try to become an authority on the subject. Setup a site about it, a newsletter, write a guide or set of tutorials... all of these things will have huge payoffs when you need to prove to a lead why they should hire you.
When you are on your own, you are no longer able to hide under the brand of a company, you are the company and the brand, so it's important that you do whatever you can to become really good at your craft.
One recent initiative I took on was starting a newsletter and website called thed Vue Js Radar. This forced me to stay on top of the technology which I use daily, engage with the community, give back to open source, and open up doors for contracts knowing that I am heavily involved with the framework. I'm not a core contributor but I'm one step above the large majority of Vue developers who consume and build projects in private.
Listen to podcasts from Full Stack Radio by Adam Wathan. He covers a full range of topics that can help you become better as a developer, also he's often interviewing developers who have figured out how to make a living selling their own products or services.
I would also recommend reading some of the "bible" books in the development world. Here's a small non exhaustive list of some to consider:
Marketing and Positioning Yourself
One of the most important skills you'll need as a freelancer is being able to sell yourself. Sometimes that can be just being really good at what you do, but often you need to know how to position yourself among the competition. If you're in a competitive market, understand why you are a good hire for a company. For example, my primary competition are other full stack developers and small software shops which handle small to medium sized projects. While I'm continually working on how to position myself as more attractive, my angle is that I'm more affordable than a shop but can do the same work. Compared to other full stack developers I have 15 years of experience which is hard to come by, and more importantly I am a strong communicator. The projects I find I don't compete for are the long term commitments or ones needing a developer with a very specific expertise. I purposely avoid these and do not focus my energy on positioning myself this way. This often means I don't work with recruiters because they tend to work by matching you up with full time commitments and are often looking for people for point solutions that need specific domain knowledge.
Tip - I highly recommend following Justin Jackson to get an idea of how to market yourself as a developer. A lot of this comes down to building up your communication skills and learning how to write.
Define a roadmap
Before I took the leap to self employment, every quarter I would review and update a roadmap with my wife. Let me be honest here, every quarter turned to every year and then every second year :). The funny thing is that this roadmap has been pretty consistent. The goals we set out to do 8 years ago are more or less on track. If a goal wasn't met then it's likely because I changed the focus to another aspect of the roadmap. You need to have a roadmap, an idea of where you want to go. This is a personal roadmap that encompasses your professional life, because you really can't separate family and work life, they are intimately tied together and become even closer when you start to freelance.
One day I was standing in a local shop and noticed how they had these awesome employee roadmaps posted on the wall. The key part of it was that it asked an employee to figure out the overlap between three areas:
- Best in World
- How I Make Money
When you can find the intersection of these three then you have found something you can really focus on. This concept actually originated in Japan and is called Ikigai.
Tip - Try filling out this template I use for my roadmap here
Value Your Time Like Crazy
When you work for someone you tend to work the same hours, whether that's 9-5, 8-4, 8-8 (I hope not). Your day is set and there is really little room to wiggle here. When you're done work you have a commute and a few hours to do something fun and relaxing. When you work for yourself it's entirely different. You will find yourself working on regular core hours to overlap with clients or other peers, but really during that time you can do anything. It's important that you schedule your days, weeks with a general goal for each. Break it out as much as possible, book yourself in like a client. The more clarity you have on your day the easier it is to just do great work. If you're not sure what to work on or what's a high priority, you'll most likely just gravitate towards what interests you. Most importantly, the better you manage your time the more you can spend your free time with loved ones. A freelancer has the unique opportunity to work on their own hours and flex things. This gives me the opportunity to spend more time with my young boys and also the occasional coffee meetup with my wife on her breaks.
Tip - Use a tool like Trello to manage your workflow. Bonus points, hook it up to the https://planyway.com/ plugin to visualize your entire day/week. I schedule myself on monthly basis and re-organized my Trello board each morning before I do anything.
Ignore Imposture Syndrome
There's a lot of self doubt that goes into starting your own business, especially if you are not making much money or any at all. Remember that this is as real as it gets and that working for a company is really sheltering your from that. When you take the risk of finding your own contracts and putting food on the table, you are the real thing. Don't listen to the demons in your head that tell you regular employment is all you can do, you have to believe. That being said, if you really aren't having success or enjoying it then it's important to recognize that and do something about it. Whether that's tweaking your strategy to make it work or going back to regular employment. Just recognize that you will have the imposture syndrome thoughts in your head all the time and that it's normal.
I hope you found this post useful and can use some of these points to improve your career. If you have any questions or stories of your own to share I would love to hear from you. You can find me on Twitter or through the comments below.
Make the leap.
Subscribe to the newsletter
and learn how to become a freelance developer.