Full Transcript

·YouTLDR

Platforms for Humans and Machines: Engineering for the Age of Agents — Juan Herreros Elorza

21:133,416 words · ~17 min readEnglishTranscribed Apr 19, 2026
0:00

Hello everyone. Thank you very much for

0:02

watching and welcome to my talk

0:05

platforms for humans and machines.

0:08

My name is Juan and I work as the team

0:11

lead for the cloud native technology

0:13

team in a company called Banking Circle.

0:17

You probably don't know about us, so let

0:18

me tell you just a bit about what we do.

0:21

Mainly we are a global cross-border

0:23

payments provider

0:25

uh on top of accounts and liquidity

0:28

management.

0:29

We provide we process over 1 trillion

0:32

euro per year

0:34

and we provide banking services to over

0:36

700 regulated financial institutions.

0:40

We are very much a fintech and in fact a

0:42

lot of us are working within some

0:45

capacity of engineering.

0:48

Because of that some years ago we

0:50

decided to establish a platform

0:52

engineering team in Banking Circle,

0:54

which is where I'm working.

0:57

More than 250 people in Banking Circle

1:00

are building some type of technical

1:02

systems and this includes the APIs that

1:04

our clients are using. This includes the

1:06

core banking systems, some internal

1:08

tools. This includes data science and

1:11

data engineering and of course the

1:13

integration with the clearing schemes

1:15

where we settle the payments.

1:17

Because of that we have decided to

1:20

establish a platform that all of these

1:22

teams can use

1:23

so that we abstract away the complexity

1:27

in some of the underlying infrastructure

1:29

and cloud concerns

1:31

and so these people can focus on

1:33

building the systems that they are

1:35

supposed to build.

1:37

We call that platform Atlas.

1:39

And Atlas has a number of sub-platforms.

1:42

We have a platform for compute where

1:44

people run their applications based on

1:46

Kubernetes.

1:48

We have a platform for infrastructure

1:50

which people can use to provision blob

1:53

storage services. They can also use it

1:55

to provision databases. They can use it

1:58

to provision secret management systems.

2:00

We have a platforms for messaging for

2:02

the different applications and the

2:04

different systems to communicate with

2:06

each other and we have platforms for

2:08

observability so that we can know what

2:10

is happening with all of our

2:11

applications and all of the payments

2:14

that we are processing.

2:15

Now

2:16

we have come a long way in this platform

2:19

engineering journey.

2:20

But it wasn't always easy.

2:22

And I would like to start my talk with a

2:24

bit of a story using fictional names and

2:27

characters

2:28

but a story based on my experiences

2:30

while working here in Banking Circle.

2:33

I'm sure many of you

2:35

will relate to this story as well.

2:38

Let's say that we have a new developer,

2:39

right? And they have joined the company,

2:41

they have joined the team. They just

2:43

start working and they build their first

2:45

application.

2:46

Um this developer is great. They are

2:48

very good at coding the application

2:51

perhaps for some payment system.

2:54

Um but eventually they hit a wall. They

2:57

have the code

2:58

but they need to deploy that application

3:01

somewhere.

3:03

Then the developer will naturally ask

3:04

someone in the team, "Hey

3:07

what should I do with this application?

3:09

How do I deploy it?"

3:12

And then the person in the team might

3:13

say to the developer, "Well, you know

3:15

what?

3:16

Actually I did that, but it's already

3:18

set in this pipeline. Why don't you copy

3:20

it from there?"

3:22

The developer might go, copy the

3:24

pipeline, then maybe they have to adjust

3:26

something. It wasn't exactly the same in

3:28

this case because the application had

3:30

some specific requirements. Then they

3:32

will try to yes run this pipeline. Maybe

3:35

the pipeline will fail and ultimately

3:37

the developer doesn't know why it's

3:39

failing because the error has nothing to

3:41

do with the application that they coded.

3:43

Maybe they then go back to their

3:45

teammate and they are like, "Hey, what

3:47

can I do with this?"

3:49

And the teammate might say, "You know

3:50

what you should do?

3:51

You should talk to this person that is

3:53

working in the infrastructure team. They

3:55

will help you."

3:57

Now this developer will go. Maybe they

3:59

will talk with this person. Eventually

4:01

they will say, "Oh yeah, of course this

4:03

is an error that happens very often. I

4:05

can solve it just for you."

4:07

The error will be solved. Then the

4:09

developer will deploy the application

4:10

and then maybe that deployment will

4:12

succeed only to realize at the end of it

4:15

that actually on top of that application

4:18

the developer also needed a database or

4:20

maybe some blob storage.

4:22

>> [snorts]

4:23

>> Back to square one, the developer will

4:25

go to maybe this person in the

4:26

infrastructure team to ask "Hey, should

4:30

I use you to create this database or

4:33

this blob storage for me?" And maybe the

4:36

person, let's assume best intentions of

4:38

course, maybe they want to help but they

4:41

will say, "You know what? I actually

4:43

have a lot of other things that I'm

4:44

working on. I will help you, but that's

4:47

going to be next week."

4:50

Um so obviously the developer will get

4:53

frustrated because they kind of had done

4:56

their part but then they struggled a lot

4:59

in this process to then deploy the

5:01

application and to get it running with

5:04

all of the dependencies that it needs.

5:08

Um perhaps they were following some

5:10

pieces of documentation, something that

5:13

someone wrote along the way, but then

5:15

they were also relying on asking this

5:17

teammate and asking the person in the

5:19

other team.

5:20

Now this is a bad situation that again I

5:23

think all of us have been at some point.

5:26

It's a bad situation for a person.

5:30

But today all of us are using LLMs,

5:34

we're using AI agents to help us in our

5:37

daily job. And if this situation was

5:39

tricky for a developer

5:42

this situation is essentially impossible

5:44

for a machine. Cuz the machine is not

5:46

going to

5:48

you know, go and try the pipeline and

5:50

then go up to the second floor and talk

5:53

to the person in that other team. Now of

5:55

course an agent could use Teams or maybe

5:58

even use something from

6:00

some voice model and call over the

6:02

phone, but generally a coding agent is

6:04

not going to be able to do all of these

6:06

things.

6:07

So these pain points

6:09

that the developers were facing

6:11

suddenly become much more obvious when

6:14

an agent is facing them. And they are

6:17

limiting factor in how productive this

6:19

coding agent can be or how productive

6:22

the developer can be when using the

6:24

coding agent.

6:27

And what I'm about to tell you

6:29

um I'm going to address some of the

6:31

points in this story

6:33

but the gist of it is that best

6:34

practices are still best practices.

6:37

We have known for a while that some of

6:40

these things like relying on a teammate

6:42

to tell us how to deploy an application

6:44

or having to reach out to a person in a

6:46

different team

6:48

or having to wait for a pipeline only to

6:50

realize that it wasn't exactly what we

6:52

needed

6:53

they were never good.

6:54

They are just much more obvious and

6:57

perhaps much more painful now that we

6:59

have these coding agents working next to

7:02

us.

7:03

So what can we do

7:05

about it?

7:06

Well, the first thing to me it has to be

7:09

self-service.

7:11

If I need any resources from this

7:13

platform, if I need to be able to do

7:15

anything through this platforms, I

7:17

should be able to do it in my own.

7:19

Similarly, if my agent needs to be able

7:23

to do anything on the platform, it

7:25

should be able to do it on its own.

7:29

There should be no process that requires

7:31

talking to a specific person or waiting

7:34

for a specific person to do something.

7:38

The agent should be able to trigger

7:41

everything it needs and for that of

7:45

course it's also important that this

7:47

self-service flow or this self-service

7:50

process is intuitive.

7:53

Of course we need to document how these

7:55

things work and I will get to that in

7:57

just a moment.

7:58

But the easier that we make it, the more

8:01

self-service it actually is.

8:04

Because if if it is technically

8:06

self-service but it requires fetching

8:08

some building blocks from five different

8:10

places and putting them together and

8:12

then triggering a flow somewhere else

8:15

then it's not really self-service.

8:18

So make it automatic, remove [snorts]

8:20

people from the process

8:22

and make it easy to the greatest extent

8:24

possible.

8:29

The second point that I think it's

8:30

important is make it API based.

8:33

Self-service could look in many

8:35

different ways and it could also be

8:38

something based on sending some

8:41

text somewhere. It could be based on

8:43

clicking a button. It could be based on

8:46

many things, but agents are good at

8:48

calling well-defined APIs.

8:51

It could also be of course a CLI on top

8:54

of the API. It could be something like

8:55

an MCP server around the API that the

8:59

agent uses. All of those are also good

9:01

ideas, but generally under all of that

9:03

you should have a well-defined API.

9:06

This is discoverable. So as it interacts

9:09

with it, the agent is going to discover

9:12

what it can do and the options that are

9:14

there.

9:15

It has schema validation. So naturally

9:18

the agent will only send things that are

9:21

going to work.

9:23

Um it also has authenticate or it can

9:25

have, depending on what you're building,

9:27

authentication and authorization in

9:29

place. So because of that your agent

9:31

will be allowed to use your credentials

9:33

as a developer or maybe if the agent is

9:36

in a particular flow it will have its

9:37

own.

9:39

But it will be able to do all of these

9:40

things in a secure way and it will know

9:43

what it's doing.

9:44

And with this the agent can go back and

9:47

forth. It can try to do something. The

9:49

API will get it a response and the agent

9:51

can start working in this way where it

9:54

goes in a loop until it gets what it

9:57

needs or what it was asked to do.

10:01

Which brings me to my next point. An

10:04

agent is typically running in your

10:06

machine.

10:08

You could also have it on uh some server

10:10

somewhere and you might have open claw

10:12

or something and you're communicating

10:14

with an agent there. But typically an

10:16

agent is local to the machine.

10:19

Of course, the models are running

10:20

somewhere else. But the work the agent

10:23

is doing is local.

10:25

So, make it easy for the agent to do

10:28

that.

10:29

First of all, shift left. If something

10:31

is going to fail, it should fail as soon

10:33

as possible.

10:35

So, don't make the agent

10:37

push something to your version control

10:39

system only to then fail on some

10:42

workflow after a few minutes.

10:44

If you can validate things up front, if

10:47

you can run them just locally, again, by

10:49

calling those APIs or maybe using some

10:52

some type of wrapper about around them,

10:55

do that. Shift left as much as possible.

10:58

Then, like I said, the agents are going

11:00

to go on a loop.

11:01

So, if the agent is in your machine and

11:05

it can do everything it needs there,

11:07

and you clearly define

11:09

this is what I need,

11:11

the agent is going to iterate until it

11:13

gets there.

11:14

Now, it is important that you give it

11:16

precise instructions, that you describe

11:19

the task, that you tell the agent, this

11:21

is what I need you to do.

11:24

And it is also important that you tell

11:26

the agent, this is how you know

11:29

you have succeeded at the task.

11:32

This is a bit important when when

11:33

working with agents because as humans,

11:36

we could verify this in different ways.

11:38

And we have a lot of observability

11:39

systems where perhaps we would like to

11:42

check if the application has been uh

11:45

deployed and the metrics are looking

11:47

fine. Maybe we will be looking at some

11:49

dashboards.

11:50

The agents are not going to be looking

11:53

at those graphical interfaces.

11:55

So, you also need to think how does

11:57

observability look like

12:00

if the prime user is going to be

12:03

an AI agent. Make those logs, metrics,

12:06

traces, everything that can help

12:10

available via an API or via CLI or an

12:14

MCP server or something like that.

12:17

By doing that, you're letting the agent

12:19

close the loop.

12:20

You're telling it

12:21

how to do things

12:23

and how to verify that the things have

12:25

been done correctly.

12:29

And since I'm speaking about telling the

12:31

agent how to do things,

12:33

something that is crucially important is

12:35

documentation.

12:38

Of course, you already have

12:40

documentation. I think many of us have

12:42

written documentation, uh have put it

12:45

somewhere and then were unable to find

12:47

it.

12:48

Um when we need to expose this

12:52

documentation to agents,

12:54

but then again, this was already true

12:55

for humans, we need to be structured

12:57

around it. So, there are different

12:59

strategies that you might want to take.

13:02

One of them could be, especially if

13:03

you're working in a smaller

13:04

repositories, keep your documentation

13:07

next to the code it's documenting.

13:10

That way, if an agent is working in that

13:12

particular folder or repository, it has

13:15

everything it needs.

13:16

It has the code it needs to work on and

13:18

the documentation that describes it.

13:21

If you're working on something bigger or

13:22

perhaps as a platform team, if you need

13:24

to expose all of the

13:27

documentation about the platform that an

13:29

agent might need,

13:31

the better idea is to put it in a

13:33

centralized place so that the agent can

13:35

go there and start discovering which

13:37

documentation is available.

13:39

Now, once again,

13:41

think API first.

13:44

Because the agent is

13:45

going to be much better at consuming the

13:47

website doing that and specifically if

13:50

you can give it the specific bits of

13:51

documentation that it needs over API,

13:53

even better, rather than getting the

13:56

entire HTML HTML page in memory

14:00

and trying to figure out what is the

14:02

relevant uh bits there.

14:04

Of course, when we talk documentation,

14:06

we can also think about um

14:09

agent-specific documentation. I assume

14:11

that many of you are already familiar

14:13

with this, but

14:14

you can use the agent.md files or

14:18

cloud.md,

14:19

compiler_instructions.md, depending on

14:22

on your agent of choice.

14:24

And by doing that, you can also describe

14:25

the agent how it should work in a

14:27

particular repository.

14:29

>> [snorts]

14:29

>> You can tell it, well, you should always

14:30

build in this way, test in this way,

14:33

deploy in this way. You can verify in

14:35

this way. You can include all of that in

14:38

your agents.md.

14:40

You can also have one of these more

14:42

generally applying to different systems

14:44

and then add a a one uh an agents.md

14:48

more specific to um a particular project

14:51

or repository on top of that.

14:54

You can also use skills.

14:56

If you have some conventions that you're

14:57

following or some uh well-defined way of

15:01

uh interacting with some of your

15:02

platforms, you can codify those in a

15:04

skill, which is again just a markdown

15:07

document. And by doing that, you're

15:08

telling the agent, when you do this type

15:10

of task, you should do it like that.

15:17

Last but not least,

15:19

you should also encourage contributions

15:21

in your platforms. If you're building

15:24

internal developer platforms, those are

15:25

going to serve the developers in your

15:27

organization.

15:29

And you want them contributing because

15:30

that way they can also help you.

15:33

They can help you help them.

15:35

Um so, you should encourage them. You

15:38

should welcome contributions and because

15:40

they are using AI agents, the entry

15:43

barrier is going to be lower. And so, I

15:46

would expect, and that's what I have

15:47

seen, that people are more welcome to

15:49

contribute to the platforms.

15:52

Now, of course, this is a level a

15:53

double-edged sword because ultimately,

15:56

as the person or the team owning the

15:58

platform, you are responsible for its

16:00

maintenance.

16:02

So, you should think a lot about which

16:04

things should be taken into

16:07

consideration when contributing to the

16:09

platform.

16:10

You need to have some guardrails

16:11

thinking about security or compliance or

16:14

just following a well-defined set of

16:16

standards that then helps you maintain

16:19

the platform

16:20

um

16:21

by virtue of always following those

16:23

conventions.

16:25

You can do this um with some policies

16:28

perhaps in your systems, but you can

16:31

also, yes, rely on giving context to the

16:34

agent.

16:35

Once again, you could uh use agents.md.

16:38

You could use some skills so that when

16:41

people want to contribute on your

16:42

platform, they can also point their

16:44

agents to these markdown files and refer

16:46

to those as as documentation on how to

16:49

contribute.

16:51

Generally, I would encourage a

16:52

combination of the two. Have guardrails

16:54

in place for everything that you

16:55

absolutely don't want to happen.

16:57

Use some sort of policies for that.

17:00

But then on top of that, use uh these

17:02

markdown files to help the agents work

17:05

in the way that you want them to.

17:10

And then,

17:12

we get to a very important question,

17:14

uh which is, okay, we have done all of

17:16

these things, right? People are using AI

17:18

um in the organization. They are

17:21

following now these practices that we

17:23

have been recommending. We have built a

17:24

platform that can be used by AI.

17:27

But did it work?

17:31

And I think the way of knowing if it

17:32

works is by measuring whether it worked

17:35

or not. You can, of course, measure

17:36

these things before and after um

17:40

making some changes in your platform so

17:43

that you can see whether they had an

17:44

effect or not. And depending on what you

17:46

want to do, you might want to focus on

17:48

some type of metrics or on others.

17:51

Now, we know that there is metrics about

17:53

application delivery and we have the

17:55

whole uh Dora um metrics on that.

17:59

Uh change frequency, uh mean time till

18:02

recovery, um

18:04

lead time,

18:06

and

18:08

uh

18:09

and another one that I can't really

18:10

remember right now. But those metrics

18:12

are measuring how

18:14

often your developers are able to

18:16

release and how good those releases

18:19

typically go.

18:20

You can also measure reliability.

18:22

Perhaps that's um

18:23

the main concern. It certainly is in in

18:26

fintech institutions.

18:27

So, you can check, okay, are my

18:29

applications more reliable than they

18:30

were before? Am I having less errors

18:33

than I was having before? Is um

18:36

traffic performing in any different way?

18:39

Um

18:40

or you might want to look at more

18:43

platform-specific metrics, such as how

18:46

many support requests have I got?

18:48

If people and their agents can do

18:50

everything on their own because it's

18:52

self-service, am I then not needed to

18:54

support them?

18:56

Or am I now having more support requests

18:58

because the way in which I implemented

19:00

this is confusing?

19:02

Um you can also use some other

19:03

frameworks about developer satisfaction

19:06

and developer experience, such as the

19:07

space one.

19:09

But my general point is, think about

19:11

what you want to achieve

19:13

with this making it easier for AI agents

19:16

to contribute, and then measure whether

19:19

you actually succeeded at that or not.

19:25

And with that, I'll just summarize my

19:27

advice that once again comes from my

19:29

experience. There could be more points

19:31

in this list, but I think this is a good

19:33

point where to get it started.

19:35

If you want to make your platform ready

19:38

for AI agents so that you can get the

19:40

most out of them, make sure your

19:42

platform is self-service, API-based, and

19:45

local-first. Make sure you have good

19:48

documentation and observability in that

19:51

platform so that it's easy to tell the

19:52

agent what to do, how to do it, and how

19:56

to verify its own.

19:58

And encourage welcome contributions to

20:01

your platform cuz that way you can also

20:03

move faster and implement the features

20:05

that your users need.

20:07

Last but not least, measure that all of

20:09

these indeed work.

20:13

And maybe

20:14

one extra piece of advice, maybe your

20:17

organization has been resisting some of

20:19

these best practices. Maybe you have

20:21

been trying to push for these API first

20:24

platforms or to make them more local

20:26

friendly

20:28

or to have the time to write proper

20:30

documentation.

20:31

But then you have gotten some resistance

20:33

to that because people have were focused

20:35

on other priorities.

20:37

Take advantage. Everyone from the

20:39

executive level to the individual

20:41

contributors are looking at AI now. It

20:44

is a very hot topic. So, you can use AI

20:47

as the excuse to implement some best

20:49

practices that again were always best

20:52

practices if you didn't have the chance

20:54

to do it until now.

20:57

Thank you very much for listening.

21:00

My name is Juan Herrero Salorza. Here

21:02

you have links to my LinkedIn, my

21:03

personal website, and my GitHub. And if

21:05

you've liked it, please connect over

21:07

there.

21:08

Thank you and have a great AI Engineer

21:10

Europe event.

Get the TLDR of any YouTube video

Transcribe, summarize, and repurpose videos in 125+ languages — free, no signup required.

Try YouTLDR Free
Platforms for Humans and Machines: Engineering for the Age of Agents — Juan Herreros Elorza — Full Transcript | YouTLDR