When I was growing up, many of my friends' parents worked in aerospace and defense. Later, when I entered the software industry, many of my peers followed the same path. Their salaries were almost always higher than mine.
I had, and still have, many friends working at Fortune 500 companies as engineers. Whenever I've asked "what's it like working for company X?" the response is almost invariably "the pay is good, but they work me hard."
Choosing a career path is challenging. A career in software engineering specifically boasts unique challenges. I want to raise some of these ideas and share my thoughts on them.
Abstraction is Hostile to Compartmentalization
This gets at the core of why I didn't choose the defense industry.
Mechanical and electrical engineering can usually be compartmentalized more easily than software. For example, an electrical engineer may be given a board layout with instructions to tighten certain characteristics while preserving functionality. A mechanical engineer can be given a few part drawings and told to design a bracket that performs to specification.
Software is unique among engineering disciplines because it's difficult to work on even small components without some understanding of the system's architecture. This is a consequence of abstraction: software design intent is rarely hidden from the people implementing it.
In the defense industry, this translates to how much a software engineer has to know about a system's capabilities, which confers a nontrivial burden that most other engineers aren't often forced to confront:
- How can this system be misused?
- What are the consequences of misuse?
- What if my creative contribution inspires misuse?
- Is the intended use of this system unconscionable?
As an aside, I make no moral judgment against engineers working in the defense industry. They believe they're doing the right thing, and that matters. A lot. Moreover, I am not exactly a pacifist; if there were ever enemy troops landing on the San Francisco shores, I'd have pivoted to a defense job immediately.
Concerning Software Specifically
These questions became more visible in the machine learning community around 2020 when pioneering computer vision researcher Joseph Redmon (pjreddie) publicly stepped away from the field, citing concerns about military and surveillance applications. The community was split: many sided with Redmon, and many opined that technology doesn't confer moral culpability to creators upon misuse.
While I have been known to enjoy a philosophy discussion or two, the more I engaged with the ideas, the less I was convinced that pure rationality would arrive at acceptable conclusions. The problem was deeper, but the solution is much simpler.
If you think it's wrong, then it is wrong for you.
There is a simple moral axiom that goes something like:
If you believe something is wrong and you do it anyway, you have already crossed a moral boundary - regardless of whether others think the action is justified.
In-depth discussion of moral philosophy is far beyond the scope of this blog post. However, it seems obvious that knowingly doing something you fully believe is wrong amounts to a violation of your own conscience. This is, by most accounts, a form of moral transgression. We have to consider the possibility that something isn't wrong merely because it feels wrong. It may feel wrong simply because it is wrong, but the exact reasoning escapes us.
My decision to stay out of the defense industry hinged on this single idea. Hypothetical moral conundrums are just that: hypothetical. I genuinely humored the idea that I don't have the stomach for the work, or I'm somehow acting cowardly by not pursuing it. What I really needed was the ability to trust my intuition. I didn't feel good about it, I felt the "assume maximum responsibility" approach was best, and I had a hard time reconciling these perspectives with a career in defense.
The solution was found in respecting that not every conviction I have with respect to my own actions can be fully articulated.
Money is nice, but...
I've had the chance to discuss these ideas with many professionals, and I discovered that this perspective is surprisingly common among researchers and senior engineers. Researchers often have to think about end-application to secure funding. Senior ME/EE are integrating the system in ways not possible without deep architectural knowledge. The prevailing opinion can be summarized as "money is nice, but at some point, you have to live with yourself."
It's a trope for a reason.
How much is money really worth?
There's also the dilemma of work culture. By the time I graduated college and became fully invested in my career, I had already been working at a boutique engineering firm for a couple years. I was permitted to work on pretty much anything I wanted in service to my employer's products. I pitched my projects to the leadership, we negotiated the deadlines, and I was given the resources to make it happen. The office was staffed by people who genuinely loved their jobs. My Director of Software once told me "yeah you could earn more working direct for a customer, but they're going to be watching you like a hawk to make sure you're butt-in-seat 8AM to 5PM, and you'll be stuck mid-level until you're in your 40's."
It is by no coincidence that the problems of work culture and ethics came to my attention in tandem; the philosophy my environment imbued on me is wholly orthogonal to Fortune 500 / defense industry employment. I was given the proverbial "better than money" job, so it wasn't hard for me to reach conclusions.
Off my high horse
My ultimate reaction to these ideas was to choose medicine: a domain with a (nominally) strong humanitarian bend. However, this is by no means "morally superior" to e.g. someone working in video games. On the contrary, the American medical system is alarmingly profit-driven, while game developers frequently have some of the most pure intentions. Some people work just to keep our lights on and houses warm - this too is a moral good. Everyone grapples with self-actualization and, generally speaking, everyone is trying to have a net positive impact.
The ideas I've presented here apply to most professions, but I think the creative element of engineering makes them more relevant. The capacity to create carries responsibility. Where the line is will always be debated - but ignoring your own conscience rarely ends well.