Blog

The Strength of a Freelance Programmer is not in the Coding

“A developer who can market is an amazing combination.” – Rob @ Software by Rob

True that!

Rob pretty much nailed it there. As developers we have a great opportunity to capitalise on business in a way that most people can’t even comprehend.

Being able to conceive ideas, turn them into reality and then – the missing piece in most programmer’s puzzle – market the shit out of them is a winning combination.

Everything else in business can be outsourced.

  • Accounting
  • Invoicing
  • Tax
  • Admin

Every one of these things you can hire a professional to do for you.

As a freelancer though, it’s important to get a grounding in the basics of each of these fields so you know what to expect.

I’ve done each one of these and I’ve also had other people take care of them (especially tax, nasty stuff that and totally worth outsourcing to the pros).

Strength of a Freelancer

Freelancing leads you into many different areas, including streamlining, systematizing, sales, and my favourite: product creation. A lot of freelancers I know (myself included) freelance for the clients and productize as the other half of their business.

It’s this ability to multi-task in their business that is the true strength of a freelancer.

“Business” is a loaded word that covers a lot of things. Most of which aren’t even the act of doing “the business” (the coding for us programmers), but the surrounding tasks that come out of doing the business.

Things that need to happen and things you do to improve your business (productizing, streamlining, etc).

If there’s a golden rule for freelance programming it’s that you should always be improving. Improving yourself, your business, your offering.

Is upgrading to Bluehost Pro worth it?

Is upgrading your hosting to Bluehost Pro worth it?

Wondering if Bluehost Pro is worth the money?

Bluehost Pro is an upgrade to the standard base bluehost hosting plan and it’s designed to help out those of us that need a little more room to breathe.

I have long touted the good points of Bluehost’s hosting service as, for me, they’ve been a pretty reliable and supportive hosting company. I’ve always felt well looked after and found them to be a great host to get started with at an affordable level when I was starting out.

Recently though, I found my websites were getting a little sluggish, especially when editing the backend of a WordPress installation. At that stage I was running around 8 websites on my account and things were starting to slow down a bit.

Could it be that I was out growing their monthly hosting service and needed to upgrade to Bluehost Pro?

One of the main indicators that your account is getting too overloaded according to the user run support forums is CPU throttling.

After a quick check on my CPU throttling graph, which you can find in the Bluehost cPanel, it was apparent that my sites were chewing more than their allotted CPU time on the machine.

They were quite often sitting in a queue for a few seconds before executing the code. I’m grossly over simplifying their quite advanced CPU scheduling here but that’s the gist of it.

My initial thoughts were to look at the Bluehost Pro package and see what that offered and on first glance I actually wasn’t that impressed.

I couldn’t find any technical specs on what the Bluehost Pro package came with in regards to CPU usage and memory usage other than it was “increased”.

I started wondering if it was time to switch hosting companies, but what a pain that was going to be!

Possible Next Steps Other Than Bluehost Pro

The next logical jump up would be purchasing a VPS somewhere which can run from anything a low as $30 a month for a basic one up to and over $500. More than likely it was going to cost around $50-100 for a service that would let me grow without too much hassle.

While my sites are starting to gain in popularity now I was pretty disheartened that my little hobby was going to start costing me even more. I don’t mind paying for things, but hosting is really one of those things that has become a bit of a commodity so it makes sense to look around for a good deal.

I started by asking Google the exact question you probably found this article with, “Is the Bluehost Pro service really worth it?” and to my delight I found the post of another blogger who was in much the same position as me only a few months earlier.

His results were quite eye opening and more useful than I found any other forum post or blog post.

It’s with great pleasure that I’ve had similar success with Bluehost Pro.

Yes, I sucked it up and re-purchased my hosting plan for the next 12 months under the Bluehost Pro package and it’s made the world of difference.

The Process for Upgrading to Bluehost Pro

Once you hit upgrade and order the Bluehost Pro package in your cPanel you’ll find the change over is quite quick.

In a matter of a few hours and with very minimal downtime to my sites (less than a few minutes I suspect), my sites were moved from the very crowded box it was on that previously hosting upwards of 999 other websites to a new machine with just 16 other websites.

I suspect the old machine my websites were hosted on was pretty much maxed out and that was contributing to my slow website loading times and intense CPU throttling.

If you’re on a shared hosting service like Bluehost, it’s pretty common for them to load up their web servers with people on their base plan. It’s a really common thing and most web hosts do it. The best thing you can do is check how many other domains are on your machine using this service.

Now that I’m on Bluehost Pro, and my account has been moved to a machine that doesn’t host near as many websites, my sites are now loading pretty much as fast as they would on a VPS (in my experience with different VPS services) for a fraction of the cost.

Other benefits of upgrading to Bluehost Pro

Other than my site now loading lightning fast (compared to before), there’s also a handful of other bonus benefits on upgrading to Bluehost Pro:

SEO Benefits

I’m hopeful that the move to Bluehost Pro will also have some SEO related benefits. While Google does it’s best to judge your site on it’s own characteristics, some things like what other sites share your IP address (all the others on your machine in the case of shared hosting) can effect your rankings.

One dodgy site can effect the rest of the websites on that IP.

My research on the other 999 websites hosted on the old machine showed some disturbing results including a few porn sites. Even though this is against Bluehost’s policies they obviously aren’t policing it as strictly as they say they do.

While I could just request to Bluehost that those sites are removed it still doesn’t solve the fact that my site’s domain ranking value was being diluted so much.

Upgrading to Bluehost Pro gives me my own IP address which I think I’ve found over these past few months to be quite beneficial in getting the rankings my websites deserve.

Free SSL certificate

I’ve mentioned in the past that I do my payment processing offsite by way of Paypal and eJunkie so I don’t have to worry about these sorts of things but if I wanted to make a cart page secure to inspire some more trust this could come in handy.

It also enables me to integrate my sites with payments processors in the future if needed.

Free Dedicated IP address

Further to not having so many domains on the same machine as me, I now also get a dedicated IP address just for my sites. This gives me total control and shows search engines like Google that I own the IP address attached to my sites.

This is something you need to activate after your hosting has been completely changed over to the Bluehost Pro package.

Increased CPU and memory

I mentioned this earlier, but I can now authoritatively say that this has been the best part of my upgrade to Bluehost Pro.

Prior to the upgrade my websites were being throttled (according to the CPU throttling graph in cPanel) on average between 500-800 seconds per 24 hour period (around 10 minutes a day).

That’s horrendous, and my Google webmaster tools were starting to show my site speed inching up to 10 or more seconds to load a page!

Not good at all and with the big ‘G’ (Google) now putting so much emphasis on things like website load times it’s even more worrying.

Since changing to Bluehost Pro, I haven’t experienced any throttling at all, even when administering several sites at once and performing intensive reporting. There just seems to be much more available capacity on my account. I’m not sure exactly how much more, but the difference is noticeable.

There is also some included site backup features and a few other things I’m yet to try out…

If you’re on the fence

If you are stuck in the same situation as I was, don’t even think about it any longer. For $20 a month it’s still a steal and the performance upgrade has thus far been outstanding to say the least.

The other benefits I listed above should hopefully give you a better idea of what to expect when upgrading to the Bluehost Pro Package. Bluehost are good in a lot of ways, but their upsell for Pro is pretty shocking and the user support forums aren’t much better at suggesting why you should upgrade and when.

If you’re deciding if Bluehost is the right host for you, then hopefully this shows you that there is a clear upgrade path. Bluehost is worth the switch.

Also, if you’re planning on purchasing hosting with Bluehost anyway (even if you’re not upgrading to Pro straight away), I’d really appreciate if you clicked through my link, they pay me a small amount if you end up signing up and it helps keep this site free.

Click here to sign up with Bluehost

Did you or do you have issues with your current hosting? Tell me your experiences below in the comments along with what you did to overcome it. Have you upgraded to Bluehost Pro yet?

Photo credit
Affiliate Disclosure

A comprehensive guide to handling money when freelance programming

I’ve mentioned a few times in the past that freelancing is one of the quickest and most convenient ways to trade your time for some extra dollars. It’s a fun and increasingly popular way to earn more money on the side, or even turn into a full time gig.

In fact, it’s so popular that there now exists a wealth of websites dedicated to helping the whole process. These sites handle the whole shebang and from both perspectives; the customer and the programmer.

You can literally find your customers, submit quotes, handle invoicing, transfer payment, and get rated on your work all on the one website.

Likewise, the customer can also post a job, review potential candidates based on their past success, accept offers and engage someone, pay for the work and receive the product.

It might then be surprising to you that a lot (and I’d bet the majority) of freelance transactions do not actually take place on these websites.

Although the systemisation of the whole freelancing process has now been neatly wrapped in a bow by these websites they still only cater for a small part of the everyday goings on of freelancers worldwide.

So what then happens in the case of all the other transactions? As a freelancer, you’ll no doubt receive offers for work off the grid and will want to know how to handle money in these situations. After all, we’re programmers, not bankers.

How do you know what is appropriate when it comes to money and, more importantly, how do you ensure the risk is minimised when dealing with someone that could potentially be across the other side of the world?

Approaching the topic of compensation

Money is often a difficult subject to bring up, yet we need it to eat and drink and we wouldn’t really be trading our precious spare time for it if it wasn’t a factor. To ignore it’s importance is downright silly.

That said, for many (myself included) it can be a hard topic to get used to talking about openly and many a freelance programmer has been ripped off one way or another either by undervaluing themselves doing work for nearly free.

This is good for the customer, but not so good for you as the service provider.

It’s important to define the point at which you will start charging for your advice and services and to define the point where you will bring up the topic.

Generally it’s not a good idea to lead with the topic of money, you’ll just send the wrong signals that you’re only interested in compensation.

The way I approach bringing up the topic is to first get a good idea about what the customer’s problem is and how you could possibly solve it. If the problem isn’t too hard, or is easily solved it’s probably not even worth my time, so I give away a little bit of free information to see if that will help them solve the issue first.

If the contact continues I’ll generally slip into conversation something non-threatening like the following:

“If you like I could do the work for you, but it will take a couple of hours labour.”

In framing this question you’re looking to basically put it back onto them, subtly, that you can do this work for them for a price and make it more a decision of yes/no. Keep in mind that it’s going to be good for both of you, it doesn’t have to feel like a dirty money grab and it certainly won’t if you’re delivering on value.

Invariably, the next question of them is “how much?”.

Settling on an Amount

Compensation is a funny thing, at first it’s qualitative as in, “does this amount sound reasonable to solve my problem?”.

Then, it very quickly becomes quantitative as in, “what are you doing in the hours you’re charging me for?”.

I generally lead with a rough round figure and tell them I’ll send through an official quote detailing what will happen.

How to Quote Freelance Work

A written quote is a wonderful thing, but also a pain to fill out.

It’s really important that you get good at estimating the actual time it will take to do a job… then doubling it.

There’s just one rule here when estimating time and that’s the golden rule of “shit will go wrong, so plan for it as best you can”.

That’s my own wording of course, but it’s written on the walls of programmers everywhere – it’s the art of extending the truth to cover your own ass and it’s one of the first principles that professional programmers learn in the work force, you always need to leave a buffer of time.

A quotation in a freelance context should be a summary of what the customer will be receiving and roughly how long it will take as well as a price. Generally it is expected that you provide a breakdown of the estimate so it’s always good to itemise things as best you can.

One other thing that I would like to append to this “common view” of what a quote is and isn’t is something that I like to do: Detail your approach.

There’s nothing worse that hiring someone and not knowing what they’re really doing. You start to question whether you’ve hired a flake and you’re just throwing your money away.

If you detail the approach you’re going to take it does a number of beneficial things:

  • It puts your customer at ease and gives them the understanding that you know what you’re talking about.
  • It gives them an idea about what you’re doing at any given moment in the scheme of the project.
  • And it allows you to set deliverables for the project. This has surprising nerve calming effects for clients, especially if there are key milestones that need to be met during the project (for longer projects). It’s how they know the work is really being done.

Even a rough 1 page description of what you plan to do for their project will work wonders for your quote acceptance rate. It will put you above 90% of the other freelancers out there.

How to Invoice Your Freelance Customer

After all that hard work it’s time, at last, to invoice the customer.

Invoicing is generally a no-brainer but it’s also a time to reflect on the job and how things went. Did they goto plan?

Start by comparing your quote to what really happened.

Did you estimate accurately? What, if anything, did you not account for on your quote and is it appropriate to charge for it now?

Good invoicing etiquette is a godsend. When you give a net payable period (net 30, net 14, etc.) it sets the expectation for when the money is due. Don’t forget to add one to your invoice!

Depending on the client of course you may wish to specify longer or shorter net payable periods.

The larger the company, the more likely it is that you will be asked for a net 30 day time period. This is normal and is quite common because these companies usually pay all their invoices in a monthly rotation.

While for smaller freelancers, and people just starting out, this might be an issue for cashflow it’s something that you can get around with a little bit of negotiation and risk minimization.

Minimizing the Risk of Freelancing

There is always a bit of risk when doing work for someone else, but that is the nature of the beast. Sometimes you need to take a bit of a risk in order to get the work.

That said, it’s common practice amongst freelancers to ask for a 50-60% deposit on projects before starting. So if you’re not comfortable with doing all the work upfront and getting paid later then broach this topic as part of your quotation.

Some freelancers do this on 100% of projects. Others do it on the first project with a client and proceed with normal payment terms on subsequent projects.

Really it’s all to do with your risk tolerance and what ever you are comfortable with, just know that the option is there if you need it.

Collecting Payment

There are a number of options open to freelancers these days when it comes time to collect payment for a job.

Of all the payment options Paypal sticks out at the most common. This is because it’s now a known entity and people trust the service. It’s also great because you can offer a range of payment options to your customer without having to setup a business bank account.

Another option available is a direct bank transfer. While this can appear risky at first, it’s less risky than you think if you setup a dedicated bank account. I wouldn’t recommend it if you are just using your personal bank account unless you don’t have any other options.

A third option would be to utilise an escrow service like escrow.com. An escrow service works by handling the negotiation between two parties and acting as a mediator.

Typically both parties agree on conditions of the deal, the buyer pays the escrow provider the full payment, the seller does the service or ships the product, the buyer then accepts that the service or product has been provided and the escrow provider send the seller their payment.

More Questions on Freelancing?

If you’ve got more questions about becoming a freelancer, or if you’re already a freelancer looking for some good tips then check out the Code My Own Freelancing Business page. There’s a great collection of articles there all about freelancing, just like this one.

What’s the point of writing this bloody thing?!

Before I get into the meat of this post, let me say that it is written in response to repeated jibes and ferocious attacks* from a certain blogging buddy of mine, Dave Doolin of Website In A Weekend, after I replied to a blog post of his without providing a link to my own goals page. Tsk tsk. Let this blog post be the correction to that horrible mistake.

Starting points and redesigns

After reading a lot about providing people with a starting point, setting goals and even writing about setting goals myself, I find myself flummoxed that I don’t really have my own goals sorted out for this website of mine. I have them sorted for my other sites (which will remain under wraps for now), but this very blog you’re reading has been drifting in and out of my subconscious for the past two years not really going anywhere special.

In January I conducted a redesign and in the process rewrote my about page which looked like it was previously written in the dark ages. A little better, but still not really what Dave was talking about here. Where the heck is my goals page and, by the way, what’s the point of writing this bloody thing?!

Correcting my horrible mistake

Let me first say that writing a goals page isn’t the easiest thing in the world, especially when you think you sort of, kind of have that already sorted. But then you really do re-read some of the stuff you’ve written and can see how blindingly obvious it is that you don’t have a clear direction.

My overarching goal for this site is to become a resource hub for programmers to learn about making money and leveraging marketing, product creation and most importantly their own skills in building a viable side business for themselves which can optionally lead to full time entrepreneurship. As such this blog is about entrepreneurship and all the things that go along with it.

Secondary goals

My secondary goals for this site are basically summed up in the section off to the right of the menu bar titled “Projects To Get You Started”, which may or may not be renamed in the future to something more sensible for the Code My Own Road brand.

Each section which was, up until this point, previously un-published as a holding place for the core topics I’m writing about on this site. They are being filled in with blog posts about the topic in hopefully some sort of comprehensible order, starting with (if you didn’t notice by what I’ve been covering lately) Code My Own Freelancing.

But, since things usually don’t reveal themselves to me in the order that most makes sense for others to read, they will probably end up filled in in a haphazard order which means it makes sense for me to release a product that will encompass all the posts and expand on them when the time comes to wrap up a section or when a section is mostly (like 80%) covered.

This is be available for you to purchase and will not only be nicely formatted but guaranteed to make sense because it will be heavily edited and expanded. That said, if you troll the archives of this site at that point you’ll be able to find the core points covered for free.

Therefore, my secondary goals for this site are to fill in each section with blog posts and release a complete product based around the content created for that section to help people with that topic.

Oh and by the way, I reserve the right to change up the projects to get you started section, so while I’ve published the list there in the menu publicly for accountability purposes it may change over time.

Secondary secondary goals

My second set of secondary goals (thirdary?) are to release useful plugin and theme products based extension products of which I’ve already released two, Stylesheet Per Page and hCard/vCard Generator. These are based on things that I want personally, or that people have expressed to me are a need that hasn’t been filled adequately by other products out there. And, I just like coding – so this soothes my inner monkey.

They’re also a great way of attracting more coders, which are my primary audience after all. In the immortal words of someone I used to work for “up here for thinking, down there for dancing.”

A long slog

I know it’s not exactly a small goal what I’m embarking on but it has been somewhat validated in that since I’ve started talking about the new topics my traffic has increased over 50% on daily views and I’m finding more and more references to people sharing what I’m saying.

Setting long term goals such as these is one of those “necessary evils” when it comes to blogging. But, keep in mind that blogging is a long term activity and not something you can have “overnight success” in and it makes a lot of sense.

I suggest everyone who owns a website to do this via my Teach Yourself Websites eCourse, and it’s something that is echoed in the words of many other “I will teach you websites” bloggers.

Oh and if you’re in the “I’m gonna school ya” field of writing like myself, then perhaps you should kick your own ass like I have if you don’t have a similar page to this.

*he wasn’t really that ferocious, I’m being a sensationalist 🙂

Detect iOS devices in WordPress and provide an iOS specific stylesheet with Stylesheet Per Page plugin

Some of you might have used the plugin I wrote for WordPress, Stylesheet Per Page. It’s an incredibly handy plugin for site developers to generate page specific stylesheets, IE only stylesheets and more.

Now, in today’s release of version 0.5, another feature can be added to the list and that is generating an iOS specific stylesheet for your website to allow customizing of elements specifically for the iPad, iPhone and iPod.

The call for this feature came from one of my own needs which has been to provide some iOS specific modifications to a website I was working on at work. I hacked together a solution which you can find here in both javascript and PHP forms, but immediately had the thought that this would be useful for Stylesheet Per Page users to customize their own sites. As far as I know, no other stylesheeting plugin does this so in that way it’s unique.

Also in version 0.5 of Stylesheet Per Page if you look into the code you’ll notice I’ve changed up the way options handling is done. This is my new preferred method of handling options, it promotes easy use throughout the plugin and for larger more complex plugins it’s the easiest method to implement and keep track of. Eventually I’ll change all my plugins over to using this method when I have the time.

So if you’re interested in checking out the enhancements to Stylesheet Per Page and how to integrate them into your website head over to the project’s page, or directly to the WordPress.org entry for Stylesheet Per Page.

Freelance Customer Selection 101: Profiling and Picking Your Ideal Customers

So you might have been freelancing for a little while now, and customers are coming and going with some sort of regularity. Given you’ve had a few happy customers, you’re ready to start on the next stage of freelancing: Profiling and picking exactly who you want to work with.

Hang on, Are you doing it in reverse?

Some people start with this exact step before even doing any jobs for people – I think this is a mistake, here’s why:

Before you’ve started doing work on the side you won’t even be 100% sure what it is you want to be doing (I’m talking more about getting really specific, it’s likely you will already have an area you want to freelance in, ie. web design, scripting, etc.)

At the start you need to be open to doing anything in your chosen area. It’s only by doing this that you get to find out what you enjoy doing as a freelancer. But by the time you’ve served a couple of clients you’re going to have a much clearer understanding of what exactly you want to narrow down and focus on.

Profiling and Picking Your Ideal Customers

The first clients of any new enterprise give you an overall idea about where you’re headed. After serving a few it’s apt to stop and assess. Ask yourself the question: “Is this really the type of person I want to do business with in the long run?”

By stopping after a few clients you’re at a literal junction in the road, you’ve still got the opportunity to adjust your marketing direction and pitch before committing to more direct methods of getting the clients you’re really after.

7 questions you should ask yourself after dealing with any project

  1. Did I enjoy working with this client?
  2. Was their job worth the time it took?
  3. Can I charge 100% of my time used?
  4. Was there anything I didn’t like about that type of work?
  5. Was the client happy to lock in the scope of the project or did they want to keep changing and adding things?
  6. Could I deal with 3 very similar clients at the same time?
  7. Would I work with them again?

This is just a small sample of the types of questions you could ask yourself after each project. I’m sure you can get creative and make your own list of customer defining questions using this one as a template.

The second half of this equation – actually using this information to profile and adjust your marketing strategy is a topic for another article. Marketing your services is a complex topic and is something that programmers really struggle with when they’re freelance programming for the first time. Hopefully you’re enjoying this series of posts on freelance programming that I’ve been putting together.

If  you’ve missed out on anything you can find it on the Code My Own Freelancing Business project page.

Youtube founders acquire Delicious from Yahoo


Just got an interesting email from Yahoo officially announcing that it’s troubled bookmarking service, Delicious, (which I still use quite regularly) was just acquired by Youtube founders Chad Hurley and Steve Chen.

Hurley and Chen have recently founded a new internet venture called AVOS which is the official acquirer.

I found an article from The Register in the UK stating that “their vision for Delicious is to create “the best information discovery service” on the internet.”

First on the agenda, according to the article, is to develop the much anticipated Firefox 4 plugin for the service (I’ve been getting by with bookmarklets, but it’s not the same).

Although the changeover could have been handled much better (the email basically says, transfer or you’ll loose everything), I can’t wait to see what they come up with in the future.

What do you think of the acquisition?

Happy to see it in their capable hands?

UPDATE: Here’s the official press release from AVOS

The Fastest Way For A Programmer To Make Money Online

What Is The Single Fastest Way For Programmers To Make Money Online?

Hands down the fastest way you can make money online as a computer programmer is by pimping yourself out.

I’ve developed all sorts of weird things for people including plugins for CRM packages, quick PHP scripts where someone was abandoned by another programmer, custom WordPress plugins, and even a quotations system that hooked into a Joomla database.

Far and away freelance programming has been the easiest way to make money online that I trialed in 2010.

If you’re a computer programmer then you’ll be happy to know the rates are quite good too. Upwards of $70-100 an hour is often not even sneezed at, actually, it’s considered cheap.

If you think about it, you’re not usually the one getting the best end of the deal even though it feels like it by charging that much.

To hire someone costs a lot of money. Oftentimes the advertising alone to find an employee is over $500 a week on job websites. Then they need to spend their valuable time as a business owner interviewing possible local candidates of which there may not be someone suitable.

It’s also certainly a lot harder to interview for a temporary employee if the project really isn’t that involved that it requires a full time employee.

This is where you fit into the picture as a freelance programmer.

Where Can You Get Freelance Programming Jobs?

Every one of my programmer jobs has found me via my personal website joshkohlbach.com. I make absolutely no effort to advertise this website, just the small amount of organic listings it gains via the search engines is enough to bring in a handful of clients per year each worth potentially hundreds or thousands each depending on the project.

Do you have a personal website? If not, get on it. Knock something up in WordPress, it’s dead easy and is something you can expand later.

The other way you can get exposure as a freelancer is by putting yourself onto websites like upWork, and others. You can even scout for jobs via Craigslist or, if you’re in the UK or Australia, Gumtree.

If you have programming skills and you’re in the market for some extra cash, or you’re even just looking for something to fill your spare time with the I suggest looking into freelance programming as a viable option.

Here’s some other freelancing topics I’ve written about:

The 3 Downsides Of Freelance Programming
Make It Locally: How To Target Your Local Area As A Freelance Programmer
This Is The Secret To Happy Freelance Customers