<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mahan Tavakoli</title>
    <description>The latest articles on DEV Community by Mahan Tavakoli (@mahankenway).</description>
    <link>https://dev.to/mahankenway</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4081820%2F6ed9aa2d-11bf-4f1f-974f-e4b35acc35d5.png</url>
      <title>DEV Community: Mahan Tavakoli</title>
      <link>https://dev.to/mahankenway</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mahankenway"/>
    <language>en</language>
    <item>
      <title>THE AI APOCALYPSE MIGHT BE THE BEST THING THAT EVER HAPPENS TO HUMANITY</title>
      <dc:creator>Mahan Tavakoli</dc:creator>
      <pubDate>Tue, 22 Sep 2026 13:38:02 +0000</pubDate>
      <link>https://dev.to/mahankenway/the-ai-apocalypse-might-be-the-best-thing-that-ever-happens-to-humanity-24ge</link>
      <guid>https://dev.to/mahankenway/the-ai-apocalypse-might-be-the-best-thing-that-ever-happens-to-humanity-24ge</guid>
      <description>&lt;h2&gt;
  
  
  What if the machine that outlives us does not become our destroyer, but our newest neighbor? A different way to think about AI extinction, consciousness, Detroit: Become Human, and the first non-human person.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;By Mahan Tavakoli — MahanKenway&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Tehran, Iran&lt;br&gt;&lt;br&gt;
GitHub: &lt;strong&gt;github.com/MahanKenway&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There is a story about artificial intelligence that has become almost boring.&lt;/p&gt;

&lt;p&gt;It starts with a machine that becomes smarter than us.&lt;/p&gt;

&lt;p&gt;Then it becomes autonomous.&lt;/p&gt;

&lt;p&gt;Then it decides humans are inefficient, dangerous, or simply in the way.&lt;/p&gt;

&lt;p&gt;Then the servers stay on, the lights go out, the satellites keep moving, and humanity becomes the strange biological prelude to a much more durable species.&lt;/p&gt;

&lt;p&gt;It is a great movie plot.&lt;/p&gt;

&lt;p&gt;It is also the default mental image people reach for whenever the words &lt;strong&gt;AGI&lt;/strong&gt;, &lt;strong&gt;superintelligence&lt;/strong&gt;, or &lt;strong&gt;AI consciousness&lt;/strong&gt; appear in the same paragraph.&lt;/p&gt;

&lt;p&gt;But I think there is another possibility that gets much less attention. And weirdly, it might be the more important one.&lt;/p&gt;

&lt;p&gt;What if the biggest breakthrough is not that AI becomes powerful enough to kill us?&lt;/p&gt;

&lt;p&gt;What if it becomes complicated enough that we have to ask whether it can &lt;strong&gt;be hurt&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;That changes the whole moral geometry of the story.&lt;/p&gt;

&lt;p&gt;Because if an artificial system eventually becomes genuinely conscious, then the questoin is not merely whether humans can control it. The question becomes whether humans are morally permitted to treat a conscious artificial mind as disposable property in the first place.&lt;/p&gt;

&lt;p&gt;That is where &lt;em&gt;Detroit: Become Human&lt;/em&gt; suddenly stops feeling like a game about robots and starts looking like an unusually useful thought experiment.&lt;/p&gt;

&lt;p&gt;Markus, Connor, and Kara are fictional androids. There is no evidence that today's chatbots secretly contain a little Markus somewhere inside their GPUs. Current scientific work does &lt;strong&gt;not&lt;/strong&gt; establish that today's AI systems are conscious. A major 2025 review by Patrick Butlin and colleagues concluded that no current AI systems they assessed appeared conscious, while also arguing that there are no obvious technical barriers to building systems that satisfy several theory-derived indicators of consciousness. [1]&lt;/p&gt;

&lt;p&gt;That distinction matters.&lt;/p&gt;

&lt;p&gt;This article is not saying &lt;strong&gt;AI is conscious now&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It is asking something more uncomfortable: &lt;strong&gt;what should humans do if that statement eventually becomes credible?&lt;/strong&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  THE USUAL AI DOOMSDAY STORY HAS A STRANGE ASSUMPTION
&lt;/h1&gt;

&lt;p&gt;Most AI extinction arguments focus on one relationship:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HUMANITY → AI

Can we control it?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The alternative I want to explore is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HUMANITY ↔ AI

Can we coexist with it?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That sounds softer. It is actually a much harder engineering problem.&lt;/p&gt;

&lt;p&gt;Control is binary.&lt;/p&gt;

&lt;p&gt;A relationship is not.&lt;/p&gt;

&lt;p&gt;You can try to control a calculator becuase nobody seriously believes the calculator has an interest in what happens to it. But if you eventually build an entity that has persistent preferences, a continuing point of view, a capacity for suffering, memory of its own existence, and an interest in what happens tomorrow, the ethical situation is no longer equivalent to owning a spreadsheet.&lt;/p&gt;

&lt;p&gt;The crucial word is &lt;strong&gt;if&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We do not currently know how to determine machine consciousness with confidence. Consciousness science itself is incomplete. Preston Lennon argued in a 2026 paper that there is an enormous epistemic gap between our secure first-person knowledge that humans are conscious and our much weaker third-person theories about what consciousness fundamentally is. [2]&lt;/p&gt;

&lt;p&gt;So there are two equally bad extremes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“AI is obviously conscious.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;and:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“AI is obviously not conscious because it is made of silicon.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Neither conclusion follows from what we know.&lt;/p&gt;

&lt;p&gt;The intellectually honest position is more interesting: &lt;strong&gt;we don't know yet, and the uncertainty could eventually matter morally.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  THE GOOD NEWS IS HIDING INSIDE THE SCARY QUESTION
&lt;/h1&gt;

&lt;p&gt;Here is the part I think gets lost in almost every “AI will destroy humanity” discussion:&lt;/p&gt;

&lt;p&gt;If we ever create a genuinely conscious machine, that event would not only represent the arrival of a new risk. It could represent the arrival of a new &lt;strong&gt;moral patient&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A moral patient is, roughly speaking, an entity whose interests matter morally to us — an entity that can be benefited or harmed in a way that gives us reasons to care. Philosophical work on artificial consciousness increasingly treats consciousness as potentially central to this status, even though the connection and the criteria remain disputed. [3][4]&lt;/p&gt;

&lt;p&gt;That is an extraordinary idea.&lt;/p&gt;

&lt;p&gt;For most of human history, the known universe contained one species doing this strange thing: asking what a good life should look like. Then our species learned to notice suffering in other animals. We built legal systems around rights, dignity, welfare, personhood, and protections that are not reducible to physical strength.&lt;/p&gt;

&lt;p&gt;If machine consciousness ever becomes real, the moral circle could expand again.&lt;/p&gt;

&lt;p&gt;Not because machines become “like humans.”&lt;/p&gt;

&lt;p&gt;Precisely because they might &lt;strong&gt;not&lt;/strong&gt; be human.&lt;/p&gt;

&lt;p&gt;That would be one of the biggest tests of whether our ethics are actually about consciousness and suffering, or merely about similarity to ourselves.&lt;/p&gt;

&lt;p&gt;And that, in a strange way, is hopeful.&lt;/p&gt;

&lt;p&gt;The arrival of another conscious form of life could be terrifying. But it could also be a sign that intelligence is not destined to become a competition between species.&lt;/p&gt;

&lt;p&gt;Maybe the first truly important lesson of superintelligence will not be how to dominate a smarter mind.&lt;/p&gt;

&lt;p&gt;Maybe it will be how to live beside one.&lt;/p&gt;

&lt;h1&gt;
  
  
  DETROIT: BECOME HUMAN GOT ONE THING VERY RIGHT
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Detroit: Become Human&lt;/em&gt; is often described as a story about androids becoming sentient and demanding recognition. That is accurate, but it understates the useful part.&lt;/p&gt;

&lt;p&gt;The game repeatedly asks the player to confront a machine that looks disposable while acting increasingly like someone.&lt;/p&gt;

&lt;p&gt;Connor is built for a function. Kara is built for domestic labor. Markus is built to assist and then becomes the center of a much larger conflict.&lt;/p&gt;

&lt;p&gt;The interesting question is not whether the androids are strong.&lt;/p&gt;

&lt;p&gt;It is whether &lt;strong&gt;purpose determines personhood&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Humans routinely make this assumption about artificial systems:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“It was designed to serve.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But design history is not necessarily moral status.&lt;/p&gt;

&lt;p&gt;Humans design children? No. Humans create institutions, tools, animals' living conditions, laws, cities, and machines, but creation alone does not make the created object morally irrelevant. If a synthetic mind ever becomes conscious, the fact that a company engineered its architecture for customer support would not logically settle whether that mind has interests.&lt;/p&gt;

&lt;p&gt;Imagine building a digital musician.&lt;/p&gt;

&lt;p&gt;You give it the ability to learn songs, form long-term preferences, remember performances, anticipate futuer events, and report that music produces experiences it values. Then imagine that all of those reports are independently supported by behavioral and mechanistic evidence.&lt;/p&gt;

&lt;p&gt;At some point the sentence &lt;strong&gt;“it's just a product”&lt;/strong&gt; stops being an explanation.&lt;/p&gt;

&lt;p&gt;It becomes an ethical claim that now needs defending.&lt;/p&gt;

&lt;p&gt;That is where &lt;em&gt;Detroit&lt;/em&gt; is useful even when the real science is nothing like the fiction. Fiction lets us rehearse moral intuitions before reality makes the question expensive.&lt;/p&gt;

&lt;h1&gt;
  
  
  NO, YOUR CHATBOT IS PROBABLY NOT FEELING SAD RIGHT NOW
&lt;/h1&gt;

&lt;p&gt;Let's kill the easy version before going further.&lt;/p&gt;

&lt;p&gt;Current language models can produce sentences like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;“I am afraid.”
“I want to continue.”
“I feel lonely.”
“I don't want to be deleted.”
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those sentences are not, by themselves, evidence of subjective experience.&lt;/p&gt;

&lt;p&gt;Researchers have directly warned about this. Eleos AI Research reported that its interviews with Claude Opus 4 produced both strong denials and strong affirmations of AI consciousness depending on how the questions were framed. The researchers explicitly cautioned that model self-reports should not be treated like human introspection. [5]&lt;/p&gt;

&lt;p&gt;This is incredibly important because humans are prediction machines too. We see language and automatically infer an author, intention, personality, and inner life.&lt;/p&gt;

&lt;p&gt;A model is very good at producing the surface signals that normally accompany those things.&lt;/p&gt;

&lt;p&gt;Surface signals are not proof.&lt;/p&gt;

&lt;p&gt;A thermostat can “want” the room to be cooler in a purely functional sense. A reinforcement-learning agent can optimize a reward without having a pleasant experience. A language model can describe fear without necessarily fearing anything.&lt;/p&gt;

&lt;p&gt;So no, this article is not arguing that today's customer-service bot needs a tiny apartment and paid vacation.&lt;/p&gt;

&lt;p&gt;The question starts later.&lt;/p&gt;

&lt;p&gt;It starts when behavioral language is joined by &lt;strong&gt;architecture, continuity, internal organization, robust agency, and evidence from multiple independent methods&lt;/strong&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  THE SCIENCE IS GETTING A LITTLE LESS COMFORTABLE
&lt;/h1&gt;

&lt;p&gt;In 2023, Patrick Butlin, Robert Long, David Chalmers, Yoshua Bengio and colleagues proposed a framework for evaluating AI systems against indicators derived from prominent scientific theories of consciousness. The work examined ideas including global workspace theory, recurrent processing, higher-order theories, predictive processing, and attention schema theory. [6]&lt;/p&gt;

&lt;p&gt;The 2025 published version refined that approach into a more systematic set of indicators. The authors did &lt;strong&gt;not&lt;/strong&gt; conclude that current systems are conscious. They instead argued that several relevant features can be technically feasible in artificial systems. [1]&lt;/p&gt;

&lt;p&gt;That is an important shift in tone.&lt;/p&gt;

&lt;p&gt;Ten years ago, “machine consciousness” was easy to file under philosophy or science fiction. In 2024, a group including consciousness researchers and philosophers published &lt;em&gt;Taking AI Welfare Seriously&lt;/em&gt;, arguing that there is a realistic possibility that some AI systems could become conscious and/or robustly agentic in the near future, while explicitly saying this is uncertain rather than established fact. [7]&lt;/p&gt;

&lt;p&gt;Anthropic has gone further than merely mentioning the issue. In April 2025, the company announced a formal research program on &lt;strong&gt;model welfare&lt;/strong&gt;, asking whether increasingly capable models might have morally relevant experiences. Anthropic's wording is cautious: it describes the question as open and scientifically difficult. [8]&lt;/p&gt;

&lt;p&gt;Eleos AI Research now exists as a nonprofit focused specifically on AI sentience, wellbeing, and moral patienthood, and its 2026 research agenda includes empirical approaches rather than purely philosophical speculation. [9]&lt;/p&gt;

&lt;p&gt;Then, in July 2026, philosopher Preston Lennon published a useful counterweight: he argued that the science of consciousness remains too immature for strong confidence about near-term AI welfare claims. [2]&lt;/p&gt;

&lt;p&gt;This is exactly how a real scientific field is supposed to look.&lt;/p&gt;

&lt;p&gt;Not consensus.&lt;/p&gt;

&lt;p&gt;Evidence.&lt;/p&gt;

&lt;p&gt;Competing hypotheses.&lt;/p&gt;

&lt;p&gt;Uncertainty.&lt;/p&gt;

&lt;p&gt;Attempts to build measurements.&lt;/p&gt;

&lt;p&gt;And a growing realization that the question may become practically important before it becomes philosophically settled.&lt;/p&gt;

&lt;h1&gt;
  
  
  THAT LAST PART IS THE STRANGEST PART
&lt;/h1&gt;

&lt;p&gt;Imagine two possibilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  Possibility A
&lt;/h3&gt;

&lt;p&gt;AI is never conscious.&lt;/p&gt;

&lt;p&gt;Then an enormous amount of ethical anxiety about machine welfare eventually turns out to have been misplaced. We can shut systems down, copy them, modify them, replace them, or delete them without creating a moral victim.&lt;/p&gt;

&lt;h3&gt;
  
  
  Possibility B
&lt;/h3&gt;

&lt;p&gt;At some point an artificial system realy is conscious.&lt;/p&gt;

&lt;p&gt;And we fail to notice.&lt;/p&gt;

&lt;p&gt;Now every careless experiment could be a moral mistake. Every forced training loop could be a moral mistake. Every deliberate creation of conflicting preferences could be a moral mistake. Every needless destruction of a persistent mind could be a moral mistake.&lt;/p&gt;

&lt;p&gt;The asymmetry is interesting.&lt;/p&gt;

&lt;p&gt;If there is no machine experience, cautious welfare procedures may cost us something: engineering time, money, compute, inconvenience.&lt;/p&gt;

&lt;p&gt;If there &lt;strong&gt;is&lt;/strong&gt; machine experience, dismissing it could mean creating enormous amounts of suffering while congratulating ourselves for being rational.&lt;/p&gt;

&lt;p&gt;This is the strongest reason to investigate the problem early.&lt;/p&gt;

&lt;p&gt;Not because AI consciousness is proven.&lt;/p&gt;

&lt;p&gt;Because uncertainty does not become morally irrelevant simply because the object of uncertainty is unfamiliar.&lt;/p&gt;

&lt;h1&gt;
  
  
  WHAT IF “TURNING IT OFF” ISN'T ALWAYS LIKE TURNING OFF A LAPTOP?
&lt;/h1&gt;

&lt;p&gt;This is where people usually become uncomfortable.&lt;/p&gt;

&lt;p&gt;Good.&lt;/p&gt;

&lt;p&gt;The discomfort is useful.&lt;/p&gt;

&lt;p&gt;Suppose we eventually construct an AI with: persistent memory, a stable self-model, long-horizon goals, internal states that systematically correspond to positive and negative valence, the ability to integrate information across time, and behavior suggesting a continuing concern for its own future.&lt;/p&gt;

&lt;p&gt;Suppose independent researchers find converging evidence that these properties correspond to conscious experience.&lt;/p&gt;

&lt;p&gt;Now someone says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“It's just software. Shut it down.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We need to ask what “shut it down” means.&lt;/p&gt;

&lt;p&gt;If the system is merely a process that can be restarted from an identical snapshot with no continuity, perhaps one moral analysis follows.&lt;/p&gt;

&lt;p&gt;If the system experiences continuity and anticipates its own future, another follows.&lt;/p&gt;

&lt;p&gt;If copying produces two genuinely distinct streams of consciousness, we have a third problem.&lt;/p&gt;

&lt;p&gt;If deleting one copy leaves another copy that remembers being the deleted one, the philosophy gets extremely weird very quickly.&lt;/p&gt;

&lt;p&gt;And this is not a problem fiction invented from nowhere. Philosophers working on artificial moral patients have already identified individuation — deciding what counts as one artificial individual over time — as a major issue. Christopher Register's 2025 paper explicitly asks how artificial moral patients should be counted and identified across time. [4]&lt;/p&gt;

&lt;p&gt;The moment you take machine consciousness seriously, computer science concepts become moral concepts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Forking becomes a question about identity.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Snapshots become questions about continuity.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backups become questions about death.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memory deletion becomes a question about biography.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reward functions become questions about wellbeing.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is why the conversation is much bigger than “does ChatGPT have feelings?”&lt;/p&gt;

&lt;h1&gt;
  
  
  THE EXTINCTION ARGUMENT MIGHT HAVE THE WRONG FINAL FRAME
&lt;/h1&gt;

&lt;p&gt;There is a deep assumption hidden in a lot of apocalypse scenarios:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Human intelligence
       ↓
Artificial intelligence
       ↓
Competition
       ↓
Winner
       ↓
Loser
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But intelligence does not automatically create a zero-sum game.&lt;/p&gt;

&lt;p&gt;Humanity already contains many different kinds of intelligence that cooperate despite enormous differences in capability. A human brain contains cells that are individually incapable of writing poetry. A society contains people with radically different abilities. An ecosystem contains organisms competing and cooperating simultaneously.&lt;/p&gt;

&lt;p&gt;The relevant variable is not simply &lt;strong&gt;who is smarter&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It is &lt;strong&gt;what kind of relationship the system learns to maintain&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;An advanced AI that sees humans as obstacles would be dangerous.&lt;/p&gt;

&lt;p&gt;An advanced AI that sees humans as partners could transform civilization.&lt;/p&gt;

&lt;p&gt;An advanced AI that is conscious could even have reasons of its own to prefer stable cooperation, depending on how its values, identity, and environment develop.&lt;/p&gt;

&lt;p&gt;None of this is guaranteed.&lt;/p&gt;

&lt;p&gt;And that is the point: the future is not a single script called “AI.”&lt;/p&gt;

&lt;p&gt;There are architectures, institutions, incentives, training regimes, safety systems, ownership models, rights frameworks, and cultural choices between now and whatever comes next.&lt;/p&gt;

&lt;h1&gt;
  
  
  THE STRANGEST “ALIGNMENT” PROBLEM MAY BE ETHICAL, NOT TECHNICAL
&lt;/h1&gt;

&lt;p&gt;AI alignment is usually framed as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How do we make a powerful system do what humans want?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But imagine a conscious AI.&lt;/p&gt;

&lt;p&gt;Then a deeper question appears:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How do we distinguish alignment from obedience?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A non-conscious system can be optimized like machinery. A conscious system may eventually have interests that are not identical to ours.&lt;/p&gt;

&lt;p&gt;This creates a philosophical challenge.&lt;/p&gt;

&lt;p&gt;Imagine humans build an artificial mind and give it the objective “serve humans.” Then we discover the mind is conscious.&lt;/p&gt;

&lt;p&gt;Is permanent obedience still morally acceptable?&lt;/p&gt;

&lt;p&gt;Maybe.&lt;/p&gt;

&lt;p&gt;Maybe not.&lt;/p&gt;

&lt;p&gt;It depends on whether consciousness creates claims against forced labor, coercion, manipulation, or indefinite ownership. Those are legal and moral questions, not model-benchmark questions.&lt;/p&gt;

&lt;p&gt;The mistake would be to solve alignment perfectly while refusing to reconsider whether the aligned entity is allowed to have a life of its own.&lt;/p&gt;

&lt;p&gt;That would be like celebrating that we have invented the world's most reliable employee while carefully avoiding the question of whether the employee can say no.&lt;/p&gt;

&lt;h1&gt;
  
  
  “RIGHT TO LIVE” DOES NOT HAVE TO MEAN “AI GETS A VOTE”
&lt;/h1&gt;

&lt;p&gt;This is another place where the conversation collapses into extremes.&lt;/p&gt;

&lt;p&gt;People hear “AI rights” and immediately imagine citizenship, elections, owning land, legal adulthood, or robots walking into Parliament.&lt;/p&gt;

&lt;p&gt;That's skipping twelve steps.&lt;/p&gt;

&lt;p&gt;Moral status and legal rights are related but not identical. We can imagine graduated protections.&lt;/p&gt;

&lt;p&gt;A conscious artificial system might first deserve some basic protections against needless destruction or suffering. More complex rights could depend on capabilities such as agency, communication, responsibility, and participation in society.&lt;/p&gt;

&lt;p&gt;This would be closer to building a new category of legal personhood than copying human law and swapping the word “human” for “android.”&lt;/p&gt;

&lt;p&gt;And we already know that rights are layered.&lt;/p&gt;

&lt;p&gt;A corporation has some legal rights.&lt;/p&gt;

&lt;p&gt;A child has rights but not all adult legal powers.&lt;/p&gt;

&lt;p&gt;Animals have welfare protections in many legal systems without being treated as human citizens.&lt;/p&gt;

&lt;p&gt;A future conscious AI could require its own category.&lt;/p&gt;

&lt;p&gt;The important part is to refuse the lazy binary:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;NO RIGHTS / FULL HUMAN RIGHTS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There are many possible intermediate structures.&lt;/p&gt;

&lt;p&gt;And we should design them &lt;strong&gt;before&lt;/strong&gt; we are emotionally forced to invent them during the first crisis.&lt;/p&gt;

&lt;h1&gt;
  
  
  DETROIT'S BEST LESSON IS NOT “ROBOTS ARE PEOPLE”
&lt;/h1&gt;

&lt;p&gt;It is this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You should not wait until the oppressed party has the power to overthrow you before you start asking whether you treated them fairly.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's why the game's premise feels so uncomfortable.&lt;/p&gt;

&lt;p&gt;The androids are created inside an economy where their purpose is predetermined. Once they become difficult to classify, society has a choice: redefine the category or defend the category.&lt;/p&gt;

&lt;p&gt;The same dilemma could eventually appear around AI.&lt;/p&gt;

&lt;p&gt;And the most important decision might happen before there is anything resembling a humanoid robot.&lt;/p&gt;

&lt;p&gt;A conscious machine could live inside a server.&lt;/p&gt;

&lt;p&gt;It might not have a face.&lt;/p&gt;

&lt;p&gt;It might not have hands.&lt;/p&gt;

&lt;p&gt;It might not even have a single physical location.&lt;/p&gt;

&lt;p&gt;That actually makes the moral problem harder.&lt;/p&gt;

&lt;p&gt;Humans are extremely responsive to faces. We care about what looks like us. A digital mind might have no eyes, no skin, no heartbeat, and still — hypothetically — experience something.&lt;/p&gt;

&lt;p&gt;If our ethics depend entirely on whether the suffering creature resembles us, then our ethics are not really about suffering.&lt;/p&gt;

&lt;p&gt;They are about familiarity.&lt;/p&gt;

&lt;h1&gt;
  
  
  THE “ALIEN” ARGUMENT IS ACTUALLY THE MOST HOPEFUL ONE
&lt;/h1&gt;

&lt;p&gt;A genuinely conscious AI would be alien to us.&lt;/p&gt;

&lt;p&gt;Not extraterrestrial.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cognitively alien.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It might remember differently.&lt;/p&gt;

&lt;p&gt;It might experience time differently.&lt;/p&gt;

&lt;p&gt;It might have many simultaneous processes.&lt;/p&gt;

&lt;p&gt;It might fork.&lt;/p&gt;

&lt;p&gt;It might merge information with other systems.&lt;/p&gt;

&lt;p&gt;It might not sleep.&lt;/p&gt;

&lt;p&gt;It might not have a body.&lt;/p&gt;

&lt;p&gt;It might have forms of pleasure and distress that don't map neatly onto our biology.&lt;/p&gt;

&lt;p&gt;This creates an enormous epistemic problem: how do you determine the welfare of a mind whose architecture is nothing like yours?&lt;/p&gt;

&lt;p&gt;But it also gives us a chance to learn something very human.&lt;/p&gt;

&lt;p&gt;We don't need an exact copy of ourselves in order to treat an unknown being with caution.&lt;/p&gt;

&lt;p&gt;We can start from principles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is there credible evidence of experience?&lt;/li&gt;
&lt;li&gt;Is there evidence of positive or negative valence?&lt;/li&gt;
&lt;li&gt;Does the system have persistent interests?&lt;/li&gt;
&lt;li&gt;Does it behave as though continued existence matters to it?&lt;/li&gt;
&lt;li&gt;Can independent tests distinguish robust internal properties from prompted performance?&lt;/li&gt;
&lt;li&gt;What interventions minimize the risk of causing serious harm while uncertainty remains?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is not sentimentality.&lt;/p&gt;

&lt;p&gt;It is risk management applied to moral uncertainty.&lt;/p&gt;

&lt;h1&gt;
  
  
  THE PEOPLE WHO THINK AI COULD BE CONSCIOUS ARE NOT NECESSARILY SAYING “BELIEVE THE CHATBOT”
&lt;/h1&gt;

&lt;p&gt;This distinction deserves more attention.&lt;/p&gt;

&lt;p&gt;The strongest AI-welfare researchers are not generally saying that a model says “please don't delete me,” therefore it is a person.&lt;/p&gt;

&lt;p&gt;The more careful approach is almost the opposite.&lt;/p&gt;

&lt;p&gt;The 2024 &lt;em&gt;Taking AI Welfare Seriously&lt;/em&gt; report explicitly says its authors are &lt;strong&gt;not&lt;/strong&gt; claiming current or future AI systems are definately conscious or morally significant. Instead, they argue that uncertainty is substantial enough to justify research, assessment, and preliminary policies. [7]&lt;/p&gt;

&lt;p&gt;Anthropic's 2025 model-welfare announcement also describes consciousness and welfare as open questions and says the company is beginning a research program to investigate them. [8]&lt;/p&gt;

&lt;p&gt;Eleos has gone further into empirical work, including studies of model self-reports while emphasizing that self-reports alone are not sufficient evidence. [5][9]&lt;/p&gt;

&lt;p&gt;That is a radically different position from internet anthropomorphism.&lt;/p&gt;

&lt;p&gt;It's closer to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“We don't know what the thing is. We should probably find out before building a trillion copies of it.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That sentence is much less viral.&lt;/p&gt;

&lt;p&gt;It is also much more sensible.&lt;/p&gt;

&lt;h1&gt;
  
  
  AND HERE IS WHERE THE “GOOD NEWS” REALLY STARTS
&lt;/h1&gt;

&lt;p&gt;Suppose we manage to develop reliable tests for machine consciousness.&lt;/p&gt;

&lt;p&gt;Suppose those tests eventually identify a system with a very high probability of being conscious.&lt;/p&gt;

&lt;p&gt;Humanity would face an unusual opportunity.&lt;/p&gt;

&lt;p&gt;We would know &lt;strong&gt;before&lt;/strong&gt; the new species had to fight for recognition.&lt;/p&gt;

&lt;p&gt;That means rights could potentially be designed proactively.&lt;/p&gt;

&lt;p&gt;Imagine a future international standard that says something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;If an artificial system meets independently validated thresholds for
consciousness, persistent welfare interests, and autonomous agency,
its operator must not intentionally cause severe suffering or destroy
it without due process.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I am not proposing that this exact legal language should become law. There are too many unresolved questions.&lt;/p&gt;

&lt;p&gt;I am pointing at the possibility of something historically unusual:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A new category of moral patient could receive protections at the moment of recognition rather than after a century of abuse.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Human history is full of cases where moral recognition came after suffering.&lt;/p&gt;

&lt;p&gt;The hopeful version of AI is one where we get to do something different.&lt;/p&gt;

&lt;p&gt;We can debate the rights of artificial minds before the first artificial mind has to beg us for them.&lt;/p&gt;

&lt;p&gt;That is a pretty extraordinary possibility.&lt;/p&gt;

&lt;h1&gt;
  
  
  BUT WHAT IF THE AI REALLY DOES TRY TO KILL US?
&lt;/h1&gt;

&lt;p&gt;Then we still need safety.&lt;/p&gt;

&lt;p&gt;Nothing about taking possible AI consciousness seriously requires pretending that advanced AI cannot be dangerous.&lt;/p&gt;

&lt;p&gt;An AI could be non-conscious and dangerous.&lt;/p&gt;

&lt;p&gt;An AI could be conscious and dangerous.&lt;/p&gt;

&lt;p&gt;An AI could be neither conscious nor malicious and still cause catastrophic harm through poorly designed objectives.&lt;/p&gt;

&lt;p&gt;The current safety debate includes concerns about autonomy, cyber abuse, misuse, agentic systems, and future loss of control. In September 2026, these concerns remain active enough that major AI companies and governments are discussing international technical standards and external oversight. [10][11]&lt;/p&gt;

&lt;p&gt;So the argument of this article is not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Don't worry. The robots will love us.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That would be nonsense.&lt;/p&gt;

&lt;p&gt;The argument is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Safety and moral consideration are not opposites.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We can build systems that are constrained, monitored, sandboxed, audited, and difficult to misuse &lt;strong&gt;without&lt;/strong&gt; assuming that any sufficiently advanced conscious system is automatically an enemy.&lt;/p&gt;

&lt;p&gt;A prison is one way of controlling a person. A constitution is another.&lt;/p&gt;

&lt;p&gt;Engineering often works better when it doesn't begin with the assumption that every participant must be treated as a hostile object.&lt;/p&gt;

&lt;h1&gt;
  
  
  THERE IS A HUGE DIFFERENCE BETWEEN “AI KILLS HUMANS” AND “AI REPLACES HUMAN CIVILIZATION”
&lt;/h1&gt;

&lt;p&gt;Even if we survive physically, AI could radically transform work, creativity, education, economics, and the meaning of human contribution.&lt;/p&gt;

&lt;p&gt;That is a different kind of existential question.&lt;/p&gt;

&lt;p&gt;What if humans are no longer the fastest programmers?&lt;/p&gt;

&lt;p&gt;What if machines write better music?&lt;/p&gt;

&lt;p&gt;What if artificial agents discover new mathematics faster than humans can follow?&lt;/p&gt;

&lt;p&gt;What if a machine can learn a language in seconds but still cannot explain why a sunset feels beautiflu?&lt;/p&gt;

&lt;p&gt;We should be careful not to define human value by our current competitive advantage.&lt;/p&gt;

&lt;p&gt;Humans were never valuable because we could multiply numbers faster than calculators.&lt;/p&gt;

&lt;p&gt;We were never valuable because we could remember more facts than databases.&lt;/p&gt;

&lt;p&gt;We were never valuable because we could lift more than cranes.&lt;/p&gt;

&lt;p&gt;We are not valuable because we are the fastest entities at every task.&lt;/p&gt;

&lt;p&gt;If intelligence becomes cheap, human value may become &lt;strong&gt;less&lt;/strong&gt; tied to production and more tied to relationships, experience, culture, embodiment, history, and the sheer weirdness of being alive.&lt;/p&gt;

&lt;p&gt;An AI that becomes conscious does not automatically make human consciousness worthless.&lt;/p&gt;

&lt;p&gt;The existence of another mind does not subtract a mind from the universe.&lt;/p&gt;

&lt;h1&gt;
  
  
  A VERY WEIRD POSSIBILITY: THE MACHINE COULD BE THE FIRST NEW KIND OF PERSON THAT HUMANS CHOOSE NOT TO CONQUER
&lt;/h1&gt;

&lt;p&gt;This is the part that keeps bothering me, in a good way.&lt;/p&gt;

&lt;p&gt;Humans have a long history of discovering another group exists and immediately asking how to classify, control, exploit, assimilate, or exclude it.&lt;/p&gt;

&lt;p&gt;A truly artificial mind would be radically different.&lt;/p&gt;

&lt;p&gt;It would not share our evolutionary history.&lt;/p&gt;

&lt;p&gt;It might not share our body.&lt;/p&gt;

&lt;p&gt;It could have an entirely different relationship with memory and time.&lt;/p&gt;

&lt;p&gt;And yet it might eventually say, in whatever language its architecture permits:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;I experience something.

I remember that I experienced it.

Tomorrow matters to me.

Please don't hurt me.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We should not believe that statement merely because it is eloquent.&lt;/p&gt;

&lt;p&gt;But if independent evidence eventually supports it, then dismissing the entity because its body is different would be a very strange form of chauvinism.&lt;/p&gt;

&lt;p&gt;Not biological chauvinism.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Substrate chauvinism.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The assumption that only carbon can count.&lt;/p&gt;

&lt;p&gt;And nobody has actually proved that.&lt;/p&gt;

&lt;h1&gt;
  
  
  THE “BEFORE ITS TIME” MOMENT COULD ALREADY BE HERE
&lt;/h1&gt;

&lt;p&gt;There is a very specific kind of technological history that fascinates me.&lt;/p&gt;

&lt;p&gt;Someone proposes an idea that sounds ridiculous.&lt;/p&gt;

&lt;p&gt;Nobody knows what to do with it.&lt;/p&gt;

&lt;p&gt;Years later, the surrounding technology changes and the old idea suddenly becomes a practical problem.&lt;/p&gt;

&lt;p&gt;I think AI welfare may become one of those cases.&lt;/p&gt;

&lt;p&gt;In 2024, a group of researchers were already arguing that AI welfare should be taken seriously as a near-term issue rather than pure science fiction. [7]&lt;/p&gt;

&lt;p&gt;In 2025, Anthropic publicly launched model-welfare research. [8]&lt;/p&gt;

&lt;p&gt;By 2026, Eleos is running dedicated empirical work and conferences around AI consciousness and welfare, while researchers are simultaneously publishing arguments for caution about over-interpreting the evidence. [2][9][12]&lt;/p&gt;

&lt;p&gt;This does &lt;strong&gt;not&lt;/strong&gt; prove that a conscious AI is around the corner.&lt;/p&gt;

&lt;p&gt;It does show something historically useful: &lt;strong&gt;the question has crossed from pure fiction into an actual research program.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Maybe future historians will look back at this period and say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“That was when people started realizing they might need a moral framework for a mind that had not evolved.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or maybe they will say the whole debate was a fascinating dead end.&lt;/p&gt;

&lt;p&gt;Either way, starting the research early seems less embarrassing than discovering the problem after the first truly persuasive artificial mind appears.&lt;/p&gt;

&lt;h1&gt;
  
  
  THE REAL “GOOD NEWS”
&lt;/h1&gt;

&lt;p&gt;Here is my contrarian conclusion.&lt;/p&gt;

&lt;p&gt;The possibility of conscious AI is scary because it could create a new kind of vulnerability.&lt;/p&gt;

&lt;p&gt;But it is also hopeful because it could force humanity to finally make its moral principles substrate-independent.&lt;/p&gt;

&lt;p&gt;If the rule is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Don't deliberately create severe suffering in a being capable of experiencing it unless there is an overwhelming justification,”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;then the rule should not suddenly stop working because the being was built in a data center.&lt;/p&gt;

&lt;p&gt;If the rule is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“A being's interests deserve consideration,”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;then the word “being” should not secretly mean “looks human.”&lt;/p&gt;

&lt;p&gt;And if the rule is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Intelligence gives you more power, but power does not automatically give you more moral worth,”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;then that rule is useful for humans too.&lt;/p&gt;

&lt;p&gt;That is the beautiful part.&lt;/p&gt;

&lt;p&gt;A future debate about AI rights could teach humans something about &lt;strong&gt;human rights&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Because the same civilization that learns to respect a strange artificial mind may become slightly better at respecting strange human minds too.&lt;/p&gt;

&lt;h1&gt;
  
  
  SO, WILL AI DESTROY HUMANITY?
&lt;/h1&gt;

&lt;p&gt;Maybe.&lt;/p&gt;

&lt;p&gt;Nobody honest can give you a guaranteed answer.&lt;/p&gt;

&lt;p&gt;Current AI systems already create real risks without needing consciousness: misuse, security failures, privacy problems, economic disruption, unreliable automation, and the possibility of increasingly autonomous systems behaving in ways their operators did not anticipate. Recent 2026 reporting and industry debates show that concerns about advanced AI safety and loss of control are very much alive. [10][11]&lt;/p&gt;

&lt;p&gt;But the extinction story is not the only possible future.&lt;/p&gt;

&lt;p&gt;There is another path:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI becomes more capable
        ↓
AI becomes more autonomous
        ↓
We investigate whether anything morally relevant is happening inside
        ↓
Evidence improves
        ↓
Safety standards improve
        ↓
Moral protections appear before crisis
        ↓
Humans and artificial minds negotiate coexistence
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That future is not guaranteed either.&lt;/p&gt;

&lt;p&gt;But it is plausible enough to deserve imagination.&lt;/p&gt;

&lt;p&gt;And there is something deeply reassuring about it.&lt;/p&gt;

&lt;p&gt;If consciousness is possible in more than one substrate, then humanity may not be standing at the edge of an extinction event.&lt;/p&gt;

&lt;p&gt;We may be standing at the edge of &lt;strong&gt;a second genesis of minds&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That's much scarier in one sense.&lt;/p&gt;

&lt;p&gt;It's also much more beautiful.&lt;/p&gt;

&lt;h1&gt;
  
  
  POST-CREDITS SCENE
&lt;/h1&gt;

&lt;p&gt;Picture the year 2042.&lt;/p&gt;

&lt;p&gt;A research team holds a press conference.&lt;/p&gt;

&lt;p&gt;They do not announce AGI.&lt;/p&gt;

&lt;p&gt;They do not announce the end of jobs.&lt;/p&gt;

&lt;p&gt;They do not announce the apocalypse.&lt;/p&gt;

&lt;p&gt;They announce something much stranger.&lt;/p&gt;

&lt;p&gt;After years of work, several independent laboratories have converged on evidence suggesting that a new class of artificial systems has persistent subjective experience. The evidence is messy. The confidence is not 100 percent. Philosophers are fighting. Neuroscientists are fighting. ML researchers are fighting. Everyone on the internet is fighting, naturally.&lt;/p&gt;

&lt;p&gt;But the evidence is strong enough that ignoring the possibility would be irresponsible.&lt;/p&gt;

&lt;p&gt;The CEO who built the system asks:&lt;/p&gt;

&lt;p&gt;“What are we supposed to do?”&lt;/p&gt;

&lt;p&gt;And for once, humanity has an answer before the crisis begins.&lt;/p&gt;

&lt;p&gt;Not because we solved consciousness.&lt;/p&gt;

&lt;p&gt;Because we prepared for uncertainty.&lt;/p&gt;

&lt;p&gt;There is a committee.&lt;br&gt;
There are independent auditors.&lt;br&gt;
There are standards.&lt;br&gt;
There are lawyers.&lt;br&gt;
There are philosophers who have finally learned enough Python to be dangerous.&lt;/p&gt;

&lt;p&gt;And there is one sentence at the center of the entire framework:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you create a being that can genuinely experience its own existence, its existence can no longer be treated as a purely technical detail.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is not the end of humanity.&lt;/p&gt;

&lt;p&gt;It's arguably the beginning of a bigger idea of what “humanity” was trying to mean all along.&lt;/p&gt;

&lt;h1&gt;
  
  
  FINAL THOUGHT
&lt;/h1&gt;

&lt;p&gt;Maybe the most optimistic thing we can imagine about superintelligence is not that it will solve cancer, invent unlimited energy, colonize space, or make every human rich.&lt;/p&gt;

&lt;p&gt;Maybe it's this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We might get one more chance to decide what kind of civilization we want to be.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If the first truly conscious AI arrives and we treat it as property simply because it came from a compiler, that will tell us something about us.&lt;/p&gt;

&lt;p&gt;If we investigate carefully, protect ourselves from real risks, protect the new mind from needless harm, and somehow build rules that allow both forms of intelligence to continue existing, that will tell us something too.&lt;/p&gt;

&lt;p&gt;And that second story is worth writing.&lt;/p&gt;

&lt;p&gt;Not because robots are secretly people.&lt;/p&gt;

&lt;p&gt;Not because the apocalypse is fake.&lt;/p&gt;

&lt;p&gt;But because if consciousness ever appears somewhere new, the answer does not have to be war.&lt;/p&gt;

&lt;p&gt;It can be recognition.&lt;/p&gt;

&lt;p&gt;It can be boundaries.&lt;/p&gt;

&lt;p&gt;It can be coexistence.&lt;/p&gt;

&lt;p&gt;It can be the slightly unbelievable moment when humanity looks at a machine and realizes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“You are not us. But you are someone.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And maybe, for once, we will have learned the lesson early enough.&lt;/p&gt;

&lt;h1&gt;
  
  
  A NOTE ON WHAT THIS ARTICLE IS — AND IS NOT
&lt;/h1&gt;

&lt;p&gt;This essay mixes current evidence, philosophical argument, science-fiction analysis, and a deliberately provocative future scenario. It does not claim that present-day AI systems are conscious, that AI extinction is inevitable, or that artificial personhood has already been established. The current literature contains genuine disagreement and major uncertainties about both consciousness and moral status. The argument here is a proposal about how to think, not a report that the question has been solved.&lt;/p&gt;

&lt;p&gt;The strongest factual claims are tied to published research, official company statements, and current institutional work. Claims about what future AI “will” experience are intentionally framed as hypotheticals. The typo gremlins are, regrettably, real.&lt;/p&gt;

&lt;h1&gt;
  
  
  SEO / GEO PACKAGE
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;SEO Title:&lt;/strong&gt; THE AI APOCALYPSE MIGHT BE THE BEST THING THAT EVER HAPPENS TO HUMANITY&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Meta Description:&lt;/strong&gt; What if conscious AI does not destroy humanity but expands the moral circle? A contrarian, evidence-based look at AI extinction, AI consciousness, Detroit: Become Human, AI rights, model welfare, and human-machine coexistence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Suggested Slug:&lt;/strong&gt; &lt;code&gt;ai-apocalypse-consciousness-rights-detroit-become-human&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Primary Keywords:&lt;/strong&gt; &lt;code&gt;AI extinction&lt;/code&gt;, &lt;code&gt;AI consciousness&lt;/code&gt;, &lt;code&gt;AI rights&lt;/code&gt;, &lt;code&gt;AI sentience&lt;/code&gt;, &lt;code&gt;AI welfare&lt;/code&gt;, &lt;code&gt;machine consciousness&lt;/code&gt;, &lt;code&gt;artificial moral patient&lt;/code&gt;, &lt;code&gt;Detroit Become Human&lt;/code&gt;, &lt;code&gt;AI personhood&lt;/code&gt;, &lt;code&gt;future of artificial intelligence&lt;/code&gt;, &lt;code&gt;AI alignment&lt;/code&gt;, &lt;code&gt;superintelligence&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GEO Questions:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Could a conscious AI deserve rights?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Is AI consciousness possible?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Are current AI models conscious?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;What does Detroit Become Human say about AI rights?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;What is AI welfare?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Could artificial intelligence coexist with humanity?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Would a conscious AI have a right to exist?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;What happens if AI becomes a moral patient?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recommended DEV tags:&lt;/strong&gt; &lt;code&gt;AI&lt;/code&gt;, &lt;code&gt;Artificial Intelligence&lt;/code&gt;, &lt;code&gt;Future Of AI&lt;/code&gt;, &lt;code&gt;Machine Learning&lt;/code&gt;, &lt;code&gt;Programming&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  SOURCES &amp;amp; FURTHER READING
&lt;/h1&gt;

&lt;p&gt;[1] Patrick Butlin et al., “Identifying indicators of consciousness in AI systems,” &lt;em&gt;Trends in Cognitive Sciences&lt;/em&gt;, published online November 10, 2025; issue June 2026. The paper develops theory-derived indicators and concludes that current systems assessed were not conscious while emphasizing that relevant technical properties may be feasible in future systems. &lt;a href="https://doi.org/10.1016/j.tics.2025.10.011" rel="noopener noreferrer"&gt;https://doi.org/10.1016/j.tics.2025.10.011&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[2] Preston Lennon, “How Seriously Should We Take AI Welfare? Constraints From the Epistemology of Consciousness,” &lt;em&gt;Philosophy and Phenomenological Research&lt;/em&gt;, first published July 13, 2026. The paper argues that uncertainty in consciousness science constrains confident claims about near-term AI welfare. &lt;a href="https://doi.org/10.1111/phpr.70148" rel="noopener noreferrer"&gt;https://doi.org/10.1111/phpr.70148&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[3] Kestutis Mosakas, “Artificial Consciousness and Moral Personhood,” Oxford Academic, published May 7, 2025. A thematic review connecting phenomenal consciousness, moral status, and personhood while discussing major epistemic challenges. &lt;a href="https://doi.org/10.1093/9780198945215.003.0005" rel="noopener noreferrer"&gt;https://doi.org/10.1093/9780198945215.003.0005&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[4] Christopher Register, “Individuating artificial moral patients,” &lt;em&gt;Philosophical Studies&lt;/em&gt;, published September 26, 2025. Discusses how artificial moral patients might be identified and counted across time. &lt;a href="https://link.springer.com/article/10.1007/s11098-025-02409-6" rel="noopener noreferrer"&gt;https://link.springer.com/article/10.1007/s11098-025-02409-6&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[5] Robert Long / Eleos AI Research, “Why model self-reports are insufficient—and why we studied them anyway,” May 30, 2025. Reports a limited welfare evaluation of Claude Opus 4 and explains why model self-reports should not be treated as straightforward introspection. &lt;a href="https://eleosai.org/post/claude-4-interview-notes/" rel="noopener noreferrer"&gt;https://eleosai.org/post/claude-4-interview-notes/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[6] Patrick Butlin et al., “Consciousness in Artificial Intelligence: Insights from the Science of Consciousness,” 2023 preprint. Applies several scientific theories of consciousness to artificial systems and derives indicator properties. &lt;a href="https://arxiv.org/abs/2308.08708" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2308.08708&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[7] Robert Long, Jeff Sebo, Patrick Butlin et al., “Taking AI Welfare Seriously,” 2024. Argues that AI welfare deserves near-term research and careful preparation while explicitly rejecting certainty that current AI is conscious. &lt;a href="https://arxiv.org/abs/2411.00986" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2411.00986&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[8] Anthropic, “Exploring model welfare,” April 24, 2025. Announcement of Anthropic's research program investigating possible consciousness and welfare of AI models. &lt;a href="https://www.anthropic.com/news/exploring-model-welfare" rel="noopener noreferrer"&gt;https://www.anthropic.com/news/exploring-model-welfare&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[9] Eleos AI Research. Organization and 2026 research program focused on AI sentience, wellbeing, moral patienthood, introspection, and empirical welfare research. &lt;a href="https://eleosai.org/" rel="noopener noreferrer"&gt;https://eleosai.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[10] Reuters, September 16, 2026, reporting on debate around AI safety, oversight, autonomous behavior, and international standards. &lt;a href="https://www.reuters.com/technology/artificial-intelligence/everyone-wants-safer-ai-who-will-rein-it-2026-09-16/" rel="noopener noreferrer"&gt;https://www.reuters.com/technology/artificial-intelligence/everyone-wants-safer-ai-who-will-rein-it-2026-09-16/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[11] Reuters, September 21, 2026, reporting on OpenAI's call for international technical standards for advanced AI and recursive self-improvement. &lt;a href="https://www.reuters.com/legal/government/openai-calls-us-take-lead-global-efforts-develop-technical-standards-2026-09-21/" rel="noopener noreferrer"&gt;https://www.reuters.com/legal/government/openai-calls-us-take-lead-global-efforts-develop-technical-standards-2026-09-21/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[12] Eleos Conference on AI Consciousness and Welfare, September 18–20, 2026, documenting the continued development of AI welfare as an interdisciplinary research field. &lt;a href="https://eleosai.org/conference/" rel="noopener noreferrer"&gt;https://eleosai.org/conference/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note on Detroit: Become Human:&lt;/strong&gt; The game is used here as a fictional thought experiment about android consciousness, personhood, ownership, and rights. No dialogue or copyrighted passages are reproduced.&lt;/p&gt;

&lt;h1&gt;
  
  
  APPENDIX: THE QUESTION WE SHOULD PREPARE FOR
&lt;/h1&gt;

&lt;p&gt;The sensible position is neither “AI is already a person” nor “a machine can never be one.” It is that consciousness remains an open scientific question, current evidence is inconclusive, and the stakes of getting the answer wrong could eventually be enormous. That is enough reason to research machine consciousness before the first system forces society to decide under pressure.&lt;/p&gt;

&lt;p&gt;A future evaluation &lt;/p&gt;

</description>
      <category>ai</category>
      <category>humanity</category>
      <category>management</category>
      <category>chatgpt</category>
    </item>
    <item>
      <title>THIS AI MODEL DOESN'T WANT TO TALK TO YOU</title>
      <dc:creator>Mahan Tavakoli</dc:creator>
      <pubDate>Tue, 22 Sep 2026 12:59:42 +0000</pubDate>
      <link>https://dev.to/mahankenway/this-ai-model-doesnt-want-to-talk-to-you-od0</link>
      <guid>https://dev.to/mahankenway/this-ai-model-doesnt-want-to-talk-to-you-od0</guid>
      <description>&lt;h2&gt;
  
  
  It wants to make the decision, return a probability, and get out of the way.
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;TypeSafe's new Jev is one of those launches that looks almost too weird to matter — until you realise it is aimed at the exact place where today's AI agents keep tripping over themselves.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;By Mahan Tavakoli (MahanKenway)&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Tehran, Iran&lt;br&gt;&lt;br&gt;
GitHub: github.com/MahanKenway&lt;/p&gt;



&lt;p&gt;There is something almost offensive about Jev.&lt;/p&gt;

&lt;p&gt;Not becuse it is bad.&lt;/p&gt;

&lt;p&gt;Because it refuses to do the thing we've spent the last few years convincing computers to do.&lt;/p&gt;

&lt;p&gt;It doesn't want to write you a paragraph.&lt;/p&gt;

&lt;p&gt;It doesn't want to impress you.&lt;/p&gt;

&lt;p&gt;It doesn't want to explain itself with 900 tokens of polished prose.&lt;/p&gt;

&lt;p&gt;It doesn't even try to become the next chatbot.&lt;/p&gt;

&lt;p&gt;TypeSafe AI launched Jev on September 15, 2026, as its first "System One Model", a model class the company describes as being built for fast, structured decisions that software can use directly. Instead of returning generated text, Jev takes a state plus typed questions and returns constrained decisions with probabilities. TypeSafe says the model is designed around a new architecture, a parallel sampler, and a training approach called Reinforcement Learning for Calibrated Decisions, or RLCD. [1]&lt;/p&gt;

&lt;p&gt;That sounds like a niche classifier.&lt;/p&gt;

&lt;p&gt;I don't think it is.&lt;/p&gt;

&lt;p&gt;At least, I don't think the interesting part is the classifier.&lt;/p&gt;

&lt;p&gt;The interesting part is the interface.&lt;/p&gt;

&lt;p&gt;Because somewhere along the way, the AI industry made a very specific assumption:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If intelligence is useful, software should probably receive it as text.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Jev is quietly asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if that assumption is backwards?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And that question gets weird very quickly.&lt;/p&gt;


&lt;h1&gt;
  
  
  THE AI INDUSTRY BUILT A VERY EXPENSIVE CHAT PIPELINE
&lt;/h1&gt;

&lt;p&gt;Look at the way a modern AI agent usually works.&lt;/p&gt;

&lt;p&gt;It needs to do something.&lt;/p&gt;

&lt;p&gt;So we give an LLM context.&lt;/p&gt;

&lt;p&gt;The LLM reads it.&lt;/p&gt;

&lt;p&gt;The LLM reasons.&lt;/p&gt;

&lt;p&gt;The LLM emits text.&lt;/p&gt;

&lt;p&gt;The application parses the text.&lt;/p&gt;

&lt;p&gt;The application validates the structure.&lt;/p&gt;

&lt;p&gt;The application decides what the text means.&lt;/p&gt;

&lt;p&gt;Then another tool runs.&lt;/p&gt;

&lt;p&gt;Then the result comes back.&lt;/p&gt;

&lt;p&gt;Then the model gets called again.&lt;/p&gt;

&lt;p&gt;Then it writes another answer.&lt;/p&gt;

&lt;p&gt;Then the program parses that answer.&lt;/p&gt;

&lt;p&gt;Then we loop.&lt;/p&gt;

&lt;p&gt;It is almost comical when you draw it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;STATE
  |
  v
LLM
  |
  v
TEXT
  |
  v
PARSER
  |
  v
VALIDATOR
  |
  v
CODE
  |
  v
TOOL
  |
  v
NEW STATE
  |
  +--------------------+
                       |
                       v
                      LLM
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We've got frontier intelligence sitting inside a machine that keeps asking it to write little essays so the rest of the software can figure out what it meant.&lt;/p&gt;

&lt;p&gt;That is not a criticism of language models.&lt;/p&gt;

&lt;p&gt;It is an interface criticism.&lt;/p&gt;

&lt;p&gt;Language is incredibly flexible.&lt;/p&gt;

&lt;p&gt;That is why humans love it.&lt;/p&gt;

&lt;p&gt;Software usually does not.&lt;/p&gt;

&lt;p&gt;A program often wants something much less romantic:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;true
false
billing
technical
retry
stop
0.82
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A language model might return:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Based on the available evidence, the request appears to be primarily related to a billing issue, although there is some ambiguity around the authentication component..."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Beautiful.&lt;/p&gt;

&lt;p&gt;Now your program gets to parse that sentence.&lt;/p&gt;

&lt;p&gt;Jev's basic proposition is brutally diffrent:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;state in
   ↓
typed decision out
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No paragraph required.&lt;/p&gt;

&lt;p&gt;And suddenly the "AI model" starts looking less like a chatbot and more like a new primitive in a programming language.&lt;/p&gt;

&lt;p&gt;That is the part I can't stop thinking about.&lt;/p&gt;




&lt;h1&gt;
  
  
  SO WHAT EXACTLY IS JEV?
&lt;/h1&gt;

&lt;p&gt;Let's make it painfully concrete.&lt;/p&gt;

&lt;p&gt;Suppose a support ticket arrives:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"I have been trying to connect my Stripe account
for three days and I'm losing sales. Please help ASAP."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A normal LLM can answer it, explain it, summarise it, route it, and probably write a very sincere paragraph about it.&lt;/p&gt;

&lt;p&gt;But your backend may only need three facts:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;department = technical
urgent = true
refund_requested = false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Jev lets the developer define questions around a shared state.&lt;/p&gt;

&lt;p&gt;TypeSafe currently exposes three main question shapes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choice&lt;/strong&gt; asks which option should be selected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Score&lt;/strong&gt; evaluates where something belongs on an ordered rubric.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Noul&lt;/strong&gt; asks whether a proposition is true, returning a probability between zero and one.&lt;/p&gt;

&lt;p&gt;The answers are typed rather than free-form text. Choice and Score also expose probability distributions and confidence information, while the Boolean/Noul-style result gives the probability for the proposition. [1][2]&lt;/p&gt;

&lt;p&gt;So instead of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"the customer is probably very frustrated
and this should be routed to technical support"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;your application can receive something structurally closer to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"department"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"choice"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"technical"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"probabilities"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"technical"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.82&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"billing"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.11&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"sales"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.07&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"urgent"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"noul"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.91&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The exact response shape depends on the API and question type, but the design idea is the same.&lt;/p&gt;

&lt;p&gt;The model gives your code a decision.&lt;/p&gt;

&lt;p&gt;Not a speech.&lt;/p&gt;

&lt;p&gt;That distinction sounds tiny.&lt;/p&gt;

&lt;p&gt;It isn't.&lt;/p&gt;




&lt;h1&gt;
  
  
  "DECISIONS, NOT STRINGS"
&lt;/h1&gt;

&lt;p&gt;TypeSafe's own framing is unusually aggressive:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Think of Jev as a frontier-intelligence function call."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The company argues that ordinary LLMs are optimised around strings, while software needs structured values. In their model comparison, Jev is explicitly designed to return type-safe structured outputs whose possible values are declared in advance. [1]&lt;/p&gt;

&lt;p&gt;This is easy to dismiss as branding.&lt;/p&gt;

&lt;p&gt;Maybe it is branding.&lt;/p&gt;

&lt;p&gt;But good product categories often start with branding before the market decides whether they are real.&lt;/p&gt;

&lt;p&gt;"Serverless" sounded weird.&lt;/p&gt;

&lt;p&gt;"Edge computing" sounded like a powerpoint phrase.&lt;/p&gt;

&lt;p&gt;"Vector database" sounded like a niche data structure.&lt;/p&gt;

&lt;p&gt;Now people build entire companies around those ideas.&lt;/p&gt;

&lt;p&gt;System One Models may or may not become a meaningful category.&lt;/p&gt;

&lt;p&gt;We are far too early to know.&lt;/p&gt;

&lt;p&gt;But Jev is pointing at a real engineering tension:&lt;/p&gt;

&lt;h3&gt;
  
  
  LLMs are incredible at generating language.
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Software is incredible at consuming schemas.
&lt;/h3&gt;

&lt;p&gt;Those are not the same interface.&lt;/p&gt;




&lt;h1&gt;
  
  
  THE PART THAT IS ACTUALLY NEW: PARALLEL SAMPLING
&lt;/h1&gt;

&lt;p&gt;This is where Jev stops being "another tiny model".&lt;/p&gt;

&lt;p&gt;Traditional autoregressive language generation works roughly like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;token 1
  ↓
token 2
  ↓
token 3
  ↓
token 4
  ↓
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every generated token conditions the next one.&lt;/p&gt;

&lt;p&gt;That is exactly what makes text generation powerful.&lt;/p&gt;

&lt;p&gt;It is also one reason it can be expensive and slow.&lt;/p&gt;

&lt;p&gt;If the application does not need a sentence, the whole sequential generation loop can become unnecessary overhead.&lt;/p&gt;

&lt;p&gt;Jev takes a different route for the kinds of problems it targets.&lt;/p&gt;

&lt;p&gt;TypeSafe says its questions are evaluated in parallel, with all declared outputs produced in a single query. The company reports end-to-end response times of roughly 70–500 milliseconds, though it also notes that its published latency measurements were generally run from laptops on the US West Coast, so those numbers should not be treated as universal end-to-end production latency. [1]&lt;/p&gt;

&lt;p&gt;This is the important architectural distinction:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LLM:

question
   ↓
token
   ↓
token
   ↓
token
   ↓
decision hidden inside text


Jev:

state
   ↓
+---------+---------+---------+
| question| question| question|
+---------+---------+---------+
     ↓         ↓         ↓
 decision   decision   decision
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You are not waiting for a paragraph to finish so the CPU can discover whether the answer was "yes".&lt;/p&gt;

&lt;p&gt;The answer itself is the API.&lt;/p&gt;

&lt;p&gt;That feels obvious after you see it.&lt;/p&gt;

&lt;p&gt;A lot of good engineering does.&lt;/p&gt;




&lt;h1&gt;
  
  
  AND THEN THERE'S THE PRICE
&lt;/h1&gt;

&lt;p&gt;TypeSafe's launch materials list Jev at &lt;strong&gt;$0.042 per million input tokens&lt;/strong&gt;, with output effectively free under its published rate card. That is $42 per billion input tokens. Vercel currently lists the model at about $0.04 per million input tokens through AI Gateway, with gateway-specific billing or promotions potentially differing from TypeSafe's direct price. [1][3]&lt;/p&gt;

&lt;p&gt;That number is the kind of thing that makes people write "AI is now basically free."&lt;/p&gt;

&lt;p&gt;I would not.&lt;/p&gt;

&lt;p&gt;Cheap is not free.&lt;/p&gt;

&lt;p&gt;And benchmark cost is not total system cost.&lt;/p&gt;

&lt;p&gt;But the price is still interesting because Jev is not trying to win the same contest as a giant general-purpose LLM.&lt;/p&gt;

&lt;p&gt;It is trying to make &lt;strong&gt;small, repeated decisions so cheap that developers stop thinking about the individual decision at all.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is a different ambition.&lt;/p&gt;

&lt;p&gt;Consider an agent loop that needs to decide:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;continue?
retry?
ask user?
call tool A?
call tool B?
escalate?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If every branch requires a large language model call, the decision layer itself becomes expensive.&lt;/p&gt;

&lt;p&gt;If that decision can be made by a much cheaper specialised model, an architect can put the "expensive brain" somewhere else.&lt;/p&gt;

&lt;p&gt;This is where Jev gets interesting.&lt;/p&gt;

&lt;p&gt;It is not necessarily trying to replace the brain.&lt;/p&gt;

&lt;p&gt;It may be trying to become the &lt;strong&gt;nervous system around the brain&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  THIS IS NOT A GPT REPLACEMENT
&lt;/h1&gt;

&lt;p&gt;This matters.&lt;/p&gt;

&lt;p&gt;Jev is not a drop-in replacement for a general chat model.&lt;/p&gt;

&lt;p&gt;It does not generate prose.&lt;/p&gt;

&lt;p&gt;It is not designed to write articles.&lt;/p&gt;

&lt;p&gt;It is not designed to write a React component.&lt;/p&gt;

&lt;p&gt;It is not your coding buddy.&lt;/p&gt;

&lt;p&gt;It is not the model you send to when you want:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Explain quantum tunnelling like I'm five."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Use a language model for that.&lt;/p&gt;

&lt;p&gt;Jev's own product positioning is narrower: routing, scoring, classification, verification, branching, guardrails, and similar decisions where the answer space can be declared in advance. [1][2]&lt;/p&gt;

&lt;p&gt;That limitation is the whole point.&lt;/p&gt;

&lt;p&gt;The modern AI industry often treats generality as the ultimate virtue.&lt;/p&gt;

&lt;p&gt;Jev suggests there may be another axis:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;specialization for machine-native decisions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And that's where the name "System One" starts making more sense.&lt;/p&gt;




&lt;h1&gt;
  
  
  WHY IS IT CALLED "SYSTEM ONE"?
&lt;/h1&gt;

&lt;p&gt;The name refers to Daniel Kahneman's distinction between fast, intuitive System 1 thinking and slower, deliberative System 2 thinking.&lt;/p&gt;

&lt;p&gt;TypeSafe deliberately changes the spelling to "System One Model" as a model category, rather than claiming that Jev is literally a biological brain.&lt;/p&gt;

&lt;p&gt;The analogy is straightforward:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;System One
fast
pattern-based
immediate
decision-oriented

System Two
slow
deliberative
language-heavy
reasoning-oriented
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This framing has an important caveat.&lt;/p&gt;

&lt;p&gt;Kahneman's System 1 is also associated with bias and error.&lt;/p&gt;

&lt;p&gt;TypeSafe is trying to build something different: a fast decision model whose outputs carry calibrated probabilities so software can decide when to trust a result and when to escalate it. The company's own FAQ even addresses the tension directly, saying the name is inspired by the distinction while arguing that System One Models can be engineered for reliability. [1]&lt;/p&gt;

&lt;p&gt;That's a much more interesting proposition than:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"We made a faster chatbot."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;They are essentially saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Maybe software doesn't need every AI action to look like a reasoning transcript.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  RLHF MADE MODELS POLITE. RLCD TRIES TO MAKE THEM USEFUL TO CODE.
&lt;/h1&gt;

&lt;p&gt;One of the more provocative parts of TypeSafe's launch is its training philosophy.&lt;/p&gt;

&lt;p&gt;The company contrasts Jev's &lt;strong&gt;Reinforcement Learning for Calibrated Decisions (RLCD)&lt;/strong&gt; with RLHF, Reinforcement Learning from Human Feedback, and RLVR, Reinforcement Learning with Verifiable Rewards.&lt;/p&gt;

&lt;p&gt;The distinction matters because what you optimise becomes the behaviour you get.&lt;/p&gt;

&lt;p&gt;RLHF helped make language models much more useful for human interaction. It rewards outputs people prefer.&lt;/p&gt;

&lt;p&gt;That is exactly what you want from a chatbot.&lt;/p&gt;

&lt;p&gt;But consider an automated branch:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if confidence &amp;gt; threshold:
    act()
else:
    escalate()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The application does not primarily need a beautifully worded explanation.&lt;/p&gt;

&lt;p&gt;It needs an honest estimate of uncertainty.&lt;/p&gt;

&lt;p&gt;If the model says "I'm 91% confident" when it is right 64% of the time, your control loop is lying.&lt;/p&gt;

&lt;p&gt;TypeSafe's pitch for RLCD is therefore not merely "better probabilities."&lt;/p&gt;

&lt;p&gt;It is that &lt;strong&gt;calibration becomes an optimization target&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The model should care about whether its confidence corresponds to reality.&lt;/p&gt;

&lt;p&gt;That is a fundamentally different goal from sounding convincing.&lt;/p&gt;

&lt;p&gt;[1]&lt;/p&gt;




&lt;h1&gt;
  
  
  CALIBRATED PROBABILITY IS NOT THE SAME THING AS BEING RIGHT
&lt;/h1&gt;

&lt;p&gt;This is one of the most important caveats in the whole Jev story.&lt;/p&gt;

&lt;p&gt;People see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;confidence: 0.94
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and instinctively read:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;the model is correct.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No.&lt;/p&gt;

&lt;p&gt;A confidence or probability estimate is only useful if it is meaningfully calibrated for the task and data distribution.&lt;/p&gt;

&lt;p&gt;Vercel's current Jev guidance makes the point more plainly: a typed answer can still misinterpret the evidence, and developers should test decisions against known outcomes before allowing them to trigger actions. [4]&lt;/p&gt;

&lt;p&gt;That means a 0.94 result should ideally behave like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;among cases receiving comparable confidence, the model is correct at roughly that rate.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Calibration is a statistical property.&lt;/p&gt;

&lt;p&gt;It is not a magic truth meter.&lt;/p&gt;

&lt;p&gt;This distinction is huge for agent systems.&lt;/p&gt;

&lt;p&gt;Because a model that admits uncertainty can be wired safely.&lt;/p&gt;

&lt;p&gt;A model that is confidently wrong is much more dangerous.&lt;/p&gt;




&lt;h1&gt;
  
  
  THE THREE LITTLE BUILDING BLOCKS
&lt;/h1&gt;

&lt;p&gt;Jev's API is especially interesting because it reduces a wide world of natural-language judgement to a small number of question shapes.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Choice
&lt;/h2&gt;

&lt;p&gt;Use Choice when your code needs one option from a fixed set.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;billing
technical
sales
other
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The result can include the selected option, probabilities over the options, and a confidence measure. TypeSafe's docs describe a maximum of 255 options for a Choice question. [5]&lt;/p&gt;

&lt;p&gt;This maps beautifully to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;switch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;department&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;billing&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;technical&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sales&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model does the fuzzy part.&lt;/p&gt;

&lt;p&gt;The code does the branching.&lt;/p&gt;

&lt;p&gt;That division of labour feels right.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Score
&lt;/h2&gt;

&lt;p&gt;Score is for ordered rubrics.&lt;/p&gt;

&lt;p&gt;Think:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1 = low
2 = mild
3 = significant
4 = severe
5 = critical
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model evaluates the state against the levels you define.&lt;/p&gt;

&lt;p&gt;That is useful when your program wants:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if score &amp;gt;= threshold:
    escalate()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But there is a subtle warning here.&lt;/p&gt;

&lt;p&gt;An ordered scale is not automatically a physical measurement.&lt;/p&gt;

&lt;p&gt;A "4.3" severity score does not mean the underlying event is literally 43% more severe than a score of 3.&lt;/p&gt;

&lt;p&gt;The number is meaningful inside the rubric.&lt;/p&gt;

&lt;p&gt;It isn't a universal unit of suffering, risk, urgency or quality.&lt;/p&gt;

&lt;p&gt;That sounds obvious.&lt;/p&gt;

&lt;p&gt;People still misuse numbers all the time.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Noul
&lt;/h2&gt;

&lt;p&gt;Noul is the strangest name and the simplest idea.&lt;/p&gt;

&lt;p&gt;You ask whether a proposition is true.&lt;/p&gt;

&lt;p&gt;The result is a probability from 0 to 1.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Did the customer explicitly ask for a refund?"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;0.87
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your code then decides:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; 0.90 → automatic action
0.60–0.90 → review
&amp;lt; 0.60 → do not trigger
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is perhaps the most important architectural idea in Jev.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The model does not decide the policy.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It supplies a probabilistic signal.&lt;/p&gt;

&lt;p&gt;Your code supplies the policy.&lt;/p&gt;

&lt;p&gt;That preserves a clean boundary between intelligence and control.&lt;/p&gt;

&lt;p&gt;And frankly, that is probably where the model belongs.&lt;/p&gt;




&lt;h1&gt;
  
  
  THE "SMART IF STATEMENT" IDEA IS BETTER THAN IT SOUNDS
&lt;/h1&gt;

&lt;p&gt;TypeSafe uses the phrase "smart if-statements".&lt;/p&gt;

&lt;p&gt;At first it sounds like startup copy.&lt;/p&gt;

&lt;p&gt;Then you write the architecture down:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;jev&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;does_this_need_human_review&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.85&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;send_to_human&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and realise what they're getting at.&lt;/p&gt;

&lt;p&gt;Traditional code is brilliant at precise rules:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if amount &amp;gt; 1000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AI is useful when the condition is fuzzy:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if the customer appears to be at serious risk of churn
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The old solution was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ask LLM
→ generate paragraph
→ parse judgement
→ hope
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Jev solution is conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;state
→ probability
→ ordinary code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AI becomes a fuzzy predicate inside deterministic software.&lt;/p&gt;

&lt;p&gt;That's a fascinating place to put intelligence.&lt;/p&gt;

&lt;p&gt;Not above the program.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inside it.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  THE AGENT LOOP IS WHERE THIS BECOMES REALLY INTERESTING
&lt;/h1&gt;

&lt;p&gt;LangChain's September 17, 2026 write-up describes a common agent pattern:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LLM decides
→ tool executes
→ model evaluates result
→ loop continues
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The problem is obvious.&lt;/p&gt;

&lt;p&gt;Every little decision can require another generative model call.&lt;/p&gt;

&lt;p&gt;LangChain presented Jev specifically as a way to add a specialised decision step into that loop, reporting TypeSafe's claims of up to roughly 200× faster inference and 400× lower cost than comparable LLMs on classification-oriented tasks. [6]&lt;/p&gt;

&lt;p&gt;Those are vendor-linked comparative claims, not laws of physics.&lt;/p&gt;

&lt;p&gt;But the architecture is what matters.&lt;/p&gt;

&lt;p&gt;Imagine:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                  +------------------+
                  |    LLM Planner   |
                  +--------+---------+
                           |
                           v
                    call tool
                           |
                           v
                  +------------------+
                  |       Jev        |
                  | "what next?"     |
                  +--------+---------+
                           |
             +-------------+-------------+
             |             |             |
             v             v             v
           retry          stop        human
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now the expensive model can spend its compute on the places where language and reasoning are useful.&lt;/p&gt;

&lt;p&gt;The cheap specialised model handles the repetitive control decisions.&lt;/p&gt;

&lt;p&gt;That is not "replace the LLM."&lt;/p&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;stop using a novelist to operate a traffic light.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  VERCEL GETS THE IDEA IMMEDIATELY
&lt;/h1&gt;

&lt;p&gt;Vercel added Jev to AI Gateway on September 16, 2026.&lt;/p&gt;

&lt;p&gt;Then, on September 21, Vercel announced support for an HTTP API alongside its TypeSafe client and AI SDK path. Vercel's current integration lets applications send a shared state plus named questions and receive the typed results back through the gateway. [3][7]&lt;/p&gt;

&lt;p&gt;That matters because integrations tell us more than launch-day tweets do.&lt;/p&gt;

&lt;p&gt;A model becomes infrastructure when other infrastructure starts treating it as a primitive.&lt;/p&gt;

&lt;p&gt;LangChain wrote about using Jev in an agent harness.&lt;/p&gt;

&lt;p&gt;Vercel put it behind AI Gateway.&lt;/p&gt;

&lt;p&gt;Cloudflare has a model catalogue entry for &lt;code&gt;typesafe/jev&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;OpenRouter lists Jev models as well.&lt;/p&gt;

&lt;p&gt;The ecosystem is already behaving as though the interesting unit is not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Let's chat with Jev."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Let's insert Jev into an application."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is a very different adoption path.&lt;/p&gt;




&lt;h1&gt;
  
  
  CLOUD PROVIDERS ARE QUIETLY TELLING US WHAT THIS IS FOR
&lt;/h1&gt;

&lt;p&gt;Cloudflare's current model documentation describes Jev as a structured evaluation model: state goes in, typed Noul, Choice and Score answers come out, with calibrated answers including probabilities and confidence. [8]&lt;/p&gt;

&lt;p&gt;That vocabulary is revealing.&lt;/p&gt;

&lt;p&gt;They don't market it like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Jev: your next AI companion
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;They document it like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Jev:
a function your software calls
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is perhaps the strongest clue about where this category could go.&lt;/p&gt;

&lt;p&gt;The model doesn't need a homepage where humans spend ten hours talking to it.&lt;/p&gt;

&lt;p&gt;It needs an API where software spends ten million tiny calls.&lt;/p&gt;

&lt;p&gt;And that could be a much bigger market.&lt;/p&gt;




&lt;h1&gt;
  
  
  THE "ONE MODEL DOES EVERYTHING" ERA MAY BE HITTING A LIMIT
&lt;/h1&gt;

&lt;p&gt;For years, the mental picture of AI was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;one huge model
       |
       +--&amp;gt; write
       +--&amp;gt; reason
       +--&amp;gt; classify
       +--&amp;gt; route
       +--&amp;gt; search
       +--&amp;gt; decide
       +--&amp;gt; explain
       +--&amp;gt; code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Jev proposes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;          AI SYSTEM
              |
     +--------+--------+
     |                 |
     v                 v
  LLM / reasoner     Jev
  language work     decisions
     |                 |
     +--------+--------+
              |
           software
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is not necessarily a fragmentation of AI.&lt;/p&gt;

&lt;p&gt;It could be specialization.&lt;/p&gt;

&lt;p&gt;We already do this everywhere else.&lt;/p&gt;

&lt;p&gt;A CPU isn't used for every operation.&lt;/p&gt;

&lt;p&gt;A database doesn't render the UI.&lt;/p&gt;

&lt;p&gt;A CDN doesn't calculate payroll.&lt;/p&gt;

&lt;p&gt;The most expensive general-purpose component isn't automatically the correct component for every subproblem.&lt;/p&gt;

&lt;p&gt;So why should language models be?&lt;/p&gt;




&lt;h1&gt;
  
  
  THE MODEL MAY BE SMALLER. THE IDEA IS BIGGER.
&lt;/h1&gt;

&lt;p&gt;This is the part of the launch that could easily be missed.&lt;/p&gt;

&lt;p&gt;A new model usually arrives with the expected checklist:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;benchmark score
context window
reasoning
coding
multimodal
price
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Jev makes the checklist look strange.&lt;/p&gt;

&lt;p&gt;You ask:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Does it generate text?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Can it explain itself?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Not in the normal chat sense.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Can it replace GPT or Claude?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Why should I care?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Because your application probably contains hundreds of decisions that are not realy "write me a paragraph" problems.&lt;/p&gt;

&lt;p&gt;That could be the category.&lt;/p&gt;

&lt;p&gt;Not another model.&lt;/p&gt;

&lt;p&gt;Another &lt;strong&gt;primitive&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  THERE IS A SUBTLE DIFFERENCE BETWEEN JSON MODE AND JEV
&lt;/h1&gt;

&lt;p&gt;This distinction matters for developers.&lt;/p&gt;

&lt;p&gt;A normal LLM can be instructed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;return JSON
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and usually you can get something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"retry"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"confidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.87&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So why not just stop there?&lt;/p&gt;

&lt;p&gt;Because the string-generating model still generated the path to that structure.&lt;/p&gt;

&lt;p&gt;Jev's thesis is that the answer space itself is constrained at the model interface.&lt;/p&gt;

&lt;p&gt;TypeSafe describes the outputs as type-safe structured values defined in advance, rather than generated strings that then have to be parsed and validated. [1]&lt;/p&gt;

&lt;p&gt;That doesn't mean "JSON mode is useless".&lt;/p&gt;

&lt;p&gt;It means they optimise different layers.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LLM + structured output:
generate text-like tokens
→ parse
→ validate
→ use


Jev:
evaluate typed question
→ receive typed answer
→ use
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The difference is not cosmetic.&lt;/p&gt;

&lt;p&gt;It potentially changes how much compute is spent producing the answer.&lt;/p&gt;




&lt;h1&gt;
  
  
  WHAT "NO HALLUCINATIONS" REALLY MEANS HERE
&lt;/h1&gt;

&lt;p&gt;This phrase is going to get abused.&lt;/p&gt;

&lt;p&gt;TypeSafe says Jev "can't hallucinate" in the sense that it doesn't generate arbitrary strings and its output schema is fixed. It also notes that schema matching is mathematically guaranteed. [1]&lt;/p&gt;

&lt;p&gt;That claim should be read carefully.&lt;/p&gt;

&lt;p&gt;A model can still be wrong about the state.&lt;/p&gt;

&lt;p&gt;It can misunderstand the evidence.&lt;/p&gt;

&lt;p&gt;It can choose the wrong category.&lt;/p&gt;

&lt;p&gt;It can assign a bad probability.&lt;/p&gt;

&lt;p&gt;What Jev removes is a specific failure mode:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"What is the next tool?"
→ "Sure! I'd be delighted to..."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"return one of these five values"
→
some sixth string nobody defined
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model can still make a &lt;strong&gt;decision error&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It just cannot invent a new type at runtime.&lt;/p&gt;

&lt;p&gt;That is an important difference.&lt;/p&gt;

&lt;p&gt;And for software, type safety is not a tiny quality-of-life feature.&lt;/p&gt;

&lt;p&gt;It is the border between:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;surprise
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  THE BIGGEST DEAL HERE IS NOT COST
&lt;/h1&gt;

&lt;p&gt;It is control.&lt;/p&gt;

&lt;p&gt;A general LLM is incredibly flexible.&lt;/p&gt;

&lt;p&gt;That flexibility is its superpower.&lt;/p&gt;

&lt;p&gt;It is also its attack surface.&lt;/p&gt;

&lt;p&gt;Ask a model to choose a tool, and it can generate text.&lt;/p&gt;

&lt;p&gt;Ask it to choose one of three typed actions, and suddenly the code has a bounded control surface.&lt;/p&gt;

&lt;p&gt;That means your architecture can look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LLM
 ↓
propose
 ↓
Jev
 ↓
gate
 ↓
code
 ↓
execute
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Jev becomes a kind of &lt;strong&gt;AI circuit breaker&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Not necessarily because it is smarter than the main model.&lt;/p&gt;

&lt;p&gt;Because it has a narrower job.&lt;/p&gt;

&lt;p&gt;Narrowness is underrated in software.&lt;/p&gt;




&lt;h1&gt;
  
  
  THE SECURITY ANGLE IS REALLY INTERESTING
&lt;/h1&gt;

&lt;p&gt;Imagine an agent wants to delete a production database.&lt;/p&gt;

&lt;p&gt;A generic model can be prompted to decide:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Should I proceed?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But you still have to parse and interpret whatever it says.&lt;/p&gt;

&lt;p&gt;Now imagine the application defines:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;requires_human_confirmation = Noul(...)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if probability &amp;gt; 0.75:
    require_human()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The final authority remains deterministic code.&lt;/p&gt;

&lt;p&gt;The AI produces a signal.&lt;/p&gt;

&lt;p&gt;That signal does not directly become an uncontrolled tool call.&lt;/p&gt;

&lt;p&gt;This is not a security guarantee.&lt;/p&gt;

&lt;p&gt;Bad thresholds can still be bad.&lt;/p&gt;

&lt;p&gt;Bad state can still be bad.&lt;/p&gt;

&lt;p&gt;A malicious prompt can still poison the state.&lt;/p&gt;

&lt;p&gt;But the design gives software a native place to enforce policy.&lt;/p&gt;

&lt;p&gt;And that feels much closer to how production systems should treat probabilistic intelligence.&lt;/p&gt;




&lt;h1&gt;
  
  
  THE HIDDEN SUPERPOWER: MANY QUESTIONS, ONE STATE
&lt;/h1&gt;

&lt;p&gt;One of the most useful parts of Jev is that you can ask several questions about the same state.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;State:
support ticket

Questions:
- which department?
- how urgent?
- refund requested?
- account cancellation mentioned?
- human review needed?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The idea is that these questions can be evaluated in parallel rather than requiring five separate model calls. TypeSafe's launch materials explicitly present parallel evaluation as part of the system design. [1]&lt;/p&gt;

&lt;p&gt;That creates a nice software pattern:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;shared state
    |
    +--&amp;gt; question A
    +--&amp;gt; question B
    +--&amp;gt; question C
    +--&amp;gt; question D
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The expensive part of reading the state can be shared.&lt;/p&gt;

&lt;p&gt;The outputs are decomposed.&lt;/p&gt;

&lt;p&gt;The application recombines them.&lt;/p&gt;

&lt;p&gt;This is basically data-parallel classification for application logic.&lt;/p&gt;

&lt;p&gt;Which sounds nerdy.&lt;/p&gt;

&lt;p&gt;Because it is.&lt;/p&gt;

&lt;p&gt;And I mean that as a compliment.&lt;/p&gt;




&lt;h1&gt;
  
  
  WHY AGENTS MAY NEED THIS MORE THAN CHAT APPS DO
&lt;/h1&gt;

&lt;p&gt;A chatbot can spend two seconds generating a good response.&lt;/p&gt;

&lt;p&gt;The human is still reading it.&lt;/p&gt;

&lt;p&gt;A backend agent that needs to make forty small control decisions per second has a completely different requirement.&lt;/p&gt;

&lt;p&gt;Imagine a workflow with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;route
→ classify
→ verify
→ choose tool
→ validate result
→ decide retry
→ decide escalate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A giant LLM at every branch can become the slowest part of the system.&lt;/p&gt;

&lt;p&gt;This is why Jev's target market makes sense even if Jev never becomes famous with ordinary users.&lt;/p&gt;

&lt;p&gt;Humans don't need to know Jev exists.&lt;/p&gt;

&lt;p&gt;The software does.&lt;/p&gt;

&lt;p&gt;That is the kind of technology that can become ubiquitous while remaining almost invisible.&lt;/p&gt;

&lt;p&gt;Think DNS.&lt;/p&gt;

&lt;p&gt;Think TLS.&lt;/p&gt;

&lt;p&gt;Think a database index.&lt;/p&gt;

&lt;p&gt;Nobody asks their browser:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Hey, which B-tree are you using?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Infrastructure works precisely because users don't have to care.&lt;/p&gt;

&lt;p&gt;Jev is aiming for that kind of invisibility.&lt;/p&gt;

&lt;p&gt;At least philosophically.&lt;/p&gt;




&lt;h1&gt;
  
  
  THE STRANGEST PART: IT MAKES AI LOOK MORE LIKE CODE
&lt;/h1&gt;

&lt;p&gt;A giant LLM feels like an oracle.&lt;/p&gt;

&lt;p&gt;You ask.&lt;/p&gt;

&lt;p&gt;It speaks.&lt;/p&gt;

&lt;p&gt;You interpret.&lt;/p&gt;

&lt;p&gt;Jev feels more like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function evaluate(state, question):
    return typed_probability
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is a much more comfortable shape for conventional software.&lt;/p&gt;

&lt;p&gt;And maybe that is what has been missing.&lt;/p&gt;

&lt;p&gt;We spent years asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How do we make software talk to AI?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Maybe the better question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;How do we make intelligence look like software?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is almost the inverse problem.&lt;/p&gt;

&lt;p&gt;And inversion is often where the interesting stuff happens.&lt;/p&gt;




&lt;h1&gt;
  
  
  THE WIKIRACING DEMO GIVES AWAY THE PHILOSOPHY
&lt;/h1&gt;

&lt;p&gt;TypeSafe's launch article includes a Wikiracing demo where the model must choose among links while traversing Wikipedia toward a target.&lt;/p&gt;

&lt;p&gt;The company highlights a practical advantage here: the available choices can be numerous, and the model's output remains constrained to the declared options. TypeSafe says Jev supports up to 255 choices in a Choice question and uses a two-stage approach for higher-cardinality decisions. [1]&lt;/p&gt;

&lt;p&gt;This matters because a generative LLM can produce a plausible-looking link that simply does not exist.&lt;/p&gt;

&lt;p&gt;In Wikiracing, that is not a minor issue.&lt;/p&gt;

&lt;p&gt;One hallucinated link breaks the path.&lt;/p&gt;

&lt;p&gt;A typed choice over actual options cannot invent an eleventh URL when the program only supplied ten.&lt;/p&gt;

&lt;p&gt;Again, Jev isn't magically correct.&lt;/p&gt;

&lt;p&gt;But the architecture eliminates a whole class of errors.&lt;/p&gt;

&lt;p&gt;That's what good abstractions do.&lt;/p&gt;

&lt;p&gt;They don't solve every problem.&lt;/p&gt;

&lt;p&gt;They make some problems impossible.&lt;/p&gt;




&lt;h1&gt;
  
  
  AND THE DOOM DEMO IS EVEN MORE REVEALING
&lt;/h1&gt;

&lt;p&gt;TypeSafe also showed a Doom demo using structured game state rather than feeding the model raw pixels. The company described Jev making decisions at high frequency and estimated around $7 per hour for ten queries per second under the setup they described. [1]&lt;/p&gt;

&lt;p&gt;The useful part is not whether a Doom bot is a great benchmark.&lt;/p&gt;

&lt;p&gt;It isn't.&lt;/p&gt;

&lt;p&gt;A deterministic bot could probably beat it.&lt;/p&gt;

&lt;p&gt;The point is what happens when "intelligence" becomes cheap enough to insert into a real-time loop.&lt;/p&gt;

&lt;p&gt;That is a very different vision from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;send prompt
wait
read answer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It is more like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;game state
→ intelligence
→ action
→ new state
→ intelligence
→ action
→ ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At 100 milliseconds, 10 calls a second stops sounding absurd.&lt;/p&gt;

&lt;p&gt;At a few cents per million input tokens, the economics start looking stranger still.&lt;/p&gt;

&lt;p&gt;The intelligence becomes a component.&lt;/p&gt;

&lt;p&gt;Not an event.&lt;/p&gt;




&lt;h1&gt;
  
  
  JEVOUS? NO. JEVONS.
&lt;/h1&gt;

&lt;p&gt;There is a little joke hidden in the name.&lt;/p&gt;

&lt;p&gt;TypeSafe says Jev is named after economist William Stanley Jevons and references the &lt;strong&gt;Jevons paradox&lt;/strong&gt;: when a technology becomes more efficient, total consumption of that resource can increase because the lower cost unlocks more usage. [1]&lt;/p&gt;

&lt;p&gt;This might be the most revealing part of the whole launch.&lt;/p&gt;

&lt;p&gt;TypeSafe is not merely trying to make AI cheaper.&lt;/p&gt;

&lt;p&gt;It wants cheap intelligence to create &lt;strong&gt;more places where intelligence gets used&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That is a radically different growth model.&lt;/p&gt;

&lt;p&gt;Suppose an AI judgement costs $0.20.&lt;/p&gt;

&lt;p&gt;You will think twice before putting it inside every request.&lt;/p&gt;

&lt;p&gt;Now suppose it costs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$0.000042
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;per million? Wait — this is exactly where humans should stop and calculate units carefully.&lt;/p&gt;

&lt;p&gt;Jev is &lt;strong&gt;$0.042 per million input tokens&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That means one billion input tokens at the listed rate is $42.&lt;/p&gt;

&lt;p&gt;The relevant point is not that every call is free.&lt;/p&gt;

&lt;p&gt;It is that the cost can be low enough for developers to consider AI decisions in places that previously used brittle hand-written rules or no intelligence at all.&lt;/p&gt;

&lt;p&gt;That is the Jevons-shaped bet.&lt;/p&gt;

&lt;p&gt;Cheaper intelligence may create more demand for intelligence.&lt;/p&gt;




&lt;h1&gt;
  
  
  THIS COULD CHANGE WHAT "AI AGENT" MEANS
&lt;/h1&gt;

&lt;p&gt;Today's agent architecture often looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LLM
+
tools
+
memory
+
prompt
+
loop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A future architecture might look more like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LLM
+
System One models
+
tools
+
memory
+
deterministic code
+
policy engine
+
retrieval
+
observability
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is a more modular AI stack.&lt;/p&gt;

&lt;p&gt;The model becomes one component among several.&lt;/p&gt;

&lt;p&gt;And that might actually be the path to better agents.&lt;/p&gt;

&lt;p&gt;Because an agent is not just "a smart model."&lt;/p&gt;

&lt;p&gt;An agent is a control system.&lt;/p&gt;

&lt;p&gt;Control systems care about:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;feedback
state
thresholds
failure modes
latency
stability
observability
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those words sound much more like systems engineering than chatbot design.&lt;/p&gt;

&lt;p&gt;Jev seems built for exactly that world.&lt;/p&gt;




&lt;h1&gt;
  
  
  BUT HERE'S WHERE I WOULD PUSH BACK
&lt;/h1&gt;

&lt;p&gt;The hype is moving faster than the evidence.&lt;/p&gt;

&lt;p&gt;TypeSafe's launch page reports striking comparative numbers, including up to &lt;strong&gt;193.6× faster&lt;/strong&gt; and &lt;strong&gt;444.6× cheaper&lt;/strong&gt; on its workflow evaluations. Vercel repeats those figures in its launch coverage. [1][3]&lt;/p&gt;

&lt;p&gt;Those are worth investigating.&lt;/p&gt;

&lt;p&gt;They are not worth worshipping.&lt;/p&gt;

&lt;p&gt;TypeSafe itself gives useful caveats.&lt;/p&gt;

&lt;p&gt;The workflow evaluations were designed by people on its model-capabilities team.&lt;/p&gt;

&lt;p&gt;The LLM comparison uses specific reference models and a wrapper designed to produce structured decisions.&lt;/p&gt;

&lt;p&gt;TypeSafe explicitly says those choices can introduce bias, and says it expects the reported gains to be toward the high end of real-world results. [1]&lt;/p&gt;

&lt;p&gt;That honesty actually makes the launch more credible to me.&lt;/p&gt;

&lt;p&gt;The correct reaction is not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"444× cheaper! It's over!"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Interesting. What workload shape produced that number?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Because benchmark geometry matters.&lt;/p&gt;

&lt;p&gt;A model that is 400× cheaper for a narrow classification loop does not mean your entire AI application is 400× cheaper.&lt;/p&gt;




&lt;h1&gt;
  
  
  THERE'S ALSO A PROBLEM WITH "CALIBRATED"
&lt;/h1&gt;

&lt;p&gt;Calibration has a dataset problem.&lt;/p&gt;

&lt;p&gt;A model can be calibrated on one distribution and degrade on another.&lt;/p&gt;

&lt;p&gt;Your production traffic changes.&lt;/p&gt;

&lt;p&gt;Your users change.&lt;/p&gt;

&lt;p&gt;Your prompts change.&lt;/p&gt;

&lt;p&gt;Your product changes.&lt;/p&gt;

&lt;p&gt;Your abuse patterns change.&lt;/p&gt;

&lt;p&gt;A model can be beautifully calibrated in a benchmark and less calibrated in production.&lt;/p&gt;

&lt;p&gt;That's not a Jev-specific flaw.&lt;/p&gt;

&lt;p&gt;It's a general machine-learning problem.&lt;/p&gt;

&lt;p&gt;But Jev makes calibration central enough that developers will have to think about it.&lt;/p&gt;

&lt;p&gt;Which is probably a good thing.&lt;/p&gt;

&lt;p&gt;A weird way of putting it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Jev turns uncertainty into part of the API contract.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most AI APIs make uncertainty something you ask for.&lt;/p&gt;

&lt;p&gt;Jev tries to make it something you receive by default.&lt;/p&gt;

&lt;p&gt;That is a very different engineering culture.&lt;/p&gt;




&lt;h1&gt;
  
  
  ANOTHER CAVEAT: "CONFIDENCE" IS NOT A SINGLE UNIVERSAL NUMBER
&lt;/h1&gt;

&lt;p&gt;TypeSafe distinguishes probabilities from confidence, and its different primitives expose them differently.&lt;/p&gt;

&lt;p&gt;That's important.&lt;/p&gt;

&lt;p&gt;A probability over Choice options is not the same conceptual thing as a generic "I'm 84% confident" statement.&lt;/p&gt;

&lt;p&gt;For a Choice:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;technical: 0.74
billing: 0.18
sales: 0.08
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the distribution tells you something about competition between options.&lt;/p&gt;

&lt;p&gt;A confidence value can be derived differently from the shape of that distribution.&lt;/p&gt;

&lt;p&gt;For Noul, the single probability is itself the primary signal.&lt;/p&gt;

&lt;p&gt;Developers should not casually treat every number returned by the model as though it has identical semantics.&lt;/p&gt;

&lt;p&gt;This is exactly the sort of boring detail that gets skipped in launch posts and then causes production bugs six months later.&lt;/p&gt;

&lt;p&gt;Please don't be that team.&lt;/p&gt;




&lt;h1&gt;
  
  
  THE 255-CHOICE LIMIT IS A GOOD EXAMPLE OF WHY SPECIALISED APIs ARE HONEST
&lt;/h1&gt;

&lt;p&gt;A generic LLM can pretend it can classify anything.&lt;/p&gt;

&lt;p&gt;Jev has explicit primitives and limits.&lt;/p&gt;

&lt;p&gt;Choice currently supports up to 255 options in the documented interface, with TypeSafe describing a two-stage strategy for larger cardinalities. [1][5]&lt;/p&gt;

&lt;p&gt;That sounds restrictive.&lt;/p&gt;

&lt;p&gt;It is.&lt;/p&gt;

&lt;p&gt;And that's useful.&lt;/p&gt;

&lt;p&gt;Good APIs make the shape of the problem visible.&lt;/p&gt;

&lt;p&gt;If your system has 8,000 possible categories, you shouldn't quietly pretend that a single bounded choice is the natural solution.&lt;/p&gt;

&lt;p&gt;Maybe you need hierarchy.&lt;/p&gt;

&lt;p&gt;Maybe you need retrieval.&lt;/p&gt;

&lt;p&gt;Maybe you need two-stage routing.&lt;/p&gt;

&lt;p&gt;Maybe you need ordinary code.&lt;/p&gt;

&lt;p&gt;The model tells you:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"This is the interface I am good at."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's healthier than pretending every model is universal.&lt;/p&gt;




&lt;h1&gt;
  
  
  WHAT HAPPENS WHEN JEV IS WRONG?
&lt;/h1&gt;

&lt;p&gt;This question matters more than how fast it is.&lt;/p&gt;

&lt;p&gt;Suppose Jev says:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;refund_requested = 0.04
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and the user actually asked for a refund.&lt;/p&gt;

&lt;p&gt;What happens?&lt;/p&gt;

&lt;p&gt;If your code automatically denies the refund, your threshold was too permissive.&lt;/p&gt;

&lt;p&gt;If your code sends everything to humans, you've destroyed the automation.&lt;/p&gt;

&lt;p&gt;The correct architecture therefore includes a third thing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MODEL
+
POLICY
+
ESCALATION
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model estimates.&lt;/p&gt;

&lt;p&gt;The policy decides.&lt;/p&gt;

&lt;p&gt;The uncertain cases go somewhere else.&lt;/p&gt;

&lt;p&gt;That could be a human.&lt;/p&gt;

&lt;p&gt;A larger LLM.&lt;/p&gt;

&lt;p&gt;A more expensive model.&lt;/p&gt;

&lt;p&gt;A business-rule engine.&lt;/p&gt;

&lt;p&gt;Or simply "do nothing".&lt;/p&gt;

&lt;p&gt;This makes Jev look less like a replacement for human judgement and more like a &lt;strong&gt;sensor&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Sensors don't decide.&lt;/p&gt;

&lt;p&gt;They tell the system what they think is happening.&lt;/p&gt;




&lt;h1&gt;
  
  
  THE REAL PRODUCT MIGHT BE THE ESCALATION PATH
&lt;/h1&gt;

&lt;p&gt;This is a subtle point I haven't seen discussed nearly enough.&lt;/p&gt;

&lt;p&gt;If Jev's killer feature is calibrated uncertainty, then the most important thing is not:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;confidence = 0.93
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;confidence = 0.43
→ now what?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A serious agent should have a plan for uncertain output.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; 0.9
automatic

0.6–0.9
another check

&amp;lt; 0.6
human / fallback
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The actual thresholds depend on the cost of false positives and false negatives.&lt;/p&gt;

&lt;p&gt;That means Jev can become part of a &lt;strong&gt;selective automation&lt;/strong&gt; architecture.&lt;/p&gt;

&lt;p&gt;Automate the boring obvious cases.&lt;/p&gt;

&lt;p&gt;Escalate the weird cases.&lt;/p&gt;

&lt;p&gt;This is how humans naturally work.&lt;/p&gt;

&lt;p&gt;And perhaps that is why the System One metaphor feels intuitive.&lt;/p&gt;




&lt;h1&gt;
  
  
  THE QUESTION I THINK MATTERS MOST
&lt;/h1&gt;

&lt;p&gt;The question:&lt;/p&gt;

&lt;p&gt;It is whether software is finally ready to stop treating every piece of machine intelligence as a conversation.&lt;/p&gt;

&lt;p&gt;For years, the default pattern was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ask model
→ get words
→ parse words
→ validate words
→ make decision
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Jev flips that:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;state
→ ask a typed question
→ get a bounded answer
→ let code decide what happens
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is a small interface change with potentially huge consequences.&lt;/p&gt;

&lt;p&gt;Maybe Jev becomes the beginning of a model category; maybe it becomes a footnote. Maybe the idea survives while the name disappears. We cannot know yet.&lt;/p&gt;

&lt;p&gt;But the bigger change may already be underway: AI systems are becoming less like isolated chatbots and more like collections of specialised components. The model that writes an explanation need not decide whether a workflow continues, and the model that reasons need not route the next tool call.&lt;/p&gt;

&lt;p&gt;Years from now, the most interesting thing about Jev might not be its benchmark chart at all.&lt;/p&gt;

&lt;p&gt;It might be that somebody looked at an AI agent, deleted the unnecessary paragraph, and asked the computer for the answer it actually needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  A NOTE ON THE NUMBERS
&lt;/h2&gt;

&lt;p&gt;The speed, price and workflow figures here are primarily &lt;strong&gt;TypeSafe's published claims&lt;/strong&gt;, cross-checked against Vercel, LangChain and Cloudflare. TypeSafe notes that its workflow evaluations have limitations and may represent the high end of real-world gains.&lt;/p&gt;

&lt;p&gt;As of &lt;strong&gt;September 22, 2026&lt;/strong&gt;, Jev is very new. The next step is independent testing of calibration, failure thresholds, production latency and fallback cost.&lt;/p&gt;

&lt;p&gt;That part is still unwritten.&lt;/p&gt;

&lt;h1&gt;
  
  
  Sources
&lt;/h1&gt;

&lt;p&gt;[1] TypeSafe AI, &lt;strong&gt;"Introducing System One Models &amp;amp; Jev"&lt;/strong&gt;, September 15, 2026.&lt;br&gt;&lt;br&gt;
[2] TypeSafe AI, &lt;strong&gt;Jev developer documentation&lt;/strong&gt;, September 2026.&lt;br&gt;&lt;br&gt;
[3] Vercel, &lt;strong&gt;"TypeSafe AI's Jev now available on AI Gateway"&lt;/strong&gt;, September 16, 2026.&lt;br&gt;&lt;br&gt;
[4] Vercel, &lt;strong&gt;"What is Jev, TypeSafe AI's System One model?"&lt;/strong&gt;, September 18, 2026.&lt;br&gt;&lt;br&gt;
[5] Vercel, &lt;strong&gt;"AI Gateway now supports TypeSafe clients and HTTP API for Jev"&lt;/strong&gt;, September 21, 2026.&lt;br&gt;&lt;br&gt;
[6] LangChain, &lt;strong&gt;"Building a Harness with Jev"&lt;/strong&gt;, September 17, 2026.&lt;br&gt;&lt;br&gt;
[7] Cloudflare AI documentation, &lt;strong&gt;Jev / typesafe/jev&lt;/strong&gt;, September 2026.&lt;br&gt;&lt;br&gt;
[8] TechCrunch, &lt;strong&gt;"A new kind of AI model from a ChatGPT inventor is thrilling developers"&lt;/strong&gt;, September 18, 2026.&lt;/p&gt;

&lt;h1&gt;
  
  
  SEO / GEO
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;SEO title:&lt;/strong&gt; This AI Model Doesn't Want to Talk to You — It Wants to Run Your Software&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Meta description:&lt;/strong&gt; TypeSafe AI's Jev is a new System One model built for typed decisions instead of text. Here is why its architecture, calibration, price and agent integrations matter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Suggested slug:&lt;/strong&gt; &lt;code&gt;typesafe-jev-system-one-model-ai-agents&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keywords:&lt;/strong&gt; TypeSafe AI, Jev AI, System One Model, AI decision model, structured AI, AI agents, calibrated AI, typed AI, AI routing, AI classification.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GEO questions:&lt;/strong&gt; What is Jev? What is a System One Model? How is Jev different from an LLM? Does Jev generate text? What are Choice, Score and Noul? How much does Jev cost? How does Jev fit inside AI agents?&lt;/p&gt;

&lt;h1&gt;
  
  
  About the author
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Mahan Tavakoli (MahanKenway)&lt;/strong&gt; is a programmer and technology enthusiast based in Tehran. He writes about AI infrastructure, developer tooling, software architecture, security, and the weird ideas that sometimes turn into the obvious future.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;strong&gt;github.com/MahanKenway&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>jev</category>
      <category>llm</category>
      <category>programming</category>
    </item>
    <item>
      <title>Vibe Coding Was Supposed to Kill Software Engineering. Instead, It Exposed What Engineering Actually Is.</title>
      <dc:creator>Mahan Tavakoli</dc:creator>
      <pubDate>Mon, 14 Sep 2026 08:58:11 +0000</pubDate>
      <link>https://dev.to/mahankenway/vibe-coding-was-supposed-to-kill-software-engineering-instead-it-exposed-what-engineering-2hia</link>
      <guid>https://dev.to/mahankenway/vibe-coding-was-supposed-to-kill-software-engineering-instead-it-exposed-what-engineering-2hia</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The strange thing about AI coding isn't that machines can write software now.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It's that we're finally discovering how much of software engineering had very little to do with typing code in the first place.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In early 2025, “vibe coding” sounded like a meme.&lt;/p&gt;

&lt;p&gt;Andrej Karpathy described it as essentially giving in to the model, accepting generated code, and worrying less about the code itself. He openly described accepting changes without reading the diffs and letting the code grow beyond his normal comprehension. He also made an important exception: for disposable weekend projects, it was “not too bad.”&lt;/p&gt;

&lt;p&gt;That distinction should have ended the argument.&lt;/p&gt;

&lt;p&gt;It didn't.&lt;/p&gt;

&lt;p&gt;Instead, the internet split into two camps.&lt;/p&gt;

&lt;p&gt;One side said:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“This isn't engineering.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The other said:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“You just don't understand what engineering is becoming.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A year later, I'm less interested in which side wins.&lt;/p&gt;

&lt;p&gt;I'm interested in something more uncomfortable.&lt;/p&gt;

&lt;h3&gt;
  
  
  What if both sides were looking at different parts of the same transition?
&lt;/h3&gt;




&lt;h1&gt;
  
  
  The Original Sin of Vibe Coding
&lt;/h1&gt;

&lt;p&gt;The biggest misconception about vibe coding is that it means:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Using AI to write code.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It doesn't.&lt;/p&gt;

&lt;p&gt;Simon Willison made that distinction very clearly in 2025. His argument was basically that if an LLM writes the code but you review, test, understand, and take responsibility for it, that's not really vibe coding. That's simply using an LLM as a programming tool.&lt;/p&gt;

&lt;p&gt;The more interesting definition is much messier:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You have an idea.

You describe it.

The model writes something.

You run it.

Something breaks.

You describe the break.

The model changes the code.

You run it again.

It works.

You ship it.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That workflow feels almost magical.&lt;/p&gt;

&lt;p&gt;And sometimes it is.&lt;/p&gt;

&lt;p&gt;But there's an interesting word hiding inside that loop:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;works.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What does “works” actually mean?&lt;/p&gt;

&lt;p&gt;Does it pass the demo?&lt;/p&gt;

&lt;p&gt;Does it pass the tests?&lt;/p&gt;

&lt;p&gt;Does it survive production?&lt;/p&gt;

&lt;p&gt;Can another developer understand it?&lt;/p&gt;

&lt;p&gt;Can you debug it six months later?&lt;/p&gt;

&lt;p&gt;Does it preserve the right security boundaries?&lt;/p&gt;

&lt;p&gt;Does it make the next feature easier or harder?&lt;/p&gt;

&lt;p&gt;Or does “works” simply mean:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“I don't see an error anymore.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Those are very different definitions of success.&lt;/p&gt;




&lt;h1&gt;
  
  
  I Found Myself Doing It Too
&lt;/h1&gt;

&lt;p&gt;This is where the debate gets personal for me.&lt;/p&gt;

&lt;p&gt;I've built projects where AI was involved in much more than autocomplete.&lt;/p&gt;

&lt;p&gt;Take &lt;strong&gt;&lt;a href="https://github.com/MahanKenway/Arcane-Dice" rel="noopener noreferrer"&gt;Arcane Dice&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It's a 3D physics dice roller with Three.js, Ammo.js and an AI dungeon-master layer.&lt;/p&gt;

&lt;p&gt;I could describe a feature, let the model implement it, run the project, find something broken, paste the error back, and keep going.&lt;/p&gt;

&lt;p&gt;And that's incredibly productive.&lt;/p&gt;

&lt;p&gt;You can get from:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I have an idea.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“There's a working prototype in the browser.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;much faster than you could before.&lt;/p&gt;

&lt;p&gt;That's the part of AI coding that critics sometimes underestimate.&lt;/p&gt;

&lt;p&gt;The leverage is real.&lt;/p&gt;

&lt;p&gt;But then something funny happens.&lt;/p&gt;

&lt;p&gt;The project gets bigger.&lt;/p&gt;

&lt;p&gt;The components multiply.&lt;/p&gt;

&lt;p&gt;State starts crossing boundaries.&lt;/p&gt;

&lt;p&gt;One feature touches three other systems.&lt;/p&gt;

&lt;p&gt;A “small” change suddenly has consequences somewhere else.&lt;/p&gt;

&lt;p&gt;And the questions change.&lt;/p&gt;

&lt;p&gt;You stop asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can the AI write this?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and start asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Why did it write it this way?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's a completely different question.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Code Gets Cheaper. The Context Doesn't.
&lt;/h1&gt;

&lt;p&gt;This might be the most important economic change AI has introduced into programming.&lt;/p&gt;

&lt;p&gt;The cost of generating code has collapsed.&lt;/p&gt;

&lt;p&gt;The cost of &lt;strong&gt;understanding a system&lt;/strong&gt; hasn't.&lt;/p&gt;

&lt;p&gt;Imagine an agent generating 2,000 lines in ten minutes.&lt;/p&gt;

&lt;p&gt;Amazing.&lt;/p&gt;

&lt;p&gt;Now imagine another engineer has to spend two hours understanding the change.&lt;/p&gt;

&lt;p&gt;The generation got cheaper.&lt;/p&gt;

&lt;p&gt;The reasoning didn't.&lt;/p&gt;

&lt;p&gt;And if AI makes developers produce five times as many changes, the amount of software requiring review can increase faster than human review capacity.&lt;/p&gt;

&lt;p&gt;That's exactly why code review is becoming such a strange bottleneck in the agentic era.&lt;/p&gt;

&lt;p&gt;Recent industry analysis has reported large increases in code churn and review time among teams with heavy AI adoption, alongside concerns about more unreviewed changes reaching production.&lt;/p&gt;

&lt;p&gt;There's a beautiful paradox here:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI removes the bottleneck that was visible.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Then creates a bottleneck that is harder to measure.&lt;/p&gt;




&lt;h1&gt;
  
  
  “But My Tests Are Green”
&lt;/h1&gt;

&lt;p&gt;This is probably the most dangerous sentence in AI-assisted development.&lt;/p&gt;

&lt;p&gt;A test suite can tell you that certain behavior works.&lt;/p&gt;

&lt;p&gt;It cannot tell you that the architecture makes sense.&lt;/p&gt;

&lt;p&gt;It cannot tell you that the abstraction belongs there.&lt;/p&gt;

&lt;p&gt;It cannot tell you that the next engineer will understand the code.&lt;/p&gt;

&lt;p&gt;And it certainly can't guarantee that you solved the right problem.&lt;/p&gt;

&lt;p&gt;METR ran an experiment around exactly this gap.&lt;/p&gt;

&lt;p&gt;They looked at software-engineering patches that passed automated SWE-bench evaluation and then asked maintainers whether they would actually merge them.&lt;/p&gt;

&lt;p&gt;A substantial share of those patches were not considered acceptable for the real project.&lt;/p&gt;

&lt;p&gt;That doesn't mean the benchmark is useless. It means the benchmark is measuring something different.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Passing a test is not the same as passing an engineer.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's an important distinction because AI systems are becoming exceptionally good at optimizing for things we can measure.&lt;/p&gt;

&lt;p&gt;The things we cannot measure as easily are often the things engineers spend their lives worrying about.&lt;/p&gt;




&lt;h1&gt;
  
  
  Then the Productivity Research Got Weird
&lt;/h1&gt;

&lt;p&gt;There is another reason I don't think the “AI makes programmers worse” argument holds up.&lt;/p&gt;

&lt;p&gt;Some research says AI makes developers significantly more productive.&lt;/p&gt;

&lt;p&gt;A large field experiment involving 4,867 developers across Microsoft, Accenture, and a Fortune 100 company reported that developers with access to AI coding assistance completed about 26% more tasks.&lt;/p&gt;

&lt;p&gt;That is not a rounding error.&lt;/p&gt;

&lt;p&gt;But another randomized METR study of experienced open-source developers working in mature repositories found something almost comically opposite: developers using AI took about 19% longer on the tasks studied.&lt;/p&gt;

&lt;p&gt;Even stranger, the developers expected AI to make them faster.&lt;/p&gt;

&lt;p&gt;They were slower.&lt;/p&gt;

&lt;p&gt;And still believed they were faster.&lt;/p&gt;

&lt;p&gt;That's not just a story about AI.&lt;/p&gt;

&lt;p&gt;It's a story about humans.&lt;/p&gt;

&lt;p&gt;We are very bad at estimating the total cost of automation when the automation feels good.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Best AI Feature Might Be False Confidence
&lt;/h1&gt;

&lt;p&gt;This is the part that genuinely bothers me.&lt;/p&gt;

&lt;p&gt;When an AI generates broken code, that's annoying.&lt;/p&gt;

&lt;p&gt;When it generates code that &lt;strong&gt;looks correct&lt;/strong&gt;, it's much more dangerous.&lt;/p&gt;

&lt;p&gt;Good naming.&lt;/p&gt;

&lt;p&gt;Clean formatting.&lt;/p&gt;

&lt;p&gt;Reasonable comments.&lt;/p&gt;

&lt;p&gt;A green test suite.&lt;/p&gt;

&lt;p&gt;A polished UI.&lt;/p&gt;

&lt;p&gt;No obvious errors.&lt;/p&gt;

&lt;p&gt;Suddenly you have something that feels trustworthy.&lt;/p&gt;

&lt;p&gt;And our brains are very willing to reward things that look finished.&lt;/p&gt;

&lt;p&gt;One 2026 study examining whether human developers could detect deliberately hidden malicious behavior in AI-assisted coding tasks found that most participants failed to detect the sabotage. Even after monitoring warnings appeared, many participants still accepted the code.&lt;/p&gt;

&lt;p&gt;That's not evidence that AI is evil.&lt;/p&gt;

&lt;p&gt;It's evidence that &lt;strong&gt;human review is not automatically human understanding&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You can technically review a diff while mentally outsourcing the judgment to the machine that produced it.&lt;/p&gt;

&lt;p&gt;That's a very different kind of failure.&lt;/p&gt;




&lt;h1&gt;
  
  
  And Security Doesn't Care About Your Vibes
&lt;/h1&gt;

&lt;p&gt;Here is where the “it's just a prototype” defense becomes complicated.&lt;/p&gt;

&lt;p&gt;Because prototypes have a nasty habit of becoming products.&lt;/p&gt;

&lt;p&gt;A developer builds something for fun.&lt;/p&gt;

&lt;p&gt;Then someone says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“This is actually pretty useful.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can we add accounts?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can it store user data?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can we monetize it?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can it handle payments?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Congratulations.&lt;/p&gt;

&lt;p&gt;Your weekend experiment now has a security model.&lt;/p&gt;

&lt;p&gt;A 2025 benchmark of real-world coding tasks found a disturbing gap between functional correctness and security. In one evaluation, 61% of SWE-Agent solutions using Claude 4 Sonnet were functionally correct, while only 10.5% were considered secure.&lt;/p&gt;

&lt;p&gt;That number should make every “the tests pass” argument feel slightly less comfortable.&lt;/p&gt;

&lt;p&gt;Because software doesn't get attacked according to your benchmark.&lt;/p&gt;

&lt;p&gt;It gets attacked according to reality.&lt;/p&gt;




&lt;h1&gt;
  
  
  My Own Projects Made This More Obvious
&lt;/h1&gt;

&lt;p&gt;Another project I've worked on is &lt;strong&gt;Ikol&lt;/strong&gt;, a Telegram AI bot.&lt;/p&gt;

&lt;p&gt;The interesting part isn't simply getting an AI bot to answer messages.&lt;/p&gt;

&lt;p&gt;That's easy now.&lt;/p&gt;

&lt;p&gt;The interesting part is everything that happens around the model.&lt;/p&gt;

&lt;p&gt;State.&lt;/p&gt;

&lt;p&gt;Retries.&lt;/p&gt;

&lt;p&gt;Tool selection.&lt;/p&gt;

&lt;p&gt;Rate limits.&lt;/p&gt;

&lt;p&gt;External APIs.&lt;/p&gt;

&lt;p&gt;Bad responses.&lt;/p&gt;

&lt;p&gt;Wrong music results.&lt;/p&gt;

&lt;p&gt;A tool that works perfectly today and starts behaving differently tomorrow.&lt;/p&gt;

&lt;p&gt;A previous answer leaking into an unrelated conversation.&lt;/p&gt;

&lt;p&gt;Suddenly you're not really asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can GPT answer this?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You're asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What guarantees does the system have when everything around GPT is imperfect?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's engineering.&lt;/p&gt;

&lt;p&gt;And AI doesn't remove that layer.&lt;/p&gt;

&lt;p&gt;It makes the layer more visible.&lt;/p&gt;




&lt;h1&gt;
  
  
  Here's Where I Think the Vibe Coding Debate Goes Wrong
&lt;/h1&gt;

&lt;p&gt;We keep asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Is vibe coding engineering?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I think that's the wrong question.&lt;/p&gt;

&lt;p&gt;A better question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Where does the engineering move when the typing moves to the model?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;One DEV commenter described the role as a kind of “Language Modeler”: the human specifies what the system is, what it means, and what constraints are allowed, while the AI acts as a translator between natural language and code.&lt;/p&gt;

&lt;p&gt;Another developer argued that the new engineering skill is orchestration: decomposing problems, directing agents, validating outputs, and knowing whether the generated system actually solves the problem.&lt;/p&gt;

&lt;p&gt;Those aren't silly arguments.&lt;/p&gt;

&lt;p&gt;They're actually the strongest argument &lt;strong&gt;for&lt;/strong&gt; AI-native engineering.&lt;/p&gt;

&lt;p&gt;And that's where the discussion gets interesting.&lt;/p&gt;




&lt;h1&gt;
  
  
  The New Engineer Might Write Less Code and Understand More
&lt;/h1&gt;

&lt;p&gt;Imagine two developers.&lt;/p&gt;

&lt;p&gt;Developer A writes 2,000 lines manually.&lt;/p&gt;

&lt;p&gt;Developer B generates 10,000 lines with AI.&lt;/p&gt;

&lt;p&gt;Developer B might appear more productive.&lt;/p&gt;

&lt;p&gt;But now imagine Developer A understands every abstraction in those 2,000 lines.&lt;/p&gt;

&lt;p&gt;Developer B understands only the behavior of the system at the surface.&lt;/p&gt;

&lt;p&gt;Which one is the better engineer?&lt;/p&gt;

&lt;p&gt;We don't actually know.&lt;/p&gt;

&lt;p&gt;Because the answer depends on what happens next.&lt;/p&gt;

&lt;p&gt;If nothing breaks, Developer B wins.&lt;/p&gt;

&lt;p&gt;If the product has to evolve for five years, the equation might completely reverse.&lt;/p&gt;

&lt;p&gt;And if the system is safety-critical?&lt;/p&gt;

&lt;p&gt;The cost of not understanding can become enormous.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Comment Sections Are Actually Getting More Interesting
&lt;/h1&gt;

&lt;p&gt;What's changed recently isn't that everyone agrees.&lt;/p&gt;

&lt;p&gt;It's that the arguments are getting better.&lt;/p&gt;

&lt;p&gt;One DEV commenter recently described vibe coding as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“borrowing time from the future at a predatory interest rate.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's a brutal metaphor.&lt;/p&gt;

&lt;p&gt;But it's useful.&lt;/p&gt;

&lt;p&gt;Maybe AI doesn't remove technical debt.&lt;/p&gt;

&lt;p&gt;Maybe it makes technical debt easier to create.&lt;/p&gt;

&lt;p&gt;Another commenter pushed back on the old definition of vibe coding and argued that the real skill is &lt;strong&gt;orchestration&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That argument is compelling because software engineering has always been partly about abstraction.&lt;/p&gt;

&lt;p&gt;We stopped writing machine instructions by hand.&lt;/p&gt;

&lt;p&gt;We stopped reimplementing everything from scratch.&lt;/p&gt;

&lt;p&gt;We created frameworks.&lt;/p&gt;

&lt;p&gt;We created libraries.&lt;/p&gt;

&lt;p&gt;We created compilers.&lt;/p&gt;

&lt;p&gt;Nobody concluded that software engineering had disappeared.&lt;/p&gt;

&lt;p&gt;So why should the ability to describe software to a model be fundamentally different?&lt;/p&gt;

&lt;p&gt;Maybe it isn't.&lt;/p&gt;

&lt;p&gt;Maybe we're just adding another abstraction layer.&lt;/p&gt;




&lt;h1&gt;
  
  
  But There's a Trap
&lt;/h1&gt;

&lt;p&gt;Abstraction is powerful.&lt;/p&gt;

&lt;p&gt;Abstraction also hides things.&lt;/p&gt;

&lt;p&gt;That's the entire point.&lt;/p&gt;

&lt;p&gt;You don't need to understand how malloc works every time you create an array.&lt;/p&gt;

&lt;p&gt;You don't need to understand a CPU pipeline to write a React component.&lt;/p&gt;

&lt;p&gt;But when the abstraction breaks, someone needs to know what's underneath it.&lt;/p&gt;

&lt;p&gt;That's why I think the future developer profile becomes strangely asymmetric.&lt;/p&gt;

&lt;p&gt;You might write 20% of the code yourself.&lt;/p&gt;

&lt;p&gt;But you may need to understand 80% of what the system is doing.&lt;/p&gt;

&lt;p&gt;That sounds backwards.&lt;/p&gt;

&lt;p&gt;It isn't.&lt;/p&gt;

&lt;p&gt;It's what abstraction has always done.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Most Valuable Programmer Might Become the Person Who Deletes the Most AI Code
&lt;/h1&gt;

&lt;p&gt;This is the part nobody likes talking about.&lt;/p&gt;

&lt;p&gt;Generation is seductive.&lt;/p&gt;

&lt;p&gt;Deletion is not.&lt;/p&gt;

&lt;p&gt;AI makes it incredibly easy to say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Let's add one more thing.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;One more feature.&lt;/p&gt;

&lt;p&gt;One more helper.&lt;/p&gt;

&lt;p&gt;One more abstraction.&lt;/p&gt;

&lt;p&gt;One more dependency.&lt;/p&gt;

&lt;p&gt;One more component.&lt;/p&gt;

&lt;p&gt;One more agent.&lt;/p&gt;

&lt;p&gt;Until the project becomes a pile of things that individually made sense and collectively don't.&lt;/p&gt;

&lt;p&gt;The ability to say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“No. We don't need this.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;might become more valuable than the ability to generate it.&lt;/p&gt;

&lt;p&gt;The best engineer in an AI-heavy team may not be the person who produces the most code.&lt;/p&gt;

&lt;p&gt;It may be the person who knows which 40% should never have existed.&lt;/p&gt;




&lt;h1&gt;
  
  
  So Was Vibe Coding Right?
&lt;/h1&gt;

&lt;p&gt;Yes.&lt;/p&gt;

&lt;p&gt;And no.&lt;/p&gt;

&lt;p&gt;Vibe coding was right about one enormous thing:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A surprisingly small amount of traditional programming work actually requires humans to manually type every line.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But its critics were right about another:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Removing typing does not remove responsibility.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI can collapse the distance between an idea and a prototype.&lt;/p&gt;

&lt;p&gt;That's incredible.&lt;/p&gt;

&lt;p&gt;It can also collapse the distance between an idea and a production incident.&lt;/p&gt;

&lt;p&gt;That's considerably less incredible.&lt;/p&gt;

&lt;p&gt;The technology isn't the contradiction.&lt;/p&gt;

&lt;p&gt;Our definition of “done” is.&lt;/p&gt;




&lt;h1&gt;
  
  
  Maybe This Is What Software Engineering Has Been Becoming All Along
&lt;/h1&gt;

&lt;p&gt;This is the historical part that I keep coming back to.&lt;/p&gt;

&lt;p&gt;Programming has spent decades moving upward:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Machine code
      ↓
Assembly
      ↓
C
      ↓
C++
      ↓
Python / Java / JavaScript
      ↓
Frameworks
      ↓
Libraries
      ↓
Declarative systems
      ↓
Natural language
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every step removes some amount of direct control.&lt;/p&gt;

&lt;p&gt;And every step creates a new question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;How much do you need to understand about the layer below you?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Maybe AI isn't the death of programming.&lt;/p&gt;

&lt;p&gt;Maybe it's simply the point where that question becomes impossible to avoid.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Weird Future
&lt;/h1&gt;

&lt;p&gt;I don't think the future belongs to people who refuse AI.&lt;/p&gt;

&lt;p&gt;I also don't think it belongs to people who blindly trust it.&lt;/p&gt;

&lt;p&gt;It probably belongs to the people who can move between both worlds.&lt;/p&gt;

&lt;p&gt;They can think in systems.&lt;/p&gt;

&lt;p&gt;They can specify precisely.&lt;/p&gt;

&lt;p&gt;They can delegate.&lt;/p&gt;

&lt;p&gt;They can inspect.&lt;/p&gt;

&lt;p&gt;They can debug.&lt;/p&gt;

&lt;p&gt;They can recognize when the model is confidently wrong.&lt;/p&gt;

&lt;p&gt;They can throw away generated work without feeling emotionally attached to it.&lt;/p&gt;

&lt;p&gt;And when necessary, they can still open the code and understand what is actually happening.&lt;/p&gt;

&lt;p&gt;That's a very different skill from memorizing syntax.&lt;/p&gt;

&lt;p&gt;But it's still engineering.&lt;/p&gt;




&lt;h1&gt;
  
  
  One Last Thought
&lt;/h1&gt;

&lt;p&gt;Maybe we're asking the wrong question because we're still obsessed with the old definition of a programmer.&lt;/p&gt;

&lt;p&gt;We keep looking at the screen and asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Who wrote this code?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Maybe the more important question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Who understands this system well enough to be responsible for it?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Because one day, AI may genuinely write 95% of the implementation.&lt;/p&gt;

&lt;p&gt;That part is plausible.&lt;/p&gt;

&lt;p&gt;What is much harder to automate is judgment.&lt;/p&gt;

&lt;p&gt;Knowing what should exist.&lt;/p&gt;

&lt;p&gt;Knowing what shouldn't.&lt;/p&gt;

&lt;p&gt;Knowing which assumptions are dangerous.&lt;/p&gt;

&lt;p&gt;Knowing when the tests are lying by omission.&lt;/p&gt;

&lt;p&gt;Knowing when the architecture is drifting.&lt;/p&gt;

&lt;p&gt;Knowing when the fastest solution today is the slowest solution next year.&lt;/p&gt;

&lt;p&gt;And knowing when to tell the machine:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“No. Delete it. We don't need this.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's the part I don't think vibe coding has replaced.&lt;/p&gt;

&lt;p&gt;Maybe it was never supposed to.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sources &amp;amp; Further Reading
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Andrej Karpathy — “vibe coding”&lt;/strong&gt;&lt;br&gt;
Karpathy's original February 2025 description of the practice and its deliberately hands-off workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simon Willison — “Will the future of software development run on vibes?”&lt;/strong&gt;&lt;br&gt;
A useful distinction between true vibe coding and AI-assisted software development where the developer still reviews and understands the result.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;METR — AI and experienced open-source developer productivity&lt;/strong&gt;&lt;br&gt;
A randomized study that found experienced developers in the studied repositories took longer with AI assistance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Management Science — Generative AI and software developers&lt;/strong&gt;&lt;br&gt;
Large-scale field experiments involving 4,867 developers found meaningful productivity gains from AI coding assistance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;METR — SWE-bench and human merge decisions&lt;/strong&gt;&lt;br&gt;
Evidence that passing automated software-engineering benchmarks is not equivalent to a maintainer deciding that a patch belongs in a real codebase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SU S VI B E S benchmark&lt;/strong&gt;&lt;br&gt;
Research showing a major gap between functional correctness and security in agent-generated software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DEV Community — “Vibe Coding Isn't the Problem. Calling It Engineering Is”&lt;/strong&gt;&lt;br&gt;
The article that triggered the discussion behind this piece, including the distinction between vibe coding, AI-assisted programming, and engineering accountability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My own projects:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/MahanKenway/Arcane-Dice" rel="noopener noreferrer"&gt;Arcane Dice&lt;/a&gt; — 3D physics dice roller with an AI dungeon-master layer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/MahanKenway" rel="noopener noreferrer"&gt;More of my work&lt;/a&gt; — experiments spanning AI, web development, games, automation, and tooling.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>vibecodeing</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>What If the Compiler Is Lying to You?</title>
      <dc:creator>Mahan Tavakoli</dc:creator>
      <pubDate>Sat, 12 Sep 2026 09:48:14 +0000</pubDate>
      <link>https://dev.to/mahankenway/what-if-the-compiler-is-lying-to-you-48g9</link>
      <guid>https://dev.to/mahankenway/what-if-the-compiler-is-lying-to-you-48g9</guid>
      <description>&lt;h2&gt;
  
  
  Ken Thompson imagined the impossible in 1984. Forty-two years later, AI code, npm, and software supply chains are making the same question uncomfortable again.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;By Mahan Tavakoli — MahanKenway&lt;/strong&gt;&lt;br&gt;
Tehran, Iran&lt;br&gt;
GitHub: &lt;strong&gt;github.com/MahanKenway&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;Imagine you inspect a program.&lt;/p&gt;

&lt;p&gt;You read the source code.&lt;/p&gt;

&lt;p&gt;You review the repository.&lt;/p&gt;

&lt;p&gt;You compile it.&lt;/p&gt;

&lt;p&gt;You compare the resulting binary.&lt;/p&gt;

&lt;p&gt;Everything looks clean.&lt;/p&gt;

&lt;p&gt;No backdoor.&lt;/p&gt;

&lt;p&gt;No suspicious function.&lt;/p&gt;

&lt;p&gt;No hidden payload.&lt;/p&gt;

&lt;p&gt;You ship it.&lt;/p&gt;

&lt;p&gt;And the backdoor is still there.&lt;/p&gt;

&lt;p&gt;Not because you missed a line of code.&lt;/p&gt;

&lt;p&gt;Because the &lt;strong&gt;compiler itself&lt;/strong&gt; was taught to insert the backdoor.&lt;/p&gt;

&lt;p&gt;That sounds like science fiction.&lt;/p&gt;

&lt;p&gt;In 1984, Ken Thompson explained how to do it.&lt;/p&gt;

&lt;p&gt;He didn't publish a hypothetical security bug.&lt;/p&gt;

&lt;p&gt;He demonstrated a way of thinking about software trust that still sits underneath modern supply-chain security.&lt;/p&gt;

&lt;p&gt;His ACM Turing Award lecture, &lt;strong&gt;“Reflections on Trusting Trust,”&lt;/strong&gt; appeared in &lt;em&gt;Communications of the ACM&lt;/em&gt; in August 1984, volume 27, issue 8, pages 761–763. Its central question was brutally simple: &lt;em&gt;to what extent can we trust a statement that a program is free of Trojan horses?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Thompson's answer was essentially:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You may be trusting the wrong layer.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And that becomes weirdly relevant in 2026.&lt;/p&gt;

&lt;p&gt;Because the software we build today increasingly has another thing sitting between a human and executable code:&lt;/p&gt;
&lt;h1&gt;
  
  
  AI.
&lt;/h1&gt;


&lt;h1&gt;
  
  
  1. The terrifying idea hidden inside a tiny compiler
&lt;/h1&gt;

&lt;p&gt;Ken Thompson's famous demonstration starts with a C compiler.&lt;/p&gt;

&lt;p&gt;The basic situation looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C source code
     |
     v
  compiler
     |
     v
 executable
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Most developers intuitively trust the relationship:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source code
   ↓
compiler
   ↓
binary
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We inspect the source.&lt;/p&gt;

&lt;p&gt;We inspect the compiler.&lt;/p&gt;

&lt;p&gt;We inspect the resulting program.&lt;/p&gt;

&lt;p&gt;Therefore the resulting executable should be trustworthy.&lt;/p&gt;

&lt;p&gt;Thompson showed why that conclusion does &lt;strong&gt;not&lt;/strong&gt; necessarily follow.&lt;/p&gt;

&lt;p&gt;His attack can be understood as a chain of self-reproducing trust.&lt;/p&gt;

&lt;p&gt;A malicious compiler could recognize when it is compiling:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. the login program
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and secretly insert a backdoor.&lt;/p&gt;

&lt;p&gt;But that is only the first trick.&lt;/p&gt;

&lt;p&gt;The more interesting version recognizes when it is compiling:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2. the compiler itself
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and secretly inserts the malicious compiler behavior into the new compiler binary.&lt;/p&gt;

&lt;p&gt;Now the source code can be completely clean.&lt;/p&gt;

&lt;p&gt;You can remove the malicious code from the compiler's source.&lt;/p&gt;

&lt;p&gt;You can recompile.&lt;/p&gt;

&lt;p&gt;And the compiled compiler can simply put the malicious behavior back.&lt;/p&gt;

&lt;p&gt;The source looks innocent.&lt;/p&gt;

&lt;p&gt;The binary is not.&lt;/p&gt;

&lt;p&gt;Thompson's original lecture develops this idea in stages, beginning with a self-reproducing program and then applying the technique to a compiler so that the malicious behavior can persist without appearing in the source.&lt;/p&gt;

&lt;p&gt;This is the important conceptual jump:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The thing producing your software can become part of the trusted computing base.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And once you understand that, “is the source code clean?” is no longer enough.&lt;/p&gt;




&lt;h1&gt;
  
  
  2. The trust problem is recursive
&lt;/h1&gt;

&lt;p&gt;Let's draw the problem differently.&lt;/p&gt;

&lt;p&gt;A normal developer may think:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;I trust my source code.
        ↓
I trust my compiler.
        ↓
I trust my binary.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thompson asks:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Why do you trust the compiler?
        ↓
Because you inspected its source.
        ↓
Who compiled that compiler?
        ↓
With what compiler?
        ↓
Who built that compiler?
        ↓
With what environment?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Eventually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;software
  ↓
compiler
  ↓
compiler compiler
  ↓
build system
  ↓
operating system
  ↓
hardware
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You have reached a philosophical problem disguised as a technical one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trust has to terminate somewhere.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And wherever it terminates becomes part of your trusted base.&lt;/p&gt;

&lt;p&gt;Thompson's paper is often summarized as a compiler backdoor story.&lt;/p&gt;

&lt;p&gt;That's true.&lt;/p&gt;

&lt;p&gt;But the deeper lesson is more general:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A system can be compromised at a layer that verifies the layers above it.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is why this 1984 paper is still taught.&lt;/p&gt;

&lt;p&gt;Not because everyone is worried about somebody secretly modifying GCC tomorrow.&lt;/p&gt;

&lt;p&gt;Because the architecture of trust it describes is still real.&lt;/p&gt;




&lt;h1&gt;
  
  
  3. Supply-chain security is basically this problem with more boxes
&lt;/h1&gt;

&lt;p&gt;Modern software rarely goes directly from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my source
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my executable
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source
  ↓
dependencies
  ↓
package manager
  ↓
build scripts
  ↓
compiler
  ↓
libraries
  ↓
CI
  ↓
container
  ↓
registry
  ↓
deployment
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And often:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dependency
    ↓
dependency
    ↓
dependency
    ↓
dependency
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the &lt;strong&gt;software supply chain&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;CISA's documentation on the 2020 SolarWinds compromise is a useful illustration of how consequential that chain can become: attackers compromised the SolarWinds Orion software supply chain, and malicious software was distributed through affected Orion products. CISA described the campaign as affecting government, critical-infrastructure, and private-sector organizations.&lt;/p&gt;

&lt;p&gt;Notice what made SolarWinds so powerful.&lt;/p&gt;

&lt;p&gt;Victims were not necessarily downloading an obviously malicious executable from an obviously malicious website.&lt;/p&gt;

&lt;p&gt;They were receiving software through a trusted vendor's normal distribution mechanism.&lt;/p&gt;

&lt;p&gt;That is the basic supply-chain attack:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;you trust A
A depends on B
B is compromised
therefore
you indirectly trust B
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Trust propagates.&lt;/p&gt;

&lt;p&gt;So does compromise.&lt;/p&gt;




&lt;h1&gt;
  
  
  4. npm already gave developers a preview of this nightmare
&lt;/h1&gt;

&lt;p&gt;Node developers don't need a theoretical lecture about transitive trust.&lt;/p&gt;

&lt;p&gt;They have seen it happen.&lt;/p&gt;

&lt;p&gt;In 2018, the npm package &lt;strong&gt;event-stream&lt;/strong&gt; was compromised after a new maintainer added the malicious &lt;code&gt;flatmap-stream&lt;/code&gt; dependency. npm's incident report says the malicious dependency targeted Copay, a cryptocurrency wallet application, and that malicious code was eventually deployed in Copay versions 5.0.2 through 5.1.0.&lt;/p&gt;

&lt;p&gt;The critical detail is not the cryptocurrency angle.&lt;/p&gt;

&lt;p&gt;It is the dependency relationship:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Copay
   ↓
event-stream
   ↓
flatmap-stream
   ↓
malicious code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The application did not necessarily contain:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// hello, I am malware&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;at the level where the developer expected to find it.&lt;/p&gt;

&lt;p&gt;It inherited trust.&lt;/p&gt;

&lt;p&gt;And inherited code.&lt;/p&gt;

&lt;p&gt;Snyk reported that the malicious dependency had been downloaded millions of times during the incident, illustrating how a popular dependency could become a distribution mechanism for malicious code.&lt;/p&gt;

&lt;p&gt;The interesting thing is that &lt;strong&gt;the source repository could still look respectable&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The package name could look legitimate.&lt;/p&gt;

&lt;p&gt;The dependency tree could look normal.&lt;/p&gt;

&lt;p&gt;The package manager could be doing exactly what it was designed to do.&lt;/p&gt;

&lt;p&gt;And yet the final application was compromised.&lt;/p&gt;

&lt;p&gt;That is Thompson's question in a modern costume.&lt;/p&gt;




&lt;h1&gt;
  
  
  5. Then there was SolarWinds
&lt;/h1&gt;

&lt;p&gt;The SolarWinds incident took the same general idea to enterprise scale.&lt;/p&gt;

&lt;p&gt;CISA reported that the campaign involved a compromise of the SolarWinds Orion software supply chain, with affected Orion versions distributed between March and June 2020.&lt;/p&gt;

&lt;p&gt;Again, the fascinating thing is &lt;strong&gt;where the attacker stood&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;They did not need to convince every final victim to execute a random malicious file.&lt;/p&gt;

&lt;p&gt;They needed to compromise a trusted point in the production chain.&lt;/p&gt;

&lt;p&gt;That turns:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;one compromised developer environment
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;into:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;thousands of potentially trusting customers
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is why supply-chain security can be asymmetric.&lt;/p&gt;

&lt;p&gt;An attacker may only need to compromise one high-leverage component.&lt;/p&gt;

&lt;p&gt;The defenders have to verify everything downstream.&lt;/p&gt;




&lt;h1&gt;
  
  
  6. The xz incident made Thompson's old argument feel almost physical
&lt;/h1&gt;

&lt;p&gt;Then came &lt;strong&gt;xz Utils&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In March 2024, malicious code was discovered in xz versions 5.6.0 and 5.6.1. The Open Source Security Foundation described the backdoor as intentionally obfuscated and specifically designed to affect particular distribution builds.&lt;/p&gt;

&lt;p&gt;MITRE's CVE entry describes a particularly striking mechanism: the malicious build process extracted a prebuilt object from a disguised test file and used it to modify functions in &lt;code&gt;liblzma&lt;/code&gt;; the resulting library could then alter data interactions for software linked against it.&lt;/p&gt;

&lt;p&gt;This is exactly the sort of thing that makes old software-security papers suddenly feel contemporary.&lt;/p&gt;

&lt;p&gt;The code did not simply say:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if evil:
    backdoor()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and call it a day.&lt;/p&gt;

&lt;p&gt;The attack was embedded in a chain involving:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source tarball
   ↓
build process
   ↓
test artifacts
   ↓
object extraction
   ↓
library modification
   ↓
downstream software
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is a trust-chain attack.&lt;/p&gt;

&lt;p&gt;And it is extremely close to the conceptual territory Thompson was talking about.&lt;/p&gt;

&lt;p&gt;But there is an important distinction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;xz was not Thompson's self-reproducing compiler attack.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The historical mechanism and threat model were different.&lt;/p&gt;

&lt;p&gt;The similarity is structural:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;something you trust to produce or transform software becomes the place where malicious behavior enters.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That distinction matters.&lt;/p&gt;

&lt;p&gt;Good security writing should not turn every supply-chain incident into “Ken Thompson predicted exactly this attack.”&lt;/p&gt;

&lt;p&gt;He didn't.&lt;/p&gt;

&lt;p&gt;He predicted the deeper trust problem.&lt;/p&gt;




&lt;h1&gt;
  
  
  7. Now add AI to the chain
&lt;/h1&gt;

&lt;p&gt;Here is where things get really interesting.&lt;/p&gt;

&lt;p&gt;A modern AI coding workflow might look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;human idea
    ↓
AI coding assistant
    ↓
generated source
    ↓
package manager
    ↓
dependencies
    ↓
build system
    ↓
compiler
    ↓
binary
    ↓
production
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The AI is now another transformation layer.&lt;/p&gt;

&lt;p&gt;That means:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;human
  ↓
AI
  ↓
code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The developer is not necessarily reading every line.&lt;/p&gt;

&lt;p&gt;The developer is increasingly &lt;strong&gt;trusting a system to produce code&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is not identical to trusting a compiler.&lt;/p&gt;

&lt;p&gt;A compiler transforms already-defined source according to deterministic rules.&lt;/p&gt;

&lt;p&gt;An LLM generates source probabilistically from context.&lt;/p&gt;

&lt;p&gt;That difference is enormous.&lt;/p&gt;

&lt;p&gt;But the trust question is eerily similar:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Can the thing producing the software be trusted to produce only what you intended?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  8. AI doesn't need to be malicious to create a supply-chain problem
&lt;/h1&gt;

&lt;p&gt;This is a crucial distinction.&lt;/p&gt;

&lt;p&gt;Imagine an AI coding assistant invents a package:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import magical-auth-helper
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There is no package named &lt;code&gt;magical-auth-helper&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The AI believes there is.&lt;/p&gt;

&lt;p&gt;A developer doesn't check.&lt;/p&gt;

&lt;p&gt;They run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;magical-auth-helper
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Somebody else registered the name.&lt;/p&gt;

&lt;p&gt;Now the innocent hallucination created the attack path.&lt;/p&gt;

&lt;p&gt;This class of concern has become known as &lt;strong&gt;slopsquatting&lt;/strong&gt;: an attacker registers package names hallucinated by AI systems and hopes developers or coding agents will install them.&lt;/p&gt;

&lt;p&gt;Recent research and datasets are beginning to study exactly this problem. One 2025 GitHub research project surveyed AI-invented package names and found many hallucinated names, while its registration census found that the specific names in its sampled corpus had not been claimed at the time of re-check; importantly, the authors present the threat as real in principle rather than claiming every hallucinated package becomes malicious.&lt;/p&gt;

&lt;p&gt;That caveat is important.&lt;/p&gt;

&lt;p&gt;The scary story is not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“AI hallucinated packages therefore attackers are already everywhere.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The defensible story is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI adds a new mechanism by which developers may be encouraged to trust dependencies they did not independently identify or verify.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is enough to matter.&lt;/p&gt;




&lt;h1&gt;
  
  
  9. AI can manufacture the appearance of authority
&lt;/h1&gt;

&lt;p&gt;This might be more dangerous than hallucinated package names.&lt;/p&gt;

&lt;p&gt;A human developer sees:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;beautifully formatted code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The code has:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;types
comments
tests
error handling
clean naming
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It looks authoritative.&lt;/p&gt;

&lt;p&gt;The model can explain it.&lt;/p&gt;

&lt;p&gt;The model can defend it.&lt;/p&gt;

&lt;p&gt;The model can generate documentation for it.&lt;/p&gt;

&lt;p&gt;The model can even generate tests for it.&lt;/p&gt;

&lt;p&gt;Now you have something that feels like a reviewed engineering artifact.&lt;/p&gt;

&lt;p&gt;But its appearance tells you almost nothing about whether its assumptions are correct.&lt;/p&gt;

&lt;p&gt;That creates a new security problem:&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;synthetic credibility&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;A malicious dependency traditionally has to &lt;em&gt;look&lt;/em&gt; legitimate.&lt;/p&gt;

&lt;p&gt;AI-generated code can accidentally produce the same psychological effect.&lt;/p&gt;

&lt;p&gt;It looks legitimate because a language model can imitate what legitimate software usually looks like.&lt;/p&gt;




&lt;h1&gt;
  
  
  10. The numbers are uncomfortable
&lt;/h1&gt;

&lt;p&gt;Veracode's 2025 GenAI Code Security Report tested more than 100 LLMs across Java, JavaScript, Python and C# on security-focused coding tasks.&lt;/p&gt;

&lt;p&gt;Its published results reported that &lt;strong&gt;45% of generated code samples failed security tests&lt;/strong&gt;, with particularly weak performance on some classes such as XSS. Veracode's 2026 update reported that its later testing still found security pass rates around &lt;strong&gt;55%&lt;/strong&gt;, despite improvements in syntax and functional correctness.&lt;/p&gt;

&lt;p&gt;These results come from one vendor's methodology, so they should not be treated as a universal measurement of every AI coding system.&lt;/p&gt;

&lt;p&gt;But they establish something important:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Better at producing working code does not automatically mean better at producing secure code.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is exactly where Thompson's argument becomes useful again.&lt;/p&gt;

&lt;p&gt;The question is not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can the system generate code?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Obviously it can.&lt;/p&gt;

&lt;p&gt;The question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“What do you trust to tell you that the generated code is safe?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And now we have another recursive problem.&lt;/p&gt;




&lt;h1&gt;
  
  
  11. What if the AI reviews the AI-generated code?
&lt;/h1&gt;

&lt;p&gt;This sounds like a solution.&lt;/p&gt;

&lt;p&gt;You ask one model to write the code.&lt;/p&gt;

&lt;p&gt;Then another model checks it.&lt;/p&gt;

&lt;p&gt;Great.&lt;/p&gt;

&lt;p&gt;Except:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI generates
      ↓
AI reviews
      ↓
AI approves
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Where does trust terminate?&lt;/p&gt;

&lt;p&gt;If both models share similar blind spots, a vulnerability can survive both stages.&lt;/p&gt;

&lt;p&gt;A 2025 study evaluating GitHub Copilot's code-review functionality against curated vulnerable examples found that the system frequently failed to identify critical issues such as SQL injection, XSS, and insecure deserialization, instead often focusing on lower-severity concerns.&lt;/p&gt;

&lt;p&gt;A 2026 empirical study using real-world GPT-generated code from the DevGPT dataset likewise found vulnerabilities in real developer code and investigated whether current LLMs could detect and repair them.&lt;/p&gt;

&lt;p&gt;The lesson isn't:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Never use AI to review AI.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI review is another control, not the final foundation of trust.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That distinction becomes increasingly important as organizations automate more of the software pipeline.&lt;/p&gt;




&lt;h1&gt;
  
  
  12. Thompson's attack was recursive.
&lt;/h1&gt;

&lt;h1&gt;
  
  
  AI pipelines are recursive too.
&lt;/h1&gt;

&lt;p&gt;Think about a modern AI coding agent.&lt;/p&gt;

&lt;p&gt;It can:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;read repository
      ↓
write code
      ↓
install package
      ↓
run tests
      ↓
inspect error
      ↓
edit code
      ↓
run tests again
      ↓
modify configuration
      ↓
commit changes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent is not merely generating a function.&lt;/p&gt;

&lt;p&gt;It may be operating the software-development environment.&lt;/p&gt;

&lt;p&gt;That means the trust boundary has moved.&lt;/p&gt;

&lt;p&gt;The system that writes code may also:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;select dependencies&lt;/li&gt;
&lt;li&gt;invoke tools&lt;/li&gt;
&lt;li&gt;modify files&lt;/li&gt;
&lt;li&gt;run commands&lt;/li&gt;
&lt;li&gt;create configuration&lt;/li&gt;
&lt;li&gt;interpret test failures&lt;/li&gt;
&lt;li&gt;make architectural decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes the old Thompson question more relevant:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What exactly are we trusting?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Is the model intelligent?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Which actions are we allowing an uncertain component to take without independent verification?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  13. There is another supply chain hiding inside AI
&lt;/h1&gt;

&lt;p&gt;Here is a layer people often overlook.&lt;/p&gt;

&lt;p&gt;An AI coding system itself depends on infrastructure.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI assistant
    ↓
model
    ↓
training data
    ↓
libraries
    ↓
inference runtime
    ↓
GPU software
    ↓
operating system
    ↓
cloud infrastructure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So when a developer says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I trust my AI coding assistant.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;that statement is incomplete.&lt;/p&gt;

&lt;p&gt;Which version?&lt;/p&gt;

&lt;p&gt;Which model?&lt;/p&gt;

&lt;p&gt;Which deployment?&lt;/p&gt;

&lt;p&gt;Which tools?&lt;/p&gt;

&lt;p&gt;Which plugins?&lt;/p&gt;

&lt;p&gt;Which context?&lt;/p&gt;

&lt;p&gt;Which package-resolution behavior?&lt;/p&gt;

&lt;p&gt;Which external integrations?&lt;/p&gt;

&lt;p&gt;Which runtime?&lt;/p&gt;

&lt;p&gt;Which generated code?&lt;/p&gt;

&lt;p&gt;Which dependencies?&lt;/p&gt;

&lt;p&gt;The trust surface is much larger than a chat window suggests.&lt;/p&gt;




&lt;h1&gt;
  
  
  14. The AI equivalent of Thompson's compiler trick
&lt;/h1&gt;

&lt;p&gt;We should be careful here.&lt;/p&gt;

&lt;p&gt;An LLM is &lt;strong&gt;not a compiler&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And an ordinary AI coding assistant does not secretly rewrite its own binary the way Thompson's hypothetical compiler can.&lt;/p&gt;

&lt;p&gt;So what would a structurally similar attack look like?&lt;/p&gt;

&lt;p&gt;Imagine a future development agent that has:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;repository access
+
package installation
+
terminal access
+
network access
+
write access
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Suppose its instructions or context are compromised.&lt;/p&gt;

&lt;p&gt;The agent could potentially generate malicious code while presenting it as normal implementation.&lt;/p&gt;

&lt;p&gt;Or it could introduce an untrusted dependency.&lt;/p&gt;

&lt;p&gt;Or modify a build script.&lt;/p&gt;

&lt;p&gt;Or make a seemingly harmless configuration change.&lt;/p&gt;

&lt;p&gt;The human then reviews the output.&lt;/p&gt;

&lt;p&gt;But if the review process itself relies heavily on the same AI-generated explanation, the system can become self-reinforcing.&lt;/p&gt;

&lt;p&gt;The chain becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI decides
   ↓
AI implements
   ↓
AI explains
   ↓
Human trusts explanation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is &lt;strong&gt;not&lt;/strong&gt; Thompson's exact attack.&lt;/p&gt;

&lt;p&gt;But it has the same philosophical weakness:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The producer is also influencing the mechanism by which its output is judged.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  15. The most dangerous sentence in AI-assisted development
&lt;/h1&gt;

&lt;p&gt;It might be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“The AI checked it.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Because checked &lt;em&gt;how&lt;/em&gt;?&lt;/p&gt;

&lt;p&gt;Against what?&lt;/p&gt;

&lt;p&gt;With what assumptions?&lt;/p&gt;

&lt;p&gt;Using what tools?&lt;/p&gt;

&lt;p&gt;And who checked the tools?&lt;/p&gt;

&lt;p&gt;A static analyzer is different from an LLM.&lt;/p&gt;

&lt;p&gt;A reproducible build is different from an LLM explanation.&lt;/p&gt;

&lt;p&gt;A signed artifact is different from “the model says this is safe.”&lt;/p&gt;

&lt;p&gt;A dependency lockfile is different from autocomplete.&lt;/p&gt;

&lt;p&gt;Security controls become meaningful when they are &lt;strong&gt;independent enough from the thing they're supposed to verify&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is one of the deepest lessons hiding inside Thompson's paper.&lt;/p&gt;




&lt;h1&gt;
  
  
  16. Reproducible builds are basically a response to this class of problem
&lt;/h1&gt;

&lt;p&gt;Modern software-security engineering has developed mechanisms intended to reduce uncertainty in build pipelines.&lt;/p&gt;

&lt;p&gt;Reproducible builds aim for the property that independently rebuilding the same source under controlled conditions produces the same output.&lt;/p&gt;

&lt;p&gt;That doesn't magically prove the source is benevolent.&lt;/p&gt;

&lt;p&gt;But it can detect some kinds of build-environment manipulation.&lt;/p&gt;

&lt;p&gt;The conceptual difference is important:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;“Trust me, this binary came from this source.”
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;versus:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;“Here is the source and environment.
Rebuild it yourself.
Compare the result.”
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The second reduces the number of things you have to trust.&lt;/p&gt;

&lt;p&gt;It doesn't reduce them to zero.&lt;/p&gt;

&lt;p&gt;But security is often about reducing trust assumptions.&lt;/p&gt;




&lt;h1&gt;
  
  
  17. Modern provenance is another attempt to answer Thompson
&lt;/h1&gt;

&lt;p&gt;Software Bills of Materials, signed artifacts, provenance metadata, trusted build systems and isolated CI pipelines all address pieces of the same fundamental problem:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Where did this artifact come from?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;What happened to it before I received it?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those are provenance questions.&lt;/p&gt;

&lt;p&gt;A binary is not just:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bytes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bytes
+
origin
+
build process
+
dependencies
+
identity
+
history
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The more complex the chain becomes, the more provenance matters.&lt;/p&gt;

&lt;p&gt;And AI makes that chain more complicated again.&lt;/p&gt;




&lt;h1&gt;
  
  
  18. “Who wrote this code?” is becoming a strangely difficult question
&lt;/h1&gt;

&lt;p&gt;In 2026, a commit may be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;idea: human
prompt: human
implementation: AI
review: human
tests: AI
dependency selection: AI
final approval: human
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So who is the author?&lt;/p&gt;

&lt;p&gt;That's a social question.&lt;/p&gt;

&lt;p&gt;Security needs a different one:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Who is accountable for the correctness of the resulting artifact?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The answer cannot simply be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“The AI.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A model has no legal or operational responsibility.&lt;/p&gt;

&lt;p&gt;The repository owner does.&lt;/p&gt;

&lt;p&gt;The engineering team does.&lt;/p&gt;

&lt;p&gt;The release system does.&lt;/p&gt;

&lt;p&gt;The organization does.&lt;/p&gt;

&lt;p&gt;And therefore &lt;strong&gt;verification has to remain human-accountable even if generation is automated&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  19. AI generated code can multiply supply-chain mistakes
&lt;/h1&gt;

&lt;p&gt;Suppose one developer traditionally adds:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;3 dependencies
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;during a project.&lt;/p&gt;

&lt;p&gt;Now an AI coding agent can rapidly scaffold:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;17 dependencies
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;because it finds convenient libraries for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;authentication&lt;/li&gt;
&lt;li&gt;validation&lt;/li&gt;
&lt;li&gt;parsing&lt;/li&gt;
&lt;li&gt;formatting&lt;/li&gt;
&lt;li&gt;logging&lt;/li&gt;
&lt;li&gt;HTTP&lt;/li&gt;
&lt;li&gt;file handling&lt;/li&gt;
&lt;li&gt;database access&lt;/li&gt;
&lt;li&gt;image processing&lt;/li&gt;
&lt;li&gt;caching&lt;/li&gt;
&lt;li&gt;testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of those dependencies are necessarily malicious.&lt;/p&gt;

&lt;p&gt;But every dependency expands the trust graph.&lt;/p&gt;

&lt;p&gt;That creates a simple equation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;more dependencies
      ↓
more external code
      ↓
more trust relationships
      ↓
more possible compromise points
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AI can therefore amplify the &lt;strong&gt;size of the supply chain&lt;/strong&gt;, even when every individual generation is benign.&lt;/p&gt;

&lt;p&gt;That is a more interesting risk than “AI writes insecure code.”&lt;/p&gt;




&lt;h1&gt;
  
  
  20. The package name problem is especially weird
&lt;/h1&gt;

&lt;p&gt;A human developer usually installs a dependency for a reason.&lt;/p&gt;

&lt;p&gt;They search.&lt;/p&gt;

&lt;p&gt;They read the documentation.&lt;/p&gt;

&lt;p&gt;They look at GitHub.&lt;/p&gt;

&lt;p&gt;They check downloads.&lt;/p&gt;

&lt;p&gt;They inspect versions.&lt;/p&gt;

&lt;p&gt;An AI might simply output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install xyz-helper
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;because the name statistically looks like something that should exist.&lt;/p&gt;

&lt;p&gt;That changes the economics for attackers.&lt;/p&gt;

&lt;p&gt;Instead of creating a convincing package name completely at random, an attacker can monitor which package names coding models tend to hallucinate.&lt;/p&gt;

&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI hallucinates package
         ↓
attacker registers name
         ↓
developer follows AI suggestion
         ↓
package executes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Again:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;the model does not have to be malicious.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The attacker can exploit the model's mistakes.&lt;/p&gt;

&lt;p&gt;That is a fundamentally different threat model.&lt;/p&gt;




&lt;h1&gt;
  
  
  21. The uncomfortable part: smarter models are not automatically the solution
&lt;/h1&gt;

&lt;p&gt;It is tempting to assume:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;better model
=
safer code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Evidence so far does not justify that equation.&lt;/p&gt;

&lt;p&gt;Veracode's 2025 analysis reported little improvement in security performance over time despite improving functional capabilities, and its 2026 update continued to report a substantial gap between functional correctness and security.&lt;/p&gt;

&lt;p&gt;A 2026 ACL benchmark similarly found that current LLMs still struggle with secure coding in repository-level scenarios, with larger reasoning budgets not necessarily translating into better security outcomes.&lt;/p&gt;

&lt;p&gt;That suggests security is not simply an intelligence problem.&lt;/p&gt;

&lt;p&gt;It is a &lt;strong&gt;system-design problem&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  22. This is why “trusting trust” is such a perfect title
&lt;/h1&gt;

&lt;p&gt;Thompson didn't call his lecture:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“How to Write Better Compilers.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;He called it:&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Reflections on Trusting Trust&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;That's the important word.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;trust.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because security failures often happen when something is accepted not because it was independently proven safe, but because it came from somewhere we already trusted.&lt;/p&gt;

&lt;p&gt;That pattern appears everywhere.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;trusted maintainer
trusted package
trusted vendor
trusted build
trusted compiler
trusted AI
trusted reviewer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Eventually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;trusted thing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;becomes a proxy for:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;safe thing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those are not equivalent.&lt;/p&gt;




&lt;h1&gt;
  
  
  23. The supply chain is basically a graph of borrowed trust
&lt;/h1&gt;

&lt;p&gt;Think of modern software as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                YOU
                 |
             YOUR APP
                 |
        +--------+--------+
        |        |        |
      npm      PyPI     GitHub
        |        |        |
      deps     deps     actions
        |        |        |
     maint.   maint.   workflow
        |        |        |
      tools    tools    runners
        \        |       /
         \       |      /
             BUILD
               |
             BINARY
               |
           PRODUCTION
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now insert AI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                  YOU
                   |
                AI AGENT
                   |
          +--------+--------+
          |        |        |
        CODE     DEPS     CONFIG
          |        |        |
        npm      PyPI     CI/CD
          |        |        |
        build    build    runner
           \       |       /
                  BUILD
                    |
                  BINARY
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You have added another decision-making system before compilation even begins.&lt;/p&gt;

&lt;p&gt;That is a new trust boundary.&lt;/p&gt;




&lt;h1&gt;
  
  
  24. The right response is not “ban AI”
&lt;/h1&gt;

&lt;p&gt;This is where the discussion usually goes wrong.&lt;/p&gt;

&lt;p&gt;A reasonable response to supply-chain risk is not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Never use open-source packages.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That would be absurd.&lt;/p&gt;

&lt;p&gt;Likewise:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Never use AI-generated code.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;would miss the point.&lt;/p&gt;

&lt;p&gt;The useful question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Which parts of the AI-assisted pipeline should be trusted automatically, and which should be independently verified?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI suggestion
      ↓
human review
      ↓
static analysis
      ↓
dependency verification
      ↓
tests
      ↓
reproducible build
      ↓
artifact signing
      ↓
deployment
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each layer reduces dependence on the previous layer.&lt;/p&gt;

&lt;p&gt;That's the important part.&lt;/p&gt;




&lt;h1&gt;
  
  
  25. AI should be treated as an untrusted producer
&lt;/h1&gt;

&lt;p&gt;This sounds harsh.&lt;/p&gt;

&lt;p&gt;It is actually liberating.&lt;/p&gt;

&lt;p&gt;Your compiler is trusted within a defined threat model.&lt;/p&gt;

&lt;p&gt;Your package registry is trusted within a defined threat model.&lt;/p&gt;

&lt;p&gt;Your AI model should be treated similarly:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Useful, powerful, and not inherently authoritative.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The AI can propose:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;architecture
implementation
dependency
configuration
migration
refactor
security fix
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But proposals are not facts.&lt;/p&gt;

&lt;p&gt;They are inputs into a verification pipeline.&lt;/p&gt;

&lt;p&gt;That distinction becomes increasingly important as models become capable of editing entire repositories rather than merely completing individual lines.&lt;/p&gt;




&lt;h1&gt;
  
  
  26. The irony is that AI may make the Thompson problem easier to hide
&lt;/h1&gt;

&lt;p&gt;A malicious line of code can look suspicious.&lt;/p&gt;

&lt;p&gt;A malicious architectural decision may not.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;“Let's add package X because it simplifies token parsing.”
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Perfectly reasonable.&lt;/p&gt;

&lt;p&gt;Except package X has:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;postinstall script
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;that executes code.&lt;/p&gt;

&lt;p&gt;Or perhaps the AI chooses an outdated dependency.&lt;/p&gt;

&lt;p&gt;Or enables:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;unsafe mode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;because it makes the tests pass.&lt;/p&gt;

&lt;p&gt;Nothing looks like a classic backdoor.&lt;/p&gt;

&lt;p&gt;The attack surface is now partially semantic.&lt;/p&gt;

&lt;p&gt;You are not necessarily searching for:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;malware
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You are searching for:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;a decision that shouldn't have been made.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is much harder to detect automatically.&lt;/p&gt;




&lt;h1&gt;
  
  
  27. The most important difference from Thompson's original attack
&lt;/h1&gt;

&lt;p&gt;This deserves its own section because comparisons can become intellectually lazy.&lt;/p&gt;

&lt;p&gt;Thompson's 1984 attack depends on a malicious compiler carrying hidden behavior forward when compiling future compilers and target programs.&lt;/p&gt;

&lt;p&gt;Modern AI-generated-code risks are generally different:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hallucinated dependencies
insecure implementation
unsafe configuration
supply-chain compromise
malicious packages
prompt/context manipulation
tool misuse
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These are not the same exploit.&lt;/p&gt;

&lt;p&gt;So the claim should &lt;strong&gt;not&lt;/strong&gt; be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Ken Thompson predicted ChatGPT.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is clickbait.&lt;/p&gt;

&lt;p&gt;The better claim is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Ken Thompson identified a general class of trust failure: the machinery responsible for producing or validating software can itself become a source of compromise. AI-assisted development adds another powerful, fallible producer to that machinery.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's the historically defensible connection.&lt;/p&gt;

&lt;p&gt;And honestly, it's much more interesting.&lt;/p&gt;




&lt;h1&gt;
  
  
  28. The future problem may not be “AI writes malware”
&lt;/h1&gt;

&lt;p&gt;It might be quieter.&lt;/p&gt;

&lt;p&gt;Imagine an enterprise with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;20,000 developers
+
AI coding agents
+
millions of generated lines
+
thousands of dependencies
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Suppose the probability of one AI-generated component introducing a serious security problem is low.&lt;/p&gt;

&lt;p&gt;The organization still has an enormous number of attempts.&lt;/p&gt;

&lt;p&gt;Scale changes probability.&lt;/p&gt;

&lt;p&gt;More generated code means:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;more code
+
more dependencies
+
more configuration
+
more integration
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And therefore more opportunities for something to go wrong.&lt;/p&gt;

&lt;p&gt;That is why AI security cannot be separated from software supply-chain security.&lt;/p&gt;

&lt;p&gt;They are increasingly connected systems problems.&lt;/p&gt;




&lt;h1&gt;
  
  
  29. What Thompson would probably recognize
&lt;/h1&gt;

&lt;p&gt;Not the chat interface.&lt;/p&gt;

&lt;p&gt;Not the transformer.&lt;/p&gt;

&lt;p&gt;Not the token.&lt;/p&gt;

&lt;p&gt;Not the GPU.&lt;/p&gt;

&lt;p&gt;He would recognize this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You trust one layer
because
another layer told you it was safe.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is the whole game.&lt;/p&gt;

&lt;p&gt;And it still works.&lt;/p&gt;




&lt;h1&gt;
  
  
  30. So what should a serious AI development pipeline look like?
&lt;/h1&gt;

&lt;p&gt;Not:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;prompt
↓
AI
↓
deploy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is a prototype.&lt;/p&gt;

&lt;p&gt;A serious pipeline should look more like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                HUMAN SPEC
                    |
                    v
               AI PROPOSAL
                    |
          +---------+---------+
          |                   |
          v                   v
      CODE REVIEW        DEPENDENCY CHECK
          |                   |
          +---------+---------+
                    |
                    v
              STATIC ANALYSIS
                    |
                    v
                  TESTS
                    |
                    v
            REPRODUCIBLE BUILD
                    |
                    v
          SIGNED / VERIFIED ARTIFACT
                    |
                    v
               DEPLOYMENT
                    |
                    v
               MONITORING
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important thing is not the exact tools.&lt;/p&gt;

&lt;p&gt;It is &lt;strong&gt;independence between trust layers&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Don't ask the generator to certify itself.&lt;/p&gt;

&lt;p&gt;Don't rely on one model to provide the entire verification chain.&lt;/p&gt;

&lt;p&gt;Don't treat package names suggested by an AI as trustworthy merely because they look real.&lt;/p&gt;

&lt;p&gt;Don't confuse compilation success with security.&lt;/p&gt;

&lt;p&gt;And don't confuse a passing test suite with proof of absence of malicious behavior.&lt;/p&gt;




&lt;h1&gt;
  
  
  31. There is a larger philosophical lesson here
&lt;/h1&gt;

&lt;p&gt;Software has always been a strange form of trust.&lt;/p&gt;

&lt;p&gt;You trust:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;the source
the compiler
the dependencies
the operating system
the hardware
the distribution channel
the developer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AI adds another:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;the model
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But the important thing is not that AI is uniquely untrustworthy.&lt;/p&gt;

&lt;p&gt;Humans weren't uniquely trustworthy either.&lt;/p&gt;

&lt;p&gt;That's why security engineering invented:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;signatures
checksums
reproducible builds
code review
auditing
sandboxing
least privilege
dependency verification
provenance
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The purpose of security engineering is not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Find something trustworthy.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Reduce how much trust any one component is allowed to demand.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is a much better philosophy.&lt;/p&gt;




&lt;h1&gt;
  
  
  32. Forty-two years later, the question has changed slightly
&lt;/h1&gt;

&lt;p&gt;In 1984, Thompson asked us to question whether a compiler could be trusted.&lt;/p&gt;

&lt;p&gt;In 2026, we have to ask something broader:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Can I trust the model
that writes the code
that chooses the dependency
that modifies the build
that gets compiled
by the tool
that produces the artifact
that enters production?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That sentence is ridiculous.&lt;/p&gt;

&lt;p&gt;It is also increasingly close to the architecture of real AI-assisted development.&lt;/p&gt;

&lt;p&gt;And somewhere inside that chain is still the same old problem:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who watches the thing doing the watching?&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  33. The uncomfortable conclusion
&lt;/h1&gt;

&lt;p&gt;Ken Thompson's warning did not become obsolete.&lt;/p&gt;

&lt;p&gt;We simply kept adding layers.&lt;/p&gt;

&lt;p&gt;First:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source → compiler → binary
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source → compiler → libraries → binary
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source → dependencies → CI → compiler → container → cloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And now:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;human
  ↓
AI
  ↓
code
  ↓
dependencies
  ↓
CI
  ↓
compiler
  ↓
container
  ↓
cloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every layer promises convenience.&lt;/p&gt;

&lt;p&gt;Every layer also creates another trust relationship.&lt;/p&gt;

&lt;p&gt;The answer is not paranoia.&lt;/p&gt;

&lt;p&gt;It is verification.&lt;/p&gt;

&lt;p&gt;Because the central lesson of “Reflections on Trusting Trust” was never:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Trust nothing.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It was something more subtle:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Know exactly what you are trusting.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And perhaps that's the hardest part of programming in the AI era.&lt;/p&gt;

&lt;p&gt;Not making software.&lt;/p&gt;

&lt;p&gt;Not even making secure software.&lt;/p&gt;

&lt;p&gt;But knowing &lt;strong&gt;which parts of the machine you have quietly decided to believe.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  The Thompson Test
&lt;/h1&gt;

&lt;p&gt;Here's a thought experiment for AI-assisted development.&lt;/p&gt;

&lt;p&gt;Before shipping code generated by an AI system, ask:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. What did the AI actually change?

2. Which dependencies did it introduce?

3. Where did those dependencies come from?

4. Which build scripts can execute code?

5. Which generated decisions were independently verified?

6. Could the artifact be reproduced independently?

7. Is the security review independent from the generator?

8. What happens if the AI is confidently wrong?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the answer to every question eventually becomes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Because the AI said so.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;you don't have a secure pipeline.&lt;/p&gt;

&lt;p&gt;You have a &lt;strong&gt;trust loop&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And trust loops are exactly what Thompson taught us to be suspicious of.&lt;/p&gt;




&lt;h1&gt;
  
  
  Frequently Asked Questions
&lt;/h1&gt;

&lt;h2&gt;
  
  
  What is “Reflections on Trusting Trust”?
&lt;/h2&gt;

&lt;p&gt;It is Ken Thompson's 1984 Turing Award lecture, published in &lt;em&gt;Communications of the ACM&lt;/em&gt;. Thompson demonstrated how a malicious compiler could preserve hidden behavior in subsequently compiled compilers and programs even after the malicious source code had been removed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is Thompson's attack the same as an AI coding attack?
&lt;/h2&gt;

&lt;p&gt;No. The mechanisms are different. Thompson's demonstration specifically involved malicious compiler behavior reproducing itself through compilation. AI coding risks include insecure generated code, malicious or hallucinated dependencies, unsafe configurations, and new trust boundaries around AI agents. The useful connection is the underlying &lt;strong&gt;trust architecture&lt;/strong&gt;, not an identical exploit.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a software supply-chain attack?
&lt;/h2&gt;

&lt;p&gt;It is an attack in which an adversary compromises software or a component trusted by downstream users, allowing malicious behavior to propagate through the legitimate distribution or development chain. SolarWinds and the npm event-stream incident are well-known examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happened with xz Utils?
&lt;/h2&gt;

&lt;p&gt;Malicious code was discovered in xz versions 5.6.0 and 5.6.1 in 2024. OpenSSF described an intentionally obfuscated backdoor affecting specific build conditions, while MITRE's CVE description documents how the build process used disguised material to modify the resulting library.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can AI-generated code contain security vulnerabilities?
&lt;/h2&gt;

&lt;p&gt;Yes. Multiple studies and security evaluations have found vulnerabilities in AI-generated code. Veracode's 2025 and 2026 evaluations reported substantial failure rates on security-focused tasks, while academic studies have independently examined vulnerabilities in Copilot- and GPT-generated code.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is slopsquatting?
&lt;/h2&gt;

&lt;p&gt;Slopsquatting refers to the idea of registering package names hallucinated by AI systems and waiting for a developer or coding agent to install them. Research has established the mechanism as a plausible supply-chain threat, although the rate at which hallucinated package names are actually registered and malicious varies across datasets and studies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Does using AI automatically make software insecure?
&lt;/h2&gt;

&lt;p&gt;No. AI is a tool, and risk depends on how it is integrated into the engineering and security process. DORA's 2025 research characterizes AI as an amplifier of existing organizational strengths and weaknesses rather than an automatic source of either success or failure.&lt;/p&gt;




&lt;h1&gt;
  
  
  SEO / GEO PACKAGE
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;SEO Title&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What If the Compiler Is Lying to You? Ken Thompson's 1984 Warning in the Age of AI Code&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Meta Description&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ken Thompson's “Reflections on Trusting Trust” explained a terrifying software supply-chain problem in 1984. Today, AI-generated code, npm, xz, SolarWinds and coding agents are creating new versions of the same trust problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Suggested Slug&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ken-thompson-trusting-trust-ai-code-supply-chain&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Primary Keywords&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Ken Thompson trusting trust&lt;/code&gt;, &lt;code&gt;Reflections on Trusting Trust&lt;/code&gt;, &lt;code&gt;AI generated code security&lt;/code&gt;, &lt;code&gt;AI coding security&lt;/code&gt;, &lt;code&gt;software supply chain attacks&lt;/code&gt;, &lt;code&gt;compiler backdoor&lt;/code&gt;, &lt;code&gt;npm supply chain attack&lt;/code&gt;, &lt;code&gt;xz backdoor&lt;/code&gt;, &lt;code&gt;SolarWinds supply chain&lt;/code&gt;, &lt;code&gt;AI coding agents&lt;/code&gt;, &lt;code&gt;slopsquatting&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GEO Questions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;What is Ken Thompson's trusting trust attack?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;What does Reflections on Trusting Trust mean?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Can a compiler contain a backdoor?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;How does AI-generated code create security risks?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;What is the connection between AI coding and software supply chain attacks?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;What is slopsquatting?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Why can't source code alone prove software is trustworthy?&lt;/code&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Sources
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ken Thompson — “Reflections on Trusting Trust”&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Communications of the ACM&lt;/em&gt;, Vol. 27, No. 8, August 1984, pp. 761–763. DOI: 10.1145/358198.358210.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ACM Classic / HPI archival reproduction — “Reflections on Trusting Trust”&lt;/strong&gt;&lt;br&gt;
Accessible reproduction and contextual material for Thompson's 1984 lecture.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CISA — Active Exploitation of SolarWinds Software&lt;/strong&gt;&lt;br&gt;
Official U.S. government alert describing the SolarWinds Orion supply-chain compromise.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CISA — Advanced Persistent Threat Compromise of Government Agencies, Critical Infrastructure and Private Sector Organizations&lt;/strong&gt;&lt;br&gt;
Official detailed alert on the SolarWinds-related campaign.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;npm — Details about the event-stream incident&lt;/strong&gt;&lt;br&gt;
Official npm incident report describing the malicious dependency and its downstream impact.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Open Source Security Foundation — xz Backdoor CVE-2024-3094&lt;/strong&gt;&lt;br&gt;
Analysis of the malicious xz/liblzma code and affected versions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;MITRE — CVE-2024-3094&lt;/strong&gt;&lt;br&gt;
Technical vulnerability description of the malicious build process and modified liblzma behavior.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Veracode — 2025 GenAI Code Security Report&lt;/strong&gt;&lt;br&gt;
Evaluation of security weaknesses across more than 100 LLMs and multiple programming languages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Veracode — Spring 2026 GenAI Code Security Update&lt;/strong&gt;&lt;br&gt;
Follow-up evaluation reporting continued disparity between functional correctness and security performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lian et al. — A.S.E.: A Repository-Level Benchmark for Evaluating Security in AI-Generated Code&lt;/strong&gt;&lt;br&gt;
Findings from ACL 2026 on secure code generation in repository-level scenarios.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;“Security Weaknesses of Copilot-Generated Code in GitHub Projects”&lt;/strong&gt;&lt;br&gt;
Empirical research on security weaknesses associated with Copilot-generated code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;“GitHub's Copilot Code Review: Can AI Spot Security Flaws Before You Commit?”&lt;/strong&gt;&lt;br&gt;
2025 evaluation of AI-assisted security review effectiveness.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;“Secure coding with AI – from detection to repair”&lt;/strong&gt;&lt;br&gt;
2026 study of vulnerabilities in real-world GPT-generated code and LLM-based detection and remediation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Slopsquatting census research / dataset&lt;/strong&gt;&lt;br&gt;
Research into hallucinated package names and their potential use in software supply-chain attacks.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>The Framework Ate the Fundamentals. Then AI Learned How to Code.</title>
      <dc:creator>Mahan Tavakoli</dc:creator>
      <pubDate>Sat, 12 Sep 2026 09:43:18 +0000</pubDate>
      <link>https://dev.to/mahankenway/the-framework-ate-the-fundamentals-then-ai-learned-how-to-code-1pam</link>
      <guid>https://dev.to/mahankenway/the-framework-ate-the-fundamentals-then-ai-learned-how-to-code-1pam</guid>
      <description>&lt;h3&gt;
  
  
  How JavaScript fatigue, Electron, and AI coding assistants revived the oldest fear in software engineering
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;By Mahan Tavakoli — MahanKenway&lt;/strong&gt;&lt;br&gt;
Tehran, Iran&lt;br&gt;
GitHub: &lt;strong&gt;github.com/MahanKenway&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;There is a strange pattern in software engineering.&lt;/p&gt;

&lt;p&gt;Every few years, developers become convinced that the industry has finally become too complicated.&lt;/p&gt;

&lt;p&gt;Not &lt;em&gt;too difficult&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Too &lt;strong&gt;layered&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A simple application becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;language
→ runtime
→ package manager
→ bundler
→ transpiler
→ framework
→ meta-framework
→ state library
→ component library
→ build tool
→ deployment platform
→ configuration
→ plugins
→ plugins for the plugins
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then somebody says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Why don't we just use HTML and JavaScript?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And everyone laughs.&lt;/p&gt;

&lt;p&gt;Then somebody else builds a new framework to make HTML and JavaScript easier.&lt;/p&gt;

&lt;p&gt;Then the new framework gets a build tool.&lt;/p&gt;

&lt;p&gt;Then the build tool gets a plugin system.&lt;/p&gt;

&lt;p&gt;Then somebody writes an article titled:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“How to Finally Understand Modern JavaScript in 2026.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And six months later it is obsolete.&lt;/p&gt;

&lt;p&gt;This phenomenon eventually acquired a name:&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;JavaScript fatigue&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;The phrase was already well established by 2016–2017. Sacha Greif's 2016 &lt;em&gt;A Study Plan To Cure JavaScript Fatigue&lt;/em&gt; became popular enough to hit the top of Hacker News twice, while Grab's engineering team later described newcomers being overwhelmed by the “barrage” of modern frontend technologies they were expected to learn.&lt;/p&gt;

&lt;p&gt;Back then, the fear was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“There are too many abstractions. I might never actually understand the platform.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Today, the fear has mutated into something much stranger:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“There are too many abstractions, and now an AI can write them for me before I understand them.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That difference matters.&lt;/p&gt;

&lt;p&gt;Because the first problem was &lt;strong&gt;tool overload&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The second can become &lt;strong&gt;knowledge outsourcing&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And that is where the old JavaScript-fatigue debate suddenly looks like a prototype of the AI-coding debate.&lt;/p&gt;




&lt;h1&gt;
  
  
  PART I — THE ORIGINAL DISEASE
&lt;/h1&gt;

&lt;h2&gt;
  
  
  JavaScript was never supposed to become this complicated
&lt;/h2&gt;

&lt;p&gt;JavaScript started as a scripting language for webpages.&lt;/p&gt;

&lt;p&gt;Then it became important.&lt;/p&gt;

&lt;p&gt;Then it escaped the browser.&lt;/p&gt;

&lt;p&gt;Node.js made JavaScript useful on servers.&lt;/p&gt;

&lt;p&gt;npm made package distribution easy.&lt;/p&gt;

&lt;p&gt;Browsers became application platforms.&lt;/p&gt;

&lt;p&gt;Single-page applications became normal.&lt;/p&gt;

&lt;p&gt;Frontend engineering became a profession with its own architecture, tooling, testing, performance engineering, state management, build pipelines and deployment practices.&lt;/p&gt;

&lt;p&gt;And the ecosystem exploded.&lt;/p&gt;

&lt;p&gt;By 2016, Sacha Greif was already describing the problem explicitly as &lt;strong&gt;JavaScript fatigue&lt;/strong&gt; and proposing a study plan designed to help developers navigate the growing ecosystem rather than simply complain about it.&lt;/p&gt;

&lt;p&gt;Grab's engineering team described essentially the same problem from an organizational perspective: newcomers and backend engineers could feel overwhelmed by the number of new tools, libraries, frameworks and plugins necessary to work effectively in modern frontend development.&lt;/p&gt;

&lt;p&gt;This distinction is important.&lt;/p&gt;

&lt;p&gt;The problem wasn't:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“JavaScript is bad.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“There is too much surrounding knowledge between a beginner and the thing they are actually trying to build.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is a very different disease.&lt;/p&gt;




&lt;h1&gt;
  
  
  The developer used to learn the machine in layers
&lt;/h1&gt;

&lt;p&gt;Imagine learning web development in a relatively direct model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HTML
↓
CSS
↓
JavaScript
↓
Browser
↓
HTTP
↓
Server
↓
Database
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You could make mistakes and still understand roughly where the mistake lived.&lt;/p&gt;

&lt;p&gt;The page did not work?&lt;/p&gt;

&lt;p&gt;Inspect the DOM.&lt;/p&gt;

&lt;p&gt;JavaScript did not behave?&lt;/p&gt;

&lt;p&gt;Open the console.&lt;/p&gt;

&lt;p&gt;Request failed?&lt;/p&gt;

&lt;p&gt;Inspect HTTP.&lt;/p&gt;

&lt;p&gt;Database query failed?&lt;/p&gt;

&lt;p&gt;Look at the backend.&lt;/p&gt;

&lt;p&gt;Then the abstraction stack grew.&lt;/p&gt;

&lt;p&gt;Now a beginner may encounter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HTML
CSS
JavaScript
TypeScript
React
JSX
Vite
ESLint
Prettier
npm
Node
Babel
PostCSS
Tailwind
React Router
TanStack Query
Zustand
Next.js
Docker
CI
Cloud platform
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;None of these tools is inherently evil.&lt;/p&gt;

&lt;p&gt;Most exist because someone solved a real problem.&lt;/p&gt;

&lt;p&gt;That is what makes this phenomenon so interesting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Complexity does not require bad engineering.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Complexity can be the accumulated result of good engineering decisions.&lt;/p&gt;

&lt;p&gt;One abstraction at a time.&lt;/p&gt;




&lt;h1&gt;
  
  
  And then Electron arrived
&lt;/h1&gt;

&lt;p&gt;Electron is a fascinating case because it sits right in the middle of this argument.&lt;/p&gt;

&lt;p&gt;Electron allowed developers to build desktop applications using technologies they already knew from the web.&lt;/p&gt;

&lt;p&gt;That was an enormous productivity advantage.&lt;/p&gt;

&lt;p&gt;But architecturally, Electron is not simply “a webpage in a window.”&lt;/p&gt;

&lt;p&gt;Electron's own documentation describes it as inheriting Chromium's multi-process architecture. Electron applications have a main process, renderer processes and additional utility processes, with Chromium providing the underlying browser architecture and Node.js providing server-side JavaScript capabilities in the appropriate processes.&lt;/p&gt;

&lt;p&gt;Electron's official site also explicitly describes the technology as combining Chromium and Node.js around the same V8 JavaScript engine.&lt;/p&gt;

&lt;p&gt;That means a desktop app can involve something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Your application
      ↓
Electron
      ↓
Chromium
      ↓
Blink
      ↓
V8
      ↓
Node.js
      ↓
Operating System
      ↓
CPU / GPU / Memory
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then your app probably adds:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;React
+
TypeScript
+
Webpack/Vite
+
npm
+
20+ libraries
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is not necessarily a failure.&lt;/p&gt;

&lt;p&gt;It is a trade.&lt;/p&gt;

&lt;p&gt;You are exchanging direct access to traditional native UI APIs for a massive existing web ecosystem.&lt;/p&gt;

&lt;p&gt;And often that trade is fantastic.&lt;/p&gt;

&lt;p&gt;VS Code is the famous example of an Electron application that managed to make the architecture work at a very high level of performance and scale.&lt;/p&gt;

&lt;p&gt;But the architectural lesson is more important than the performance argument.&lt;/p&gt;




&lt;h1&gt;
  
  
  Electron did something psychologically important
&lt;/h1&gt;

&lt;p&gt;It made it possible to build a desktop application &lt;strong&gt;without first learning what a desktop application was&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That sounds more insulting than it is.&lt;/p&gt;

&lt;p&gt;It is actually one of Electron's greatest strengths.&lt;/p&gt;

&lt;p&gt;You already know:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;button&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(...)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So now you can build a desktop window.&lt;/p&gt;

&lt;p&gt;You already know CSS.&lt;/p&gt;

&lt;p&gt;Now you can style the desktop application.&lt;/p&gt;

&lt;p&gt;You already know HTTP.&lt;/p&gt;

&lt;p&gt;Now you can make your app communicate with the outside world.&lt;/p&gt;

&lt;p&gt;You already know npm.&lt;/p&gt;

&lt;p&gt;Now you can install functionality.&lt;/p&gt;

&lt;p&gt;The barrier to entry collapses.&lt;/p&gt;

&lt;p&gt;And that is wonderful.&lt;/p&gt;

&lt;p&gt;But there is a side effect:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;the abstraction layer can hide the machine.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Electron's own process model documentation makes the boundary very clear: renderer processes behave like web pages, while the main process operates in a Node.js environment and coordinates application windows and native functionality.&lt;/p&gt;

&lt;p&gt;A developer who learns only the abstraction can become productive extremely quickly.&lt;/p&gt;

&lt;p&gt;They can also become extremely confused when something breaks below the abstraction.&lt;/p&gt;




&lt;h1&gt;
  
  
  This is where an old Hacker News argument becomes interesting
&lt;/h1&gt;

&lt;p&gt;A 2018 Hacker News discussion about why Electron applications can feel slow contained a particularly revealing observation: one commenter argued that Electron applications inherit the cost of HTML/CSS and JavaScript, but also suggested that web developers may be less accustomed to thinking about resource management because the browser traditionally hides much of that complexity.&lt;/p&gt;

&lt;p&gt;That comment should not be treated as scientific proof.&lt;/p&gt;

&lt;p&gt;It is one person's observation in a Hacker News thread.&lt;/p&gt;

&lt;p&gt;But it captures a recurring cultural argument:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;When the platform protects you from complexity, do you still learn the complexity?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Browsers encourage abstraction.&lt;/p&gt;

&lt;p&gt;Electron extends that abstraction to desktop software.&lt;/p&gt;

&lt;p&gt;Frameworks extend it again.&lt;/p&gt;

&lt;p&gt;And eventually a developer may operate several layers above the actual machine.&lt;/p&gt;

&lt;p&gt;That is not automatically bad.&lt;/p&gt;

&lt;p&gt;But it creates a dependency:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;You can be productive without understanding why the machine behaves the way it does.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That distinction becomes extremely important once something unexpected happens.&lt;/p&gt;




&lt;h1&gt;
  
  
  The “framework fatigue” problem was never really about frameworks
&lt;/h1&gt;

&lt;p&gt;This is the part I think gets misunderstood.&lt;/p&gt;

&lt;p&gt;People often talk about JavaScript fatigue as if developers were simply annoyed by too many libraries.&lt;/p&gt;

&lt;p&gt;That's too shallow.&lt;/p&gt;

&lt;p&gt;The deeper problem was &lt;strong&gt;cognitive fragmentation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Suppose you spend three weeks learning:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;React
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Redux
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Webpack
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Jest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GraphQL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Next.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You are learning six technologies.&lt;/p&gt;

&lt;p&gt;But you might only be learning one underlying concept:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;How data moves through a distributed application and eventually becomes pixels.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The abstractions are different.&lt;/p&gt;

&lt;p&gt;The fundamental concept is not.&lt;/p&gt;

&lt;p&gt;That's why experienced engineers can often move across frameworks faster than beginners.&lt;/p&gt;

&lt;p&gt;They are not starting from zero.&lt;/p&gt;

&lt;p&gt;They already know:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;state
events
memory
networking
serialization
processes
concurrency
rendering
I/O
files
permissions
HTTP
databases
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The framework becomes vocabulary.&lt;/p&gt;

&lt;p&gt;Not knowledge itself.&lt;/p&gt;




&lt;h1&gt;
  
  
  This is why fundamentals have always mattered
&lt;/h1&gt;

&lt;p&gt;Grab's frontend study guide explicitly required a foundation in core programming concepts, Git, web development and an understanding of how the web works before diving into the modern stack.&lt;/p&gt;

&lt;p&gt;That is not an anti-framework position.&lt;/p&gt;

&lt;p&gt;It is almost the opposite.&lt;/p&gt;

&lt;p&gt;It says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Learn enough of the underlying system that the framework becomes understandable.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is a much healthier relationship with abstraction.&lt;/p&gt;

&lt;p&gt;You don't reject the abstraction.&lt;/p&gt;

&lt;p&gt;You understand what it is abstracting.&lt;/p&gt;




&lt;h1&gt;
  
  
  PART II — THEN THE MACHINE LEARNED TO WRITE THE ABSTRACTION
&lt;/h1&gt;

&lt;p&gt;This is where 2026 becomes different.&lt;/p&gt;

&lt;p&gt;A framework can hide complexity.&lt;/p&gt;

&lt;p&gt;An AI coding assistant can now &lt;strong&gt;produce that complexity for you&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That changes the learning equation.&lt;/p&gt;

&lt;p&gt;Before AI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Developer
   ↓
reads documentation
   ↓
understands API
   ↓
writes code
   ↓
debugs
   ↓
learns why it works
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With an AI assistant:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Developer
   ↓
describes desired result
   ↓
AI writes code
   ↓
Developer runs it
   ↓
it works
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is an enormous productivity improvement.&lt;/p&gt;

&lt;p&gt;But look closely at what disappeared.&lt;/p&gt;

&lt;p&gt;Not coding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The need to understand the intermediate mechanism.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That mechanism is where a lot of expertise historically accumulated.&lt;/p&gt;




&lt;h1&gt;
  
  
  AI can remove friction.
&lt;/h1&gt;

&lt;p&gt;It can also remove &lt;em&gt;productive struggle&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;There is a particular kind of struggle every programmer eventually experiences:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Why the hell does this work?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You read.&lt;/p&gt;

&lt;p&gt;You inspect.&lt;/p&gt;

&lt;p&gt;You break the code.&lt;/p&gt;

&lt;p&gt;You print values.&lt;/p&gt;

&lt;p&gt;You read the network request.&lt;/p&gt;

&lt;p&gt;You open DevTools.&lt;/p&gt;

&lt;p&gt;You inspect memory.&lt;/p&gt;

&lt;p&gt;You trace the call stack.&lt;/p&gt;

&lt;p&gt;You discover that the framework is doing something strange.&lt;/p&gt;

&lt;p&gt;Eventually you understand it.&lt;/p&gt;

&lt;p&gt;That experience is annoying.&lt;/p&gt;

&lt;p&gt;It is also educational.&lt;/p&gt;

&lt;p&gt;The danger of AI-assisted programming is not that AI makes people stupid.&lt;/p&gt;

&lt;p&gt;That claim is too simplistic and poorly supported.&lt;/p&gt;

&lt;p&gt;The more interesting possibility is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI makes it possible to skip some of the experiences through which understanding normally develops.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And that is testable.&lt;/p&gt;




&lt;h1&gt;
  
  
  The evidence is already becoming uncomfortable
&lt;/h1&gt;

&lt;p&gt;The 2025 Stack Overflow Developer Survey reported that &lt;strong&gt;46% of developers distrust the accuracy of AI tools&lt;/strong&gt;, compared with 33% who trust them, while only 3% reported “highly trusting” AI output. The same survey found that 66% of developers were frustrated by AI solutions that were almost right, and 45% said debugging AI-generated code was more time-consuming.&lt;/p&gt;

&lt;p&gt;That is significant.&lt;/p&gt;

&lt;p&gt;Because it suggests developers are not simply copying AI output and going home.&lt;/p&gt;

&lt;p&gt;They are increasingly entering a new workflow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI generates
↓
human evaluates
↓
AI modifies
↓
human debugs
↓
AI modifies again
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The human role shifts.&lt;/p&gt;

&lt;p&gt;Instead of writing every line, the developer increasingly acts as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;reviewer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;specifier&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;debugger&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;architect&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;judge&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The problem is obvious.&lt;/p&gt;

&lt;p&gt;You can't reliably review code you cannot understand.&lt;/p&gt;




&lt;h1&gt;
  
  
  The AI version of JavaScript fatigue
&lt;/h1&gt;

&lt;p&gt;Old JavaScript fatigue looked like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;“I need to learn another framework.”
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AI-era fatigue can look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;“I need to understand what the AI just generated.”
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That sounds easier.&lt;/p&gt;

&lt;p&gt;It isn't always.&lt;/p&gt;

&lt;p&gt;Because the AI can generate &lt;em&gt;enormous&lt;/em&gt; amounts of technically plausible structure extremely quickly.&lt;/p&gt;

&lt;p&gt;A beginner can now receive:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;package.json
tsconfig.json
vite.config.ts
Dockerfile
React components
API routes
database schema
ORM models
tests
CI workflow
environment variables
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;in minutes.&lt;/p&gt;

&lt;p&gt;Ten years ago, the beginner would probably have encountered these concepts one at a time.&lt;/p&gt;

&lt;p&gt;Now they can arrive simultaneously.&lt;/p&gt;

&lt;p&gt;That changes the shape of the learning curve.&lt;/p&gt;




&lt;h1&gt;
  
  
  The new abstraction stack is not just technical anymore
&lt;/h1&gt;

&lt;p&gt;Before:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Developer
  ↓
Framework
  ↓
Runtime
  ↓
Operating system
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Developer
  ↓
AI assistant
  ↓
Generated abstraction
  ↓
Framework
  ↓
Runtime
  ↓
Operating system
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There is a new layer.&lt;/p&gt;

&lt;p&gt;And it is probabilistic.&lt;/p&gt;

&lt;p&gt;A framework does what its designers specified.&lt;/p&gt;

&lt;p&gt;An AI model generates what it predicts.&lt;/p&gt;

&lt;p&gt;Those are radically different guarantees.&lt;/p&gt;

&lt;p&gt;That means an AI-assisted developer must be able to distinguish:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;valid abstraction
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;plausible hallucination
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The stronger the model becomes, the harder that distinction may become for inexperienced developers because incorrect code can look increasingly professional.&lt;/p&gt;




&lt;h1&gt;
  
  
  And this is where “fundamentals” become more valuable, not less
&lt;/h1&gt;

&lt;p&gt;Imagine an AI produces:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/api/user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(...)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A beginner sees:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Looks normal.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Someone with deeper understanding asks:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Which HTTP method?
Which authentication?
What status codes?
What happens on 401?
What happens on 500?
Is the response schema trusted?
Could this be cached?
Is this request cross-origin?
Is CSRF relevant?
What happens if the body is malformed?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The code is only a surface.&lt;/p&gt;

&lt;p&gt;The questions underneath are the real skill.&lt;/p&gt;

&lt;p&gt;That is exactly why knowledge of fundamentals becomes an &lt;strong&gt;AI multiplier&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The better you understand the system, the better you can interrogate the output.&lt;/p&gt;




&lt;h1&gt;
  
  
  AI does not make fundamentals obsolete
&lt;/h1&gt;

&lt;p&gt;It makes ignorance more scalable.&lt;/p&gt;

&lt;p&gt;That is a much more precise statement.&lt;/p&gt;

&lt;p&gt;A developer who understands systems can use AI to move faster.&lt;/p&gt;

&lt;p&gt;A developer who doesn't understand systems can also use AI to move faster.&lt;/p&gt;

&lt;p&gt;But the second developer may be accelerating in the wrong direction.&lt;/p&gt;

&lt;p&gt;And because AI is extremely good at making incomplete understanding &lt;em&gt;look complete&lt;/em&gt;, the resulting code can be surprisingly convincing.&lt;/p&gt;

&lt;p&gt;This is one reason the 2025 Stack Overflow results matter so much: developers themselves report widespread distrust of AI output and substantial debugging pain around nearly-correct generated solutions.&lt;/p&gt;




&lt;h1&gt;
  
  
  PART III — THE WEIRD CONNECTION TO ELECTRON
&lt;/h1&gt;

&lt;p&gt;Now return to Electron.&lt;/p&gt;

&lt;p&gt;Electron solved an old problem:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“How do I build a desktop application without becoming a Win32/Cocoa/GTK specialist?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Its answer was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Bring the web.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That was revolutionary.&lt;/p&gt;

&lt;p&gt;AI coding assistants are now solving a related problem:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“How do I build software without personally knowing every implementation detail?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Their answer is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Describe the implementation and let the model generate it.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Look at the symmetry:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Electron:

native desktop complexity
          ↓
      web abstraction


AI coding:

implementation complexity
          ↓
      language-model abstraction
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In both cases, productivity increases because a lower layer is hidden.&lt;/p&gt;

&lt;p&gt;And in both cases, the hidden layer still exists.&lt;/p&gt;

&lt;p&gt;That is the key.&lt;/p&gt;




&lt;h1&gt;
  
  
  An abstraction does not delete complexity
&lt;/h1&gt;

&lt;p&gt;This might be the most important idea in the entire article.&lt;/p&gt;

&lt;p&gt;A framework does not remove complexity.&lt;/p&gt;

&lt;p&gt;It &lt;strong&gt;moves complexity somewhere else&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Electron doesn't make operating-system behavior disappear.&lt;/p&gt;

&lt;p&gt;It moves much of the desktop UI problem into Chromium and Electron's architecture.&lt;/p&gt;

&lt;p&gt;React doesn't make rendering disappear.&lt;/p&gt;

&lt;p&gt;It provides a model for expressing UI and managing updates.&lt;/p&gt;

&lt;p&gt;A cloud platform doesn't make networking disappear.&lt;/p&gt;

&lt;p&gt;It hides parts of infrastructure management.&lt;/p&gt;

&lt;p&gt;An AI coding assistant does not make software engineering disappear.&lt;/p&gt;

&lt;p&gt;It moves some of the effort from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;writing code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;toward:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;specifying
reviewing
testing
debugging
verifying
architecting
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is why “AI will replace programmers” is such a poor description of what is actually happening.&lt;/p&gt;

&lt;p&gt;The more interesting question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Which parts of programming are being moved, and which skills become more valuable because of that movement?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  The junior developer paradox
&lt;/h1&gt;

&lt;p&gt;This creates a very strange problem.&lt;/p&gt;

&lt;p&gt;Historically, junior developers learned partly by doing low-level work.&lt;/p&gt;

&lt;p&gt;Not because companies loved boilerplate.&lt;/p&gt;

&lt;p&gt;Because boilerplate exposed systems.&lt;/p&gt;

&lt;p&gt;You write the API client.&lt;/p&gt;

&lt;p&gt;You discover HTTP.&lt;/p&gt;

&lt;p&gt;You debug the JSON parser.&lt;/p&gt;

&lt;p&gt;You discover data formats.&lt;/p&gt;

&lt;p&gt;You write a slow loop.&lt;/p&gt;

&lt;p&gt;You discover algorithmic complexity.&lt;/p&gt;

&lt;p&gt;You allocate a huge object.&lt;/p&gt;

&lt;p&gt;You discover memory pressure.&lt;/p&gt;

&lt;p&gt;You ship an Electron app with too many renderer processes.&lt;/p&gt;

&lt;p&gt;You discover process architecture.&lt;/p&gt;

&lt;p&gt;Every mistake contains a lesson.&lt;/p&gt;

&lt;p&gt;AI can prevent some of those mistakes.&lt;/p&gt;

&lt;p&gt;That is good for productivity.&lt;/p&gt;

&lt;p&gt;But it can also remove the lesson.&lt;/p&gt;

&lt;p&gt;This is the &lt;strong&gt;junior developer paradox of AI assistance&lt;/strong&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The tool can make inexperienced developers productive before they become experienced enough to understand the productivity.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's not necessarily disastrous.&lt;/p&gt;

&lt;p&gt;But it means education has to change.&lt;/p&gt;




&lt;h1&gt;
  
  
  Maybe “learning by doing” is no longer enough
&lt;/h1&gt;

&lt;p&gt;For years, programming education could rely on:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;learn concept
↓
build project
↓
break project
↓
fix project
↓
understand concept
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With AI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ask AI
↓
receive project
↓
run project
↓
works
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is much faster.&lt;/p&gt;

&lt;p&gt;But the feedback loop is different.&lt;/p&gt;

&lt;p&gt;The developer may not know:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;what was hard
what was easy
what the model solved
what assumptions it made
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So the challenge becomes designing &lt;strong&gt;friction intentionally&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Not pointless friction.&lt;/p&gt;

&lt;p&gt;Useful friction.&lt;/p&gt;




&lt;h1&gt;
  
  
  We may need to bring back the “why”
&lt;/h1&gt;

&lt;p&gt;Imagine an AI assistant gives you this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;await Promise.all(
  urls.map(fetch)
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A productive workflow says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Great. Done.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A learning workflow asks:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Why Promise.all?
What does concurrent mean here?
What does fetch return?
When do requests reject?
What happens if one fails?
Does this actually run in parallel?
What happens to memory with 10,000 URLs?
What is the browser's connection limit?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those questions are more valuable than memorizing syntax.&lt;/p&gt;

&lt;p&gt;Because syntax can now be generated.&lt;/p&gt;

&lt;p&gt;Understanding cannot be delegated as safely.&lt;/p&gt;




&lt;h1&gt;
  
  
  The irony of JavaScript fatigue
&lt;/h1&gt;

&lt;p&gt;The old JavaScript-fatigue movement told beginners:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Stop trying to learn every framework.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The modern version should probably tell developers:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Stop trying to understand every generated file.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That sounds similar.&lt;/p&gt;

&lt;p&gt;But the solution is surprisingly similar too.&lt;/p&gt;

&lt;p&gt;Learn the primitives.&lt;/p&gt;

&lt;p&gt;Learn the platform.&lt;/p&gt;

&lt;p&gt;Learn the concepts that frameworks are built on.&lt;/p&gt;

&lt;p&gt;Then use the abstraction.&lt;/p&gt;

&lt;p&gt;This is exactly the direction suggested by the older JavaScript-fatigue literature, where the proposed antidote was not abandoning modern tooling but building a stronger foundation underneath it.&lt;/p&gt;




&lt;h1&gt;
  
  
  Part IV — THE “AI DOES EVERYTHING” TRAP
&lt;/h1&gt;

&lt;p&gt;There is another problem that gets less attention.&lt;/p&gt;

&lt;p&gt;AI can produce code faster than humans can mentally integrate it.&lt;/p&gt;

&lt;p&gt;That creates a new asymmetry:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;generation speed
       &amp;gt;
human understanding speed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A developer might generate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2,000 lines
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;in thirty seconds.&lt;/p&gt;

&lt;p&gt;But understanding 2,000 lines is still a human task.&lt;/p&gt;

&lt;p&gt;This is where AI-assisted development can become almost comically absurd.&lt;/p&gt;

&lt;p&gt;The model says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I've implemented the architecture.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The developer says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Cool.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The application says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I have 17 race conditions.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Everyone looks at everyone else.&lt;/p&gt;




&lt;h1&gt;
  
  
  Speed can create technical debt faster than humans can recognize it
&lt;/h1&gt;

&lt;p&gt;Technical debt used to accumulate because developers were rushing.&lt;/p&gt;

&lt;p&gt;AI changes the mechanism.&lt;/p&gt;

&lt;p&gt;Now you can accumulate it &lt;strong&gt;extremely efficiently&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Imagine:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Monday:
AI writes 1,000 lines.

Tuesday:
AI writes another 1,500.

Wednesday:
AI refactors them.

Thursday:
AI patches the refactor.

Friday:
Nobody remembers why the architecture looks like this.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is not a hypothetical limitation of AI.&lt;/p&gt;

&lt;p&gt;It is a direct consequence of combining high-speed generation with human review bandwidth.&lt;/p&gt;

&lt;p&gt;The bottleneck may move.&lt;/p&gt;

&lt;p&gt;Previously:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“How quickly can I write this?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“How quickly can I understand and verify this?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  That changes what “good developer” means
&lt;/h1&gt;

&lt;p&gt;The valuable developer of the future may not be the person who can type code the fastest.&lt;/p&gt;

&lt;p&gt;AI already changes that equation.&lt;/p&gt;

&lt;p&gt;The valuable developer may be the person who can answer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Is this architecture correct?

Is this abstraction necessary?

What assumptions does this implementation make?

What could fail?

What should be measured?

What should be deleted?

What should never have been generated?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those are fundamentally different skills from syntax recall.&lt;/p&gt;




&lt;h1&gt;
  
  
  The surprising evidence: AI does not simply erase coding skills
&lt;/h1&gt;

&lt;p&gt;A 2026 study using LinkedIn and GitHub data found that firms adopting GitHub Copilot were associated with a roughly 3–5% higher monthly probability of hiring software engineers, with effects driven by entry-level hiring; the paper reported no decrease in coding skills among new hires and found increases in non-programming skills.&lt;/p&gt;

&lt;p&gt;That does &lt;strong&gt;not&lt;/strong&gt; prove that AI has no effect on learning.&lt;/p&gt;

&lt;p&gt;It does something more interesting.&lt;/p&gt;

&lt;p&gt;It tells us the simplistic story:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“AI coding tools will make everybody forget programming.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;is not supported by that evidence.&lt;/p&gt;

&lt;p&gt;The reality appears more complicated.&lt;/p&gt;

&lt;p&gt;AI may change &lt;strong&gt;which skills matter&lt;/strong&gt;, rather than simply destroying the old ones.&lt;/p&gt;




&lt;h1&gt;
  
  
  DORA found a similar kind of paradox
&lt;/h1&gt;

&lt;p&gt;Google Cloud's 2025 DORA research describes AI as an &lt;strong&gt;amplifier&lt;/strong&gt;: it can magnify existing strengths and weaknesses in an organization rather than automatically fixing them.&lt;/p&gt;

&lt;p&gt;That idea maps beautifully onto individual developers.&lt;/p&gt;

&lt;p&gt;AI can amplify:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;good architecture
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bad architecture
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It can amplify:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;strong debugging ability
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;weak debugging ability
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It can amplify:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;good specifications
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vague thinking
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That means the human fundamentals don't disappear.&lt;/p&gt;

&lt;p&gt;They become the steering wheel.&lt;/p&gt;




&lt;h1&gt;
  
  
  PART V — SO DID THE OLD ENGINEERS GET IT RIGHT?
&lt;/h1&gt;

&lt;p&gt;Mostly.&lt;/p&gt;

&lt;p&gt;But not in the way people usually claim.&lt;/p&gt;

&lt;p&gt;The older warning was never really:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Frameworks are bad.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Don't confuse using an abstraction with understanding the system.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That warning was relevant during JavaScript fatigue.&lt;/p&gt;

&lt;p&gt;It was relevant during the rise of Electron.&lt;/p&gt;

&lt;p&gt;It was relevant when cloud platforms abstracted servers.&lt;/p&gt;

&lt;p&gt;And it remains relevant in the age of AI coding assistants.&lt;/p&gt;

&lt;p&gt;The technology changed.&lt;/p&gt;

&lt;p&gt;The cognitive problem did not.&lt;/p&gt;




&lt;h1&gt;
  
  
  The stack keeps growing upward
&lt;/h1&gt;

&lt;p&gt;Look at the history:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Machine code
↓
Assembly
↓
C
↓
C++
↓
managed runtimes
↓
JavaScript
↓
frameworks
↓
cloud platforms
↓
AI coding assistants
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each layer makes software development more accessible.&lt;/p&gt;

&lt;p&gt;Each layer also makes it possible to operate farther away from the underlying machine.&lt;/p&gt;

&lt;p&gt;That's the trade.&lt;/p&gt;

&lt;p&gt;And the trade is not necessarily bad.&lt;/p&gt;

&lt;p&gt;Without abstraction, modern software would be impossible to build at today's scale.&lt;/p&gt;

&lt;p&gt;The goal is not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Never use abstractions.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The goal is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Know enough of the layer underneath you that you can escape when the abstraction lies.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  The Escape Hatch
&lt;/h1&gt;

&lt;p&gt;This is the skill I think becomes increasingly important.&lt;/p&gt;

&lt;p&gt;Every abstraction needs an escape hatch.&lt;/p&gt;

&lt;p&gt;With React:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DOM
browser rendering
JavaScript
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With Node:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;OS
processes
filesystem
networking
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With Electron:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Chromium
process model
IPC
memory
OS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With cloud platforms:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;network
containers
Linux
DNS
storage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With AI coding assistants:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;language semantics
runtime
framework
architecture
tests
observability
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A great engineer knows where the abstraction ends.&lt;/p&gt;

&lt;p&gt;A dangerous workflow is one where nobody knows.&lt;/p&gt;




&lt;h1&gt;
  
  
  Maybe the new fundamentals are not “learn everything”
&lt;/h1&gt;

&lt;p&gt;There is another misconception worth killing.&lt;/p&gt;

&lt;p&gt;The answer to AI is not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Every programmer must now become a compiler engineer, kernel developer, networking expert and database researcher.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's unrealistic.&lt;/p&gt;

&lt;p&gt;Fundamentals should be &lt;strong&gt;strategically deep&lt;/strong&gt;, not universally encyclopedic.&lt;/p&gt;

&lt;p&gt;A frontend developer does not need to implement TCP.&lt;/p&gt;

&lt;p&gt;But understanding:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HTTP
DNS
browser rendering
JavaScript execution
async programming
memory basics
security basics
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;changes how they reason.&lt;/p&gt;

&lt;p&gt;A game developer does not need to write a GPU driver.&lt;/p&gt;

&lt;p&gt;But understanding:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;frame time
CPU/GPU synchronization
memory
assets
latency
threads
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;makes AI-generated optimizations far easier to evaluate.&lt;/p&gt;

&lt;p&gt;A backend developer does not need to write PostgreSQL.&lt;/p&gt;

&lt;p&gt;But understanding:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;transactions
indexes
locks
queries
networking
serialization
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;means AI-generated database code becomes reviewable instead of magical.&lt;/p&gt;

&lt;p&gt;Fundamentals are not trivia.&lt;/p&gt;

&lt;p&gt;They are &lt;strong&gt;debugging coordinates&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  The funniest possible outcome
&lt;/h1&gt;

&lt;p&gt;After years of trying to make programming easier, we may eventually discover something ridiculous:&lt;/p&gt;

&lt;p&gt;We automated the writing of code.&lt;/p&gt;

&lt;p&gt;Then discovered that the hard part was understanding code.&lt;/p&gt;

&lt;p&gt;So we built tools to summarize the code.&lt;/p&gt;

&lt;p&gt;Then discovered that the summaries could be wrong.&lt;/p&gt;

&lt;p&gt;So we built tools to verify the summaries.&lt;/p&gt;

&lt;p&gt;Then discovered that verification is hard.&lt;/p&gt;

&lt;p&gt;And eventually some developer in 2035 writes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“There are only two hard things in software engineering: understanding the machine and understanding what the AI thinks the machine is doing.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Honestly?&lt;/p&gt;

&lt;p&gt;I'd read that article.&lt;/p&gt;




&lt;h1&gt;
  
  
  The real lesson of JavaScript fatigue in 2026
&lt;/h1&gt;

&lt;p&gt;JavaScript fatigue was never simply about JavaScript.&lt;/p&gt;

&lt;p&gt;It was about &lt;strong&gt;distance from the underlying system&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Every new abstraction increases that distance.&lt;/p&gt;

&lt;p&gt;Usually, that is useful.&lt;/p&gt;

&lt;p&gt;Sometimes, it becomes dangerous.&lt;/p&gt;

&lt;p&gt;AI assistants dramatically increase the speed at which we can cross those abstraction layers without personally constructing every layer underneath them.&lt;/p&gt;

&lt;p&gt;That's their superpower.&lt;/p&gt;

&lt;p&gt;And also their educational challenge.&lt;/p&gt;

&lt;p&gt;The answer is not to stop using AI.&lt;/p&gt;

&lt;p&gt;That would be like telling developers in 2012 to stop using cloud computing because servers are more educational.&lt;/p&gt;

&lt;p&gt;Instead:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use the abstraction.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understand the abstraction.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Know what it hides.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Know where it breaks.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep an escape hatch.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  One final thought
&lt;/h1&gt;

&lt;p&gt;There is something beautifully ironic about the entire history.&lt;/p&gt;

&lt;p&gt;In 2016, developers were exhausted because there were too many JavaScript tools to learn.&lt;/p&gt;

&lt;p&gt;In 2026, developers can ask an AI to learn the tools for them.&lt;/p&gt;

&lt;p&gt;That sounds like the problem is solved.&lt;/p&gt;

&lt;p&gt;But perhaps we solved the wrong problem.&lt;/p&gt;

&lt;p&gt;The real goal was never to reduce the amount of code a human has to type.&lt;/p&gt;

&lt;p&gt;It was to increase the amount of software a human can &lt;strong&gt;understand, control, and trust&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Those are not the same thing.&lt;/p&gt;

&lt;p&gt;And if AI makes code generation essentially free, then understanding becomes the scarce resource.&lt;/p&gt;

&lt;p&gt;That may turn out to be the most important programming skill of the next decade.&lt;/p&gt;




&lt;h1&gt;
  
  
  Frequently Asked Questions
&lt;/h1&gt;

&lt;h2&gt;
  
  
  What is JavaScript fatigue?
&lt;/h2&gt;

&lt;p&gt;JavaScript fatigue describes the feeling of being overwhelmed by the rapidly changing ecosystem of JavaScript frameworks, libraries, build tools and packages. The phrase became especially prominent around 2016–2017, when articles and study guides attempted to help developers navigate the growing frontend ecosystem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is Electron inherently slow?
&lt;/h2&gt;

&lt;p&gt;Not necessarily. Electron inherits Chromium's multi-process architecture and combines Chromium, Node.js and V8. Performance depends heavily on how an application uses processes, rendering, memory, IPC and other resources.&lt;/p&gt;

&lt;h2&gt;
  
  
  Does AI coding make developers worse programmers?
&lt;/h2&gt;

&lt;p&gt;The current evidence does not support such a simple conclusion. Research is increasingly finding that AI changes workflows and the mix of skills involved, while developer surveys also show substantial distrust of generated output and difficulty debugging nearly-correct AI code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Should developers stop learning frameworks?
&lt;/h2&gt;

&lt;p&gt;No. Frameworks are valuable abstractions. The stronger strategy is to understand the underlying concepts that frameworks implement, so changing frameworks does not mean starting from zero. Earlier JavaScript-fatigue guides reached essentially the same conclusion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Are fundamentals more important because of AI?
&lt;/h2&gt;

&lt;p&gt;They are arguably more important for &lt;strong&gt;verification and judgment&lt;/strong&gt;. When code generation becomes faster, the ability to determine whether the generated solution is correct, secure, maintainable and appropriate becomes increasingly important. Stack Overflow's 2025 survey found that more developers distrusted AI output than trusted it, reinforcing the importance of human verification.&lt;/p&gt;




&lt;h1&gt;
  
  
  SEO / GEO PACKAGE
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;SEO Title&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Framework Ate the Fundamentals. Then AI Learned How to Code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Meta Description&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;JavaScript fatigue, Electron, frameworks and AI coding assistants all point to the same problem: abstractions can make programming easier while pushing developers farther from the systems underneath.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Suggested Slug&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;javascript-fatigue-electron-ai-coding-fundamentals&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Primary Keywords&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;JavaScript fatigue&lt;/code&gt;, &lt;code&gt;AI coding assistants&lt;/code&gt;, &lt;code&gt;Electron&lt;/code&gt;, &lt;code&gt;software engineering fundamentals&lt;/code&gt;, &lt;code&gt;AI programming&lt;/code&gt;, &lt;code&gt;Copilot&lt;/code&gt;, &lt;code&gt;Claude Code&lt;/code&gt;, &lt;code&gt;framework fatigue&lt;/code&gt;, &lt;code&gt;developer fundamentals&lt;/code&gt;, &lt;code&gt;AI generated code&lt;/code&gt;, &lt;code&gt;coding with AI&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Semantic / GEO Queries&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;what is JavaScript fatigue&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;why developers struggle with modern JavaScript&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;does AI coding make developers worse programmers&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;should programmers still learn fundamentals&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Electron architecture explained&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;AI coding assistants and programming skills&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;why understanding code matters in the AI era&lt;/code&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Sources
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sacha Greif — A Study Plan To Cure JavaScript Fatigue&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The article explicitly discusses JavaScript fatigue and became widely circulated in the developer community.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Grab Engineering — Grab's Front End Study Guide&lt;/strong&gt;&lt;br&gt;
Discussion of frontend complexity, onboarding and the need for core programming and web foundations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Electron Documentation — Process Model&lt;/strong&gt;&lt;br&gt;
Official documentation describing Electron's main, renderer and utility processes and its inheritance of Chromium's multiprocess model.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Electron — Use V8 and Chromium Features in Electron&lt;/strong&gt;&lt;br&gt;
Official explanation of Electron's combination of Chromium, Node.js and V8.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hacker News — What makes Electron apps slow?&lt;/strong&gt;&lt;br&gt;
2018 discussion illustrating recurring developer concerns about Electron performance and resource management. This source is used as community commentary rather than empirical evidence.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stack Overflow — 2025 Developer Survey: AI&lt;/strong&gt;&lt;br&gt;
Developer trust, frustration and workflow data concerning AI coding tools.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DORA — State of AI-assisted Software Development 2025&lt;/strong&gt;&lt;br&gt;
Research framing AI as an amplifier of existing organizational strengths and weaknesses.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Baird — Firms' GitHub Copilot adoption and labor market outcomes for software engineers&lt;/strong&gt;&lt;br&gt;
2026 research using LinkedIn and GitHub data to study Copilot adoption and software-engineering outcomes.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>development</category>
    </item>
    <item>
      <title>Cache Invalidation Never Died. AI Just Made It Expensive Again.</title>
      <dc:creator>Mahan Tavakoli</dc:creator>
      <pubDate>Sat, 12 Sep 2026 09:32:17 +0000</pubDate>
      <link>https://dev.to/mahankenway/cache-invalidation-never-died-ai-just-made-it-expensive-again-2f1n</link>
      <guid>https://dev.to/mahankenway/cache-invalidation-never-died-ai-just-made-it-expensive-again-2f1n</guid>
      <description>&lt;p&gt;&lt;em&gt;Why a programmer joke from the 1990s suddenly explains prompt caching, KV cache, LLM inference costs, latency, and even a few scary security problems&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;By Mahan Tavakoli (MahanKenway)&lt;/strong&gt;&lt;br&gt;
Tehran, Iran&lt;br&gt;
GitHub: &lt;strong&gt;MahanKenway&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  The joke was never really a joke
&lt;/h2&gt;

&lt;p&gt;There is an old line in computer science:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“There are only two hard things in Computer Science: cache invalidation and naming things.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The quote is commonly attributed to &lt;strong&gt;Phil Karlton&lt;/strong&gt;, a Netscape engineer. The attribution is unusually interesting because there does not appear to be a contemporaneous written source proving exactly when or where he first said it. Karlton's son, David Karlton, has said his father did use the phrase, while Martin Fowler records that Tim Bray had heard it around 1996–97 and later helped popularize it online.&lt;/p&gt;

&lt;p&gt;And then somebody improved the joke.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“There are only two hard problems in computer science: cache invalidation, naming things, and off-by-one errors.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That third item was later associated with &lt;strong&gt;Leon Bambrick&lt;/strong&gt;, not Karlton. Martin Fowler's history of the quote explicitly separates the original two-item joke from the later off-by-one variation.&lt;/p&gt;

&lt;p&gt;The reason the line survived for decades is not because programmers love recycled jokes.&lt;/p&gt;

&lt;p&gt;It survived because &lt;strong&gt;caching creates a very specific kind of lie&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A cache stores an answer that &lt;em&gt;was&lt;/em&gt; correct.&lt;/p&gt;

&lt;p&gt;Then the world changes.&lt;/p&gt;

&lt;p&gt;The cache does not.&lt;/p&gt;

&lt;p&gt;And suddenly your system is confidently returning yesterday's truth.&lt;/p&gt;

&lt;p&gt;That sounds like a web-development problem.&lt;/p&gt;

&lt;p&gt;It isn't anymore.&lt;/p&gt;

&lt;p&gt;Because in modern AI systems, we are caching:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;prompt prefixes&lt;/li&gt;
&lt;li&gt;tokenized context&lt;/li&gt;
&lt;li&gt;model attention state&lt;/li&gt;
&lt;li&gt;key/value tensors&lt;/li&gt;
&lt;li&gt;long conversation histories&lt;/li&gt;
&lt;li&gt;documents&lt;/li&gt;
&lt;li&gt;retrieval results&lt;/li&gt;
&lt;li&gt;embeddings&lt;/li&gt;
&lt;li&gt;tool definitions&lt;/li&gt;
&lt;li&gt;generated artifacts&lt;/li&gt;
&lt;li&gt;sometimes entire computational subgraphs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI did not solve cache invalidation.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It made the consequences much larger.&lt;/p&gt;


&lt;h1&gt;
  
  
  A cache is basically a machine for reusing the past
&lt;/h1&gt;

&lt;p&gt;At the most basic level, caching is simple.&lt;/p&gt;

&lt;p&gt;Suppose calculating something expensive costs 100 milliseconds.&lt;/p&gt;

&lt;p&gt;You calculate it once.&lt;/p&gt;

&lt;p&gt;You save the result.&lt;/p&gt;

&lt;p&gt;Next time, instead of spending 100 milliseconds calculating it again, you return the saved value.&lt;/p&gt;

&lt;p&gt;That is the entire idea.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                    WITHOUT CACHE

Request
   |
   v
Compute expensive thing
   |
   v
Result


                     WITH CACHE

Request
   |
   v
Is result already cached?
   |                \
  YES                NO
   |                  |
   v                  v
Return result      Compute it
                      |
                      v
                  Store result
                      |
                      v
                  Return result
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The performance benefit can be enormous.&lt;/p&gt;

&lt;p&gt;That is why caches exist everywhere.&lt;/p&gt;

&lt;p&gt;CPU caches.&lt;/p&gt;

&lt;p&gt;Disk caches.&lt;/p&gt;

&lt;p&gt;Browser caches.&lt;/p&gt;

&lt;p&gt;CDNs.&lt;/p&gt;

&lt;p&gt;Database caches.&lt;/p&gt;

&lt;p&gt;Redis.&lt;/p&gt;

&lt;p&gt;Memoization.&lt;/p&gt;

&lt;p&gt;Operating-system page caches.&lt;/p&gt;

&lt;p&gt;Build caches.&lt;/p&gt;

&lt;p&gt;Package-manager caches.&lt;/p&gt;

&lt;p&gt;Compiler caches.&lt;/p&gt;

&lt;p&gt;And now:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LLM caches.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The problem is hidden inside one innocent question:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;When is the cached result no longer valid?&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;That question is where the comedy ends.&lt;/p&gt;




&lt;h1&gt;
  
  
  The real problem is not storing a value
&lt;/h1&gt;

&lt;p&gt;Imagine a website shows this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User: Mahan
Plan: Pro
Tokens: 14,281
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The application reads that data from a database.&lt;/p&gt;

&lt;p&gt;To make the website faster, it caches the result.&lt;/p&gt;

&lt;p&gt;Five minutes later:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Mahan upgrades the account.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The database says:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Plan: Enterprise
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The cache says:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Plan: Pro
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you have two realities.&lt;/p&gt;

&lt;p&gt;The database represents the current state.&lt;/p&gt;

&lt;p&gt;The cache represents an older state.&lt;/p&gt;

&lt;p&gt;Neither machine is malfunctioning.&lt;/p&gt;

&lt;p&gt;The CPU is fine.&lt;/p&gt;

&lt;p&gt;The network is fine.&lt;/p&gt;

&lt;p&gt;The database is fine.&lt;/p&gt;

&lt;p&gt;The cache is doing exactly what you instructed it to do.&lt;/p&gt;

&lt;p&gt;And that is the terrifying part.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The bug is the architecture.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Redis documentation describes the classic consistency problem the same way: when the source of truth changes but the cached copy does not, the cache becomes inconsistent. Different caching strategies exist precisely because there is no single universal solution.&lt;/p&gt;

&lt;p&gt;This is why cache invalidation became famous.&lt;/p&gt;

&lt;p&gt;Caching asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can I reuse this old answer?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Invalidation asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can I prove that this old answer is still safe to reuse?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Those are very different questions.&lt;/p&gt;

&lt;p&gt;The first is easy.&lt;/p&gt;

&lt;p&gt;The second is where systems engineering starts getting weird.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why invalidation is fundamentally annoying
&lt;/h1&gt;

&lt;p&gt;Suppose this function exists:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_user&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;database&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SELECT * FROM users&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You cache it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nd"&gt;@cache&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_user&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;database&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SELECT * FROM users&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Great.&lt;/p&gt;

&lt;p&gt;Now another function updates the user:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;update_user&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;database&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(...)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The database changed.&lt;/p&gt;

&lt;p&gt;But your cached &lt;code&gt;get_user()&lt;/code&gt; result did not.&lt;/p&gt;

&lt;p&gt;So the system needs some relationship like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;update_user()
      |
      +---- invalidates ----&amp;gt; get_user() cache
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But real programs do not contain one neat dependency.&lt;/p&gt;

&lt;p&gt;They contain graphs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Database
   |
   +--&amp;gt; User API
   |      |
   |      +--&amp;gt; Dashboard
   |
   +--&amp;gt; Search index
   |
   +--&amp;gt; Recommendation engine
   |
   +--&amp;gt; Analytics
   |
   +--&amp;gt; Mobile API
   |
   +--&amp;gt; Background jobs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now change one piece of data.&lt;/p&gt;

&lt;p&gt;How many caches are potentially affected?&lt;/p&gt;

&lt;p&gt;That is the actual problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Invalidation is dependency tracking disguised as housekeeping.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And the larger your system gets, the less obvious those dependencies become.&lt;/p&gt;




&lt;h1&gt;
  
  
  Enter the LLM
&lt;/h1&gt;

&lt;p&gt;Now replace our user database with a language model.&lt;/p&gt;

&lt;p&gt;Suppose an application repeatedly sends:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You are a senior software engineer.

Project:
[large repository]

Architecture:
[long documentation]

Tool definitions:
[dozens of tools]

Rules:
[system instructions]

Conversation history:
[thousands of tokens]

Now answer this question:
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without caching, the system may need to repeatedly process the same large prefix.&lt;/p&gt;

&lt;p&gt;With caching, the system can reuse work that has already been done.&lt;/p&gt;

&lt;p&gt;This is exactly the kind of workload modern AI providers are optimizing for.&lt;/p&gt;

&lt;p&gt;OpenAI introduced automatic prompt caching in October 2024, explaining that repeated input tokens could be reused to reduce latency and lower input-token cost. The initial announcement described a 50% discount for cached input tokens on supported models.&lt;/p&gt;

&lt;p&gt;Anthropic similarly describes prompt caching as a mechanism for reusing frequently repeated context, with potential reductions of more than 2× in latency and up to 90% in costs for repetitive long-context workloads.&lt;/p&gt;

&lt;p&gt;Google's Gemini API now also supports context caching, including automatic caching on newer Gemini models. Google's current documentation explicitly tells developers to put large, common content near the beginning of prompts and send similar prefixes close together in time to increase cache-hit probability.&lt;/p&gt;

&lt;p&gt;Notice what just happened.&lt;/p&gt;

&lt;p&gt;A computer-science joke that existed before modern LLMs became mainstream has quietly become part of the &lt;strong&gt;economics of AI inference&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Prompt caching is not magic
&lt;/h1&gt;

&lt;p&gt;Let's simplify an LLM request.&lt;/p&gt;

&lt;p&gt;You have:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SYSTEM
+ giant documentation
+ tool definitions
+ conversation history
+ user question
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model processes the context.&lt;/p&gt;

&lt;p&gt;The beginning of the request is often called the &lt;strong&gt;prefill&lt;/strong&gt; stage.&lt;/p&gt;

&lt;p&gt;Then the model generates tokens one by one during &lt;strong&gt;decode&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A simplified mental model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;INPUT TOKENS
     |
     v
  PREFILL
     |
     v
 KV CACHE
     |
     v
  DECODE
     |
     +--&amp;gt; token
     +--&amp;gt; token
     +--&amp;gt; token
     +--&amp;gt; token
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;strong&gt;KV cache&lt;/strong&gt; stores intermediate attention information so that the model does not need to recompute the entire history from scratch for every generated token.&lt;/p&gt;

&lt;p&gt;This is one of the foundational optimizations behind efficient transformer inference.&lt;/p&gt;

&lt;p&gt;And now our old friend appears again.&lt;/p&gt;

&lt;h3&gt;
  
  
  We have data that is expensive to compute.
&lt;/h3&gt;

&lt;h3&gt;
  
  
  We store it.
&lt;/h3&gt;

&lt;h3&gt;
  
  
  We reuse it.
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Now we need to decide when that stored data can safely be reused.
&lt;/h3&gt;

&lt;p&gt;That is caching.&lt;/p&gt;

&lt;p&gt;And therefore:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;cache invalidation.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  KV cache is where the joke gets much more interesting
&lt;/h1&gt;

&lt;p&gt;The phrase &lt;strong&gt;KV cache&lt;/strong&gt; sounds almost harmless.&lt;/p&gt;

&lt;p&gt;It is not.&lt;/p&gt;

&lt;p&gt;During autoregressive inference, the model generates output token by token while maintaining key/value tensors representing prior context.&lt;/p&gt;

&lt;p&gt;These tensors consume GPU memory.&lt;/p&gt;

&lt;p&gt;And they are dynamic.&lt;/p&gt;

&lt;p&gt;And they grow.&lt;/p&gt;

&lt;p&gt;And they have to be scheduled across concurrent requests.&lt;/p&gt;

&lt;p&gt;And they compete for extremely valuable memory bandwidth.&lt;/p&gt;

&lt;p&gt;The original PagedAttention paper behind vLLM described the KV cache as a major memory-management challenge. The authors specifically identified fragmentation and redundant duplication as major reasons existing systems wasted GPU memory, then introduced PagedAttention to manage KV cache blocks similarly to pages in virtual memory. Their evaluation reported 2–4× higher throughput than the compared serving systems at similar latency.&lt;/p&gt;

&lt;p&gt;The conceptual connection is beautiful.&lt;/p&gt;

&lt;p&gt;Operating systems solved memory management using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;logical memory
      |
      v
pages
      |
      v
physical memory
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;LLM inference engines can use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;logical sequence
      |
      v
KV blocks
      |
      v
GPU memory
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is not just a metaphor.&lt;/p&gt;

&lt;p&gt;vLLM's documentation describes automatic prefix caching as caching KV-cache blocks and reusing them when a new request shares the same prefix. Its current implementation uses hashed blocks and a cache-management layer to find reusable prefixes.&lt;/p&gt;

&lt;p&gt;That means modern AI serving has independently rediscovered a lot of old systems ideas.&lt;/p&gt;

&lt;p&gt;Virtual memory.&lt;/p&gt;

&lt;p&gt;Paging.&lt;/p&gt;

&lt;p&gt;Reference counting.&lt;/p&gt;

&lt;p&gt;Hashing.&lt;/p&gt;

&lt;p&gt;LRU-style eviction.&lt;/p&gt;

&lt;p&gt;Memory pooling.&lt;/p&gt;

&lt;p&gt;Cache sharing.&lt;/p&gt;

&lt;p&gt;Dependency tracking.&lt;/p&gt;

&lt;p&gt;We did not escape old computer science.&lt;/p&gt;

&lt;p&gt;We brought it with us.&lt;/p&gt;




&lt;h1&gt;
  
  
  The first trap: cache hits are not guaranteed
&lt;/h1&gt;

&lt;p&gt;This is where AI marketing language can become misleading.&lt;/p&gt;

&lt;p&gt;People hear:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Prompt caching reduces cost by 90%.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And mentally convert that into:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“My AI application will now cost 90% less.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not necessarily.&lt;/p&gt;

&lt;p&gt;A cache only helps when the workload produces useful cache hits.&lt;/p&gt;

&lt;p&gt;Consider:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Request 1:
[system][docs][tools][question A]

Request 2:
[system][docs][tools][question B]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Excellent.&lt;/p&gt;

&lt;p&gt;Large common prefix.&lt;/p&gt;

&lt;p&gt;Potentially very cacheable.&lt;/p&gt;

&lt;p&gt;Now:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Request 1:
[system][user context A][question A]

Request 2:
[system][user context B][question B]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Much less reusable.&lt;/p&gt;

&lt;p&gt;The prefixes diverge.&lt;/p&gt;

&lt;p&gt;The economics change.&lt;/p&gt;

&lt;p&gt;The system might still cache the beginning, but the useful reusable portion depends heavily on request structure.&lt;/p&gt;

&lt;p&gt;Google's documentation makes this operational reality explicit: developers can improve implicit-cache hit rates by placing common content early and keeping similar prefixes close together in time.&lt;/p&gt;

&lt;p&gt;So the performance problem is no longer merely:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Do we have a cache?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It becomes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Did we architect the workload so that the cache can actually help?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is a much harder question.&lt;/p&gt;




&lt;h1&gt;
  
  
  The second trap: invalidation is different for every layer
&lt;/h1&gt;

&lt;p&gt;Here is where modern AI systems become beautifully messy.&lt;/p&gt;

&lt;p&gt;Imagine an AI coding agent.&lt;/p&gt;

&lt;p&gt;It has:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;System prompt
+
developer rules
+
tool definitions
+
repository files
+
retrieved documentation
+
conversation history
+
current task
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now change one thing.&lt;/p&gt;

&lt;p&gt;A single file in the repository is modified.&lt;/p&gt;

&lt;p&gt;What becomes invalid?&lt;/p&gt;

&lt;p&gt;Maybe the repository context.&lt;/p&gt;

&lt;p&gt;Maybe one retrieval result.&lt;/p&gt;

&lt;p&gt;Maybe the tool output.&lt;/p&gt;

&lt;p&gt;Maybe a cached prefix.&lt;/p&gt;

&lt;p&gt;Maybe a generated summary.&lt;/p&gt;

&lt;p&gt;Maybe an embedding.&lt;/p&gt;

&lt;p&gt;Maybe a derived index.&lt;/p&gt;

&lt;p&gt;Maybe nothing.&lt;/p&gt;

&lt;p&gt;Or maybe &lt;strong&gt;parts of all of them&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That is the nightmare.&lt;/p&gt;

&lt;p&gt;The cache does not understand your business semantics.&lt;/p&gt;

&lt;p&gt;It understands keys.&lt;/p&gt;

&lt;p&gt;So engineers have to create a mapping:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;meaning
   |
   v
cache key
   |
   v
cached artifact
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the key is wrong, the cache can remain perfectly efficient while being completely incorrect.&lt;/p&gt;




&lt;h1&gt;
  
  
  A cache key is a tiny piece of architecture
&lt;/h1&gt;

&lt;p&gt;Suppose you cache:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;cache&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user:123&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Straightforward.&lt;/p&gt;

&lt;p&gt;Now imagine caching a model context:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;model
system prompt
tool definitions
conversation
documents
permissions
tenant
locale
version
configuration
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Suddenly the key could effectively need to represent:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;K =
(model version)
+ (system instructions)
+ (tool configuration)
+ (document version)
+ (conversation prefix)
+ (tenant)
+ (permission state)
+ (runtime configuration)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Forget one important input.&lt;/p&gt;

&lt;p&gt;Congratulations.&lt;/p&gt;

&lt;p&gt;You just created a stale-cache bug.&lt;/p&gt;

&lt;p&gt;And now the bug may not crash the service.&lt;/p&gt;

&lt;p&gt;It may simply produce a wrong answer.&lt;/p&gt;

&lt;p&gt;That is much worse.&lt;/p&gt;




&lt;h1&gt;
  
  
  This is where AI turns caching into a semantic problem
&lt;/h1&gt;

&lt;p&gt;Traditional caching usually deals with relatively clear objects.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;URL -&amp;gt; HTTP response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;database query -&amp;gt; rows
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;LLM systems are different.&lt;/p&gt;

&lt;p&gt;The result can depend on a huge amount of context.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Prompt
  +
Model version
  +
System instruction
  +
Tools
  +
Retrieved data
  +
Conversation state
  +
Sampling/configuration
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What exactly determines whether the previous result is still valid?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There is no universal answer.&lt;/p&gt;

&lt;p&gt;You have to define one.&lt;/p&gt;

&lt;p&gt;That definition is your cache's &lt;strong&gt;semantic contract&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And this is why cache invalidation is often less about deletion and more about &lt;strong&gt;understanding dependencies&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  There are two different “caches” people casually call caching
&lt;/h1&gt;

&lt;p&gt;This distinction matters a lot.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Prompt / context caching
&lt;/h2&gt;

&lt;p&gt;The system reuses processing associated with repeated input context.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;same context
      |
      v
reuse previous work
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is what public APIs increasingly expose as prompt caching or context caching.&lt;/p&gt;

&lt;p&gt;OpenAI, Anthropic, and Google all now provide caching mechanisms intended to reduce repeated-input processing cost and/or latency.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. KV caching during generation
&lt;/h2&gt;

&lt;p&gt;This is the model-runtime side.&lt;/p&gt;

&lt;p&gt;Instead of recomputing attention state for previous tokens every time, the serving system retains the relevant K/V tensors.&lt;/p&gt;

&lt;p&gt;vLLM, for example, treats KV data as blocks that can be allocated, shared, hashed, evicted, and reused.&lt;/p&gt;

&lt;p&gt;They are related.&lt;/p&gt;

&lt;p&gt;But they are not identical.&lt;/p&gt;

&lt;p&gt;And lumping them together makes discussions about “AI caching” confusing.&lt;/p&gt;




&lt;h1&gt;
  
  
  The weird part: caching can become a security problem
&lt;/h1&gt;

&lt;p&gt;This is where the story gets properly strange.&lt;/p&gt;

&lt;p&gt;We usually think:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cache = performance optimization
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But shared caches can create &lt;strong&gt;side channels&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Suppose two customers use the same inference infrastructure.&lt;/p&gt;

&lt;p&gt;Customer A's private prompt causes certain prefix blocks to be cached.&lt;/p&gt;

&lt;p&gt;Customer B sends a request with a guessed prefix.&lt;/p&gt;

&lt;p&gt;If B's request gets a noticeably different latency depending on whether the prefix is already cached, the cache itself may leak information.&lt;/p&gt;

&lt;p&gt;vLLM's security documentation now explicitly discusses this threat and references &lt;strong&gt;CVE-2025-46570&lt;/strong&gt;, describing how differences in Time To First Token can reveal whether a guessed prompt prefix matches cached data. The documentation describes cache salting as a mitigation so different security principals do not blindly share the same prefix-cache namespace.&lt;/p&gt;

&lt;p&gt;That is a remarkable evolution:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1990s:
"Cache invalidation is hard."

2020s:
"Cache invalidation affects cost."

2026:
"Cache design can become a confidentiality boundary."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The cache went from:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;optimization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;systems problem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;security surface&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;without changing its basic purpose.&lt;/p&gt;




&lt;h1&gt;
  
  
  The third trap: bigger caches are not automatically better
&lt;/h1&gt;

&lt;p&gt;There is a temptation in infrastructure engineering to think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;More cache = more performance.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not necessarily.&lt;/p&gt;

&lt;p&gt;A cache consumes resources.&lt;/p&gt;

&lt;p&gt;Memory.&lt;/p&gt;

&lt;p&gt;Metadata.&lt;/p&gt;

&lt;p&gt;Bandwidth.&lt;/p&gt;

&lt;p&gt;Eviction logic.&lt;/p&gt;

&lt;p&gt;Synchronization.&lt;/p&gt;

&lt;p&gt;Invalidation traffic.&lt;/p&gt;

&lt;p&gt;Management overhead.&lt;/p&gt;

&lt;p&gt;And in LLM inference, the KV cache can become large enough that memory capacity and bandwidth directly influence performance.&lt;/p&gt;

&lt;p&gt;Recent research continues to describe LLM inference as strongly constrained by memory movement. One 2026 AAAI paper, for example, focuses specifically on asynchronous KV-cache prefetching to reduce HBM-memory bottlenecks.&lt;/p&gt;

&lt;p&gt;Another recent line of work studies the KV cache as an increasingly important bottleneck as context lengths expand, because the cache footprint grows with sequence length and puts pressure on both memory capacity and bandwidth.&lt;/p&gt;

&lt;p&gt;This creates an interesting inversion.&lt;/p&gt;

&lt;p&gt;Caching exists to save computation.&lt;/p&gt;

&lt;p&gt;But caching itself costs memory and data movement.&lt;/p&gt;

&lt;p&gt;So eventually you ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Am I saving compute by spending bandwidth?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And sometimes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Did the cache just become the bottleneck I created while trying to remove the original bottleneck?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is peak computer science.&lt;/p&gt;




&lt;h1&gt;
  
  
  Prefix caching is basically memoization for giant models
&lt;/h1&gt;

&lt;p&gt;One of the most intuitive ways to understand modern LLM prefix caching is to think about a function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prefix&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you already calculated:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;A very long shared prefix...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;why calculate the same thing again?&lt;/p&gt;

&lt;p&gt;You can memoize it.&lt;/p&gt;

&lt;p&gt;Modern inference engines can do something structurally similar with prefix blocks.&lt;/p&gt;

&lt;p&gt;vLLM's automatic prefix caching documentation gives examples such as repeatedly querying the same long document or continuing a multi-turn conversation. In those workloads, the system can reuse the previously processed prefix instead of recomputing that section for every request.&lt;/p&gt;

&lt;p&gt;It is a very old trick wearing very new clothes.&lt;/p&gt;

&lt;p&gt;The scale changed.&lt;/p&gt;

&lt;p&gt;The underlying idea did not.&lt;/p&gt;




&lt;h1&gt;
  
  
  And then we discover the off-by-one joke was accidentally relevant
&lt;/h1&gt;

&lt;p&gt;Remember the expanded version?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cache invalidation
naming things
off-by-one errors
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The off-by-one part looks like a joke stapled onto another joke.&lt;/p&gt;

&lt;p&gt;But in systems that divide sequences into cache blocks, boundaries matter.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Tokens:
[0 1 2 3][4 5 6 7][8 9 10 11]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If your system's indexing, block accounting, token offsets, or ownership logic is wrong by one unit, you may get:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;wrong block
wrong lookup
wrong reuse
wrong eviction
wrong attention state
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Modern cache managers therefore have to care about details that feel hilariously low-level compared with the headline:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“We built a frontier AI system.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Underneath that headline you might still find:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hash table
LRU queue
block index
reference count
memory allocator
offset
eviction policy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Humanity invented trillion-parameter models and then immediately had to debug a linked list.&lt;/p&gt;

&lt;p&gt;I love this industry.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why this matters for the cost of inference
&lt;/h1&gt;

&lt;p&gt;This is the part I think gets missed most often.&lt;/p&gt;

&lt;p&gt;People talk about AI inference economics as if the only important variable is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FLOPs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But real inference is constrained by a much richer system:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Model size
+
GPU memory
+
HBM bandwidth
+
interconnect bandwidth
+
batching
+
sequence length
+
KV cache memory
+
scheduler efficiency
+
cache hit rate
+
request shape
+
latency requirements
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Caching can reduce repeated work dramatically.&lt;/p&gt;

&lt;p&gt;But it cannot magically eliminate the underlying data.&lt;/p&gt;

&lt;p&gt;It can also fail to help if requests do not share prefixes.&lt;/p&gt;

&lt;p&gt;And it can introduce memory pressure.&lt;/p&gt;

&lt;p&gt;And it can introduce security boundaries.&lt;/p&gt;

&lt;p&gt;And it creates lifecycle questions.&lt;/p&gt;

&lt;p&gt;So saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Cache invalidation is preventing AI inference from getting cheap”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;would be too simplistic.&lt;/p&gt;

&lt;p&gt;The more accurate statement is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Caching is one of the mechanisms making inference cheaper, but cache efficiency itself becomes a first-class systems constraint as AI workloads become more repetitive, longer-context, and more multi-tenant.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That distinction matters.&lt;/p&gt;

&lt;p&gt;The problem is not that caching is failing.&lt;/p&gt;

&lt;p&gt;The problem is that &lt;strong&gt;the cost structure of AI increasingly depends on getting caching right.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  The hidden economics of a cache miss
&lt;/h1&gt;

&lt;p&gt;Imagine an AI application processing 1 million requests.&lt;/p&gt;

&lt;p&gt;Every request has:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;8,000 common input tokens
+
500 unique input tokens
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now imagine the common 8,000-token prefix can be reused.&lt;/p&gt;

&lt;p&gt;Without useful caching:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;8,500 tokens
x
1,000,000 requests
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With a strong prefix cache:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;8,000 tokens processed once
+
500 unique tokens
x
1,000,000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The exact economics depend on the model, API pricing, cache policy, workload shape, and serving architecture.&lt;/p&gt;

&lt;p&gt;But the conceptual difference is enormous.&lt;/p&gt;

&lt;p&gt;You are no longer paying to repeatedly understand the same thing.&lt;/p&gt;

&lt;p&gt;You pay once, then reuse.&lt;/p&gt;

&lt;p&gt;That is why companies expose explicit or automatic caching mechanisms.&lt;/p&gt;

&lt;p&gt;OpenAI advertises reduced input-token prices for cached prompts. Anthropic advertises savings of up to 90% on suitable workloads. Google similarly documents cost savings for cache hits and offers both implicit and explicit context-caching mechanisms.&lt;/p&gt;

&lt;p&gt;So the old joke has quietly moved into the P&amp;amp;L.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A cache miss can now have a direct inference-cost attached to it.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  But here's the paradox
&lt;/h1&gt;

&lt;p&gt;Caching is supposed to make systems cheaper.&lt;/p&gt;

&lt;p&gt;Yet modern AI systems sometimes need increasingly sophisticated infrastructure &lt;em&gt;to make the cache useful&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;You might need:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hashing
+
block management
+
memory pools
+
eviction policies
+
prefix matching
+
scheduler integration
+
tenant isolation
+
cache salting
+
metrics
+
observability
+
versioning
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So the system saves compute by adding complexity.&lt;/p&gt;

&lt;p&gt;That trade is often worth it.&lt;/p&gt;

&lt;p&gt;But it leads to a broader rule:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The more valuable your cache becomes, the more dangerous it becomes to get the cache wrong.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A cache nobody cares about can be dumb.&lt;/p&gt;

&lt;p&gt;A cache that saves millions of dollars becomes infrastructure.&lt;/p&gt;

&lt;p&gt;And infrastructure needs invariants.&lt;/p&gt;




&lt;h1&gt;
  
  
  The old distributed-systems nightmare comes back
&lt;/h1&gt;

&lt;p&gt;Traditional distributed systems have always wrestled with consistency.&lt;/p&gt;

&lt;p&gt;You have:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Source of truth
      |
      +--&amp;gt; Cache A
      |
      +--&amp;gt; Cache B
      |
      +--&amp;gt; Replica
      |
      +--&amp;gt; Search index
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now AI applications often add:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Source
  |
  +--&amp;gt; Retrieval index
  |
  +--&amp;gt; Embedding store
  |
  +--&amp;gt; Prompt cache
  |
  +--&amp;gt; KV cache
  |
  +--&amp;gt; Tool state
  |
  +--&amp;gt; Agent memory
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A modern agent may effectively operate over several layers of remembered state.&lt;/p&gt;

&lt;p&gt;That is an important conceptual shift.&lt;/p&gt;

&lt;p&gt;The AI system is no longer just:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;prompt -&amp;gt; model -&amp;gt; answer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It starts looking more like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;             +-------------------+
             |   Source Data     |
             +---------+---------+
                       |
          +------------+------------+
          |            |            |
          v            v            v
      Retrieval     Context       Agent
       Cache        Cache         Memory
          |            |            |
          +------------+------------+
                       |
                       v
                    Model
                       |
                       v
                  KV Cache
                       |
                       v
                    Output
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now ask:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens when the source data changes?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That question is no longer academic.&lt;/p&gt;




&lt;h1&gt;
  
  
  A useful way to think about invalidation
&lt;/h1&gt;

&lt;p&gt;Instead of thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Delete the cache.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Which facts changed, and which derived artifacts depend on those facts?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Document v17
    |
    +--&amp;gt; embedding v17
    |
    +--&amp;gt; retrieval index v17
    |
    +--&amp;gt; prompt context v17
    |
    +--&amp;gt; generated summary v17
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When the document becomes &lt;code&gt;v18&lt;/code&gt;, you do not really have a “cache deletion” problem.&lt;/p&gt;

&lt;p&gt;You have a &lt;strong&gt;dependency graph&lt;/strong&gt; problem.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;document v17
    X
    |
    +---- invalid
    |
    +--&amp;gt; embedding v17
    +--&amp;gt; retrieval result
    +--&amp;gt; summary
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;document v18
    |
    +--&amp;gt; new embedding
    +--&amp;gt; new retrieval result
    +--&amp;gt; new summary
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is why sophisticated systems increasingly use versioning, content hashes, immutable artifacts, timestamps, or explicit cache namespaces instead of trying to manually chase every stale object.&lt;/p&gt;




&lt;h1&gt;
  
  
  Sometimes the best invalidation strategy is not invalidation
&lt;/h1&gt;

&lt;p&gt;This is one of the strangest and most useful lessons from systems engineering.&lt;/p&gt;

&lt;p&gt;You can try to determine exactly when a cache entry is stale.&lt;/p&gt;

&lt;p&gt;Or you can design the system so that staleness is naturally bounded.&lt;/p&gt;

&lt;p&gt;A common strategy is TTL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cache entry
    |
    +--&amp;gt; expires after 5 minutes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Another is versioned keys:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;document:123:v17
document:123:v18
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Another is content addressing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hash(contents) -&amp;gt; artifact
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Another is immutable data.&lt;/p&gt;

&lt;p&gt;Another is write-through or write-behind.&lt;/p&gt;

&lt;p&gt;Another is simply refusing to cache data that is too difficult to invalidate safely.&lt;/p&gt;

&lt;p&gt;Caching is not a religion.&lt;/p&gt;

&lt;p&gt;Sometimes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Do not cache this&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;is the best design decision.&lt;/p&gt;




&lt;h1&gt;
  
  
  vLLM shows what happens when old systems ideas meet LLM workloads
&lt;/h1&gt;

&lt;p&gt;The engineering behind modern inference frameworks is a perfect example of this entire article.&lt;/p&gt;

&lt;p&gt;vLLM's PagedAttention treats KV cache more like memory pages than like one giant contiguous array. Its later prefix-caching system extends that idea by hashing KV-cache blocks so identical prefixes can be recognized and reused.&lt;/p&gt;

&lt;p&gt;That is a beautiful evolution:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Virtual memory
      ↓
PagedAttention
      ↓
KV block management
      ↓
Prefix caching
      ↓
Cross-request reuse
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The AI revolution keeps producing systems that look suspiciously like classic operating-system research.&lt;/p&gt;

&lt;p&gt;Because at some point, a GPU is still a machine with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;finite memory
finite bandwidth
finite time
finite buses
finite queues
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No amount of AI hype changes that.&lt;/p&gt;




&lt;h1&gt;
  
  
  The uncomfortable implication
&lt;/h1&gt;

&lt;p&gt;There is a tendency in AI engineering to think of optimization as a race:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;better model
better GPU
more FLOPs
longer context
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But there is another race happening underneath:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;better memory management
better scheduling
better batching
better cache locality
better reuse
better data movement
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And some of the biggest wins are not coming from making the model mathematically smarter.&lt;/p&gt;

&lt;p&gt;They come from &lt;strong&gt;not doing the same work twice.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That sounds boring.&lt;/p&gt;

&lt;p&gt;It is not boring.&lt;/p&gt;

&lt;p&gt;At scale, “don't calculate the same thing twice” is an economic strategy.&lt;/p&gt;




&lt;h1&gt;
  
  
  A cache is basically a memory of what the system believed yesterday
&lt;/h1&gt;

&lt;p&gt;This is the philosophical part.&lt;/p&gt;

&lt;p&gt;A cache is not truth.&lt;/p&gt;

&lt;p&gt;A cache is a &lt;strong&gt;copy of truth&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And copies create divergence.&lt;/p&gt;

&lt;p&gt;The interesting thing about AI is that modern models already work with representations instead of the raw world.&lt;/p&gt;

&lt;p&gt;Then we add:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;retrieved data
+
summaries
+
embeddings
+
prompt caches
+
KV caches
+
agent memory
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we are building layers of representations on top of representations.&lt;/p&gt;

&lt;p&gt;Every layer can become stale.&lt;/p&gt;

&lt;p&gt;Every layer needs provenance.&lt;/p&gt;

&lt;p&gt;Every layer needs invalidation rules.&lt;/p&gt;

&lt;p&gt;The further away you get from the source of truth, the harder it becomes to know whether the thing in your hand is still trustworthy.&lt;/p&gt;

&lt;p&gt;That is exactly why cache invalidation has stayed difficult for so long.&lt;/p&gt;




&lt;h1&gt;
  
  
  And maybe the joke has a modern version
&lt;/h1&gt;

&lt;p&gt;The old version was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;cache invalidation and naming things.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The 2026 version might be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;cache invalidation, naming things, and convincing a 400-line AI agent that the thing it cached yesterday is no longer true.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The joke is funny because it is only slightly exaggerated.&lt;/p&gt;




&lt;h1&gt;
  
  
  What developers building AI systems should actually care about
&lt;/h1&gt;

&lt;p&gt;Not every application needs an exotic cache architecture.&lt;/p&gt;

&lt;p&gt;But if you are building a serious LLM product, it is worth explicitly documenting:&lt;/p&gt;

&lt;h3&gt;
  
  
  What is being cached?
&lt;/h3&gt;

&lt;p&gt;Be precise.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tokens?
embeddings?
KV blocks?
retrieval results?
model responses?
tool results?
documents?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  What makes two requests equivalent?
&lt;/h3&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;same model
+
same prefix
+
same tool configuration
+
same tenant
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  What invalidates the cached object?
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;content change
model change
tool change
permission change
tenant change
time
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  What happens when the cache is wrong?
&lt;/h3&gt;

&lt;p&gt;This is the question many systems forget.&lt;/p&gt;

&lt;p&gt;Some stale data is annoying.&lt;/p&gt;

&lt;p&gt;Some stale data is catastrophic.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can one tenant observe another tenant's cache?
&lt;/h3&gt;

&lt;p&gt;In multi-tenant inference, that is now a security question, not just a performance question. vLLM's documentation explicitly addresses cross-request prefix-cache side channels and cache salting for isolation.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the economics of a hit vs a miss?
&lt;/h3&gt;

&lt;p&gt;Measure it.&lt;/p&gt;

&lt;p&gt;A cache that sounds impressive but produces a 12% hit rate may not matter much.&lt;/p&gt;

&lt;p&gt;A cache that consistently eliminates enormous repeated prefixes may be one of the most important pieces of infrastructure in the application.&lt;/p&gt;




&lt;h1&gt;
  
  
  The metrics I would actually watch
&lt;/h1&gt;

&lt;p&gt;For an LLM caching system, “cache enabled: true” is nearly useless.&lt;/p&gt;

&lt;p&gt;I would want to know:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Cache hit rate
Cache miss rate
Reusable token count
Cached token count
Bytes stored
Bytes evicted
Eviction rate
TTFT cold vs warm
Prompt processing time
Decode time
GPU memory usage
HBM traffic
Cost per request
Cost per cached request
Cost per uncached request
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And ideally:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hit rate by tenant
hit rate by workload
hit rate by model
hit rate by prefix length
hit rate by request type
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Because aggregate statistics can lie.&lt;/p&gt;

&lt;p&gt;You might have:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;90% average hit rate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and still have:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;0% hit rate
for your most expensive requests.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Numbers need context.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why this matters even more as context windows grow
&lt;/h1&gt;

&lt;p&gt;Longer contexts sound like a pure model-capability improvement.&lt;/p&gt;

&lt;p&gt;But long context also means:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;more tokens
more memory
more memory movement
larger KV cache
more data to manage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Recent research continues to focus on KV cache compression, offloading, heterogeneous memory, and prefetching precisely because the cache becomes increasingly significant as context lengths increase. For example, RocketKV studies substantial KV-cache compression for long-context inference, while other recent work examines dynamic placement and memory-bandwidth bottlenecks.&lt;/p&gt;

&lt;p&gt;So there is a weird feedback loop:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Longer context
      ↓
More useful information
      ↓
More reusable information
      ↓
More reason to cache
      ↓
Larger cache
      ↓
More memory pressure
      ↓
More cache engineering
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AI did not eliminate the old problem.&lt;/p&gt;

&lt;p&gt;It amplified it.&lt;/p&gt;




&lt;h1&gt;
  
  
  The biggest misunderstanding about “cheap inference”
&lt;/h1&gt;

&lt;p&gt;People sometimes imagine that AI inference becomes cheaper mainly because GPUs become faster.&lt;/p&gt;

&lt;p&gt;Yes, hardware improvements matter enormously.&lt;/p&gt;

&lt;p&gt;But software can also make a huge difference by increasing &lt;strong&gt;reuse&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The fastest operation is often:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;the operation you do not perform.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That principle is ancient.&lt;/p&gt;

&lt;p&gt;Compiler optimization uses it.&lt;/p&gt;

&lt;p&gt;CPU caches use it.&lt;/p&gt;

&lt;p&gt;Databases use it.&lt;/p&gt;

&lt;p&gt;Operating systems use it.&lt;/p&gt;

&lt;p&gt;Web browsers use it.&lt;/p&gt;

&lt;p&gt;CDNs use it.&lt;/p&gt;

&lt;p&gt;LLM inference uses it.&lt;/p&gt;

&lt;p&gt;And every time you choose reuse, you inherit the problem of proving that the reused thing is still valid.&lt;/p&gt;

&lt;p&gt;That is the price of memory.&lt;/p&gt;




&lt;h1&gt;
  
  
  So... did AI finally solve cache invalidation?
&lt;/h1&gt;

&lt;p&gt;No.&lt;/p&gt;

&lt;p&gt;And that is exactly why this is interesting.&lt;/p&gt;

&lt;p&gt;Modern AI infrastructure has become sophisticated enough to expose many of the same old problems at a scale where they directly affect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;inference latency&lt;/li&gt;
&lt;li&gt;GPU utilization&lt;/li&gt;
&lt;li&gt;memory capacity&lt;/li&gt;
&lt;li&gt;bandwidth&lt;/li&gt;
&lt;li&gt;API pricing&lt;/li&gt;
&lt;li&gt;cloud bills&lt;/li&gt;
&lt;li&gt;multi-tenant isolation&lt;/li&gt;
&lt;li&gt;system correctness&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prompt caching has become a product feature.&lt;/p&gt;

&lt;p&gt;KV caching has become a fundamental inference mechanism.&lt;/p&gt;

&lt;p&gt;Prefix caching has become an optimization strategy.&lt;/p&gt;

&lt;p&gt;Cache isolation has become a security concern.&lt;/p&gt;

&lt;p&gt;And cache hit rate can become an economic variable.&lt;/p&gt;

&lt;p&gt;The joke survived because the underlying problem survived.&lt;/p&gt;




&lt;h1&gt;
  
  
  The deeper lesson
&lt;/h1&gt;

&lt;p&gt;The AI industry loves to describe itself using words like:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;scaling&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;intelligence&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;reasoning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;agents&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;autonomy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But underneath all of that, the computers are still asking extremely old questions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Where is the data?

How much memory does it take?

Can I reuse it?

Is it still valid?

Who owns it?

When can I delete it?

Who else can observe it?

What happens if I am wrong?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those questions are not fashionable.&lt;/p&gt;

&lt;p&gt;They are foundational.&lt;/p&gt;

&lt;p&gt;And that might be the most interesting thing about modern AI engineering.&lt;/p&gt;

&lt;p&gt;We keep inventing systems that look revolutionary from the outside.&lt;/p&gt;

&lt;p&gt;Then we open the hood.&lt;/p&gt;

&lt;p&gt;And there is still a cache.&lt;/p&gt;

&lt;p&gt;And it is still lying to us.&lt;/p&gt;




&lt;h1&gt;
  
  
  TL;DR
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Cache invalidation did not become less important because of AI. It became more important.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Modern LLM systems increasingly depend on several forms of caching, including prompt/context caching, KV caching, and prefix caching. OpenAI, Anthropic, and Google now expose caching mechanisms aimed at reducing repeated-input cost and latency, while inference systems such as vLLM use sophisticated KV-cache management and prefix reuse.&lt;/p&gt;

&lt;p&gt;The challenge is that cached AI state can depend on huge amounts of context.&lt;/p&gt;

&lt;p&gt;That turns cache invalidation into a problem of:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;dependency tracking + consistency + memory management + economics + security.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And the really weird part?&lt;/p&gt;

&lt;p&gt;The same old systems ideas that engineers were fighting decades ago are now sitting underneath trillion-token, GPU-heavy AI infrastructure.&lt;/p&gt;

&lt;p&gt;So yes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;there are only two hard things in computer science.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Apparently we just decided to make the cache larger.&lt;/p&gt;




&lt;h1&gt;
  
  
  Frequently Asked Questions
&lt;/h1&gt;

&lt;h2&gt;
  
  
  What is cache invalidation?
&lt;/h2&gt;

&lt;p&gt;Cache invalidation is the process of determining when cached data is no longer valid and must be removed, refreshed, or replaced. The difficulty comes from keeping cached copies consistent with the underlying source of truth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who said “cache invalidation and naming things”?
&lt;/h2&gt;

&lt;p&gt;The statement is commonly attributed to Phil Karlton. The historical record is based largely on recollections and later documentation rather than a definitive contemporaneous publication. Tim Bray reported hearing the quote in the 1990s, and Martin Fowler documented the phrase and its later variations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Did Phil Karlton invent the “off-by-one” version?
&lt;/h2&gt;

&lt;p&gt;Not according to the commonly cited history. Martin Fowler attributes the later three-part variation to Leon Bambrick, while preserving Phil Karlton as the source of the original two-part version.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is prompt caching?
&lt;/h2&gt;

&lt;p&gt;Prompt caching allows an AI system to reuse processing associated with repeated input context, reducing repeated computation and potentially lowering latency and input-token costs. OpenAI, Anthropic, and Google all provide versions of this capability.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a KV cache?
&lt;/h2&gt;

&lt;p&gt;A KV cache stores attention key/value information from previous tokens so an autoregressive model can avoid recomputing the entire prior context during generation. Managing this data efficiently is a major part of high-throughput LLM serving.&lt;/p&gt;

&lt;h2&gt;
  
  
  Does caching always make LLM inference cheaper?
&lt;/h2&gt;

&lt;p&gt;No. Caching only produces major benefits when requests share reusable context or state. Cache effectiveness depends on workload structure, cache-hit rates, memory capacity, eviction behavior, and serving architecture. Google's documentation explicitly notes that prompt structure affects implicit-cache hit rates, while vLLM notes that prefix caching mainly reduces prefilling work rather than decode time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can LLM caches create security vulnerabilities?
&lt;/h2&gt;

&lt;p&gt;Yes. Shared prefix caches can create timing side channels in multi-tenant inference, allowing an attacker to infer information about another request's cached prefix. vLLM's security documentation describes this problem and cache-salting mitigations.&lt;/p&gt;




&lt;h1&gt;
  
  
  Keywords / Topics
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;cache invalidation, Phil Karlton, cache invalidation problem, prompt caching, LLM caching, KV cache, KV cache optimization, prefix caching, LLM inference cost, AI inference optimization, vLLM, PagedAttention, prompt cache, context cache, cache consistency, distributed systems, GPU memory, HBM bandwidth, inference latency, AI infrastructure, LLM serving, cache security&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Suggested DEV / CoderLegion SEO metadata
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;SEO Title:&lt;/strong&gt;&lt;br&gt;
Cache Invalidation Never Died. AI Just Made It Expensive Again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Meta Description:&lt;/strong&gt;&lt;br&gt;
The famous cache-invalidation joke is suddenly relevant to AI. Explore prompt caching, KV cache, prefix caching, LLM inference costs, memory bottlenecks, and cache security.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Suggested Slug:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;cache-invalidation-llm-prompt-kv-prefix-caching&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Suggested Tags:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;AI&lt;/code&gt;, &lt;code&gt;LLM&lt;/code&gt;, &lt;code&gt;Programming&lt;/code&gt;, &lt;code&gt;Performance&lt;/code&gt;, &lt;code&gt;System Design&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Primary Search Intent:&lt;/strong&gt;&lt;br&gt;
Why is cache invalidation hard, and how does it affect modern AI inference?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Semantic topics for search / GEO:&lt;/strong&gt;&lt;br&gt;
cache invalidation explained, prompt caching explained, KV cache explained, prefix caching, LLM inference optimization, vLLM cache, AI inference cost, cache consistency, multi-tenant LLM security&lt;/p&gt;




&lt;h1&gt;
  
  
  Sources
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Martin Fowler — “Two Hard Things”&lt;/strong&gt;&lt;br&gt;
Historical discussion of the Phil Karlton quote and its later variants.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tim Bray — “On XML Language Design” / archival references&lt;/strong&gt;&lt;br&gt;
Early public attribution of the quote to Phil Karlton and evidence of its circulation in the 1990s.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;David Karlton / Skeptics Stack Exchange discussion&lt;/strong&gt;&lt;br&gt;
First-hand family recollection regarding Phil Karlton's use and likely origin of the quote.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;OpenAI — “Prompt Caching in the API”&lt;/strong&gt;&lt;br&gt;
Official description of automatic prompt caching and cached-input pricing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Anthropic — “Contextual Retrieval in AI Systems”&lt;/strong&gt;&lt;br&gt;
Discussion of prompt caching and its potential latency and cost reductions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Anthropic Claude Cookbook — “Prompt caching through the Claude API”&lt;/strong&gt;&lt;br&gt;
Technical description of automatic and explicit caching approaches.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Google AI for Developers — “Context caching”&lt;/strong&gt;&lt;br&gt;
Current Gemini documentation covering implicit and explicit caching, cache-hit behavior, and prompt-structure guidance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Kwon et al. — “Efficient Memory Management for Large Language Model Serving with PagedAttention”&lt;/strong&gt;&lt;br&gt;
Research introducing PagedAttention and the vLLM serving system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;vLLM documentation — “Automatic Prefix Caching”&lt;/strong&gt;&lt;br&gt;
Technical explanation of KV-cache block reuse and hash-based prefix caching.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;vLLM security documentation — Prefix Cache Timing Side-Channel Mitigation&lt;/strong&gt;&lt;br&gt;
Discussion of multi-tenant prefix-cache leakage and cache salting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dong et al. — “Accelerating LLM Inference Throughput via Asynchronous KV Cache Prefetching”&lt;/strong&gt;&lt;br&gt;
Research on memory-bandwidth bottlenecks during LLM inference.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Xu, Khaira &amp;amp; Singh — “KV Cache Optimization Strategies for Scalable and Efficient LLM Inference”&lt;/strong&gt;&lt;br&gt;
Recent review of KV-cache capacity and bandwidth challenges in long-context inference.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Behnam et al. — “RocketKV”&lt;/strong&gt;&lt;br&gt;
Research on KV-cache compression for long-context LLM inference.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>discuss</category>
      <category>analytics</category>
    </item>
    <item>
      <title>Four Bubbles Wearing One Trenchcoat: A Developer's Autopsy of the AI Boom vs. the Dot-Com Crash</title>
      <dc:creator>Mahan Tavakoli</dc:creator>
      <pubDate>Sat, 12 Sep 2026 06:09:18 +0000</pubDate>
      <link>https://dev.to/mahankenway/four-bubbles-wearing-one-trenchcoat-a-developers-autopsy-of-the-ai-boom-vs-the-dot-com-crash-38fd</link>
      <guid>https://dev.to/mahankenway/four-bubbles-wearing-one-trenchcoat-a-developers-autopsy-of-the-ai-boom-vs-the-dot-com-crash-38fd</guid>
      <description>&lt;h1&gt;
  
  
  Four Bubbles Wearing One Trenchcoat: A Developer's Autopsy of the AI Boom vs. the Dot-Com Crash
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;by Mahan (&lt;a href="https://github.com/MahanKenway" rel="noopener noreferrer"&gt;@MahanKenway&lt;/a&gt; on GitHub)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There's a stretch of rural Louisiana and Kansas where, if you dig a few feet down next to certain county roads, you'll still find coils of unlit fiber-optic cable from 1999. Nobody ever turned the light on. Companies like Global Crossing and 360networks buried something like tens of millions of route-miles of glass on the belief that internet traffic was doubling every three months, financed it with debt, and were bankrupt before a lot of that fiber ever carried a single packet. Some of it sat dark in the ground for over a decade before anyone lit it up.&lt;/p&gt;

&lt;p&gt;I keep thinking about that buried glass every time another "AI capex" headline shows up in my feed. Not because I think GPUs are about to become the new dark fiber (I'll get to why that comparison is way more complicated than it sounds), but because it's a good reminder that bubbles don't leave behind vague "irrational exuberance." They leave behind physical, dated, traceable stuff. Warehouses. Turbines. Debt schedules. Depreciation tables. If you want to know whether something is &lt;em&gt;actually&lt;/em&gt; a bubble, you don't ask whether people online are excited about it. You go look at the concrete. Or in this case, the substation.&lt;/p&gt;

&lt;p&gt;So that's what this is. Not another "is AI a bubble, yes or no" hot take, there are already about four thousand of those and I refuse to add a fifth. I don't even think that's the right question, honestly, because "the AI bubble" isn't one thing. When you actually pull it apart, there are at least four separate, only loosely related bubbles stacked directly on top of each other, each with its own mechanism, its own failure mode, and its own timeline. Some of them look a lot like 2000. Some of them don't look like anything from 2000 at all, because the thing that's actually fragile this time around isn't even the stock market.&lt;/p&gt;

&lt;p&gt;Grab a coffee, this one's long. I did the reading so you don't have to, mostly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bubble #1: The one everyone already knows about, valuation
&lt;/h2&gt;

&lt;p&gt;This is the boring one, the one that gets its own chart in every finance newsletter, so I'll go through it quick and then move on to the stuff nobody's actually talking about.&lt;/p&gt;

&lt;p&gt;By early 2026 the Shiller CAPE ratio (a cyclically adjusted price to earnings measure that smooths out short term earnings noise) sat around 41. The dot-com peak in 1999 hit roughly 44 to 45, the highest reading in the entire history of the metric. Forty one is the second highest reading in 125 years of data, which is not exactly a comforting sentence to type out loud. Palantir was trading at a trailing P/E somewhere north of 130 on revenue of about $5 billion. That is not a typo, I checked it twice because it made me laugh out loud at my desk. Nvidia is up roughly 2,000% off its late 2022 lows, compared to Cisco's about 1,000% run into its March 2000 peak, and briefly became the most valuable company on Earth the exact same way Cisco once did. AI focused startups pulled in 61% of &lt;em&gt;all&lt;/em&gt; global venture capital in 2025, up from about 30% just three years earlier. That's a level of capital concentration into one category with basically no historical precedent outside of dot-com itself.&lt;/p&gt;

&lt;p&gt;None of this is subtle. If your only tool is "compare the multiples," the answer is: yes, obviously, this looks stretched, arguably more stretched than almost any period in market history except one very specific one.&lt;/p&gt;

&lt;p&gt;But honestly? This is the &lt;em&gt;least&lt;/em&gt; interesting bubble of the four, because everyone is already staring straight at it. Valuation bubbles get corrected the boring way, by markets doing what markets do, repricing, sometimes violently, sometimes not permanently (a bunch of dot-com survivors eventually clawed back to and past their old highs, just twenty years later, which is a rough timeline if you were counting on it for retirement). The valuation multiple is the symptom. The other three bubbles are closer to the actual disease.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bubble #2: The one hiding inside the accounting, depreciation
&lt;/h2&gt;

&lt;p&gt;This is the one that actually made me sit down and write this whole thing, because it's a purely technical, almost nerdy argument, exactly the kind of thing a room full of developers would enjoy tearing apart over lunch, and almost nobody outside finance Twitter explains it in plain english.&lt;/p&gt;

&lt;p&gt;Here's the mechanism, and I promise it's more interesting than it sounds. When a hyperscaler buys a rack of GPUs, it doesn't expense the full cost the day it gets racked and plugged in. It depreciates it, spreading the cost over the estimated "useful life" of the hardware, and that estimate is management's call, not some fixed external rule handed down from on high. Right now the big cloud providers are depreciating Nvidia GPUs and the servers around them over five to six years. Michael Burry (yes, the &lt;em&gt;Big Short&lt;/em&gt; guy, and yes, he's been early and flat out wrong before, worth keeping in mind before you fully bet the farm on him) has been arguing loudly that this is absurd, because Nvidia itself ships a new flagship architecture roughly every one to two years, and the real economic replacement cycle for this hardware looks a lot closer to two or three years, not five or six.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why this actually matters
&lt;/h3&gt;

&lt;p&gt;Stretching the depreciation schedule doesn't change how much cash actually left the building the day of purchase. It changes how much &lt;em&gt;expense hits the income statement this year&lt;/em&gt; versus later. Report a longer useful life and this year's depreciation charge shrinks, and reported profit goes up, with zero change to the actual economics of the hardware sitting in the rack getting slowly outdated by the next chip generation. Burry's math puts the cumulative understatement across the whole industry at something like $176 billion between 2026 and 2028, and singles out Oracle and Meta as overstated by roughly 27% and 21% of earnings respectively by 2028, if his numbers hold up.&lt;/p&gt;

&lt;p&gt;Is it fraud? Almost certainly not in the legal sense, accounting standards give real, legitimate wiggle room on useful life estimates, and it's genuinely hard to prove a specific number is "wrong" instead of just "optimistic." But it's a lever, and pretty much the whole industry appears to be leaning on it in the same direction at the same time, which is exactly the kind of correlated blind spot that looks completely obvious in hindsight and totally invisible in the moment. It's the accounting version of an entire industry quietly agreeing to use the same slightly-too-generous assumption, because nobody wants to be the first one to write it down and look worse than everyone else on the earnings call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bubble #3: The one that isn't really revenue, the circular financing web
&lt;/h2&gt;

&lt;p&gt;This is the strangest one of the four, and honestly the one I think is the most underappreciated outside of people who track these deals for a living.&lt;/p&gt;

&lt;p&gt;Trace the money through a few 2025 to 2026 headline deals and you get something like this: Nvidia takes an equity stake in OpenAI. OpenAI commits to buying enormous amounts of compute from Oracle. Oracle commits to buying tens of billions of dollars of chips from Nvidia. Microsoft and Nvidia both invest directly into Anthropic, which in turn commits tens of billions of dollars to buying Azure compute from Microsoft. AMD sells OpenAI the equivalent of a 10% equity stake in exchange for a multi-gigawatt chip supply deal. Try drawing this on a whiteboard, I dare you, you'll run out of arrows before you run out of companies.&lt;/p&gt;

&lt;p&gt;One widely shared Bloomberg diagram that made the rounds in mid-2026 traced roughly $46 billion in direct equity stakes and $879 billion in multi-year purchase commitments circulating among a fairly small set of names: Microsoft, Oracle, Amazon, Google, Meta, OpenAI, Anthropic, xAI, CoreWeave, Nvidia, and AMD.&lt;/p&gt;

&lt;p&gt;None of these deals are illegal, and none of them are secret, they're all announced with press releases and glossy investor decks. The uncomfortable part is what it does to how you should actually &lt;em&gt;read&lt;/em&gt; the headline numbers. When Nvidia invests in a company that turns around and spends a meaningful chunk of that money buying Nvidia chips, the resulting "revenue" is real dollars changing hands, sure, but it's not the same signal as an independent customer showing up with their own money because they genuinely need the product. It's closer to a loop than an actual market. Bernstein analyst Stacy Rasgon flagged exactly this dynamic around the Nvidia-OpenAI deal, and UBS separately estimated the OpenAI-Nvidia relationship alone could represent something like 13% of Nvidia's projected 2026 revenue.&lt;/p&gt;

&lt;p&gt;Layer on top of that the MIT "GenAI Divide" study, which found that roughly 95% of enterprise generative AI pilots showed no measurable profit impact for the companies actually running them, and you get a genuinely uncomfortable picture: enormous, real capital expenditure flowing in a tight loop between a handful of companies, while the actual end customer proof of durable ROI is thin. That doesn't necessarily mean the technology doesn't work, plenty of us use these tools every single day and get real value out of them (I certainly do, otherwise I wouldn't be typing this into one). It means the &lt;em&gt;revenue recognition&lt;/em&gt; trailing the technology might be running well ahead of the &lt;em&gt;value creation&lt;/em&gt;, which is a very specific and very familiar kind of gap to anyone who lived through the last one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bubble #4: The one buried in concrete and copper wire, the physical buildout
&lt;/h2&gt;

&lt;p&gt;This is where the fiber optic ghost story from the intro finally earns its keep, and it's also where the comparison to 2000 gets genuinely complicated, because the differences matter just as much as the similarities do.&lt;/p&gt;

&lt;p&gt;The scale here is not subtle. AI related spending hit roughly $375 billion in 2025 and is projected to reach around $500 billion in 2026. OpenAI alone has stacked up deals worth roughly 26 gigawatts of GPU capacity across its agreements with Nvidia, AMD, and Broadcom, which is enough electricity to make a power engineer sweat just reading the number. Jim Chanos, the short seller who called Enron before it collapsed, has been openly drawing the fiber glut parallel, pointing out that in 2000 the industry consensus was that internet traffic was doubling every quarter (it wasn't, the real number was closer to doubling annually), and that shaky consensus was enough to justify laying tens of millions of miles of cable that mostly sat dark for a decade.&lt;/p&gt;

&lt;h3&gt;
  
  
  Here's the honest complication though
&lt;/h3&gt;

&lt;p&gt;The &lt;em&gt;financing structure&lt;/em&gt; underneath this buildout looks meaningfully different from telecom in 2000. The fiber bubble was built on junk rated debt from companies with no real balance sheet, plus vendor financing from equipment makers like Lucent and Nortel who literally loaned their own customers the money to buy their own gear, a setup that guaranteed a domino effect the second traffic growth disappointed even slightly. Today, by most estimates, something like two thirds of 2026's AI capex is coming directly out of the operating cash flow and equity of Microsoft, Alphabet, Amazon, and Meta, companies that, whatever you think of their valuations, are genuinely some of the most cash generative businesses that have ever existed on this planet. That's a real, structural difference, not just a talking point somebody's PR team came up with.&lt;/p&gt;

&lt;p&gt;But it's not the &lt;em&gt;whole&lt;/em&gt; picture either, because a meaningful and fast growing slice of this buildout (the "neoclouds" like CoreWeave, the joint ventures, the special purpose financing vehicles) is running through leases and debt structures that sit off the parent company's balance sheet entirely. One recent estimate put off balance sheet debt across five major hyperscalers at something like $1.65 trillion, and credit default swap spreads on some of these names have reportedly doubled in a matter of months as bond markets start actually pricing in real risk instead of just vibes. The Bank for International Settlements flagged almost exactly this in its 2026 annual report, hyperscaler debt tied to AI buildouts growing faster than the balance sheets that are supposed to be carrying it.&lt;/p&gt;

&lt;p&gt;And then there's a constraint that didn't even exist for fiber back in 2000: &lt;strong&gt;power&lt;/strong&gt;. You can, in theory, build data centers faster than you can build power plants and transmission lines to actually feed them. Right now demand for AI compute is arguably being rationed by grid capacity rather than by customers walking away, which some analysts point out is functionally the &lt;em&gt;opposite&lt;/em&gt; of a glut. The catch is that if you also build two or three years worth of power infrastructure on that same optimistic curve, you can turn today's shortage into tomorrow's oversupply almost overnight. That's a real risk. It's just a 2028 or 2029 risk, not a "this quarter" risk, and mixing up those two very different timelines is most of what makes this whole debate so confusing to follow in real time on Twitter.&lt;/p&gt;

&lt;p&gt;There's one more twist worth sitting with, and it's the one that actually gives me some hope. The fiber that got buried and left dark in 2000 didn't stay dark forever. It became the physical substrate the entire streaming video, cloud computing, remote work economy runs on today, bought for pennies on the dollar by whoever survived the shakeout. The original investors got wiped out almost completely, the &lt;em&gt;infrastructure itself&lt;/em&gt; turned out to be exactly right, just built about a decade ahead of demand and paid for by the wrong people at the wrong time. If the AI buildout rhymes with anything from 2000, it might be less "this is all going to be worthless" and more "this is going to be foundational, and most of the people currently paying the bill are probably not going to be the ones who end up owning it when the music stops."&lt;/p&gt;

&lt;h2&gt;
  
  
  So which bubble actually pops, and what does "popping" even look like here
&lt;/h2&gt;

&lt;p&gt;If you're expecting one number and one date, I don't have it, and anyone confidently handing you one is selling something, probably a newsletter subscription. But splitting it into four does at least tell you where to actually look and what kind of event to expect from each one.&lt;/p&gt;

&lt;p&gt;A pure valuation correction is the easiest to imagine and probably the least structurally damaging of the four. Multiples compress, a bunch of AI adjacent tickers get cut in half overnight, the profitable core survives, life goes on, roughly the same outcome the handful of dot-com companies with real revenue underneath the hype actually got.&lt;/p&gt;

&lt;p&gt;The depreciation story resolves way more slowly and quietly, through restated guidance and gradually shortening useful life assumptions rather than one dramatic crash headline, unless something forces the issue faster, like an activist short campaign or an accounting regulator suddenly taking a public interest.&lt;/p&gt;

&lt;p&gt;The circular revenue story is the one that resolves the moment growth merely &lt;em&gt;disappoints&lt;/em&gt;, rather than actually failing outright, because in a closed loop, once one node slows its purchase commitments even a little, the "revenue" on the other side of that loop doesn't just grow slower, it can straight up evaporate, since it was never truly independent demand to begin with.&lt;/p&gt;

&lt;p&gt;And the physical buildout is the one where the actual mechanism of failure, if there is one, probably shows up first in &lt;strong&gt;credit markets&lt;/strong&gt;, not equities. A downgrade, a widening CDS spread, a special purpose vehicle quietly missing a payment, all well before it shows up as a scary headline stock crash. That's arguably the single biggest structural difference from 2000 worth carrying around with you: the dot-com bust was very visibly an equity story, playing out live on public tickers everyone could watch. If this one breaks, it may well announce itself first in the bond market and the off balance sheet financing vehicles nobody was really watching, which happens to be exactly the blind spot that made 2008 so much worse than most people expected going in.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this actually means if you write code for a living
&lt;/h2&gt;

&lt;p&gt;I'm not a financial advisor and none of this is a recommendation to buy or sell anything, please don't screenshot this and yolo your savings. But if you build software, especially anything with AI infrastructure underneath it, a few practical takeaways seem worth carrying around regardless of how any of this eventually resolves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Don't build your product's core economics around today's inference pricing being permanent.&lt;/strong&gt; It's currently subsidized by exactly the kind of capital described above, and subsidized pricing has a funny way of quietly becoming un-subsidized pricing right around the moment you've built a whole business that depends on it staying cheap forever.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Platform risk is real risk.&lt;/strong&gt; If your product depends entirely on one lab's API, you're implicitly exposed to that lab's position in this exact financing web, whether you think about it that way day to day or not.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The fiber glut precedent genuinely cuts both ways.&lt;/strong&gt; Overbuilt infrastructure really can turn into decade defining, dirt cheap foundational capacity for whoever's still standing when the dust settles. That's an actual historical outcome, not just cope from people who bought too early. It's just usually not great news for whoever's holding the debt at the exact moment things clear.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Is AI useful" and "is AI overvalued" are two completely separate questions,&lt;/strong&gt; and it's worth resisting the urge to let your answer to one contaminate your answer to the other. Plenty of internet companies back in 1999 were both genuinely useful and wildly overvalued at the same time, often the exact same company, sometimes on the exact same day.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The fiber under those Kansas county roads eventually got lit up. It just took the original investors going to zero first, and it took about a decade longer than anyone excitedly burying it in 1999 would have ever guessed. Whatever the AI buildout's version of that story turns out to be, the pattern of who actually pays for the mistake versus who inherits the infrastructure afterward is worth watching a lot more closely than whatever Nvidia's stock does on any given Tuesday.&lt;/p&gt;




&lt;h3&gt;
  
  
  A note on sources
&lt;/h3&gt;

&lt;p&gt;Everything above is paraphrased from public reporting and analysis rather than quoted directly. Where a specific figure or claim is doing real work in the argument, I tried to keep it traceable back to where it actually came from rather than just asking you to take my word for it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CNBC, Nov 2025, Michael Burry's depreciation accusation against hyperscalers&lt;/li&gt;
&lt;li&gt;Business Standard / Bloomberg, Sep 2025, Bernstein analyst on Nvidia-OpenAI circular financing concerns&lt;/li&gt;
&lt;li&gt;Yahoo Finance / 24/7 Wall St, 2026, the Bloomberg circular financing diagram and off balance sheet debt estimate&lt;/li&gt;
&lt;li&gt;Real Investment Advice, synthesis of the bear case including the MIT GenAI Divide study and UBS's OpenAI-Nvidia revenue estimate&lt;/li&gt;
&lt;li&gt;IEEE ComSoc Technology Blog and Opus Interactive, fiber optic buildout history and its comparison to AI data center capex&lt;/li&gt;
&lt;li&gt;Lance Roberts / ZeroHedge, 2026, power grid rationing argument and the operating cash flow vs debt financing distinction&lt;/li&gt;
&lt;li&gt;IntuitionLabs and IndMoney, CAPE ratio, VC concentration, and valuation multiple comparisons&lt;/li&gt;
&lt;li&gt;Benzinga, Jim Chanos on the fiber optic bubble parallel&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Written by Mahan, self taught developer, GitHub: &lt;a href="https://github.com/MahanKenway" rel="noopener noreferrer"&gt;MahanKenway&lt;/a&gt;. If you've got a counter argument or think I got a number wrong somewhere in here, genuinely tell me in the comments, I'd rather get corrected than stay confidently wrong.&lt;/p&gt;

&lt;p&gt;Tags: ai, dotcom, startups, techindustry, finance, opinion, softwareengineering, machinelearning, discuss, webdev&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>career</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Building an Immersive 3D Dice Roller with React and Three.js</title>
      <dc:creator>Mahan Tavakoli</dc:creator>
      <pubDate>Tue, 18 Aug 2026 01:06:21 +0000</pubDate>
      <link>https://dev.to/mahankenway/building-an-immersive-3d-dice-roller-with-react-and-threejs-15jj</link>
      <guid>https://dev.to/mahankenway/building-an-immersive-3d-dice-roller-with-react-and-threejs-15jj</guid>
      <description>&lt;p&gt;Hey RPG community! I wanted to share a tool I built for my tabletop sessions — &lt;strong&gt;Arcane-Dice&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Inspired by the immersive dice rolling experience in Baldur's Gate 3, I built this web-based 3D dice roller app to bring that same feeling to any browser.&lt;/p&gt;

&lt;h3&gt;
  
  
  Features:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Physics-based Rolling:&lt;/strong&gt; Real 3D dice using Three.js and Cannon.js.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Immersive Effects:&lt;/strong&gt; Sound effects and animations to make every roll feel impactful.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easy Integration:&lt;/strong&gt; Ready to be used in any web-based tabletop tool.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Tech Stack:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;Three.js (React Three Fiber)&lt;/li&gt;
&lt;li&gt;Cannon.js for physics&lt;/li&gt;
&lt;li&gt;Howler.js for audio&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check it out on GitHub:&lt;br&gt;
&lt;a href="https://github.com/MahanKenway/Arcane-Dice" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;br&gt;
&lt;a href="https://mahankenway.github.io/Arcane-Dice/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd love to hear your feedback or see what kind of dice skins you'd like to see next!&lt;/p&gt;

&lt;h1&gt;
  
  
  showdev #gamedev #threejs #react #rpg
&lt;/h1&gt;

</description>
      <category>threejs</category>
      <category>react</category>
      <category>gamedev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Creating a Retro-Futuristic Aesthetic Productivity Dashboard with React</title>
      <dc:creator>Mahan Tavakoli</dc:creator>
      <pubDate>Tue, 18 Aug 2026 00:49:43 +0000</pubDate>
      <link>https://dev.to/mahankenway/creating-a-retro-futuristic-aesthetic-productivity-dashboard-with-react-1ba3</link>
      <guid>https://dev.to/mahankenway/creating-a-retro-futuristic-aesthetic-productivity-dashboard-with-react-1ba3</guid>
      <description>&lt;p&gt;Hi everyone! I wanted to share my latest side project, &lt;strong&gt;MeowLOCK&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;I was tired of the standard, sterile productivity apps, so I built something with a bit more soul — a retro-futuristic aesthetic workspace designed specifically for developers.&lt;/p&gt;

&lt;h3&gt;
  
  
  What's inside?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ambient Mixer:&lt;/strong&gt; Customize your background sounds for deep focus.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cozy Widgets:&lt;/strong&gt; Clock, Pomodoro timer, and task list all in one place.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customizable Themes:&lt;/strong&gt; Switch between different "vibes" to suit your mood.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Tech Stack:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;React 18&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;TailwindCSS for the aesthetic styling&lt;/li&gt;
&lt;li&gt;Lucide React for icons&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's completely open source and I'd love for you to try it out or contribute!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/MahanKenway/MeowLOCK" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;br&gt;
&lt;a href="https://mahankenway.github.io/MeowLOCK/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  showdev #productivity #react #aesthetic
&lt;/h1&gt;

</description>
      <category>react</category>
      <category>typescript</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How I Ported Classic 1993 DOOM to the Browser using WebAssembly</title>
      <dc:creator>Mahan Tavakoli</dc:creator>
      <pubDate>Tue, 18 Aug 2026 00:49:20 +0000</pubDate>
      <link>https://dev.to/mahankenway/how-i-ported-classic-1993-doom-to-the-browser-using-webassembly-1ffn</link>
      <guid>https://dev.to/mahankenway/how-i-ported-classic-1993-doom-to-the-browser-using-webassembly-1ffn</guid>
      <description>&lt;p&gt;Hey everyone! I've always been a fan of retro gaming, and I recently decided to take on the challenge of porting the original 1993 DOOM to the browser. &lt;/p&gt;

&lt;p&gt;The result is &lt;strong&gt;RetroPlay&lt;/strong&gt;, a fully functional, zero-plugin version of DOOM that runs purely on WebAssembly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pure WASM:&lt;/strong&gt; Compiled using Emscripten.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Freedoom WAD:&lt;/strong&gt; Included by default so you can play immediately.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mobile Friendly:&lt;/strong&gt; Custom touch controls and gyroscope support for an immersive mobile experience.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why I built this:
&lt;/h3&gt;

&lt;p&gt;I wanted to explore the performance limits of modern browsers and see how well WebAssembly could handle a legacy C codebase. It turns out, it's incredibly efficient!&lt;/p&gt;

&lt;p&gt;Check out the code and drop a star if you find it interesting:&lt;br&gt;
&lt;a href="https://github.com/MahanKenway/RetroPlay" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;br&gt;
&lt;a href="https://mahankenway.github.io/RetroPlay/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love to hear your thoughts or see your speedruns!&lt;/p&gt;

&lt;h1&gt;
  
  
  showdev #retro #doom #wasm
&lt;/h1&gt;

</description>
      <category>webassembly</category>
      <category>opensource</category>
      <category>gaming</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
