The Rapid Evolution of Software Engineering in the GenAI Era
My GenAI learning journey gets more philosophical by the week.
Diving into a new software technology without established norms, while keeping up with a rapidly evolving release cycle, can make this field feel almost impossible to learn. What you learn today may be obsolete within a month—a drastic reduction from the typical year-long stability we used to expect with both open source and proprietary software. Previously, you learned your framework or SDK updates over the year, used them (or wish you had a reason to), and repeated that cycle again the following year. That paradigm is now constantly changing. How do you build an engineering practice in this environment?
It's nearly impossible to imagine how, as an engineer, you'll be able to do your job in the coming years without leveraging GenAI. You'll need an AI assistant to help keep you up-to-date and informed on software development trends based on your personal preferences and domain, and this completely glosses over the fact that you'll be using a copilot in your day-to-day programming workflows.
This focus on information wrangling is the foundation of my GenAI learning journey. In previous posts, I've talked about trying to define the LLM-backed App Stack I wanted to use, but it's clear we're moving into a world where these stacks are far more dynamic, composable, and adjusted based on the specific business problem a GenAI application aims to solve. You can't throw a predefined stack at these types of applications, that much has become clear.
If I can't learn a predefined stack like before, what does the new approach to application development look like?
Ultimately, That question is what I am working on and it is really baking my noodle. The good news is that I love these types of meta problems and I know where to start now.
The Diminishing Value of Syntax Mastery
The days when a developer could rely on a tutorial or technical article to accomplish a task in a particular language and expect it to stay relevant and useful for months or years are fading fast. Chunks of syntax and example code have less utility now. Coding copilots provide them right out the gate. A focus on memorizing or mastering syntax is likely to have a diminishing value as natural language slowly becomes the next highest level abstracted language in our programming toolbox.
The Shift to Problem-Solving Over Syntax
Engineers who love syntax and semantics will find themselves increasingly vulnerable in the years to come compared to those who thrive on tackling complex problems that require deeper algorithmic and systems thinking. The rise of natural language as an abstract programming interface emphasizes the need for engineers to shift their focus from syntax mastery to more creative problem-solving.
Leveraging GenAI effectively requires learning to interact with various Language and Multimodal Models, each with unique strengths and weaknesses, not unlike working with people with diverse skills and personalities. The rapid evolution of GenAI tools is reshaping the skill set required for software engineers, demanding a combination of technical depth, adaptability, and a preternatural love for continuous learning. From what I am seeing, engineers should prioritize developing skills and workflows that enable effective collaboration with advanced AI tools to remain competitive in the evolving job market over the next couple of years.
Interesting… So Now What?
Next week, I plan to use Google Colab with LangChain's LangGraph as my orchestration layer to experiment with different LLM capabilities in an interactive notebook environment. Colab has Gemini available as a GenAI coding assistant, which will help speed up my learning since it is not an environment I’ve worked with yet (I usually skip the hands-on portions of the tutorials I’ve been watching).
The Meta Meta
My posts will never delve into coding specifics, as the internet is already full of those. Instead, they're about the refactoring of my own coding and architecture skills, including some significant mental rewiring in how I think about software engineering in this new GenAI era.
I also hope that the tools and frameworks I mention along the way could be valuable if you're on your own GenAI learning journey. If nothing else, if you haven't heard of some of the things I talk about, you can go kick the tires on your own.