What is a mid-level developer to you?
Photo credit Pexels.com, attribution isn't required but they are rad.
Story time. I had a recruiter reach out to me yesterday for the first time in ~9 months. After some conversation (possibly including self-assessment and salary topics) he admitted he had been passing over my name for mid-level positions, thinking I still considered myself to be junior. He suggested that I have another "tech assessment" phone call, implying "how much could have really changed?" when I feel he didn't really know me when we talked the first time around. (Not counting the degree I've been doing this ~4 years now.)
This got me wondering, how would a recruiter define the difference vs. how would a developer define the difference? without diving into unhealthy comparisons,
- Where do you draw your arbitrary line in the sand?
- Are there specific experiences you expect someone to have had before they can claim to be a mid-level developer?
- Are there specific languages/frameworks they must know or certain concepts they should be able to explain off-hand?
UPDATE: I did have that tech assessment, and I felt really good about it! As my final question I asked what a mid-level dev was to the interviewer, and the things he mentioned were all things I do day-to-day. Some examples he gave:
- Works with little to no supervision
- Is always learning and improving
- Does the work and documents as they go
- Knows when to reach out for help
- Helps more junior team members
Top comments (20)
Recruiters look at volumes of profiles/résumés and not all recruiters have a technical sense but they do look for patterns on how to categorize developers into different tiers.
They may have not dug deep into questions on the phone because they've already put you in a box based on your existing profile/résumé.
I'm looking at your LinkedIn Profile and I would peg you for a junior show no growth with the last 3 years of experience because:
I certainly have my own checklist of what I want to see for an intermediate developer which could be its own article.
Well this comment was a sad read =(
I've been at the same company since I graduated uni in 2012. We have some "levels" of programmer/analyst, but I feel like they don't really equate to anything meaningful, so I haven't updated my resume to reflect that... especially since I've been assigned to, developed and maintained, the same projects since I've started.
The best thing you can do to combat this obstacle is by producing high-quality tech posts, build your social proof and/or contribute to open source projects.
So for example, if you volunteer your personal time on DEV.to codebase it could be possible for you to become a core contributor with enough time put in.
Look at what @rhymes and @lightalloy are doing in terms of DEV.to open-source contribution, if you have the time but not the opportunity to secure jobs because you're in a small town its the best thing you can do.
Thanks Andrew! I know open-source/publicized projects are a priority to some, but I've never heard a lack of job-hopping marked as a downside. I would be interested to read your own checklist, and thanks for taking the time. You did some digging, and you were clear with your feedback.
I could certainly update my profile with the progression of projects I've worked, even if they haven't come with a change in title or company. Without giving away client names or NDA prohibited details, I would like to compile some metrics such as number of projects contributed to, New Relic incidents claimed/resolved, people/departments trained, and if appropriate (or even available) the amount my company has billed for my dev work and how that has increased with time.
You may already understand what I meant but figured I'd throw an image here and show in greater detail.
You can see career progression two ways, leaving a company for a better title.
Another is seeing progression within that company. Here is a good example of progression within 3 years for Toronto
If I were in San Fran I would consider job title progression to occurs as soon as every 3 months up to 3 times, so we see a serious jump in 9 months to a year.
You are in Salt Lake City so I'm not sure if this is local recruitment for your area or you are looking for jobs elsewhere in states. I can really only tell you how it is for recruitment for these big city tech hubs though I think the advice is applicable anywhere.
You can all those metrics, Not sure how much they will help honestly.
That checklist article is on my todo list.
What exactly is a "small-town stack?" (never heard that one before)
Small towns tend to not be as progressive. So, for example, I am in Toronto which is a big city. We see current methodologies being utilized and developers constantly pushing to learn to stay competitive.
A small town commonly use tech stacks beyond 15 years.
So you'll see them using the following:
There's more too it but is the best I can describe for now
I doubt many recruiters would have a strong sense of this.
The lines are arbitrary. I’d say a mid level developer is capable of thinking a bit more big picture, outside the framework context and generally be able to find problems to solve as well as be given problems to solve.
But it is all very arbitrary. I’ve been in the position in the past where I was told “we really were looking for someone with more experience... but you really did well in the interview, so here’s the offer”
There may be some other helpful advice in this older post of mine:
Embrace How Random the Programming Interview Is
Ben Halpern ・ 3 min read
This topic is ripe for multiple view points, I hope others weigh in.
While this may have a local bias (germany), i think you overestimate
If they look for "mid level", "full stack" whatever, they do so because that's the word their client used. If they have a good feeling, and you say you are, they check the box. And the feeling does not have to do anything with you actually beeing something, but with how presentable you are. They fear beeing embarassed, so a con man is better for them than a shy nerd.
It is totally irrelevant where I or anyone else draws the line for "mid level", "experienced", "creative", the interesting thing is, what the client thinks. If the client HAD a clear definition, the recruiter would have it, too. But it looks like he hasn't, so you can expect the client to don't know it either.
Your only way to find out is to actually HAVE an interview, and until then, given that nobody cares to provide clear definitions, it's totally fair to answer
"can you do X" with "yes, probably"
"on a scale from 0-10, how good are you" with "7"
Don't fall into the trap we nerds often do to rate yourself compared to the platonic ideal of "best". They don't need someone who wins fields medals. They need someone to code/architect/lead the team of a scrum app or equivalent.
You're probably qualified.
For me you are mid level if you can complete tasks on your own, and your code regularly ends up in production. Junior needs someone to hold his/her hand, check and correct their work at every step. If you are not junior you must be mid-level right? Senior would be the next step, where you can mentor other juniors and mids.
😂 😂 😂 Reminds me of recruiters coming to me with job positions that require tons of years working on a piece of technology but it was created just a few years ago.
I really think there is not a lot of good recruiters. Who know on hiring good candidates for a company besides using job description as a checklist.
So ultimately for mid level developer. It might be towards better grasp of overview on what could be done drawing of their previous experience and their soft skills in working with developers.
I know it depends 95% on the company, but IMHO:
After 4 years you're definitely out of the junior-level.
Junior is the time after uni, when you work on real products in actual teams and get to know the tools. One or two years max.
Mid-level means your have real-world project-experience, and are productive in one or more languages/realms/environments. You're able to pick the right tool for the job.
Entry level versus mid level dev expectations are really defined by a company and each might be different so somebody who fits into the mid level competencies defined by one company might fit into entry level at another company and similarly with the definition of senior compared to mid. Generally though I would expect an entry level to have moved to mid at some point between about 18 months to 3 years. If I had an entry level who had been in that role for 4 years I would be looking into why they aren't growing and progressing.
Great perspective. For clarity, I've had 3 positions in the last 4 years 😅
Look up BCS SFIA grades. I know a lot (and have worked for some) that use this scale to determine roughly what skills, experiences each level Dev should have
Thanks! I'll be looking into these.
Happy to help.
Context is what matters here. Java and Spring are heavily used by large FinTech companies but their reason for utilizing Java is different.