Engineer vs Developer

Aaron Sempf
Dev Managers Handbook
5 min readMay 8, 2018

Recently I have been building up my team, and in opening up roles in my team I have been looking out into the industry to see what roles other organisations are advertising.

Notably I have noticed the use of Developer and Engineer in job titles, where traditionally engineer might not have been used. And in talking with industry recruiters and even counterparts in other organisations and agencies, I have found that there seems to be a clear lack of understanding between what a Developer vs what an engineer is.

While I typically agree with “titles don’t matter”, there is a fundamental difference between the roles of developer and engineer.

From the perspective of an engineer having worked in a structured systems and software development environment, the difference between an engineer and a developer is easily distinguishable by their role and task they perform in the development life-cycle.

However in the constantly evolving user-centric creative communications environment, with all the JS frameworks, Markup Pre-Processors, languages and application frameworks, with a focus on web and front-end technologies and practices pushing the boundaries of what’s achievable in the browser and mobile devices, the difference between Engineer and Developer is a little harder to distinguish.

Traditionally an Engineer, no matter the stream of engineering, is a person who is competent by virtue of their fundamental education and training to apply scientific methods and interpretation to the analysis and solution of engineering problems.

What this means in simple terms, is that an engineer has a fundamental grounding through education in engineering principals, and through the application of engineering concepts they create solutions.

A Developer on the other hand, tends to be more creatively minded applying patterns and practices learned through self-discovery, on the job, reading books and blogs, or courses focused on specific aspects of the development life-cycle without the fundamentals of scientific method and engineering principles.

While so far I’ve only implied the educational differences and applied methods and patterns between engineer and developer, their role within the team also serves a different purpose.

In the simplest terms, a developer implements. Focusing their talents often on a single area, a specific task, or within a specific environment, without looking at the “bigger picture”. while an engineer architects, always looking at the “bigger picture”. An engineer can assume the developer role, but an engineer’s core focus lies within the architecture, designing and planning.

To put it into a simple analogy; working as a mechanic does not make one a mechanical engineer, and so writing code does not make one a software engineer.

The traits I look for in individuals when filling either an engineer role or a developer role can be quite different, however the tasks or tests I give to both are the same, but evaluated in different ways.

Running through technical knowledge questions is a simple way of getting a basic indicator as to level and area of expertise, but its the technical assignments and obscure questions that really set apart developer from engineer.

My favourite of the obscure questions would be the simple math test 6÷2(1+2)=? … The individual must provide an answer and an explanation as to how they achieved their answer.

This test demonstrates the individuals educational foundation. The two most common answers I get from this are 1 and 9, but it’s the explanation of how the candidate came to this answer which is most telling. However, what really sets someone with a mathematical or scientific principal foundation apart from someone without, is the third, more uncommon answer.

The equation is unsolvable due to ambiguity

A discussion with an individual who provides this answer will show that they are looking at more than just solving the immediate answer, but looking at understanding the equation from a higher level. In engineering principals, and high level math, there can be no ambiguity, so as to understand the intent of the equation and the potential effect it may have down the line.

A developers true creativity is demonstrated more in the technical assessments, such as a given input and expected output test, where the candidate must write the logic to accept the given input and provide the expected output. In such a test, the developers ‘Code Personality’ shines through with their use of patterns in applying their logic.

There is no right or wrong answer, as long as the desired output is achieved, the solution very much comes down to the individuals ability to turn instruction into a solution within the given framework.

At the end of the day, if I were wanting to demonstrate that I can think creatively, and develop logical solutions to modular problems, which is very much what Web Development in the creative communications industry is all about, I would much rather be called a developer.

On the other hand, if I want to demonstrate that I can apply scientific and engineering principals to create an overarching solution at a higher level than describing the workings of the many modules that make up the whole, then I would want to be called an Engineer.

--

--

Aaron Sempf
Dev Managers Handbook

Distributed and Intelligent systems research & development | Principal Solutions Architect @ AWS. (opinions are my own)