AI Engineer World's Fair 2026
From Blind Spots to Merged PRs: Continuous Agentic Performance Optimization
Read the talk
From Blind Spots to Merged PRs: Continuous Performance Optimization
A reliable optimization agent needs more than plausible code changes: it needs production context, a repeatable investigation method, runtime verification, and a reason to deserve a human’s attention.
From a talk by May Walter
Before you start: Familiarity with pull requests, production telemetry, SQL, and coding agents will help you follow the workflow.
How long will fixing the slow page take?
Jenny says a page is slow. Engineering agrees it could probably be optimized, but someone would have to investigate, so the work waits. A few weeks later, the page is too slow to ignore. Now Jenny needs an estimate: somewhere between an hour and a week. The investigation has to happen before anyone can narrow that range.
Who can investigate? Only Dave—the one person who still understands code whose other authors left a decade ago. The bottleneck is not necessarily implementing an optimization. It is discovering which optimization is needed. Teams repeatedly find performance and stability improvements when they look, yet the uncertainty of that search makes proactive work difficult to justify.
May Walter, co-founder and CTO of Hud, approaches this as a runtime-context problem. Hud supplies coding agents with function-level production information and deeper forensic evidence about important events. The continuous optimization workflow built on that data aims to make investigation happen routinely, before another slow page becomes an emergency.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Plausible code still needs verification
An agent writes a pull request. Another agent reviews it and approves. Both outputs look reasonable, but the engineer still wants to verify the change before merging it into production. Agreement between agents has not supplied the missing evidence that the change works.
Walter connects that hesitation to a broader gap between individual effectiveness and reliable team delivery. She describes stronger individual productivity, limited throughput gains, and worsening stability, attributing the comparison to “DORA metrics for 2026.” That year label needs care: DORA’s research chronology distinguishes its March 2025 generative-AI study from its September 2025 annual report, and its March 2026 discussion describes the latter as finding increased throughput alongside increased instability. The useful engineering question is how to turn faster coding into dependable delivery. Walter’s proposed next step is to use AI to accelerate repair as well as development.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Make investigation a recurring job
The usual performance backlog behaves like a leaky bucket: ignore an issue, let it degrade, repair it in emergency mode, then return to ignoring the backlog. Investigation perpetuates that cycle because its cost arrives before its value is known. An engineer might spend an hour or weeks simply determining what could be improved.
Automating discovery changes what can be prioritized. A weekly process can inspect real production behavior, identify opportunities, and score the changes that combine meaningful impact with modest implementation effort. This makes the occasional performance sprint a recurring activity without requiring someone to stop feature work just to find out whether useful work exists.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
A weekly workflow with replaceable parts
The infrastructure had to remain flexible across compute providers, agent harnesses, and models. It also needed secure tool calls, explicit permissions and authentication, and both scheduled and event-driven triggers. A weekly sweep handles proactive investigation; a webhook could initiate an investigation after a service-level objective breach. Maintainability mattered just as much: expectations rise after a workflow starts working, so its instructions and feedback loop must be easy to revise.
The team chose GitHub Agentic Workflows. The workflow describes the job, its goal, and the analysis to perform over a repository and its production data. In the setup Walter presents, GitHub Actions runs weekly, Claude Code performs the investigation, Hud exposes runtime intelligence through MCP, and the resulting report goes to Slack.
Those choices establish a working deployment rather than a required vendor combination. Walter names Cursor or Copilot as alternative agents, and Teams or email as alternative destinations. The operational requirement is that the investigation runs unattended and its output reaches somewhere engineers already pay attention.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Deliver a diff and evidence
Production traces, queries, and latencies give the agent a starting point, but finding something optimizable is not enough. Walter uses a flow that runs every three weeks and a possible 20-millisecond reduction as examples of opportunities that may not deserve attention. Frequency and business relevance determine whether an apparent inefficiency matters.
The intended loop carries an opportunity all the way to a reviewable change:
- Identify the slowdown in production evidence.
- Establish its root cause and why the affected flow matters.
- Implement a code change and produce the diff.
- Rerun tests and verify the impact on the specific flow.
- Hand the change and supporting evidence to a human reviewer.
The deliverable is a verified improvement proposal, not merely an optimization suggestion. Walter illustrates the business context with a flow running 7,000 times a week. That context gives the reviewer a reason to care about the evidence accompanying the diff.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Three ways a reasonable-looking fix fails
Putting a human review gate at the end did not make the preceding automation reliable out of the box. Three recurring failures exposed the need for a more explicit investigation method:
- Plausible but unverified: The agent identified something that could theoretically cause a slowdown, but verification showed it did not explain the production problem.
- Complex queries: Hud uses ClickHouse, a columnar database whose behavior does not always fit familiar SQL patterns. Access to a query tool did not ensure the agent would ask the right question.
- The lazy fix: Catching an exception could suppress the visible failure without explaining why the exception occurred or why results were lagging.
The response was to encode the playbook a senior engineer would follow: gather the right evidence, investigate the cause, and verify the proposed repair. More data alone would not supply that discipline.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Connect production behavior to functions
Production context can be simultaneously excessive and incomplete. A large volume of low-signal telemetry makes reasoning difficult, while a missing log, trace, or metric leaves room for an unsupported explanation. Service-level CPU and memory measurements, or an endpoint’s P90 latency, also describe the system at a different level from the functions and files a coding agent edits. The agent needs a connection between those views.
Hud calls that connection prod-to-code: explain production behavior at the function level where the agent reasons. Function-level context is linked back to the endpoint, event consumer, or cron job that initiated the work.
For an endpoint that sometimes takes seven seconds, the investigation can ask where that time went: a local function, a database call, an LLM request, or another microservice. Walter describes a function invocation map that records where calls originate and how frequently they execute. Deeper forensic evidence is captured selectively for requests exceeding P99 or another configured threshold, providing a concrete slow request to investigate rather than requiring equally detailed capture everywhere.
The heads-up display also places runtime information over the code. That interface makes the same structural point as the data model: production evidence becomes easier to use when it is attached to the code responsible for the behavior.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Layer investigation skills over queries
The base layer is HudQL, which Walter describes as ClickHouse queries over functions, endpoints, and forensic data. Query access sometimes sufficed, but repeatedly getting the agent to formulate the right query introduced variance in evaluations. Skills added reusable investigation procedures above that access layer.
| Investigation | Procedure |
|---|---|
| HTTP 500 | Trace the error to its origin. |
| Memory spike | Identify work on the affected pods at that time; compare with a baseline. |
These procedures specify what evidence to retrieve and what comparison to make. Walter reports that this more methodical approach produced more consistent results. Automations sit above the skills: repair issues as they arise, investigate apparently unused code, or run the recurring performance sweep. Her unused-code example looks for functions not observed running for 60 days; absence in one observation scope is a candidate for investigation, not proof that no other service calls the function.
A performance skill can search for concrete patterns: artificial delays such as sleeps and timeouts, N+1 queries, missing indexes, and sequential asynchronous operations. For example, if an application fetches an order count separately for each customer, a candidate batched SQL query is:
sql
SELECT customer_id, count(*) AS order_count
FROM orders
WHERE customer_id IN (101, 102, 103)
GROUP BY customer_id;
The application must preserve the original behavior, including representing customers with no orders as having a zero count. Runtime evidence then determines whether those repeated calls are actually a bottleneck and whether batching improves the affected flow. The pattern supplies a search target, not a diagnosis by itself.
Walter’s example is a codebase with two decades of history and hundreds of contributors: accumulated inefficiencies are unsurprising, and some are straightforward to remove once found. Static analysis can identify useful candidates too. For an automation expected to run repeatedly and earn trust, however, production context helps establish which candidates explain real slow endpoints.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Reviewer attention is part of the cost
Once evaluations looked good, the workflow could find real slow endpoints, score opportunities, test changes, and verify them each week. Automatically opening pull requests seemed like the natural next step. But Walter’s image of 80 small PRs arriving at once captures the problem: verified work can still overwhelm the people expected to review it. The team instead started by surfacing one opportunity at a time, building both appetite and habit.
Prioritization combines three considerations:
- Hot-path relevance: How frequently does the flow execute, and how critical is it?
- Business impact: Payments and signup flows deserve particular attention. Would a product manager prioritize this problem?
- Change risk: A migration or another risky modification increases the effort required from the reviewer.
The target is highest return on engineering attention, not simply the largest possible latency reduction. Automating investigation makes it practical to compare impact and risk before asking a person to spend time on an opportunity.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Make the report worth opening
Instead of a flood of pull requests, the team produces a short report that explains why an issue deserves attention. Walter’s report example describes an endpoint that usually takes about 200 milliseconds but intermittently takes 45 seconds. She attributes the slow requests to using DISTINCT rather than Mongo’s search index. That is a case-specific diagnosis: MongoDB’s distinct() documentation explicitly allows index use, so distinct operations and indexed execution are not inherently alternatives.
The report pairs a brief explanation of the problem with the proposed fix. The recipient can create a ticket, request a PR, or inspect the finding. Walter reports that these small, readable summaries made a substantial difference because they respect the human’s role: confirming both that a fix is good and that the issue is worth fixing.
The feedback loop continues after deployment. Walter describes the endpoint’s latency becoming flat again once the change is deployed. Seeing that outcome makes the next report easier to trust and more likely to receive attention. The account supplies no measurement window or reproducible before-and-after benchmark, so it supports the adoption mechanism rather than a general speedup claim.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Automate work that was not happening
Scoring and guardrails begin with defining what matters. Cheaper fixes are still not free: each carries implementation cost, reviewer attention, and the risk of changing production behavior. A workflow that generates more changes without accounting for those costs can create work instead of removing it.
The distinctive gain here is that weekly opportunity discovery previously did not happen in engineers’ day-to-day work. The automation does more than accelerate an existing task. It makes a neglected phase routine, surfacing improvements that would otherwise remain undiscovered.
Walter’s principle is “context over cleverness.” Relevant runtime information and well-defined skills make the agents more useful. Although newer models improve the results, she considers existing models sufficient for most of this automation. The remaining responsibility is to steer them with domain knowledge: which issues matter, which changes are worth making, and which latencies materially affect customers. There need not be one universally correct optimization when business priorities determine the value of the work.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Unattended engineering has a higher trust bar
Interactive coding assistance benefits from an engineer who is present, understands the context, and can redirect a mistake. Walter uses an agent working 80% of the time in an IDE as an illustration of that tolerance. An unattended workflow cannot depend on continuous correction. If it strays, it can waste review time and gradually make people stop trusting its output.
The hardest requirement was reaching confidence in two things before the handoff: the issue deserves repair, and the fix has been verified in runtime. A human still reviews the result. Walter’s closing language about 80–90% trust is an informal aspiration, not a measured reliability threshold. The operational standard is concrete: when the automation asks for attention, it should already have done enough investigation and verification to make that attention worthwhile.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Resources
From the talk
Introduction to Hud's function-level runtime data, IDE integration, and MCP interface.
Define repository automation in Markdown and run coding agents in GitHub Actions with configurable permissions and output controls.
Further reading
May Walter explains function-level runtime context, early query-optimization results, and the feedback loop after deployment.
Operational guidance covering instrumentation, production queries, draft PR review, credentials, and workflow testing.
DORA's March 2025 report examines individual productivity and estimated associations between AI adoption, delivery throughput, and stability.
- Balancing AI tensionsArticle
DORA discusses verification work and the 2025 finding that greater AI adoption accompanies both higher throughput and greater instability.
Reference for distinct-value queries, including their ability to use covering indexes and collection-specific limitations.
Read the complete timestamped transcript
- 0:01
Hi, everyone. I don't know if you're familiar with what I'm about to show, but remember when someone from the product is, like, saying that some page is too slow and maybe we can optimize it, and then someone from engineering would say, "Yeah, probably, but we'd have to dig in to find out, so we just kind of leave
- 0:20
it as is." And then a few weeks later, Jenny would say, "No, no, no, but it's actually way too slow now. We have to prioritize it. How long is it gonna take?"
- 0:30
And we would say something like, "Well, somewhere between an hour and a week. We'd have to look at it to find out."
- 0:38
And then when she asks, "Who can even dig it?" The answer is only Dave. He's the only one who kinda knows that code, and everyone else who wrote it left a decade ago.
- 0:50
And amazingly, this still happens in teams all the time because we would know how much time it takes to do a specific optimization, but we never know how long it's gonna take to investigate it and to find it.
- 1:04
And miraculously, every time we look, we, we actually find things that can be done around performance and stability. But we never stop to proactively look for them because it doesn't make sense.
- 1:16
So hi, I'm Mai, co-founder and CTO at Hud. We're building a runtime intelligence layer for coding agent that captures function-level context and deep forensic context on things that matter so that coding agents can help you fix what's going on with production.
- 1:31
And as a part of that, we built an agentic workflow that helps with continuously optimizing performance of production applications. And I'm gonna share a bit more about what we built, what were the challenges along the way, and hopefully you can take something out of it and apply it in your day-to-day.
- 1:50
So we're surrounded by a lot of agentic PRs that all look kind of good to us, and one agent wrote them, and the other one says, "Yeah, I, I went over it, and it looks fine."
- 2:04
And we still feel that urge to, to verify before we just merge it to production.
- 2:12
And then when it doesn't work, we end up asking ourself, "How the hell did we get to this place?" And if you feel like that, I want you to know that you're not alone.
- 2:21
So Google just published their DORA metrics for 2026, and we can see that the biggest impact of AI adoption on engineering is individual effectiveness or that feeling of, "Oh my God, I'm so fast.
- 2:35
I can do everything in the world." And for me personally, lack of sleep is another symptom of that. But the second one is software delivery and stability. And the throughput is actually not impacted as much as we expected.
- 2:49
So we basically feel more effective. We're more effective individually, but as a team, our throughput is kind of the same, and our software breaks more often, which is not exactly what we were hoping for with this AI revolution just yet.
- 3:04
But maybe there's an agent for that, and if we can build faster with AI and we can fix faster with AI,
- 3:10
then we can get those gains that we were talking about.
- 3:14
So I'm going to start with why we even wanted to do this. Then we're gonna go over the tech and the process, which I think is also really important, and then share some gotchas and takeaways along the way.
- 3:26
So debt leaks kind of faster than we can bail. We have these issues that we ignore because they're not important enough. Then they degrade to the point where they are important enough, and then we reach this crisis mode where we are all hands on deck.
- 3:41
We fix it in emergency mode, and then we go straight back to ignoring, which is a leaky bucket by definition. And that mostly happens because the research phase is a black box.
- 3:55
It could take an hour or weeks, and we have to pay that debt and to make sure that we spend time and engineer, engineering time on it in order to even know what can be done about it.
- 4:07
And that's hard. It's legitimately hard to prioritize something where you're not sure exactly what you're gonna get out of it.
- 4:13
But what if we can automate that investigation? So we can basically run on a weekly basis with real production context, analyze the sweet spot and the f- and flag the high ROI opportunities in a way that's scored so it runs automatically without us having to stop and do something about it.
- 4:31
It has the production context in mind and can give a high IR- ROI scored performance opportunities of the things that are easy and impactful, kind of like that performance sprint that you run every few months, just automated.
- 4:46
Now let's talk about how we can actually do it, because the dream is very nice but, but devil's in the detail.
- 4:54
So first of all, we wanted an infrastructure for the agentic workflows that would be vendor neutral in terms of compute and where it runs, in terms of the harness, and in also in terms of the model.
- 5:05
Things are changing all the time. We wouldn't want to constrain ourself to a specific vendor, specific model, or anything like that. And especially like with Hud, we want our customers to be able to use whatever agents they wish.
- 5:19
We also want it to be secure in terms of the tool calls, permissions, and authentication. We want some trigger system, whether those are scheduled runs like the weekly run or a set of webhooks.
- 5:30
For example, if we see some SLO breach, we would want to investigate it. And we really wanted it to be easy to maintain and update over time. I think one of the biggest learnings we've had with agentic workflows is that even if they work out of the box or we get to a point where we're happy about
- 5:47
them, in time we evolve and our expectations go up. So just being able to maintain and update those logics and build that feedback loop was very important for us so that it's reliable and that people actually trust the outcome.
- 6:01
Specifically, we chose to work with GitHub agentic workflows for that, um, and we can choose whatever agent we wanna work with and build the, the workflows on top of that, but there are many other great tools that could be used for that.
- 6:15
So this is basically how it looks like. You can see that there's a description of the job and the goal and the analysis, and then we basically go over the GitHub repository and generate that weekly deep insight report, analyzing production data and finding those low-hanging, high ROI opportunities.
- 6:36
So for this specific setup, GitHub Actions runs weekly, and it uses Claude Code, that was our specific choice, and then captures the runtime intelligence overhead via MCP so that we can basically look at the different endpoints, connect to the function level of what happens there, and send the reports to Slack.
- 6:57
Of course, that could've been Teams or an email or anything like that. It could've been Cursor or Copilot. It's just the setup which we started with, um, to make sure that we have something that runs without us in the loop and sends that report to somewhere we actually live in, which is Slack.
- 7:16
So we wanna take the production context, the traces, the queries, the latencies, then analyze them with the agent, score and flag which opportunities matter. Because if you can optimize something but it runs every three weeks, or you can like reduce 20 milliseconds, then it doesn't matter.
- 7:36
And then the most important part here is the diff in the evidence. So the agent actually fixes it, reruns the tests, and sees the impact that it had on that specific flow that was optimized so that the human gets something after we already detected it, we understood the root cause, we understood why it matters to the business,
- 7:59
and we verified that the fix actually impacted that time, and then a human reviews that and the loop is actually closed. So it's not, "Hey, I have this idea of something you can do."
- 8:10
It's, "Here's something that works and we believe would make an impact on these specific business flows in production that are running 7,000 times a week."
- 8:21
And then the human gets in the loop as a review gate. And of course it didn't work out of the box if you were wondering. So the first hurdle we had along the way is what we called plausible unverified.
- 8:36
So the agent would suggest a fix, it sounds right, it would look fairly real, and then after we verified it, it, it just didn't work. And it's, it's right that the agent suggested something that could theoretically cause that slowdown, but what we wanted is to ground it on what's actually happening in production.
- 8:57
Second part was complex queries. Um, we specifically use ClickHouse, which is an amazing columnar database, but it's also slightly different than the classic SQL patterns, and I'll talk about that in a bit.
- 9:11
And third one is the lazy fix. I'm sure you guys also experienced that when something throws an exception and then the agent says, "Well, maybe we can just
- 9:23
catch that exception and then everything will be fine." But what we really want is to understand why that exception was even thrown in the first place or why are the results lagging.
- 9:36
So those were things that we found that methodology could be very, very impactful with. It's not just the understanding of the data and how to connect it, it's also being quite thorough on what we want to do in that process and sort of building the playbook of how a senior engineer would do that.
- 9:59
And of course we need the context to be right. So the problem with context, there are also... There are only two problems with context. You either have too much of it or you have too little of it.
- 10:12
And what we found around runtime context, especially from production, is that more often than not you actually have these two problems together because on one hand you have a lot of low signal data that is hard for the agent to reason over, and on the other you might not have all the logs and traces and metrics that
- 10:31
you need in order to investigate that issue, which would still leave some room for assumptions and theories of... that are not necessarily what the, our users are experiencing in production.
- 10:44
And also when we talk about metrics like service level, CPU and memory or endpoints in the P90s, they are not connected to the function level. So our coding agents reason over code and they look at these metrics and there are some relations between them, but they don't exactly speak the same language.
- 11:04
So when we ask questions about what's taking time and what can I do about it, we're often finding that there are some gaps there, and again, accuracy could drop from that.
- 11:16
So what we did is what we call prod to code, which is to be able to explain what's going on in production in the same level that agents reason over because the agent's context lies on a function and file level, not on a service and endpoint level.
- 11:34
So basically our context is running on a function level and it is also connected to the endpoint or event consumer or cron job that ended up starting this task.
- 11:44
So you can ask a question like, "Hey, this endpoint that sometimes takes seven seconds, where is the time spent and what can be done about it?" Whether that's a function or an outbound call to a database, an LLM or another microservice.
- 11:59
And with that, you basically have the complete function-level context for every single function, sort of like this service map, but on a function level of the different invocations, where they come from, how often they run, and the deep forensic context only when it's needed, only when we see requests that are taking longer than the P99 or some
- 12:20
s- threshold that we can define. Then we will capture those forensic evidence so that we can say, "Hey, here is an example of a request that took longer. Let's find out why."
- 12:32
And we also have the ability to see that on top of the code, which is the HUD, the heads-up display, but, but I guess it's kind of a way to explain how that dataset is actually structured in a way that is much more comprehensive for a coding agent to read it over.
- 12:51
And then we talked about the complex queries and what to do with them. So the basic layer gave us the HUD query language, which are basically ClickHouse queries over that structure of functions and endpoints and forensics.
- 13:07
On top of that, we also added a set of skills. We found that sometimes just querying the data is enough, but being able to get to the right query and to ask it again and again really created a lot of
- 13:23
variance in our evals. And the skills actually help work with that data so that agents can use it. So for example, if we're talking about a 500, an HTTP 500, we would want to understand where that error came from.
- 13:38
If we're talking about a memory spike, we want to understand what was running on those specific pods at that specific time where memory was higher and compare it to a baseline so that we see the diff.
- 13:50
And all of these things were extremely helpful to be able to be a bit more methodological around how that works and to create more consistent results. And on top of that, there are a set of automations.
- 14:03
So if we have the data, the query language, a set of skills, we can build automations on top of them, like auto-fixing issues as they arise, or detecting dead code that isn't even running for the last 60 days and eliminating it, or this automated performance impro- improvement automation that are, we are
- 14:28
talking about right now. So for performance, one example of that is to be looking for artificial delays like timeouts and sleeps, N+1 queries, missing indexes,
- 14:41
sequential asyncs, and so on and so forth. These are specific things that are much easier to find when you actually look for them. And in a code base that's 20 years old and has hundreds of contributors, it makes sense that you'll find quite a lot of those, and removing them is very easy and impactful.
- 15:05
And then when you're asking something like, "Why are my endpoints taking long?" You can actually find the specific reasons
- 15:14
and not just guess a bunch of static code analysis, which could get you some result. I'm not saying it's never going to work, but when you're talking about an automation, we have to think about how to build something that is robust enough for us to trust over time.
- 15:31
And then we said, "Okay, now that our evals are looking good, we run weekly, we find real slow endpoints from production that are invoked. We score them, we test them, we verify them.
- 15:44
Maybe we can just open pull requests and everyone will fix everything and the world will be amazing."
- 15:50
Well, that's not exactly how that worked because people are still people and no one wants to wake up for, you know, a rain of 80 pull requests, the small...
- 16:01
as small as they can be. That's just not how people operate and no one has time for that. We're too busy building other things, and it's fine. So what we actually do is we use that priority to make sure that we only flag the ones that matter, and we actually started with one at a time to create
- 16:21
that appetite and that habit. So we look at whether this is a hot path in terms of how often it runs and how critical is it for the business.
- 16:29
The business impact, as in, you know, if this is something that has to do with payments or signup flows, obviously we are more sensitive to that, kind of like asking ourselves, "Would we be able to convince the product manager to prioritize it?"
- 16:43
And we also looked at the risk. If it's a risky change that requires a migration or anything like that, then obviously it would require more time from the human that's reviewing it.
- 16:56
And in that case, we're not necessarily looking for the highest impact ones, but for the highest ROI ones. And because we automate the investigation, we can look at the impact and the risk together and only surface and, and require attention on the ones that we believe are the right ones that are worth the engineering time.
- 17:21
So instead of opening 80 PRs, we built this human-friendly report that basically tries to convince you that it's worth your while. Something like, "Hey, this endpoint, it's usually taking around 200 milliseconds, but every once in a ti- in a while it takes like 45 seconds.
- 17:38
And it happens because you're using DISTINCT and not the search index of Mongo." There's a very short explanation of what's happening and what's the fix, and then you can either create a ticket and fix it on your own, you can create a PR or just look at it.
- 17:55
And we found that building these small gists that are humanly f- readable and it's easy to understand what's the thing made a huge, huge difference because we're still living in this hybrid world where humans are in the loop, and we want to respect our place in people's lives and to make sure that we flag the things that
- 18:19
really matter and that we have some confirmation, not only that the fix is good, but also that this issue is worth fixing. And then when you look at that endpoint and you deploy that change and all of a sudden it's flat again, it is pretty satisfying.
- 18:38
And then next time you'll get that report, maybe you'll have a look and it will be easier to convince you.
- 18:46
So four things that I learned that could be relevant for you. One is we need to define what matters, and the scoring and the guardrails are what makes this reliable.
- 18:56
We can automate a bunch of things and it becomes easier to just create some slop. But when we start with what are the things that are worth it, even though it's much cheaper to fix these things than it was a few years ago, it's still not free.
- 19:13
And therefore, we need to understand that it's worth the impact, the human reviewer, and the risk that it entails if it does. Second part is that a lot of what we're talking about today is accelerating developers and what they do.
- 19:29
And I think what's interesting about this experience is that we automated something that it's not just doing it faster. We're automating a phase that just did not happen in the day-to-day lives of engineers.
- 19:43
No one actually stopped every week and had a look on whether there are low-hanging fruits that could be relevant. But now we can use the agents to not only do the things that we're doing faster, but also to help us surface opportunities that we would probably never do without them.
- 20:02
This is-- It sounds simple, but it's hard to actually imple- apply it in the day-to-day, but context over cleverness works almost every time. If they have the right context, if they have the right skills, if they know exactly what they need, these agents get much, much more useful.
- 20:18
And every time a new model comes out, things get better. And yet, I do believe that at least for most of the cases, the models are good enough already to be able to, to automate that.
- 20:29
But it is up to us to help steer and guide to the right directions to make sure that we get the results that we want that are not necessarily the, the absolute right thing because it doesn't necessarily exist.
- 20:44
And, you know, when we know our domain and our business, we understand which issues matter more, what's worth fixing, what latencies actually impact our customer's experience in the most significant way.
- 20:58
And that helps us make sure we focus on the right things. And in that aspect, agentic engineering is not like coding with an agent. If something works 80% of the time and you're using it with your cursor and your IDE, that's fine because you're there, you're in context, and you can help fix and steer.
- 21:20
If we're talking about an automation that runs autonomously, we have to have very high confidence that we're doing the right thing and that it's not going to just stray off and hand us a bunch of things that we would, like, either waste time on reviewing or just not be able to trust over time.
- 21:42
And I think, like, the hardest part of this automation was to get to a point where we feel confident enough that the issue is worth fixing and that the fix is verified in runtime so that it is handed to a person when we have a fairly good confidence that it actually works,
- 22:03
and yet they still review it, but we know it's worth their time. And getting to that ag- agentic engineering automation level requires crossing towards the 80, 90%
- 22:18
trust, and it's something that is dramatically different than using an agent directly as an engineer.
- 22:26
So I hope that was helpful. And if there are any questions or anything like that, I'm available and always love to geek out on AI in the SDLC. And, uh, looking forward to hear about cool automations that you build on your own.
- 22:43
Thank you.