← Back to context

Comment by bluetomcat

2 years ago

I am in this industry in Eastern Europe for almost 20 years now, and my LinkedIn title is "experienced computer programmer". I think it most accurately describes what I'm good at - building and fixing stuff. I've built pieces of software that run unattended for years. I've fixed race conditions in other people's code. This captures the part of my skillset that is transferable to other companies.

Calling everyone involved in software an "engineer" seems to be a very FAANG-y thing that has trickled to "lesser" companies.

I've been in this industry for a very long time. When I started, I called myself a "programmer". But then it became fashionable for everyone to all themselves "engineers", so I did the same. It's only a difference in marketing, but marketing can make a big difference.

These days, I just call myself a "developer". I think it's nicely neutral and gets me out of those awful "what is an engineer, anyway?" discussions.

Programmers have been called engineers since at least the late 90s, when FAANG was just AA.

I mean I've called myself a programmer since forever ago. I'm not comfortable with the term "engineer". I concede that it helps business types take me and what I do more seriously. "Programmer" connotes somebody who mindlessly translates human-language requirements into code, even though there's nothing mindless about that process. So I quietly accept the title of engineer when a company bestows it upon me. But I'm a programmer at heart. When I hear "engineer" I think of my father, who could design and build actual engines. Or maybe a civil engineer? I dunno.

"Software engineering" was a term coined by, I believe, NASA engineer and Apollo software lead, Margaret Hamilton. When she used the term, it was more in the sense of like, chemical engineering. A chemist experiments with, and attempts to synthesize, new chemicals to determine their properties. A chemical engineer is concerned with scale; they solve for how to produce chemicals at industrial scales. The chemist's technique may produce small amounts of a chemical for experimentation; the chemical engineer needs to design a way to produce the chemical by the kilolitre.

So originally, software engineering concerned itself with how to develop software at industrial scales with reliable, repeatable results. Of course much of it is nonsense because the purpose of programming is to develop something new. There's a lot of overlap between software engineering as a discipline and what we today call "methodology". But methodology is, largely, a cargo cult! Today, to be a software engineer is to be a cog in a system that follows some "best practice" (meaning you won't be fired for adopting it) process.

Which is better? To be a writer (like Hemingway or Dostoyevsky)? Or to be a "literature engineer" (say, one of the faceless ghostwriters who churn out Sweet Valley books under Francine Pascal's byline)?