Why I never advise anyone to freelance

I have been in the industry for a while now, and one of the questions which keep on popping up is, “Should I freelance?” or even more directly  “After all these years, why don’t you go it alone?”. The indication here is why don’t I become a dev for hire. While I no longer offer value through hands-on coding, I still feel younger entrants into the industry need to understand a bit more of why I think small scale software consulting is not a good idea.

Let us begin with a story. Years ago, I walked over to a clients office with a proposal in hand. I had just started a new consulting firm and even had two devs in employ. This was going to be our first major client. On my proposal, I had the devs profiles, the company profile, and what we thought we could offer.

The meeting was fairly long with the director of the client firm quickly going through what his vision of the product would be, basically a custom ERP. After our quick paced session, he asked, “So what will this cost us?”.  I am against such estimates https://blog.chenchatech.com/2017/03/why-you-should-never-give-off-the-cuff-estimates/, so I explained we would need more time. Further given the amount of pre-work required, field visits, interviews point estimation, and so forth. We would need to charge just to develop the scope of work and associated project documents.

The mood turned somber as the director took it upon himself to explain just how stupid it was for me to have the guts to ask for payment for the work needed to estimate the real work. New in negotiation, I capitulated and did as he wanted me to do. In the end, they ended up going with another contractor, and we took the cost.

Is this why I ask you not to freelance? No, at least not the only reason. The industry is simply stacked against you. Let me explain further.

Low barriers to entry

There is no other industry where the cost of entry is a laptop, headphones, and a decent internet connection.

Your first response may be, sure, but what matters is not these physical assets, its what is between my ears.

Perhaps this is true, let’s look at it another way. If you are top 1% of the population in terms of intelligence, then a city like Nairobi with 3M residents, there are 30,000 people JUST like you if not better.

The truth is, you are not that special. Continuing to delude yourself in this way maybe fun even satisfying but will prove disastrous to your pocket.

The field will continue to flood with X consulting, X tech, X designs kind of companies. Profits will be suppressed.

The tyranny of time

Time is a limited and precious resource. You can not buy it, rent it, get a loan of it or in any other way extend it. What you got is what you got. Yet all activities need time to gain reality.

Guess what takes a LOT of time? Product development.

Real life coding is nothing like what you get in a teaching environment, there are no neat solutions. Past your fresh start, most of your time will be spent reworking existing code.

Vi has built its entire product successfully based on the idea you spend more of your time editing the code rather than adding new code.

Factor in the time you spend fixing bugs, and you are only coding 30% of the time.

The news gets worse, Business Development is an even bigger beast. Clients rarely know what they want to be built. More often than not, they feel their problem and have a sense tech may be able to help. It will be countless meetings and brainstorming sessions before you have what looks like an addressable problem and even more time to architect the solution.

Optimistically, you will be spending maybe 5-10% of your time coding, aka time you can bill the client. Do you see how this can become a problem?

Scale works against you

We all learned about economies of scale somewhere in Econ 101. The basic idea being our costs per unit reduces with the more units we sell. Did anyone bother to tell you about diseconomies of scale?

Some businesses get stuck in an unfortunate situation where every new unit sold costs more. As a solo tech consultant, you fall squarely in this bucket.

Technical engagements tend to offer little opportunity to apply prior knowledge. Yes, I know you can carry over libraries you have built, but unfortunately, you can not carry over business domain concepts which are likely what the client cares about.

You could always hire more devs, putting aside the question, why would they work for you and not themselves, experienced devs are hard to find, and when you recruit them, the cost will be significant.

Poor bargaining power

The old saying “No one was fired for hiring IBM” still holds its ground to date.

For established clients aka where all the money is, are characteristically risk averse. They have a working business model and don’t want to jeopardize it. Further, after sales support will always be a key concern. In short, procurement departments are allergic to one man shows!

There is some reprieve here, small businesses will be more willing to engage. Competition here will be stiff, even worse, you may find yourself encountering competitors who don’t really care about the bottom line. After all, most people in this industry are here because of the promise of freedom, a chance to work from the beach. It will be tough to underbid such an individual.

So what works?

Advisory services are clearly a profitable industry, so how can you be successful here?

Here is a little known secret, successful advisory firms are NOT paid for performance. If you were to call PwC, they would offer you not a solution to your problem, a hefty hourly rate. You, of course, you have no option, an audit is a regulatory requirement, and you are better off with a known name.

What about mutual funds? Well, always read the fine print. The fees are charged against your investment, not against what you earn. In short, they make money whether their decisions pan out or not.

You could get over this huddle by charging per hour as well. A time tested model is convincing the client to embed you in their team. So you take on tasks just like any other dev. This, to me, looks and feels just like regular employment with none of the employment benefits.

Large networks such as Toptal or Upwork may help. They also embed you in a team. In my opinion, the net effect is the same as above.

In fact, the only viable way I see out is to work on a product and use your consulting fees to get by as you wait to land on a product market fit. Once this is achieved, shift all your attention and resources to the product business.

Have you managed to make a freelance operation work? Talk to me in the comment section below, my Linked in chenchajacob or my twitter @jchex


Handling tough decisions

First day on the job you probably, arbitrarily chose your first language or even more likely someone else chose it for you. Your path has so far been easy with what you need to do either being dictated to you by some kind of boss figure. This maybe literally your boss, a client or even market forces.

However as your career grows, you will find yourself having to make more and more decisions. Your decisions will have far reaching impact and will likely be affecting not only your but other individuals as well. As you grow into this new roles you might need some new tools in your tool set to help you deal with some tough decisions.

What makes a decision tough? The obvious answer would be a decision that has a huge impact. If you thought so, then you would be wrong. To demonstrate this, think, if you came across a person shot and wounded in the street, would the decision to take them to hospital be a tough one? Yet the impact would be huge!

So what does make a tough decision? You have yourself a tough decision when among the options there are no clear winners, one option is good in this way the other option is good in the other way.

Finding yourself in this position can be agonizing where at night you sleep having decided to go with option A and wake up feeling option B might have been a better option after all.

While there are no silver bullets, there certainly are strategies of dealing with such issues, one of which I am going to present today.

Weighted Average Decision Matrix (WADM)

WADM is decision tool that helps you break down the decision into decision factors which you can then quantify and compute to come up with an objective value of a better decision.

To work, the tool requires at least two decisions. In our case we are going to give an example of PHP frameworks.

Your team has been tasked with building a cutting edge SAAS application and you need to choose between using Phalcon with its super performance or Laravel with its expressive style. Which one will you go with?

Step 1: List out the factors

List out all the factors that are important in a framework when building your SAAS.

Step 2: Write relevant importance

On a scale of 1 – 10 write out how important each factor is in your decision

Step 3: Weight the options

For each option rate it on 1-10 on how the option fairs in that factor.

Step 4: Calculate Weighted options

For each factor multiply the relevant importance by the weight of the option. I have separated out the weight for easier computation in a spreadsheet.

Step 5: Compute the sum

Finally compute the sum of the weighted options to get your decision.

Using the WADM method, we have been able to establish that Laravel is the better option for your project.

Hopefully this technique will save you countless hours agonizing over your decisions.

How do you handle tough decisions? Tell us in the comment section below.

You can check out the spreadsheet used here.



5 ways to get to the top of your field

Have you just got the basics of a new skill and are now interested in ramping it up to professional level? Great then this article is for you!

All seasoned developers know that a key to thriving in our industry is to develop the skill to properly process new information. This skills has four steps ie:

    - Recieve information
    - Understand it
    - Process it
    - Apply it

On this entry we will only talk of the first step, you may want to look at this entry So you want to become a master developer? for the other steps.

Fire up the hose

In the sea of information that we live in, it is easy to loose track of what is important, however the following key sources always deliver.

Top blogs

Identify key players in your industry and follow their blogs. Most will send you newsletters, signup for that, if that is not available you can leverage Google Now or any other content aggregator.

Due to my busy schedule, I find Readability to be an especially potent tool to manage my reading schedule, may also work for you.

Follow key people

Unless you are in the music industry, the likes of Beyonce should not be in your list of key people. I am talking about influencers in your field. This maybe Taylor Otwell in the PHP community or Obie Fernandez in the Rails world.

By following them both on twitter, github or any other platform that they choose to express themselves, you will get the latest on what is happening in the domain.


I am willing to bet my last shilling that you have at one point or another found the solution to your problem on http://stackoverflow.com/, but I would not hazard the same that you have contributed to it.

By keeping an eye on new questions coming in to such forums you not only quickly gain knowledge on your field, you also establish yourself as an expert in the domain.

If you are unable to spent as much time on this task, check out CodeTriage, this guys will send you an issue a day to solve on your inbox, pretty cool right?

Local user groups

Don’t let the position of this entry fool you, this is one of the important tasks you can do. User groups present to you a unique opportunity to interact with people in your field who also operate under the same business environment as you do. This means that in addition to knowledge and skills you can also get tangible benefits like a job or contract.

Start from http://www.meetup.com/ look for your target group and join join join!


In your next review, consider requesting your employer to sponsor you to go to a conference in your domain. The costs are usually neglegible and the benefits gained both for you and your employer massive. I will let Chris Marr expound further Why attend industry conferences, seminars and events?

If however you can not make it to attend such conferences, you can probably find slides of it from sites such as Slideshare or SpeakerDeck. Video recordings are also usually available in YouTube or Vimeo.


Courses valued at thousands of dollars are available for absolutely free from organizations like Coursera, MIT, Harvard etc. It is insane not to aggressively cash in on all this freebies!

Commit yourself to at least one course every half year or so, the fruits will be worth it.

Turn down the hose

While all this new information is fun and exciting, it will eventually start eating into your professional and personal life. To get some work done you eventually need to down the hose of information down to a manageable level.

Remember your clients pay you to build them software, not to attend conferences.

How do you manage your own flow of information? Talk to us in the comment section below.