20

I'm applying for a full-stack developer job and noticed that the job posting was open to three different experience levels (junior, mid-level, and senior as per the posting). In the posting, the number of required experience years wasn't mentioned.

So, I was wondering on what basis does this level gets calculated, obviously years but how exactly? Assuming 3 years of work experience which level should I apply for?

9
  • 28
    "I started my career as a Software Engineer back in February 2018". Even given my comments on how years of experience are meaningless, you do not have three years of experience. The very worst thing you can do is to lie about it. Commented May 19, 2020 at 10:02
  • 4
    And "full-stack" developer positions are now becoming a red flag for me. They're cramming in at least 3 roles. With all the front-end frameworks and back-end frameworks, I find it is almost 4 positions before I even do anything related to DB access. Throw in Cloud DBs, and NoSQL, and we're talking easily 6-7 roles.
    – Nelson
    Commented May 20, 2020 at 2:38
  • 1
    @Luaan I'm not sure I understand your comment-- are you implying the complexity of the frontend frameworks are too high to be able to cross-train into something else, or that they're not worth using?
    – Damouse
    Commented May 21, 2020 at 0:15
  • 1
    @Damouse They're very worth using, but they are complex enough to be a full-time position all by itself. You cannot realistically understand the nuances of the entire umbrella of JS (now both front-end and back-end with NodeJS), and all 200+ flavors of NoSQL. You can't possibly memorize everything about the entire "full-stack" ecosystem without scrambling things up in your head.
    – Nelson
    Commented May 21, 2020 at 2:14
  • 1
    @Nelson I mean, I know and work with people who can do this. Perhaps their depth is not the same as a specialist of the same ability, but generally they are highly capable across the stack, and that integrated skillset has its own advantages. Perhaps you think its unreasonable to hire for this kind of skillset, but my experience is that these people do exist.
    – Damouse
    Commented May 21, 2020 at 22:32

5 Answers 5

81

on what basis does this level gets calculated, obviously years but how exactly?

I'm going to challenge your assertion here - "years of experience" is in many cases a terrible measure of a developer. I've worked with developers who after 10 years of "experience" are still not much above junior level and still need handholding through their tasks, and conversely I've worked with developers who after a year are taking ownership of tasks and showing more leadership skills than people with significantly more experience.

When I'm hiring, I look at the person in front of me, make a judgement on their skills, how well they fit into the role (both technically and softer skills), what potential I think they have to grow in the future, put all that into a big melting pot and make them an offer at what I think is the appropriate level. How many years they've been working is just about the least important thing I consider.

Considering 3 years of work experience which level should I apply for?

This may be somewhat harsh but if you don't know what level you're at, it's quite probable you're still at a junior level. Unless you know what skills you need to be a more senior developer, you're almost certainly not going to have them - or at the very least, you're not going to be able to convince me in an interview process that you have them.

1
  • 1
    Comments are not for extended discussion; this conversation has been moved to chat.
    – Neo
    Commented May 21, 2020 at 12:24
25

There’s no fixed definition. In general, junior = needs hand holding, mid-level can do things on their own if not too difficult, senior = can handle any problem. So where do see yourself on that scale?

But since there is no fixed definition, you can apply, go to an interview, and see if you match their expectations.

11
  • 8
    "senior = can handle any problem". That's a bit exaggerated. There are many architectural things that will be done as a team rather than alone. And some things are done as teamwork, to make a good design or to finish it by a deadline. And if you think you know everything about everything, you might get your backside burned :) Commented May 19, 2020 at 12:02
  • 10
    @JuhaUntinen: Handling a problem is not the same as solving a problem. A senior should be capable of handling a problem, i.e. either solve it or coordinate with the people who can solve it. Note that in this answer, mediors are listed to do things if not too difficult, which implies seniors are able to approach (= handle, not solve) problems of any difficulty. The interpretation you've taken "handle any problem" to mean is unattainable for any human being at any point (even Superman can't solve any problem, e.g. kryptonite-related matters). Handling any problem would require omnipotence.
    – Flater
    Commented May 19, 2020 at 13:24
  • 6
    @JuhaUntinen, a good senior will be someone aware of their own limitations. It doesn't mean they know how to do everything themselves, it means they will know how to find the person who does and get them involved. Indeed, many things require a team effort. A senior will be the one leading the team.
    – Seth R
    Commented May 19, 2020 at 14:29
  • 6
    Actually I'd say junior="doesn't know what they don't know and liable to make major blunders", mid-level="starting to learn their limitations and to not mess up big-time", and senior="good grasp of their limitations, and knows how to not make big mistakes". There's more to it than that of course, but that's a big part of it. Juniors may be technically awesome, but are pretty big risks which is why they're not usually given a lot of responsibility. Seniors are much lower risk and so are given higher responsibility. That and they hopefully have good soft skills.
    – bob
    Commented May 19, 2020 at 17:51
  • 6
    The other useful definition of a senior is "capable of supervising a junior". Commented May 19, 2020 at 19:03
8

There is no universally applicable definition. But in general it's usually understood like this:

  • Junior: New in the technology. Can only solve basic problems without assistance. Might not yet be aware of all the possibilities the technology has to offer. Might require mentoring to achieve their full potential.
  • Mid-level: Proficient in the technology. Can solve most problems on their own. Is aware of the existence of most possibilities of the technology, but might not be experienced in using every single one. Can improve their knowledge without requiring a mentor.
  • Senior: High level of experience in the technology. When they can not find a solution to a problem, then it's very likely unsolvable. Doesn't just know which possibilities the technology offers, but also has the knowledge to make good decisions when to use which. Can mentor other developers.
5
  • 5
    I think it's a bit more subtle than "X level of experience in the technology" - I'd be prepared to hire an experienced C# developer into a Kotlin role (or vice-versa), particularly if they've got some experience with other languages as well, as they'll likely be able to pick up another language without too much difficulty. A C developer for a Haskell role is obviously a much bigger jump. Commented May 19, 2020 at 17:03
  • @PhilipKendall That's where a senior person doing the interviewing understands that "the technology" is a much broader scope than just the language you're programming in.
    – Graham
    Commented May 19, 2020 at 19:59
  • I somewhat agree with this answer, but have the feeling there's a leap between Junior and Mid-level. I mean, I definitely don't qualify as a mid-level developer since I'm not proficient in a technology per se, but I don't need much mentoring either.
    – Clockwork
    Commented May 20, 2020 at 9:55
  • @Clockwork That's why I wrote "might require mentoring". Different people learn in different ways. Some people are good autodidacts, others are good at learning from others.
    – Philipp
    Commented May 20, 2020 at 10:08
  • I like this answer and it applies on my teams. The level of seniority is about a) where you are in the learning/mentoring spectrum; and b) how much you "own" the architecture. i.e. Are you the person someone goes to with either programming or system vision questions.
    – JohnFx
    Commented May 25, 2020 at 22:07
3

TL;DR

Generally you aren't ready to be senior if you haven't worked professionally for at least 5 years. It could take longer, and some people never get there. It's all about when it's no longer a gamble for management to entrust you with responsibility.

What is senior?

Who would you want to be senior if you were in charge? Someone who can handle responsibility in a way that minimizes the risk to you and your organization. After all, senior staff are who you put in charge of people and projects.

It's about responsibility and risk

How do you know someone is low risk? They demonstrate it. They show that they've been in many different difficult situations. They know the game, they know a million ways things can go wrong and how to handle those situations because they've done so. They know when to take risks and when not to. They understand and are skilled at diplomacy, office politics, conflict management, delegation--the soft skills. They've learned all this (usually the hard way), and can demonstrate so conclusively. And so they can demonstrate that they can handle responsibility without undue risk to the organization.

It's not actually about technical skill

None of this necessarily has anything to do with technical skill, though hopefully a senior also has strong technical breadth and depth (however strong delegation can often overcome shortfalls in technical abilities).

A junior is junior because they cannot demonstrate an ability to handle responsibility in a low-risk fashion. They may be a technical super-star. Though unlikely, they could even have all the soft-skills of a senior. But they're unproven. If given responsibility, they're a gamble.

It's not time-in-chair, but the two are often (loosely) correlated

So seniority is demonstrated skill handling responsibility in a low-risk fashion. It is usually correlated with years of experience, but the two are not equivalent. It's having a proven track record that you're someone the company can count on to take on responsibility. That's what a senior is.

Some numbers

Numerically speaking, it's rare to be ready to become senior with less than 5 years total professional experience. The number varies by person and some people never get there, but it typically happens at somewhere between 5 and 10 years total professional experience.

0

There isn't really any way / scale for "experience level" in the "software industry". Why? Because it depends on several factors:

  • the device the software is run on (server, cluster, PC, embedded);
  • the type of software (web related, control of electro-mechanic devices...);
  • the safety level required (not safety related, critical...);
  • the target industry (consumer, medical, automotive, aviation, aerospace, military, chemical...);
  • the company hiring and their internal rules.

Considering 3 years of work experience which level should I apply for?

That is a matter which you choose yourself, but ultimately you negotiate it with the employer. If it is at all possible / allowed, you might even apply for all levels.

2
  • One thing to consider is if you apply for a senior level position and get it without being ready, you're potentially setting yourself up for a major and messy failure. No matter what position you're in you're going to make mistakes (we all do), but senior-level mistakes are much higher-stakes. So you really don't want to be in that position until you're ready for it. So I'm going to counter the final line and suggest only applying for the level that you are actually at. Not sure? Get advice from a senior mentor or your boss (especially important because of the Dunning-Kruger effect).
    – bob
    Commented May 20, 2020 at 17:11
  • (in other words, people who are junior are more likely to over-estimate their actual level because they don't yet know their weaknesses, and so need to rely on an objective outside assessment)
    – bob
    Commented May 20, 2020 at 17:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .