Saturday, March 7, 2026

Full Circle: How AI Agents Are Bringing Back the Age of the Designer

 In the 1980s, my mother and I represented two different worlds of software development, divided not just by the tasks we performed, but by the very philosophy of how code should come into being. She was a database developer for a corporate giant, practicing a meticulous craft known as Top-Down design. She and her team would spend weeks, sometimes months, living in the realm of diagrams, flowcharts, and structured English. Only when the design was considered complete, perfect, and immutable would they hand it off. It was then passed down the food chain to the "coders"—a term uttered with a subtle, institutional disdain—whose job was simply to transcribe that design into a working program. My job, as a junior firmware engineer, was the polar opposite. I lived in the trenches of C and Assembler, holding a general design in my head while my fingers did the talking. We built from the bottom up, learning what the system needed to be by the act of building it and debugging the inevitable failures.


For decades, the bottom-up, iterative approach won. It became the dogma of agile development, test-driven design, and the very culture of modern programming. We believed that code was truth, and that planning was merely a precursor to the real work of writing and refactoring. But with the recent explosion of sophisticated AI agents, I have watched my own workflow evolve into something unexpectedly familiar. I no longer write code. Instead, I find myself doing something I once associated with my mother’s generation: I design.


My current process is a strange echo of that 1980s corporate structure. I begin in "planning" mode with an AI, hashing out requirements, sketching architectures, and debating edge cases in plain English. I am creating the blueprint. Only when I am satisfied with the plan—when the logic feels sound and the structure is coherent—do I give the AI the green light to go away and do the hard work of translation. It becomes the "coder," turning my design into functional syntax. And then, just like in the old days, the work comes back for review. The code is never perfect. There are bugs, subtle misunderstandings from the planning phase, or logical leaps that looked good on paper but failed in practice. We iterate. We go back to the drawing board.


In this model, I have become my mother. My value is no longer in my dexterity with a specific syntax or my ability to debug a stack overflow at 2 a.m. (though that knowledge certainly helps). My value is now in my ability to design a solution. The AI handles the transcription, the translation of logic into machine language—the very job of the "coders" from a bygone era. The hierarchy has returned, but the roles have shifted. I am now the senior architect; the AI is the junior programmer executing the spec.


We have not just evolved; we have come full circle. The rise of the coder as the central figure of development, which dominated the 90s and 2000s, appears to have been a historical anomaly—a period where the complexity of the machine required humans to speak its language directly. Now that the machine can speak ours, we are free to ascend back to the realm of pure logic and design. The tools have changed—diagrams have become prompts, and flowcharts have become conversation—but the fundamental separation of concerns is back. We are no longer craftspeople shaping every line of code; we are architects describing the building, leaving the bricklaying to the tireless, literal-minded assistants we have built.

These are my thoughts, but written with the help of an AI Agent.

The Ghost in the Machine: Does Programming Language Matter When You're Not the One Programming?

 For decades, the choice of programming language for a project was a decision laden with consequence and controversy. It was a commitment to a particular ecosystem, a talent pool, and a set of performance characteristics. It was the primary tool of the trade, and developers, like master craftspeople, had their favorites—languages whose idioms and paradigms felt like an extension of their own thoughts. But the rise of sophisticated AI agents that can generate, debug, and refactor code on command is fundamentally challenging this dynamic. If the developer is no longer the primary writer of code, but rather the guide and the expert who provides the requirements and veto's the output, does the underlying language the AI spits out still matter?

The immediate, tempting answer is no. If an AI is the one translating human intent into machine-executable logic, the language becomes a mere implementation detail, a ghost in the machine that the developer need never truly see. From this perspective, the developer’s expertise shifts entirely to the abstract: problem decomposition, architectural design, understanding user needs, and verifying that the final product behaves correctly. The "how" is the AI's problem. The language used is as relevant to the developer as the specific alloy of silicon in the CPU—it's a layer of abstraction that has been successfully hidden.

However, this view collapses under the weight of reality. The language still matters profoundly, but for a different set of stakeholders and for a transformed, yet crucial, reason for the developer themselves.

First, the language matters for the execution environment. The choice of language dictates where the code can run. Is it targeting a web browser? Then the AI must generate JavaScript or WebAssembly. Is it for iOS? Then Swift is non-negotiable. Is it for low-latency firmware on a microcontroller? The AI will likely need to produce C or Rust. The developer, in their role as guide, must specify the target, and that target often prescribes a narrow set of possible languages. The language is a constraint of the platform, not a preference of the programmer.

Second, and more critically, the language matters for the non-functional requirements that the developer cares about. The developer may not write the code, but they are responsible for its performance, its security, and its resource consumption. If the project requires maximum performance and memory safety for a systems-level component, the developer must guide the AI away from generating Python or JavaScript and towards a language like Rust or C++. The language is a tool for meeting performance and reliability budgets. The developer’s expertise now lies in knowing which languages are best suited for which tasks and in being able to audit the AI’s work in that language.

Finally, and perhaps most importantly for the developer's long-term role, the language matters for maintainability and debugging. The developer, while not writing the code from scratch, is still the one who must understand, fix, and evolve it. They are the one who must step in when the AI produces a subtle bug, a logic error, or a piece of code that fails in production. In that moment, they are no longer a guide; they are a programmer, staring at a screen full of unfamiliar code. If that code is in a language they don't understand, their ability to diagnose and correct the problem is crippled. They become entirely dependent on the AI to fix itself, a form of "prompt-driven debugging" that can be inefficient and opaque. To effectively collaborate with the AI, the developer must be literate in the language the AI is producing. They need to be able to read the code, spot flaws, and understand the AI's approach to a problem.

In conclusion, the computer language used on a project does still matter, even in an AI-driven development world. Its role has simply transformed. It is no longer the primary language of creation, but it remains the essential language of execution, constraint, and communication. The developer’s favorite language is no longer the tool they use to build, but it is the language in which they must be fluent to guide, audit, and collaborate with their new digital partner. The developer's expertise hasn't moved away from the code; it has moved to a meta-level, where understanding the strengths, weaknesses, and syntax of programming languages is the very skill that allows them to effectively command the ghost in the machine.


It is my thoughts, but written with the help of an AI Agent.