← All talks

AI Engineer NYC 2026 Main stage · 15 min

What does an AI engineer do?

Aparna DhinakaranArize AI

Arize Signal reads traces, finds recurring problems, and can propose fixes. Building that loop requires decisions about memory, temporary access, recovery, and what counts as a good fix.

Build the loop that builds the feature

1:27:26 ↗

Using an assistant to write a feature and operating agents that keep improving the product are different engineering jobs. The first gives a developer another way to produce code. The second requires a system that can decide what work needs doing, propose a change, and tell whether the change helped.

Aparna Dhinakaran starts with the gap between those ways of working. As engineers manage more agents, they need to build review systems and turn telemetry—the record of what the application did—into something an agent can investigate.

Arize’s Signal is her concrete example. It reads traces, identifies recurring issues, and—when given repository access—can propose a fix or a pull request. The interesting engineering lies in making that cycle repeat without losing context, leaking access, or mistaking every pattern for a real problem. Watch the shift at 1:29:44.

Give every run a beginning and an end

1:31:10 ↗

Signal begins by reading a configurable volume of traces on a cadence. It needs to remember issues it has already found. It also needs to recognize when something that previously looked unimportant has become a pattern worth investigating as more evidence arrives.

This changes the role of observability. The primary consumer may be an agent rather than a person scanning a dashboard. Telemetry can also become the trigger that wakes the agent. A scheduled run might inspect recent traces every few hours; an event, a metric, or a user complaint in Slack can provide another starting point.

Once triggered, the run needs a defined environment. Signal gathers trace context, relevant application-performance data, repository access, and the credentials required for the job into an isolated sandbox. A single proxy controls information moving in and out. The run itself is traced, and its outputs are saved separately.

Signal’s agent-run anatomy, showing trigger and admission steps, the ephemeral sandbox layers, and results, traces, and teardown.

The run diagram at 1:33:58 distinguishes the short-lived workspace from the outputs that survive it.

At completion, useful state remains: identified issues, the history of the agent’s work, and any learned skills saved to the repository. The sandbox, credentials, and repository access are torn down. Persisting the right information means the next run does not start from nothing, while the temporary execution environment does not become an indefinitely privileged machine.

Failure needs the same separation. If a sandbox or harness fails partway through, state outside the sandbox allows a replacement to resume from the failed step. The system’s continuity comes from that saved progress, rather than from assuming one process will stay alive forever.

Define good behavior before automating more of it

1:36:24 ↗

Dhinakaran describes Signal as independent of any single model or coding harness. That flexibility makes it possible to compare quality and cost: a stronger model may produce better proposed fixes, but the team wants to know whether a less expensive configuration can preserve the quality that matters.

Evaluations answer that question only if they measure the right thing. A basic regression test can compare outputs for a known set of inputs. More difficult judgments—whether an issue is real, whether a proposed change addresses it, whether the agent’s diagnosis is useful—need alignment with human judgment.

Much of the engineering work is learning to make those judgments repeatable. Reviewing traces alongside the agent exposes recurring errors; those errors become test cases. Each useful case saves the next reviewer from having to rediscover what a bad diagnosis looks like.

An evaluator also needs evaluation. Arize builds datasets with human judgments, checks the evaluator against those judgments, and works to align them before shipping a new judge. Trust in the evaluator should come from its agreement on meaningful cases, rather than from the evaluator’s confident wording.

The same evaluation can play different roles before and after deployment. Offline tests assess a proposed change. Online evaluations inspect behavior in production, where new cases and patterns appear.

Trace the agents that build the agents

1:39:57 ↗

The final loop extends observability to the development machinery itself. Tracing the deployed agent is useful, but it leaves out the coding agents that created or changed it. Their tool calls, edits, and proposed fixes also belong in the record of how the product evolved.

Production traces and online evaluation results then become the next input to Signal. The system collects data, evaluates behavior, runs agents over that evidence, identifies gaps, and proposes improvements. Each cycle creates the evidence for the next.

Business data is messier than the constrained cases an agent may handle well in a lab. Dhinakaran’s answer is to keep that mess inside the learning loop: trace the failure, turn it into a useful evaluation, and give the next agent run enough evidence to propose a better fix. That continuing process becomes part of the product the AI engineer builds.

Full transcript

Timestamps follow the original livestream. Select a time to watch that moment. Transcripts are machine-generated with reviewed name and terminology corrections; occasional recognition errors may remain.

1:27:20

Hey, New York.

1:27:22

Awesome.

1:27:23

Well, welcome to AI Engineer.

1:27:26

I thought given we're at AI Engineer New York, we'd kind of revisit the question of what

1:27:32

does an AI engineer do?

1:27:33

I feel like every year we have an idea of what an AI engineer does, and that definition

1:27:39

kind of changes.

1:27:41

And as I was putting this talk together, it was super timely because Karpathy actually

1:27:45

just tweeted something this weekend where he kind of talks about this growing gap between

1:27:53

basically folks at the frontier who are running thousands of agents and swarms of always-on agents,

1:28:00

and he really kind of drops this funnel where 6 billion-plus users have maybe touched or

1:28:06

interfaced with an LLM, 1 to 2 billion are maybe like casual free-tier users, 20 million are

1:28:12

professionals who have maybe started using it for more, taking some piece of work that

1:28:18

would have taken weeks down to days.

1:28:21

But really, those at the Frontier Labs, which is a super small percentage, it's like 5,000

1:28:27

users, are the ones who are running thousands and thousands of agents at once.

1:28:35

And as I look at this, it really is, I mean, he's kind of dropped a bit of the funnel.

1:28:39

I mean, the first question anyone looks at this is that, where am I on this?

1:28:43

And, you know, he's kind of drawn out a bit of a roadmap of how does everyone get to, in the next couple of years, one of those 5,000 users who are running thousands of agents.

1:28:55

And this has been happening, I'd say, for a couple of decades now, where the abstraction layer has gotten higher and higher.

1:29:01

I mean, definitely faster in the last couple of years, but we've gone from engineers writing higher level abstraction languages to, I mean, just copy pasting code, using local agents to using cloud agents to really the expectation now is how do all of us start running a team of agents or factories of agents internally and build toward that?

1:29:28

And what this has led to is essentially what is the then and now of what an AI engineer

1:29:33

And this is a bit, I think, of a roadmap for some, but I think internally this is what

1:29:41

we've already started to kind of push towards.

1:29:44

As an AI engineer, your job is no longer to just write the feature, write an AI feature,

1:29:48

it's about how do you build the loop to write that feature.

1:29:51

It's no longer about just reading the diff and actually doing code review.

1:29:57

It's actually how do you set up systems and agents to

1:30:00

do the code reviews?

1:30:01

And how do you write evals to actually do the non-deterministic, to review those non-deterministic tasks?

1:30:08

It's actually no longer even about just setting up metrics and software kind of telemetry, but it's actually how do you have agents go through and read the observability data,

1:30:18

and have agents actually consume that telemetry to find patterns?

1:30:23

And so this loop that we've kind of been talking about, which is the build, the eval, ship, you monitor, you improve it, well, the AI engineer is now actually responsible not just for doing each of those steps, but how do you build the loop that actually does each of those steps?

1:30:40

And at Arize, one of the things we've rolled out in our product, and I'm going to talk about a bit of what we've learned in building this, is we built Signal to actually run this loop for AI engineers.

1:30:50

What Signal does is that Signal actually looks at all of the traces, it reads the telemetry,

1:30:57

it identifies patterns in that telemetry, and it can actually put up a fix or a PR if

1:31:03

it has access to the repo.

1:31:05

And Signal is an always-on agent.

1:31:09

So this is an example of how Signal starts, but it actually starts off by just reading

1:31:15

the traces.

1:31:16

Super simple example, but it goes through, reads,

1:31:19

and all of this is configurable,

1:31:21

but a certain volume of traces that came in in some cadence,

1:31:26

it reads it, and then the goal is to actually identify issues

1:31:29

from that telemetry data.

1:31:32

It has to keep track of issues that it's previously seen.

1:31:35

So we have to consider the memory of,

1:31:38

it see something before that it thought was an issue?

1:31:41

Did something seem like an issue, but it wasn't actually captured,

1:31:44

and now as it collects more data, it actually thinks it's much more of a critical issue.

1:31:50

And so Signal actually starts off by reading the traces to identify problems.

1:31:55

so one of the first things that we realized was that the future of who's actually consuming telemetry data

1:32:03

has really changed.

1:32:05

It's no longer about humans consuming telemetry data.

1:32:09

It's not even about humans consuming it and agents kind of taking on the task,

1:32:13

but it really is how do you set up your telemetry data

1:32:16

so that agents are the primary consumers of that data.

1:32:20

And what that does is that that observability data

1:32:23

can become the trigger for actually running

1:32:26

and triggering these always-on agents.

1:32:29

And so the first thing that if you're building a team of,

1:32:32

you know, a factory of really always-on agents

1:32:34

is what triggers these agents to wake up or start.

1:32:38

And there can be a variety of triggers.

1:32:41

For signal, for us, it's configurable to run on an ongoing cadence.

1:32:46

So every three hours, six hours, go pull the last X amount of traces, read them, identify problems.

1:32:54

It can also be triggered by events.

1:32:57

So Slack messages, if some user complains about something, it can be a metric-based trigger.

1:33:05

But these are essentially triggers to kick up the agent actually starting.

1:33:10

Once the agent actually starts, we have to spend some time figuring out, well, what does

1:33:14

an agent run actually look like?

1:33:16

For us, we actually pull in all of the context of the traces, any additional third-party

1:33:24

data, so we allow collecting to APM logs, APM metrics, but all of the third-party telemetry

1:33:31

data that we want to pull in, access to the repo, access to any keys that are needed to

1:33:43

actually run this agent.

1:33:44

But all of this information is put inside of a sandbox, and this is actually what's started

1:33:51

up every time the agent wakes up.

1:33:54

And so the agent's triggered.

1:33:56

We build a sandbox.

1:33:57

We put everything that we need inside of that sandbox.

1:34:00

There's a proxy.

1:34:00

The only way to get information in and out of the sandbox is by the single proxy.

1:34:05

And everything that happens inside of that sandbox is actually already getting traced.

1:34:10

And every output, so the issues that are generated and created are all getting saved to some kind of memory.

1:34:17

And so this happens every single time the agent actually runs.

1:34:21

Every time the agent finishes running, so it's sweeped through all of the traces,

1:34:26

it either found something or it didn't.

1:34:29

there's what actually stays and what actually gets thrown away what stays is

1:34:35

that if it found any issues all of the output is actually saved off in some

1:34:39

kind of memory so that the next time an agent gets spun up it doesn't have to

1:34:42

start from ground zero it has a history of what are the issues that it actually

1:34:46

found the agents are traced so all of the telemetry data of what the agent

1:34:54

called you know if it actually put up a PR all of those things are actually

1:34:58

traced, and any skills that it may have learned while actually doing a run can also get saved

1:35:04

to the actual repo.

1:35:05

But the things that go away is the sandbox gets torn down, any credentials obviously

1:35:11

get removed, the repo access is removed, and so all of the stuff that doesn't need to be

1:35:18

saved kind of gets torn down after the run of Signal.

1:35:22

And we've designed Signal in a way to actually keep this agent durable.

1:35:27

So that means that either if the sandbox fails or if the harness fails, then it shouldn't have to start everything from scratch in the middle of the run.

1:35:38

It should actually just be able to pick up from the step that it failed and all of the state so-called is kind of saved off in kind of a memory outside of the sandbox.

1:35:50

And so we've designed this to actually be a very durable agent so that if it fails, it can spin it back up.

1:35:59

You can launch a new sandbox, launch a new harness to kind of pick back up where it started.

1:36:03

So all of this is essentially the underpinnings of how we built signal to run every single run.

1:36:10

Agent gets triggered, agent gets started, loaded with all the context, the evidence.

1:36:14

It sweeps through the telemetry data.

1:36:17

It either finds something or it doesn't.

1:36:18

All of that gets saved to memory.

1:36:20

If something fails in the middle, the agent can get reset up.

1:36:24

And we built Signal to also be agnostic of the model or the harness.

1:36:29

So today, Signal supports not just Claude Code, which is what we started with,

1:36:33

but it also supports Cursor and Codex.

1:36:36

And the goal is to actually support all of the major, even the open source harnesses out there.

1:36:40

and Signal actually also supports multiple models.

1:36:49

So even if you're using Claude Code,

1:36:51

you can pick any of the models inside the Anthropic family.

1:36:55

And this is really important to us

1:36:58

because one, it's an awesome way for us

1:37:00

to evaluate the quality of the agent

1:37:03

every time we spin it up.

1:37:05

It helps us control costs so we can see

1:37:08

as we use more powerful models, the better quality maybe the PRs are, but can we reduce

1:37:14

the cost and actually still maintain the rigor and maintain the quality of issues that are

1:37:23

actually detected by signal? So this is something we deeply thought about from first principles

1:37:28

when we were designing signal. And this is actually a pretty good segue into what does

1:37:34

an AI engineer need to do? Well, an AI engineer really needs to kind of learn how to write evals.

1:37:40

And so we actually, every time Signal runs, Signal finds an issue, it puts up a PR. Well,

1:37:45

there's evals that are run on top of the agent to test that PR. And an eval can be as simple as

1:37:53

testing something as part of your development workflow. You have a data set. You can be a

1:37:58

simple prompt with outputs that you're testing to make sure that there's no regressions.

1:38:05

But these evals can also, they need to be kind of aligned with human judgment. And I'd argue that

1:38:12

this is actually probably where an AI engineer should be spending a lot of their time as they're

1:38:18

building the system to actually run the loop. They should be actually spending time looking at the

1:38:23

traces with their agents, identifying what the common errors are. And there's a lot of skills.

1:38:30

I think I was hearing Lance yesterday talk about the Claude skill to build evals. We have a skill

1:38:34

with Arize Evaluator to actually help you build and write evals, as well as align those evals

1:38:41

with the human judgment. But this is probably where the shift to defining what is good becomes

1:38:48

really, really important for an AI engineer to actually do.

1:38:52

And for a lot of teams I think we speak with and we work with,

1:38:56

their question becomes, well, how do I trust the evaluator?

1:38:59

And do I really trust that the eval is going to catch?

1:39:08

How do I trust that it's as good as my judgment?

1:39:11

And I'd say what we spend a lot of our own time doing for our own products

1:39:14

is that we actually evaluate the evaluators.

1:39:18

We spend a decent amount of time on actually building these data sets, golden truth data sets.

1:39:25

We run evals, verify them against the human output, and then try to align to make sure that the judge actually agrees with the human

1:39:35

and they're in agreement before we actually ship out a new evaluator.

1:39:40

And these evals can then be used both in an offline testing as well as in an online testing manner.

1:39:48

And this is probably what I would say as an AI engineer,

1:39:52

is more and more of what the job is becoming.

1:39:57

And so what I'm going to leave you guys with is,

1:40:00

as an AI engineer, you've built this agent. You've built this agent to actually run, be always on. You run evals before you actually ship it into production. You can ship it. And then once it goes into production, the goal is to actually trace everything. And tracing everything now means not just tracing the agents, but also tracing the coding agents behind the agents that build

1:40:25

built this. So you can trace Claude Code, you can trace Cursor, you can trace Codex, but

1:40:32

all these coding agents can be traced so you can understand what happened in the factory

1:40:37

of agents that you all are building. And then these agents, all the traces can then also

1:40:43

be evaluated online. So there's an offline evaluation when you're actually testing what

1:40:49

a new change is.

1:40:51

But as it goes into production, these become your online evals that you're running on top

1:40:56

of the telemetry data.

1:40:58

This, for us, ends up becoming the new data that then gets pulled back into the agents

1:41:05

to read the telemetry data, the evals, and surface up problems inside of the traces.

1:41:12

So the system really becomes how do you go from collect data, eval that data, run agents on top of it so that you can find problems and figure out where the gaps are to actually improve your systems.

1:41:27

So if I go back to kind of the question that we started this whole thing with, it's what does an AI engineer do?

1:41:33

I mean, the gap between, I think there's a pretty big gap between what's happening in the labs today and what's happening with a lot of businesses.

1:41:41

And some of it could just be the data inside of businesses are a lot more messy than what is very constrained and testable inside of a lab.

1:41:50

But AI engineers are kind of the role to close that gap.

1:41:55

And I think it really starts with tracing everything, tracing the agents you're actually building, running evals, being able to learn how to test these products that we're really building.

1:42:05

and then how do you build a system so that agents can actually improve

1:42:11

from the telemetry that's actually being collected

1:42:14

so that you're no longer just building individual features

1:42:17

but you're actually building the system to improve your products.

1:42:22

If you want to learn more, come check out.

1:42:24

We have a booth.

1:42:25

You can check out Signal, learn more.

1:42:27

But thank you so much for listening to us.