1% better

Why AI Can Write Code But Can’t Keep It Running (Yet)

Pay attention to which problems AI solves reliably and which ones it doesn't, then design your workflow around that boundary. When using coding agents, front-load your own judgment: write a detailed design doc, review the architecture yourself, verify that the algorithms make sense, and only then l

58m

Summary published by , updated .

A16Z

Key Takeaway

Pay attention to which problems AI solves reliably and which ones it doesn't, then design your workflow around that boundary.

When using coding agents, front-load your own judgment: write a detailed design doc, review the architecture yourself, verify that the algorithms make sense, and only then let the agents build. Reserve your attention for the parts where the system's behavior depends on real-world conditions that no model was trained on.

Jad Naus argues that AI works well when the solution space matches its training distribution, as with code generation. When the answer depends on live system state, rare failures, or distributed human knowledge, the model needs a different role: running structured experiments rather than predicting outcomes directly.

Episode Overview

How far can AI go once it moves beyond generating code and has to operate software in the real world?

Martin Casado, general partner at a16z, and Jad Naus, CEO of Grepper and a former systems engineer, work through that question using their shared background in distributed systems. Jad runs a 10-person team that ships production infrastructure with heavy AI assistance, and the conversation turns on what that experience reveals about AI's limits.

  • AI and coding: Strong engineers get dramatically more leverage from coding agents; a project that once took six months can now take ten days, but only when the engineer can decompose the problem and verify the result.
  • AI and operations: Running distributed systems involves unpredictable workloads, rare failure states, and knowledge distributed across teams. Jad's approach flips the standard AIOps model: detect anomalies first with a predictive layer, then let an AI reason through possible causal chains.
  • The broader boundary: Both speakers argue that AI performs well when its training distribution matches the solution space, and struggles when the answer requires simulating or directly experiencing the physical world.

Grepper is an observability cost-reduction and reliability platform; AIOps refers to using AI to assist with IT operations and incident response.

Main Insights

1. Strong engineers get more leverage from AI, not less experienced ones

It might seem that AI tools would narrow the gap between junior and senior engineers. Jad's experience running a small team building distributed systems points the other way.

The more complexity an engineer can hold in their head, the more effectively they can direct an AI agent. Someone who understands distributed algorithms can decompose a hard problem, explain the relevant constraints to the model, verify the output, and catch the places where the model optimizes the wrong thing. Someone who can't do that gets stuck earlier.

Jad describes a query optimization task where the model initially saw no problem with inefficient code. It took his understanding of conjuncts and repeated terms to give the model a useful starting point. The AI then built hypotheses and iterated, but only after a human framed the problem correctly.

2. To use AI on operations, detect the change first, then let the AI reason about it

Most AIOps systems start from a lagging indicator: a metric spikes, an alert fires, and the AI tries to trace backward to a root cause. Jad argues that backtracking through a complex distributed system this way rarely works.

Grepper's approach runs the other way:

  1. A predictive model scans logs continuously and flags patterns that are new or out of norm.
  2. That signal goes to an AI, which then reasons forward: where does this message originate in the code, has it appeared before, what causal chains fit the data?
  3. The AI runs structured hypotheses rather than trying to predict system behavior from first principles.

The AI's job is to execute a debugging workflow, not to model the full state space of the system. Jad notes that in a few cases where his team ignored an early signal, the issue became a production incident.

3. AI works well when the solution space matches its training data, and struggles when it doesn't

Martin offers a clean frame for where AI reliably adds value: when the distribution of possible correct answers is the same as the distribution of data the model trained on, results are strong. Code generation fits this description well. Generated images fit it well.

Operations does not fit as neatly. The failure states of a distributed system are heavy-tailed and exception-driven. There is an enormous number of rare states, they are not well represented in training data, and the knowledge needed to resolve them is often distributed across people rather than written down anywhere.

Self-driving cars are a useful comparison: Sebastian Thrun won the DARPA Grand Challenge in 2005, and the field still required roughly 20 years and $170 billion to reach unit economics worse than Uber. Solving problems grounded in the physical world takes much longer than solving problems grounded in digital artifacts.

4. Front-load your own judgment before handing work to an agent

Jad runs three or four Claude Code sessions simultaneously and ships large pull requests with a 10-person team, but the process is not simply prompting and waiting. Before any agent starts building, he writes a design doc, reviews the architecture himself, checks that the algorithms are sound, and verifies how the PRs relate to each other.

Only after that review does he tell the agents to proceed, sometimes spinning up a second agent to act as a tech lead reviewer that questions the first agent's decisions.

Skipping that front-end review produces code that is messy and hard to integrate. The human judgment that makes agent output useful happens before the agents start, not after.

5. Some problems get easier when you redesign the environment rather than the algorithm

Martin and Jad point to a pattern across the history of systems engineering: when a problem seems intractable, the solution often turns out to be constraining or restructuring the environment rather than building a smarter algorithm.

Adaptive routing algorithms that responded to live traffic produced oscillations, so engineers over-provisioned bandwidth and used simple equal-cost multipath routing instead. Automated warehouses worked once the physical layout was redesigned around what robots could do.

The same dynamic may shape where AI in operations succeeds first. Rather than training a model to handle every possible failure state, teams may find it more practical to instrument systems more thoroughly, make state more visible, and reduce the number of hidden variables the AI has to infer.

Frameworks or Models

Signal-first AIOps: detect the change, then reason about it

Most AIOps systems start from an alert and try to trace backward to a root cause, which Jad argues rarely works because backtracking through a complex distributed system is too difficult.

Grepper's approach works in the opposite direction:

  1. Scan continuously. A predictive model processes the full log stream and flags patterns that are new or statistically anomalous.
  2. Surface the signal. The anomaly is lifted to an AI agent before an incident fires.
  3. Reason forward. The AI generates possible causal chains, checks whether they fit the observed data, and decides whether the signal warrants investigation.
  4. Run experiments when needed. For questions the model cannot answer from the data alone, it triggers targeted experiments rather than guessing.

The key separation is between the predictive model (which detects change) and the reasoning model (which interprets it). This keeps each component doing what it is suited for.

Notable Quotes

"The dirty secret for the longest time of running a distributed cluster was just human beings managing it."

Martin Casado

"AI can now write remarkable amounts of production code. But writing software and running it are two very different problems."

Martin Casado

"The question I think is maybe about complexity. And to what extent can you take the things that you've described that are operational and convert them into something that an AI can reason about?"

Jad Naus

"The world that the AI lives in is all digital and this is the actual world and those things are not necessarily the same."

Martin Casado

Action Items

Suggested exercises inspired by the conversation.

  • 1
    Write a design doc before opening an agent session

    Before asking an AI to build anything substantial, write out what you are trying to accomplish, how the components relate, and what the performance or correctness constraints are.

    • Describe the algorithms or logic you expect.
    • Map the relationships between the parts.
    • Identify any access patterns or operational constraints the model will not know on its own.

    Review this doc yourself first. The agent's output will only be as good as the specification it receives.

  • 2
    Map where your AI tool's training data matches your problem

    For a current project, ask where the solution space actually comes from.

    • If the answer lives in code repositories, documentation, or other digital artifacts, AI assistance is likely to be reliable.
    • If the answer depends on live system behavior, rare failure states, or tacit knowledge held by people, plan for more human involvement and more experimentation.

    This distinction can help you allocate review time and catch over-reliance early.

  • 3
    Run a signal-first experiment on your incident workflow

    Instead of starting from an alert and backtracking, try reversing the sequence on a low-stakes system.

    1. Set up continuous log scanning that surfaces new or anomalous patterns as they appear.
    2. When a new pattern appears, have an AI describe possible sources and causal chains before any alert fires.
    3. Compare how early you catch issues versus your current alert-driven approach.

    The goal is to find out whether earlier detection changes how much backtracking you have to do.

  • 4
    Identify a workflow where redesigning the environment beats improving the algorithm

    Think of a process that feels hard to automate or optimize in its current form.

    • Ask what constraints or hidden variables make it hard to model.
    • Consider whether changing the environment (better instrumentation, cleaner interfaces, reduced state space) would make the problem tractable.
    • Compare the cost of that redesign against the cost of building a more sophisticated model.

    This is the pattern behind automated warehouses, simple routing protocols, and over-provisioned RAM.

Go deeper

Full Transcript

Read or copy the complete episode transcript.

The world that the AI lives in is all digital and this is the actual world and those things are not necessarily the same. When we started doing AI for coding, it was autocomplete. Nobody really knew to what extent you can actually build complex software using AI. And then it basically broke through the expectations because we were able to model more and more complexity in the system. I just don't know if operations is constrained in the same way. Where is even the data to learn how to build a system that understands all of the operations? My assumption is that we have all the data. The question I think is maybe about complexity. And to what extent can you take the things that you've described that are operational and convert them into something that an AI can reason about? The dirty secret for the longest time of running a distributed cluster was just human beings managing it. Do you think we're at a spot where you could use AI to run one of these services? I think that there's enough to be able to... AI can now write remarkable amounts of production code. But writing software and running it are two very different problems. In this episode, A16z general partner Martin Casado sits down with Grepper CEO Jeb Naus, a systems engineer Martin first met when they were both at Stanford, to ask what happens as AI moves from coding into operations. Jad explains how his 10-person team uses coding agents today, why he thinks the strongest engineers are getting even more leverage from AI, and how work that once took months can now take days. But the harder question is what happens after that code shifts. Production systems face unpredictable workloads, failures, and an enormous number of possible states. Martin and Jad debate whether AI can learn to troubleshoot those systems by detecting what changed, forming hypotheses, and running experiments, or whether operating in the real world is fundamentally harder than generating code. And that leads to the bigger question behind the conversation. How far can AI go when the answer isn't already contained in the world it was trained on? Jad, thanks for joining me on the podcast. For those of you who don't know, Jad is the CEO of Grepper, but also we went to grad school in the same group. And when I first met you, we had a new student. I walked into the office and there was a motorcycle helmet and a pack of Marlboros. I'm like, this guy must be unbelievably cool. So my question is, what happened to all your coolness? Question number one. Maybe just for context, maybe give a quick overview of your background. So just for those that are listening, Jad is one of the best systems thinkers I know. I love talking to him. We're going to go kind of do a deep dive of engineering from a systems perspective and how AI is impacting us, especially when it comes to things like operations. But just to ground it, maybe a bit about your background? Sure. So you met me at one of the peaks in my coolness. Yeah, you're very cool. Motorcycle and Marlboros cigarettes. I remember thinking, I'm like, wow, are cigarettes even legal? It was like so discordant. I remember Nick seeing me one day smoking outside of Gates and looking at me and going like... Nick McKeown is our advisor. Gates was the building. Actually, one of my favorite things, do you remember Balaji Prabhakar, the professor? Of course. My favorite thing about him is that he smoked. He's like the only professor. I just thought it was great. Just to be clear, I don't smoke anymore. No, too old, too middle-aged for that now. But let's say, so I went to Stanford with you. You were always the guy I had to look up to. And you're like, hey, this is the guy I want to be when I grow up. Because I started four years before you did. And so you were four years ahead of me. You graduated a while ahead of me. You went and started Nicira. I stayed and stuck around, worked more on OpenFlow, helped build a bunch of stuff on the hardware side from a security perspective. Actually, one of the most fun projects that I worked on there was, I built the first set of SHA-3 implementations that people were considering using. And I built them in hardware to kind of show whether they work or not. And whatever for one of my projects for my thesis. That was fun. And then I decided after a while that I actually don't like networking because it's just about moving bits from one place and putting them in another place. How hard can that be? He has to either be philosophically aligned that it's deep or not. Most people assume it's not. I think it's very deep. I mean, there's something interesting about it. But ultimately, to me, that's like, it's not. Yeah, it doesn't do it for you. Yeah. And then I actually went and did a postdoc at MIT with Nikolaj Zeldovich, who's also amazingly deep and super smart. Yeah, he's phenomenal. Yeah, he's phenomenal. I did some application security work at the time, started a company based off some of the research I had worked on with Ramesh Chandra over there, who was a PhD student at the time. And ultimately, technology was too early. So what we did was, well, ultimately, a lot of the work was actually really Ramesh's. And his PhD was on, well, hey, if you get attacked and you get exploited, can you recover from that by rolling back the state of the whole world that's related to that application, and then roll it over on top of a patched version of the application to remove the exploit? Yeah. And so we started doing that in the real world. And we're like, that sounds really hard. It's actually kind of relevant to what we're talking about. Yeah. To what extent can you actually bound the state for operational systems, which I would argue is very hard. Yeah, we almost got it working. Almost. I feel like for all long-tail disciplines, this is why people get in the fly track for smart people. It's like you see a bit of progress, but you're asymptoting. But anyways, I digress. Yes. So then I joined AppDynamics. I was there for about three and a half years. They went from about 200 people to 2,000 people. Got acquired by Cisco. I was a Cisco employee for one day. And then you're like, Jad. I know. You come work with me. Come do this VC thing with me. I'm like, what the f— Yeah. What is VC? I'm an architect. I do engineering stuff. Yeah. He's like, great. Yeah. The less you know, the better. Yeah. Literally what you said. It's true. And then the first day I started here, you said, slow down. It's actually people that move from actually an operating role to VC. It requires a lot of reworking the brain. Yeah. Just like going from a PhD to operating, by the way. You have to undo the brain damage. This is what real world is like. I know. And then I stayed here for a couple of years. Did a bunch of work with you. It was a really fun time. Worked with a lot of great people like Jennifer, Mark, and Ben. Satish. Satish. Matt was here when I first, almost towards the end when I was leaving. Yeah. And then joined Apply as their chief product officer. Helped them build their engineering product teams. Kind of scaled from about like 15 people to over 90 across product, engineering, InfoSec, and design. And after about three years, I kind of had a head for each one of these pieces that I owned. And I kind of was sitting around just coordinating and doing meetings all day and wanted to go do something else. So left and then started talking to a lot of engineering leaders about the problems that they're facing and what they're trying to do. Everybody at the time, this was in 23, everybody was saying, hey, we're trying to really spend. And I asked them, what are you spending money on? Everybody would say, first was infrastructure and then observability. And so I started looking at that problem, trying to understand like, why do people think it's too expensive? Turns out there's a few things. First, people were spending somewhere between 5 and 20% of what they spend on infrastructure on observability. But ultimately, what they were really trying to spend it on was reliability. They wanted to buy reliability. Of spend? Like predictability of spend? Reliability of their infrastructure and applications. I see, I see. And so they were putting money into observability as a proxy for reliability. And for the longest time, the more money you spend, the more reliability you got out. But as architecture has changed and turned into microservices that are much smaller, that are much more vertically integrated, the volume of data that's being collected at every layer expanded, there was much deeper market penetration for observability and kind of the volume of data that you're collecting and the cost of observability was actually starting to grow faster than the units of function that you're outputting. And the marginal rate or like the marginal increase in reliability for every additional dollar you're spending on observability was just flattening out. And so that's why people thought it was expensive. But people were still willing to pay 5 to 20% on reliability. And so the question was, can we actually solve that problem and bring back that increase in reliability, that marginal increase in reliability, not necessarily by spending more money on observability, but some other way. And so the thinking was like, okay, great. If we can figure out what is the signal, what is the noise, can we actually turn the observability data that you're collecting that's mostly fluff and mostly insurance at this point and do that kind of extraction of information upstream, do whatever you need upstream and be able to ultimately massively reduce the cost of observability downstream. And if you can extract that signal in real time upstream, then you can, one, reduce the cost, but two, you can now feed it into other systems and use it for driving reliability operations afterwards. And the distance at the time, there was something that was called AI coming into the picture. And we're like, well, great. If we are in the data stream and we're extracting the signal, then we are in a strategic position to feed that to whatever is going to come in the future because that's going to be necessary. And so that's what we built. And so Grepper helps companies. We started with helping them reduce their spend on telemetry massively. And so you put us in the data stream, plug and play, pass the data through, reduce your cost by 90%. And now we're building out that second layer where we're feeding those signals into the AI layer that's now going and troubleshooting and figuring out when things are going wrong and fixing them. I'd love to just talk through kind of your experience on how AI is changing dev generally, which is like a lot of people could ask this question, a lot of people answer, but I just feel like you're kind of like the engineer's engineer. You've been an architect, you've run product, you've run engineering teams. How big is your company now? How many people? We're a ton. Still pretty small. You're building a lot of software with a relatively efficient team. So maybe just a high-level sketch on if you're a senior engineer like you that has architectural experience, what sort of gains do you think people are seeing? Maybe talk through how you use AI, what gains you're actually seeing, what is the stack, what is your process, how you think about it. So maybe I can give you a historical view of what's been happening in terms of running a team and so on. And so when we first started AI, we're still kind of auto-complete. I remember at the time we were using Copilot and IntelliJ, and we're like, oh my God, look, it auto-completed these tests. We're like, yeah, but it's just auto-complete. And very rapidly, things started evolving. And what I've noticed is that really good engineers are able to somehow put it into their workflows in a way where the AI starts training them. Oh, interesting. In terms of how to talk to it, how to get the best out of it. Do you think that's model-specific? Do you learn how to use AI writ large, or do you get efficient at a given model? I think there's some nuances that different models bring. I'm sure looking at your tweets, you've... There's nuances, but there is a way to work with AI. I think that there's also a way to work with different harnesses. And I think we tried, for example, using OpenCode or different harnesses or using Codex versus Claude. Claude Code, different ones have different ways of managing context or thinking through problems or when to spin up the right sub-agents and what to tell it, the kind of prompts. For example, with Claude Code, I find that if I don't tell it, don't spin up 20 Fable agents to do basic research, it'll go and spin up 20 Fable agents to do research and burn all your tokens. A lot of these things, you start learning about the harness and the models and how they interact with each other and then how they can interact with the rest of the world. But I digress. In my mind, this is kind of what I started noticing is that some people were adapting and learning and kind of doing it that way, and others weren't as adaptive. And then as we started hiring more people into the team, that disparity between okay engineers and really good engineers just multiplied 10x. Can you predict who will... Could you predict who would be good? Was it like good engineers got better and bad engineers didn't, or was it really okay? So if you're a good engineer, you're just a better good engineer. It's not like there's some bad engineers who all of a sudden became good engineers. No, no, no. It always ends up being like you have to really understand ultimately the setup, because the more complexity that your brain can handle, the more you can break down the tasks and kind of assign them. I think this might actually be non-consensus opinion. I mean, I do hear it sometimes, but the idea that the better engineers are much better and those aren't are less. And you found this to be pretty universally true? I mean, look, my team is still small. We haven't done it across 100 people. In my experience, for the things that we do, that is the case because we build distributed systems and distributed algorithms, and your brain has to handle the complexity because AI doesn't do it. And so for the problems that we solve, none of the models can actually think through the things that we do. For example, we have a query translation layer. We were just talking about query optimization. And so you have to really understand the semantics of the query. and how to get to the semantics of the query and then explain it to the model and then have the model go and build the translation layer, let's say. Yeah. So for the people that are listening that may not be so deep in computer science, what do you mean by semantics? So semantics are really the meanings of things. Like the semantic of a dog, of the word dog, is the animal that actually walks on four legs and barks. And the syntax is the fact that it's just a three-letter word and it has three different letters, the shape of the word is different, and that shape can be different between different words, but different words can actually also mean the same thing. And so they might have the same semantics, but they might have a different syntax. So a dog and a puppy might be slightly different semantics. They refer to the same... But they still call it a dog. And just for computer science, the way that I describe it very simply is syntax. You know, it's like the characters you type, and semantics is what the machine actually does, right? And so it's like the actual runtime properties of the system. So you did computer science, I did electrical engineering. You became a computer scientist. And I became a VC. That's the problem, I see. Anyways, for people that are listening, I just want to understand, there's the actual syntax which is writing the code, and then when you're talking about syntax, you're just talking about the code itself. Then when you talk about semantics, you're literally talking about you have a machine that interprets that code, whether it's compiled or not, and that machine does something, and semantics is what the machine actually does. And these things are clearly very different, right? So for example, some semantics you can't even derive by looking at the syntax. You don't know what the machine is going to do because whatever. You kind of have to test it. You have to test it. And it can go all sorts of different ways when you test it. And a very classic version of this is SQL, for example. You can write some SQL query, but how it actually performs, how long it performs, depends entirely on what the schema looks like or what the data looks like in the database, etc. But I would not call that semantics, though. I would call that performance characteristics. Oh sure, yeah. I would say the semantics part of that would be depending on what the shape of data is or what the configuration, you might end up with different semantics because, like you said, you want null to be treated as false. And you won't know that unless you also know the configuration of the system and so on. Okay. So for the purposes of this conversation, I think we should just say that there's the actual code you're writing and how the system behaves, and we'll call the second one semantics just so we can have a conversation. What do you want to call it? We need to dive into the semantics of this and make sure they're clear. That's right. Because there's a lot of— Okay, okay. I know. Let's keep it at eye level. Okay, so let's go back. Actually, before we started the podcast, you and I were just shooting the shit, and you were talking about how you can do projects now that take a week where in the past it would take a team in months. Can you maybe walk us through a little bit about how you personally kind of— We'll do projects and then kind of the gains that you see. So a little bit about your stack and your process. So I use Cloud Code. I'm going to say something that's actually pretty funny, but I use Windows. What? Wasn't that created by this company Microsoft? And I use WSL. So I use Linux for everything, like development and so on. There's no like X or UI for it. I just use the command prompt. How do you use Windows? Because I just never really wanted to learn the keyboard shortcuts in Macs. Are you a gamer? Is it like you tab over to Counter-Strike or whatever? Like, why else? I'm not hating on Windows. I mean, I used it in the 90s. Really, like the only reason is I never wanted to learn the shortcuts. I hate the one-button mouse. I hate the one-button stuff. I hate the number of modifiers you have to type for shortcuts and stuff like that. I just never—I'm like, why? Why waste time? Okay. So I'm like, yeah, I'll install Linux. And so WSL, I use Cloud Code. What is WSL? That's Windows Subsystem for Linux. So they actually run the Linux kernel within Windows in a hypervisor and provide you access to it. It's great. They've done a great job. Great. Windows WSL. And Cloud Code. And like my latest—the latest thing that I do is I use Opus 5.5. I tell it— Which is a really good model. It's an amazing model. Really good. And it's—I've shipped in the last two weeks these massive 20 PR things that I just dump on my team to go and review. And they're like, oh. I'm like, don't worry about it. It's horrible. It's like the new reporting structure. Like the people below review the PRs for the CEO. Is that where we've become? I was like— No, everybody's like writing the same thing. Oh, everybody does that? So you review other people's PRs too? Yeah, I review my people's PRs. Everybody's like just—PRs flying around. Frowning in PRs. Yes. But the thing that has changed a lot in the review cycle is that we started much more focused on—to focus much more on the tests. Sure. And doing things like golden expectations and are they shifting in different ways and so on. Yes. But Opus 5 and like the trick that I've recently learned about is that instead of using sub-agents, you basically tell Claude to spin up command line sub-agents because those maintain their persistent session over time. And so you can have it spin up these agents separately. You can actually run them from other sessions and so on. And that allows you to be much more efficient from a context perspective. How many agents do you run? How many? How many? How many what? Sub-agents. Typically I work on like three or four session windows at the same time because I found that more than that, I just start losing context between the different things because they start finishing faster and then they wait. And do they interact via the—do they interact via the PR? Is that how it works? The sub-agents? Yeah. Like together? Yeah. No, they interact directly through the command line. Oh, wow. Okay. Yeah. I asked the main thing that does the implementation to have a tech lead reviewer and they basically ask it questions. Does this make sense? Does this not make sense? Review my PR, et cetera. And so they iterate on these PRs together. And then they have a PR doc that basically they work on with a design doc and everything in it. The first thing that I do is I ask that agent to do it, ask the tech leads to review the PR doc. I go through the PRD. I go through the design doc, make sure it makes sense, go through each piece in detail, make sure that all the algorithms work and all the pieces work, the division of labor works, the division between PRs and their relationships work. And then I tell it just go start doing it. Figure out if there's like paralyzation that you can do and then spin up other agents to actually go do them. But ultimately, you have to kind of put it all back in one stack and be able to go through it as a human one by one because otherwise it just gets messy and bushy and you can't really tackle it. So, can you give a sense of like a project you do now versus, I don't know, six years ago, like time differences? So, the latest project that I shipped was something like… By the way, this is like, to be clear, this is production code. Yeah, this is production code. So, whatever. The statement you're about to make is the gains that you get for like shipping production. So, I'll give you an example of the last. The last PR that I worked on or like the last set of PRs was what we call auto-promotion in a data lake. Yeah. So, in a data lake, you store all the data. And typically, the data is column-oriented, parquet files and iceberg and so on. And when you get data from logs, they're semi-structured, they're arbitrary columns and so on. In order for it to have the best layout of the data and to be able to query it efficiently and fast, you kind of… The ideal situation is that every field in the log event becomes a column that you can filter on independently of the rest of the rows. And so, we call that auto-promotion or shredding. Sure. And doing something like that is incredibly complicated, right? Like you have to go and figure out how does the metadata system work? How do the commits of the metadata system work? How do you coordinate across different writers and so on? And that took maybe about 10 days. In previous days, that would have taken maybe about six months for a single person. Wow. And was this just you? That was just me. Yeah. It is insane. Yeah, sort of like factor of 10, factor of 20 improvement. Yeah. For production code for new products. Yes. One question I always have is I can very much understand… These models are trained on all the code ever written, let's call it. So, I can understand why they're able to generate code, which is the syntax piece. But then, you're doing core infrastructure. Let's say you're doing distributed algorithms. The properties, how it handles itself when it's running is very, very different. Often, you just can't even look at the syntax to know what's going to happen. Let's say you're writing some distributed system. And then, the way that it will perform, the availability, the correctness even, is going to be dependent on what the workload looks like. What are the access patterns? What is the traffic? Are you talking about the performance aspects of it, though? Or are you talking about the semantics? Availability, you may have to lock things so it's not available for a period of time. I'm talking about correctness. Maybe you've decided to do eventual consistency. And so, if you do a read, it's not going to be consistent because there isn't a lock. And then, performance, maybe you cache, maybe you don't cache. These are all trade-offs in the design space. Unless you know the access patterns, you won't know how it's going to perform in these things. And so, I just think to myself, okay, I've got an AI. I can understand how it will write code for a generic distributed data store, for example. What I don't understand is how it will know to make the trade-offs needed because it doesn't even know what the access patterns are. And it's not like these things can... Where's even the data to learn how to build a system that understands all of the operations? Today, we rely on human beings to manage clusters and to optimize databases, etc. And so, can you maybe talk about how you think of... I get the writing the code, but you have these deep operational systems. How do you apply AI to that problem? And A, have we made any progress at all, or is this still an outstanding problem? The question, I think, is maybe about complexity. And to what extent can you take the things that you've described that are operational and that happen in production and convert them into something that an AI can reason about? Exactly. How can an AI reason about the system? Well, A, first off, to what extent do you see that it writing the code that it can actually predict what's going to happen? How good of a job does it do at that? And the second one is, okay, now how do we make it reason about that? So, let's ask the first one. If I use your method, the JAD method of writing code, and I built some big distributed system, How often does it actually get it from performance correctness? How often is it actually operationally pretty sensible? And by the way, I work on this distributed Gaussian splat renderer, and I would say it's shit. It's horrible. Because you've got millions of Gaussian splats that you've got to page in and out and stream, and it just totally depends on the running system, and so none of the models do a good job. So, in our world, what I've found is that we've defined basically really well what performance benchmarks look like and how the system should run, and what the constraints of actually building within our stream processor look like to get the right performance. But every once in a while, it'll do... My latest project has been all about query optimization and query performance. And so I was like, hey... It's a classic example of something that's hard. I was like, we are basically generating code that corresponds to SQL, and we want to run it in a pipeline. And we're like, okay, well, you're generating shit code. Fix it. And it started basically going through, and what it didn't realize was that it wasn't actually doing initially any optimization on the code. It's like, oh, it's fine. It looks like... What's the problem? And I said, well, look, there's these conjuncts over here. You're doing and, and this particular term is repeated, and it should have been taken away. And then it's like, ah, okay, let me figure this out, and so on. And then it basically went on a thread to try to figure out what are all... It built a bunch of hypotheses around what are all the things that it can go and optimize to make this better. But ultimately, because it was able to ground that in performance benchmarks, and I was like, look, here's a data set of the queries and what the users are asking and so on. Go work on it. And so it can basically do a relatively good job that way. But when it comes to saying something around like, how much memory should I give the system? It has no idea. And that has to come from actual experiments. run in production. And so what I think, actually, these systems seem to be doing well at this point, in terms of operational stuff, is that it knows that, hey, I probably won't be able to answer this question. Let me run an experiment somehow and come up with that information. But of course, when it comes to operations, like production systems don't behave the way that you expect. And ultimately, that's why incidents happen. So have you found, or are you doing any of the AISRE stuff, where you actually have a running system that has logs and you feed it to an AI and that kind of helps you tweak it? Yes. And how well does that work? So we're just, because anecdotally, my experience with other people doing this has not been that great. The reports I've been getting anecdotally have not been great. So a couple of things. The first one is we're doing that for both operational pieces and for security. But the way that we're tackling it is not the way that other people are doing it from an AISRE perspective. A lot of those systems basically start from a lagging indicator, like, hey, this metric spiked or this alert happened. Go back through a very complex system and try to determine why that happened. Right. That's why those don't work, because backtracking into a root cause is actually very problematic. And so instead, what we're doing is doing it the other way around, which is, can we actually start by figuring out if there's something different in your environment that has changed? Like, can we do a large-scale clustering, a large-scale kind of figure out a needle in a haystack, something that is different? Oh, so you're assuming that it was working fine before and now it's not, so something happened. But it could be just like a change in normal traffic patterns, right? That's fine, too. That's fine, too. And so the thing that we're looking at is like, when things go wrong, usually the system will tell you something went wrong somehow, right? If it's working fine and scaling as normal, nothing will happen. But sometimes you'll see some message which says error connections ran out or memory exceeded or resource buffers emptied or some kind of indication, like some kind of really early warning, like something happened. And that's the one message that we want to capture and then go from there and see, is that an actual problem that we need to investigate and deal with? So how does it do? So far, it's doing pretty well. I mean, we're running it internally in our systems. We ran it in a couple of our customers' environments. And in the cases where there was a couple of cases where we ignored it, and those turned into production incidents. Really? Oh, wow. Yeah, it's kind of just from an intuitive perspective, like, I can understand how these models understand syntax, because again, like I said, they're trained on all of the code ever written. And it just turns out that it covers a lot of useful cases. It's hard for me to actually even think of a bound on the actual operations of software, right? I mean, I feel like, you know, this is a ridiculous statement, but it's actually kind of true. It's like every time you add a bit to a program, the state space of like, what it can do operationally increases by a factor of two. So you very quickly get to like, you know, like more, more, you know, states than atoms in the universe. And arguably, this is why. This is why like product approaches to operations have never really worked, right? Like the chaos engineering stuff never really worked. And we've always kind of relied, you know, actually the dirty secret for the longest time of running like a distributed cluster was just human beings managing it. So I'm just wondering, and then, you know, and then in order to like, even train an AI to do it, you have to have like, enough data and enough configuration. So like, I'm just kind of curious, like, do you think we're at a spot where you could like, use AI to run a distributed cluster or run one of these services? Or do you think that's still on the come? I think that there's enough to be able to have it start that loop. Right? Like, I mean, ultimately, like, I think that I agree with you. Like, there's infinite space. There's a lot of different things. But ultimately, humans also operate on runbooks. And like, sure, there's a lot of things that happen in production that you ultimately need some human to go and like, hey, this is too complex. There's like some state that's hidden that I know of, because I talked to this other guy, like at the water fountain the other day. And he told me about this thing he deployed. Like, there's a lot of stuff that potentially isn't visible in the state of the system. But I'll argue that like, the goal of what we need to be able to do is to like get to have enough telemetry and enough understanding to like, make everything really visible from a hey, here's what the system looks like. Here's how it's working. Here's like whatever. And then I think ultimately, most of the issues that end up really showing up in operations, assuming you have the system previously running OK, is due to some kind of change. And if you're able to just focus on the goal of figuring out what the change was and like, what and kind of going through... Sorry, can I just ask a stupid question on this, which is, I never think of these generative models that are good at predicting stuff. And it sounds like you're talking a lot about predictive modeling, like you predict a change or you baseline and you detect an anomaly. Like, am I thinking about this wrong? No, you're not. Because the goal is not actually having the agent try to predict, but have it get a signal that something changed deterministically. That's something I see. I see. Yeah. So there is a separate model that does the predictive stuff and then that will alert the AI? Yes. OK. Yeah. So like what we do is we basically, you give us your petabyte of logs per day and we scan all of them. And every time we see a new kind of pattern emerge in your logs, a new thing that we haven't seen before, we lift it up to the AI. I see. So that's a predictive model that actually does what predictive models are good at, which is determining out of norm things or whatever, whatever. Exactly. And then it goes to the AI and the AI kind of uses that to figure out what to do. Exactly. So the AI basically can then reason and drive that down. So it can say, oh, this message, let me actually look at the code and figure out where it comes from and understand what the code does. Let me see if it's actually happened before. Let me see. So it basically runs all these hypotheses and heuristics to try to understand, does it make sense? Is it meaningful in some kind of way? And then it can determine what to do with it. So how far away do you think we are for, let's just go back to query optimization, not like logs or something like that. So how far away do you think we are from having an AI basically do the job that a human used to do when it comes to query optimization? I think very close. Really? Yes. Wow. I think... Running a distributed cluster. I mean, I just think of like, okay, you've got like James Cowling, PhD from MIT who runs a distributed cluster and like if the cluster is down, like the company doesn't work. And then if it's up, it's running. I don't know. Like, are we at the point where you would say that an AI can do that? No, not yet. Okay. I think it's, I think, I mean, I think like, look, very, very simply, when we started doing like AI for coding, it was autocomplete. And nobody really knew to what extent you can actually build complex software using AI. And like when we were looking at it, we're like, ah, like AI is never going to be able to build X or Y or Z or whatever. And then it basically broke through the expectations because we were able to model like more and more complexity in the systems. I just, I just feel like, like, I'm a very simple thinker on this stuff. And to me, these models are distribution in, distribution out. And it turns out like you can actually train on all the code ever created. And it's actually like that manifold is pretty manageable. And I just don't know if operations is constrained in the same way. That feels to me more like, kind of like the universe, like heavy tailed and exception based and power laws and all the tough stuff for these models to learn. But I don't, I don't know. I mean, you're the one that's in the field. So maybe that's not the case. Maybe they're manageable. But I will tell you, the history of systems, as you know, is, is you always want to build a smart algorithm that does the efficient thing, the smart virtual memory management, the smart congestion control, the smart routing. And what do we do instead? Every single time we build, we over provisioning, we know we over provision every time. No, literally every single time. Like, like, remember, like swap memory where you like swap to disk. Dude, if you did that, you were fucked. Like that's it. Your computer was dead. So like, we literally over provision RAM and like routing, you know how many like adaptive routing algorithms are like, we will respond to traffic, but you have oscillations. Like, fuck it. We over provision. We just use ECMP. You know, so I just feel like the history of systems is that you don't predict stuff. You over provision, because you can't. And I feel like, I mean, you know, so I feel like in the operation side, so either we build this, you know, we will build the systems up front that are over provision, so you don't have to like do kind of complex operational stuff. Or maybe AI can do it the way that a human being but I think it's very different than code because you're dealing with like, exceptions, there's not a lot of data, etc. I just feel like a different domain. But I don't know. I'm a VC. I'm just like, you know, I kind of like the reason that I'm more optimistic here is because I live in the world where like, what we do is actually deal with the observable world. Like, I was gonna say, you're the literal expert on it. So it's silly for me to even like, ask you these questions. No, not at all. Because like, in my world, we like, my assumption is that we have all the data. Is that like, we know exactly when like, a new thing happens, or like an exception emerges, or like a workload changes, or like, whatever, like in my world, all of that has already been collected and streamed through and like, Yeah, but the model that is not trained on a grounded source for that stuff, like No, no, you're not. That would be really hard. Right. But the story here isn't like, hey, Mr. Claude, here's a bunch of logs, it's something going on, right? And it has to be much more able to run experiments and kind of dive in and see, like, what are the different shapes of possible causal chains that actually fit in the environment that exists? I see. So yeah, this is what you said before. Now I see what you're saying. You're saying that like, the universe is heavy tailed, the number of bad things that can happen is probably an exception thing. But like, the set of steps used to debug it is a manageable thing. That's what you can teach one of these models and that's what they have. And therefore, if you give it the right signals, it can go through a number of steps to actually constrain this problem. Exactly. Interesting. Exactly. And so it really is taking the role of the human. Because remember, remember the whole chaos engineering wave? Yes. And the reason it didn't go anywhere is like, you're very quickly like, trying to like, you know, reduce like a state space that was atoms of the universe, like super quickly, like it actually makes that manageable. And it was like, the human being that would go through steps that would do that on the actual debugging. And this is what you're saying the AI would do. Yes. Right. So the goal isn't to like, have the model just be like, this is what happens. It's, hey, run through this workflow to determine what happened. And like, we're trying that also on the security side, for example, where like, hey, in security, you have something different changed in your like, statistics, like some behavioral difference in terms of what entities exist, the cardinalities of various things that exist. And so that becomes a perturbation and whatever, the universe. And so we take that signal and we feed it into an AI and we're like, hey, AI, come up with a bunch of possible causal chains that exist and then go through and verify if any of those fit the pattern of the data that we actually see. And so that becomes a much more like, hey, here's a, here's like a, I don't know, like fit this square and to find the peg or like find the hole that fits this peg. And that seems even harder to me because the operations one, the argument is, the system can get in states, into broken states that are kind of like very rare. And there's a lot of those rare states. And so it's just not something that you can, you know, train a model on just because there's so many rare states that can get into that are, that are bad. And so maybe you can reduce that by doing the steps. The security one seems even harder because this isn't just like the natural order of rare states. You actually have an adversary that is trying to intentionally find rare states and intentionally find stuff that you can't do. And so it may be the case that like code becomes solved. It takes a little while, you know, longer to do operations and take a lot longer. Yeah. But like, also like, think about, I mean, I don't know, to me, like the whole world is sort of quantized to a certain extent. The Planck length. Is that what the physicists say? I don't know. I'm not a physicist. The Planck constant. I think there's like, I actually, I literally don't know what I'm talking about right now, but I literally actually think that like, like, like space-time is discretized into a Planck length. But yes, I mean, I agree. Like to a certain extent, what you just said, but for operations and systems in general, like there is a discretization of like the possible states and the paths through them that are possible. Yeah. Right. I just think when you're dealing with. There might be, there might be a ton of them. There might be a ton of them. I'm going to tell you something. Remember Sundar who was in our, in our grad school group? Yeah. Sundar Iyer? Iyer, yeah, yeah, yeah. So I remember he came to me once and he, and he was, he was, he was looking very sad. He's like, Martin, I just had this really sad realization that, you know, if you take any MP3, remember MP3 is like the music for us? Yes. He said, he said, MP3s have a finite, let's say, you know, four minutes, it's like four megabytes, you know, and that means there's a finite number of songs in the universe. That can. No, because, you know, because it's, it's all made of, it's all made of bits, right? And it's four megabytes. And that means you can, you can just enumerate every one of those constants. I'm so, so I'm so sad in this notion of like the, the finiteness of music, right? And literally this is like, we were walking on the dish when he had this conversation and I'm like, motherfucker, dude, you know, you know how quickly you've like overcome, like the atoms in the universe. You haven't even gotten to a cane, right? It's like two to the two to the two to the. Dude, like, what are you talking about here, man? Be happy. Two to the two to the two, four megabytes. Four megabytes! Like, there's so much state, like, be happy. That's effectively infinite, right? It's like, what are we talking about here? So I do think at some level, like, we do underestimate, like, the number of states that, like, you know, systems can get into. And, like, maybe, I will tell you from the perspective of the VC that looks at these companies, the ones that are trying to tackle operations are having a tough go at it. It seems much, much tougher than those that are tackling the code because I think it's a much tougher problem. I, 100%, I agree. It is a much tougher problem. And it's not just because, like, the systems themselves are, you know, there's, like, external loads that are random that kind of happen to you or that, you know, somebody just shipped a new thing and rolled it out into production and didn't tell anybody or, like, there's some state that actually happens when, like, this thing happens and this thing happens and then you end up in a deadlock. It's also because it involves humans a lot more and not just, like, one human who's the coder. It actually also involves... Oh, like, the pools of knowledge are distributed, too. Exactly. And, like, the interactions between, like, what it takes to, like, connect the pieces and put them together. Like, but ultimately, I mean, I think about, like, where AI is and, like, what are the possible futures and, like, the depth and the forward-looking capacity of all the things. Like, I think code is just... To me, it's a microcosm of, like, maybe I'm just too fatalistic. Maybe I'm just, like, too pessimistic about how the world works. And I think of everything as, like, following some kind of probabilistic path. And so to me, like, if we can make it work in code, we can continue expanding that level of complexity bit by bit and kind of adding layers and layers and layers until we can handle those problems of operations. A lot of people say it's not fatalistic. It's the opposite. It's very optimistic, is what people would say. For me, I don't think the universe gives up its secrets that easily. But, like, we'll see. I mean, like, this is kind of the big question. And I would say, as yet, it's not an answered question. No. No. But I don't know. A lot of things that, as humans, we think of as being random or impossible to tackle. Yes. And that's what we saw with coding. Like, you know, initially, like, people thought, like, the possible world of all these things that you can implement in code are kind of limited. And you can't really get a system to potentially understand the full complexity of a human brain that's required. I think, over time, it'll all— It's so funny that I'm actually telling you this, and you're, like, the VC who's looking into the future and being like, no, well, I mean, I'll tell you my view. My view is, like, the study of these models are, you train on data, and either that— I mean, that, you know, the— So you train on data, and that represents a distribution, and that distribution is useful or not. So, like, when you train on language, the fact that it's useful, that, to me, says that humans are so remarkable because they've looked at the universe, which is a very high-dimensional system, and they've reduced it to a manifold that's actually useful for a model, right? Yes. Right? But that's different than the universe. There's a reduction from this high dimensionality to the language that's less dimensional. And I think that code is a reduction of all the operational states of a machine into, like, the instructions that make it run. To me, there's still a disconnect between, like, the instructions or the description and the actual running of the universe and actually running the system. I think we can make gains toward it. But what I will say is, like, you're kind of converging on simulation. Like, there are things that are computationally irreducible. Like, you kind of have to run it to get the answer. You can't just, like, you know, predict it. And so, like, maybe we just are at an event horizon where, like, models will solve anything that you don't have to actually simulate to get the answer from. But why? Why do you have to, like, just think about it in terms of, hey, it'll have to answer the question, like, now as opposed to being able to simulate and – sorry – being able to plan its own execution to gain the information that it needs in order to be able to – Yeah, maybe that's where we're going. Yeah, that's kind of what I'm – Fair enough. Yeah. And I think, like, there's a lower dimensional – there's a lower dimensional space, which is, like, these steps that you would take that we can reduce a whole bunch with AI. And then whatever steps that you need that that can't do, it can create the code to do or it can simulate and do it. And the point that you're making, though, is that, like, hey, look, the model can't actually go and figure out the additional dimensions of the world that we need to go and find to, like, model the universe into its world. Fair. That's probably true. But can it actually simulate a scientist sufficiently to be able to get to that point? Like, maybe. Maybe. Cool. Can I ask you a question? How much of the VC work do you think is something that an AI can drive? My model for VC is it's very relationship driven. So, okay, I just have a belief that markets are actually pretty efficient. And so it's not about, like, finding the company that nobody else finds. I think people all find, like, the right company. I think they're efficient. And then I also have the model of VC that, you know, tech is positive and I'm kind of optimistic about all tech and I don't worry about TAM. And so I think the key is access. It's like raising money, it's access, it's ability to win deals, and it's ability to add value after that happens. And a lot of that is, like, stuff that startups just can't naturally do, like, you know, recruit, you know, big execs or help with that. And so the way that I think about venture, you kind of have to be a human being to do it. It's like, you know, because that's the actual job. So for that, I don't think, like, an AI can ever – if you gave an AI a simulated universe where it could, like, you know, like, whatever, reward hack, like, building trust relationships, fine. But I think that that would have to be – that said, I will say I have seen analysis done by AI that are as good or better than any, you know, generalists I've ever worked with. So for the analysis piece, they're great. But I think this is more an indictment on VC's ability to, like, analyze than it is, like, how powerful the models are. I just think it's all a kabuki show and bullshit. I just think the right VCs are, like, you know, tech is net positive. You know, tech waves always add value. Like, let's find the best company and invest in it. The markets are very, very efficient. And so I just feel like the answer to this question is almost kind of a technicality. Like, my answer is almost a technicality. So how – like, you know, one of the things – you know, I came here, I wanted to ask you this question, which is, like, you know, we started talking specifically about ops. But to me, like, there's this world of AI writing code, which is kind of like this abstract simulation world that it lives in. And then there's the rest of the world. Yeah, exactly. It's like there's, like, this – there's, like, the world that the AI lives in, which is all digital and, like, whatever it is, the training data, the indistribution world, and there's the actual world. And, like, those things are not necessarily the same. They're quite often not. And so the question is, like, to what extent do you need to train an AI to be able to survive in a world? And, like, what are the things that it actually – I don't want to answer that question, like, what do you need to train? But, like, I'm curious about the open spaces. So we talked a little bit about operations. You said, oh, I don't know if it's going to be solved or not. I'm like, yeah, Martina, it's going to be solved. And in my mind, like, there's so many other things. Like, for example, self-driving cars. Like, for a long time, we thought that's not going to happen. But it's clear that it's actually going to be done. And it's going to happen. It's just taking time because of a lot of different things. And so what are the other next stages, the next areas, that you think are kind of, like, lined up right after code? I mean, my sense is, you know, AI is going to continue to take off in a wildfire for a constrained domain, where the solution space is in a constrained domain, right, where the distribution of the solution space is the same as the distribution of the training set. The distribution of the syntax for code is the same as the distribution of the training set. The distribution of the generated images is the same as the distribution of the training set. In those, you know, areas, I think it's going to continue to take off as a wildfire. The domains where, like, the distribution of the solution is the natural world, I think it's going to, you know, have, you know, it's going to be much harder to take longer. And I think the economic equivalency is going to be much more difficult. Self-driving is a great example. I remember when Sebastian Thrun won the DARPA Grand Challenge when I was at Stanford. Remember that? And we were like, hooray! You know, self-driving cars is around the corner. Seriously. And it took 20 years and $170 billion of investment to get to worse unit economics than Uber, right? So that's, you know, so I think that, like, solving, like, like solving real problems where you have to deal with the distribution of the real universe is just much, much harder. And so I view as AI as this general tool. It's a very effective tool. It's one where, like, you have a distribution of data and then hopefully you can apply that to, like, you know, some problems. And we're going to apply it to a bunch of stuff. And I think economic equilibrium is going to determine what works and what doesn't work because I think it's a very, very general tool. It's like a universal function approximator. And wherever that nets out, I mean, again. You know, one of the things that I said earlier was, like, how AI was training humans to, like, use it. Yeah. And I very often think about, like, you know, some of the problems that seem intractable is because the world is kind of that way. Yeah. And then we're trying to fit AI or the tools that we're building to manage the world as it is. Yeah. But in some situations, we actually tend to change the world to fit to what we can actually do. Oh, 100%. Of course. I think this is the story of robotics. Yeah, exactly. It's literally the story of robotics, yeah. The automated data warehouse. And so the question, like, that always comes to my mind, like, when we were looking at these data warehouses and whatever, and, like, the only one that worked was the one where it was like, you know what? Just automate the whole fucking thing. Yeah, yeah, yeah. And I wonder to, like, what extent, as we kind of improve or change how we – or kind of expand the domain of what we want to solve with AI tools and so on, that we actually start modeling the world or changing the world and the things that can actually happen to fit what AI needs it to look like. Yeah, I mean, listen, I think that right now a lot of AI just operates in the digital world. Yeah. And for that, like, literally the solution set is the same distribution as the training set. Yeah. In a sense, and so that's fine. And I think that, again, like, in the case of equilibrium, like, I think, like, when you're dealing with the real world, like, you can solve any problem you want. It's just a matter of, like, compute and money. And that the equilibrium point is going to be an economic one. Yeah. And I think one way you can impact that function that you're doing equilibrium over is to constrain – The system. The environment, is to constrain the system. And so I think that we're going to, like, we're now in this meta-economic equilibrium flywheel where we're kind of optimizing this super general but very inefficient process with a solution set that people value. And I think, listen, we've got 30 years of this, and a lot of value is going to be created. You know, you want to hear a funny story? Yeah. So, you know, we built this AI thing, and we're, like, talking to people. We're, like, reaching out to customers. We're like, hey, we built this AI thing. You know, we're helping customers become more reliable. Here's, like, what we're doing. They're like, great, we want to talk to you. And we go on the call, and we're like, hey, here's what we do. You know, we built this system. Helps you optimize your data. Helps you reduce your costs. And then it helps you become more reliable because now we can find these problems and solve them before they hit your incident. They're like, wait, wait, wait, wait, wait. Roll back. You said you can save 90% of our Datadog bills? Yeah. That's what I want to buy. But the AI thing. No, no, no, no. That's what we want to buy right now. And it's interesting. Like, a lot of these, like, for code. You know, I always think about it. It's like, oh, for code, people just get it. They're like, oh, shit, it just works. And on the ops side, or, like, anything that's beyond that. Yeah, it's very tough to understand the actual value and put a dollar value to it and be able to pay out the door. No, 100%. And I also think from a coding standpoint, literally, it's engineering productivity, which is one of the highest line items on these things. So it's just very straightforward. Exactly. But you can also think about it. It's SRE productivity. Or it's like your business going down. Maybe you can save an incident and what the cost is. I don't know. It's weird. I think, like, how people think about it outside of the coding space. I also just think, like, this code was so magical because it was so good. And nobody thought that could happen. And I think the operations stuff now, it's still, like… Pretty early. It's still pretty early. All right. Well, listen, it's a great chat. Thanks, Ted, for coming in. Thanks. Thanks for listening to this episode of the A16Z Podcast. If you liked this episode, be sure to like, comment, subscribe, leave us a rating or review, and share it with your friends and family. For more episodes, go to YouTube, Apple Podcasts, and Spotify. Follow us on X, A16Z, and subscribe to our Substack at a16z.substack.com. Thanks again for listening, and I'll see you in the next episode. As a reminder, the content here is for informational purposes only. It should not be taken as legal business, tax, or investment advice or be used to evaluate any investment or security and is not directed at any investors or potential investors in any A16Z fund. Please note that A16Z and its affiliates may also maintain investments in the companies discussed in this podcast. For more details, including a link to our investments, please see a16z.com forward slash disclosures. you