Loading video player...
Hello, I am Whitney. I'm a developer
advocate at Data Dog, but today I'm
playing the part of a developer and I
work at a very important company and
we're we're close to be making the
Magnificent 7, the Magnificent Eight.
And my company uh serves this image of a
rainbow. And when you press the spider
button, it adds a spider. So, if I can
I'm nervous. There we go. So, if you
want to No, I didn't want to view the
page source. I learned this new trick
where you can create a QR code for a
page by right-clicking. So, if you want
to have my company's illustrious uh
Spider Rainbows app, um it will change
throughout the course of this
presentation. Spoiler alert. So, it's
fun to see it on your phone and that
it's a real thing. Um I'll generate this
again later. So, my company, we made
this spiders app and We're getting
complaints from our users that they're
not happy because it's not realistic
because they're just really upset
because spiders don't have teeth and
they're just like, "What the heck?
Spiders don't have teeth. We can't. This
app is unusable. We need to fix this."
So, as a developer, I'm going to do some
work to fix this. And um I'm going to
simulate that work here in my in my
Oh, I have excuse. Yes. Okay. um in my
uh terminal and I'm going to just
I have a a script because no one needs
to actually see me develop anything. So,
I just developed a new feature just like
that. Magical. Okay, but here's the
thing. Now, I need to interact with my
company's platform and follow my
company's policies to get this thing
into production. So, you know how I'm
going to do that? I can't be bothered to
write a commit message anymore because
now I have a new best friend. Sorry,
Victor. And that best friend is
>> Thank you, Claude. [laughter]
Finally.
>> Um,
I want to I'm ner Oh, sorry. So, what
I'm going to do is I'm going to talk to
Cloud Code with an app called Whisper
Flow because I also can't be bothered to
type anymore. So, I'm going to say,
"Hey, Claude Code, I just developed a
new feature. Help me get it into
production." So, let's see what happens
here.
So, the definitely I don't want to write
a commit message. So, we're going to get
a commit message out of this. I'm
eventually going to also run it through
CI/CD. It's going to get reviewed and
then I want to create a PR. I want to
merge that PR. And this is all work
that's unique enough that it can't be
automated,
but that also needs to um but also needs
the developers attention. Um so that so
right now what it's doing, you saw me
clear the context at the beginning. So,
it knows nothing about anything. So,
it's looking at my codebase now to
figure out what changed to figure out
what commit message to write. And so,
we're doing that. Here we go. We're
going to update spider image v1 to v2.
Removing teeth since spiders don't have
teeth or jaws. Spiders only consume
liquids through their mouth straws
[laughter] by injecting digestive
enzymes into prey and slurping up the
resulting soup. [laughter]
>> Sorry.
>> Whomever of you thinks that there is no
value in AI. [laughter]
So yes, I think that's an excellent
commit message. I do want to proceed.
Um, and so now I'm hope now I know that
it needs to because I'm a developer and
I've worked here a long time. I know the
next thing it needs to do is get
approved by my CI/CD pipeline.
So I'm going to wait for it to come to
go do that.
And I don't know if you're picking up
what I'm putting down, but what I'm
trying to show here is that the new
Uhhuh. What's this? Oh, we're going to
create the PR. Of course, we need to do
that first. So, here we go. Spiders
don't have teeth. It slurp [laughter]
through their little mouse. Um,
so yes, we're creating the PR.
Um the point is your developers are not
uh interfacing with with your platform
in the way they used to. As a developer,
I'm doing everything I can do to stay
within here. So, first of all, I just
realized I made a mistake. My company
has um my company has a template I'm
supposed to use for PRs, and I got
distracted and didn't use my company's
template. also is trying to get me to
look at my code review, but I know that
I need to um what about CI uh to I know
that my CI/CD needs to pass. So, I'm
having to babysit that part of it.
>> The whole point so far and we'll get
further is that developers in your
company are or will be very soon using
AI, right? And you're building
platforms, right? And if those platforms
somehow do not are not made in a way
that they can that AI clo code in this
case cursor whatever you're using that
it's capable of interacting and finding
out how to do and what to do and why to
do it if you don't build it that way
your developers will be bypassing you
completely right it will just say I
cannot deal with that stuff
>> so I had you reminded to use a to use
the CI/CD pipeline to check for that
first. And I want to do that in quad
code because it's going to propose a fix
for me and I want I don't want to have
to go fix it somewhere else. But it's
also a dummy and it's trying to change
the test instead of changing the code.
So now I'm going to say uh
>> you're an idiot. Don't change test.
Change the code. [laughter]
>> Missed it here.
>> Idiot. Change the code, not tests.
[laughter]
>> There we go.
When when our tech overlords come, when
our AI overlords come, they're gonna
think I'm the mean one.
>> I always do that to her AI. I don't want
I don't want my AI to go against me.
[laughter] I don't like they can
remember things.
So, we're doing that. And then, um, as
what came up before, we have Code Rabbit
in place next. And so, Code Rabbit is
going to review the PR. And what Code
Rabbit does, so we're committing and
pushing again. Well, code code rabbit is
pretty cool because it's not like just a
llinter. It actually understands how
your code works that you're you're um
you're making a PR around and it and it
understands the wider code base and it's
looking for consistency. It's looking
for um code quality. It's looking at
performance. It's looking at Oh, thank
you. It's looking at um it's also
looking Oh, if your documentation is
different than what the actual code is
doing, it'll let you know about that.
So, it's a really cool AI agent that um
is going to do our next round of
reviewing.
Uh but we let it we just agreed for it
to sleep for 30 whole seconds.
>> There you go. [laughter] Anyway, so
>> the story is that we need to start think
if people are going to start using
agents and they are right whether you
like it or not whether you do it
whatever you think about it people in
your company are doing it officially or
unofficially right if you don't if you
ban it as a company they will there will
be equivalent of shadow infrastructure
and they will they will do it anyway
right so what we need to think about is
how do we enable our work and when I say
our in this context I mean like platform
engineers, builders, whatever we call
ourselves, uh platform engineers. How do
we enable
somebody's else's agents, probably
generic ones, to follow the processes we
created to execute the things that we
already have, right? And how to do the
things that should be done in a correct
way. Like one of the things that
happened right now I mean a few minutes
ago is that Pier Pier was created
without using the format that we defined
in advance right because cloud code in
this case set has no idea that in our
organization we use PR templates right
how could it know it cannot know in
advance and u
>> so code rabbit reviews come in I use the
MCP server to interact with it so an MCP
server is a tool that's in my a that
works with my agent so my agent can
access uh information that's external to
my codebase and it's telling me I have
one problem that I have to extract the
inline styles to CSS class. So I have a
CSS whatever it's it's a it's a nitpick
it's calling it but it's definitely a
way to improve my code and um I'm going
to defer it to later because this is a
live demo and that would be boring to
watch and it has a second nitpick
problem. Let's see what it wants.
Um, it says, [laughter] "While the 12
lines of comments about spider anatomy
are accurate and entertaining, they may
be excessive for production code,
[laughter]
which is fine. We're going to skip that,
too." So, I want to skip our code, like
actually changing and re-reviewing
because this is a demo and that's
boring. But the point is that we have uh
review happening and I still don't have
to leave pod code to get that review and
and work with that review. Um, so it's
thinking, let's see. Yeah. to merge the
PR. So, we're going to merge the PR
and um once we merge the PR, then I have
Argo CD. It's going to set up um it's
going to first it's going to go through
GitHub actions. It's going to build a
new image. It's going to change the
configuration. Argo CD has picked up the
change. And I have a a GitHub web hook
set up to trigger Argo CD to sync. So,
it should all be pretty quick, as quick
as these things can possibly be.
And then meanwhile I'm going to need to
remember as a developer that I want to
clean up my u clean up the branch that
I'm on and make sure I'm back on main.
So I'm going to be working on that.
Well Victor.
>> Okay. Okay.
>> I should entertain a guest, huh? Uh
okay. So
going back to the platform, right? There
are very very complicated things that
you can do that you should be doing. You
should be building your custom agents.
You should maybe uh
do additional learning of models. You
should be setting up vector databases.
You should be setting up graph
databases, filling it with knowledge and
so on and so forth, right? And that's
probably things that many of you will be
doing in the future, maybe next year,
what's not, right? But there are some
things that
you can do extremely easy, extremely
fast. And it will sound silly, but
extreme actually actually it's extremely
extremely useful. You can start creating
your own commands right away. You can
you can create your when I say slash
commands or commands or prompts I mean
basically augmenting the context of the
agents. Meaning that think about how can
I instruct AI uh what are the exact
processes in my company those that I've
been building in a platform already so
far and where are the tools that I can
all execute. You will see in a second uh
very very soon. Are you done?
>> No. Um you will see a few examples of
those. For example, most of the things
that Whitney did so far from a company
perspective is wrong.
>> We have version two of everyone. You can
see it on your own uh
>> you can see it on your own phones now
[laughter] too.
>> So now we have more accurate spiders
that slurp up fly soup through their
little mouth straws. So success. Um uh
so now what Victor's talking about the
platform engineering team has come in
and given me the developer better tools
to work with to be able to uh go through
this entire process. In fact over in my
codebase I still am cleaning up branches
from the going from v1 to v2.
So what I'm going to do as a developer
the first thing I'm going to do is I'm
going to uh very do some very hard work
and develop my next feature.
All right. So now so the problem right
now well the actually it's a good thing.
So at my very very popular and
successful company with spiders and
rainbows um actually our users freaking
love the scary spider. They're like yes
more scarest scariness please. So, we're
going to make the new feature we're
going to develop is just to make the
most horrific spider we could possibly
come up with. So, we're looking for
unholy nightmare fuel is one of our
success metrics.
Um, so I've developed the
>> Oh, source PRD is not found. I don't
know what that means. Um, because I'm
not on the right branch yet because I
haven't closed out the last one because
I'm so excited to move on. So let's um
Victor, why don't you tell them why our
abstract is completely different?
>> I'm supposed to speak only when you make
a mistake. Huh?
>> Yes. [laughter]
That's true. Let's continue your
mistake.
>> Anyways, you what you will you you're
about to see very soon is probably the
first step that I've seen many people
are making. That's to make slash
commands. Right now, it might sound easy
kind of you just need to write a bit of
markdown text in a in a file, but it's
actually more much more complicated than
that because it takes probably quite
some effort, usually a couple of days,
maybe a full week just to nail the exact
process that AI should do kind of what
do we do? What do we do when we start a
new feature? What do we do when we want
to continue working on a feature? What
do we do when we're feature is done? And
that when a feature is done alone is
probably consists of uh 50 different
operations that we need to do like you
need to make sure that you're on a
branch you need to make sure that you
commit with certain message you need to
make sure that you create a pull request
you need to make sure that CI is running
you need to analyze what the results are
you need to code review you need to
bunch of things right
and uh what uh what you usually want to
start with is codifying all that unlike
the previous case where you used I don't
know whatever you're using Java shell
whatever you know right now we're
codifying it in English and [snorts]
that's probably your first month or two
of of the journey right afterwards you
will get more serious and you will start
creating your own agents you will start
creating your your own MCP servers and
so on and so forth we're going to see
that later for now let's let's take a
look at uh one of those commands
>> so I have now developed version three
the horrific nightmare spider. And now
I'm um I'm going to clear co cloud code
because I like when cla code doesn't
know the last thing I did because it's a
good thing because I have this PRD
that's a source of truth and I want it
to remain the source of truth. So um I'm
going to go ahead and and run the prdone
command in like a cooking show kind of
way. So we're going to pretend I just
developed a feature using this new all
the new tools that my platform team um
just gave me. So, I'm running PR done,
which I'll talk about in just a moment.
There we go. And um
Oh, develop. Hold on.
>> You mess up. Did you mess it up?
>> Yes, I did. Yeah. Talk. [laughter]
>> I should have gotten a
>> You see, don't don't give AI to to to
people. [laughter]
>> I have Don't worry, I have a script for
this.
>> Yeah.
>> Yeah.
Because if you execute it third time,
then it will work.
>> Uh I'm running a reset to v2 baseline
script.
>> Very good. Very good.
>> Yeah. And now I'm going to develop my
next version. Am I first I'm going to
check my branch.
>> Um please stop staring at me. [laughter]
>> It's so entertaining. There's nothing
nicer than seeing people fail,
>> especially when they're supposed to be
professionals who prepared for their
session.
>> [laughter]
>> that they know exactly what they're
going to show. They prepare. They know
what they're going to talk about. They
synchronize between speakers.
[laughter]
>> That's awesome.
>> How many times I've run this in my own
time. So that Okay, let's see what um
No, I don't I don't know what I did
wrong and I don't know how to recover.
Um
I'm just gonna we're gonna do this in
real time. I have a develop next feature
uh script that's supposed to set up
version three of my application with the
new PRD and cherrypick commands. Look at
that part of my script and tell me what
it does and tell me why it's not
working. This is how I really use Cloud
Code at home. I honestly really use
Whisper Flow too at home where I can
just talk to it. So, uh it really has
replaced Victor as my best friend.
[laughter]
Um,
so what I can show you in the meantime
though is we have these I have these PRD
commands that are available to me and
this is how I really did develop all the
features in this whole app. So when I
have an idea of what I want to do, I'm
going to use the prdreate slashcomand.
And when I do that, I'm going to have a
conversation with cloud code and cloud
code's going to ask me some questions.
I'm I might ask cloud code questions to
try to understand it. And once that's
done, it's going to create a PRD
document. PRD stands for product
requirements document. It's going to
create that PRD for me and it's also
going to create an issue for me.
Um yes. So let's here um what version 3
script does we want a clean reproducible
v3 development workflow and why it's
probably not working is
get your art on main one with commit
ahead. Yes.
fix it. How about just fix it?
I'm so spoiled, right? Um, so back to
the point. PRD. Uh, so I made the So
let's do it. I would make the PRD
creates with PRD create and it creates
the PRD and it creates a um it creates a
branch and then when I'm ready to
develop except not an issue. Then when
I'm ready to develop, I run prd start
and then prd start creates the branch
and get me started working.
And then once I'm done um I'm maybe done
for with work for the day but my
features not done I can do prd update
progress and that's going to check off
stuff in my prd that's done and that's
also going to make a work log of
everything I've done only if there are
changes. Whatever I'm just going to
[laughter]
this is an adventure. Uh, it's also
going to create a a so it's going to
mark off what I've done so far and
create a a log. So then next time I come
back to it, I can run prd next and it's
going to jump in right where I left off.
Like it's going it looks at recent
conversation. It looks at recent git
commits. It figures out what PRDs I'm
working on and figures out exactly where
I am in that PRD and it suggests what
our next uh work should be.
I have no idea how much I'm screwing up
my life when just agreeing to everything
that cloud code suggests. Um, [laughter]
and then one thing that happens often,
let me add one more fix p file. Okay.
[snorts] Um, one thing that happens
often is that I'll be working and and
working on on the feature I want to make
and then what happens is um is I I don't
want like the thing I thought I wanted
when I planned it. Now that I've it's
time to build it, I don't actually want
that thing.
>> So I have um so I have a script I have a
a PRD command for that too.
>> And that is PRD update decisions. And so
that's going to change the PRD based on
the new decisions I've made. And then
when it's done, I have PRD done, which
is what I was going to actually run for
you in person. Um, the script should now
work reliable reliably. Let's see. Uh,
reset to V2. Let's see.
No. Um,
>> I think that the important point, and
this is going to sound scary and you're
going to disagree with me most likely,
is that whatever interfaces you're
building right now, you're building some
CLIs, you're building some web UIs,
you're building some interfaces that
help developers do something, right?
That's what platform engineering is
about. You're building a platform in
APIs first and foremost, but then some
also some interfaces that developers can
use to interact with your platform. All
that will be partly or fully gone and
that's a reality that we need to face
today, right? Uh it will be gone simply
because the new interface that almost
all developers in your company will be
using is cursor or code
or uh what else is there? Copilot if
you're very unlucky. Um
and a few others, right?
And that creates some kind of ex
existential crisis, right? Because
I'm building a platform. I'm giving
people web interface. I'm giving them
CLI and they will stop using all those
things,
right? Because that's simply not the
direction that they are going unless we
force them, which is nice if you can
force people to do stuff, but then
that's slavery, not good. So what we
need to think about is how do we how do
we build bring what we are building
right now uh as a platform into those
tools into cloud code into cursor what's
not right and the answer to that
question not maybe from day one at the
very beginning that's prompts that's
commands it's easy but the answer for
that is codify all your platform all
your interactions with the platform as
MCP as an agent or something something
like
which is something that we would show
you if Whitney did not screw it up.
>> I you know what I did is I cleaned up my
>> There are no excuses.
>> There there is nothing you can say
[laughter]
to make me not be ashamed of this talk.
>> This is the first time we've we've done
like tons.
Thank [laughter] you. Thank you. Great.
Claude code did it. You all saw quad
code do it. Um so I can run prdone. I do
also before I u before it takes it away
from me when I'm read the cat. So this
as promised here's prdone done and so
it's going to go through that whole
process I demoed for you before which
the process I demoed for you before was
an improvement. It was nice for the
developer to have those tools handy and
to be able to do things a little more
quickly and easily than they could
before. But now it's now they're um with
this it's foolproof and we're following
company policy. For example, the
template, the PRD template I forgot to
follow. It's baked into what I'm doing.
So, um, it's gonna I don't know what's
happening. I'm just going to trust it.
[laughter]
Um, so I I want to go over the PRD, I
guess. Uh,
>> too late.
>> Too late. Um, it's been committed. Do we
want to complete the PRD workflow? Cool.
So, um, wow, that was fast. Uh, so the
PRD looks something like this. Right
now, we're running it through GitHub. Do
you know what? I'm going to skip ahead.
I I baked an error in there because I
wanted to demo something else. So, um,
there's something wrong with the
Kubernetes, uh, deployments. I want you
to remediate with the MTP tool.
>> Yeah,
>> the important Yeah. Press it. Press it.
>> Oh, it's been committed. I Well, I
haven't. Um,
shouldn't shouldn't it go through the PR
the uh
>> I I don't know. I never prepared for
this demo
>> for the PRD done command. Shouldn't you
be u making a PR and merging it and
stuff?
Um, we need to get that done first. And
now, spoiler alert, I baked in a
Kubernetes error, but um, so this is
kind of hard to see. It's a lot hard to
see. So, the PRD is actually quite long.
And um we have a problem statement,
solution summary, user impact, developer
experience that we want to have success
criteria that are all checked off
because the feature is done. We have
technical approach. This is the real PRD
that I really went through when I was
making this. We have multiple spiders,
layout, implementation approach, code,
comment strategy, milestones. Milestones
are a big thing I use when I'm
developing. To me, I want this to
represent enough work to fit into one
git commit. Like I'm I'm thinking in
terms of milestones. um acceptance
criteria. Um now it's working uh doing
more. It's using the p the pull request
template.
>> Finished.
>> Finish. Finish. Finish.
>> What? What do you want?
>> This high press.
>> Yeah. What are you trying to do? Wait.
[laughter]
>> Remind me not to use you next time in a
live demo. [laughter]
>> Stop it.
>> If we have any chance, I really want V.
I want everyone to see the horror.
[laughter]
They're kicking us out. She's looking at
us angrily. Look, look at look at it.
You see, you saw those eyes.
>> Okay. [laughter]
>> Have you seen those eyes?
>> But it's over. Those of you who saved
the QR code, I am going to push the the
horrific spider image. So, um, thank you
so much. Thanks for bearing with me.
This was a lot of fun. I hope you
learned something. Bye, y'all.
[applause]
Don't miss out! Join us at our next Flagship Conference: KubeCon + CloudNativeCon events in Amsterdam, The Netherlands (23-26 March, 2026). Connect with our current graduated, incubating, and sandbox projects as the community gathers to further the education and advancement of cloud native computing. Learn more at https://kubecon.io Let the Platform Build Itself: Using AI To Construct an Internal Developer Platform With CNCF Tools - Viktor Farcic, Upbound & Whitney Lee, Datadog What if you could build your Internal Developer Platform (IDP) by simply describing what you want and let AI do the rest? In this talk, we'll explore how large language models, agents, and Model Context Protocol (MCP) servers can be used not just to operate an IDP, but to build one from scratch. We'll demonstrate how AI systems can reason about infrastructure needs, policies, workflows, and developer experience patterns to compose a fully operational IDP using CNCF projects, such as Crossplane, Backstage, Argo CD, Kyverno, and others. All of this will be shown in a live demo where an AI system, guided by natural language input and assisted by MCP servers, constructs a functioning platform in real time. Attendees will leave with a deeper understanding of how AI tooling can accelerate platform engineering, reduce cognitive load, and shift the role of humans from builders to architects of intent.