The Turning Point

Not that long ago, writing software was an act of invention. I remember the first time I made something move on a screen. A div that slid, a button that changed state, a form that actually sent data somewhere. There was something almost embarrassing about how exciting it felt. The machine responded to something I had imagined. That loop, from idea to instruction to response, felt like a conversation with something new.

It wasn’t just a technical feeling. It was closer to what I imagine early photographers felt when the image appeared in the darkroom. Not magic exactly, but adjacent to it.

That feeling is different now. Not gone, but different.

Software is no longer something we make; it’s something we live inside. It runs everywhere, silently sustaining every small action of the modern world. We unlock our phones, order food, travel, work, pay, communicate, all through a layer of code we no longer see and mostly no longer think about. The infrastructure has become invisible. And when infrastructure becomes invisible, it means it has won. It means it’s done.

We’ve reached a moment where software is no longer a technical frontier but a raw material. Like electricity or concrete, it’s simply part of how the world holds together. And like any material that becomes ubiquitous, it begins to lose its mystery, and with it, the naive romance that drove so many of us into this field in the first place.

The real problem this creates is not technical. It’s existential.

If everything can be built with software, what’s still worth building? And if artificial intelligence can now write the code, what remains of intention? Of creativity? Of thought?

I’ve been sitting with those questions for a while. I don’t think they have clean answers. But I think they’re the right ones to start from.

When the Hard Part Changes

For decades we believed, reasonably, that progress came from writing more and better code. From mastering the craft. The bottleneck was technical: there were only so many people who could build things, and that scarcity gave those people enormous leverage.

But software, in its maturity, has become a commodity. Authentication, payments, databases, deployment pipelines, analytics, interfaces, all of it can be assembled from external services, open-source libraries, or generated by models that have ingested essentially all of the world’s code. The friction has collapsed. What used to take a team and six months can be prototyped in a weekend.

This is, by most measures, good. More people building more things, faster, with less capital, that’s a genuine democratization.

But it also means the hard part has moved.

The hard part is no longer building software. It’s giving it meaning. Anyone with curiosity and an internet connection can now build something functional. What can’t be automated, at least not yet, is judgment. The why behind each decision. The coherence that ties a thousand small choices into something that feels intentional rather than assembled.

I’ve been building products for over twenty years. In that time I’ve watched the value shift: from engineering to product, from product to design, from design to strategy, and now somewhere further upstream still, toward what I’d loosely call wisdom. The ability to look at a space full of possibility and know what not to do.

That’s not a technical skill. It never was.

The Orchestrator

The modern technologist, the one who’ll matter in five years rather than just today, is no longer primarily a coder. They’re someone who orchestrates intelligent systems. Their work is less about commanding machines and more about creating conditions where different kinds of intelligence, human and artificial, can produce something coherent together.

I think about this constantly in my own work. When I’m building now, most of my time isn’t spent writing code. It’s spent designing the systems that write the code: the prompts, the agents, the feedback loops, the constraints. It’s spent deciding what kind of intelligence I want operating in each part of a product, and what I want it to optimize for. It’s spent thinking about failure modes and edge cases, the places where automation breaks down and a human needs to step back in.

Knowing how to use AI is not enough. You have to know how to teach it. Guide it. Evaluate it. Design its limits, its biases, its voice. Those are acts of authorship, not configuration.

The skills that matter now blend engineering, design, and something close to philosophy. You need to understand how a language model reasons, but also how people think and feel. You need to be able to read an error log and read a room. Build an interface and build trust. The line between the technical and the human is dissolving, and the people who can move fluidly between both worlds will define what comes next.

I’ve started describing this to people as the difference between building and directing. A film director doesn’t operate the camera or write the score. But without their vision, none of those contributions cohere into anything with meaning. The new technologists, the ones I want to be and to work alongside, are partly in the business of making meaning. The code is almost beside the point.

The Responsibility Nobody Talks About

Here’s what gets lost in most conversations about AI and software: the ethics aren’t abstract.

Software is no longer neutral. It hasn’t been for a long time, but it was easier to ignore when the scale was smaller. The systems we build shape how people work, how they communicate, how they form opinions, how they understand themselves. Every model we train carries a worldview, a sense of what we value, what we ignore, what we amplify, and what we allow to disappear.

If software has become the cognitive layer of the planet, then those who build it carry a responsibility that goes well beyond shipping features on time. It’s the responsibility to ask: what kind of intelligence are we actually creating? Who does it serve? What does it normalize? What does it make harder to see?

I don’t think most of us in this industry spend enough time with those questions. There’s always a roadmap. Always a sprint. Always a deployment. The urgency of building crowds out the harder work of questioning what we’re building and why.

It’s no longer enough for software to work. It also needs coherence, and yes, beauty. Not beauty as decoration, but beauty as evidence of care. As a signal that someone thought hard about this, refused to take shortcuts, cared what it felt like to be on the receiving end.

Building technology without reflection is like writing without understanding language. You can produce output indefinitely. But the words add up to nothing.

What Remains

I want to be careful not to sound nostalgic. I’m not mourning the era when code was precious. The new tools are extraordinary, and I use them every day.

But there’s something worth naming clearly in this moment, before the hype cycle swallows the nuance.

What remains, what AI cannot generate on its behalf, is the decision about what to build in the first place. The judgment about whether a solution actually fits the problem, or just fits the shape of problems that happened to be in the training data. The sensitivity to notice when a product is technically functional but subtly dehumanizing. The willingness to ask whether the frame itself is wrong.

These are not inefficiencies waiting to be automated. They are the actual work.

The fear I sometimes hear, that AI will make human thinking obsolete, gets it backwards. In a world where generation is cheap and abundant, curation becomes precious. In a world where anything can be built, deciding what should exist becomes the rarest skill. The task isn’t to compete with machines on their terms. It’s to do the things only we can do, and to do them with more care than we did before.

A Beginning

This is where this blog begins.

Between design and engineering, philosophy and practice. Between fascination with what technology can do and the need to understand what it should do. I’ve spent most of my career trying to live in that tension rather than resolve it, and I’ve come to believe the tension itself is productive. It’s where the interesting work tends to live.

I don’t want to write about the future of software as prediction. Predictions are cheap and usually wrong. I want to think through it as it unfolds, with the uncertainty intact. To write about what changes and what doesn’t: thinking, sensitivity, the stubborn human need for meaning in the things we make.

Maybe software has already become a commodity. Maybe the romance is gone. But thinking remains a radical act. And in an era where machines are learning to reason, perhaps the most human thing we can do is refuse to outsource our judgment. To stay curious, stay in the room, and keep asking the hard questions even when the tools make it easy to skip straight to the answers.

Something new is beginning. This is where I’m starting to figure out what it is.