What are we going to do about junior engineers? 

I don’t know exactly what the journey from junior to senior will look like, we’re committed to figuring it out together

With the growth of LLM code generation and AI we’ve been exploring how junior engineers fit into this new world. What will the role of junior engineers look like? What skills will we need as AI progresses?

We’re always going to need junior engineers – where else do senior engineers come from? – but the mix of skills juniors have traditionally learned, and the order they learn them on the journey to senior, probably does need to change.

With such a fast shifting landscape, the skills needed earlier in a career may change within a year, 2 or 5. That’s the kind of timescale I think about hiring juniors on – how are we going to support the juniors we hire now in becoming seniors in 5 years time?

Skills we’ve got now that we’ll all still need

In terms of the skills still needed, code review seems to be a big one. The ability to review code, spot errors and talk with colleagues about structural and architectural choices. Other necessary skills include the harder to describe sense of “taste” or “technical judgement”, and the more concrete technical architecture and general software engineering concepts such as design patterns.

When hiring, building and growing teams, I’ve always thought the purely syntactic, programming language or framework-specific technical skills are the least important. They’re the easiest to teach and find out by searching reference documentation, and the easiest for AI to help with. 

In both hiring and growing all levels of engineers (and in all disciplines), there are other important skills that are harder to teach. Skills like critical thinking, communication, teaching and mentoring, initiative, resilience, persistence, teamwork and collaboration.

There are also other qualities such as empathy, curiosity, business acumen and commercial awareness. And the ability to see when someone is making an overly complicated Rube Goldberg machine that will be way too hard to understand and expensive to maintain, and steer them kindly and gently back on course.

That’s all just off the top of my head, there’s loads more. None of it is purely “technical”, and AI can’t do most of it (yet).

We’ve all been learning and teaching these skills in the usual ways since forever – via osmosis, training and coaching, line management and exposure to good examples. I don’t think that will change dramatically, hopefully accelerated somehow with new tooling.

Ways we might build skills in the future

I don’t know exactly what the journey from junior to senior will look like, but we’re committed to figuring it out together and supporting developers of all levels. We’ll need to create new opportunities and make sure there’s a seat at the table for learning advanced technical and bigger picture skills. Things like:

We’ll be fleshing out some ideas and keeping an open mind as we go.