Manifest Stress: Hives & Shingles

In as terse a way as possible, I would define stress as an inability to cope.

With this definition in mind it appears that I’ve not been looking after myself for the past 18 months, and my body is trying to tell me something.

This week, from last Sunday, I’ve come down with shingles. This is on top of the bout of hives that I’m still taking a daily cocktail of antihistamines (6 a day for the last 15 months or so) to defeat. The images accompanying this article are of me at my hivey height: at its very worst in June 2015, about a month after its initial onset. Fortunately, due to the medication, I haven’t had a single red-ring appear since April 2016, and once the prescribed course of tablets finish in April 2017 I’m hoping to remain red-ring free from then on.

Other than these two afflictions I’m in robust health; I am not immunocompromised, I exercise regularly, I eat a healthy diet. The doctors I’ve visited have pinned the onset of these irritants on one thing: stress.

Chest and neck hives

Back hives

If I skip back a decade, as a 23 year old I could cope with multiple conflicting priorities much better than I can now. I could context switch from one activity to another with relative ease, with little in the way of additional cognitive load. The tasks and projects didn’t even need to be connected: I could juggle a couple of software development projects alongside some video editing, alongside some sound editing, alongside attending training courses and alongside managing multiple projects at my day job. Sometimes I might have gotten a little bit anxious about my workload, but I never felt my capacity was anywhere near full or overflowing.

Today, this isn’t the case. As the years have whistled passed I’ve come to the conclusion that my golden number is two: that is, in a perfect world, I am permitted two projects, each of corresponding weight that form a conclusive whole. Any other projects vying for my attention should be shelved, delayed, delegated or abolished.

At the moment I’m over this target. I’m probably running at 5, maybe 6. I’ve got a mobile phone app I’m working on, that’s probably 50% of my work day, followed by adding ad hoc finishing touches to RopeWeaver’s new SaaS system at 40%. Having sold a chunk of my TuitionKit shareholding I’m now more of a backseat partner, but it still requires some day-to-day involvement, so that’s perhaps 5% of each day. I’m currently sat in a makeshift home-office in what should be my lounge, as my the constant disruption of my top-to-bottom house refurbishment is about to enter it’s 7th month (with at least another 7 to go), managing that takes at least 10% of the day, along with the financial planning. That totals 105%, and I’ve not even bothered totalising the other random projects I allow myself to get roped into. I’m an enabler: I allow myself to get stressed, by putting myself into situations that encourage it.

On the surface I don’t feel any burden – I don’t sit at my desk hyper-ventilating, in a panic at how I’m going to get everything done. I’d describe the load as more of a tension; something pulling on me. It isn’t a tension you actually notice, but subconsciously your body is constantly under strain, holding itself in position, resisting the impulse to fall. Even if you don’t notice it every day over time this tension aggregates.

My hives are on the mend, and in a few weeks the shingles will pass too. Will I make any changes to my lifestyle to stop things like this from occurring? I don’t know. I won’t say I can’t, because I’m the one in the driving seat: if I choose to sever ties with certain things I am in the privileged position to be able to, but there’s some things that I simply must finish. Let’s hope I’m not doing myself any lasting damage.

The Best Things I Ever Did Were Accidents

or “There Is No Breadcrumb Trail”

Back in 2004, freshly graduated from university, I didn’t have the foggiest idea how to launch my career. I possessed no realistic vision of how to achieve success, but I sure as hell had a fantasy of the result: me at the helm of a modest sized company with a few dozen employees, revenues of a few million a year, living in wealth and luxury whilst not being too pretentious.

My plan to achieve this blurred vision was straightforward:
Stage 1 = learn to code and get a degree
Stage 2 = ?
Stage 3 = profit

With Stage 1 complete I was about to set off into the world of work, kitted out with bags of ambition, a satchel of high hopes, and a bumbag of naivety.

To start I needed a job – any job, just so long as it was in IT. I knew for a fact that once I’d gotten a bit of experience under my belt (and more vitally on my CV) life would get easier, but getting that first position – a foothold on the employment ladder – was to be the most excruciatingly painful part of my working life so far.

After a fuck-ton of unsuccessful interviews I eventually found myself faced with an offer of a good salary and an easy 15 minute commute to a nearby tin can factory. I never intended to get into the manufacturing industry, but it was a job, and that’s all that mattered. I accepted the offer and felt resplendent with my very first job title: Analyst Programmer.

My “Analyst Programmer” role immediately morphed into a systems administration one, as a result my career had stalled before it had barely started. A little over a year later, on the day I decided to look for another job, I received a letter from my university’s alumni association. As luck would have it the letter contained a job description; the university was working in partnership with a local food factory that was looking for a young and ambitious software engineer to take on a two year project. It felt perfect; I needed a challenging position to get my career back on track.

After two extremely involving interviews (in the first I had to give a presentation of how I’d architect a shopfloor production management system, in the second I was interviewed by six people at 7pm on a dark winter’s evening) I was offered the job at the food factory. My modicum of experience in the manufacturing industry (apparently rather rare amongst IT people), had helped to swing it. From Systems Administrator (nee Analyst Programmer) I became Systems Development Manager, in an IT department of one: me.

Spin forward in time, and as the two year project approached its end I was at an impasse. My job remit had given me much responsibility and had taken a Herculean effort to complete, and during those two gruelling but enjoyable years my sense of ambition had been revived, since festering at my first job. Going back to a regular nine-to-five didn’t appeal. I attended several interviews but nothing clicked; the jobs didn’t inspire me, thus I was lacklustre and was offered none of the permanent roles I applied for.

Ultimately I accepted a two month contract coding gig, perfect for earning some money while I figured out what to do with my life. The world of contracting was new to me, this being only my third job, and I was surprised and delighted by the substantial remuneration, given that I was still a green 24 year old. After a couple of weeks I began to think: “Contracting might not be just a stopgap, maybe this is the dream?”

This contract job was at my old university, and now having this education sector experience on my CV helped me get another contract position: a 6 month stint across town at the county’s other university. This second contract came to an end in November 2008, and as the credit crunch tightened its grip the IT job market tanked, both permanent and contract. Especially contract.

By January 2009 the job scene was still desolate, and only one of the few interviews I’d had was for contract work. I consider this interview to be the worst I’ve ever had. The first half of it – the talky bit – went great, but things turned bad in the second half – the coding test bit. The interviewer asked me to produce a tiny Winform application that interfaced with SQL Server, demonstrating the basic SQL CRUD operations. The crux was that it had to be done sans internet; there was to be no point of reference. I’ve always been one of those coders who commits no specific functional syntax to memory – I prefer to free up my “Head RAM” for more important logical task crunching.

Thus I was, in short, pretty fucked. I failed the coding test with flying colours – after being left on my own I spent ten minutes considering my options, then called the invigilator back in to explain that I couldn’t do it, and I got up and left with not a single line of code written. I drove home miserable and clogged with self-doubt.

With no work on the table or horizon I panicked, but the fear soon subsided, to be replaced with an urge to act. My prior contracting work had allowed me to gouge a hefty chunk out of my mortgage, so my outgoings were relatively modest. I created a budget spreadsheet, chronicling my typical monthly expenditure, so I could plan my actions. I cancelled my Sky subscription and downgraded my mobile phone contract to the barest minimum. I sold all my DVDs and CDs, and about half my books – ultimately I was to trawl through all my possessions, wheedling out things that could be hawked on Ebay to generate cash on which to live.

Decent work was still hard to come by, so I filled my time with dribbles of paying jobs: installing a replacement keyboard in a laptop, building a little Winforms/Access database system, making various Sage Accounts reports, mowing the lawns (and picking up the accompanying dog shit) of my brother’s rental properties – if it paid then I did it. After months of living off scraps and eroding my savings, in September 2009 a friend’s company asked if I’d build a custom ERP system for them, a project which made my eyes sparkle. The eventual invoice was the best part of £10,000, and I finally accepted that the self-employed life was truly for me, despite its ups and downs.

But pure self-employment wasn’t where I stayed; at the beginning of 2010 I rejoined the food factory. The deal was that if I worked for them for a year – developing new add-ons for my previous systems – the directors would fund a venture to launch a new startup; building factory management software, something in which I was now extremely experienced. But the path of true startup love doesn’t run smooth; progress has been slow (“It takes years to become an overnight success,” is one of my go-to business proverbs, and this probably means we’re not actually a “startup” in the nominally correct sense of the word).

Thus I have had ample need and opportunity to embark on other ventures with which to line my pockets. During the past four and a half years I have launched other businesses, developed other products, beavered on other side-projects, and even found time to re-establish my contract consulting. All of these things run side-by-side, albeit a little clumsily. The ultimate plan is to build several of them to a stage where they can be backgrounded to earn money on autopilot, or flipped and forgotten about. That’s my plan anyway – whether it’ll come to pass is anyone’s guess.

Eleven years later, “Stage 2” of my career vision remains an enigma. I wasn’t one of those fortunate people who instinctively knew their calling in life from a young age, to aim every fibre of their being at it from the very start – I’ve just bumbled along and tried to keep my head above water, and despite making it all up as I go along I seem to be doing OK. Am I wealthy enough to never have to work again, as per my dreams? No. But if I chose to live off my accumulations I could survive for at least 5 years without having to lift a finger. But that’s not me.

I’d love to give this piece of writing an underlying battle cry, to finish it with some pearls of wisdom to bestow, but fuck it: don’t listen to my advice. I’m just another chancer, another wantrepreneur stumbling along in my own little way, trying to carve out a slice of something resembling success, which I can’t even imagine, and don’t think I’ll know when I see it.

Wanting to learn from others’ mistakes is fine, and it’s important to not get lost in trying to learn from others’ successes. Time is better spent doing, discovering, unearthing and sculpting knowledge, chopping your own path, learning your own lessons, making your own mistakes, and making your own good advice. Most of all, I’m glad I embraced the things I never intended to do, because, in the fullness of time, all my accidents were somehow done on purpose, and led me to where I am now.

Ultimately: I’m where I am today because I didn’t try to get here.

The TuitionKit Launch: 10 Lessons Learned

It’s been over a month since we launched TuitionKit. Here’s what I’ve learned thus far

At 2:00pm on Friday 10th April we launched TuitionKit, a GCSE and A-Level qualification elearning website. Fridays are terrible days to do anything, never mind launch a SaaS product, but that’s just how things fell in the end. My business partners Leon and Jonathan were waiting anxiously in their respective homes, waiting for a text message from me. I deployed the first live build just after lunch, and immediately texted them; “We’re live”. Soon afterwards Leon registered an account, to see what he could break.

As expected, things went terribly. I’d ballsed up the sign-in cookies big-time, thus on the server side the authorisation wasn’t working, resulting in Leon being repeatedly booted out of the system. I was stressed but not surprised; from bitter experience I know that launches are always shit – nerve-wrackingly, hand-wringingly, palm-sweatingly, teeth-grindingly shit.

But you always learn some new things. Here’s my takeaways:

Launch days are your most productive ones

Don’t know why this has just dawned on me, but you get more lines of production code written on a release day than any other day, mostly in the form of urgent patches. It’s interesting to know that panic makes me write more concise and solid code than calmness does.

Best practice my arse

The current so-called “best practice” for registration forms is having only one box for users to enter a password. Apparently you shouldn’t be asking them to repeat this password for confirmation; should they make a mistake they’ll use your website’s password recovery facility to retrieve/reset their password, and they’ll be happy. The raison d’être is that the more you streamline the registration process the more likely a prospective customer will complete it and sign-up…

…which is all well and good in principle, but unfortunately this idea turns out to be utter bollocks when put into practise. Over the first weekend we had over 50 sign-ups, and at least 25% of these had to resort to resetting their password. People make mistakes, but people don’t usually assume that it was them who made the mistake; their first instinct is to blame the system. So whilst all of these users have eventually managed to gain access to the system their patience has been ever-so-slightly strained. Take it from me, someone who has seen the evidence; put two password textboxes on your registration forms.

On the topic of confirmation inputs: chuck in a couple for their email address as well

Unfortunately, regular folk don’t seem to proof read. 10% of our registrations type their email address wrong, thus 10% of the user account table is a junkyard of misspelled email addresses. Most of the time users realise what they’ve done and register again immediately with the correct one. But many don’t, and those users are never coming back.

So I recommend you bung a confirmation box for email addresses on your registration form too. In fact, I’d go so far as to advise that if you like neatness and organisation – or have a phobia of clutter – never build anything with a user account table, because end-users don’t give a crap about the tidiness of your apparently wonderful database.

People still double-click stuff on web pages

Originally (before a few tweaks) every day I would receive a barrage of error log emails, telling me that database insert queries have failed, all of which are generated by people double-clicking on the “Register” button, submitting their details multiple times. I don’t currently have a good solution for this, but whilst the burden of website usability is on me this hasn’t stopped me from forming a grudge. With our customer-base heavily centred on 16 year olds I can’t help but feel that the youth of today ought to be savvy to how the web works, but apparently many of them aren’t, so that’s a wake-up call for me. My best weapon (so far) in preventing this double-click nightmare is a piece of JavaScript to lock the UI while the postback is occurring, but it’s hardly an elegant solution.

Have one customer contact email address – for everything – and operate a triage process

This was one thing I insisted on from the get-go, and I’m happy I did. All company correspondence goes to one helpdesk inbox, to which all of us have access. Jonathan is the main operator of this, and he answers what he can without bothering me. Any customer queries that have a technical edge are forwarded on to me, I remedy their problems, and then I implement extra functionality to combat the common technical issues that keep cropping up (proactive fire fighting, if there can be such a thing).

When outsourcing any work always ascertain where the freelancers are actually from – never assume, like I did

Many weeks ago Leon outsourced the creation of the marketing site, and I had to liaise with the freelancer to coordinate the migration of the WordPress assets onto our web host. We communicated via Skype messaging, and his written English was no worse than the average standard of the UK populous, so it never occurred to me that he was a foreigner; I assumed it was just some bloke that Leon already knew.

When my outsourcing buddy commented that the web host “wasn’t too good” I was baffled. He was referring to the speed of the FTP connection, which for me was blazingly fast; it’s an Irish web host, so in internet terms right on my doorstep. It was at this point that I spotted the tiny writing at the top of the Skype window: the freelancer, Waheed, was talking to me from Islamabad in Pakistan…and upon this discovery several things fell into place in my mind.

In an earlier conversation I had used the phrase “okey dokey” – which replaces “yes, that’s fine” in my vocabulary. Since I’d typed those words Waheed had begun using them at the start of every exchange we had, and other than being a little whimsical I hadn’t found this especially unusual. It was only after I discovered where he was situated that I realised he had assumed “okey dokey” was some kind of English salutation, and he had immediately started using it in place of “hello” in our conversations: “Okey dokey Drew, how are things?”

From that point on I heavily sanitised my messages; anything that was in the least bid idiomatic I replaced with the most vanilla English I could muster, which was painful. At one point I almost sent a message containing the phrase “done and dusted”, which I swiftly spotted and removed: I can’t begin to imagine how a non-native English speaker would interpret that expression. As for the connection speed thing: it turns out Pakistan has fatter internet pipes to the United States than Europe, meaning all the Pakistani freelancers I’ve come across use GoDaddy, which I do not.

Most publicity is good publicity

Haters are, inevitably, gonna hate. We were initially removing disparaging comments from the company’s Facebook and YouTube presences, expunging the usual melodramatic nonsense, such as: “Why aren’t you giving this away for free!?” and “Money greedy bastards”.

But after our first week we had a change of tack, and started to heed the advice of a colleague who’s also in the elearning biz; now we’re leaving the comments well alone. Every last remark, every tweet and retweet, no matter how insulting, is a discussion of our product: the more you have, the more people see, and the more people see, the more customers come to us. If people are going to hate the product they’ll hate it regardless of what other people are saying, and conversely if people are going to like it then the haters won’t convince them otherwise. By leaving all comments in play, both negative and positive, we’re slowly filling the internet with discussions about us.

Free-loaders never pay. Forget them

People who make a habit of consuming web content for free will never pay for stuff, period. Don’t try too hard to market to them in an attempt to encourage upgrades to paid plans, because 99% of them will never pay for stuff (I know this because I’m one of those free-loaders, and it’s difficult to make money off tightwads like me).

Sherlock your analytics

By following the flow of the acquisition funnel through the marketing site we discovered that a typical visitor’s journey began on the home page, followed by a swift navigation to the pricing page, then finally to the registration page or away from the site. We had a massive drop-out rate from the pricing page, higher than should be expected, so we deduced that we’d priced far too high. After one week we took a gamble and reduced our prices, making sure to refund our prior sign-ups in line with the changes. Since then we’ve had an upsurge in registrations.

Test your traction channels

In our case:

  • Google Adwords isn’t effective for us at all, with an 80% bounce rate
  • Radio adverts have been utterly pointless, with zero referrals
  • Flyers have been reasonably useless
  • Newspaper adverts have gone practically unseen
  • Facebook advertising is working a treat

Following these broader methods we’re now purely targeting the Facebook ads and social sharing, and I’d like to give a spot of Twitter advertising a try. We continue to burrow into our Facebook referral demographics, but so far our conclusions are: children Like stuff, parents Share it. For us, targeting a mix of the two is the answer.