The Software Developer’s Guide to Freelancing and Starting a Business

Written By John Sonmez

When I was working a regular 9-to-5 job, I’d often fantasize about starting my own business––working for myself.

I’d think about how nice it would be to be a freelancer and not have a boss.

I’d daydream about traveling the world, working whatever hours I pleased, and making hoards of money from lucrative contracts.

Then I’d snap to reality as I realized I had no idea how to go about making something like this happen.

I mean, how do you actually become a freelancer and work for yourself?

How do you start a business?

I assumed what you had to do was bid on government contracts, and if you put together a strong enough proposal and got one of the contracts, bam!, you were a freelancer and you could run your own business.

I went far as to register for a DUNS number, which is like a social security number for a business, but that’s about as far as I got.

I looked at some government contracts that I could submit proposals for, decided it was too difficult, and gave up.

I didn’t really revisit the idea again until what I was wishing for sort of magically happened.

About a year after I created my Simple Programmer blog, I started getting some unsolicited offers to actually do some freelancing work.

People would email me and ask me if I could do a certain kind of work and what my hourly rate was.

With glee, I rubbed my hands together and cautiously typed “$50 an hour” as if I was pulling a fast one.

My offers were pretty quickly accepted and I ended up doing quite a bit of freelance work at what, at the time, I thought was a high hourly rate.

Later on, I doubled that rate to $100 an hour and then to $200 and then $300, and now my minimum consulting fee is $500 an hour, or $5,000 a day.

But it wasn’t easy to get there, and I found out that many of my fantasies about what it would be like to be my own boss as a freelancer weren’t quite what I had imagined, to say the least.

I’ve definitely learned some important lessons along the way.

In this chapter, I’ll share those lessons with you and give you some practical advice on how to start freelancing—if that’s what you want to do—or even to start any kind of business in this modern era of the entrepreneur programmer.

Are You Sure You Really Want To Do This?

The first question you should ask yourself is if you are sure whether or not you really want to embark upon this path.

Don’t get me wrong; I want you to become an entrepreneur of sorts.

I want you to eventually stop working for “the man” and find your path to freedom.

But freedom is not for everyone.

Most people can’t actually handle freedom when they get it, and even more people aren’t willing to pay the price it demands—and it ain’t cheap.

Like I mentioned earlier, there is the dream of starting your own business and becoming a freelancer or some other kind of entrepreneur, and there is the reality.

The reality is that it is going to take a large amount of work to even get to the point where the dream is a reality.

You are going to have to be willing to put in long hours after you’ve already put in a full day’s worth of work at your regular job.

You are going to have to do things that make you uncomfortable.

You are going to have to face rejection.

In many cases you are going to have to take large risks.

Regular employment offers you a steady paycheck and certainty; freelancing and entrepreneurial efforts do not.

You could work for a client for weeks or months and not get paid.

You could spends months or even years creating a product and it could bomb.

This very book I’m spending months on writing, could turn out to be a complete failure.

And there are no halfway measures here.

If you don’t “play full out,” as one of my mentors, Tony Robbins, says at all of his seminars, you are not likely to succeed.

And if you do succeed on “leaving the nest” or regular employment, are you actually ready to handle that level of freedom in your life?

Before you say “of course,” take a careful moment to think about it, because in actuality, most people are not.

It’s easy to get up in the morning, drive to work, sit at your desk, and work from 9 til 5 when you “have to,” because you’ll be fired if you don’t.

It’s much more difficult to get up in the morning, walk to your office and decide to work, when you could be playing Xbox, watching TV, going for walk, or doing a multitude of other things with your freedom.

Some people just can’t handle that much freedom.

The first two times I tried to become an entrepreneur, I couldn’t handle it.

That much freedom crushed me.

I spent a large amount of time playing online poker, leveling up my Lore-Master on Lord of the Rings Online, and just generally goofing off.

Now, I’m focused. I’m disciplined.

I’ve learned that I have to create rules for myself and follow them if I don’t want to follow someone else’s rules.

It’s a difficult lesson.

All of this isn’t to discourage you, but to push you off to one side of the knife’s edge.

You may read this section and say, “Hell no, I’ll pass!”

Or you may read this section, be even more inspired and double your resolve to get free.

Whichever path you choose is up to you, but don’t say you haven’t been warned.

What Is Freelancing?

Freelancing is pretty simple: it’s when you aren’t employed by anyone, but instead work for hire.

It’s kind of like being a mercenary, except you aren’t fighting other armies and crushing revolutions. Instead you are writing code and perhaps slaying a few dragons that lurk therein.

I further define freelancing here to mean that you have more than one client.

If you just are a contractor working for one client who isn’t technically your boss, I call that consulting or contracting, not freelancing.

Nothing wrong with that, but it’s much more like full-time employment then an entrepreneurial activity like the kind of freelancing I’m defining here.

A true freelancer works for multiple clients, although not necessarily simultaneously, and has to manage the overhead of finding clients, creating contracts, and running a real business.

How To Get Started

This was the question I could never figure out the answer to.

When I was an employee, the idea of becoming a freelancer and getting clients to hire me to work on their projects seemed too foreign to me.

Working for someone else for too long sort of makes you like a lion in the zoo.

You expect to go to a certain place and be fed each day.

You’ve got a nice, comfortable enclosure you can walk around in and you know what the boundaries are.

You’ve “forgotten” how to get and kill your own food.

You’ve “forgotten” how to hunt for it.

Or, if you were born in captivity, you’ve never known how to do those things at all.

You just have this faint and barely discernible repressed instinct that sometimes whispers, “Hunt… kill.”

How do you connect with that animal instinct and learn to feed yourself?

Well, there is a hard way and there is an easy way.

The hard way is to get out there, polish your sales skills, put on your anti-rejection armor and pound the pavement.

Start by going through all your social circles to find any connections you have or any connections of connections who might be interested in your service.

Start with a fairly low hourly rate and a “satisfaction or your money back” guarantee.

Contact everyone you can who either might be slightly interested in your services or might know someone who is, and let them know that you are in business and what specific benefits you can provide to someone who hires you.

Try to be as specific as possible.

Be specific in the kind of clients you are looking for and the specific services you can provide.

Only don’t talk about what you can do in terms of services.

Talk about what you can do in terms of results.

Don’t talk about how you can program C# code for someone and you know SQL.

Talk about how you can save them time and money by automating business processes and making existing software more efficient and cost-effective to maintain.

Talk about how you can get them more customers with a highly-optimized and performant web page that will set them apart from their competition.

Once you’ve exhausted the list of people you are connected to, you have to start prospecting on your own.

You might want to purchase a list of small businesses in your area through a service like the one Experian offers.

You could also hire someone to compile a list of small businesses in your area or just do the research yourself.

Get on the phone, send emails, and keep refining your pitch.

It’s a numbers game to get clients this way, but if you are determined and persistent enough, you’ll eventually crack this nut.

Once you have serviced enough clients and made sure they are happy, you can start to build up some word of mouth and referral business, which will make future business come much easier.

Along the same lines, you can talk to other freelancers you know and offer to take on any clients they don’t have the capacity to handle, if they will refer them to you. Perhaps offer a referral fee.

While I don’t recommend it, you can also get some experience and possibly land some long-term clients by using a service like Upwork or advertising your services in Craigslist. Just know the competition will be fierce and your hourly rate will likely have to be low.

Didn’t You Say There Was An Easy Way?

So, yeah. That’s the hard way.

I actually never got any clients the hard way.

I never figured out how to do it the hard way until years later—now it’s obvious to me.

But, oh yes, the easy way. That’s what you wanted, right?

If you’ve been paying attention to the other chapters in this section, you may have already guessed the “easy” way.

Get clients to come to you.

And how do you do that, you may ask?

This is where building that reputation, specializing and creating that blog come into play.

You see, there is a large amount of overhead in prospecting clients yourself.

It’s much better if you can use what is known as “inbound marketing” to get potential clients, or leads, to come to you.

And you can do that by being the kind of person that people find or hear of and specifically seek out.

Now, this “easy” way can actually be more difficult in the short term.

It takes a large amount of effort and work and time to build up a reputation.

It’s not easy to create a blog, write posts, speak on podcasts, and do other things to build up your personal brand.

But if you focus on doing these things while you are working at your regular job—and you start early on—when you are ready to jump into the world of freelancing, it will be easy because your customers will already be coming to you.

Not only will they come to you, but they’ll be willing to pay you more money.

When you solicit someone else and try to get them to use your services, you aren’t exactly in the best negotiating position.

But if someone comes to you and asks you specifically to do some work for them, you can sort of name your price.

This is the way I ended up doing freelancing work.

Like I said, I never did figure out how to drum up work the hard way.

Instead, as my blog started to get popular and my reputation in the software development industry started to grow, I started to get more and more email from potential clients wanting to specifically work with me.

In fact, I started to get so much business that I had to raise my rates again and again, until they reached what I considered an unimaginable number and that’s where they rest today.

That reminds me, we should talk about rates…

How To Set Your Rates

There is quite a bit of advice floating around out there on how to set your rates as a freelancer.

One of the most common pieces of advice today is to double your rate and keep doubling it, or at least keep increasing it, until potential clients start to say “no.”

This is decent advice if you are already fairly well established, but if you are starting out it’s horrible advice, because all you are going to get are nos.

In fact, I’d recommend starting out at a very low, even close-to-free rate, with a money-back guarantee so that you can gain some experience, get your first clients more easily, and understand what your true overhead and costs will be.

|Hey John| If I offer a money-back guarantee don't I run the risk of being ripped off by my customer?

No, and here’s why:

If you don’t deliver what you promised your customer, aren’t they going to ask for their money back anyway? And aren’t you going to have to give it back to them?

Think about it.

If you hire someone to do a job for you and they don’t do the job or they don’t do a satisfactory job, aren’t you very likely to ask for–perhaps even demand–your money back; maybe even sue them?

So, if you are going to go into business at all, you are pretty much by default offering a money-back guarantee. You might as well make it explicit and gain the benefits of the additional clients you’ll get just by making that offer.

But, I can understand that you might still not be convinced–I should put my “money where my mouth is,” so to speak.

Well, I do.

For instance, if you aren’t happy with this book, ship it back to me and I’ll give you your money back.

Not only that, but just about every product I sell has a full one-year-unconditional money- back guarantee.

And these are on mostly digital products that you can easily download and then ask for your money back.

Do people rip me off?

Sure they do, but many more people buy who would have not otherwise bought, simply because of the guarantee.

So, yes, occasionally someone may try to rip you off if you offer a money-back guarantee, but it’s unlikely and the amount of additional business you’ll get by having the guarantee will more than make up for it.

Besides, you can always screen your clients and choose who to work with, and, like I said, aren’t you going to have to give their money back anyway if you don’t perform?

Don’t you think that would be the right thing to do, regardless of a guarantee?

Now, if you are having no trouble getting your first clients because you’ve done things the “easy way” and they are coming to you, you might want to just start off with the doubling your rate advice.

But if you are like most freelancers who are starting out and you’ve chosen to do things the hard way, or you didn’t really choose but that’s where you are, I’d highly advise you not worry about making money at all, at least at first.

I interviewed software-developer-turned-entrepreneur and freelancer Marcus Blankenship about how he “got free” from the corporate world. He talked about how, for his first few freelancing jobs, he charged a ridiculously low amount and it took him way longer than expected, so he ended up actually working for less than minimum wage.

Marcus said it was actually the best decision he ever made, because even though that job effectively cost him money, it gained him valuable experience, confidence, and true understanding of what freelancing would be like.

So, without beating a dead horse too much, I’ll just say be willing to work cheaply at first and the money will come—trust me.

Now, if you are somewhat experienced and you are trying to determine what your rate should be, the answer is “higher.”

I don’t agree that you necessarily have to double your rates, but it’s not a bad idea to try it and see what happens.

I doubled my rates from $50 to $100 and no one blinked an eye.

I jumped up to $200 and then $300 an hour and I finally started to get “nos” at $300, but I was still getting plenty of “yeses” as well.

Even when I jumped my rates up to $500 an hour—where they sit now—I still get takers. (Although usually not for programming tasks now, more for coaching and overall architecture consulting.)

Part of the reason why I was able to raise my rates so much—actually 90 percent or more of the reason—is because my branding and reputation increased.

You might not be able to increase your rate to that ridiculously high of a level, but if you are experienced and you have business right now, I can almost guarantee you that you can increase your rates.

But what should the actual rate be?

My simple answer is: whatever the market will bear.

Pricing on non-tangibles is entirely subjective.

I’ve known highly-paid programming consultants who billed corporate clients at $350 an hour while they sat around and did nothing, while other contractors on that same team did 90 percent of the work and billed out at $50 an hour or less.

So, while skill is important, it is a minor factor in determining rate.

The client will be the most important factor and reputation will be the second-most important factor.

You want to find the clients who are willing to pay the higher rates, and you’ll find those clients and attract them mainly based on your reputation.

Your skills will help build your reputation, and they’ll also make sure you don’t get fired from the job you have, or have to give the money back.

One thing you may want to consider is to move away from hourly pricing completely and instead focus on what is known as value-based pricing.

Value-based pricing is where you price your services not on an hourly rate, but on an expected outcome for the client and what that outcome will be worth to your client.

Suppose I have a client who has a large ecommerce website and they want someone to build a module on it that will automate the processing of t-shirts, which they currently have to process manually.

I could determine how much that new system would save them in money, and then I could work out an offer to them based on that outcome.

Perhaps it will save that company a million dollars a year.

In that case, I could offer to do the job for $50,000, or even $100,000.

Maybe it only takes me 80 hours worth of work and so I can actually make $625 to $1250 an hour.

This would be a price no one would ever agree to pay when priced as an hourly rate, but when you look at it in terms of value-based pricing, it is a pretty good deal.

You can also price your services at a daily rate using a similar approach.

Most of the time if someone wants to hire me for some work, the minimum time I will allow someone to book me for is one day.

Then I price my daily rate at $5,000 a day or my weekly rate at $20,000 a week.

I’ve already taken up more space in this book talking about pricing, than I intended, so I’ll stop here, but I recommend “Million Dollar Consulting” by Alan Weiss as an introduction to the topic. You can also check out an interview we did on Entreprogrammers, Episode 56, with Wes Higbee, where we talk about value-based pricing in depth.

Starting A Business

Now let’s shift slightly from freelancing to the general idea of starting a business, which incorporates freelancing.

Starting a business is easy; you just hang up a sign and say “open for business,” and you are “in business.”

Ok, maybe it’s not quite that easy—there are a few legal hurdles you have to jump through depending on where you live—but for the most part it’s really not all that difficult.

What is difficult is creating a profitable business, and maintaining that business and everything associated with operating a successful business.

As a software developer, you are in a great position to become an entrepreneur and start your own business.

You could be a freelancer, but you can also form a startup by creating an app or service that you sell.

Or, you can do what I do: produce content and teach what you know.

You have an advantage in that today it’s much simpler to create a business online, especially if you know your way around the technology involved, and you’ve got more than a leg up on most people there.

Also, one of the most profitable businesses to be in is that of software.

Software businesses deliver a product that has almost no overhead, aside from the initial cost of creating the software, and that cost is greatly reduced if you can do it yourself.

(Oh, and before you start your business, read this book first, The E-Myth Revisited by Michael Gerber. Trust me on this one.)

Don’t Try To Get It Perfect

Let’s be honest, most businesses fail.

In fact, many fledgling business owners spend more time actually setting up their business, getting all the legal entities straightened out, creating that perfect logo, getting accounting software setup, and a bunch of other unnecessary stuff than they do actually operating the business.

What I mean by this, is that many software developers who start their own business waste a huge amount of effort, time and money on things that don’t really matter, and they end up not having the energy to actually make the business itself successful.

My advice is: don’t do that.

Assume the business is probably going to fail and then think about the smallest amount of work or overhead you can incur in getting it started.

I’m not a lawyer and this isn’t legal advice, so don’t sue me if you run into trouble, but my non-professional opinion on this subject is to not even worry about legal entities, accounting, or anything else concerning your new business, until you are actually making a non-trivial amount of money and can be pretty certain you will still be running the business a year from now.

The reason is simple and twofold: you want to exert as much of your energy as possible towards the things that really matter the most when you are first starting out, in order to give your new business the highest chance of success. And if you do fail or close shop, everything you’ve done that didn’t make you money will be a complete waste, so you want to minimize that as much as possible.

It’s really easy to get caught up in all those little details.

It’s really easy to spend weeks and thousands of dollars working on a perfect logo or having your new website designed.

It’s really easy to get sucked into the complex world of business law and tax accounting and worry about all of these little details.

So, avoid as much of them as possible for as long as possible.

Don’t get me wrong.

I’m not suggesting you be careless and never address these important issues.

Not setting up proper accounting or the right legal entities for your business will eventually bite you in the ass—HARD—but it’s best to know if your business is actually going to have chance of surviving—and to give it the best shot of doing so—before worrying about or investing in those things.

Plus, once you are making money with your business, these difficult matters become much easier to handle because you can hire professional help to get through them instead of having to try to figure it all out yourself.

Don’t Quit Your Job

One huge mistake many wannabe entrepreneurs make is to save up a bunch of money and quit their job so they can start their business.

It seems like a good plan, but it’s a horrible one that often ends in disaster.

I don’t know about you, but I don’t like doing things with a gun to my head.

I don’t perform as well.

Having six months or a year’s worth of savings as a runway to get your business started and support yourself is a pretty big gun.

In fact, the pressure can be crushing.

When you have that kind of pressure on you, and you’ve never done something like this before, you are much more likely to sit in Starbucks all day procrastinating than actually getting any real work done.

Also, when you suddenly go from working a regular 9-to-5 job to having a bunch of freedom and sole responsibility for your own schedule, it is very easy to choke. Believe me, I’ve done it twice before.

So, my suggestion is to not quit your job, at least not right away.

Instead, start whatever business you are going to start on the side, as a side business, while keeping your full-time employment.

There are quite a few reasons I recommend taking this approach other than that whole gun-to-your-head thing—which is a pretty good reason in itself.

Another major reason for taking this approach is that you need to start getting accustomed to what it is like to be an entrepreneur, starting your own business.

And guess what it’s like?

Well, it’s surprisingly a lot like working a full-time job all day and then working four to six more hours on top of that—oh, and working weekends as well.

Believe me, if you aren’t able to handle the sacrifice of working nights and weekends on top of a full-time job, you aren’t going to cut it as an entrepreneur. You just aren’t.

Better to find out now, while you still have that “cushy” job and haven’t borrowed money from your friends and family or taken out a second mortgage on your house.

I’m not saying this to be mean.

Really, I’m not.

I just know, from experience, that this shit is hard and that you better be prepared for it.

Believe me, like I said, I’ve failed twice because I was not up to the task.

I actually quit my job twice.

It wasn’t fun.

So, my best advice for you is to start that business on the side.

Get it running.

It might take you two years or more of working two jobs.

But at some point your side job will make you enough income that you can quit your regular job and make it your full-time job.

Notice I didn’t say it will replace your income—that’s not likely with a business you are running part time.

Instead, quit your job when your side income provides you just enough income for you to live on, which will likely be considerably less than you make at your full-time job.

Just another one of those sacrifices involved in becoming an entrepreneur.

Build An Audience First

I’ve mentioned this in various forms so far in this book, especially in regards to marketing yourself and building a reputation, but I want to spell it out here, because it’s even more important that you do this if you are starting a business where you are selling something online.

Before you even start to create a product, or even think about charging money or finding customers, build an audience first.

Now, you don’t have to take this advice.

There are plenty of businesses that were highly successful by building the product and then finding the audience, but I think it’s a whole lot easier if you do it the other way around.

Many entrepreneurs have a great idea and then even build a great product from that idea.

So they have this shiny, awesome software that is perfect for solving someone’s problems, but how do they find those someones and convince them to buy it?

They spend money on marketing to sell their product, tell everyone they meet about it, do everything they can to get customers, but more often than not, they run out of money and end up failing, all while having a perfectly great product.

It’s difficult to get anyone to buy something from you without a relationship.

Consider the alternative.

At Simple Programmer, I have a pretty large audience of software developers.

At the time of writing this book, there are about 70,000 software developers on my email list, another 100,000 subscribed to my YouTube channel, and around 30,000 to 50,000 who visit one of my sites or properties each day.

If I decide to create a new product, I’ve got hundreds, if not thousands, of people ready to buy it immediately.

I don’t have to go and hunt for customers.

My audience trusts me because I have a relationship with them.

They want me to produce things they can buy.

This makes the sale easy.

I also know what my audience wants and likes—another huge advantage.

Plus, I can create multiple products and sell them to that same audience, rather than create one product, try to find customers for it, and have to start over if I want to create another product in the future.

Consider this book: if you bought it, how did you end up buying it?

There is a pretty good chance you bought it because you saw one of my YouTube videos, read a blog post I wrote, heard a podcast I was on or even read my earlier book.

Building an audience gives you a huge advantage.

It almost guarantees your success.

Yes, it takes extra effort.

Yes, it takes time and you don’t make much money while you are building your audience.

And, yes, you have to create a large amount of free content.

But once you have an audience, you have a business which is not dependent on a single product and one that you can possibly tap into for the rest of your life.

Learn How To Sell

I can’t think of one successful entrepreneur who isn’t also a successful salesperson.

In fact, even if you never become an entrepreneur and never decide to start your own business, your salesmanship skills will likely be the limiting factor to your success in life.

We are always selling.

Everyone sells.

Some people just suck at it.

Whether you are trying to convince: your kids to go to bed without a hassle, your boss to give you a raise, or your coworkers that your way of doing things is the best way, you are selling.

Selling yourself, selling your ideas… and if you are an entrepreneur, selling your product. (Although, one might argue that the main thing an entrepreneur of any sort does is sell themselves and their vision for the world.)

Selling is difficult, though.

Not just because the techniques are difficult and non-obvious, but because selling requires you to face one of the greatest fears in life: rejection.

To sell is to face rejection.

But face rejection you must—especially if you want to be an entrepreneur.

So you are going to have to, as they say, suck it up, buttercup.

Fortunately, sales is not that difficult to learn.

There are plenty of books on the subject.

I’d recommend checking out anything by Grant Cardone, especially Sell or Be Sold.

You should also look into books on copywriting since selling online really is the same thing as copywriting.

I’d suggest starting with the books at Copy Hackers for acquiring this skillset.

And one tried-and-true way to get good at sales is to just do it.

Get a part-time job doing phone sales or going door-to-door.

Don’t worry about the money, get some real experience selling to people and facing rejection head on.

But, whatever you do, don’t try to avoid mastering this skill.

You can’t outsource sales if you are running a business.

You can hire a sales team, but you must be the master salesman first.

Get Help

Simple Programmer would not exist today if it were not for Josh Earl, Derick Bailey, and Charles Max Wood.

These guys are also known as the Entreprogrammers.

They are part of a mastermind group I started a few years ago, which we made into a weekly video podcast.

What is a mastermind group?

It’s basically a group of people with different skillsets and businesses, but like-minded in their goals, who meet together on a regular interval to help each other succeed.

Being an entrepreneur is difficult.

As the old man from Zelda says, “It's dangerous to go alone!”

You need to have some support—it’s critical.

It doesn’t have to be a mastermind group like mine, but you really need to have someone in your corner, encouraging you and cheering you on, because there are going to be plenty of times when you are going to want to just give up.

Like I said, these guys saved my business, because without them, not only would I have likely given up, but I wouldn’t have got that cross-pollination of ideas which was so critical for Simple Programmer to grow and thrive.

Life as an entrepreneur is a rollercoaster.

One day you are on top of the world, the next day everything and everyone sucks.

Make sure you have some support so you can weather the storm.

It’s Difficult, But It’s Worth It

I know I’ve painted a scary picture of entrepreneurship and starting your own business in this chapter—that was intentional.

I want you to know how hard it is going to be if you go down this path, so that you aren’t unpleasantly surprised when the yellow brick road to Emerald City goes through some scary forests.

But I also want you to know that being an entrepreneur is awesome!

There is no better feeling in the world than knowing that your world is yours; that your life belongs to you; that you have made it on your own.

Every morning I wake up and get to decide what I am going to do that day.

Yes, I have a schedule.

Yes, I follow routines and have responsibilities.

But I’ve chosen them and they are up to me to decide.

I am literally the master of my fate and it feels good, man—damn good.

I get to decide how much money I am going to make.

I get to take a trip to Europe with my family for three months and still get paid and still be able to work.

Most importantly though, I get to know that I’ve built something meaningful that positively impacts the lives of others.

So even though the path is difficult, if you are up for it, I’d encourage you to join me on this wonderful journey.