Did you ever watch Star Trek growing up (or, say, when you were a full-grown adult)? It doesn’t matter which series, could be TOS or TNG or NKOTB — they all share a common trope whereby an engineer or engineers will spew technobabble to describe some problem they’re having with the
Well, watching the entirety of TNG on Netflix when I was growing up about two years ago, I got to thinking about how I really admired Lieutenant Commander Geordi La Forge. He’s not really the most important person in the show and
As someone who studied mechanical engineering in college, I love that 300 years in the future, there are still engineers — not software engineers, but real engineers, mechanical engineers. Mechanical engineers are where the term “engineer” comes from; in the 19th Century (and apparently, the 24th), humanity was harnessing the power of heat to convert water into pressurized steam — pressurized to a point where it would rupture whatever container you put it in and explode outward, killing or maiming the poor souls who were charged with operating these steam engines in their early days. So people started studying what happens to materials and shapes when they’re subjected to internal and external stresses, laying out standards for allowable pressures and inventing mechanisms like safety valves to make steam engines safer. Once these
What’s not necessarily apparent to the outside observer is that the power source behind each of these concepts (except, maybe, the warp drive) is basically the same — heated and pressurized gas. The mechanical engineer’s job is to safely and efficiently direct the heating and pressurization (and cooling and de-pressurization) of gasses in order to do work. That’s basically what’s happening in your car’s engine, your air conditioner, a jet engine, your refrigerator, and the Falcon Heavy rocket, which is why so much of the mechanical engineering profession (and surrounding professions, like materials science) revolves around channeling, directing, and monitoring the heat and pressure of gasses. Entire careers can be spent in materials science working on an alloy that can withstand another few degrees before melting, on optimizing the curvature radius of a pipe’s bend, or on the precise attack angle of each airfoil blade in a turbine so that you can extract just a bit more kinetic energy from the chemical potential energy of a fuel source.
Meanwhile, in my actual profession of software engineering, the software engineers just sort of … write code, I guess? Where’s the engine in that?
But recently, I’ve been thinking a bit more metaphorically about the software engineering profession. For a long time, I mentally made a distinction between “software engineers” (those who wrote infrastructural code) and “software developers” (those who write applications on top of infrastructural code), which seemed like a meaningful, if blurry, distinction. But, the more I think about it, the more artificial the distinction appears, created primarily for the purpose of keeping me down. (I would primarily consider myself a developer.) Instead, I’ve completely retooled my mental model for what a software application is and how an engineer relates to it.
You see, a software application isn’t just some hunk of code that lives on a computer, it’s a machine that turns data into information, and just like mechanical engineers optimize the heat and pressure of gasses through tubes, a software engineer’s job is to optimize the flow and quality of data through a system, whether they’re laying down the foundations of that system or building applications on top of those foundations to turn the data into something useful, like a mechanical engineer turns potential energy into kinetic. If data is the oil of the 21st Century, then software engineers will build the engines to turn that potential into something useful.
Here are some tenuous examples of how I think engineering works in the 20th, 21st, and 24th Centuries:
20th Century | 21st Century | 24th Century |
---|---|---|
Design for high octane levels | Move from scraping to integrating a trusted third-party API | Replace the tachyon converter with a warp particle accelerator |
Optimize dispersal through the fuel injector | Front-end Engineer | We’ve unclogged a backup of gluons in the forward warp nacelle, which should allow us to reach Risa within 14 hours. |
Build the combustion chamber out of new, higher-melting-point material | Switch from Vue.js to React.js | If my calculations are correct, with this modification to the neutrino generator we can run at Warp 9! |
Afterburners | AWS Autoscale | Eject the warp core before it detonates and ride the wave out of the muon nebula! |