Avoiding The Classic Mid-Level Developer Trap
Richard Donovan
Software Engineering Manager @ OVO | Author of The Modern Software Developer newsletter | Mental Health First Aider
Welcome back to The Modern Software Developer. This month’s issue was inspired by a recent coaching client trying to define their level in the industry. One of their questions was, “How do you define a mid-level developer…?†It’s a good question that led me to think about the role a little deeper, reflect on the 100s of mid-level developers I’ve worked with over the years and produce this issue, “Avoiding The Classic Mid-Level Developer Trapâ€â€¦
Introduction
There are many levels in software development, with the Mid-Level Developer being the most vague. This can lead many developers to fall into what I call The Mid-Level Developer Trap, which can cause them to lose focus, become demotivated, stop learning and growing, and ultimately end up unhappy in their job while just going through the motions, letting life pass them by.
I’ve seen it a lot and done a little bit too…
I’ve worked at almost every level in the industry during my career, and I’ve worked with countless developers, many of them were what we call mid-level.
Of course, not all job titles will include the words mid-level; it is implied by the lack of “Apprenticeâ€, “Juniorâ€, “Seniorâ€, or other such words to that effect.
If your job title is just “Software Developer†or “Software Engineerâ€, you’re mid-level.
But that’s not much of a helpful definition, now is it?
Defining The Mid-Level Developer
Let’s start simple. A Mid-Level Developer has progressed beyond that junior status and hasn’t yet moved to senior status…
Again, probably not that helpful, but we’ve narrowed it down a little.
What does it mean to have progressed beyond junior status? First and foremost, “Junior†will be dropped from your title, but let’s take it a little further.
Progressing beyond junior status suggests that you have acquired some solid experience with your tech stack and are skilled enough to be somewhat self-sufficient. I’m not going to put a number of years on it as I don’t find that useful at all.
You’ve gone through a pretty steep learning curve, and that’s something to be proud of.
You’ll probably still harbour doubts about your abilities and knowledge, but that’s perfectly natural.
Broadly speaking, as a Mid-Level Developer:
???You’ll likely be able to rattle through various features unassisted.
???You’ll probably get a little more opportunity for focused coding.
???You have a greater awareness of the features and capabilities of your current tech stack.
???You can research and find answers to problems you don’t know the answers to.
???You’re confident enough to ask for help when needed, but you’ll already have explored several options.
???You’ve likely picked up a good amount of domain knowledge (although you don’t miraculously go back to junior if you change domain).
On the flip side, you are unlikely to have any significant responsibility.
???You’re probably not leading on projects
???You’re probably not shaping team processes
???You probably aren’t mentoring junior teammates
???You’re probably not contributing significantly to code reviews
???You’re probably not shaping patterns and coding standards for your team
???You’re probably not thinking bigger picture or contributing to architecture decisions
???You’re probably not considering Architecture, Resilience, Observability, Fault Tolerance or Scalability for your application.
And that is ok… you’re a Mid-Level Developer.
The Classic Mid-Level Developer Trap: Complacency and Stagnation
When you don’t recognise the privilege of your Mid-Level Developer role, you might fall into The Mid-Level Developer Trap.
I’ve seen it countless times, and I’ve been there myself.
You have the competence to get on with your job, and you’ve gained enough knowledge about the domain and product that you don’t encounter anything too challenging… You might even think it’s pretty easy…
You don’t have the added responsibility, stress and pressure that comes with more senior roles…
To a certain degree, the pressure is off…
For some developers, this can lead to them sitting back and spinning their wheels. They become complacent and stop learning new skills…
It can go even further; they can stop focusing on personal development and even neglect their health.
Sooner or later, they start to de-skill, and their motivation takes a dive, along with their productivity and morale.
The longer it goes on, the more trapped they feel because they don’t think their skills are up to date to allow them to get another job… and they don’t really want another job because this one is easy…
This can lead to personal and professional stagnation, not to mention poor mental and physical health…
***************
Visit Substack to access the full version of this newsletter...
...and see how to Avoid The Mid-Level Developer Trap.
...And sign up to get future issues sent straight to your inbox ??
Staff Software Engineer
1 年It’s easy to allow other seniors, leads, and architects solve problems and explore new domains. A few things to try as a mid-level developer seeking to advance: 1. Ask to work on your pipeline(s)/deployments. This is not always the most fun thing to do but it is a key piece of software delivery. 2. Ask for ownership over a small domain and execute. Follow the ideas outlined in this post such as knowing to try a few things and reach out soon enough if you require assistance. 3. Ask to shadow a code review here and there. 4. Improve your communication. This one was a biggie for me. Oral and written communication is critical to advancement. Learn to communicate with technical (tech lingo) and non-technical individuals (normal lingo). 5. Make a suggestion. It can be intimidating to make an architectural suggestion. You may be wrong. However, the soon you think in terms of trade-offs the sooner you think like an architect.
Richard Donovan any helps for senior level developers?
Principal Product Manager @ Dell | Managed Services and Cloud Product Management | Author of Product Management IRL
1 å¹´This article is good advice for anyone that wants to contribute more. Taking the steps here will increase your value and energize your work. Thank you Richard!
Web developer | Php | Laravel | Javascript | ReactJS | VueJS | jQuery | Npm | Webpack | Mysql | Adaptable | Quick learner | Can do attitude | Problem solver | Persistence | Resilience | Collaborator | Lifelong learner
1 å¹´Richard Donovan?It's easy to teach juniors, adapt to new technologies and learn new concepts but it requires supportive environment + having confidence in yourself + time management + being curious.
Founder, Video Game Studio
1 å¹´Calling all my [former] fellow contractors, who take one from each column! ??