For a long time, the answer was, "No jobs are at risk, AI can't compete in any scenarios. At best, it's a tool."
Now the answer is, "Only a few jobs are at risk, AI can only compete in a small range of tasks."
It's possible we're at the beginning of a hockey stick graph.
So what would it look like for AI to make the leap to mid level developer? It would have to understand:
1.) The codebase
2.) The technical requirements (amount of traffic served, latency target)
3.) The parameters (must have code coverage, this team doesn't integration test, must provide a QA plan, all new infrastructure must be in Terraform)
4.) The end goal of some task (e.g. integrate with snail mail provider to send a customer snail mail on checkout attempt if it was denied for credit reasons)
It would then have to make a design based as much as possible on the existing code style and library choices and follow it.
This is all probably possible now, although perhaps not for a general AI or LLM. But someone could build a program leveraging an LLM to provide a decent stab at this for a given language ecosystem.
The hard parts:
Point 2 requires an understanding of performance which is a quantifiable thing, and LLMs up until now have been bad at making math-based inferences.
Point 3 requires the bot to either provide opinions for you (inflexible) or to be very configurable for your team's needs (takes longer to develop).
Point 4 requires a _current_ understanding of libraries, or the ability to search for them and make decisions as to the best ones for the job.
-----
What about extending the above for a senior role? Now the bot has to understand business context, technical debt (does technical debt even exist in a world where bots are doing the programming?), and other "situational factors" and synthesize them into a plan of action, then kick off as many "mid level bot" processes as necessary to execute the plan of action.
The hard parts:
Current LLMs are pretty uninspired when suggesting ideas.
Business context + feature decisions often involve math, which again LLMs aren't great at.