Enable javascript in your browser for better experience. Need to know to enable it? Go here.

Software engineering skills, jobs and careers in the AI era

The impact of AI on organizations has been the most important topic in both business and technology in 2025. However, much of the focus has been on productivity and enablement; far less attention has been given to what AI means for talent, skills and career development. 

 

While this might not be that surprising given these are questions about the long-term rather than the here and now, ignoring these issues will have substantial implications for businesses. If not appropriately and thoughtfully tackled it will create talent and knowledge gaps, make succession planning challenging and undermine even the most robust organizational cultures. 

 

What’s more, those issues aren’t as far off as you think. While it might seem sensible to focus on effectiveness today, taking your eye off the ball when it comes to both existing and future talent makes you vulnerable to what’s coming in the next few years. So, what can be done? This is something we’ve been discussing at length within Thoughtworks. In this article we’ll outline what we see as the core challenges and explore how they can be tackled.

What might the future of software engineering look like?

 

Let’s first begin with the obvious: we can’t predict precisely what software engineering will look like in the years to come. Even today, change is so rapid that making predictions with confidence is unwise, to say the least. However, based on where we are right now and the changes we’ve seen over the last 12 months, we can estimate what kinds of things will be important and how this will influence the overall shape of this kind of work.

 

From building to orchestrating

 

The evolution of AI-assisted software engineering throughout 2025 means we’re now in a place where AI systems are capable of generating relatively complex code in seconds. True, the quality of such code is open to debate, but in any case, this points the way to a world where software engineering work is less about writing code from scratch and more about defining, code reviewing, testing and orchestrating systems. It’s also possible that the impact of AI will be such that the relationship between types of work and types of projects becomes more pronounced. 

 

Think, for instance, about the different ways AI may figure in these different engineering projects and what that might mean for the humans involved in them:

 

  • In early greenfield projects, for instance, we may see code being generated from specs — the developer's role, therefore, moves nearer to roles like product owner and business analyst, insofar as they must consider how to create a technical specification for an AI system to then work with.

  • Evolving AI-generated code may be less feasible for AI tools, and so require developers to have greater oversight and system understanding to manage codebase at this stage.

  • Modernization and code migrations are just starting to be done by AI assistants, so it isn’t difficult to imagine a future where code written in one language can easily be translated to another, with the developer effectively managing that translation/migration process.

  • Legacy modernization, meanwhile, will require a sophisticated approach whereby software developers use AI to understand a codebase, and then collaborate with it to forward engineer a new solution. New tools are being created in the ecosystem to support this and thoughtworks built CodeConcise legacy modernization accelerator to support this back in 2024.

 

In this future, the work of a software developer becomes even more multifaceted than it is today. They’re not simply writing or testing code, nor are they writing stories and then just prompting an AI: they’re more like stewards of systems, accountable for the software’s reliability, performance and value.

 

The age of the “Expert Generalist”

 

Our colleagues Martin Fowler, Unmesh Joshi and Gitanjali Venkatraman recently wrote about the increasing importance of what they call “Expert Generalists”. These are, they explain, people with “knowledge of core concepts and patterns of programming, a knack for decomposing complex work-items into small, testable pieces, and the ability to collaborate with both other programmers and those who will benefit from the software.” This fluency in code and software systems — not simply in writing them, but understanding how they should work and how and why they sometimes fail — are valuable in our AI era. 

 

Many years ago, engineers could truly be “full-stack developers” because the technology stack was much simpler. As the technology landscape exploded in complexity, the industry moved to more specialization because it was near impossible to be truly proficient in all areas of the stack.

 

Now, with the augmentation of AI tools, we see the ability for the pendulum to swing back to more of a true generalist. One engineer we spoke to considered himself an expert backend developer, but with the use of AI tools he could be proficient in frontend development as well.  

 

Attitudes to change

 

The changes we’ve described would be significant. Leaders should expect them to be met with different levels of enthusiasm. Everyone has different motivations and interests; some engineers that enjoy and find fulfillment in writing code may become disengaged as their role becomes one of orchestration. 

 

This requires an open and honest discussion about how developers can adapt and where their skills — and motivations — can be best put to use. To be clear, the message here isn’t adapt or die: it’s about realigning abilities, interests and passions with new forms of work.

Cultivating the technologists of the future

 

What does this changing context mean for the way we develop software engineering talent for the future?  It’s true that younger developers are perhaps more enthusiastic than older cohorts — they’re reportedly using AI more than any other cohort and they're the first generation that we could consider “AI native”.  This has led to concern in some quarters, with one viral blog post from Namanyay Goel in February 2025 provocatively arguing that “young developers can’t code.” 

 

Goel pointed to his experience of seeing junior developers relying on tools like Copilot and Claude Code and fearing that “the foundational knowledge that used to come from struggling through problems is just… missing.” 

 

Goel’s point raises a key issue leaders need to take seriously: how can we ensure future generations of developers are learning the fundamentals of software when AI tools provide such a significant degree of abstraction? Research has indicated that relying on AI can atrophy skills — what do we do if it happens on a generational scale? 

 

Given everything we’ve already discussed about how software engineering may change, and the importance of the “Expert Generalist”, ensuring new developers learn such “foundational knowledge” remains critical. These aren’t the skills that will necessarily help them write lines of code, but they will help them navigate systems and handle AI-generated code with confidence. Leaders have a responsibility to ensure that junior developers are grappling with the fundamentals of the discipline and learning both the skills and the practices that have informed software development for decades. 

 

One element of this is, of course, ensuring AI training does more than just offer skills but also provides individuals with an understanding of the technology’s limitations and risks. Research has also shown that the more people know how AI systems work, the more sceptical they are about it; while it may sound counterintuitive, teaching some level of scepticism is important in ensuring it’s used effectively alongside other skills.

Collaborative learning

 

As important as training is, there’s no substitute for collaborative learning. Having mechanisms in place for mentorship and support and even encouraging regular pairing can go a long way in helping junior developers deepen their understanding of software development. Reading and interpreting code together, for instance, can be an incredibly powerful activity far greater than just the output. Indeed, this will be one of the experienced “Expert Generalists” key contributions to the enterprise of the future: developing the individuals and teams of the future.

 

This isn’t just about technical skill. It’s also about cultivating curiosity and other vital technology skills such as communication and stakeholder management. Most importantly, though, it should be about giving individuals confidence in their own abilities — something which the current valorization of AI can quietly undermine.

Is it time to embrace an apprenticeship model?

 

The challenges younger developers face today makes the potential for an apprenticeship model particularly intriguing. 

 

While junior developers have always learned from working with more senior technologists, there could be additional benefit from introducing a more formal program around it, with learning goals and milestones clearly outlined. Given the challenges of starting in today’s industry, introducing a model in which new developers can learn and work could be powerful. 

 

Of course, such a model may be challenging. There’s a culture of auto-didacticism in software engineering. The pace of change, too, makes structuring an apprenticeship difficult. However, as a way of learning the fundamentals of how software engineering can and should be done and how AI does (and does not) fit into our workflows, building an apprenticeship model could be very effective. 

 

Indeed, given questions about accountability and responsibility of engineers around the risks of AI, it’s possible that some form of accreditation could prove helpful. By this we’re referring to more than just certifications: we mean formal qualifications not unlike those in a huge range of other disciplines, including accountancy, medicine and plumbing. Admittedly that is a long way off, and it may be that such an approach doesn’t work for a fast-paced field like software engineering; but in any case, building better mechanisms and processes for developing and supporting junior developers into the industry is going to be vital over the next few years. 

 

Professionalization is often driven by a crisis of authority and accountability: AI is arguably creating exactly that in software engineering today. It’s critical the industry has a response.

Building the future together

 

What’s important in an AI-oriented future is that teams have cultural cohesion. Developers need to support one another by sharing knowledge and experience.

 

It’s up to leaders — technologists and business — to create a culture that leverages different perspectives and backgrounds. They need to implement pathways that will cultivate those starting their careers and to engage those who are more experienced. Just as important, it’s also up to those leaders to send the right messages to their teams; they need to mitigate common fears while also encouraging reflexivity and thoughtfulness. 

 

It’s not just organizational success that’s at stake, it’s the whole discipline of software engineering. And now software has eaten the world, we can’t risk letting it decay.

Reimagine software engineering with AI