In the past decade, job titles for people who code have shifted from “developer” to “engineer.” This could do more harm than good if we’re not careful.
Let’s start with an example outside the tech industry: In Canada, the government official dealing with finance is the Minister of Finance. In the UK, that’s called the Chancellor. Same job, different job title.
The job hasn’t changed much, but the job title did.
I already hear the crowds: “But code is complex now! There’s state, design systems, caching, container orchestration, complicated stuff! Code today is real engineering!”
Enter: ✨ The Games Industry ✨
The gaming industry is the perfect example why these titles make no sense. At Ubisoft, people working on 3D rendering are “graphics programmers.” While people doing DevOps within the same company are “DevOps Engineers.”1
The graphics programmer’s job description includes “3D mathematics, rendering algorithms, and data structures.” This is as much engineering as a complex back-end.
Secondly, solo game developers aren’t calling themselves engineers despite the fact they very much have to think long term about finances, marketing, managing contractors, etc.
Don’t get me wrong, some applications like Figma are feats of engineering. No doubt about that.
But not all code is a large-scale, multi-million-user app.
Anything that creates imaginary divisions like “you’re not a real coder/engineer unless you can do [x]” is wrong. If you make money writing code, you’re a professional coder/developer/engineer. That’s it. End of the story.
These stupid assumptions gave us whiteboard interviews. Today, everyone agrees that writing a bubble sort on a whiteboard with a pen is useless for people who code with keyboards, screens and Google.
70% of developers are either front-end or back-end developers. Most (if not all) of the complex parts can be learned on the job and don’t require a background in computer science. Unlike medicine and traditional engineering, you can start a career without that knowledge.
As a colleague jested: “Y’all aren’t real coders until you edit a
etc/hosts file from your terminal with a blindfold.”
Software Engineers … drive trains. — Wes Bos, Syntax.fm Episode 194
In a lot of countries (Canada, France, Brazil, etc.), an Engineer is what’s called a protected title.
That means, you need a specific degree accredited by a governing board to use the title of engineer. You need the degree and with a license, just like doctors. Some places even even have a full-on ritual.
But luckily for us in tech, if you:
- Go to an online school
- Read, practice and take a few months off to study
It’s possible to become a “junior software engineer.” Granted, you need the money to study, but it’s much more accessible than a law degree.
I’m not done. On top of being a protected title, “engineer” is also a masculine noun in many languages.
What happens if you ask people on the street something like: “Give me 2 software names?”
I bet the answers will be something like
- Microsoft word
- Some operating system (Android, etc)
Despite zero research to back this, I reckon most people don’t think of Snapchat, Tiktok, or Fortnite as their first example of “Software.”
There’s a lot more fun and playfulness to coding than the boring 90s software stereotypes. Modern coders can work on so many cool projects: Mobile apps, IOT devices, games, even (lord forbid) cryptocurrencies.
Why write all this? My point is that the tech industry already struggles with diversity. Any layer of elitism will make the problem worse.
We need to reduce the barriers to entry for everyone with the capacity to work as engineers.
I’ll leave you with a personal note. Throughout my career, I’ve been lucky to meet a few renowned coders (in person, RIP meetups). They had a large following, peer recognition, and/or open-source projects used by millions.
Not a single one introduced themselves as engineer.
This is bound to be misinterpreted, so here’s a pre-emptive Q&A.
Keep your job title, you’re already in the industry.
It’s complicated and I don’t have all the answers. “I make a web app at [company]” is much better intro than “I’m a lead engineer.”
The job description is the most important.
In the description try to talk less about your team’s “12-factor apps” but more about how you help each other write solid code. If it’s easy to change the job description from something like “junior React Engineer” to “entry-level developer” or similar, then great. It’s not a big deal if not.
Nobody. As prescriptive as it may sound, I’m just trying to make this industry more welcoming.