I'm just a Software Engineer, I talk to Claude more than my wife
I started off this essay with "3 optimizations that one can make to become a better software engineer in the age of AI". A cliche but extraordinarily important topic for a bored ass Software Engineer that talks to LLM's all day. To not get rid of that work here were my three:
- Excruciating descriptive variable and file names (grep, grep, grep)
- Access to all infrastructure tools.
- Get rid of the UX, the API and the CLI is king.
Nevertheless, the more I wrote about it, the more I circled back on an idea that has been floating around in my head for months now that I haven't made concrete. My philosophy professor (shoutout Brian Talbot) famously said you're ideas are always bullshit unless you can write them down and critique them, so here's my attempt at laying out what I think is an existential crisis and opportunity for the Software Engineer.
The IDE Will Disappear
There's some point in time where the IDE will no longer be a thing. Visual Studio will become abstracted away like assembly and memory management. The engineer will be an expert conversationalist with a bot behind a screen. The bot starts at the higher level and it digs it's way down to bytes where the real work gets done.
I agree with Elon here, soon enough LLM's will be able to write faster code in bits than in python, to such an extent that the coder doesn't have to develop techniques to optimize the agent's performance. It just performs.
The SWET Premise
For the sake of my argument let's assume that most Software engineering, has been a race towards abstraction. Our fundamental purpose is to remove the worry of bytes, up to assembly, up to memory management, up to variable definitions and so on. My argument will rely on that one purpose the SWET premis:
Software Engineers Telos is to abstract towards simplified coding mechanisms.
What does that mean? Am I, the all mighty Software Engineer, my shoulder's hunched over my keyboard, my eyes droopy, who once moved worlds, moving towards my impotence? There's something I want to bring forward here, that may bring hope to the question. It may also lay light on the teleology of the Software Engineer whose purpose seems to be contradictory for their own existence.
A Self-Terminating Telos
Most telos are self-sustaining. The knife's telos is to cut. The chair's telos is to be sat on (my furniture design friend will disagree with me here @oscar). But the engineer's telos is interesting because it is "self-terminating". The engineer's purpose (the SWET premise) is fulfilled, and accordingly terminated, once, and only once, the engineer becomes unnecessary. Scary.
Climbing the Ladder
So we have the code. Now what? The IDE was a way of putting bits together to purport a function. We worked in that IDE till the function was perfect, had no bugs (probably never happened). The IDE was the labor warehouse, the same way a carpenter made a chair in their workshop. The agent will soon own that space. This was the first rung in the ladder.
So now we own the carpenter (the agent, sorry for the metaphors), and we tell the carpenter who needs the chair, why, and what it should look like. We are now one rung above the previous rung. We match the desire to the natural language, the agent matches the natural language to the code.
I believe, and I think a lot of people do as well, that agents will soon take over the second rung. They will be able to guess what we want and build it. Then all we are left with is the want. And that's where we seemingly fall off the ladder.
A Question for My Kids
I'm writing this because I'm scared for human autonomy. And my interest in Plato is ever increasing. Desire used to be filled with autonomy. We want money, we figure out how to get it. We want pizza, we find the best spot in town through iteration. There was freedom there, taste, and excitement. What if it won't be like that here soon? What exactly are we optimizing for? This is a question for my kids, not me. I will not be awake in these times, I think lol.