Skip to content

Doing Computers

10 min read

Download as Markdown

As far back as I can remember, I never wanted to be a consultant.

I probably learned what a management consultant was when I was an adolescent; and ever since then, they've been the default butt of many, many jokes.

The idea that someone in their early twenties who has potentially never had another job gets brought in to some established org to 'give advice' to multi-decade career professionals always seemed arrogant and absurd.

When several of my peers became consultants, I briefly attempted to grit my teeth and be supportive as they bragged about WFH, doing as little as possible, while their big 4 firm collected thousands a day from critical national service organisations on their behalf. 1

I thought to myself, I could never let myself do that sort of work. I wanted some sort of concrete skill, to ground myself, and in doing so avoid a lifetime of anxiety as any flayed vestiges of a conscience scream for me to solve 1 real problem for 1 real person.

But I needed to do something. I became financially independent well before I left high school, so I was all too familiar with the need to always have money coming in by the time I was a real adult.

After high school, I took a year away from my schooling to get enough of a buffer that I could study while still affording luxuries like meals and shelter. Once I had saved enough, I went to university to become a psychologist.

Many of my friends and colleagues had repeatedly told me that I had a unique skill for listening from an outside perspective and providing some sort of novel analysis. My 19 year old mind figured, practising psychology would be a great life to lean on this skill.

Spending my days trying to help people from an air-conditioned room, plumbing the depths of human emotion. Sure beat sanding and installing floors, or dipping in and out of oblivion while staring at an unchanging spreadsheet. I had some doubts about the field and the industry, but not enough to dissuade me.

In the last semester of my undergrad, with a psych masters program lined up, I unwittingly stumbled into an algorithms class, taught by one Alistair Moffat, a person I credit/blame for what came next. I had programmed before, mostly as a party trick for attention from the opposite gender.

I could not have known I would leave the lecture genuinely shaken2 and with a racing heartbeat3. This was when I discovered I had stumbled and tripped and crossed the event horizon into a career of undeniable dweeb-dom. A few months later, I started a Masters, as my artsy older siblings put it, "doing computers".

Computer Madness

Fast-forward a few years, and I was working as a software engineer. This is where I first faced the hydra of computer madness; repeatedly, the orgs I worked with were more concerned with the technology than the problem the technology could supposedly solve; it was more important to write a feature that depended upon an LLM, than just handle it locally, deterministically, near-permanently, with some good old-fashioned computer code.

In the computer trenches, venture capital paid us to intentionally rip out functionality, make features work less reliably, thousands of times slower, millions of times more computationally expensive, to "make them AI-enabled". Or to migrate services to "AWS" because "big players use AWS". We were asked to delete tests from our code (not comment out, delete), because they would slow down our applications at runtime. That we 'didn't have time' for documentation, or specs, or user stories, and that if we wanted to know the requirements, we should "just ask AI". You can't move fast enough and break things hard enough if you spend time thinking.

I have been working now for over a decade. In that time, I have never seen this sort of brazen madness until I worked in software (where I presumed all the smartest people lived and worked). I thought, I must have been very unlucky.

Then I spoke to some of the best Australian engineers I could find, only to hear repeatedly "yeah... just about everywhere is like that here". How could this be? How could we have gotten here?

Complexity Complexity

Why did the parts of the software industry I had rubbed up against seem so mad? My high-level working model was as follows:

The ability to encode and allocate work to computers and away from the relatively expensive human labour is obscenely valuable. So much so, that even when a small minority within the field end up being productive, the return is so strong that they make up for the majority of the field being criminally unproductive.

I sometimes think that people within tech cannot remotely estimate what portion of the global economy is employed, and paid substantive amounts daily, to do painful, rote data manipulations manually.

For example; one person being clever enough to program some janky script one afternoon can justify their salary for a year in the administrative hours it saves. This is the true face of the promised "automation" every investor seeks; janky Python scripts wiping away countless hours of seemingly productive busywork. I believe with certainty that today, there are trillions of dollars of efficiency gains that could be delivered with brief, beginner-level Python scripts, despite all of our additional technological advancement.

The observation that there is some large volume of unrealised efficiency gains to be garnered by directly replacing human manual data manipulations with basic scripting is what led to the oft-derided 'Learn to Code' movement, and later, became fertile grounds for the world's LLM obsession.

Despite this, there are problems that, within technology, are practically solved. We as an industry routinely struggle to implement even basic applications (I'm told it's worse here in Australia). Regularly, people pay six-figure sums (a generous understatement) for software that is frustratingly slow, unreliable, or straight up undelivered.

When I navel-gaze about what a software engineer actually does, my best definition typically lands about as follows: it's a person who observes the complexity of the world, creates a model of some slice of the real world in a format that is easy for computers to manipulate, then gives that model to computers to muddle with to hopefully make life less complex for the humans interacting with the world.

In other terms, we are aiming to manage complexity. Our social and professional responsibility is to encounter a challenge of complexity, say an organisational challenge or business problem, and use our talents to extract away as much complexity as we can, to enable humans with other specialties to solve their own problems more effectively.

The problem is, complexity is a hard problem. It's very hard to communicate complexity. It takes time, thought, conversation, language, not to mention patience, and a humility from all parties involved.

And I'm convinced that when you get to a certain size as a group of humans (say, in a megacorp, or an industry, or a market), it becomes effectively impossible to manage complexity effectively.

Instead, we start doing weird shit. We spawn clone-of-a-clone-of-a-clone products. We have large teams of tech people who can't remotely begin to articulate what they do, because they are on so many layers of abstraction. We inject complexity to signal we, as tech workers, can handle it, or nefariously, as a form of job security. We cannibalise our own tech workers new to the industry, by passing them an absurd list of required technologies, no context of how they fit together nor what problem the technology solves.

Remembering ese-spreadsheet-script.py

Niching harder and harder into the nonsense of the tech world might allow me to secure a job where nobody knows what I do, therefore, nobody can evaluate my performance, therefore, infinite money hacks and low-to-no supervision.

Appealing. But frankly, I'm still riding that high of my first ever working script.

When I was fresh out of high school, I worked as an admin assistant at Australia's largest university. It was my first full time role, and it funded the rent of my first apartment, car, and my later education.

Each day, I was compensated to copy and paste maybe 3000 times, between a spreadsheet and some web app interface. This was my primary duty, and the primary duty of ~6 other full time casual staff. I relied on this job to pay my rent. I was a professional copy paster.

Walter White: "I liked it. I was good at it."

To me, then, programming was practically something I only knew must exist from the fact that I played video games growing up.

But I knew there must be some way to hand off this work to a computer. My manager said "probably, but IT is too busy for small potatoes like this".

So I asked one of the casual staff: "Hey, you, the one with the hair, don't you have a Masters in Computer Science? Do you think we could write something for this?"

He mumbled something about lattices and hashmaps in response, but ultimately he said "yeah, you should check out Python".

Of course, I ignored him and got back to my copy-pasting. About a fortnight later, I checked out Python, and after maybe two riveting evenings, I was able to hack together a script that worked on the first go.

After about a week I had solved all the problems that had created, and in doing so, deployed my first ever piece of production software. I can confidently say this software delivered approximately $2500 AUD worth of daily staff wages in value, and hundreds of admin hours a week. Now, I don't know if you're a student of mathematics, but I can assure you, that was many multiples of my compensation for that role.

But more valuable than that: nothing will ever generate the same satisfaction to me as relegating that task to computer hell. It was so profound, to watch it wipe away a future of RSI for 7 people by scheduling it to run each morning. To tell my mid-forties coworker they will never have to do it again, and watch them slowly grin in disbelief. To know I could do something more, for myself and those around me, than to spam copy/paste.

If all software delivered this sort of value, or at least tried to, I doubt people would be so exhausted whenever they get a tech salesperson trying to push some new SaaS on them.

Why now?

Folks in the startup industry are prepped to answer the dogma of "why now" as a part of their pitch. As a consequence, we're always looking to jam new tech into the wrong places.

Why now? Because we, as an industry, still struggle with multi-decade old technologies.

I started a career of talking to new people and organisations, discovering their real biggest problem, and developing the most minimal, simple system using the most boring technology to solve that problem. Often times, the technology in question is an email, a conversation, or a markdown document. When I need to, I still write programs to make the computer solve problems for me.

Surprisingly, I rarely need to.

For every new organisation I speak with, I get a fresh set of problems. I get to read, voraciously4. On a daily basis, I talk to new people, solve real business problems by listening, well, and providing some novel analysis. Best of all, I get to quote Kent Beck, Rich Hickey, James Bach, Gerald Weinberg...

Rats.

I've become a consultant.

Footnotes

  1. (If you think that the AI companies are expensive, you can actually pay five to six digit dollar sums for single prompt, AI generated slide decks halfheartedly curated by some random 22 year old.) ↩

  2. Watching someone quickly do the math on how long some string count algorithm should take on a HUGE dataset, then counting 'thousands' with their fingers to predict when the program would finish to the T was a level of control over computers I previously never thought possible. ↩

  3. Unfortunately this is not embellished. ↩

  4. My favourite quote from a consultant friend: "Why would I read a book? I've already graduated uni" - quote from person paid exclusively for their brain. ↩