These days it is so easy to make rapid progress—websites in minutes, full apps in hours, whole distributed systems in days—that we software engineers begin to wonder what our job really is.
It surely isn’t writing code anymore, 99% of the time. Is it reviewing code? That seems like a losing battle when we are throwing our slow cognitive machinery against machines that vomit out code day and night. Are we agent curators, shepherds, managers? Are we AI psychologists? Are we all product managers and user researchers in disguise?
It is terrifying to put a hundred thousand lines of code in front of people to judge when I wrote none of them. And sometimes, it is almost hard to remember I actually prompted the machines to do all that work in the first place, amongst 50 other things I prompted the machines to do in the last week alone. And soon enough, the machines will learn to do much of that without prompting. So again, what am I doing here?
The process of software development used to be much slower just a few years ago, and now it happens without much effort on my part. This reminds me of note-taking. I’m not at all advocating for laboring with a pen—quite the opposite in most cases. However, I remember copying my friend’s chemistry notes in high school by hand so I could be sure I would remember all the concepts. And when I first started reading the Memcached source code, I decided to hand-draw a state-transition diagram reflecting the primary request handling logic. Somehow, that mechanical act of transcribing symbols on physical media is akin to building “muscle memory”, only for abstract concepts. While my mind could process the words much faster, taking my time allowed me to absorb the idea much better.
So what does that mean? To me it suggests that there’s still value in throwing myself into the midst of the flurry of information that was generated rather quickly and seemingly effortlessly. Like sitting on the floor in an empty room that I want to renovate, imagining; or mouthing the words of a poem I try to remember by heart, pausing for emphasis. It’s about immersing myself in the problem space, scanning for details that almost feel tangible, or doing a few random walks down rabbit holes to see if any of them turns up as a surprise, knocking on a few places to see if any would come off like a loose tile… wandering, and wondering, about what is and what could be.
The natural reaction to speed is speed, to force is force. But instinctive does not equal right. When speed is abundant, patience can become the more valuable provision. Patience means giving a shit—a commitment to true understanding. After all, it is the one thing I cannot completely offload to AI.
Time has always been the scarce resource. Now more than ever, my values are measured by what I am willing to slow down for. So what about you? What will command not only your acknowledgement but your patience? What do you choose to slow down for and sit with? The answer to those questions matters, because giving a damn will still be worth something.