The road to successful software is paved in thousands of little improvements

Image courtesy of

How many times has this happened to you?

A fellow engineer kicks you and your teammates a Git pull request. Opening it up, you see that the pull request is as long and convoluted as a Russian novel. Hundreds of file changes across every slice of the application. Repository refactors, business logic changes in half a dozen app services, namespace moves, files reorganised into new directories. None of them appear to be necessarily related, just things changed in bulk, a cacophony of code rework all conflated under a single feature branch. …

How my life in the punk / messenger scene of 90s San Francisco paved the way for a tale of humanity’s digital addiction

“We were somewhere around Barstow on the edge of the desert when the drugs began to take hold.”

— Fear and Loathing in Las Vegas, Hunter S. Thompson

(While reading this, you might want to go crank up any/all of the following: Flowers by the Door, by TSOL. In the Flat Field, by Bauhaus. Frank’s Wild Years, by Tom Waits. Cherub, by the Butthole Surfers. Where Eagles Dare, by the Misfits. Shut the Door, by Fugazi. The Merry-Go-Round Broke Down, by Jimmie Lunceford Orchestra. And especially Gnossienne 1 and 3 by Erik Satie. If you can manage to crank them…

Focus on the Big Picture and Leave the Details to Those Who Know Better

Photo by Rita Morais on Unsplash

They were debating which UI testing framework we’d use going forward. There were testers and developers talking about our uptake of React in our application (replacing crufty old MVC3), when the subject came up of which testing framework was better. This one does this; that one does that. This one is better for devs; that one is better for testers. There’s more of a learning curve on this one, but that one is not quite as well documented.

On and on it went.

I let them talk themselves out.

In the end, they looked at me for my two…

Getting to know the Buddhist idea of “No-Self”


What is that? What makes me Me? I mean as distinct from everything which isn’t Me. That bay tree, that panda bear, You. What separates Me from everything else?

Where do I leave off and everything which isn’t Me pick up?

Maybe you’ve pondered this, maybe you’ve not. A lot of us take the self for granted. Not that we take ourselves for granted (though this does happen as well), but the fact that we are firmly distinct, unique things which have a boundary between what is “Me” and what is “Everything Else”.

Let’s challenge that preconception.

Waking up to…

Celebrating the weirdos and the misfits of this world

Vincent Van Gogh, a famous freak

So here we are. The day has come that my novel finally goes out to the world. Without hyperbole, I can tell you that it feels like this day would never, ever arrive.


Five years I’ve worked on Screens. Five long years as I’ve chiseled the stone, polished it nigh endless times until the final edits were made, the last change was complete.

And yet at long last it’s done. Check it.

I feel this sense of overwhelming exhaustion, the writer’s equivalent of crossing the finish line of a marathon. …

A Brief History of the Devil

Eugene Delacroix, “Mephistopheles Flying over the City” (1828)

“We have never heard the devil’s side of the story, God wrote all the book.”
― Anatole France

Much to the chagrin of the Almighty and the Angelic Host, the Devil has never managed to go out of style.

Quite the contrary, actually. The Evil One has managed to maintain popularity as a character even in an increasingly secular world. One need not look far in terms of popular culture across the ages to see the Devil comes back again and again as a fictional character.

Some might argue this is a Bad Sign, an ill omen of the faithless…

Lovecraftian fiction is invariably the tale of someone who’s gone ‘too far’

Vision of Terror, by Jorge Jacinto

On the Center and the Periphery

Joseph Campbell once said that most of us stay comfortably at the centre of human society and consciousness, with only scientists, philosophers, and artists willing to stray to the outer edge.

It’s true, of course. Most people do tend to stay closer to shore. People by and large approach anything out on the fringe with mincing, timid steps. New foods, new music, new art, new ideas: these are the things which the mainstream shuns, or at the very least, patently ignores. New is different; it’s uncomfortable and painfully unfamiliar. …

When to be scared of the maniac, and when to recoil from the maniac in you

I’m always looking for great horror. Terror not so much.

I peruse movie sites, book stores, graphic novels, what have you. I dig into the ‘Horror’ section, and am very often left empty-handed.

Why? Is there not enough content? Oh no, there’s plenty upon plenty. Horror is a very popular genre. It hangs tough with action and romance, no doubt about that. Content-wise, there is a plethora of work in the Horror genre.

Is the stuff not scary enough for me? Well, a lot of the time — especially in movies and TV — the “scary” is the usual ghost…

Explain Tech Debt to business people in a way that they can comprehend

Photo by Ehud Neuhaus on Unsplash

It’s funny how often tech debt gets ignored by business people. Not haha funny, but ironically so. It is ironic, because it is such a common problem in software companies that the business / sales / boss types don’t seem to care about tech debt. The responses I’ve heard run the gamut of “We need features, not perfect code,” to “We can fix that another time,” to “that’s a tech thing, not a business problem”, as if we engineers / devs were climate scientists / pandemic experts.

It is a constant source of frustration for devs and engineers that no…

Avoid the common mistake of leaping to implementation before you understand what you’re trying to build

Photo by NeONBRAND on Unsplash


Here’s the situation. I need to build a test harness to verify that when my software sends / receives data to some other system (a system outside my control), the data is not only received, but is in fact the data I expected to have been sent.

Pretty standard test harness stuff, right? The testers say they need this for manual and for automation testing suites. Internal customer need. Great.

So the developer starts rattling off software tools / languages we will use to build this test harness.

Wait, what?

Not so fast, cowpoke

How did we get from a high level need to…

Christopher Laine

Author, programmer, would-be philosopher. Author of Screens

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store