Devin, the "AI software engineer" from Cognition, is the latest demo to grab headlines and eyeballs. All demos should be taken with a grain of salt, but the launch video looks pretty impressive: Devin has access to a terminal, browser, and IDE; it appears capable of building entire applications from scratch with little-to-no human intervention.
And it's forcing developers to confront the question: will we all be out of a job thanks to AI? As a software engineer, I've been thinking a lot about this question lately. So I want to talk about what challenges we'll face as an industry, and what can do to navigate the threat of AI job displacement.
Jevons Paradox
To understand the potential impact of AI on software jobs, it's useful to consider Jevons Paradox. This economic idea is when technology increases the efficiency of a resource (the energy usage of a single LED bulb), but the lower cost generates more demand, resulting in an overall increase in consumption (the energy usage of a house covered in thousands of LED lights).
We've seen Jevons Paradox, and the related concept of induced demand, play out across different industries. One example is ATMs: first introduced in 1969, they took hold a few decades later and threatened the bank teller's job. Yet by 2010, there were almost twice as many bank tellers as there were in 1970. The increased usage of ATMs contributed to more bank branches, leading to more jobs. This is in stark contrast to, say, travel agents - a job that peaked in the 1990s and has been in decline ever since.
In the case of programming, I'm willing to believe there is an opportunity for the industry to grow as AI gets better, not shrink. For most of the history of software, developing it has been a very high-cost proposition. At first, it was done by governments and research institutions, then well-funded Silicon Valley startups. Today, most companies use software in some way, but comparatively few have programmers on payroll.
But I suspect that many organizations would benefit from custom software - if it was far cheaper to build and maintain. Brick-and-mortar retailers could improve efficiency with custom order and inventory management systems. Non-profits might be able to increase donations with a tailored donor tracking platform. If AI and automation mean more accessible custom software, it could ultimately mean more work for programmers - though likely in a new kind of role.
Three types of demand
Disclaimer: I'm not an economics expert by any means. That said, it's clear this pattern won't hold for all industries - each needs to be evaluated on a case-by-case basis. With services like copywriting or voice acting, I'm less confident that AI will unlock new demand and increase consumption overall. And it's not particularly outlandish to say that we will see job losses in other areas.
Depending on the industry, there seem to be three potential outcomes based on demand.
Inelastic Demand. In some domains, demand is relatively fixed and insensitive to changes in price or supply. Besides travel agents, we no longer employ chimney sweeps or elevator operators. In fields where AI can fully automate the core tasks and demand is inelastic, we may see most/all jobs replaced. However, there may still be niche opportunities for premium, human-provided services.
Elastic Demand, Slow Adaptation. In other cases, demand may be elastic - lower prices boost consumption - but the industry may struggle to adapt to take advantage of this opportunity. This could happen if new roles enabled by AI are too different from existing roles, or if the pace of change is too rapid for workers to keep up. The auto industry has faced challenges like this - software and automation have displaced manufacturing workers who lacked the skills to transition into new roles.
Elastic Demand, Successful Adaptation. The most optimistic scenario is one where demand is elastic, and the industry can leverage AI capabilities. In this case, AI automation leads to lower prices and/or more supply, unlocking significant latent demand. The industry creates new roles and business models that take advantage of this demand, and workers can transition into these new positions through upskilling and support from employers and policymakers. While the transition may still be challenging, the result is growth in both output and employment.
When it comes to software, I believe the third outcome is most likely.
Why I'm not afraid of automation (yet)
Generative AI is not the first technology to threaten the role of programmers. Throughout the history of computing, we've had innovations meant to make coders obsolete - from COBOL, to IDEs, to no-code apps and platforms.
Yet despite these advancements, the role of the programmer has not disappeared. Rather, it has evolved. As lower-level tasks have become automated, programmers have been able to focus on higher-level problems. We generally don't use punch cards or write assembly language by hand today.
Part of the reason programmers still exist is that the hardest part of building effective software isn't writing code. Rather, it's been understanding organizational needs and translating them into machine-readable instructions. That means good communication, problem-solving, and critical thinking - skills our AIs are trying to learn but haven't yet mastered. Yet as these agents improve, software development may evolve from writing code to managing it.
That said, I think generative AI poses some challenges for junior developers. Many entry-level roles handle basic coding tasks that are more susceptible to automation. As GitHub Copilot and Devin become more sophisticated, they may soon obsolete the junior developer role.
This shift could make it harder for new coders to get experience and advance their careers. As a result, you could see a dearth of senior programmers in a few years, once all the juniors have been replaced. I don't know if this is the end of the junior developer, but there are some key questions to grapple with. What new pathways into the industry exist beyond traditional entry-level roles? How can we work with educators to rework Computer Science curricula? As an industry, we'll need to consider how to adapt our training and hiring practices to this new reality.
Coding is dead. Long live coding
Some would argue that it's not even worth learning to code anymore. Jensen Huang, CEO of Nvidia, has even suggested that programming is no longer a vital skill in the age of AI. But I (respectfully) disagree.
While AI will automate many aspects of software, the profession's foundational skills remain as critical as ever. Logical thinking and good systems design are broadly useful, even in other areas. It's everything else - like copy/pasting boilerplate code and debugging missing semicolons - that's gotten far easier with AI. The learning curve is far less steep with the help of AI assistants and teachers. And it's up to us as developers to add this new tool to our toolbox while evolving the industry to continue training and mentoring our juniors.
And on a sentimental note, the joy of programming, at least for me, goes beyond the strict utilitarian value of the code I write. I love the problem-solving aspect of writing code, less so the "reading API docs" aspect. In my hobbies and projects, AI hasn't diminished my passion for coding - it's increased it. Thanks to ChatGPT, I've tackled more ambitious side projects than I would have ever attempted before. That's because I knew I could learn a new framework or API much faster than before.
At the end of the day, even if AI automates the vast majority of software, I still plan on writing code for fun. I'm pretty confident of that - because even now, when AI can automate most newsletters, I'm still here: publishing twice a week, every week.
This was a refreshing and optimistic take, and quite different from a lot of recent posts after Devin's reveal. Especially great to see it from someone who actually knows what they're talking about and has a coding background.
I actually recently left a similar comment about the impact on junior developers and the subsequent impact on the new generation of senior developers that you hint at here. But perhaps the very nature of education and focus around coding will change to support new job roles that may become more relevant in this field.
It's going to be interesting to see how AI actually affects the many industries that it allegedly "KILLED" and "MADE OBSOLETE" several times over in the past year or so.