My North Star
You can’t swing a cat without hitting a software developer in some form of AI crisis these days. Sometimes, the cat even hits me.
A few weeks ago, while chatting with a colleague, they told me they felt lost, mildly depressed. I inquired. They were grieving the loss of their favourite part of software engineering: writing code.
I stopped for a second to reflect. That was not how I was feeling. Sure, I had doubts, I had wondered about my career. And there’s no question I’ve become obsolete when it comes to coding. It was not grief. It was curiosity.
What gets me going, in an era of drastic, daily transformations and a clear feeling of loss in this industry I love?
I figured it out pretty quickly. To me, the tools are changing, but my job’s exploratory nature, the iterative building process, the judgement calls involved, and being part of a team of smart and curious builders, these are all still here.
Here’s what I realized:
LLMs are making software engineers climb one rung up the ladder of abstraction our industry is fundamentally built on.
I recently re-read Programming Sucks. It’s a famous rant about how utterly insane the software industry is. Written in 2014, it’s still current. However corrosive it reads, it is as much a rant as it is a love letter to the craft of actually writing code.
Every programmer occasionally, when nobody’s home, turns off the lights, pours a glass of Scotch, puts on some light German electronica, and opens up a file on their computer. It’s a different file for every programmer. Sometimes they wrote it, sometimes they found it and knew they had to save it. They read over the lines, and weep at their beauty, then the tears turn bitter as they remember the rest of the files and the inevitable collapse of all that is good and true in the world.
— Peter Welch, Programming Sucks
So yeah, programming languages are fun, and I do have my own little comfortable piece of Good Code. More on that later.
For the last three years, I’ve been working at OPEN Regenerative Technologies, a Python and Clojure shop. With Clojure, I got a crash course in functional programming and really, really thought-provoking weird syntax. Take this example:
For a given array of integers, sum the squared even numbers:
# Pythonnumbers = [1, 2, 3, 4, 5]sum(n * n for n in numbers if n % 2 == 0)# Rubynumbers = [1, 2, 3, 4, 5]numbers.select(&:even?).map { |n| n * n }.sum;; Clojure(let [numbers [1 2 3 4 5]] (->> numbers (filter even?) (map #(* % %)) (reduce +)))This is just a quick example of how coding languages can awaken curiosity. Same problem, slightly, or wildly different ways to approach it.
But about a year ago, I stopped coding.
I needed a script to to do some mundane database and filesystem cleanup on a couple of servers. Probably a half day of work. Claude Code did it in 30 minutes, ten of which I spent installing it. I never wrote a line. The result was clean, safe, correct, and had an elegant CLI interface.
It punched me in the face. I had a hard time sleeping that night.
I went from AI sceptic to… still an AI sceptic, just for different reasons (energy consumption, the ethics of model training, what these tools might do to society).
But, I still don’t write code anymore. And I don’t miss it.
Truth be told, I never saw myself as a coding genius (it took me a few more minutes than I dare to acknowledge getting the previous few lines of source code right). I wrote perfectly adequate Javascript, Ruby or Python when the need arose, but I’d never impress my seasoned colleagues with any single language fluency. I was always more about breadth than depth.
How can I not miss such a foundational brick of my career?
In the last decade, I went through hiring interviews where the system design part got me. It was a reasonable expectation from the recruiter, but I had never needed that skillset before. I was focusing on the frontend, or I was learning a new language, was way more important than being able to design YouTube on a whiteboard. So I still kept working, getting other jobs, freelancing, shining in what I was doing and shipping increasingly ambitious and useful features. I never bothered learning system design because I never needed to.
This is not true anymore. LLMs have freed the time and created the need for me to look at larger architectural concepts. To climb the ladder of abstraction. The army of robots accessible at my fingertips did in a year what a decade couldn’t: Make system design essential.
It’s also reawakened my joy of sharing what I learn. Nerdy, niche subjects can make a good engineer better, simply by forcing us to think. How does a transistor actually work? How does combining them into logic gates make a processor? What do a multi-core processor and a distributed fleet of servers have in common?
Then the connections started showing up. I was teaching a mentee why stateless servers and sharded databases scale, while my own multi-threaded code kept choking on shared state. Same lesson, different rungs.
As Joseph Joubert said: Enseigner, c’est apprendre deux fois. (To teach is to learn twice). Two projects this year illustrate that wisdom.
Speeding up frontend calculations on a large dataset. Part of the fix was moving from CSV files to Arrow columnar data, which I had applied somewhat blindly. Preparing to present it sent me back to a data structures book until I could actually explain why it worked.
Building the AI Lane, an agentic software conveyor belt from Jira ticket to ready-to-merge PR. Part of the challenge was ensuring consistent adversarial reviews and delegation to deterministic harnesses instead of the pure goodwill of the agent. Every time I taught someone else to use it, their questions exposed gaps in the design, leading me to dig deeper and iterate.
I barely coded either of them. But they both involved exploring, building experiments, making judgement calls and working with a team of people just as curious as I am. The robots didn’t replace the joy of coding. They freed me to be curious about more.
For me, the file I open, at the end of a day while sipping Scotch (Laphroaig) and listening to light German electronica (Archive, but they are British), contains a piece of Ruby code. But that piece of code itself was never my North Star: the infinite opportunities for curiosity and technical exploration that programming in Ruby gave me, 20 years ago, were. They still are.
As for my colleague: these days they’re spending their time learning about frontend performance and page optimisation, through analysing Chrome flame graphs with the help of Claude. Different rung, same ladder.
If any of this sparked your interest, and you’re in the Vancouver, BC area, I’ll be talking about OPEN Regenerative Technology’s AI-Lane, the software conveyor belt I’ve been working on for the last three months, on October 21st 2026 at Asana’s Vancouver office — how I’m climbing the ladder of abstraction, while following my North Star.