I'm currently a senior research software engineer at a large company and am being offered a "senior staff engineer" position somewhere else. I am not sure if the new position's title conveys a sideways move or an advancement.

So, all other things being roughly equal (salary, domain of expertise, etc.), what is the external difference between these software engineer titles (in general and regardless of any particular company, if possible):

  • senior engineer
  • senior research engineer
  • senior staff engineer
  • member of technical staff
  • principal engineer

Edit: Let me elaborate on "member of technical staff" since it's kind of uncommon. I think it's a high title, commonly associated with research. I know that Oracle, VMWare, and the old Bell Labs have these titles. See: Member of Technical Staff . I know what it means, but I don't know how it stacks up against the other titles, which is why I asked.

  • 41
    The difference between them seems to be about 10 characters. The meaning of job titles is entirely dependent on the company in question. Commented Feb 10, 2011 at 20:15
  • To clarify GrandmasterB's point here - I'm presently a Senior Software Engineer. I was in my last role too, but the actual job I'm doing couldn't be more different! It really does depend on the company.
    – Steve Hill
    Commented Jan 14, 2012 at 14:38
  • 4
    The important word to look out for is "Junior".
    – user1249
    Commented Mar 7, 2012 at 23:18

7 Answers 7


"So all things being equal" They're not. These titles are not equivalent.

I would rank them like this, highest to lowest:

  • Principal Engineer
  • Senior Staff Engineer
  • Staff Engineer
  • Senior Engineer / Senior Research Engineer

In general, "senior" implies depth of experience and maturity to work independently with less direct guidance in day to day activities. An engineer can expect to receive assignments or tasks and external prioritization. A Senior Engineer should expect to identify and prioritize such tasks for themselves.

A Senior Engineer is typically someone with deep knowledge of a technology or product line and experience with multiple release cycles.

A Senior Research Engineer sounds like someone who is not as involved in production cycles but is more focused on algorithms or long term strategic work.

"Member of the Technical Staff" does not imply any seniority or programming experience. A receptionist can be a Member of the Technical Staff.

A Staff Engineer typically has deep experience with and contributes to multiple technologies and product lines across a company.

A Senior Staff Engineer does all the staff engineer stuff, plus works more in a leadership role across multiple product lines or technologies. Senior staff should also be thinking ahead for strategic planning and execution.

A Principal Engineer is often the top of the technical ladder in many companies, or just short of "Technical Fellow" or "Chief Scientist". Principals are also called architects in various fashions. Principal Engineers are responsible for macro scale architecture of a software technology or product line, and providing guidance and oversight to multiple development teams working on different products or technologies to ensure that the technologies interoperate or connect to each other appropriately.

These are my opinions not as an HR manager but as an engineer who as worked in (and helped define) all of these roles.

  • 1
    thanks for the feedback. Regarding "member of technical staff," my understanding (as the original poster of this question) is that it's used to represent a high position, usually in research. The problem is that I don't know how it ranks to the other titles, which is why I asked. See: en.wikipedia.org/wiki/Member_of_Technical_Staff Commented Feb 10, 2011 at 21:09
  • Yes, "member of technical staff" could mean something lofty at some companies, but on its own its very generic and relatively meaningless, conveys no information about the person's role, responsibilities, or scope of influence. If I were hired into a "member of technical staff" situation I would immediately push to rename the group. It's an ambiguous designation, since every programmer is on staff and is technical. If you mean Research Fellow, then say it.
    – dthorpe
    Commented Feb 11, 2011 at 3:10
  • Microsoft has also the title Distinguished Engineer.
    – surfmuggle
    Commented Apr 9, 2016 at 23:19
  • I think before the senior and the normal position, there can be "associate" which is the entry level one. Commented Jan 23, 2017 at 10:50
  • AMD has MTS and Senior MTS, which is higher than eng 3 and eng 4. Sounds like it's company specific.
    – Kit10
    Commented Apr 17, 2018 at 15:06

The only way to know for sure is to get a job description (list of responsibilities, expected skills) for each position. The qualifiers on these titles seem arbitrary and will vary from company to company.


It depends on the company. At United Technologies, the progression is:

  • Associate Engineer
  • Engineer
  • Senior Engineer
  • Staff Engineer
  • Principal Engineer
  • Technical Fellow
  • Senior Technical Fellow

Although the Principal Engineer and Technical Fellow are roughly equivalent.

Outside of a specific company, though, the progression is just:

  • Engineer
  • Senior Engineer
  • Principal Engineer

with perhaps the addition of "Senior Principal Engineer" after that.

  • 10
    I've heard someone refer to anyone in IT as "Those technical fellows..." Commented Feb 10, 2011 at 18:40
  • 2
    I always wanted to sing "For he's a jolly good Fellow" whenever one of them was around... :-D
    – Peter K.
    Commented Feb 10, 2011 at 20:10

The weird "member of technical staff" title actually has ranks in it as well (depending on company). It used to have only two ranks (mts, dmts - distinguished) and both implied you have a Ph.D (or masters with equivalent experience). There actually is a technical title committee (at least in AT&T Labs) that one has to go through to get approved to hold these titles.

The sub ranks are:

  • MTS - entry level (needs masters)
  • SMTS(S for Senior) - entry level for Ph.D researchers, or MTS after about 2 years
  • PMTS(P for Principal) - experienced researcher
  • LMTS(L for Lead) - director level, MTS with at least 12 years of experience.
  • DMTS(D for Distinguished) - executive director level - very few of these are given.

The highest you can get hired into is PMTS, the other two require promotions and both are rare. Engineer titles are given to non research, or people without masters/phd.


At one or two places I worked the order was:

  • member of technical staff (or engineer)
  • senior engineer
  • principal engineer
  • staff engineer (not in your list)
  • senior staff engineer

The key word in senior research engineer is "research". They aren't developing current products or services. Think of the people who develop "concept cars".


Senior Staff Engineer sounds very generic and broad, doesn't have the words "software" or "research" in there.

Be assured you know the domain of expertise is similar to yours, you could easily mistake that job title for someone high up in HR :)


AT&T uses member of technical staff titles. They are assigned to solutions architects that are doing research work, architecture solutions etc. senior research engineer and senior engineer will differ based on company, but obviously research will be primary focus for senior research engineer. senior staff engineer and principal engineer are meaningless titles that will very widely based on industry, company and type of work you will be engaged in. As far as how these titles stack up you will figure that from pay you are offered vs size of the company and what is excepted of you. If I was in your shoes and there is no diff in pay and you are happy where you are why change? risk is there and there is no extra gain? All of these will be paid from $80K to $130K depending on company and city you are in.

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