Spare-time freelancing for the full-time developer

For the past 3 years, I’ve been dip­ping my toe into the shal­low end of freel­ance soft­ware devel­op­ing. In oth­er words, I’ve been work­ing a full-time devel­op­ment job as well as freel­an­cing in my even­ings and week­ends. While the jour­ney has been a bit bumpy at times, it’s been a massively reward­ing exper­i­ence that I feel has pushed me for­ward leaps and bounds.

Doing part-time freel­an­cing is essen­tially the same as tak­ing on a second job and should be treated as such, but if you’re smart it can become a flex­ible tool that can work around you. I’m lucky that my cur­rent cir­cum­stances afford me the priv­ilege to do it:

If I didn’t, it’d be much harder to freelance.

Why do it? #

So why would any­one want to do it on top of their day job? Well…

Level up your non-tech­nic­al skills #

Even the briefest freel­an­cing exper­i­ence throws you into top­ics you’re rarely exposed to in a devel­op­ment position:

Bump your sav­ing power #

If you’re sav­ing up for some­thing spe­cial, or pay­ing for an unex­pec­ted bill, hav­ing the option of doing a bit of freel­an­cing to bol­ster your income can be really use­ful. If tomor­row you find the house of your dreams, a bit more cash for a mort­gage depos­it can go a long way to redu­cing your interest.

I’d say if money is your sole motiv­a­tion, there’s more long-term friendly approaches you can take. Salary nego­ti­ation is one option, mov­ing to a high­er-paid pos­i­tion else­where is anoth­er. But not every­one may want to, or be in a pos­i­tion to leave their job. There’s often many factors involved, such as how much you’re learn­ing and devel­op­ing, com­mute time, flex­ib­il­ity, etc.

If neither of the above are appro­pri­ate for your cir­cum­stances, I’d say freel­an­cing is a val­id altern­at­ive for put­ting some cash aside.

Cre­ate a run­way to full-time freel­an­cing #

If you’re reluct­ant to take the plunge into the deep-end and go full-time freel­an­cing straight from employ­ment, try­ing it out in your spare time may be better.

It gives you time to accu­mu­late a hand­ful of cli­ents you can rely on for work whilst you get star­ted full-time. Hav­ing no income for the first few weeks whilst you scramble for work can be a scary pro­spect. Much bet­ter to have that run­way to ease into it with.

It also gives you an oppor­tun­ity to see if freel­an­cing is for you. Not every­one enjoys man­aging their own time and set­ting their own dead­lines. Some people like that work is dur­ing work hours and when they clock out for the day, it’s their time. Freel­an­cing hours can some­times gets messy.

Exper­i­ence how dif­fer­ent devel­op­ment teams work #

There’s a good chance that some of your cli­ents will have their own devel­op­ment teams that you’ll be work­ing closely with. These situ­ations can be super use­ful for see­ing how oth­er teams operate. 

You may notice how awe­some their CI pipeline is, or how great their approach to agile is. Con­versely, you may notice areas for improve­ment and things that may cause issues. All good know­ledge that you can:

Get­ting star­ted #

So let’s say you’ve decided you want to try out freel­an­cing in your spare time. What are the best ways to get started?

Double check with your employ­er #

Before you start invest­ing time, it’s worth con­firm­ing with your employ­er that they’re com­fort­able with you freel­an­cing in your free time. Some employ­ment con­tracts will flat-out dis­al­low it, some might not men­tion it, some might per­mit it. If you’re unsure, double check with your boss. Remem­ber it’s your respons­ib­il­ity to pre­vent it from affect­ing your full-time duties.

Get your name online #

Hav­ing an online pres­ence is a quick and pass­ive way of get­ting cli­ent leads. Hav­ing some­where on the inter­net that com­pan­ies look­ing for someone with your set of skills can find you is key.

At min­im­um, I’d say get a Twit­ter account sor­ted with a bio that men­tions you’re freel­an­cing. I was sur­prised how many digit­al people make use of Twitter’s advanced search fea­tures to hunt for freelancers.

I’ve been on Linked­In for a while, but haven’t found it great for leads, but this may be down to my lack of engage­ment with it. I’ve heard pos­it­ive things from fel­low freelancers.

A per­son­al web­site con­tain­ing rel­ev­ant keywords and a way for poten­tial cli­ents to reach you is worth set­ting up. Basic things worth clearly men­tion­ing are​“freelancer/​freelancing”,​“developer/​engineer/​programmer”. How you mar­ket the lan­guages and stacks you know can be tricky. Present­ing your­self as a gen­er­al­ist prob­lem solv­er casts a wide net and makes you less of a com­mod­ity. How­ever, some­times spe­cial­ising towards a niche set of tech­no­lo­gies can be more attract­ive for cli­ents who have a spe­cif­ic prob­lem. Def­in­itely exper­i­ment with this and see what works for you.

Turn those cold enquir­ies into leads #

To be a developer is to endure the daily slew of emails and Linked­In requests from recruit­ers. Most of them are time wasters, but I’d def­in­itely pay atten­tion to when com­pan­ies con­tact you dir­ectly. If you’re not look­ing to move, engage with them and see what prob­lems they’re try­ing to solve. You’d be sur­prised how many of these enquir­ies can be con­ver­ted into freel­an­cing work.

Meetups and user groups #

Meetups and user groups are a com­mon stalk­ing ground for com­pan­ies try­ing to fill devel­op­ment pos­i­tions. Like men­tioned above, enga­ging with people and under­stand­ing their prob­lems presents good oppor­tun­it­ies to help them. Doing a hard sell can be a put off for some, so focus­ing on just help­ing people is a good way of start­ing work­ing rela­tion­ships. Some­thing as simple as​“If you’re hav­ing trouble with this, maybe try foo or look into bar” could lead to some­thing 6 months down the line.

Make the most of your col­leagues #

If you’re employed full-time, chances are you’ll be sur­roun­ded by a wealth of digit­al people who may have dabbled with freel­an­cing; put them to work!

My first gig came from a design­er friend who knew I was on the look out for work. He had a cli­ent that needed a Word­Press web­site put­ting togeth­er. I said of course, des­pite nev­er mak­ing a Word­Press site before. 😄

Just a cas­u­al men­tion when chat­ting around at the water cool­er can be enough to get it in your col­leagues’ minds.

Fig­ure out how much to charge #

How much you charge your cli­ents is a huge sub­ject and not one I’d call myself an expert in. How­ever, here’s some tips from my exper­i­ences start­ing out:

Tips and advice #

Here are a few les­sons I’ve learnt over the years that might be use­ful to you:

Remote work is a must #

If you’re on stand­ard work­ing hours as part of your employ­ment or you live out of town, you’ll def­in­itely find it tricky spend­ing any time what­so­ever at your client’s offices. There­fore, being able to work remotely with your cli­ents is a must.

Some com­pan­ies prefer freel­an­cers to work from their offices and inter­act dir­ectly with their in-house teams. This isn’t prac­tic­al for spare-timers, so when approached by these kind of cli­ents it’s always best to be upfront about your situ­ation. It may turn off some people, but I’ve found a lot are com­fort­able with it, par­tic­u­larly now that work­ing from home has become com­mon place. Com­pan­ies are now bet­ter struc­tured to handle com­mu­nic­at­ing asyn­chron­ously across timezones.

Also, don’t under­es­tim­ate the value that a developer work­ing even­ing and week­ends brings versus one who works stand­ard hours. A product own­er can spec out a fea­ture or enhance­ment, hand it over to you at the end of the day and return to find it done when they arrive at their desk the next day.

Avoid hard dead­lines #

If there’s one thing that’ll stop you freel­an­cing, it’s burnout. Work­ing too much to meet dead­lines will invari­ably eat up all of your free time, leave you frazzled and hurt your abil­ity to do your full-time job.

To com­bat this, always favour cli­ents who don’t work to hard dead­lines. Teams that work in sprints or to a con­tinu­ous deliv­ery meth­od­o­logy usu­ally avoid dead­lines that are set in stone and are bet­ter equipped to bring in a freel­an­cer to pick up the slack.

Hit­ting this cli­ent sweet spot will make your freel­an­cing exper­i­ence soooo much bet­ter, your hap­pi­ness and men­tal health will reap the rewards.

Char­ging for time spent over fixed cost pro­jects #

Cli­ents who favour dead­lines go hand in hand with estim­ates (often what’s used to set dead­line dates) and fixed cost pro­jects.​“Fixed cost” pro­jects are gen­er­ally ones where you agree with your cli­ent how much a chunk of work will cost them before­hand (usu­ally a func­tion of how long it’ll take you) and regard­less of how much time you actu­ally spend on it, that’s how much they’ll pay you.

It puts a lot of pres­sure and dif­fi­cult ques­tions on you, the freel­an­cer, and estab­lishes a com­bat­ive, uncol­lab­or­at­ive rela­tion­ship with your cli­ent that becomes more about tick­ing boxes than it does about pro­du­cing value. It usu­ally exists in a world where the cli­ent doesn’t trust the freel­an­cer, or the client’s cus­tom­er insists on work­ing on a fixed cost basis.

I’ve found char­ging for how much time you spend on a pro­ject to be way bet­ter. There’s more col­lab­or­a­tion, unre­li­able estim­ates are done away with and ques­tions of cost, tim­ing and pri­or­ity are shared by both parties. The freel­an­cer doesn’t need to worry about under-estim­at­ing work and the cli­ent doesn’t need to worry about estim­ates being over-inflated by the freel­an­cer to cov­er the risk of under-estimating.

You won’t be able to con­vice every­one that it’s the best way for­ward, very often estab­lished com­pany pro­cesses take pre­cend­ence over what some ran­dom freel­an­cer prefers. But if it’s an option, I’d recom­mend char­ging for time spent.

Nev­er take hol­i­days to cov­er your freel­an­cing #

If you’re ever ser­i­ously con­sid­er­ing using your full-time hol­i­day allow­ance to keep on top of your cli­ents, it’s a clear sign you’re def­in­itely bit­ing off more than you can chew and are headed straight for burnout.

Talk to your cli­ent, fig­ure out some­thing more real­ist­ic. Most will be accom­mod­at­ing, espe­cially if you’ve got a good rela­tion­ship. They don’t want you drop­ping off the face of the Earth because you’re at the end of your teth­er. Come to an agree­ment that’s sus­tain­able for both sides.

Retain­ers are 👌 #

Retain­ers are essen­tially when a cli­ent prom­ises to pay a freel­an­cer every month/​week/​etc in exchange for block­ing out ded­ic­ated time for them. They’re ideal for spare-timers; small, reg­u­lar, man­age­able bits of work. Find­ing avail­ab­il­ity over the span of a month or week is much easier.

Always push for retain­ers if you can get them.

Try to own your cli­ent rela­tion­ship #

I’ve always tried to avoid find­ing cli­ents through inter­me­di­ar­ies. Web­sites like Upwork tend to​“own” the rela­tion­ships and hold the power; there’s some bad war stor­ies out there. They can be good for get­ting a few jobs under your belt, but you’ll find your­self com­pet­ing with people around the world, many with sig­ni­fic­antly lower liv­ing costs. You go from being a real per­son with spe­cial­ist know­ledge to a com­mod­ity that can be swapped out at the click of a button.

Also, by work­ing dir­ectly with your cli­ents you avoid broker fees which on top of taxes can take a big bite of your take-home amount.

Listen to freel­an­cing pod­casts #

There are a bunch of great pod­casts to learn more about freel­an­cing, my favour­ites are Bren­nan Dunn’s Double Your Freel­an­cing and Matt Inglot’s The Freel­an­cers’ Show. They cov­er a loooot of top­ics so I’d prob­ably say pick and choose the ones that interest you. If you find them use­ful and have the time, I’d recom­mend going through all of them. Top­ics you may have ini­tially over­looked or not really under­stood can some­times trans­form how you approach your freelancing.

Stress can be a friend and foe #

When it comes to freel­an­cing, and prob­ably to work in gen­er­al, you should recog­nise when you feel stressed.

Occa­sion­ally, stress can be a good thing, though it might not feel like it at the time. It can tell you that you’re push­ing your­self out of your com­fort zone, into unknown ter­rit­ory. Learn­ing new skills, exper­i­en­cing new things, meet­ing new people.

But it can tell you you’re tak­ing on too much, or the wrong kind of work. Listen to it and adjust how your work lest you fall vic­tim to burnout.

Don’t let oth­er aspects of your life suf­fer #

Most import­antly, don’t put your life on hold to do it. Accu­mu­lat­ing money and pro­fes­sion­al skills doesn’t com­pare to hob­bies and time with friends and fam­ily. Always put it behind the spe­cial things in life.