Engineers are Gluers

Software engineering ended before I even started my career.

Thank god we stopped writing software in the 90s. Pretty soon we'll have all the bugs out.

- Matthew Green

There are tons of classes on algorithms and design patterns. As engineers, we strive to learn them all. We master all the tricks of the trade. We maximize our code's efficiency. We master the standard libraries and toolkits.

Then, we move on to an office job in the Real World. The first thing we discover: none of that knowledge matters anymore. College was just a waste of time that costs a small mortgage.

Writing code is anathema to corporations. Everything has already been written. We now just import libraries and glue them together. If something is inefficient, it's cheaper to throw more RAM at it than to improve it.

With less to create, managers have less to manage. They create new bureaucratic filler tasks to justify their positions within the company. The engineers hate it, but what else are they going to do? Write code? That's preposterous!

Any code that is written must be created in such a way that it can be common to multiple projects. It will never be reused, but we pretend it will be to justify the internal budget spent on an engineer actually being allowed to think.

I think that's why so many developers move on to different careers.

When we started doing a lot of interviews, I noticed that we had the following pattern regarding developers' availabilities:

Developers by Experience

[...]

In fact, looking at the salary tables, there actually isn't a level of higher than 5 years. After that, you have a team leader position, and then you move into middle management, and then you are basically gone as a developer, I'm guessing.

- Career planning: Where do old devs go to? by Ayende Rahien

We go into this career with expectations of creativity and logical thought. We become dissatisfied when we learn the truth. We move on, or we die in our cubicles. I think that's why so many people are drawn to writing as an alternative career. We are already staring at the only tool we need all day, and we dream of the escapism.

Hardware engineering has already experienced it's transition to tedium years ago. Cheaper microcontrollers and CPUs eliminated the need for discrete components. Hardware modules are analogous to software libraries in the software world.

Now, firmware engineering is sounding its death rattle, too.

Firmware used to be as small as possible to create a cheaper, more compact product using a small amount of memory and power. Now, Android and large distributions of Linux are the low-end baseline. Our jobs are now to spend all our time massaging the code in libraries that software engineers import, trying to get them to compile for a single board computer.

I've come to a point in my life where I hesitate before telling people I'm a software developer. Am I, really? The answer is more complicated than I expected.

[...]

I don't feel like a software developer. I have most of the skills, the background, and an interest in the subject, but it just doesn't define me in the way that it seems to with my colleagues and friends in the same line of work.

- Not a Geek by Matt Gemmell

The difference between Mr. Gemmell and I is that most of my colleagues and friends are starting to feel the same way, and we have nowhere to go.