LLMs stole my job, so I'm getting a new one
Congratulations! Whether you realize it or not, you’ve now been promoted to the role of software architect. With the power of LLM’s, we have risen rapidly to working on higher and higher levels of abstraction.
Agentic workflows are now capable of producing far more code than even the most senior of developers. Their ability to reason, deduce problems, and come up with solutions far out paces ours. They are still not perfect, but we’re living on an exponential cliff. In a short 3 or 6 months, they might be - or close enough that it won’t matter. Where does that leave the field of software developers? Especially the class of software engineers who love to wrestle with difficult technical challenges, or unravel the puzzle of a race condition.
Well, there’s a few things which might happen. The birth of the hobbyist programmer; instead of doing it primarily for an income. By-hand programming might become a hobby or past time. Something that’s done purely for it’s own sake. Much like we have artisinal craftsmen. Maybe one day, you’ll see people selling their bespoke non-ai written software - I very much doubt that, but maybe enough people will feel a negative sentiment about how machines have taken their jobs that there will be an appetite for this kind of thing.
The second option, these software engineers move to higher and higher levels of abstraction. One of the highest, before moving completely into the business side, is that of Software Architecture.
Software architecture has taken a back seat in the past few decades with the rise of agile. Anything that has remotely resembled design has been cast aside in favour of shipping quickly. As these systems have grown in complexity, the merits of design are becoming relevant again. We now have a need to embrace technical design. Software engineers who’re recently displaced, may find some comforts in the challenges of designing good architecture.
Good architecture is it’s own type of challenge. It is the synthesis of business value into a technical representation. It is the blueprint for how you will deliver on your promise for your customers. It is understanding the value you’re bringing to the market which is uniquely yours, and the pieces that fit together to deliver on that promise.
Is it important to deliver low latency? High reliability? High consistency? What external systems do you depend on? What frameworks, libraries, languages are best suited to your problem?
These are all the questions a software architect wrestles with. Software architects must be well versed in system design, in problem decomposition, & in various technologies and their inherent tradeoffs. They are different problems than software engineers face, but still interesting, and they still have merits - at least for the next 6 months or so. After that, we’ll see.