The death of software engineering (and all other fields)
Subscribe to my newsletter (it's free!)
Over the last few months, AI has been making undeniable leaps. I hadn’t digested news of the Jacobian conjecture being conquered when notifications popped up alerting me that Navier-Stokes had been solved! It felt like we might be in a new era. As if to mark it for certain, earlier this month, a GitHub repo with incredible progress on 700+ math problems - including the untouchable Riemann hypothesis - was released to the world. To me, it was not dissimilar to a massive maple shedding a pithy leaf.
On the software front, where I’m actively involved, I went from manually writing code a year ago to being a glorified button pusher. I try not to be, for what joy is there in button-pushing? And what value is a button-pusher? Ideally, I’d like to deeply understand all the abstractions and details, but that would take time and in that time, the team-next-door would send another hundred code reviews. Okay, so maybe I should just send code reviews. And now I have double the number of abstractions to try and grasp. I am Sisyphus and the ball is growing every day.
What does the future look like?
I’m faced with two paths - there may be more and this may be a false dichotomy, but for now it is only a dilemma to me.
One, I keep pushing the buttons. I say “investigate this” and “fix this” and repeat it ad infinitum into the void, spending all my time trying to make it quicker and easier to repeat those two phrases (with the occasional “build this”).
Two, I push back on the button-pushing and try and deeply understand something. I can’t understand everything - not even everything in my domain - but I can understand something deeply. Last year, I had time to myself and I used that to understand how cluster headaches may work. I think that was very fruitful. I also spent time trying to understand how the Fed works, and how the housing situation might play out. I think those were fruitful too, though possibly to lower degrees.
So, switch jobs?
No. I have thought about it and am well-aware that NLP and art are currently occupying some space in the largest intestines of this machine-being called AI, with room for more. If software finds miserable company, then should I resort to manual labor? Robots are coming for that anyway. Might as well spend time doing what gives me joy - music and, ironically, maybe programming. Was that just a proxy for learning and understanding the world around us?
Are any skills still valuable?
Understanding large systems quickly and context switching well will be skills that hold one in good stead. There are those who say there’s no point as the LLMs understand things better, quicker and deeper than you can. But, I notice that systems still fail. And I see that when systems fail, these skills show their value. Also, you’re competing with the human next to you, not the LLM.
Understanding how to work with AI will help. I mean something very specific here: I don’t think AI is good yet at automating all problems, and a lot of problems can still be solved with code. Leveraging code to remove the non-determinism inherent in LLMs is key to building things that just “work”. With larger systems, that non-determinism adds up and makes things unreliable and an unreliable system needs more maintenance and no one - NO ONE - likes maintaining things.
Lastly, I also think learning how to build reliable systems will still have value. Again, I mean something specific. How will you measure if your system is doing what you want it to? Do you have the right metrics to measure it and are you measuring it, including at a very low level beginning with what models and agents are “good enough”? The people with the best answers to that will win the future.