Possible Duplicate:
Whats the difference between Entry Level/Jr/Sr developers?

There seems to be three common java programmer qualification levels:

  • Junior
  • Middle
  • Senior

What makes a programmer "junior", "middle", or "senior"? Does it mean the the programmer has a specific amount of certifications or job expertise? How do IT companies decide what title to give to a programmer?

  • 1
    The problem with your questions is that it is too subjective. Each organization will have different criteria for "ranking".
    – jmq
    Feb 21, 2012 at 19:40
  • 1
    Well, as a sample, I tried to frame my question to Java Developers only because I thought that any organization should know what to expect from Java Developers they want to hire :) So there should be some common orientations but maybe I missed something... :S
    – user592704
    Feb 21, 2012 at 19:52
  • 1
    Related: What does the suffix after software engineer/developer job titles mean? (i.e. Software Developer III) They aren't supposed to be decided willy-nilly.
    – user8
    Feb 21, 2012 at 19:54
  • 2
    I like to compare it to Burger King sandwiches. Junior is small, just basic and tastes good. Middle is the wopper, can do a lot of energy. Senior is the Triple-Whopper. You will be satisfied for a long. Feb 21, 2012 at 20:37
  • 2
    I am going to get a lot of mileage out of that Burger King analogy. :D
    – Dan J
    Feb 21, 2012 at 21:32

3 Answers 3


There will be as many answers to this question as there are programmers. But I judge them this way:

  • A Junior developer will need near-constant help. Not only will they not know the business domain, but they may also struggle with the fundamentals of the language or the toolset. They don't know what they don't know, so without guidance, they will make frequent mistakes which, if not kept on top of, will derail the wider team.
  • A regular Developer has some experience under their belt. They will be independently productive and will be able to tackle most tasks on their own, or understand when they need to reach out for help.
  • A Senior Developer has even more experience and will be able to design solutions as well as completing tasks. However, they may need their proposed designs vetted before they start to implement, as they won't necessarily have an overall architectural vision. They will be able to mentor more junior members of the team.

But you should really head over to this much better answer to see what I ought to have written!

  • ... so Senior developer doesn't make project architecture, right?
    – user592704
    Feb 21, 2012 at 19:27
  • 1
    @user592704 - they could. It depends entirely on the company. There are companies where you're either a developer or a senior developer, but everyone has chances to prove themselves through whatever they're working on. In places with more hierarchy, they usually define certain criteria before someone is considered that level, that or they just go by feeling based on a person's level of work and contributions the company. Places might even have Principals and Architect-specific roles.
    – wkl
    Feb 21, 2012 at 19:56
  • can employee make senior developer being an architect?
    – user592704
    Feb 21, 2012 at 20:29
  • @user592704 - I don't understand that that means. I think generally, an architect is already recognized as an advanced developer.
    – wkl
    Feb 21, 2012 at 20:36
  • I'd expect a Senior Developer to be able to think clearly about Architectural issues. But I wouldn't permit them to make architectural decisions in isolation. Whether they would have to refer to an individual with the title of "Architect" or just to a board of their peers would be a matter for the company in question. Personally, I prefer a board of peers, even if some of those peers have job titles different to "Senior Developer". Feb 22, 2012 at 15:07

You could tie it to the programmer's competency matrix if you want to make it a "harder" metric. Titles are not set in stone; it's all HR speak. Convenient buzzwords to encapsulate characteristics that may not even be precisely defined if they are defined at all.

To tie it to the PCM:

Junior Developer: Rates at least an n^2 in most disciplines. Could rate n or log(n) in a few and can have a few 2^n and still be okay.

Middle Developer: Majority n with a minority of n^2 and as few 2^n as possible. As many log(n)s as possible but will likely still be a minority.

Senior Developer: Majority n with a strong minority or even slight majority in log(n) and as few n^2 and no 2^n.

Legendary: Log(n) in everything possible with a few ns and nothing below that mark.

Specialist: Log(n) in their specializations and experience appropriate otherwise.

Obviously these would be "ideals" for each category. I doubt there are many that would fit the title who would truly measure fully to the standards.

  • 7
    Fascinating link to programmer's competency matrix.
    – B Seven
    Feb 21, 2012 at 21:57
  • One of the most interesting analyses of programming aptitude I've seen; I'm sharing this with some of the other developers on the team.
    – BobMcGee
    Aug 25, 2013 at 16:54

I wish there was a shortcut in here for referencing the Dreyfus Model of Skills Acquisition. I'd say my concepts of Junior Middle and Senior map well to the five stages if you think of each level as a range:

  • Anyone in the Novice or Advanced Beginner stage I would consider Junior.
  • Competent developers are Middle
  • Proficient and Expert would be Senior.

Of course the trick comes in metaknowledge. It's difficult for a person to recognize that someone knows more than he knows. If as a novice developer, I'm assessing another developer's knowledge, I wouldn't be able to assess them as anything more than a Novice (if I could assess them as higher than novice by definition I have enough knowledge to be above novice myself). The other end of the spectrum, it's difficult to assess someone with significantly less skill apropriately. Think of an expert assessing a competent developer. It's easy to say oh well he doesn't understand how to do X...he's obviously a novice.

The only solution is to have people of multiple skill levels assess an individual. At each level, you'll identify that the person is either as competent as me or not. The highest level that you get a positive would be the most accurate assessment. Now there's the problem of how to assess your existing employees ;)

  • quite logical metrics :) But really is there some standard way especially if there so many certifications? How to know the person knows things more or less... is it more easy just to count certificates or portfolio projects? Or It is a common rule to compare developers' levels in some kind of personal quality rate?
    – user592704
    Feb 21, 2012 at 19:44
  • I've interviewed so many developers who look great on paper but couldn't answer the simplest of questions. I actually joke with colleagues that having a certification on your resume is a strike against you. I ask the same questions of all developers so it's unbiased but interestingly not one of the developers I have hired had a certification listed on his resume. (I say his because to date I've never interviewed a female developer). Feb 21, 2012 at 19:55
  • Emm... certification is a bad thing for practical hiring?
    – user592704
    Feb 21, 2012 at 20:02
  • Unfortunately, you can cram for many certifications nowadays. There are some higher level certifications (like the Microsoft Certified Architect and the Java Certs that require more than taking a multiple guess exam) that truly convey knowledge. If someone has a CCIE for example there's no question that they know how to configure a Cisco network. I wouldn't put much weight on most certifications for making a decision. Feb 21, 2012 at 20:18
  • 1
    +1 for the Dreyfus Model of Skills Acquisition. It's a useful conceptual model.
    – neontapir
    Jul 10, 2013 at 19:22

Not the answer you're looking for? Browse other questions tagged or ask your own question.