Deprecated: How Engineering Learned to Treat People Like Legacy Code
Engineering used to hold itself to something higher than the transaction. Somewhere between the rise of the giants and the race to deprecate human work, we forgot Kant’s most basic rule. This is about that.
“Act so that you treat humanity, whether in your own person or in that of another, always as an end and never as a means only.”
— Immanuel Kant, Groundwork of the Metaphysics of Morals, 1785
Kant wasn’t writing about tech. He was writing about the fundamental moral error of using a person as a tool toward your own ends — of treating a human being as an instrument rather than as the whole point.
But every time I watch a layoff announced via Slack, every time I hear someone called a “resource” in a planning doc, every time I sit in a roadmap review where the engineers building the thing aren’t even in the room — I think about that line.
Because engineering, for a long time, had something most industries didn’t: a quiet shared belief that what we built mattered, and so did the people building it. Not in the motivational-poster sense. In the actual sense. We cared about the craft. We cared about each other. The work had intrinsic weight.
I’m not sure exactly when that changed. But it did. And I think about it more than I probably should.
We Used to Hold Ourselves to Something
I remember when I believed engineers were different. Not better — just oriented differently.
Product wanted growth. Business wanted margin. Engineers wanted to build something right. Something that helped people. Something we could be proud of, that the person next to us could be proud of, in a way that had nothing to do with a quarterly metric.
That wasn’t naïveté. That was a value system.
The code review wasn’t just a gatekeeping ritual. It was respect. I care enough about what you’re building to actually look at it. The architecture debate that ran 90 minutes wasn’t inefficiency. It was two people who gave a damn arguing about the right answer. The late night wasn’t martyrdom. It was craft.
That version of engineering culture wasn’t perfect. But it had something. Something that felt worth protecting.
Then the Giants Arrived
Somewhere around the time certain names became household words — when the mythology of the 10x engineer fused with the mythology of the billionaire founder — the culture shifted.
It didn’t happen all at once. It crept.
First, the language changed.
People became resources. Teams became headcount. Projects became bets. Decisions became aligned. And slowly, without anyone calling it out in the room, the human equation changed too. The person next to you wasn’t a colleague anymore. They were a unit of capacity, slotted into a roadmap someone else owned, building toward someone else’s vision, accreting wealth for someone else’s net worth.
Kant has a word for that arrangement. He calls it treating humanity as a means.
And the uncomfortable truth is that most of us have been complicit. Not because we’re bad people. Because the system rewards the transaction and punishes the dissent. Because self-preservation is real, and mortgages are real, and the fear of being the one without a seat when the music stops is very, very real.
I’ve watched brilliant engineers — people I’d follow into a bad codebase without hesitation — swallow things they’d have walked out over a decade ago. Not because their values changed. Because the cost of acting on them went up.
The Maturity Trap 🪤
There’s a developmental arc I keep returning to: dependence → independence → interdependence. Most people know the frame from Covey, but the instinct is older.
The value arc that runs alongside it maps almost too cleanly:
Selfish = I take what I need. You don’t factor in.
Transactional = I’ll give you this if you give me that.
Unconditional = I act on my values regardless of what I get back.
Children live in transactional value. That’s appropriate — they’re children. My two kids negotiate screen time and candy with the cold precision of a procurement manager. I find it charming at home.
I find it embarrassing at work.
Because I’ve watched the same dynamic play out in sprint planning, in performance reviews, in the way some leaders hand out recognition — strategically, conditionally, always with a ledger running in the background. I’ll advocate for you when it’s politically safe. I’ll credit your work when the room is watching. I’ll support this initiative as long as it aligns with what’s good for me right now.
That’s not leadership. That’s a toddler with a bigger title and a company card.
The engineers I’ve respected most operated from unconditional values. They gave real feedback because the work deserved real feedback. They pushed back because the right answer mattered more than the room’s temperature. They stayed late because they were watching, even when no one else was.
We’re not building enough of that anymore.
We’re optimizing for the transaction.
The AI Endgame Is the Logical Conclusion 🤖
Here’s where it gets uncomfortable.
The race to automate engineering work — the “AI will close your tickets” narrative, the fever to ship models that can replace entire teams — isn’t just a product story. It’s the endpoint of the means-as-end trajectory made explicit.
If you believe engineers are units of capacity, then replacing them with a cheaper unit is just good resource management. The logic is internally consistent.
And deeply, philosophically broken.
What we’re building toward — a world where human engineers are deprecated, where the org chart terminates at a model, where the end state is a company that doesn’t need people except to hold the equity — isn’t an accident. It’s what you get when a generation of leadership stopped seeing the people shipping code as ends in themselves and started seeing them as an expensive intermediate step.
That’s not a prediction about AI capability. That’s a value statement dressed up as a roadmap.
And the engineering community — which used to push back on things like this, which used to have enough collective self-respect to call out a bad idea even when it came from the top floor — has been conspicuously quiet.
I understand why. I’ve been quiet too, in rooms where I shouldn’t have been.
What Passes for a Manifesto Now
We write a lot of things that look like conviction.
Engineering blog posts about psychological safety that were approved by five stakeholders before publishing. Values statements that survived a legal review. Manifestos that use the language of meaning without any of the actual risk.
The tell is always the same: they never name a cost.
Real values cost something. They put you on the wrong side of a conversation, a quarter, a reorg. If your engineering philosophy only gets tested when everyone already agrees with it, it’s not a philosophy. It’s a vibe.
We’ve gotten very good at building elaborate ethical frameworks that conveniently align with whatever is already profitable. A kind of moral hallucination — outputs that look like values, trained on none.
I’ve read enough of them. I’ve probably written pieces of a few of them.
I Don’t Have a Clean Landing Here 💭
This isn’t a five-step framework. This isn’t “here’s how to fix tech culture in Q3.”
This is just the thing I’ve been thinking about, sitting with the gap between the engineering culture I believed in when I was coming up — where the argument in the design doc was the point, where the person who told you your architecture was wrong was doing you a favor, where we built things because they were worth building — and what I see now.
I think we can do better than shallow manifestos that put meaning behind virtueless direction.
I think the engineers who remember what it felt like to build something with people they genuinely respected are still out there. Still in the room. Still carrying the standard quietly, maybe too quietly.
And I think the first move is small.
Refuse to call your colleague a resource. Say out loud that a platform built on the premise that humanity is an obstacle to be automated around is not a neutral technical project. Push back once in a meeting where it costs something.
Kant’s formula isn’t complicated.
Treat people as ends. Not inputs.
We used to know that.
Some of us still do.