Notes on Andrej Karpathy talk "Software Is Changing (Again)"

Lynn Mikami

Lynn Mikami

20 June 2025

Notes on Andrej Karpathy talk "Software Is Changing (Again)"

The world of artificial intelligence is moving at a dizzying speed. Every week seems to bring a new model, a new capability, or a new debate about the future of humanity. Cutting through this noise requires voices with both deep technical understanding and a clear vision of the bigger picture. Andrej Karpathy, a pioneering figure with formative experience at both Tesla and OpenAI, is one such voice.

In his recent talk at Y Combinator, Karpathy titled "Software Is Changing (Again)," Karpathy provides not just an update, but a complete framework for understanding the seismic shift we are currently experiencing. He argues that we are not merely witnessing the creation of a new tool, but the dawn of a new computing paradigm. This is Software 3.0.

This post is a deep dive into the notes and reflections from his talk, unpacking the core concepts and exploring their profound implications. We will journey through his taxonomy of software, understand why he calls a Large Language Model (LLM) a new kind of operating system, explore the pragmatic "Iron Man Suit" approach to building AI products today, and look ahead to a future built for AI agents.

💡
Want a great API Testing tool that generates beautiful API Documentation?

Want an integrated, All-in-One platform for your Developer Team to work together with maximum productivity?

Apidog delivers all your demands, and replaces Postman at a much more affordable price!
button

The Three Ages of Software: A New Taxonomy

To understand where we're going, we first need to understand where we've been. Karpathy elegantly categorizes the history of software into three distinct eras, a taxonomy that clarifies the nature of the current revolution.

Software 1.0: The Age of Logic

This is the software we all know, the foundation of the digital world. Software 1.0 is traditional code, written explicitly by human programmers to execute deterministic instructions. It’s the C++, Java, and Python that powers everything from your web browser to a bank's transaction database. In his talk, Karpathy points to the foundational C++ code in Tesla's Autopilot system as a prime example [00:04:49].

This paradigm is defined by its precision and control. Humans dictate the logic, step-by-step. Its strength is its predictability. Its weakness, however, is its rigidity. Software 1.0 struggles with ambiguity and unstructured data. You can't easily write if/else statements to reliably identify a cat in a photo or capture the sentiment of a sentence. For that, a new approach was needed.

Software 2.0: The Age of Learning

Software 2.0 emerged with the rise of deep learning and neural networks. Here, the paradigm shifts dramatically from writing code to curating data. Instead of providing explicit instructions, developers gather vast datasets and use them to "train" a neural network. The "code" in this paradigm isn't human-readable logic; it's the millions or billions of weights and biases within the network, tuned by an optimizer. The programmer becomes more of a teacher or a gardener, feeding the model data and shaping its learning process.

This approach quite literally "ate through" the Software 1.0 stack in many domains, especially those dealing with perception, like computer vision [00:05:26]. Tasks that were impossibly complex to code by hand became achievable. This was the era of image recognizers, speech-to-text systems, and machine translation that actually worked. It was a monumental leap, but the next step would change the nature of programming itself.

Software 3.0: The Age of Conversation

This brings us to today. Software 3.0 is the world of Large Language Models. These models, like GPT-4 or Gemini, are massive neural networks trained on a significant fraction of the internet. They are typically frozen, pre-trained artifacts. The revolutionary part is how we interact with them. As Karpathy states, we have a new programming language: English [00:04:09].

Programming in Software 3.0 is done through natural language prompts. We instruct, query, and steer the model's behavior simply by talking to it. This is the most significant leap in accessibility in the history of computing. It transforms every person who can articulate a thought into a potential programmer, a concept Karpathy later dubs "vibe coding."

The LLM as a New Computing Platform

Karpathy compellingly argues that an LLM is not just a clever program; it's a new type of computer, a new platform with its own unique characteristics [00:06:10]. He uses several powerful analogies to make his case.

First, he sees LLMs as having properties of both a utility and a semiconductor fab. The utility analogy [00:06:35] refers to the immense capital expenditure (capex) required by labs like OpenAI and Google to train these models, and the operational expenditure (opex) to serve them via metered APIs. Like an electricity grid, they require immense investment and need to be delivered with low latency, high uptime, and consistent quality [00:07:02]. The fab analogy [00:08:04] points to the deep, centralized, and often secret R&D that goes into building these foundational models, creating a landscape dominated by a few major players.

Second, and perhaps most importantly, he presents the LLM as a new operating system [00:09:07]. This is a profound insight. The LLM acts as a kind of biological, alien OS that orchestrates its internal resources—its vast knowledge, its reasoning ability, its context window (as a form of RAM)—to execute tasks specified by the user's prompt [00:10:09]. This has given rise to a new computing model reminiscent of 1960s time-sharing [00:11:02]. Most of us are not running these massive models locally; we are clients connecting over a network to a powerful, centralized "mainframe" in the cloud.

This has also flipped the script on technology diffusion. Historically, powerful technologies trickled down from governments and large corporations to consumers. LLMs, remarkably, have done the opposite, reaching billions of consumers through intuitive chat interfaces almost overnight [00:12:42], forcing enterprises to scramble to catch up.

The "Iron Man Suit": Pragmatism in an Age of Hype

While LLMs possess superhuman capabilities, they are also deeply flawed. Karpathy offers a sober look at their "psychology," describing them as "stochastic simulations of people" [00:14:49]. Their intelligence is "jagged" [00:16:20].

On one hand, they have encyclopedic knowledge and near-perfect memory [00:15:30]. On the other, they are prone to confident hallucinations, lack a true model of self-knowledge [00:16:07], suffer from "anterograde amnesia" (they don't natively learn from interactions) [00:16:43], and are dangerously gullible to security risks like prompt injection [00:17:38].

The core engineering challenge, therefore, is to design systems that work around these deficits while leveraging their strengths [00:18:03]. This leads to what is perhaps the most practical and valuable insight from the talk: the "Iron Man Suit" analogy [00:28:22].

Instead of striving for fully autonomous "Iron Man robots" that operate without supervision—a goal that is still far off and fraught with risk—we should focus on building "Iron Man suits." These are applications that augment human capabilities, with a human firmly in the loop. The ideal workflow is a tight, fast generate-and-verify cycle [00:22:13]. The AI generates the first draft—be it code, an email, or a design—and the human, with their superior judgment and context, quickly verifies, edits, and approves. The faster this loop, the more powerful the augmentation [00:22:19].

Successful LLM apps today, like Cursor for coding or Perplexity for search, are excellent examples of this. They feature sophisticated context management [00:19:24], smart orchestration of multiple LLM calls [00:19:32], and, crucially, user interfaces designed for easy auditing [00:19:44]. They often feature an "autonomy slider" [00:20:21], allowing the user to dial up or down the AI's contribution based on the task's complexity and their confidence in the system. The key is to keep the AI on a leash, preventing it from generating overwhelming, unmanageable outputs [00:22:53] or getting "lost in the woods" [00:24:41].

Everyone is a Programmer: The Rise of "Vibe Coding"

The most transformative consequence of Software 3.0 is the radical democratization of creation. Karpathy coins the delightful term "vibe coding" [00:31:07] to describe the act of programming through natural language. You don't need to know Swift to describe the "vibe" of the iOS app you want to build; you just describe it, and the LLM handles the syntax.

This opens the door to a world where domain experts—doctors, lawyers, scientists, artists—can build the tools they need without a traditional software engineering background. However, Karpathy astutely points out the "last mile" problem. While the core logic can be generated through "vibe coding," bringing a real application to life involves messy "devops" tasks: setting up authentication, integrating payments, deploying to a server, and clicking through countless web UIs [00:32:30]. This manual, browser-based work is the current bottleneck, and it points directly to the next frontier: agents.

Paving the Roads for Agents: Building an LLM-Native Web

If LLMs are to evolve from helpful assistants into capable agents that can perform these "last mile" tasks, our digital infrastructure needs to adapt. We must start building for a new kind of user: the AI agent [00:33:55]. This means making our websites and services more machine-readable.

Karpathy proposes several concrete, actionable ideas:

  1. llm.txt: Just as robots.txt gives instructions to web crawlers, a proposed llm.txt file would provide a direct, structured, natural language summary of a website or domain for an visiting LLM [00:34:12]. It's an instruction manual for the AI.
  2. LLM-Friendly Documentation: Documentation needs to move away from screenshots and human-centric layouts toward clean, simple Markdown that is easily parsed and understood by an LLM [00:34:51].
  3. Actionable Docs: Instructions should evolve. Instead of telling a human to "click the 'Create' button," documentation should provide the curl command or API call that an agent can execute directly to achieve the same result [00:35:59].

We also need new tools designed for this era, like the get.ingest tool he mentions, which can flatten a complex GitHub repository into a single, clean text file that an LLM can easily ingest and analyze [00:36:33].

Conclusion: Embracing the Change

Andrej Karpathy's talk provides a clear, structured, and inspiring vision of the present and future of software. We are at a pivotal moment, a "unique time" [00:38:16] where the very nature of software is being redefined. The transition to Software 3.0 is not just a technological shift; it's a paradigm shift that will empower a new generation of creators and fundamentally change how we interact with the digital world. The journey ahead will require us to be fluent in all paradigms, to embrace the "Iron Man suit" model of human-AI collaboration, and to start building the infrastructure that will enable the AI agents of tomorrow.

This is a unique, exciting, and challenging time to be a builder. The very definition of software is expanding, and with it, the definition of who can be a programmer. The change is here, and it's happening now.

💡
Want a great API Testing tool that generates beautiful API Documentation?

Want an integrated, All-in-One platform for your Developer Team to work together with maximum productivity?

Apidog delivers all your demands, and replaces Postman at a much more affordable price!
button

Explore more

Top 10 Best AI Tools for API and Backend Testing to Watch in 2025

Top 10 Best AI Tools for API and Backend Testing to Watch in 2025

The digital backbone of modern applications, the Application Programming Interface (API), and the backend systems they connect to, are more critical than ever. As development cycles accelerate and architectures grow in complexity, traditional testing methods are struggling to keep pace. Enter the game-changer: Artificial Intelligence. In 2025, AI is not just a buzzword in the realm of software testing; it is the driving force behind a new generation of tools that are revolutionizing how we ensur

21 June 2025

Why I Love Stripe Docs (API Documentation Best Practices)

Why I Love Stripe Docs (API Documentation Best Practices)

As a developer, I’ve had my fair share of late nights fueled by frustration and bad documentation. I think we all have. I can still vividly recall the cold sweat of trying to integrate a certain legacy payment processor years ago. It was a nightmare of fragmented guides, conflicting API versions, and a dashboard that felt like a labyrinth designed by a committee that hated joy. After hours of wrestling with convoluted SOAP requests and getting absolutely nowhere, I threw in the towel. A colleagu

20 June 2025

How to Install and Configure MongoDB MCP Server

How to Install and Configure MongoDB MCP Server

In the ever-evolving landscape of software development, the integration of Artificial Intelligence is no longer a futuristic concept but a present-day reality. AI-powered tools are rapidly becoming indispensable for developers, streamlining workflows, and enhancing productivity. Recognizing this trend, MongoDB has introduced a groundbreaking tool that bridges the gap between your database and AI: the MongoDB Model Context Protocol (MCP) Server. This tutorial provides a comprehensive, step-by-ste

20 June 2025

Practice API Design-first in Apidog

Discover an easier way to build and use APIs