Honestly, software engineering as a career only went down hill for me from when I began to when I retired.
(And I hesitate to even air that view in front of others that are already in the field because I am a kind of Pollyanna and don't want to foment bad vibes.)
But since I retired a few years ago it was clearly not LLMs that precipitated the decline of my enjoyment of the profession. Instead it was the slow erosion of agency and responsibility that did that.
I'll drop the euphemisms and just say outright that the inmates ran the asylum when I began in the 90's (at Apple, FWIW). The only one that really told me what to do was the tech-lead on the team. Not my manager—for sure not marketing or the CEO (ha ha — Jobs had not yet returned).
In effect, I and all other engineers were told, "Here's your sandbox, here's your shovel: you go make your sand castle however you want—so long as it does X, Y and Z. We'll ship it but you'll own it. You'll fix it, expand it…"
(A coworker whose sense of humor I always enjoyed said to me, perhaps seriously, "When someone drops code in my lap and says, 'It's yours now' the first thing I do is rewrite it." Yeah, that's what happens to someone's code when they moves on—becomes someone else's sandbox and they are free to knock down the castle, build another—Chesterton's Fence not withstanding, ha ha.)
To that end I feel a little bad for anyone that missed that era. I mean unless you enjoy writing unit tests, having code reviews, style guidelines, etc.—and I have certainly met younger engineers that have come on board that seem to enjoy those aspects of the these-days profession.
I admit that when I began it was in fact a bit intimidating when you realized that code you were writing, were responsible for, was going to ship on millions (in 1995? maybe?) of machines. The responsibility though also came with agency—the combination came to give me a sense of freedom, the power of using my discretion, and finally a sense that I was a valued contributor.
You can infer from the above what I disliked about the profession as I was aging out of it. My general sense is that the industry became too big though and too much money riding on it for management to entrust it to the "funny farm". But of course we cowboys who came up in that ward liked it the way it had been.
> Yeah, that's what happens to someone's code when they moves on—becomes someone else's sandbox and they are free to knock down the castle, build another—Chesterton's Fence not withstanding, ha ha.
As someone who references Chesterton’s fence often, I not only agree the code often gets rewritten when someone moves on, I even think it’s often the right thing to do - for medium to small projects where there is one or only a few people who own the code. The reason is because I’ve seen what happens when you don’t rewrite it - the new owner(s) don’t have intimate knowledge of the codebase, and as a result, they work at the speed of molasses regardless of their skill. I have left code behind to people who are better coders than me, and it took years for them to become productive.
To be fair, I have also seen large projects with many people get rewritten and have Chesterton bite back hard, having the projects go late, cost enormous sums of money, and end up as bad as the first time, so rewrites certainly aren’t always called for.
This is all changing dramatically with Claude, BTW, people can now get into a codebase and be productive without rewriting it. They might not understand it, but this is a positive development of some kind at some level.
> But since I retired a few years ago it was clearly not LLMs that precipitated the decline of my enjoyment of the profession. Instead it was the slow erosion of agency and responsibility that did that.
I've been working on a contract for a large corp. They asked me to design a piece of software over 6 months which I delivered on time and worked great — by the time we had to ship into PROD, the whole thing was canned unceremoniously.
Luckily they liked my work so much they moved me to another greenfield project. Worked on it for a year, had to invent novel solutions which I'm pretty proud of, and we shipped into prod last Autumn. I haven't heard a peep from anyone, whether the thing is working and by masterful skill of mine it hasn't crashed yet, or if no one is using it and it was just another bullshit job.
All this work, good pay, and nothing to show for it. Not even a pat in the back. I'm just a well-oiled cog in an unfathomable machine. I wonder if my career has any meaning at all. Recently they've asked me to deliver a feature for yesterday because of bad planning on their part, and when I mentioned how long it'll take, they've half-jokingly suggested to use LLMs so I can ship it in half the time to make their arbitrary deadline.
Joke's on them, in less than 6 months I'm out. 20 years as a software engineer, 15 as a contractor, and all I feel when I get at my desk is existential dread. There is just no pleasure at it, that I'd rather risk poverty but feel like my actions and efforts have tangible effects on the physical world.
Was producing more mediocre code ever the problem? This all feels like a Kafkian fever dream.
I remember arriving at Apple Park to meet a friend/coworker a few years before I retired. Sitting there enjoying the food by one of the huge, curved glass walls, he was distractedly focused on one of the gardeners that Apple employs. This man was out in the center part of Apple Park trimming a plant or something similar.
It was clear that my friend was looking on somewhat enviously and when I asked, he admitted as much.
And I knew too immediately the draw. Before I was old enough for "gainful employment" there was a neighbor who hired my sister and I (I think I was 11, my sister 10) to ride along with him and his kids (our neighborhood friends) and help with his lawn services business.
I know. But this was the 1970's, a small working-class neighborhood in a Kansas suburb… And he paid us by the hour, helped load/unload the lawn mowers. We'd get a free lunch at a "Wiley's" fast-food hamburger joint.
But despite the physical labor of pushing a lawn mower all over someone's yard, there was a curious sense of satisfaction that came from having arrived at a tatty, overgrown lawn but then leaving it looking neat, tidy. It is the usual "sense of accomplishment" that physical labor often metes out that is often more elusive in the white-collar world.
To be sure there's no arguing about the differences in pay—I'm talking strictly about a sense of job satisfaction. (And, over the course of my three decade career as a programmer, the closest to that had been early on when I had full ownership of the code.)
I fear this will be horribly self-indulgent, but I'll share it anyway:
I'd always been a computer person, but it wasn't until I'd reached my thirties that I realized I could make a career out of that interest. The joy of programming still gets me out of bed in the morning and sends me skipping happily to my desk in my home office. What I do wouldn't impress anybody at a technical level. I'm not an innovator. The world of software and tech would not suffer if I had never existed. But I like the guy I work for. I like the people I work with. I write stuff that lots of people use. I do it well enough that I can feel decently good about it.
And I'm watching all of what I enjoy in software as a career and craft gradually disappear. Upper management are now all True Believer AI zealots who know, just know, that AI is the future and therefore ensure that it is also the present. They've caused nothing but organizational chaos, shoved out knowledgeable people, in some misguided effort to remake the company in their image, and replaced them with, to me, obvious bullshit artists.
Engineering time and effort that might a few years ago have produced value and good experiences for users now produce mediocre "MCPs," used only internally, that turn out even more mediocre code and tests that don't test anything.
I don't have nearly the chops or talent you and your peers have. I never could have run with you guys or made the mark on the world that you did. What I do, and the processes I follow, are probably the exact stuff that drove you to retirement. Still, I enjoy what I do and hate that it's being taken from me and replaced with something I hate, overseen, in my company's case, by vapor merchants pretending to be visionaries/cutting-edge 'thought leaders.'
I'm glad some of us got to build things when the inmates ran the asylum, and I regret the money and 'progress' that strangled the life and joy out of it for you.
Just an aside: I've really enjoyed everything you've posted on HN and look forward to your comments. Thanks, and cheers.
I have to call you out a bit on the: "I don't have nearly the chops or talent you and your peers have".
Trust me, when I started at Apple in 1995 I was way in over my head. Or so I thought.
After a couple months on the job I asked a coworker down the hall (who seemed particularly chill—Hi, Brian!), "How long until I feel like I know what I'm doing?"
"6 months."
I liked the unambiguity of his answer even if it seemed kind of off the cuff.
He was more or less right. It was somewhere about 6 months that I more or less knew what I was headed in each morning to work to accomplish. And I felt like I, with a little help perhaps, could even contribute in a small way.
Still, I was always surrounded by some of the most amazing programmers I had ever met. One guy (hi, Cam!) could walk through a "backtrace" in machine code, look at the registers, addresses and data on the stack, and then declare, "You're accessing memory after you've already released it. Do you know what could be 24 bytes in size?"
And who was I? Some kid from Kansas with no degree in software engineering.
It may have in fact taken closer to two decades before I was able to shake off the imposter syndrome. At some point I had to admit that I wasn't so dense to have not learned anything in my 20+ years of coding. I was still not on Cameron's level, never will be, but I might have made up for that shortcoming by leaning into being prolific, coding two or three prototypes quickly in order to finally determine The Best Path.
Just from your comment I would be willing to bet your enthusiasm alone would make you a valuable asset.
That is kind of how it worked: there were some people that could hold multiple threads in their head and rattle off a semaphore strategy that was performant, skirt a deadlock.
There was the "math guy". We all knew who they were and would cycle by their office when we were wrestling with matrix inversions and the order of transforms.
And there were people that you could rely upon to take perhaps the most dreaded task of a project and work diligently at it. Trust me, no one split hairs over whether that individual could disassemble PPC code just by looking at it. The team appreciated the "tanks" that could do some of the drudge-work. (I was from time to time that person.)
I don't need to belabor a point, you get it, it took all types. It took me some time to see that though, and longer still to see where I fit in as well.
When I started the things that made you good in this industry got you bullied - or worse - in high school, and we were not the ones invited to parties during university. Then with all the success and money it attracted the wrong motivations; no longer did you build software to change the world, but to get rich and change your world. And now the circle completes, as those who got rich but could not affect the geopolitical changes they wanted via their work are doing it with their money.
"Spark" might be putting too fine a point on it if I am being honest (and I always am, ha ha).
But I vibe-coded a web site [1] that I would not have otherwise attempted (I just didn't want to have to figure out how to learn a map-type framework in order to put little points-of-interest on a web page.)
I also vote-coded an extremely esoteric app for turning .mpo files into stereograms that you can then print to display in an old-fashioned stereoscope [2].
I have lately been learning (I hope?) to build a hobbyist analog computer. This a deep dive into electronics—something I have no training in.
And I have already queued up a couple of my abandoned projects (also esoteric) that I hope to turn an LLM loose on when I free up some time (from my current analog computing obsession).
It's hard to say if I would not have pursued all the above without an LLM. I am giving examples though of projects that I feel were sort of on the tipping point for me as to whether they were worth the effort to pursue or not—the learning-curve-required vs. useful-end-product balance. I am finding the LLMs are a finger on the scale tipping it more often toward "Go for it." Maybe you would call that a "spark"?
(And I hesitate to even air that view in front of others that are already in the field because I am a kind of Pollyanna and don't want to foment bad vibes.)
But since I retired a few years ago it was clearly not LLMs that precipitated the decline of my enjoyment of the profession. Instead it was the slow erosion of agency and responsibility that did that.
I'll drop the euphemisms and just say outright that the inmates ran the asylum when I began in the 90's (at Apple, FWIW). The only one that really told me what to do was the tech-lead on the team. Not my manager—for sure not marketing or the CEO (ha ha — Jobs had not yet returned).
In effect, I and all other engineers were told, "Here's your sandbox, here's your shovel: you go make your sand castle however you want—so long as it does X, Y and Z. We'll ship it but you'll own it. You'll fix it, expand it…"
(A coworker whose sense of humor I always enjoyed said to me, perhaps seriously, "When someone drops code in my lap and says, 'It's yours now' the first thing I do is rewrite it." Yeah, that's what happens to someone's code when they moves on—becomes someone else's sandbox and they are free to knock down the castle, build another—Chesterton's Fence not withstanding, ha ha.)
To that end I feel a little bad for anyone that missed that era. I mean unless you enjoy writing unit tests, having code reviews, style guidelines, etc.—and I have certainly met younger engineers that have come on board that seem to enjoy those aspects of the these-days profession.
I admit that when I began it was in fact a bit intimidating when you realized that code you were writing, were responsible for, was going to ship on millions (in 1995? maybe?) of machines. The responsibility though also came with agency—the combination came to give me a sense of freedom, the power of using my discretion, and finally a sense that I was a valued contributor.
You can infer from the above what I disliked about the profession as I was aging out of it. My general sense is that the industry became too big though and too much money riding on it for management to entrust it to the "funny farm". But of course we cowboys who came up in that ward liked it the way it had been.