Reflections on Software Engineering in the Age of AI

diamondap1 pts0 comments

Software Engineering in the Age of AI

Software Engineering in the Age of AI

June 28, 2026

For those of you who don’t know, when I’m not writing novels, I spend my days as a software engineer, writing code. The software industry these days relies heavily on artificial intelligence. Because it has studied trillions of lines of publicly accessible source code, because code solves problems with testable right and wrong solutions, and because code is structured specifically to be understood by computers, AI has gotten very good at writing code.

Before programmers started using AI, a typical workflow looked like this:

Someone asks you to add a feature to an existing program.

You write up a formal definition of that feature describing what it should (and should not) do, how users can access it and how to test that it’s working correctly.

You spend time researching which data structures, algorithms, code libraries and external services might serve best to implement this feature.

You write the code to build the new feature, the tests to make sure it works as expected, and the documentation telling users how to use it and telling other engineers what they’ll need to know to maintain and debug it.

You create a “pull request,” asking other engineers in your organization to review and comment on your new code, and ultimately to approve it for use in the product.

Now that AI can consistently produce pretty good code, the software developer’s workflow looks like this:

You write a prompt asking AI to create the new feature.

You review what the AI wrote, making changes as you see fit or asking the AI agent to make those changes for you.

You either merge the new code into the existing codebase yourself, or you create a pull request for someone else to review and merge it.

In the old workflow, the creative process happened mostly in your mind. In the new process, you supervise the creative process that unfolds inside the AI’s internal machinations. You’ve put some effort into creating a concise, thoughtful, accurate prompt to get the AI started on its work, but you haven’t done any of the hard thinking you would normally do in writing the code yourself. When you get code back from the AI, you’re essentially acting as an editor because, while AI can write code, it cannot always see the big picture of your project the way you can, and you need to make sure this new code won’t cause problems.

AI does not know whether the code it just added violates some legal requirement to which your product is subject. It does not know if the request it makes to an external system is going to take ten milliseconds or ten minutes to fulfill. It does not know whether the actions of its code will conflict with some new feature that you know your teammates will be adding three weeks from now. It does not know whether the function it just wrote might introduce a new security problem when interacting with another function you wrote last month that handles sensitive information.

A senior developer does know these things, and this is why he or she needs to vet and often correct the AI code that appears to “just work.” To a senior developer, AI is a competent, fast-working junior or mid-level developer that, when properly directed, produces mostly solid work but lacks the institutional knowledge and the deep and broad systems-level knowledge that you have developed over the past twenty years.

Now, let’s back up for a second and make an analogy. Let’s say you’re a writer of historical novels. What does your workflow look like? Probably something like this:

You picture a scene in which two statesmen are arguing outside St. Paul’s Cathedral in London in 1760. You consider what you need to know to write this scene accurately, including clothing, the atmosphere on the street and the political situation.

You crack open a number of books and start taking notes on the following, among other things:

Based on their socioeconomic positions and their roles in society, what would your characters be wearing?

Who else is on the street with them? Vendors? Cabbies in horse-drawn carriages? What did those look like? Were the chimney sweeps out at that time of day? What about prostitutes and law officers?

Who are the primary political figures about whom your characters argue, and what are their positions at the moment?

What historical events from recent weeks or months are relevant, and how will they influence your characters’ argument?

You go back to your writing, weaving the historical facts into a scene that you spin from imagination.

The novelist and the software developer have a lot in common here. In reality, the novelist will have done much of her historical research before she begins writing, just as the software developer already knows from years of prior work which data structures and algorithms and which types of caches...

code rsquo know software writing feature

Related Articles