It goes without saying that software and systems engineering are more rapidly evolving fields than they've ever been; and that's saying something! Since I started programming I've watched this space accelerate its speed of evolution starting with the .com boom and bust. Less than ten years later cloud infrastructure and software as a service – or shared computing in general – were mainstays. Five years later we were compacting the skills of the industry through shift-left and the wider DevOps movement. Around that same time we were birthing three critical languages: Typescript, Go, and Rust. Now we sit at a very familiar intersection with AI and agentic engineering. There are camps of doubters, a good chunk of the industry has verbally committed to an exit from the field, some users have sent the pedal to the floor, and some amount of curious and intuitive engineers are just making our new-tomorrow work as best they can.
I. The recoil
The latter is what I always loved about this industry and it's been the only real constant I've ever known. Technologies, languages, and patterns all go in and out of style but a sense of optimism and curiosity for the future was constant. In the last 5-10 years though I've watched the industry recoil itself into rigidity and pessimism. These changing landscapes aren't all good; we've responded by implementing lengthy deployment and security checklists, we've manufactured rigid processes for innovation through RFCs and PRDs, and we've even dumped significant resources into research1 about what makes teams move faster and build higher trust within these very mechanisms. I bring you no data other than stories and anecdotes, but I do hope this piece inspires something to think more deeply about the ontological house we've constructed for ourselves.
I hate to say it, but a starting point for much of this change is the dominance of Computer Science and Computer Engineering graduates making their way into the industry. For those not in-the-know, these degrees are effectively math degrees and they rely heavily on a background of theory. They prepare you very little for the real world of engineering; that happens in your first years on the job as a SWE I and II.
The degrees themselves aren't new; CS departments started appearing at universities as early as 1962, and by the 90s the industry was already thirsting for them as a hiring credential. But producing them at scale is a different story. The dot-com bust actually cratered enrollment in the early 2000s; a lot of students looked at the wreckage and chose finance or law instead. The surge I actually felt came later. According to the Computing Research Association's Generation CS report2, CS bachelor's degrees rose 74% between 2009 and 2015; nearly five times the growth rate of all other fields combined. The National Center for Education Statistics data3 tells the same story going back to 1964: nothing in the historical record looks like what happened in that window. By the early 2010s, colleges that had never meaningfully produced CS graduates were suddenly pumping them out, and the industry's cultural composition shifted with it.
Along with those graduates came a shared framework for evaluation: the best way to judge a programmer was by their ability to solve algorithmic puzzles under pressure. This model spread from a handful of elite technology companies and was adopted industry-wide, despite most practitioners finding that hand-crafting well-known algorithms from memory bore little resemblance to actual engineering work. It carried the veneer of objectivity at a moment when the industry was under real pressure; high tech workforce demographics skewed heavily toward white and Asian men, with Black and Hispanic workers severely underrepresented4. A rigorous, ostensibly meritocratic test felt like a solution. It wasn't; it mostly laundered the same biases through a different filter.
The hiring filter didn't stay a hiring filter. Software jobs turn over fast. Most engineers change employers every couple of years, sometimes faster, and every move is another round of the same algorithmic puzzles. So leetcode became a recurring tax on staying employed. And anything you're tested on for the length of your career, you optimize for. You grind patterns on evenings and weekends that you'll never touch on the actual job, because the cost of being rusty is unemployment. Acceptance of the ritual became a proxy for belonging; if you weren't grinding, you weren't in the tribe, and the tribe was where the jobs were. Over time the workforce got worse at engineering, because the signal we were all chasing wasn't the signal of doing the work well.
I'll stop here and make clear two points, because I don't want them to be misunderstood:
- Education is not to blame for enshittification
- The groups harmed by the industry hiring pipeline and practices that were asking for change are also not to blame
While they are factors, we are all to blame; it took every ounce of us thinking without nuance and building without question to reach that point.
By post-pandemic lockdowns we'd reached peak enshittification5, per Cory Doctorow. Cory's story is mostly about systems and structure: incentives, lock-in, the lifecycle of platform decay. He's right, and I think his version came first. What I'd add is that the platform decay didn't happen to a healthy workforce. By the time platforms started turning on their users in earnest, the people building them had spent years optimizing for an interview ritual rather than the craft. That doesn't cause Doctorow's mechanism, but it made it easier to execute and harder to push back on from the inside. An enshittified workforce and an enshittified internet were happening at the same time, and they fed each other.
II. The false dichotomy
The two narratives that dominate AI discourse today are strawmen, and that's the point. The first is a future without AI, or at least one where we greatly restrict it6: sunshine, rainbows, and global warming eventually returning to a happy equilibrium. The second is a future where we fully embrace AI and everything is slop, marshes turn into sludge storage, and forests are leveled for nuclear energy to power the slop machine. Nobody you'd actually want to talk to holds either position straight. But these are the shapes our discourse has settled into, and that should tell us something about the room we're talking in. A divided, low-trust country under worsening economic conditions and incompetent leadership argues in cartoons because it has stopped expecting the other side to argue in good faith. The cartoons themselves aren't useful; they're the kind of device that keeps a society in its trench.
Behind the cartoons there's a future worth arguing for. One where AI gives us the tools to address the unequivocal power of Fortune 500 technology businesses, where regular people are given a technology they can learn to work alongside and harness to make their lives reasonably better while enjoying their lives substantially more. What if we could sustain the same volume of meaningful work as before but with a fraction of the overhead? I've felt the early shape of this. The first big effect I noticed when I transitioned to agentic engineering wasn't about output at all. It was that I had energy at the end of the day. I took more vacations. I had time for my family. I had time and energy for my hobbies again. I wasn't being drained of all my intellectual energy by the same problems that used to consume it. Of course, that rests on the idea that we don't become lazy and outsource our thinking or work to the machines, and that we become more competent tool wielders of more competent machines. It'd also require that we reject the assumption that companies like Anthropic, who claim they're the responsible parent in the room7, should be the only operators of life-changing technology.
Diverging from the cartoons takes curiosity, nuance, trial and error, and above all a willingness to be wrong.
I go back and forth on whether I really want to stay in the technology industry. On the one hand I crave the curiosity and experimentation of yesteryear, on the other hand I also don't want to relive the history of move fast and break things. A culture of constant disruption is also not a pleasant place to live because you can never really catch up. Your ontological houses become an ontological castle composed of epistemic bubbles; nobody truly knows the whole thing anyway. This was true before AI and it'll certainly be true again; it is a consequence of moving without confidence and is part of why I think the industry began to recoil. I, despite my own defiance, am an artifact of the false dichotomy simply by existing in its territory as you can see. We can instead choose a middle ground where we experiment without grandiose philosophical debate rooms housed in Slack Canvases or Google Documents; places where knowledge goes to be stripped of nuance and data gets compiled into half-truths, used as a forcing function on the document itself.
III. A cultural shift
I do more experiments as a result. I don't spend all day toiling in problem statements and arguing philosophy. I don't get lost in popular cargo-culting or dogma. My path to evidence is much cheaper and much more interactive. Rather than prescriptions from Product I now have an interactive partner to build with. Rigid timelines give way to intentional evolution.
The point is when the labor gets cheaper what gets more expensive is the question of what to do; the only option I feel like I'm left with is to decompose that complexity by replacing it with iteration. By breaking the big problem of what to do down into intentional hopping from rooftops to moonshots.
I would like to take these old eyes and let them see new again. That takes more than the momentum of just one or a few: it demands the same style of cultural shift that got us here in the first place.
Footnotes
-
Nicole Forsgren, Jez Humble, and Gene Kim, Accelerate: The Science of Lean Software and DevOps (IT Revolution Press, 2018). The annual DORA State of DevOps reports extend this research: https://dora.dev ↩
-
Computing Research Association, Generation CS: CS Undergraduate Enrollments Surge Since 2006 (2017). https://cra.org/wp-content/uploads/2017/02/Generation-CS.pdf ↩
-
National Center for Education Statistics, Degrees in computer and information sciences conferred by postsecondary institutions, by level of degree and sex of student: 1964–65 through 2021–22. https://nces.ed.gov/programs/digest/d23/tables/dt23_325.35.asp ↩
-
U.S. Equal Employment Opportunity Commission, Diversity in High Tech (May 2016). White and Asian American workers comprised 88% of the high tech workforce; Black and Hispanic workers were significantly underrepresented relative to the broader labor market. https://www.eeoc.gov/sites/default/files/migrated_files/eeoc/statistics/reports/hightech/diversity-in-high-tech-report.pdf ↩
-
Cory Doctorow coined the term "enshittification" in November 2022 to describe the lifecycle of platform decay: first good to users, then abusive of users to serve business customers, then abusive of both to extract value for shareholders. See: Doctorow, The 'Enshittification' of TikTok, Wired (January 2023). https://www.wired.com/story/tiktok-platforms-cory-doctorow/ ↩
-
The "doomer vs. accelerationist" framing has been the dominant fault line in public AI discourse since roughly 2023, crystallized by the e/acc (effective accelerationism) movement and its critics. See: Effective accelerationism, Wikipedia. https://en.wikipedia.org/wiki/Effective_accelerationism ↩
-
Anthropic publicly frames its mission around "responsible development" of AI for the long-term benefit of humanity. See: https://www.anthropic.com/company. Though the question of whether safety-focused labs should occupy privileged positions as gatekeepers of transformative technology remains genuinely contested. ↩