Next year’s growth market: Smart Speaker development

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

It’s officially the last Monday of 2018 – wild! We made it to the end of the year and everything is still more or less intact, who would have guessed?

If you’re looking for a good New Year’s Resolution for 2019, might I suggest learning how to build integrations for smart home speakers?

The smart speaker market reached critical mass in 2018, with around 41 percent of U.S. consumers now owning a voice-activated speaker, up from 21.5 percent in 2017.

Sarah Perez, Techcrunch (link)

What this means in practice is that 41% of American consumers are now on a new platform with big commercial potential, and chances are it’ll continue to grow over the next few years.

In effect, this is a whole new market – the next iteration of the mobile platform/app wars, except there’s a lot less UI overhead.

It also forecast that Alexa would generate $18 billion to $19 billion in total revenue by 2021 — or ~5 percent of Amazon’s revenue — through a combination of device sales, incremental voice shopping sales and other platform revenues.

Sarah Perez, Techcrunch (link)

The magic ultimately comes down to the integrations. Alexa calls them “Skills”, Google calls them “Actions”, but they’re the same thing: Writing conversational dialog that lets end-users engage with your service verbally.

This was the market that Siri was supposed to unlock, but it turns out that people already on their phones are more likely to use their phones to get things done, instead of switching over to a clunky voice interface.

The most simple explanation is that app developers have limited resources, and don’t see the point in supporting Siri when users aren’t demanding it.

Jared Newman, Fast Company (link)

Home speakers are a different story. They’re always on, don’t require you to physically interact with them, and have the effect of enabling any given room with something approaching ambient intelligence – all with purpose-built microphone arrays and optimizations for working in home environments. Basically, for quick commands, they’re going to be more useful to more people.

It already looks like Alexa has taken the lead on revenue potential (it’s backed by a global retail giant, so this is not surprising), but both Alexa and Google Home would be good targets to build for.

Side note: Apple’s HomePod devices are nowhere to be found (5% marketshare), and their SDKs and learning requirements tend to be a lot steeper than Amazon or Google, so if you’re not already in that ecosystem it might not be worth your time to start.

Google’s platform is called Actions, and you can learn more here:

Alexa’s platform is called Skills, their developer site is here:

If you’re new to the world of building conversational interfaces, I strongly suggest starting with the simpler apps:

Google’s Dialogflow:
Voiceflow for Alexa:

This is all within the same problem domain as chatbots (you’re creating conversational flows with voice instead of text), so anything you learn here is going to be easily transferable to other platforms and problems. Well worth your time, in my opinion!

For myself though, I doubt I’ll ever own a smart speaker at home (the creep factor is a bit too much for me), but I might end up building one or two integrations for any products I end up developing.

Are you going to try developing something in this area next year?

The Mother of All Demos

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

Put on your tinfoil hats, we’re going for a ride.

I think James Bridle said it best:

What concerns me is that this is just one aspect of a kind of infrastructural violence being done to all of us, all of the time, and we’re still struggling to find a way to even talk about it, to describe its mechanisms and its actions and its effects.

James Bridle, Something is wrong on the internet

There’s a good few posts I can write about social media and hyper-connectedness, and how it’s having an erosive effect on our collective identities and well-being, but right now I specifically want to talk about serverless architecture.

I’m an active participant on the Indie Hackers forums, and the recent conversation about serverless websites was one I pretty much had to get involved in.

It’s a problem I keep running into – a dynamic that makes me uneasy, in a way that’s hard to pin down. That’s what I’m trying to do in this post right now: give an outline of a problem that I’m sure most people aren’t yet aware of as a problem. With the possible exception of Cory Doctorow and everyone in his orbit, and I’d hate to end up in a world where he was right all along.

Serverless architecture is the hot new thing, haven’t you heard? Absolute magic: You only need to write the bare minimum code to make your business logic work, then upload it into a magic cloud that takes care of putting it on the internet for you. And you don’t even have to pay for the server!

I have the feeling that a lot of relative newcomers to web development over the last few years are excited about this, mostly because it lets you build APIs without actually having to know anything about how APIs work. So long as you can define a NodeJS HTTP Response, you’re good to go – and that’s the sort of stuff that can be taught inside of a day, assuming you never explain the OSI Model, TCP/IP, how browsers actually connect to servers, what a network stack is, what ports are, what networks even are, and so on.

In short, what serverless encourages is bare minimum ability. Only having to learn enough to make a vendor’s specific implementation work, instead of learning any of the principles that underpin it, or whether or not they’re even good designs.

Personally, I’m in favor of learning as much as I can about any given system. I like being able to do new things, and understanding how and why things work, and trying to discern the governing principles beneath them. That’s why I’ve read most of Paul Graham’s essays, I know what a Twelve Factor App is, I understand MVPs in relation to a sales cycle, and I understand the difference between programming and engineering (among other things)

On public forums, this is usually the point where someone will argue that all developers are equal, and that it doesn’t matter if you can only do frontend pages in Javascript and other people can program embedded devices directly in Assembly, everyone deserves to be taken seriously.

Then the conversation turns into a semantic nightmare where the saner voices might suggest that a person’s value as an individual is not tied to their skill in any given field, which then generally collapses into a bunch of name-calling.

The sanest people don’t engage in these conversations in the first place.

As far as I’m concerned, the people who have spent literal decades in the trenches: writing code, making mistakes, and designing the systems that underpin everything else we do (things like the Linux kernel, or the HTML spec, or TCP/IP, or software team principles) generally do have more valuable things to say about how software should be built, vs someone who just got hired at their first frontend job.

That’s generally the point where I get booted out of the conversation for being antagonistic. Try as I might, I cannot fairly equate the skills and experience of a first-timer to someone who literally helped define the field they’re working in.

I’m learning to move on from these situations though.

My approach of late is to try looking at the bigger picture, which right now is best summed up like this:

Microsoft, Google, Facebook and Amazon own and manage a substantial portion of the information that flows through internet, and by extension, the foundations of communication, productivity and trade in the 21st century.

Note: For the purposes of this article I’m ignoring Apple – while they have an enormous market cap and built genre-defining hardware, their walled-garden approach to developing software for those devices might be the thing that ultimately exonerates them.

Each of them has built up an enormous, complicated set of technologies that makes their core businesses work – all of which has been exported to the public market:

  • Microsoft: .NET and Azure
  • Google: Angular and the Google Cloud Platform
  • Facebook: ReactJS and the social graph
  • Amazon: Amazon Web Services

Each tech giant, being American, also exports a particular set of cultural norms. Being a high-performance culture that worships productivity above all else, everything done in service to greater productivity should pass without question, including:

  • Keeping people connected and online all the time
  • Encouraging people to form family bonds in the workplace
  • Defining and projecting values (not just mission or vision) – Google in particular has explicit “Googley Values”
  • Constantly aligning, encouraging and nudging people in their employ to live up to a vision that is ultimately exploitative in the wider market (with the likely exception of Microsoft), and
  • Acting with the default assumption that they’re entitled to do whatever they like with the data entrusted to them by billions of people. Move fast, break things – right, Facebook?

Then there’s the happy tech-skill halo effect, first unearthed by Microsoft. If you export the tools you use within your business and make them available on the open market, anyone who learns how to use them would make excellent technical recruits – without having to significantly invest in training or upskilling anyone to use your systems.

They would also use your tools and products in their own work, further embedding the reach of your paradigms well beyond your own company. Individual open-source developers understand the pull of this all too well (it’s a sure route to power).

Microsoft built .NET to have a framework for Microsoft to build Microsoft products, but by making it available to businesses and developers in general, they got to look like visionaries for making a big set of free tools available – in return for the near-invisible effect of re-shaping developers into capable Microsoft candidates.

Note: Gamers will recognize this. It’s the plot of Mass Effect: An ancient civilization left behind “mass relays“, devices that enable interstellar transport so long as you build your ships to interface with them. And by doing so, it made it much easier to round everyone up during the harvest time, since all technology had been shaped in the image of that prior race.

That’s been amplified (almost inadvertently) over the last 10 years, with people shifting more of their social interactions online. They’re not just tools anymore – they’re communities, with a set of shared personal values that dictate whether or not your conduct is acceptable.

If that sounds crazy, consider that the Contributor Covenant has been imported to over 100’000 open source projects and has been publicly endorsed by major organizations. While the content of the covenant itself is progressive and relatively harmless, the mechanism of establishing a centralized monoculture across the internet is not.

So as of 2018, if you’re a “React Developer”, that’s not really a job title. It’s also not just an expression of which languages or tools you use. It potentially signals membership in, and acceptance of, a certain way of doing things – almost certainly underpinned by the value systems and worldview of a corporation that’s absolutely not acting in your best interests.

If that sounds a bit tinfoil-hatty to you, don’t worry, I hear you. It sounds that way to me too, believe me. Thing is, I’ve been building websites since before Facebook, and something has just started feeling wrong over the last few years.

And I suspect it’s got something to do with the unexpected impact of having the world’s largest technology companies also

  • establish and enforce behavior and personal values among employees and community members while also
  • owning the technical direction of the tools we use to make and share things while also
  • having enormous financial and political power in the largest market on Earth while also
  • not acknowledging any of this impact, instead stating all of the metrics in universally-friendly terms while also
  • making decisions that have widespread negative impacts on people that we’re only now just beginning to understand.

And these are all the companies selling you serverless technology today: A paradigm that further divorces the developer from the computer, abstracting away all the vital parts that, if understood, could be improved on for everyone’s benefit – like how the web has been built up until this point.

Instead, by coercing new generations of developers into paradigms that divorce them from the (relatively) simple act of bringing a basic website online, these companies are pushing us into a future where software development is not a thing you do on your computer in your home: It’s a thing you do on their services, in their languages, with their tools.

At this point I sound exactly like Cory Doctorow and wish this nightmare to end.

This exact paradigm has already proven problematic, with the Electronic Frontier Foundation taking manufacturers to task over things like not being able to update the firmware on your own car. That’s a domain that’s foreign to me, but web development is not, and I’m already dreading the day we wake up to realize that the internet itself exists in the hands of a few large companies.

Maybe we’re already there, I don’t know. I just like to think there’s still enough variety in hosting, languages, tools and approaches, that there will continue to be individual innovation that advances things for all of us.


The title is a reference to the work of Douglas Engelbart. The 9th of December this year marked the 50-year anniversary of The Mother of All Demos – a 1h40m collaborative presentation in which him and a team of engineers built hardware and software that effectively showcased the future.

The video is long and somewhat boring, so it’s more interesting to list out the sort of stuff they covered:

The live demonstration featured the introduction of the computer mouse, video conferencing, teleconferencing, hypertext, word processing, hypermedia, object addressing and dynamic file linking, bootstrapping, and a collaborative real-time editor.

Fifty years ago, a bunch of engineers had thought through the problems that we’re still dealing with in modern-day computing. Even if they had not managed to solve those problems as effectively as we’ve done today, they were at least able to articulate and navigate them.

It’s the example I keep coming back to in conversations about “new problems” in computing: There barely are any, at least not in the domains of communication or productivity. It really helps knowing the history of this stuff, too – you might save yourself a lot of trouble if you learn from the people that tried solving these problems before you.

But then that’s “old”, so it’s automatically discarded as irrelevant, and people move on to the next new shiny thing. A perpetual disregard for history and obsession over disrupting the status quo – an impulse firmly embedded in tech culture by two decades of reckless Silicon Valley gospel.

Black Mirror: Bandersnatch [SPOILERS]

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

All I wanted for Christmas, it turns out, was a new Black Mirror episode. And boy, did they deliver.

(Note: Spoilers ahead, obviously)

I normally don’t do reviews of movies or TV shows – I just watch and enjoy them. This one’s a special occasion though: between the compelling story and the sophisticated framework used to deliver it, I got sucked right in. It’s a proper work of art, really.

Bandersnatch follows a boy (Stefan) developing a game in time for Christmas, based on a choose-your-own-adventure book. The first bit of self-reference: As the viewer, you’re getting to choose your own adventure in this story about a boy building a choose-your-own-adventure game.

Depending on the choices you make, you can end up at a total of 11 endings (that I’ve found). Some of the choices are inconsequential, others are inflection points that you can keep coming back to. All told, it took me a good four hours to explore as much as I did.

Just one part of a massive flowchart

The story itself is something of a departure from Black Mirror’s last few seasons. The recurring theme has always been the dark side of technology, but in Bandersnatch the technology plays a limited role (making it easier to set in the 80’s).

Instead, this is a story about the limitations of choice and free will – a refreshing departure from the season 4 tropes, and a very compelling one at that. Considering the implications of free will vs predestination is a favorite philosophical past time, after all!

The story really contains everything: Nostalgia, callbacks, easter eggs, self-referential humor, man-vs-author, bringing the ARG into the real world, you name it. And then the references to other Black Mirror episodes:

White Bear: The symbol used in the original episode features prominently, as does the theme: The main character trapped in a script written by somebody else, forced to endure a horrible experience for the entertainment of others.

Nosedive, Metalhead: Referenced as games within the story itself.

Playtest: One of the endings is a callback to the entire horror-mansion experience Cooper went through, and the revelation at the end that he was still in the testing room the whole time.

There’s loads of other references and hidden easter eggs: Like the fact that Bandersnatch was an actual game, which failed when the studio went bankrupt in 1984. There’s an implied connection between Tuckersoft and TCKR Systems, the fictional company that ends up producing the crazy technologies in season 3 onwards. One of the endings features a news crawler that’s loaded with headlines from across other episodes.

Picture: Netflix

What fascinates me more than the story though, is the way the story was designed and delivered. Being able to explore multiple outcomes is already quite a feat in itself, especially since they all tie together in some way – so that’s some really good writing and planning.

And then there’s the technical aspect. Not only does the Netflix player need to cache multiple potential outcomes (so that you get a smooth streaming experience regardless of your choices), but I found out that it’s also remembering how many times you’ve been through each choice, which can affect the way the story turns out.

These are all the endings I’ve found. While I’ve taken the trouble to map out all the decisions that lead to them, that would just kill any exploration you might otherwise do on your own – so they’ll stay my secret 😉

Most of the endings are reviews – a TV show in which a presenter critiques the game. Possible outcomes:

  • Zero stars, with the game being “too short”
  • The presenter rattling off a litany of synonyms for how bad it is, with the scene ending abruptly
  • The presenter notes that the developer “gave up halfway through” and “went on autopilot” for the remainder
  • A successful, 5 stars out of 5 review, followed by a cut to a modern-day news broadcast about how the creator of the game was arrested for murder, and the game is being re-built by Colin Ritman’s daughter
  • A 2.5 star rating noting the “grisly backstory”
  • The first “team-based” game from Tuckersoft feels like it was designed by committee.

Then there’s an ending where the game company (Tuckersoft) collapses, with 3 variations:

  • Stefan’s father is dead
  • Stefan’s father and Colin Ritman are dead
  • Stefan’s father and Mohan Thakur are dead

Other endings:

  • Stefan dies without warning, and it turns out most of the story was just a vivid last-moments-before-death dream
  • It turns out Stefan is just an actor on a film set

My other favorite little detail: In all story branches you end up with a documentary about the book’s author. When the documentary starts, there’s a TV ad that plays right before – which ad it is depends on the cereal you choose at the start.

There might still be more endings and variations, but I feel like I’ve explored this one quite enough to be satisfied. If you dive into it, let me know what you think!

#2019 SMART goals

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

As I head into 2019 I want to keep better track of my medium-term goals. There’s a few things I want to get done over the coming year, and right now I’m working out a big-picture broad-strokes plan for 2019.

In my 2018 retrospective I listed the following 4 goals:

  1. Build and launch a SaaS
  2. Blog more
  3. Read more
  4. Develop routines

But of course, I know better than to just have vague, open-ended “goals” – they end up being wishlists that go unfulfilled. So instead, I’m going to reformat them as SMART goals, and then actually measure my progress towards them as 2019 goes on.

(Totally stole this idea from Cory Zue’s 2018 review! Then expanded on it a bunch.)

Goal 1: Build and launch a SaaS

I’ve given this a lot of thought (had to narrow down 16 ideas) but eventually picked one I think is the most relevant: A cloud-based reporting solution for measuring digital marketing effectiveness, aimed at small-to-medium businesses (and possibly white-labeled to agencies).

Yes. There’s a defined set of capabilities the tool needs to have, it’ll go up on a website, and it’ll either operate or not. The specific requirements will evolve as I go, but there’s a clear core function.

Yes. I’ll know whether or not I’ve actually launched the first version, and every element of its success will be measurable.

Yes. Data integration, reporting, APIs, charts and dashboards, KPIs and metrics, and making all of that noise business-relevant is something I have existing knowledge of. I’m not diving into this blind.

Yes. Building this sort of stuff is in line with the bigger picture I have for my future, and it’s pretty much the reason I quit my job in 2018 for, so I’d say it’s quite relevant.

Yes. Looking at my current and anticipated workload, I’m aiming to have the first version of this out by end-February 2019. Chances are I’ll have to work a few nights and weekends to make that happen, but a prototype in that length of time is doable. I’ve built similar solutions before, and usually it takes about 200 hours to get to something good.

Goal 2: Blog more

I’m kinda doing this already, but I need to (and will) keep going.

Yes. There’s a clearly-defined and repeatable action (write a post), and I’ve set a target of at least 3 posts per week for 2019. I’m hoping to exceed that though.

Yes. I can measure whether or not I’ve uploaded enough posts for a given week, and can plan out time to do more of them if necessary.

Yes. I’m not half-bad at writing, and when I’m warmed up I usually have at least one topic to write about, so I should be able to do this.

Yes. I need to write for two reasons: One, to practice writing. Building up the habit will be vital if I one day want to produce lots of training and educational content, and maybe even a novel or two. This is a skill I really need. The other reason is that constant writing over time is a good way to build up an audience, which is another thing I’ll need if I want my SaaS businesses to go anywhere.

Yes. I’ve set a goal per week (3 posts every 7 days), so there are repeatable deadlines to hit.

Goal 3: Read more

If you want to write, you should read. That’s some solid advice that’s followed me around, but my 2018 reading stats are abysmal.

Yes. There’s a well-defined action here, and no shortage of books that cover my range of interests (business, startups, innovation, finance, sci-fi, fantasy).

Yes. I can track my reading habits either via Kindle, or via something like GoodReads. I’m not going to track actual time spent reading (that’s psychotic) but so long as there’s some daily activity on this, I’m happy.

Yes. Not only can I read, I like reading.

Yes. The books will mostly be relevant to my interests, and I need to keep learning if I want to succeed in my 2019 adventure.

Yes. I won’t set a limit for the number of books to read, but I should at least spend some time reading every day. At least 30 minutes, which is not difficult to make time for – I really just have to cut out a bit of Netflix.

Goal 4: Develop routines

This one is admittedly open-ended. I’ve tried consciously developing routines and habits before, but they tend to fail when I get distracted with work, or take on more than I can handle (which has happened a lot these last 6 months, with good reason).

No, but I’m going to revise this until it is. I think the above 3 goals (work on a SaaS, write, read) will need time every day/week anyway, and so carving out that time and being able to rely on it will become the routine in and of itself.

Yes. There’s about a billion habit-forming apps out there, but I already have a very solid, health-driven habit (morning blood sugar and weight readings), so I can just use the same systems to record whether or not I’ve done my 3 things for the day.

Yes. There’s nothing in here that I don’t already do, it’s just about being able to do them predictably and repeatedly.

Yes. Developing good processes is vital if I want this all to go well for me next year, and developing the ability to develop processes is itself a valuable thing to do.

Yes. Every routine needs to be completed at least once per day, so that’ll be pretty easy to measure.

So those are my 2019 goals. At the end of 2019, I plan to refer back to this page and track how well I did against all of them. With any luck, this will help me stay focused through the year.

Late-stage internet

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

Here’s a cheerful thought for you as we head into 2019:

How much of the internet is fake? Studies generally suggest that, year after year, less than 60 percent of web traffic is human; some years, according to some researchers, a healthy majority of it is bot.

Max Read, Intelligencer

That’s from this beautiful rundown on Intelligencer – essentially a laundry list of all the ways in which the Internet has disrupted human connection.

It doesn’t even mention the pre-social media scourge of email spam, which at one point accounted for over 90% of emails sent worldwide. Every platform has its spammers, all eventually learning roughly the same thing: That gaming the system is profitable. But like any single-minded attempt at extracting wealth, it leaves the entire ecosystem in disarray.

Simply put, the web is no longer human. It’s been co-opted by machines, optimized for our most basic impulses, reinforced by the massive accumulation of the resulting wealth. The tech boom has left a wake — empathy, humanity and truth, receding into history.

I wrote that a year ago (here, on Medium) almost hoping that 2018 would signal some sort of reversal of the trend. It was published in the middle of peak blockchain hype, during which I had a great deal of optimism for the way public chains might address the scourge of fake news.

(It hasn’t happened, and now seems less likely than ever)

I first got online in primary school, and the internet has been a massive fixture in my life. It’s where I learned the skills that landed me my first job, it’s where I’ve built a career and relationships that now span decades. I’ve always thought of the internet as a net benefit – that connecting lots of people from all over the world was a fundamentally good thing.

On the longer scale of history though, it was really doomed from the start.

Within the first few weeks of starting my first job, somebody pointed out something that I have since come to accept as a fact: That without porn and advertising, the internet would be a handful of boring websites and productivity tools.

Porn has a unique effect on technology: in that it drives the development and adoption of new things faster than any other drive, which I guess makes sense given that we’re human. If you want to know more about who we are as people (and I kid you not) PornHub’s Insights blog is recommended reading.

It’s the advertising that did us in, though.

For as long as there’s been audiences, there’s been ad sales. For as long as those ads were “external” to us (they existed in a context that let us clearly differentiate reality and advertising), they were mostly harmless.

The TV ads of the 1950’s embodied this, with the content and tone mostly being conversational – not unlike how a salesman would pitch you in person. has a fantastic collection of these. It might amuse you to know that even back in 1954, TVs were sold on size. This RCA Master 21″ TV commercial illustrates it beautifully:


Advertising has changed over the last 50 years, though. Modern ads present a supernatural version of reality: The models are photoshopped, the food is fake, products are sold on emotion and status rather than practical considerations. Here’s an ad from 2017 – see if you can spot the differences.

Which again, is largely fine if you understand that you’re being advertised to – between segments of a TV show, breaks in the news, before a movie, before a YouTube video. Being able to put the information in the proper context is what’s important here – and it’s that exact thing that’s been under attack most recently.

Influencer marketing is my second-least-favorite form of insidious advertising. It’s simple: Gain a loyal following and then subtly promote products without actually promoting them. Just make them part of your “lifestyle” on whatever social platform you’re on, and make sure the purchase links are readily accessible.

It works, too – far more than any other form of marketing.

Influencer marketing definitely has it’s social downsides (among them, collapsing the distinction between identity and brand preferences), but I can’t be too upset at this. This sort of marketing reaches the same demographics as tabloids and daytime TV talk shows – people who are easily influenced and apparently see no downside to that.

My least-least-favorite form of insidious advertising has to be Native Advertising – news and editorial functions incorporating paid content under the guise of being news.

That was in 2014, and the practice hasn’t slowed down at all. It’s at the point now where people cannot distinguish between news, and content designed to provoke a response and rake in ad dollars.

In the final three months of the US presidential campaign, the top-performing fake election news stories on Facebook generated more engagement than the top stories from major news outlets such as the New York TimesWashington PostHuffington Post, NBC News, and others

Craig Silverman, BuzzFeed News (link)

That was in 2016, the year we reached some truly ironic situations: Like a for-profit content site publishing sober analyses on news media consumption patterns. At the same time, public interest in the concept of fake news reached sky-high levels, as it helped put the former host of the Apprentice in the White House (the moment reality finally broke).

You want to know the best part though?

People are basically losing interest in the concept altogether. Fake news is now just another part of daily life – another thing to watch out for, like 419 scammers and encryption ransomware.

This is 2018 now. The internet is awash with fake news, churned out by dodgy operations that capitalize on the weaknesses in anti-fraud algorithms on display markets (like Google AdSense). Any place where content can earn money, people are gaming the algorithms (to terrifying extremes). Social networks, desperate for engagement, are slow to act on containing any of this.

All of it ultimately driven by advertising. Businesses want to reach people, people are spending time online, and so the ad dollars flow.

It might have been better if the internet was just email and porn. At least we wouldn’t be questioning whether or not we share the same reality – an actual problem that surfaced during the Kavanaugh debacle.

There is a state of the world where Kavanaugh assaulted Ford in 1982, and there is a state of the world where he did not. Pick one. Now. And once you’ve picked, you no longer co-exist in the same political reality as someone who picked differently. You are truly – and I mean this in a very literal sense – in different worlds.

Ben Hunt on Epsilon Theory (link)

This is why I think we’ve reached late-stage internet. For the longest time, the internet was an escape – a world that existed beyond the physical world, where the same rules didn’t apply, and people were free to explore and experiment.

Then it crept into the mainstream, with the confluence of incentives from hardware manufacturers, ISPs, news organizations, tech startups and advertisers drove the internet into everyone’s home, then everyone’s pocket.

Personally, I have it down to Obama’s election as the moment the internet went mainstream (he used Twitter to great effect). As soon as anything can be used to wage political war and influence the outcome of a public event, its impact makes it mainstream by definition. Tobias Stone calls it “The Great Cyber War“, and it’s hard to disagree.

And so now we’re here: The internet, a daily reality for most people in the connected world, is a primary mode of engagement. The badly-designed incentives and tradeoffs that put ads everywhere, and encourage malicious actors to skirt the rules for cash, consistently weakens our ability to trust what we read. And then there’s the politics, in which it’s essential that one side hates and fears the other, with well-resourced propaganda machines moving their operations into the most effective theater of operations the world has ever seen.

With any luck, we’ll end up in a future where Twitter bots troll the algorithmic influencers and leave the rest of us alone to get on with the business of being human.

2018 retrospective

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

Image credit: NordWood Themes on Unsplash

It’s been a hell of a year – pretty much like most of the last few years!

Every year, usually between the Christmas and New Year periods (where time stands still) I’ll put some effort into an annual retrospective. Someday, I tell myself, I’ll come back and read some of these, hopefully laughing at the problems that looked so daunting in the past.

The real headline: 2018 was the year I quit full-time employment. It took a 10-year stint (at which I learned much!) and there’s still the ever-so-small chance that all of this falls apart and I have to go back to a full-time job, but for now I’m enjoying the freedoms that come with it.

(And still adjusting to it, 8 months later, really.)

Among other things, I’m trying to blog more. Yes, everyone says that, but I’ve got good reason to: In 2019 I’m starting down the road of product development (the indie hacker dream) and a big part of that is getting comfortable with being public and visible online – something I’ve generally been pretty shy about.

So with that, I need to get a bit more personal on this blog. I’ve written about that before, but the only thing that will actually cure me of this stage-fright is if I start doing it – and this seemed like the ideal opportunity to get some practice in.

January – March

If there was ever a call-to-action, January was it. I’ve been thinking about going out on my own for years, and have occasionally talked about it with friends and family, but it was always with an indefinite time horizon. Somewhere in the future, someday, I’ll take the risk.

By January, things were already heading in that direction at work. I was fortunate to have a long career at a company that I joined in the startup phase, lived with it through the maturity and eventual sale, and I still feel privileged to have done and seen all that I did as a result.

But by end-2017 things were changing in a way that diverged further and further from what I wanted to do with my life, and the likelihood of creating those opportunities were diminishing as the rest of the organization changed. It was inevitable, really – all good things eventually come to an end.

That was all in the back of my mind when my grandmother had an incident, which landed her in hospital for a week. I visited almost every day, and that time spent really put things into context for me. She recovered and was discharged the following week, but it left me to think about a lot – among them, the fact that I was still in a good place to take risks, and the sooner I took charge of things, the better.

In February that culminated in a resignation letter with a two-month notice period (developers are hard to find in South Africa and I still wanted time to figure out what I was going to do). By March, all the financial affairs were in order and I was just running out the clock – writing documentation, doing handovers and last-minute project work.


My last month of full-time employment, and the first month I started figuring out exactly what I was going to do. I had been saving for a few years, and had about 3 months of cash in reserve, but I needed to come up with an actual plan.

I’d be lying if I said I was confident about any of this turning out well. For years, people have told me, asked me, (and at one point actually swore at me) in confusion as to why I hadn’t already struck out on my own. I always told them it wasn’t that easy, I wasn’t ready, and when I was ready I’d do it – but then I never felt ready.

I felt even less ready in February, when I submitted my resignation. If there was anything I was ready for though, it was a drastic change – even if it meant tearing down everything I had built up until that point.

May – August

May was a hard month.

I’ve since learned that there’s a speed to business – it runs in 3-year, 1-year, 3-month and 1-month cycles. Very little happens day-to-day if you’re not actively working, and I’m already a fairly impatient person as it is.

I tried taking the month off, telling myself I needed a break and that I could start working on my business in June. I didn’t listen, though. Every single morning was stressful, and every day I ended up trying to do something – anything – that felt like progress. In truth I was just spinning my wheels.

I did do a lot of reading, though. It turns out there’s an absolute wealth of information on this exact problem (Double your Freelancing, the Indie Hackers forums, etc), and I was soaking up as much of it as I could, just waiting for a chance to use it.

I eventually figured that, worst case scenario, I could go via an existing freelance market and try finding gigs that way. If it meant working really long months for a while, that would still be fine. And if I really couldn’t make it work, I could always just go back to full-time employment – like I said, finding good developers in South Africa is hard.

It was in June that things started to happen. One of my biggest assets, it turns out, was my network and reputation. 10 years of working at company through which many people passed (and got to know me) actually translated into business opportunities.

Mostly it was just a matter of me being available whenever the opportunities came up, and to capitalize on them as quickly (and as well) as I could. By the end of June, two months into this new adventure, I had managed to invoice about 60% of my target monthly revenue.

By July, it was over 100% of target, and by August, with all my NET 30 invoices coming in, I was able to pay my salary entirely from my own revenue for the first time.

That was the actual life-changing moment for me this year – the realization that, all on my own, I was capable of providing a good enough service to paying customers, and earn a living off that.

I still had no idea where I wanted to go with things though, and spent the rest of the year simply taking up as many work opportunities as I could find.

September – November

An entrepreneur is someone who works 80 hours a week for himself so he doesn’t need to work 40 hours a week for someone else.

Unknown Author

These three months were the hardest I’ve worked in years, but also the most fulfilling. For the first time in ages, I was able to bring all of my skills to bear on solving problems – and it felt great doing it.

It was pretty hard work though. The total time spent was well in excess of regular 40-hour workweeks, and that’s before considering all the admin that goes into making the “back office” stuff work. A trial by fire for sure, but right now it’s paying off.


Which brings us to this month, which I had originally anticipated would be quiet, but instead turned into one of the busiest months of the year. I’m still not complaining, though. This year was a big one in terms of personal growth, and that’s the big thing I’ll continue pushing for in 2019, learning an all-new set of skills in sales and marketing.

All of that was just my working life, though. 2018 was also the year I did a few other things:

Sought Therapy

I’ve become a firm believer in therapy. My psychologist had a good take on it: People will spend thousands to maintain their cars and homes, but will refuse to spend hundreds to maintain their hearts and minds.

In my case, there was a lot of anxiety to work through (obviously: I was making a major life choice), but that also cascaded down into a ton of lifestyle and social issues I had to deal with too.

Started a YouTube channel

I quit Twitter because it wasn’t a great place to have longer-form conversations, but that was after the first few episodes of what we’ve called the “Noscript Show”. The irony is not lost on me: We set out to create a tech podcast, but by the second episode it was more interesting to talk about current affairs and social issues, of which only a few are technical.

It’s been a big deal for a bunch of reasons – one of them being my continuing paranoia about putting too much personal stuff out there. It’s been fun to do, though, as a regularly-scheduled event. And there’s always stuff to talk about, which is great.

Co-ran the Helderberg Developer Meetups

If I’m being honest it’s Charl that does most of the organizing (I need to do better in 2019, sorry!). I do have a legitimate excuse in that I quit my job this year and have had to scramble to make ends meet, so I’m hoping that 2019 goes much better.

We meet once per month at a nice spot in Somerset West, and we supply some great snacks!

If you’re interested, the Meetup page is here. Right now I’m planning on delivering a VueJS talk in January – progressive site enhancement in Laravel, with a live demo.

Digital Nomad dry-runs

There’s something appealing about the Digital Nomad lifestyle: The idea of being able to work from anywhere, taking your laptop and business with you to exotic locations. I’ve always thought I might try that out for a year – even on a South African passport, there’s lots of places you can enter for at least a few weeks at a time, and see more of the world while you work.

As it turned out, my living situation was perfect for this. Since I live in Somerset West and have to meet customers in Cape Town every couple of weeks, I started treating them like mini-nomad trips. I’d pack as if I was travelling, and plan to work wherever I Airbnb’d.

It was an informative exercise for sure. 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.

On the flip side though: Just being out travelling was much better for my overall well-being. Even if I only get an average of 2-3 productive hours/day, doing that while being parked in new places, seeing new things, and meeting new people makes it all worthwhile.

By end-2019 I will need to decide what my next year looks like, and I’m hoping to be in a position where I’ve got that flexibility. Before renting a new place, I’ll first try spending a few months travelling about a bit. If all goes well!

Quit social media

Facebook’s just about run out of goodwill with me, and I’ve ended up completely cleaning out my profile. I’ll still keep it (I need access to the developer tools), and I may use it for pure marketing purposes down the road, but as a social network, I’m done.

I quit Twitter too, and right now I’m still on the fence about it. I know I need to build an audience and social media is a good way to do that, but I really prefer the idea of subscriptions and newsletters over the noise that is social media. At best, the integration to WordPress and Medium will stay up, tweeting stuff out to my ~900 (as of today) followers.


So this is the part where I decide on my new year’s resolutions – since on new year’s day itself I’m likely to already be busy trying to make them happen!

1.Build and launch a SaaS

Any size, any MRR, any feature-set, any market: I just need the experience of building, launching, getting customers, and everything involved in making a good SaaS business work. I’ve done a lot of reading up on this subject, and I have a lot of opinions, but they don’t mean anything until I execute.

2. Blog more

For personal as well as professional reasons, I’ll be trying to push a lot more stuff through this blog (mostly personal, insight etc articles) and Medium (mostly technical articles), with some cross-posting to other sites.

The only tangible goal I’m setting at the moment is 3 posts per week, which should be easily attainable given my typical workload.

3. Read more

If you want to write, read. I’ve got a collection of books that I’ve accumulated over 2018 (a mix of business, technical and fiction), which I really need to start reading at some point.

In the absence of the Twitter-storm of constant content, I’ve found myself turning to local news in an attempt to plug the gap, and most of that is noise anyway. So from today onwards, my Kindle stays charged and loaded, and will accompany me wherever I go.

4. Develop routines

Easily my biggest challenge in 2019 will be routines and discipline. If I want any sort of business to work, I need to take a process-driven, methodical approach to things. I have a bad habit of simply diving head-first into things that are interesting in the moment, when the real long-term gains may come from the stuff that is difficult and boring in the moment.

I’ve already addressed this somewhat, with a new approach to capacity planning. Making it work is a whole other story though!

Every now and then I’ll look back and think about what might have been (a bad habit sometimes, but necessary to develop an appreciation for opportunity cost), and I think 2018 panned out in the best possible way, given the options.

I still don’t know exactly where I’m going, but I have a fair idea of how I might get there, and at least enough of a roadmap to get me started. If this year has taught me anything though, the key is to always be prepared. Wishing for a future won’t get you what you want, and life has a tendency to laugh at the most well-laid plans.

Onwards to 2019!