Thoughts
What do junior and mid-level engineers really mean nowadays?
· 4 min read
Now it's really hard to find a job for people who have just started their journey.
A definition of a junior: someone who can usually implement a fairly clear feature, but needs more help choosing an approach and understanding what could go wrong. A mid-level engineer usually thinks about it at a higher level of abstraction: what could the feature do? What are the possible ways to build it? How should it be structured?
And nowadays it's really hard for juniors to find their first engineering job. AI can already do much of the implementation work for simple tasks pretty well, so it seems like fewer and fewer companies need juniors.
This is a problem, yep.
But wait a minute... could we consider some of these "juniors" good enough to actually do mid-level work, just based on what they've learned by building with AI agents?
Just think about it. The screenshot below shows some differences between them.

AI can now handle many of the simple implementation tasks listed for juniors (of course, with bugs, but if you asked a person to do it, their code would also have bugs, wouldn't it? :))
And if someone has learned the basics and can now actually design, build, debug, and maintain projects with AI, why should their first job automatically be a junior role (just using these definitions)?
For example, a junior programmer building a project on their own with AI:
- uses AI to explore the project idea and possible ways to build it
- decides which suggestions fit the project and how it should be structured
- decides what belongs in v1 and creates a plan
- builds it, tests it, and investigates what went wrong when it breaks
- understands how things actually work, including the code AI writes
- and then they can go further and work through each stage
An experienced programmer would take less time, drawing on their experience at work. A junior might need more time, but could still build the project. So doesn't that mean some juniors can do mid-level work before they get their first job?
Though even building your own project wouldn't cover all the skills a mid-level engineer might need.
- no idea how they'll work in a team or handle problems with real users
- no experience dealing with real production problems, especially when things go badly wrong. At work, you can run into real production issues that you might never encounter while learning independently.
- soft skills and understanding how things work in a team, including the unwritten rules. Again, sometimes there's no real understanding of the IT field and no experience communicating with a team. How do you discuss problems? What do you do if someone is wrong? How do you stand your ground? How do you reach an agreement? Some skills can't be learned by yourself. You need practice. And you need real people.
- there's a danger of taking the easy way out. Sometimes you don't really learn things, you just ask an agent to produce more slop for you. Without a mentor or colleague to notice this and call you out, it's easier to keep going without really learning.
But to be fair, even before AI, there were people with mid-level titles who didn't really understand things deeply. For example, they could copy code from Stack Overflow without understanding it, too :) Having worked for a few years didn't automatically mean they'd learned a lot.
So how can someone show they're ready for a mid-level role before they've had their first job?
Maybe we need to rethink what we mean by junior, mid-level, senior :) I think these thoughts are quite fair nowadays. What do you think?