Take the 2-minute tour ×

I keep seeing job postings as "Java Software Developer III" or "Software Developer II". Is there any official documentation that classifies these distinctions?


locked by ChrisF Aug 5 at 8:16


closed as off-topic by gnat, GlenH7, MichaelT, Ampt, Kilian Foth Aug 1 at 8:25



I my world they mean nothing. In the HR world they mean "we pay more for a title with a bigger number at the end - but not much since we already acknowledge you are better than your peers with a smaller number". –  Machado Aug 15 '12 at 18:21

4 Answers 4

up vote 53 down vote accepted

They are not supposed to be employer specific. Actually they come from the United States Bureau of Labor Statistics, which maintains a database of occupational descriptions. This database has a list of standardized job titles with fairly precise definitions for each one. In many professions, including computer programming, they have several bands based on level of expertise, years of experience, and/or management responsibility... these bands are designated with roman numerals, thus, COMPUTER PROGRAMMER I, COMPUTER PROGRAMMER II, etc. etc.

The BLS descriptions are reasonably rigorous and precise so that they can compare apples to apples. A lot of people use these definitions when they want standard job descriptions and titles, including job listing sites, salary comparison engines like salary.com, and many human resource departments, especially at larger companies.

The official definitions of the five levels of programmer are here. It's too long to quote here but it is by no means random or employer-specific.

On the other hand, in the US, you'll generally find that the best places for programmers to work do not generally rely on US government job descriptions but instead create their own, more meaningful system.

Wow. Just wow. They may not be employer-specific on the US, but in Brazil they sure depends on HR will. –  Machado Aug 15 '12 at 18:25
Those BLS descriptions for computer programmers and systems analysts appear to have been written in the 1970s and not updated since, as they seem to presume that the only use of computers is for corporate data processing. –  nohat Aug 21 '12 at 1:09
Haha yeah they have "Computer Operator" and refer to cards and tape. –  orange80 Jul 17 '13 at 1:21

They are employer specific defintions.
But generally they are a way to grade developers (for the purpose of salary and seniority).

Each company is different but it will generally look like this:

SD                 Requires no Experience.
SD I               Requires X years in the industry or Degree
SD II              Requires Y years in the industry
SD III             Requires Z years in the industry
Senior SD          Requires Z years in the industry but you are responsible for something
                   But not yet people (For that you would need lead in the name).
After this is gets more vague.  
And varies a lot between companies.

The info below by @Renesis is also solid.

Sad that grading developers has come down to this. –  JP Alioto Jan 19 '11 at 21:26
This is a big red flag for me personally. –  Job Jan 19 '11 at 21:34
I actually speak from experience - I once applied to a large hospital and another similar place. Both were looking for a level 2 programmer or what have you. Both wanted me to submit my resume in some stupid txt format over the web. Both did not call me right away. I am so sick of soul-less corporations. They do everything that Joel Spolsky advises them not to. –  Job Jan 19 '11 at 23:38
@Job: I do seem to be up voting a lot of your comments today. Definitely a sign that the corporation/agency has sufficient posts that you will be Automaton #X, Rank II. If I wanted a rank, I'd join the army. Though I hope my IQ is above my shoe size, so I doubt that's an option. –  Orbling Jan 20 '11 at 0:52
@Job: LOL, none, unless you ever find yourself agreeing with me. ;-) –  Orbling Jan 20 '11 at 20:22

Similar to Martin York's answer but I think the real way these things come about is the need for Finance (and subsequently HR) to define people as a cost.*

  1. When a new SE is needed, the manager will make a request to Finance through HR for a new headcount at particular job level. A better justification will be needed for an SE III than an SE I.

  2. HR/Recruiting will then search for candidates based on the salary range approved and a fuzzy definition of experience associated with that level:

    SE I     Salary in range of A-C  X yrs
    SE II    Salary in range of B-D  Y yrs
    SE III   Salary in range of C-E  Z yrs

    These definitions will also have internal job descriptions associated and the recruiter will try to match those up with the possible candidates' recent experience. (I.E. "Helps in gathering and defining requirements" for an SE II or III)

  3. When the manager who needs the new "headcount" finds a candidate that is suitable, they will be given an offer as SE __ where the title is what the position was approved as.

  4. Down the road, a promotion may also be based on these salary ranges. If the candidate has reached the top of the range but still needs a raise, and the manager wants to keep them, they may get a title promotion along with the raise simply to justify the raise to Finance.

Because of this, you may have two developers in the same company with similar skillsets and different titles. It all has to do with what roles were approved for hiring.

It also means that these titles don't mean much (if anything) when comparing two different companies.

* As to how these are actually get created within a company, it seems like the usual process is that as a company grows, the Finance department feels the need to impose stricter salary guidelines on each department. HR is tasked to define these roles, research comparable salaries and ranges (to also find out if they are already overpaying), and then HR asks for input from the department on actual definitions.

I was part of a company that began this process at around 7 years old and 150 employees. I left but now I am part of a company that already has this implemented. Interestingly, the company I am now at (public company) even has a number that can be used to equate and compare levels across all roles in the company, in every department. Talk about job role being defined to death! It is all borne out of Finance and HR.

And some management don't really know or understand what their techno-geeks actually do so they rely on this kind if stuff to let them mentally pigeon-hole people. It's formalised in things like the Hay Grade system and similar. –  quickly_now Jan 20 '11 at 0:19
we have cross-departments levels where I work too, and indeed each level equates to a salary range. However the "level" is not publicized outside, since it has no meaning for an external. –  Matthieu M. Jan 20 '11 at 18:36
Thanks, that makes sense. I guess it's just better to look at the job requirements and not worry about it. –  Greg H Jan 20 '11 at 21:32
Of course, the main problem here is that there are lots of additional costs that are hidden. Assuming Level I is the cheaper, less experienced level then the head count cost is initially low, but the overall cost might be higher then Level II since a Level II could do the work quicker, with less errors and less mentoring, all of which are costs that aren't taken into account by the bean counters as they are very intangible and hard to calculate. –  Skizz Jul 27 '11 at 10:09
"A better justification will be needed for an SE III than an SE I." And that's just the wrong way around, really. Why is a better justification needed for employing a better programmer than for employing a worse one? And the bean counters wonder why we only shake our heads about them. –  sbi Nov 1 '11 at 14:48

A lot of places have something called "bands." Higher bands represent more senior positions, where "senior" can be do to more/better education, more experience, more skilled, or more politically connected. The titles go like this:

  • I - Junior Engineer
  • II - Engineer
  • III - Senior Engineer
  • IV - Principle Engineer
  • V - Fellow or Advisory Engineer
  • VI - Consulting Engineer

New hires are generally I or II depending on education. People generally hit III relatively quickly, and tend to stay in there for a while. The majority people never make it past IV. V requires publications and recommendations from both senior management and senior technical staff. VI notionally requires a national or international recognition.

The significance of IV and V tend to vary widely from department to department. Some places V is used as an alternative to a manager title while the person is assuming a management-like role. It also depends on the sophistication of work done by the department. Ironically, being in a department that does more advanced work or has better people can significantly lessen chances of advancement, because there are rough quotas for how a department should be distributed. In some departments a V will be far less skilled than a newly minted III or even a II from another department.

Wow, that sounds strikingly familiar. Sigh. –  Nate Jan 20 '11 at 5:20
I think there's a standard somewhere. I know our HR department subscribes to a database the consolidates salary info. Normalized titles make it easy to look up "a person with this title in this region with this education and experience should get paid this amount." Never mind the extreme inconsistency within the company, much less among companies. –  Erik Engbrecht Jan 20 '11 at 20:42
