DEV Community

Cover image for Opinion: Architect VS Engineer VS Developer
David J Eddy
David J Eddy

Posted on • Updated on

Opinion: Architect VS Engineer VS Developer

Originally posted on my blog.

Some would say the differences are semantic, some say pedantic, some say titles are a waste of time, I say it matters, and there is a difference. Here is why I think so.

Word Etymology and Meaning



  1. 1.a person who designs buildings and in many cases also supervises their construction.synonyms:designer, planner, builder, building consultant, draughtsman"the great Norman architect of Durham Cathedral"


  1. and make."few software packages were architected with Ethernet access in mind"



  1. 1.a person who designs, builds, or maintains engines, machines, or public works.synonyms:designer, planner, builder, architect, producer, fabricator, developer, creator; inventor, originator, deviser, contriver, mastermind"the structural engineer's drawings"


  1. and build (a machine or structure)."the men who engineered the tunnel"



  1. a person or thing that develops something."a property developer"
    • a person who grows or matures at a specified time or rate."I was a slow developer"
    • a chemical agent used for treating photographic film to make a visible image.

So we have Architect (computing) that means to 'design or make', an Engineer who 'design and build', and finally a developer who grows or matures at a specific time/rate. 'Developer' describes the person's state, whereas the other two describe the person's actions.

Lets append 'software' to each term and see what the mighty Wikipedia gives us:

software architect is a software developer expert who makes high-level design choices and dictates technical standards, including software coding standards, tools, and platforms.Software architect - Wikipedia

software engineer is a person who applies the principles of software engineering to the design, development, maintenance, testing, and evaluation of computer software. Prior to the mid-1970s, software practitioners called themselves computer programmers or software developers, regardless of their actual jobs.Software engineer - Wikipedia

software developer is a person concerned with facets of the software development process, including the research, design, programming, and testing of computer software. Other job titles which are often used with similar meanings are programmer, software analyst, and software engineer.Software developer - Wikipedia

So according to Wikipedia the architect makes high-level design choices, sets standards, and picks the tools. Where as engineer and developer are closely related. We now have two examples of how the architect is distinct from engineer and developer so let's clarify the differences between those two next.

If you know what this is, good for you. If you know what it comes from I would like to know.

Engineer VS Developer

Software Engineer Insider has a great (but short) article discussing the differences. To paraphrase an developer focuses on the coding in a narrow scope. An Engineer understand the 'big picture' and 'client requirements'. Following the entire SDLC of the product. From client request to final deployment.

Jason McCreary puts it short as well:

A developer executes. Their talents often focused to a single area. Without need for the “big picture”.

An engineer designs and plans. Always aware of the “big picture”. With talents in many areas. An engineer can assume the developer role. But an engineer's core focus lies with architecture.


With the above and many other conversations and much research my opinion is formed based on the knowledge and consensus available: Architect, high level choices and tool selection. Engineer, build applying scientific mentality and methodical process. Developers, write the computer code to make it do a thing.

What do think. Am I being overly pedantic? Do you not care either way? Are you an architect and feel insulted when someone calls you a coder? Lets discuss in the comments below.

Originally posted on my blog.

Discussion (75)

phlash profile image
Phil Ashby • Edited on

I'll bite :)

I have had all those titles, and it makes little to no difference to what I do, and quite a lot of different to how I'm perceived.

First contact with suppliers or customers: it's useful to set an expectation of authority so I'm an Architect - they feel valued and we can get going quicker on working together (or coming to agreed separation).

With team members I will be working with: I introduce myself as the fool responsible for the poor decisions, taking some pressure off them, suggesting that good decisions are made by others and demonstrating the humour necessary for survival in a work environment :) Over time they can decide for themselves on my actual skills!

Would I be offended by being a known as a 'coder'? Nope, quite the opposite: that means someone thinks I can in fact write code, and will understand what I'm looking at (possibly their efforts, possibly my latest PoC mess), a fellow geek, not a weird out-of-touch golf-course decision making 'Architect' in an ivory tower somewhere.

In terms of what I do: architecture is a role on a team, equal valued to other roles, with different focus and outcomes (big picture goals, communication with stakeholders, etc.) it's my T-shaped specialism, other folks enjoy theirs and together we get stuff done. If we're doing it right then mentoring takes place and others get to learn some system and business scale patterns from me while I learn something from them.

david_j_eddy profile image
David J Eddy Author

Very well said Phil. Like you I follow the 'if its bed, its my mistake. If it's good it was the teams effort."; for the same reason as well, it takes pressure off the other team members and helps keep the focus on the goal.

juanitomint profile image
Juan Ignacio Borda

Same here... Been there done that! Multiple hats same guy!

chrismcleod profile image
Chris McLeod

Architect selects tools, frameworks, paradigms best suited for the job. Example: the person that draws a blueprint has selected the shape and materials for a house.

Engineer solves a real-world problem using software/algorithmic principles and coordinates with stakeholders. Example: a foreman consumes a blueprint but decides in which order things will be done, best practices for assembling components of the house, guides implementation etc.

Developer implements the solution; they are developing the software by bugfixing, refactoring, etc. Example: general laborers hammer in the nails when it is time to frame a house and tear down walls when it is time to remodel.

All of these are not titles but modes of operation that a single person can be working in at any given time. Each person will have varying degrees of proficiency at each important task and so when it comes time to titleize, may prefer a specific title.


david_j_eddy profile image
David J Eddy Author

Very nice explanations Chris. Creates concret analogies that are easy to understand.

juanitomint profile image
Juan Ignacio Borda

I found the construction analogy rather useful thanks!

srepollock profile image
Spencer Pollock

Very true and direct. Really like this response because as you say they're modes they are ways we interact with the virtual and real world.

habelfoc profile image
Habel Justin


biros profile image
Boris Jamot ✊ /

I'm proud to be "just" a developer.
I design my software, I do technical choices, I assume it and I can argue them, but I'm still a developer.
The rest is bullshit.

Thanks for putting this in the debate 😉

dwilmer profile image
Daan Wilmer

From this, I assume you probably work alone or in small teams. The responsibility of design and implementation are all yours, or easily shared between team members.

However, for larger teams to work together, you need some people to specialize to see the big picture, and others to specialize on certain smaller parts. The one responsible for the big picture is the architect, while the engineers and developers usually manage smaller parts.

There is an implicit assumption that the one overseeing the whole thing is more important or more valuable, as if the team were a military hierarchy. In reality, it's mostly just a different job.
Compare it to a football team: the coach is the one making the larger decisions, whereas the players have to turn these larger decisions into actions that actually achieve something. And it's quite clear that (looks up players from PSG, the first French football team I know) Kylian Mbappé and Thiago Silva are the stars of the team, and they're valued more than (looks up coach) Thomas Tuchel.

fullstackto profile image
Full Stack Toronto🦄

In Canada you can't call yourself an engineer without an engineering education and passing a union exam. So software engineering in Canada is rare it's architect or developer. An engineer is incharge of making systems that could affect someone's life and require ethics in Desicion making a software engineer would work on the site on hardware that keeps you alive like a heart rate monitor. A developer makes stuff that runs on computers or the internet

diegoos profile image
Diego Oliveira

I'm agreed with the Canada way.
In my country (Brazil), a lot of developers has self-titled as an engineer.
But we have an engineering course that guys need a lot of time and study to get a certificate.

In my opinion, that's not fair with them.

So, I'm just a developer, even though I lead a team.
Being a developer, I can develop systems, software, people, myself, etc...

Just like the comment of Boris Jamot, I'm proud to be a developer. :)

david_j_eddy profile image
David J Eddy Author

"...An engineer is incharge of making systems that could affect someone's life...

Like aircraft control systems, heart-beat (pace) makerts, and traffic control systems? All controlled via software. In Canada are these roles only filled by people w/ union exam certified people?

fullstackto profile image
Full Stack Toronto🦄

There is normally at least one on the team to provide the certification stamp.

bigab profile image
Adam L Barrett

In Canada, you also cannot call yourself an Architect without a license, which requires a test and ongoing certification.

There is no such legal restriction on Developer that I could find.

david_j_eddy profile image
David J Eddy Author

"...Architects are professionals. The public must be sure that people who call themselves Architects are qualified to practice in their field...." -

Love it! Now how to we apply that to software?

anthonydmays profile image
Anthony D. Mays

I've found that there are nuances between how one organization interprets these titles versus another. But where it really matters is when it comes to deciding pay and fair market value. I'm more likely to stick with "Software Engineer" as a title than "Software Developer" because I can negotiate better compensation with the former. When it comes to dollars and cents, you have to ensure that the job responsibilities are commensurate with the pay you're looking to get at a company. Know your worth.

niorad profile image
Antonio Radovcic

Interesting! It would be a bigger deal if the field were as regulated as architecture of physical structures for example. Without that, the words may have as many meanings as there are companies with job-boards 😬

I also think that, to be good in any of the three, you need to be good in all of the three.

I guess it also depends on the language. The German translation "Ingenieur" isn't common in the dev-context. Maybe it has to do with the "German Engineering" trope, that already owns the term.
"Architekt" and "Entwickler" (Developer) are used more commonly, though. In conversation with non-tech-people, the term "Programmierer" is usually sufficient.

zenphp profile image
Jason Murray

I'm going to petition my director to change my title to Senior Entwickler immediately.

david_j_eddy profile image
David J Eddy Author

Agreed, without regulation titles become as worthless as the paper it is written on. Personally I would like to see some certification body take on the task of providing professional accreditation. Not per language mind you. That would be to specific and hard to keep up with. More, general computing concepts, mathematics behind computers, algo's, design patterns, business cases, etc. I doubt it would ever happen but one can hope right?

niorad profile image
Antonio Radovcic

It would need to be country-based, but yes. I think the most important topic would be ethics and logic, since you're most likely affecting lives, especially in big corps.

vier31 profile image
Jan Schröder

In Germany, Ingenieur is a protected title like Doktor, so one needs to go through a very formal education in order to earn that title.

niorad profile image
Antonio Radovcic

Yes, same with "Architekt", but I'm not sure how it is when you prefix it like "Softwareingeneur" or "-architekt". I guess it's the same as with "Hair-Doktor" or "Handy-Doktor".

Thread Thread
vier31 profile image
Jan Schröder

I used to be a sound engineer and I was not able to call myself Ingenieur, because there are also Toningenieure.

My guess would be that it's okay for marketing, where there is no risk of misleading a customer, but as a professional title it's not.

kspeakman profile image
Kasey Speakman • Edited on
module InMyOrganization

let architect = ...
let engineer = ...
let developer = ...

I believe these titles are just an attempt to categorize jobs for management purposes. The actual duties performed will vary based on the needs of the organization and team.

An architect is considered a senior position. You don't typically see companies looking for a Junior Architect. Depending on the organization, an "architect" may be just the most senior engineer/developer.

steveblue profile image
Stephen Belovarich

I agree with these definitions, having taken positions where I could be considered a developer, engineer, or architect. I always considered myself more of an engineer even when recruiters wouldn't touch the title Web Engineer with a cattle prod.

martin profile image
Martin Beentjes

I do see a difference between an Architect, Engineer and Developer in my organization. It is certainly not a label to describe knowledge level of the people. I do see it as the point of view they have on the software they are building or helping to build.

Our architects are flying over the whole technical landscape, they monitor the things we do and build. We discuss all our decisions with them. They are the one with the 'biggest' picture.

Our engineers are designing, thinking on how a problem can be solved. They focus on their domain but take a look around them to see how other teams are doing things. How can fit a solution the best way in our infrastructure?

Our developers are focused on the thing they are programming. They do not have that much interest of the bigger picture but do have interest in building the software they must build in the most effective way possible.

Yes, the labels are just bullsh*t. Why? Because they make you feel less than someone else. But we need all of them, we need every person in the organization. Together, we build great things for our customers. Sometimes I am feeling like an engineer. Sometimes I feel like an architect. And sometimes I feel like a developer.

At the end we all want to make good software, and it depends on our perspective on what we do. We can do our things on all level. But it depends on the interests of the person themself.

andresausecha profile image
Andres Ausecha Mosquera

I think i am software developer in some projects and software engineer in others, because sometimes you are required to analyze, design and code. But there are cases in which there is nothing to analyze and you just code

saiap profile image
sai-ap • Edited on

I am a software engineering manager (another world of titles with similar debate as I am observing on this post), will put in my two cents here. I generally hire SW engineers, SW developers, SW architects, etc for roles in my team and project and it hardly matters what titles they hold in their current job. If they can fit the job requirement and have good design and coding skills they are hired. Titles are generally driven by organization business needs and have a lot to do with what kind of product you are going to develop. So we should not get too much carried away by titles. All of them are good. Disclaimer: I started as a 'software engineer' and after coding for 7-8 years moved to management. If I ever go back to coding I will accept any title that you give me which is related to software development.

jgaskins profile image
Jamie Gaskins

You don't typically see architects in smaller companies or at least, if you do, their role is not the same as it would be at a larger company. In larger companies, architects tend to work more horizontally across some or all of the teams within the broader engineering organization, not going too deep with any individual team. They work with the developers, managers, and product teams for some subset of services in their wider system to guide development of the system as a whole, helping negotiate tradeoffs between vertically focused teams when necessary.

In these larger engineering orgs, they might not even do any programming, or if they do they'll generally stick with prototypes to understand implications of different patterns, but they aren't usually down in the weeds on product development.

Regarding "engineer", I see all of what we do as engineering, so developers and architects are both engineers. Making a distinction between "engineer" and "developer" seems to be headcanon at best. "Engineer" sounds classier than "developer" but no developer I've worked with that cared about "engineer" vs "developer" in my 15 years in this industry has produced anything better than anyone else from either a short-term or long-term perspective. Seems more ego-driven than anything.

dviejopomata profile image

The biggest enemy, in my opinion, is the ego, when a developer becomes an architect, it seems as if the desire of coding is removed, when the architect is the first who has to code, since after all, what is sought is that the system be manufactured in less time, easier to debug and higher quality.

ericrini profile image
Eric Rini • Edited on

Job titles come from HR and the real world has little influence on them.

Separating developers and architects is like going back to the bad old days where the IT guy couldn't code and the developer didn't do any testing and that was OK because it wasn't their job.

The people who want to create narrow job roles like "architect" or "tester" or "programmer" and organize teams around these functional silos rather than the customer value streams they serve/create are typically HR "resource managers". They do this because they want to see people as interchangeable parts in a corporate machine rather than the complex and irreplaceable individuals that they actually are.

The job of a modern developer is to analyze, design, implement, test and deploy as a continuous and fluid cycle. They are regulated directly by customer feedback. In my experience, pure design teams who operate without consideration for a product/customer driven feedback loop (ivory tower architecture), tend to fail in a really slow but sure type of way that is very expensive.

The modern definition for an iterative developer was the answer to this old problem.

xfile3160 profile image
Cesare Mercurio • Edited on

From my little experience I can say that when there are many engineers to build a solution, from application to system, many are the ways to approach each of the layers. You need an architect that knows how the system and application need to work together to ensure best end result. You also need an architect to design your software in the best way possible. Building an app that uses a sensor could be difficult if there are many user interactions where the sensor needs to do different things. An engineer would build workaround to his code, an architect would prevent workarounds by designing a good FSM framework. Both of approaches work and reach end result, but what's then easier to maintain? Small companies usually struggle to find this valuable, because of the need to get stuff done.

alemvik profile image

Software / Architect

They focus on the whole business (instead of individual systems, applications and programs) to determine or give advices about what softwares are to be bought (with or without customizations) and what softwares are to be developed (custom). They also set general guidelines and constraints to be observed when softwares are developed or bought. They choose standards, technologies, frameworks, langages, paradigms, and the tools that has to be followed. Software architects is a role assumed by developers or former experienced developers.

Software / Business Analyst

They help guide businesses in improving processes, products, services and software through data analysis. These agile workers straddle the line between IT and the business to help bridge the gap and improve efficiency. They gather requirements (in a document). Business analyst is a role that could be assumed by developers or former experienced developers.

Software / Developers

They modelize (design that include implementation-specific and technology-specific details) the systems (databases, applications, services, message brokers, etc.) using the information (if any) provided by the architects (if any), the engineers (if any) and the business analysts (if any). Those detailed specifications are intended to programmers.

They are capable of doing all of what is accomplished by the architects, the engineers, the business analysts and the programmers. When they do, By reducing the "assembly line" and since the developers have more awareness on what they already have in their back store (what they already did and can be re-used) and elsewhere, they can deliver quick/cheap interesting solutions.

They gather and set requirements, propose solutions, design and develop softwares for the chosen solution.

Software / Engineer

They solve real-world problems using software principles. They write the design documents for the developers. A design is a model (with algorithms) without any implementation-specific or technology-specific details. A model is a design with those details. Engineers also coordinate with stakeholders. Software engineer is a role that could be assumed by developers or former experienced developers.

Software / Programmer

They create/modify databases and programs, based on detailed specifications provided by the developers.

hemantsaab profile image
Hemant Gaur • Edited on

Architect in software world are like high paid snake oil salesmen. Often know the least, talk the most. And invariably hard to understand. Company which realizes that the true soldiers, are the developers and the engineers, are the ones who will eventually deliver, will do a lot better in the long run.

madhadron profile image
Fred Ross

Perhaps instead of blanket statements you could speak of your own experience?

alfonsification profile image

My question is, what is the term for someone who fits all three roles? Most of my developer roles have involved just being told the requirements and coding features, then passing them to QA. My current job, though, is with a much more agile team, and every "developer" has a hand in every part of the process. We meet and talk with the customers and end users often for feedback and to discuss new features and requirements, like engineers. We do all of the coding, like the developers. We also make all architecture decisions -- our server configurations, our technologies, our libraries, our infrastructure, etc.

We all fill all three of these roles, which one we are filling just depends on the day. Is there are word for this kind of position?

smahoff profile image

Hi, Alfonse. I have a similar role, where the entire team acts on all levels and interfaces customer & requirements. In my role (owing to the field of work I suppose), I am a so-called intelligent algorithms specialist, to convolute matters even further :D

david_j_eddy profile image
David J Eddy Author

I'd call that a 'superhero' :D.

chains5000 profile image
Pablo Fradua

In my experience, it's always been a matter of labelling in order to pay you more/less, or get more money from a client.

As for the difference between an engineer/architect and a developer, I'd say the former creates the boxes, the later fills them with code.
Obviously there are shades of grey.
I don't mean developers can't make design decisions, it's just that in most situations they are not asked to due to team's structures.

marath007 profile image

Well done on the research it makes a lot of sense! In the end they are just words, but well defined words allows for better communication!

david_j_eddy profile image
David J Eddy Author


danielsobrado profile image
Daniel Sobrado

The reality is what you do, not the title you put in your CV.

An hands off architect is usually a better decision maker.

Managers that code often are more realiable managing teams ...

It is common to do multiple tasks and to be a pure architect or engeenier or manager.

stephenmirving profile image
Stephen Irving

An exercise in pedantry. Thanks, but we all have dictionaries too and our employers can put on our business cards whatever they would like.

johnrcui profile image
John R. Cui

When dealing with complex systems. The person that sits down and decides what design patterns to use, what tools to implement, what protocols to consider, from my experience, is not something many devs can do right. This is where the architect comes in.

The engineer is someone that actually knows the tooling and uses it to build all the many parts of the system according to design specs. I find a lot of devs fall in this place.

A developer, for me, is just a generic term but also can be used to define someone who has no clue what various roles are required to build a system -- someone who might just Google something on how to solve a problem instead of knowing how to solve the problem and Googling the technicality involved in it.

So architects are good at deciding the ecosystem. Engineers are good at the tooling. General dev are good at general coding.

deivguerrero profile image
David Guerrero

I always make the analogy with Building constructions.

The Architect is the one who indicates how the building should be indicating the materials it will contain, the finish (colors), the accesses to the building, the architect visualizes how it should be.

The Engineer takes the plans of the Architect and based on his knowledge plans the construction of the building, verifies the lot where it will be built, calculates the estimated time for delivery, calculates how many workers he will need, whether bricklayers, plumbers, electricians .

The Worker (Developer) depending on their abilities will execute the tasks that the Engineer has delegated.

The Auxiliaries (in Mexico Chalanes in Software Development the Jr) are people who are of support for the workers (it depends on which area they require auxiliaries).

malib profile image

well I will disagree with you on this to some extent

Software Engineer are those who build the big software or tools i.e. (Google chrome ) and frameworks (angular) or library (React).

Software Developer are those who use the tools of Software engineers and provide creative solutions.

I can be wrong on this : what do you say :)

vbarzana profile image
Victor A. Barzana

I'll bite in as well because didn't like the comment from Boris.
In my humble opinion an Engineer is a person who has studied computer sciences for at least 5 years covering from the lowest level binary, assembler, data structures, algorithms, security, networking, database, can understand and code in different programming languages and adapts. An engineer degree is not bs guys. Now I take the engineer with a bit more knowledge of Software Architecture, patterns and practice, abstraction and that is your Architect.

emilper profile image
Emil Perhinschi

Software developers are the independent guys writing software on demand for smaller clients, often subcontracting parts of the project to (such as graphics) other developers so they could make use of their expertise.

codeposse profile image

Pfft, made up titles... If what I do on a daily basis defines me, then I am a Sr level III design software user process database recusrionating network help desk lead trainee.

One company's UI Engineer is another's Front End Designer yet the recruiter still says Full Stack but most places don't have an architect. Places that do don't hire architects so I change my title to engineer to find a job when I am looking.

vicentemaldonado profile image
Vicente Maldonado

I kind of prefer "programmer"

rauchy profile image
Omer Lachish • Edited on

uhm uhm

Kent Beck is a "programmer"

idanpl profile image
Idan Pl

Seems like according to these definitions, developer is a junior software engineer and engineer is a senior software engineer.

I personally tend to disagree to these definitions. I think that developer in software is someone who mostly develops, which means uses the tool which we call code to build stuff (without saying how well he's doing this), which is the same as software engineer.

Architect is indeed someone who looks primarily in a broader view of the software, and has a future view on how the software as a whole should look like.

ianwaldrop profile image
Ian Waldrop

I avoid using the titles personally; when I describe what I do to non technical people I’ll typically use the words “design”, “build”, “test”, “fix” and “repeat”. Among our kind I’m still finding my place, but I’ve been slowly moving toward the architecture side of things and appreciate the distinctions you’ve made here.

sebbdk profile image
Sebastian Vargr

The fact that this is an oppionated subject kinda shows the problem.

Developers pick tools all the time, architects come both as application, software, and building designers, engineers work a number of things from hardware to software and cars..

These kind of generic titles are kinda useless without more descriptors imho.

They fail to describe situations where one person covers more roles, being a developer application, systems architect and engineer sounds stupid. But freelancers do it all the time.

pauldevos7 profile image
Paul DeVos

I've seen "developer" and "engineer" interchanged a lot. I'm not sure if one name (or brand) is better than the other, e.g. "Data Analyst" (Borrrrrrrrrring!) vs "Data Scientist" (OoooOooo Ahhh!!!).

Architects may seem superfluous if you have a single monolithe and an Engineering Manager managing it, but as soon as it involves many systems and even a Data Warehouse, tools choices matter as other systems have to live with those choices in terms of file types, data serialization, conventions, schemas, etc, etc, etc. And that's where an Architect comes in as most Developers/Engineers are trying to do day-to-day stuff (building the apps) and the Architect can help make sure the right POCs are put into the sprints to make sure integrations and systems performance are the best they can be.

If I had to put a demarcation between "Developer" and "Engineer" it would be developer is more tightly coupled to a technology in my experience. e.g. A Ruby web developer or a Django Developer vs a Front-End Engineer or a Back-End Engineer who might know 2 or more frameworks. A Data Engineer would know Spark (framework), Airflow (framework), and perhaps even Flask (framework). Again, this is only my experience, so YMMV elsewhere.

lrpinto profile image
Luisa Pinto

I think of a Software Architect as someone who is more concerned with the infrastructure, a Software Engineer someone who is more concerned with design and integration, a Software Developer someones who is more concerned with implementation.

grepliz profile image
Liz Lam

Swizec Teller wrote an interesting blog (after doing a data viz project using real salary data) about the how Software Engineers make $13K more on average than Software Developers.

Check it out:

jaakidup profile image
Jaaki • Edited on

The difference between a software developer and a software engineer...

Think of a developer, he/she could be in charge of the team that would build things, more on a pure software level. Senior software devs have also develop strong personal skills, which allow them to work closely with clients. A higher overview of the entire process.

A software engineer is usually closer to the electrical side, like building interfaces for robots and machines. Thus more focused.

So, according to me and most people I know, that short description you quoted is exactly the wrong way round.

In construction, the Architect draws the picture, the Developer is in charge of organising everything the architect has planned and the engineer is responsible for a very focused job, be it electrical, just a lift, or a bridge.

jmervine profile image
Joshua Mervine

I larger companies I’ve worked for (30K+ employees) there’s a strong distinction between Architecture and Engineering/Development. Typically Architects aren’t expected to write code, but are consider to be more as at a Director level or above without direct reports, driving high level decision making, writing RFCs, etc.

As for the other two, it depends on the environment, but typically Engineer is used as you get farther down the stack from the user, things like Systems Engineer, SRE, Build and Release, etc.

aleon1220 profile image
Andres Leon

Loved your article. Defining terms in a conceptual agreed way is quite a challenge. I agree with <you. I live th<e definition of engineer (try to)....
One suggestion i would give is referencing some academic definition such as software engineering books and some IEEE articles. Th<e academic people usually define terms at the< beginning of any paper to clarify and set the path....

david_j_eddy profile image
David J Eddy Author

An excellent idea Andres; sadly the terms are so vague even now academics have yet to solidify the boundaries. I know in some countries a person can not use 'engineer' in there title without a professional certification. Computing does not yet have an industry wide organization to administer such constraints.

thejoezack profile image
Joe Zack

I think all 3 terms emphasize different aspects of the same thing. On a given day I might be wearing any of these hats. (I'd like to throw the term "mechanic" in there too)

david_j_eddy profile image
David J Eddy Author

We could add 'Magician' as well :D

notoriouspyro profile image
Craig Crawford

That's only if you don't understand what a noun or a verb is.

The first two terms are used as both a noun and a verb. You cannot compare a verb to a noun, they have different meanings.

andychiare profile image
Andrea Chiarelli

After cache invalidation and naming things, defining a job title is the third hardest thing in Computer Science :-)

david_j_eddy profile image
David J Eddy Author

Ain't that the truth.

perpetualwar profile image
Srđan Međo

Developer and engineer is one and the same... Engineer is just more formal of the two.

samafg profile image

So according to your article, a full stack developer is a Software Architect, Engineer and Developer, right? Because he is in charge of all of the tasks that you mentioned for each title.

david_j_eddy profile image
David J Eddy Author

In a way, yes. End to end, pattern selection, implementation. Yea a Full Stack'er does as all three roles detail.

codelitically_incorrect profile image


prantzos profile image
Vasilis Prantzos • Edited on

This is a bit too much... In any case a title makes no real difference.. A good software developer can go deeper than just execution and know more about how and why things work the way they do..

ianrathbone profile image
Ian Rathbone

I like the pedantic! I for one have always preferred the Engineer title for the exact reason that you've quote from Jason.

Great post :)

tamouse profile image
Tamara Temple

When do these distinctions matter? On any given day, I'll be doing something from any of them, some days, there will be times when I do something from all of them.