There's much hoopla over job titles, with many strong opinions on both sides.

Today I decided to change my bio as it appeared on this website. It used to be "CEO & Founder of Doctor Volleyball, student at UofT". As accurate as this is, I didn't feel like defining myself so narrowly anymore. If you want a spoiler of what I eventually changed it to, feel free to scroll to the bottom.

There are many many terms for those who work with software. To one person they could all sound the same, to another they each contain information about one's job, and to a recruiter... honestly who knows. This makes choosing a self descriptive job title interesting. So what options do I have?

Here be job titles

Programmer

Also called Computer Programmer, and defined by the Bureau of Labor Statistics as

Create, modify, and test the code, forms, and script that allow computer applications to run. Work from specifications drawn up by software developers or other individuals. May assist software developers by analyzing user needs and designing software solutions. May develop and write computer programs to store, locate, and retrieve specific documents, data, and information.

Super vague and does technically apply to a lot of jobs. Weird how they mention Software Developers, I wonder what it says for them.

Develop, create, and modify general computer applications software or specialized utility programs. Analyze user needs and develop software solutions. Design software or customize software for client use with the aim of optimizing operational efficiency. May analyze and design databases within an application area, working individually or coordinating database development as part of a team. May supervise computer programmers.

I'm so happy they included the word develop at the very beginning of their definition. It makes all my research for this article worth it. Then again, "develop" shows up half way through the definition for Computer Programmer too, which leads me to believe that they don't know what they're talking about either.

As long as nobody is the authority on this, we can continue to speculate in peace, knowing that nobody is correct!

Coder

I have a weird relationship with this word. I feel childish to me. I can't really explain why. Is it because the word is physically short? I don't think so, but maybe.

One of my friends took a data entry job a couple of years ago and described it as being a coder. That didn't particularly sit well with me. Yes, you are entering codes, but something just doesn't feel right.

I think coder could be a great description of writing software, but I have these biases and past experiences with the word that will forever tinge how I think of it.

Developer

Oh my god there are so many variations on the term developer. I really like how well "developer" describes what we do, but everyone seems hell-bent on sticking a descriptive word in front to differentiate themselves. You could be a

  • Developer (easy and classy, I like it)
  • Software Developer (more detail, cool cool)
  • Frontend Developer (client side stuff, nice)
  • Backend Developer (server side stuff, neato)
  • Full Stack Developer (client and server, whoa slow down there bud)
  • Web Developer (different from a full stack dev how?)
  • Technical Developer (a job title that I've had)
  • Junior / Senior any of the above terms (how is this even measured)
  • <Programming Language /> Developer (do you really want to define/confine yourself by a language?)
  • UI Developer (how is this not a designer?)

This list goes on and on. I've described myself using a variety of these over the years, so please don't be mad if you feel like I'm mocking any one in particular.

The same situation has happened for Designer so at least we're not alone in the cacophony of names.

Ninja or the like

This was a fun phase! Wait, are people still doing this? Really?

Some people got bored with the formulaic job titles are started inventing new ones to stand out. Some of these include:

  • Code Jedi
  • Programming Ninja
  • Software Rockstar
  • Testing Guru
  • Code Wizard

I understand that the available job titles sounded old and dusty but these just are meaningless and unprofessional. If your personal brand is edgy and you want to show that you take risks: by all means be a Ninja. But honestly how often do you break a circular deadlock with a shinobigatana.

Boffin

Okay, I just discovered this word today, and I love it. Apparently it means

a person engaged in scientific or technical research.

or

a person with knowledge or a skill considered to be complex, arcane, and difficult.

Oh my god that's amazing. However it seems like you have to use it in conjuncture with another word, like saying "computer boffin" or "tax boffin". Still it sounds amazing to my ears. I don't think I'll adopt this as a self descriptor though.

Software Architect

This job title has a lot of meaning for me. These people don't just write code, but they design what the application will be like at a high level. They make architectural decisions on what frameworks to use, what the data flow will look like, where bottlenecks might appear etc.

I would not call myself an architect until I've built a large complex system.

Software Engineer

This is literally the job that I've been hired for at Amazon. Technically it's Software Development Engineer but that's super long and "development" doesn't really flow off the tongue.

There's an interesting history to the term Software Engineer, and a decent amount of backlash to how some people use it today.

Margaret Hamilton was one of the first champions of the term during her work with the Apollo program. She wanted the work done on the software to be taken as seriously as other engineering tasks done elsewhere. At first it was treated as a joke, but eventually gained momentum.

The pushback in modern times comes from it's overuse to describe anyone who writes code. The argument goes as follows: you don't call a construction worker a civil engineer, why call a programmer a software engineer? The parallel may seem demeaning for people that write code, but I understand that engineers want to keep their word exclusive. They worked hard in school to master a variety of tasks, and now someone coming out of a 6 week bootcamp wants to co-opt the term they use to self identify.

I feel justified using it after obtaining a Computer Science degree and having it be my actual job title. Otherwise, I would avoid it because I respect the hard work that it takes to graduate with an engineering degree.

What do I want?

If someone asked me what I did for a living, I would probably respond with "I write software". This feels like the right thing to say in conversation, but not for a bio.

At the end of the day I spent a lot of time thinking about software instead of writing it. For my bio on this website, I also do not want to lose the fact that I write words too, about topics other than software.

Thinker, writer & software engineer

Today, I like that. Tomorrow, who knows... maybe I'll become a ninja.