Engineering in the age of AI
Hello fellow humans, robots and cyborgs. In this article I will cover how AI affects professional software engineering in 3 sub-topics (remember these are my opinions).
For the record, this wasn't written with AI.
How AI impacts software engineering as a job
It's true that our work has changed and in many ways for the better. First of all, no more typing out repetitive boilerplate code by hand, that's a big win for our fingertips. Second, we can ask for specific advice, code reviews and architecture patterns that we might not find on Google. And third, we can spin up a passable MVP in minutes (RIP that industry) - it's never been easier to have a side project!
Now, let's dive into the challenges that come alongside these benefits. I'll start with a story: In 2018 I built an OAuth2.0 service over a few weeks in an internship. Today as an intern I could just read the spec and get the code from ChatGPT in a few minutes. So what's the problem? Well, I learned a lot about software engineering building that OAuth service. Not just regarding OAuth but how to write professional code, get feedback from team members, separate concerns and architect microservices. AI is fantastic at speeding up our processes but we have to remember that learning takes time.
Another result of AI-enhanced development is a shift from "how" to build and more "what" and "why" to build. We still need specialist engineering skills but more engineers are putting on their product hats and asking business questions alongside engineering ones. Personally, coming from product-startup background, I'm a fan of this but it is a recognisable shift that blurs the line between product and engineering. I am certain we will see more "fake" engineers digging their own graves with vibe-coding tools. The challenge will be balancing product-thinking, an AI-forward attitude and core engineering skills.
Ultimately, I think the goalposts have moved for many engineers, especially those early in their careers. The first principles of software engineering, team collaboration and system architecture will be less "learned-on-the-job" going forward and become a larger part of institutional programs (looking at you, outdated university courses). You won't get a job from a great app you built when everyone can now generate those apps. And of course, you'll need experience building AI features and using AI tools.
Overall, I would say the benefits outweigh the cons here. We can adapt and move forward collaboratively with the tremendous productivity gains AI has given us.
How AI impacts software engineering teams and businesses
Let me say this: siloing engineers into specific coding languages or tools is no longer an effective management stlye. Hear me out. Concepts of software engineering are highly transferable and experienced engineers already hop around languages very effectively. Sure, there may be a bit of mental gymnastics involved in remembering which keyword defines a variable, the naming conventions of that variable and if language X's CLI has a builtin test runner. But, you pick the right tool for the job and you role with it. With AI this is not just easier, it's a piece of cake (assuming you know which tools to use).
For example, recently I wrote some embedded C++ for smart farm sensors that needed to communicate with a TypeScript server. I am familiar with C++ from uni but I don't write it often. I don't know the popular libraries or tools in use but I do know the syntax, memory management system and compilation process. So, what did I do? I wrote a mock class in TypeScript, fed that to ChatGPT and got it translated into C++. After a little debugging, testing and tweaking I had it - a perfectly good embedded sensor system with networking.
This doesn't just apply to side projects though, this is industry-level! Need a Ruby expert to update a WordPress site? Why not?! It sounds a bit crazy but assuming your engineer understands the core concepts of WordPress (which they could learn with AI) this should not be a problem for them. This is a huge win for businesses and engineers alike, more access to talent, more access to work - win win!
Coming back to the previous section's point on wearing the product hat, I think we can see the same theme here. Teams can collaborate and work more cross-functionally with AI. Engineers can jump into eachothers codebases, challenge assumptions in the product and spin up internal tools for marketing and operations more easily than ever before. AI is making business less segmented and more colaborative. Is this a good thing? I think that depends on your preferences. Some people will still prefer the deep specialist route while others will enjoy switching contexts more. Teams will have to decide how they see themselves and their management style.
How AI impacts the larger technology landscape and beyond
The big existential conclusion. Is this where I mention the sustainability issues of AI? Remember when people said a Google search wasted a spoonful of fresh water? Mmm... hard to imagine a recursive text-generation algorithm with billions of parameters being more water-efficient than an indexed tree search (even if that tree is almost as large as the internet itself). But this is humanity, we march ever-forward and we solve problems as we create more of them. Let's not call it doomsday yet. Perhaps the optimists are right and AI will actually help us solve problems faster than we can create them.
Anyone paying attention will have seen the explosion in startups trying to bring novel, AI-powered, solutions to market. Some of these are undeniably promising, others perhaps less so, it is a boom after all. But we can enjoy discovering, learning and building new opportunities with AI - all while surfing a wave of change in the eye of the storm.
One thing is for certain, the best models will be closed-source and the cost of using them will go up as we get more dependent on them. It would bring me so much joy to see an open-source revolution in this space and some accountability from producers and users alike in their use of resources and energy. This is the only missing piece of the AI era.
And to conclude with a final note, I have heard talk of studies proving that AI use is correlated with reduced brain function. To this I would say OBVIOUSLY! If you want to master a programming language you should look at every AI-generated piece of code in your codebase as a shortcut, and as we already know from smartphones, industrialised agriculture and cars, every shortcut has a price. Be mindful of that.
Hey, try writing an article without AI once in a while ;)
Thanks for reading!