Unfathomable Perversion (#11 of 52)

This post is more than a year old. The information, claims or views in this post may be out of date.

It’s been a tough week.

“Thoughts and prayers” is something of a meme – a reflex regurgitation from politicians and public figures whenever tragedy strikes, signalling an awareness of suffering but with no real commitment to empathising, or doing anything meaningful to help. But in this case, I think it’s appropriate.

This has been the darkest week for me in recent memory, thanks almost entirely to the horrific mass shooting in Christchurch, New Zealand.

I choose those words carefully. Fourty-plus victims off a lone gunman is unquestionably a mass shooting. But it’s the horrific part that’s really stuck with me.

My feelings about this are complex, and they’ll take quite a while to process – mostly because the shooter in question was radicalised in what is effectively my backyard: Online communities, global travel and gamer culture. Unlike lone-wolf psychopaths or religious terrorists, I understand (in places, deeply so) the world this shooter comes from, and watching this expression of hatred and paranoia flow from the web to the real world – with such devastating effect – is a soul-crushing experience.

What I really can’t get out of my head is the video. 

It’s difficult to find the words to express how I feel about it. Watching these things from security cameras or news vans is one thing – seeing a first-person perspective is quite another. In a very sick way, the shooter was inviting the internet to follow along as he gunned down innocent people.

It’s an unfathomable perversion to someone like me. I grew up online. My formative experiences, most of my social and cultural knowledge, entertainment, career and social bonds were forged primarily online. For years I believed in the power of the internet to connect people for the common good, to break down the walls between cultures and geographies, to enable all of us to build something better.

The deeper irony here (if any applies) is that the shooter considers himself well-travelled and well-connected, yet insists (45 times in the manifesto) on calling his enemies “invaders”. Despite all the opportunities in the world to connect with some of these people, learn to see them as humans, gain empathy and perspective, access information and educated commentary on demographic shifts and social change, he ended up weaponizing the internet instead.

And now I get to sit and watch as the confluence of incentives turns one lone gunman into a global media firestorm. News organizations that are desperate for monetizable traffic will play up the worst perspectives on this. Panel shows will bring on the most incendiary takes, prompting a social media outrage feedback loop. Pundits, activists and snake-oil salespeople will take this opportunity to push their brands and advance their careers, while the families and loved ones of 49 innocent victims have to process the unthinkable: A terrorist attack in one of the safest nations on Earth.

I don’t use words lightly, and I do my best to avoid cliches, but in this instance I can sincerely say that my thoughts and prayers are with the families of the victims. You were targeted for your faith, your ethnicity, and your status as immigrants. You deserved none of this.

And of course, this won’t go away. We have a manifesto now – a 71-page document that expresses a set of ideas and beliefs which are not unique to this shooter. Lots of people out there believe some of this stuff, and many more may already be on the fence about it.

A document like this can be dangerous without context – just enough verifiable fact to establish credibility, with just enough unprovable assertions and fallacious conclusions to mislead.

For my part, I’m working through the manifesto myself, attaching commentary and context on a lot of the arguments within it. These ideas spread like viruses online, and for every new mutation of the virus, you need a new set of antibodies to deal with it. Simply dismissing the manifesto won’t make the ideas go away – they’re incredibly hard to kill.

It’s a small contribution, and it doesn’t undo any of the damage, but I still feel like I’m obligated to help. This horror came from my neighbourhood, and the least I can do is to try making sense of it all.

And then there’s the loadshedding.

We’re on Stage 4 right now, which is troubling for a lot of reasons. Part of the problem is the loss of 900MW of power we import from Mozambique (which should have advanced us to Stage 3, not 4). The bigger problem is that this is happening on a weekend, which is when our power usage is collectively at its lowest.

The biggest problem, though, is that this is all happening within the context of the President trying to unbundle Eskom and the unions “fighting back”. There’s no telling what this means, but the unions have already declared they intend on shutting down Eskom for the week ahead of the elections (which would be wildly illegal and can be legitimately classified as terrorism).

So either our grid is imploding owing to failed build projects and ineffective maintenance, or it’ll implode because the unions need political leverage. And even in a best-case electoral scenario, it’ll implode anyway thanks to unsustainable debt in a flatlined economy that’s just now starting to feel the ravages of the “Fourth Industrial Revolution”.

In either case, today was the first time in 2019 I went online looking for emigration options. It’s going to be very difficult for me to earn any kind of living in a country that doesn’t have a stable power supply, given that I’m an entirely-online business.

Cheerful thoughts, right?

All I can really do is carry on – keep making and updating my plans, and carry on building whatever I can in the time I have left. Which brings me to the next problem: I really need to start working less.

It remains a difficult proposition for me, even though I’ve done relatively well so far, and even though the numbers make sense. I’m too helpful (actual external feedback) and tend to get dragged into things that aren’t in my best interests. I can lose hours (days, even) solving problems that don’t benefit me in any way.

I’ve always known it was eventually going to come to this, and now I have to face it head-on: Growth isn’t always about adding or changing things – sometimes it’s about removing things.

Right now, there’s quite a few things I need to remove. My habit of spending hours at my desk is one of them. My propensity to keep taking on new work because I can do the job (not necessarily because I need the money) is another. I doubt I’ll ever be able to do anything about my curious and overly-helpful nature, but I can probably get more value out of them by focusing them in the right direction – and by developing more routine and discipline in my life.

That’s what I realized (again, possibly) this evening. I’ve always had far-off-into-the-future ideas about what my life would look like, and who I would be when I got there, but I keep finding reasons to put it off.

Usually it’s work. I’ve lost count of the number of times I’ve thought:

My workload is intense right now, but if I can just power through this and finish everything off, I’ll have more time.

And then when it looks like I might succeed, it becomes:

It looks like I have more time available next month, I should find new work.

Rinse, repeat, and I’m pretty sure it’s possible for years to go by without seeing any meaningful personal development. That takes just as much time, focus and energy as billable project work.

So that’s pretty much where I am right now. The last few days have been emotionally draining, and the load shedding has inadvertently opened up some time for me to do some reading and personal reflection (so it’s at least good for that).

Four weeks to go to my planned vacation. I still can’t wait.

Also this week:

A new Noscript Show episode went up tonight. We recorded a bit later than usual owing to the load shedding, and I think it’s pretty evident in the energy of the episode. Still, we got one out on schedule, and we’re twelve-for-twelve.

Our monthly Helderberg Devs meetup ran on Wednesday, and we got our highest turnout ever (17 people!) – the topic was solar power and going off-grid, which is obviously a popular theme right now.

Finally, lost in the cacophony of the last few days, I shouldn’t overlook the fact that the IRR and Afriforum came to verbal blows over the latter’s land reform documentary – or that I still have no answer to my question to the IRR.

Next week will be just as hectic as last week, except that I’ll be doing my best to return to sane routines – aided in no small part by my now-default expectation that Stage 4 loadshedding can kick in at any time.

Returning to Normal (#10 of 52)

This post is more than a year old. The information, claims or views in this post may be out of date.

It’s been a full three weeks since my last weekly update, mostly due to my inability to manage mental bandwidth. Even though I had the time I needed, I kept finding other things to do instead.

The last three weeks have pretty much been a paralysis loop. There’s a project that simply refuses to end – it’s constantly urgent, creating anxiety on two levels: First, that we’re several months overdue, and second, that any time spent working on this means I’m letting work pile up elsewhere.

It’s pretty much the same negative feedback loop from a month ago:

* I have this very important thing to do
* I really don’t want to do this, it’s gotten too difficult
* But I also can’t do anything until I do this
* It’s already 1pm, I need to start
* It’s already 5pm, I’ll have to work this evening
* It’s 2am, I need to push through to the morning
* It’s 4am, I can’t do this anymore
* I woke up late this morning and I have a very important thing to do

The Longest Year Of 2019

On top of that, there was The Great Taxening of 2019. Just over a week ago, for the first time as a company owner, I had to pay my CIT tax (28% of profit) over to SARS. It stung.

I could probably have avoided it if I were a sole proprietor. Even as a registered business, I still have to pay PAYE on my own salary, plus I get taxed on the company profits at the end of the year. The only real benefits I get in return are appearance (having a registered company looks more legit than being a sole proprietor), and I get to save on some taxes by running relevant expenses through the business.

Chances are, the last year has just added up to me hosing myself. If I total up all the taxes and accounting fees, vs what I would have paid without this business, it might have been cheaper to not register one at all. So that’s been a fun line of thought.

On top of that, the amount was enough to dent my runway. The whole reason I worked so hard over the last few months was to build up a large enough cash buffer so that I could start limiting my time spent on consulting, and that payment was quite a setback.

Still, I survived it all the same and am still trading, so I guess there’s that. All I can really do is carry on, which is where I got stuck in the paralysis loop again.

I’ve learned a few new things over the last week, though. It’s been difficult, but there’s been some growth.

First, I’ve learned (and am still practicing) the ability to put things out of my mind and focus. I need that focus on my projects to deliver good work, but I also have to maintain effort on several projects at once to ensure I don’t run out of work, and so it’s a constant tug-of-war.

Despite that, I’ve had some productive stretches in the last few weeks, and they were generally the ones where I had simply decided to stop stressing and focus. Even if that meant missing an opportunity, or being late on responding to something I had committed to. Just the decision to focus alone was enough to make headway.

Next, I really need to increase my rates. When I first set them up, I did some relatively simple math that had me replacing my last full-time salary + the ability to accumulate some buffer every month. While that number has served me well so far, it’s technically undervaluing what I’m actually capable of.

Of course, this is an easier decision to make when you’ve got some experience under your belt (and a little cash in the bank), and this is still all technically part of the plan. I haven’t even finished my first full year of freelancing yet!

Finally, I’m learning more about what really makes me tick. One of my projects has ballooned into something more closely resembling a digital transformation project, and I’ve found myself fully-engaged in the work – combining technical and political experience to help a business level-up their operations.

It’s been a lot of fun (and it means my company website is woefully out of date!), and it’s also helping me solidify a few more things in my life.

One of them (and this has been overdue for a while) is finally letting go of the online communities that were formative in my youth – and are still around today.

I guess it’s difficult to see it today, but I had a fairly isolated existence growing up. Like most children of my generation I wound up online, meeting people and sharing experiences with them, as a substitute for reality (which was oftentimes quite harsh).

I feel like those communities have transformed from safe spaces to explore, to regressive environments where I’m no longer welcome (not that I want to continue participating anyway). About a week ago I finally decided to quit. It feels like I’m breaking a bad habit, which is probably a good sign 🙂

Not much else has happened on the personal front over the last 3 weeks, which is not a great sign. It means most of my time was either absorbed by work, or fretting about work to the extent where I did nothing for myself – this being the problem I have with managing mental bandwidth.

On the plus side, I have a break coming up – two solid weeks off in April, which I’m really looking forward to. It’ll be the first time I take leave as a freelancer, which probably means I’ll end up tinkering on some personal projects – and catching up on my games library.


Despite the hectic work schedule, Odin and myself have continued to produce a weekly podcast. The Noscript Show has had a new episode every Saturday.

It’s Good to be Home (#7 of 52)

This post is more than a year old. The information, claims or views in this post may be out of date.

A Saturday post on an actual Saturday – madness!

Last week was hectic – pretty much a repeat of the week before. The second half of my first-ever full-time on-site consulting gig drew to a close, but not before leaving me with a task list a mile long. It turns out that delegation really is an important part of building a business – including delegation to my future self (or I’d go insane).

At least I’m home now! Slept in my own bed last night, which was glorious. Overslept, really.

So it should come as no surprise that my habit tracking went to shit again over the last week. It’s pretty obvious to me now that maintaining these habits does require a bunch of external inputs (namely, being home every morning), and it further diminishes the notion that I’ll take up digital vagrancy at any point in the future.

At least I recovered from that gastro bug, which was no fun at all.

The last week also presented me with an opportunity that I’m now seriously considering: Taking on a full-time role at the company I consulted, to help them fix their IT and systems, helping them get to the next level.

In many ways it’s my dream job – it won’t last forever, I’ll have a meaningful remit, the authority to implement the changes that make sense, and I’ll walk away from it with quite a lot to show. For the first time, I’ve got tangible validation that my skillset is, in fact, pretty rare – and I’ve now got an opportunity to really use it.

It’s also causing a massive internal debate, once again ripping up the floorboards of all my assumptions.

On the one hand, as a career move it makes total sense. Pushing out and establishing myself as an independent consultant here will pay huge dividends well into the future. The job itself is challenging, but not impossible. The tradeoffs may well be manageable, too, and it’s likely to open up new career paths and opportunities in the future.

But on the other hand: Do I really want to do this?

A big part of leaving full-time employment was specifically to push myself into new areas of personal growth. All things considered, this job wouldn’t really be that much of a push – it’s something I’m good at, and can do at length, but it won’t be as personally challenging as a total career change.

Doing this well (and establishing those new opportunities for myself down the road) will only serve to further draw me away from the reasons I quit this world in the first place. Five years hence, I’ll find myself doing the same things I was doing five years ago, and again I’ll feel disappointed at my lack of taking actual risks.

I recognize that I’m really lucky to even be in this position: Openly debating whether or not to take a potentially career-defining job, over doing something completely unrelated for a career. But I’m also the one that has to wake up and do this job every single day, and at some point I also have to consider what I want for myself.

Nothing’s been decided yet, other than the fact that I’m thinking through all of this very carefully. In the end, I doubt I’ll walk away from the opportunity – it’s more likely that I’ll deliberately carve out the time for the things I really want to try.

Everything else in the last week has really just been implementation details. I’ve once again found myself hand-rolling a 2-tier analytics and reporting stack, purely because rolling out any of the free tools would have added far more complication too early in the process:

Most of my week in one simple diagram

Question: How do you link records between two systems when no correlation or shared key already exists? Answer: You create a system that goes hunting across two databases, following ever-broadening match rules in an attempt to best-guess what those correlations should be. A solid week of my life for the first version of that.

I’ve also regained an appreciation for communication as a skill. It’s actually pretty important that people talk to each-other, and not past each-other. The latter is how you end up with organizations that make absolutely no sense.

Finally, I’m continually vindicated of my decision to leave full-time employment. We’re about 10 weeks away from my 1-year anniversary, and a part of me was worried that I’d come to regret the decision to leave. So far, no such luck.

Other than that, not too much to report. I’m doing badly on my reading goals – Best Dick is still on my reading list, and I haven’t touched it for at least two weeks. I’m at least keeping up with 1 post per week on blogging, even though the goal was 3 per.

Mostly I’m still trying to manage an escalating-workload situation. A big part of my paranoia thus far has been the upcoming CIT payment, and to what extent that’s going to eat into my cash buffer. At one point I was within striking distance of having a 6-month buffer built up, but that’s about to be wrecked. I just hope the damage isn’t too bad.

I’m also dealing with the growth question – and if I want to do any of that at all. It goes against everything in my nature to see a problem I can solve, and then walk away from it – but I’ll have to start doing that in order to maintain my sanity. I’m confident I could spend the rest of my life fixing things and getting rewarded for it, while never managing to pursue the things I’ve wanted to do since I was a child.

Or maybe now is the right time to accept that not all dreams come true, and go with what’s actually around me.

Like I said – hectic week.


New episode of The Noscript Show came out today. We missed a lot of international tech topics in the pursuit of dealing with local issues, the peak one being loadshedding – and how we absolutely shouldn’t have had to deal with it.

The Helderberg Dev Meetups were postponed last week (bad scheduling) but are back on as of the 19th. I’m still not sure whether or not I’m preparing anything for it, but I’m looking forward to a relaxed evening of chilled conversation.

In the coming week it’s back to something resembling business-as-usual, as I attempt to negotiate an exit path for a project that’s dragged on far too long, and start onboarding my second (!) part-time freelancer. I guess this is how we all learn!

Still learning (#6 of 52)

This post is more than a year old. The information, claims or views in this post may be out of date.

It’s time for another weekly update! And this time, yes, it’s on a Sunday. My Saturday was purely for switching off, and I have zero regrets about that.

A whole bunch of new things have happened for me during the last week, mostly in the form of my first-ever full-time on-site consulting gig.

First, my habit tracking went to shit again:

This has mostly been a function of not being at my regular desktop PC every morning. Opening a browser window (which I do hundreds of times a day) and seeing my stats is the #1 motivator for recording habits. Since going on-site with my Macbook (and without the everyday.app extension) I’ve just skipped over it entirely.

Last year, I did a couple of “trips” from my native Strand into Cape Town, and treated each one like a mini-digital nomad experience.

One thing I learned: It’s difficult for me to get into a really productive flow state without a comfortable environment. Doing emails, calls, quick bug-fixes and coordination while on the move is fine, but if I wanted to develop actual software I’d need a quiet place to do it.

2018 Retrospective

This time around, I figured it would mostly be the same: I’m on-site at a customer for two solid weeks, so I booked an Airbnb way in advance and planned to set up there for the duration. But there were a few differences.

First and most importantly: a schedule. I committed to being on-site at 8am every morning, leaving at 5-ish (just like a regular working day), which meant adjusting my schedule a little further back than I’m used to.

That, in and of itself, has been a challenge. 6:30am mornings are not the norm for me, and I can’t say I’m a huge fan. Nevertheless, it’s been a productive week – and working these regular hours for a short burst is somewhat refreshing. As is being in an office full of motivated people.

Until Thursday evening.

There’s a running joke in my circle about the Republic of Helderberg, and the fact that travelling to Cape Town is pretty much like visiting a foreign country. It turns out I needed to update my shots, because it was on Thursday evening that I ate something which profoundly disagreed with me (I think it was the Long Street KFC).

By Friday morning, the early stages of gastroenteritis were in motion. I made it as far as 2:30pm before the headache/nausea/joint pain/disorientation phase kicked in, and I ended up leaving early, heading straight to bed in the Airbnb at 3pm.

That was something of a low point for me, with several factors converging at once. I was:

  • Sick and tired (literally),
  • In an unfamiliar bachelor flat,
  • In the middle of a town I’m rarely in, and don’t much know,
  • Facing the prospect of spending the rest of the weekend cooped up,
  • Potentially having to grind through a bunch of work on the Mac, and
  • Having all of these thoughts while lying on an uncomfortable bed

This was the side to the “digital nomad experience” I hadn’t yet encountered: when things go wrong. Assuming I did ever want to travel the world and set up shop anywhere I go, it stands to reason I wouldn’t be 100% healthy the entire time. I’d absolutely catch bugs, get sick and miserable, and end up in this exact situation.

By 7:30pm I had called an Uber to take me back to Somerset West.

So that was the first big learning this week: Either I was never suited to it, or I’ve just missed the window – but when it comes to feeling that miserable in a foreign setting, I can’t handle it that well. Between the loss of habit tracking and bailing out at the first sign of trouble, I’m a lot less confident now in my ability to city-hop in exotic locales.

Which is not to say I don’t like travel – I still love seeing new parts of the world. It’ll probably be as a tourist, though, and I think I’m fine with that.

The second big learning is putting expiry dates on contracts.

Without going into too much detail on this, it turns out that no matter how good you are at what you do, sometimes you’ll run into clients that just cannot get things back to you on time – and that can really throw out your planning.

As I write this, I have a contract “out” (for signature) that would commit me to a few hours/month of support work for the rest of the year. When I drafted it in December last year, it made total sense – and as of February it still isn’t signed.

Having now looked at my workload, I’ve decided to take 2 weeks off in April – which will be complicated if they suddenly sign that contract.

I now completely understand why a lot of firms do “quote valid until x date” – time marches on, and the longer something goes unresolved, the more of a risk it becomes. So this is one of those things that I’ll be factoring into every document going forward, no matter how sure I am that they’ll sign (and I was pretty sure of this one).

But the third, biggest learning of the week: I’m really into digital transformation.

When I went freelance last year, I had to decide how to market myself, and I ended up going with the option that I was most familiar with: Digital marketing.

As I’m closing in on the first year though, I can honestly say that this project has been the most exciting – working directly with business leadership to assess, roadmap and then implement a transformation strategy. Even better that it’s a small, flat business without many legacy systems or processes.

If the next 6 months go well, it will (hopefully!) mean a great case study into practical steps for making businesses more efficient. That, and an already-long-overdue update to my “company” website.

This isn’t quite where I expected to be a year into freelancing, but I’m not complaining at all.

Another few highlights from the last week:

New Noscript Show episode (2019-006). These recordings are basically a form of therapy for me nowadays. And this was a good one – a range of eclectic topics and nothing taken too seriously, except for the part where we’re (Odin and myself) collectively frustrated with the lack of basic financial literacy.

Feeling more confident in having taken this risk. There’s an unexpected side-effect to having a company account and InContact notifications – every few days I get an SMS telling me some automatic payment has gone off, along with the remaining balance in the company cheque account (which pays my salary).

It’s begun serving as a constant reminder that I’m generally doing okay, and I’ve become a lot less stressed about finances (and finding new work) over the last week as a result. This wasn’t advertised on the freelancing brochure, but it’s been a great psychological bonus.

Reached level 17 in Overwatch! And enjoying every minute – Blizzard really did a great job on this one. After a solid run as a Pharah main I’m now experimenting more with Orisa and Mercy to round out my personal roster. At this rate, I’ll be eligible for competitive games in no time.

In the coming week I’ve got another round of office hours, during which the rubber hits the road on a chaotic (and ambitious) digital transformation project. My excitement level for this is 10/10.

The longest year of 2019 (#5 of 52)

This post is more than a year old. The information, claims or views in this post may be out of date.

Is it just me, or was January unreasonably long?

Technically speaking I’m writing this post on a Saturday, in that I woke up late and haven’t gone to bed yet. The calendar will tell you this was written on Sunday though – it lies.

The last week was particularly hard on me, as evidenced by my habit tracker.

Every morning, I need to take a fasting blood sugar reading in order to adjust my treatment. I’ve been really good with that since starting the tracking, managing a fasting reading every morning for a straight month – but in the last few days, that became difficult.

Whenever I have a bad week, it seems to throw everything else out of balance. The first thing to go is perspective – I get stuck on a particular problem and don’t really notice things like the passage of time, or that adhering to my habits have become a problem.

In this last week, I can clearly attribute that to something: A poorly managed project – with at least half of the blame falling on me.

In September, I picked up a project that was meant to take two months at the most, but as of end-January we’ve still not managed to go live. The application is a line-of-business app for a major enterprise, and like most major enterprises, timelines can sometimes stretch out a lot further than you might think.

In this case, there’s no one single reason why it’s taking this long. The scope has kept changing, but that’s par for the course when developing an all-new process in a shifting landscape. Feedback has been slow, but it’s impossible to align calendars. Getting it deployed has been a challenge, but there are so many parties involved in simple IT change requests that no single one of them has unduly held up the process.

As it turned out, by mid-January they had managed to finally get our first version out for testing with some of their internal customers. The feedback ended up requiring a whole new set of changes, which was scoped and priced and scheduled for delivery over the last week.

And this is where I hit a brick wall. I’ve worked on this project long enough now to have developed some really negative feelings towards it. The launch has been delayed time and again, the stakeholders and priorities have shifted back and forth, and my main concern remains launching a decent product – which seems further and further away.

But the blame for this one falls squarely on me, for once again trying to handle more than my fair share of work. The time to outsource it was actually mid-January, but after the week I just had I can’t afford to not pull the trigger on this.

Which I’m now doing. It’s a new milestone: I’m outsourcing the first bit of work I feel comfortable with, mostly because it’s starting to drive me insane and just getting a fresh set of eyes on it will already be a big relief.

Looking back on the week, though, I could have caught this one a lot sooner. I got stuck in a negative feedback looped that completely drained my energy:

  • I have this very important thing to do
  • I really don’t want to do this, it’s gotten too difficult
  • But I also can’t do anything until I do this
  • It’s already 1pm, I need to start
  • It’s already 5pm, I’ll have to work this evening
  • It’s 2am, I need to push through to the morning
  • It’s 4am, I can’t do this anymore
  • I woke up late this morning and I have a very important thing to do

Remarkably unproductive, but not the first time I’ve dealt with this feedback loop. Despite my own self-sabotage I’ve managed to get a lot of it done, including a monster VueJS refactor:

But I could have done more, had I been sufficiently motivated to tackle this yet again. I’ve just run out of motivation at this point, and it’s finally forcing me to evolve.

One upside to this: It’s forcing me to think outside the box. My problem has always been that I’m good at figuring out solutions, but bad at letting things take place beyond my control. If I ever want to grow an actual business (and not just grind out code for the rest of my life), I’ll have to learn how to delegate, and this is forcing me into that position now.

This one problem has really shaped most of my week, and it’s drained me far more than is reasonable. I’ve already decided that next week will be better: I’m travelling for work, and spending time out of the house is just what I need right now.

In other news:

My self-imposed Twitter limitation continues to work. I still open up the app several times a day, but most of what I’m getting are SABC News tweets (of which there are few), and I haven’t been tempted to dive back into the burning garbage vortex.

CIT is turning me into a libertarian. I’m a few months away from clocking my first year as a freelancer, but my financial year-end comes up on 28 February, at which point SARS gets to take 28% of my profits for the year. Let’s just say it’s shaped a few of my pointier opinions about taxes.

Ghost in the Shell: ARISE is actually pretty good. After trying to watch it in 2013 and being roundly put off by the Microsoft Surface product placement, I’ve kept away until this week. A more detailed post is in the works, but for now, I have to admit it’s got a whole bunch of merit all on its own.

I’m starting a new business venture! What started out as a semi-serious joke is now materializing into a new business, with a few potential projects lined up. With any luck I’ll be able to share more details by the next weekly update.

… and saying goodbye to my first client. The first customer I ever signed was for a retainer that they ended up not using as much as they thought they would, so cancelling this was really more of a formality at this point. But that’s another milestone I crossed this week: Ending a contract before its due date.

Next week, I’ll be doing my first ever full-time on-site consulting gig focused on the things I actually enjoy doing: Assessing business operations and guiding teams towards improving all of them. I’m already mentally drafting the case study 🙂

Saturday #3 of 52

This post is more than a year old. The information, claims or views in this post may be out of date.

2019 is officially back in full swing – it’s been a rollercoaster of a week, and looking at the work that lies ahead of me I’m legitimately worried I might be working too much again. As it stands, I need to put at least a half-day of effort in tomorrow (breaking my own no-work-on-weekends rule) if I want to stay ahead of my current workload.

This is reflected in my habit tracker for the last week, where I was only able to stick to one of them reliably!

Captured from everyday.app – highly recommended!

The worst part: I wasn’t nearly as productive as I’d have liked. I lost a lot of time with constant context-switching, being knocked off-course by incoming requests, and proper analysis paralysis. In other words, the back-to-work blues.

As my work’s gotten back to full swing, I’m having to re-engage my planning brain (to make sure I don’t go crazy), and I’ve had to adopt two strategies to stay on top of things.

A daily Inbox Zero habit

An inbox is basically a task list of indeterminate length. Until you actually go through the emails in there and map out the time it takes you to do things, there’s no way you know how much work you’ve really got on your plate.

So for that reason, I’ve focused on reducing both of my inboxes (work and personal) to zero every night. It’s become my new ritual for closing out a day, since it usually results in a list of to-do’s for the next morning – meaning I don’t have to think about how to start my day.

Even without Inbox Zero, it’s usually a good idea to end your day with a brain dump of everything you know you need to do the next day. It saves time and maintains momentum between “breaks” (ie eating and sleeping for the night).

I’ve found that most useful when paired with the second strategy:

Task Time Planning

Task lists are sweet little lies we tell ourselves – potentially days worth of work hidden behind one-line items. They get much more concrete when you do two things:

  1. Estimate how many hours a task will take you
  2. Add all of them up and try to fit them into your workday

So that’s what I did on Wednesday evening. I took a few hours to go through my inboxes, and eliminated everything in there:

  • Archived any emails that I didn’t need to respond to
  • For tasks, I noted down the task outside the email, then archived the email
  • For meeting invites, I made sure they were either on my calendar or rejected with an explanation

And then for each task that came in, I gave some thought to the hours it would take. I ended up with around 60 hours worth of work planned out (a solid week of effort plus overtime), and that was before I factored in all the other work I had planned elsewhere!

Most of my work runs in cleanly-defined contracts (I call them “obligations”), which mean I get to put together a table like this – charting hours per project per workday, with weekends hidden:

Freelancers can be really busy people!

And now it becomes really clear how busy I am! After I sat and charted out all my obligations (retainers, contracts, ad-hoc work, internal allocations for product development, marketing and admin) I found that I’ll only be back to “normal” at the end of February!

But I also felt relieved that the situation had been managed. Just having a plan – and some visibility into your immediate future – makes things a lot more manageable.

And then, finally, there’s the Eisenhower Matrix, an idea which has genuinely helped make the world a better place:

Borrowed from Develop Good Habits.

Urgent is usually pretty easy to discern: Things that have to be done right away, or a bad thing might happen.

Important is a little bit harder – it implies that there’s a reason beyond the completion of the task itself, which is undertaken as part of a larger plan. Developing a good sense of what’s important is, itself, quite important 🙂

In my case, I have a relatively clear idea of where I want my working life to go. I know that long-term, the sustainable path is to develop and market products (not services), so that I can generate value without constantly investing effort. I’ll likely always be doing some sort of consulting work, but it would be nice if I didn’t have to do it – that would let me pick the best projects and truly do my best work within them.

So even though they don’t address any burning needs at the moment, spending time working on “unprofitable” product development is really the smarter move over the long term. The work won’t be urgent for a while, but it’s important to do it every day.

Between those strategies, I finally felt like I had regained control over my workload by Thursday morning. Consequently, those were the two most productive days of my week.

Then there were another few wins, thankfully unrelated to work:

The Noscript Show is now syndicated everywhere
We’re finally on iTunes, which also means we’re on Pocket Casts – apparently making the show even more accessible. I also managed to put up a basic website with all the pertinent info in one place: noscriptshow.com

Laravel Quickstart has backup!
I think there’s been enough idea validation here to move on to the next phase – designing the prototype and outlining the functionality for the first Quickstart. That’s begun with the help of a frontend developer, who I won’t name in public without approval 🙂 Between us, we’re hoping to get the first version of this out a lot quicker!

Planning a podcasting info resource
Moving even further away from software, I’ve been looking at putting together a podcast learning center of sorts. The idea would be to offer once-off flat-rate access to all the information (with the price increasing over time as more info is added), and the focus would be on getting first-timers to the point where they’re producing their first podcast successfully.

It turns out there’s a lot to know – and even more questions you don’t think to ask until after you’re in the thick of it, so I’m hoping I can put something valuable together that will save everyone some time!

Finished Ghost in the Shell season 1 again
I rarely count shows as a win, but there won’t ever be a day where I don’t recommend Ghost in the Shell to people. Just skip over ARISE, that was an unintentional mistake.

Next week will be a proper grinder of a week, so I’ll probably get a head start on it by clearing up some of the smaller work items during the day on Sunday. All things considered, it feels good to be back in the driver’s seat again.

51 to go! (#1 of 52)

This post is more than a year old. The information, claims or views in this post may be out of date.

I blinked and missed the first week of 2019 – it’s going to be a pretty short year, at this rate!

At the start of this year’s blogging adventure I figured I’d borrow a strategy from Charl’s personal blog, in which he (generally) does a weekly post to recap what happened during that week.

That’s usually the reason I wrote so little last year: I keep busy with a lot of stuff, so much so that picking one topic to write about causes analysis paralysis. So I end up writing nothing instead, a sub-optimal outcome.

The first week of 2019, for me:

Most of my customers came back online by yesterday, and I’m already planning out my workload for the year. Last year, my strategy was to just take on every piece of work I conceivably could – this year, I’m limiting my billable work and planning to take time off instead.

To that end, I mapped out the 2019 year in several different configurations, until I landed on the one that was optimal for my planning. And actually relatively sad:

The entire 2019 calendar year

That’s my 2019 tracker. It includes all 365 days of the year, marks out weekends (gray), public holidays that result in time off on weekdays (P) and my minimum-acceptable-leave dates (L) – calculated and distributed in such a way that I have sufficient capacity every month to hit my financial targets through billable work.

The sad part is seeing the year laid out like that. 250 weekdays, 104 weekends, 11 public holidays, and that’s 2019 all done!

Where the planning part comes in: If I have a really good quarter, and bring in amounts above target, that means I can “afford” to slow down later in the year and focus that time towards building my own products. It’s a mindset made possible by the insane amount of hours I worked last year, and the resulting cash buffer I built.

I’ll only feel confident once I go through February though. Bare minimum, SARS is going to take a full month’s pay away from me in one shot. Once I sort out my tax predictions for the next fiscal year I’ll actually be in a position to predict things.

Then there’s the minimum-acceptable-leave idea: I have to take time off. It’s an ongoing problem with me, so much so that I’ve sought therapy to help me manage the anxiety involved. I tend to overthink negative outcomes, and then to mitigate those I’ll work myself to death (literally) to compensate.

On top of those handful of [L] days, there’s the weekends (during which I absolutely should not do billable work), and public holidays (the same), meaning that of the 365 days in the year, only 250 (68.5%) should be productive.

It’s a nice plan on paper, for sure. Whether or not I stick to it will be a different story. One of the downsides of being a freelancer is that you’re 100% responsible for the opportunities you create, and sometimes that requires you to put in effort above and beyond what a regular 9-5 will require of you. So we’ll see what happens!

Other stuff of note:

Helderberg Dev Meetup: I’m giving the first talk of the year today (Progressive site enhancement using VueJS), which as of this post I still technically need to prepare for!

Laravel Quickstart: I’ve seen some early interest in the idea, even though I haven’t done much to market out the page yet. I’ll be doing that by outlining my first product, and publishing those details to a good-looking storefront – then there’s something more tangible to talk about in public.

everyday.app: This indie-built daily habit tracker (hi Joan!) has already been very useful. Simply by replacing the home tab on my browser, it encourages me to review my habit completion status often!

Makerlog: I’ve signed up (@wogan) for one of these public to-do trackers, and I’ll be using it for Laravel Quickstart work (when I work on it). With any luck, the daily reminders from everyday will nudge me into making at least one update per day here, and progress will be made overall.

On to the next week of 2019!