I've been working in the IT sector as an "associate software developer" for the past two years. While applying for new jobs, I've seen job titles like "software developer", "software programmer" and "software engineer", but the the requirements often seem to be almost identical. Is there any difference between the roles associated with these job titles?

  • 16
    In my experience, the terms mean the same thing and are used interchangeably.
    – aroth
    Commented Aug 11, 2014 at 7:16
  • Sometimes a Programmer has a little bit lower salary than a Developer/Engineer, but it's probably more to do with the company than any common practice. Perhaps to do with less responsibilies, or that the job is more purely coding - no client meetings, requirements gathering, or such - while a developer/engineer might do those activities in addition to coding. Commented Aug 11, 2014 at 11:55
  • 1
    Besides the legal implications, it usually gives away how the company sees people. By extension it is something you could use to get a sense of what the company culture is. Of course this is just an indicator among many others.
    – nha
    Commented Aug 11, 2014 at 12:22
  • 4
    This question appears to be off-topic because it is about terminology. The distinction between these terms is subjective and arbitrary.
    – Jim G.
    Commented Aug 11, 2014 at 12:23
  • also, see programmers.stackexchange.com/q/4951
    – Andrea
    Commented Aug 11, 2014 at 12:29

2 Answers 2


It is possible that a particular company may use those titles to mean different things and to describe different positions within that company.

But I do not believe that there is a clear distinction between them which is common across different companies.

Personally I have had all three of "developer", "programmer" and "engineer" as titles in different jobs involving the programming of software. There was no relationship between the differing titles and the differing work I did at those jobs.

Don't stress the titles too much, just look at the actual requirements and the actual job descriptions.

Edit: as has been pointed out in the comments, the title "Engineer" carries significance in some countries, e.g. Finland (thanks Juha) and Canada (thanks Dogbert). It's not the case where I am (Australia) nor does it appear to be the case in the USA or the UK, where there may be an implication of greater education or expertise, but I think no more than an implication.

  • 2
    Engineer usually refers to a legal title that requires some sort of exam after taking a degree (at least in some countries), so, legally, a software engineer is a software developer but the opposite need not be true. No idea whether the US have such a distinction, or whether it is taken into consideration.
    – Bakuriu
    Commented Aug 11, 2014 at 11:34
  • 4
    @Bakuriu In the UK I don't believe you have to have any kind of qualification for label yourself as an engineer. It's a bone of contention for those of us who did engineering degrees...
    – Liath
    Commented Aug 11, 2014 at 11:41
  • 1
    In Finland, an Engineering diploma specifically states (translated) "With receiving this diploma, you have the right to use the title of ______ Engineer". Emphasis mine. Commented Aug 11, 2014 at 11:53
  • 1
    While in the US "Engineer" tends to imply a more formal educational background, the only time there is an actual written requirement for it is if you are a "Certified Professional Engineer," which implies you have passed an exam like the one mentioned by @Bakuriu
    – thanby
    Commented Aug 11, 2014 at 12:27
  • 3
    @Liath Yes, I believe British Gas send engineers to check your boiler, and if they struggle they call in a technician (obviously a more prestigious title). I hear when you have a PhD in Engineering this title use only compounds the misery of said broken boiler. I would like to add my meaningless (but still quite nice) title of "software consultant" into the fray.
    – Nathan
    Commented Aug 11, 2014 at 12:29

In theory, development would be the whole process from taking the requirements over planning the project to its execution, while engineering is planning the technical design of the software and programming is the execution of these designs.

But in practice, there is little difference between these titles. In the real world, a person having either of these job titles might be expected to cover the whole scope of a software developement or be reduced to being only a code monkey. The "Senior Software Developer" in company A might have even less responsibility than the "Junior Programmer" in company B.

To learn what kind of work a position actually entails, read between the lines of the actual job description and which skills it states as required. Or even better: ask them.

  • 2
    +1: I agree. In fact, the term "software programmer" as applied to these roles is more often than not nothing more than evidence that upper management has no idea what software development actually entails. Commented Aug 11, 2014 at 14:16

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