00:00:14.240 --> 00:00:15.679
Hello, hello, hello.
00:00:15.839 --> 00:00:18.559
And we have three more talks to go.
00:00:18.960 --> 00:00:21.839
The first one now is half a talk, half a long QA.
00:00:22.079 --> 00:00:23.519
That's what he said he wanted to do.
00:00:23.679 --> 00:00:28.559
So we got Kelsey Haitar for you, back from the silence that he's done.
00:00:28.640 --> 00:00:30.399
He hasn't given a talk for quite a while.
00:00:30.559 --> 00:00:32.479
He was a distinguished Google engineer.
00:00:32.640 --> 00:00:37.039
Anybody who had anything to do with data storage knew about him and still knows about him.
00:00:37.119 --> 00:00:38.560
So we're very happy that he's here.
00:00:38.719 --> 00:00:48.079
He's going to talk about zero token architecture, meaning, like, why do we forget the most basic things, how to optimize and burn tokens just for the sake of burning tokens?
00:00:48.240 --> 00:00:50.640
So hopefully there will be some good information for you.
00:00:50.799 --> 00:00:57.200
Please ask questions in the app so I can have something clever to ask because uh I can otherwise ask him non-clever things.
00:00:57.280 --> 00:00:58.560
So we'll see about that.
00:00:58.799 --> 00:01:01.600
And use the app for that, and we see you in a second.
00:01:01.679 --> 00:01:04.799
And now I bring to the stage Kelsey Hightower.
00:01:05.439 --> 00:01:06.959
So happy to have him here.
00:01:07.120 --> 00:01:08.159
Thanks very much.
00:01:17.040 --> 00:01:22.560
I promised myself I would never make slides again, and I don't know why, but I made slides just for you all.
00:01:23.599 --> 00:01:27.519
Uh first thing, zero token architecture isn't really a thing.
00:01:27.680 --> 00:01:29.760
I made it up out of spite.
00:01:30.640 --> 00:01:37.359
As someone retires scrolling through LinkedIn, y'all seem to be having a lot of fun burning tokens.
00:01:37.840 --> 00:01:44.879
And every once in a while I get the privilege of going to a conference and talking to people about what are you burning the tokens for.
00:01:45.359 --> 00:01:50.239
And some of the things you all mentioned, I feel embarrassed for you.
00:01:52.079 --> 00:02:02.640
And so the first thing is in my domain, the agentic world is probably a little bit more applicable because I'm seeing people starting to bring agents into things like workflows or things you would see in the infrastructure world.
00:02:02.879 --> 00:02:07.760
And so the first thing I did is, since as an outsider, I had to get the terminology correct.
00:02:07.920 --> 00:02:08.240
Okay?
00:02:08.879 --> 00:02:11.360
So first thing is what is an agent?
00:02:11.599 --> 00:02:15.039
And I ask people, and they just make up all kind of stuff.
00:02:15.360 --> 00:02:20.800
But at the end of the day, it's something that performs a specific task.
00:02:21.520 --> 00:02:25.919
And some of you all like to brag about how many agents you have running, like it's a competition.
00:02:26.719 --> 00:02:32.000
I got 5,000 agents doing absolutely nothing.
00:02:33.840 --> 00:02:39.120
And then I had to deal into the details of like an AI agent, because this is a little bit specific.
00:02:39.520 --> 00:02:42.240
And so when you think about an AI agent, what is that?
00:02:42.479 --> 00:02:42.719
Right?
00:02:42.879 --> 00:02:50.639
So it's something that has a model, a prompt, some tools, an MCP server, and some skills.
00:02:51.039 --> 00:02:57.360
I'm like, damn, that's a lot of stuff to perform specific types of tasks.
00:02:57.599 --> 00:03:02.080
And just so you know, that I did go, what I think is one of the best sources for this type of thing.
00:03:02.159 --> 00:03:03.360
I just went straight to anthropic.
00:03:03.599 --> 00:03:06.719
That's the place where you a lot of you seem to be burning your tokens.
00:03:07.520 --> 00:03:10.159
It's also the people who seem to be in the driver's seat right now.
00:03:10.240 --> 00:03:20.159
So I know what it's like to have a hype cycle, but it's also clear that there's always a few people really driving things, and there's no doubt that the things I'm seeing people do with Claude, it's worth the hype.
00:03:20.319 --> 00:03:25.360
Not that I'm a big fan, but I can recognize when something is making momentum.
00:03:26.080 --> 00:03:28.960
And so I digged in, it's like, let me read the documentation.
00:03:29.120 --> 00:03:30.719
That's the thing you still do in AI, right?
00:03:30.800 --> 00:03:31.759
You still read the docs.
00:03:31.840 --> 00:03:33.039
Do y'all still read?
00:03:33.360 --> 00:03:33.520
No.
00:03:34.639 --> 00:03:35.680
So you don't even read the docs.
00:03:35.759 --> 00:03:38.000
Y'all ask Claude to tell you what's in the docs.
00:03:38.560 --> 00:03:42.560
Boy, y'all gonna be in for some pain when people start injecting nonsense.
00:03:44.560 --> 00:03:46.719
And I zoomed in, so I read the docs.
00:03:46.800 --> 00:03:48.960
And this is the line that jumped out to me.
00:03:50.080 --> 00:04:00.719
You can execute an agent and will optionally execute bundle code or load references to other files.
00:04:01.680 --> 00:04:03.680
I fell out of my chair.
00:04:04.719 --> 00:04:13.840
Five, ten years ago, if you told me that you had a process that could run arbitrary code, we would consider that malware.
00:04:14.800 --> 00:04:16.720
We would try to remove all of this stuff.
00:04:16.879 --> 00:04:24.560
We spent so much time getting to zero trust where you run things and you remove all implicit side effects.
00:04:24.720 --> 00:04:26.560
That's actually really, really hard to do.
00:04:26.639 --> 00:04:30.959
If you're really good at it, you can do formal verification of your software.
00:04:31.199 --> 00:04:34.079
Then I wake up and y'all like, forget all of that.
00:04:34.879 --> 00:04:39.439
Let it do whatever it wants, and we'll ask it not to.
00:04:42.560 --> 00:04:44.399
And so I get it.
00:04:44.879 --> 00:04:49.600
You need all of this stuff, and you need guardrails, and you need all of these things.
00:04:49.759 --> 00:04:54.160
And I don't know y'all say you don't write the code anymore, but I've seen y'all markdown files.
00:04:54.560 --> 00:05:01.920
Y'all writing a lot in those markdown files that I'm starting to think it would have been a little easier if you just wrote the first code in the first place.
00:05:02.240 --> 00:05:06.720
But this talk isn't about whether you should AI to write code or not.
00:05:07.439 --> 00:05:12.560
The thing I want you to think about is should you be running inference in a tight loop?
00:05:12.800 --> 00:05:27.680
So now this stuff is moving into the agent realm, and I'm watching the agent, if you ship an agent with all of these things and you ask it to do inference for every part of that task, it seems to go against the very theory of automation to begin with.
00:05:27.920 --> 00:05:36.959
You try to figure out a process and you make it efficient, and then you lower the cost to the point where some tasks can be put into the hardware.
00:05:37.279 --> 00:05:39.120
TCP offloading.
00:05:39.439 --> 00:05:45.759
There's so many things that we've gotten to the point of when it's expensive, we always find a way to make it cheap.
00:05:46.399 --> 00:05:48.399
Uh expensive SQL query.
00:05:48.800 --> 00:05:55.839
If you try to query a database and do a select or join that causes too much friction, what do we learn to do?
00:05:56.079 --> 00:05:57.199
We cache the result.
00:05:57.600 --> 00:05:59.519
So that way it's been a tight loop.
00:05:59.680 --> 00:06:01.600
You're not going to destroy your database.
00:06:01.680 --> 00:06:03.279
It makes no sense.
00:06:03.600 --> 00:06:05.360
And then we also validate our inputs.
00:06:05.439 --> 00:06:05.680
Why?
00:06:05.759 --> 00:06:08.879
Because we don't want people injecting bad data into our database.
00:06:09.120 --> 00:06:15.680
I know it's AI, so you're gonna allow this, but I'm gonna enjoy y'all relearning SQL injection and what that means is gonna be amazing.
00:06:15.839 --> 00:06:20.959
And I look forward to the name that you give to these fundamentals, but I promise you the fundamentals will be the same.
00:06:21.199 --> 00:06:24.000
So, what is this zero token thing that I made up?
00:06:25.040 --> 00:06:28.800
Uh just being spiteful.
00:06:31.360 --> 00:06:35.360
A zero token agent is probably like all the software you actually run.
00:06:35.839 --> 00:06:36.160
Okay?
00:06:36.399 --> 00:06:41.839
Now, what I'm gonna do, the reason why I wrote slides is I need to be very nuanced about what I'm talking about here.
00:06:42.000 --> 00:06:56.879
Normally I would just have a discussion about this, but I want to remind some people because some people are new to this field, there's new to this industry, and they didn't have the benefit of going through the last 20 years to understand why some of this stuff actually makes sense, this AI stuff, some of it is attractive.
00:06:57.040 --> 00:07:01.120
And I have to remind myself so I can have a little bit more empathy when I'm talking about this.
00:07:02.319 --> 00:07:05.199
The other thing I want to keep in mind is I have a bit of a bias.
00:07:05.600 --> 00:07:08.160
Machines have artificial intelligence, they don't have wisdom.
00:07:08.240 --> 00:07:10.959
And the wisdom component is the experience piece.
00:07:11.279 --> 00:07:19.600
The part where you ask Claude, should you watch a movie, and you blindly go or don't go because of Claude's opinion is insane to me.
00:07:19.920 --> 00:07:24.879
Claude has never been to a movie theater, has never bought no popcorn.
00:07:25.839 --> 00:07:31.600
And there are movies that you'll like because of who you are, not because you're like everybody else.
00:07:31.759 --> 00:07:33.839
This is the thing that makes you human.
00:07:34.160 --> 00:07:39.600
So intelligence plus experience is the thing you use to make decisions.
00:07:39.759 --> 00:07:44.720
So if you're only making decisions based on intelligence alone, you're missing the point.
00:07:45.199 --> 00:07:51.199
And so running an agent in a tight loop with only intelligence and no experience, I'm not surprised.
00:07:51.439 --> 00:07:54.240
It's doing things that surprise you.
00:07:56.800 --> 00:08:01.920
And throughout my career, there's one thing I've learned from the wisdom side of it.
00:08:02.399 --> 00:08:03.920
You're not gonna need it.
00:08:04.240 --> 00:08:06.079
You ever see an engineer working on something?
00:08:06.160 --> 00:08:07.439
You're like, what are you doing?
00:08:07.519 --> 00:08:08.879
Why are you adding all of that?
00:08:09.199 --> 00:08:10.480
Just in case.
00:08:11.360 --> 00:08:17.360
And we frowned upon that because if you start adding all of these just in case things, it's just a bigger attack surface.
00:08:17.600 --> 00:08:19.759
It's more things that we have to update.
00:08:20.000 --> 00:08:26.480
We went through this process of trying to figure out how to ship software that does what it needs to do and nothing else.
00:08:26.639 --> 00:08:29.040
That was the benefit, that was an actual feature.
00:08:29.279 --> 00:08:35.600
Now I get it, I respect the power of flexibility and having something that can actually react off of a feedback loop.
00:08:35.840 --> 00:08:37.600
But remember the trade-off here.
00:08:37.759 --> 00:08:42.159
That surface gets very big to the point where now you don't understand it.
00:08:42.799 --> 00:08:44.240
So I'm gonna get into a use case.
00:08:44.320 --> 00:08:51.519
Remember, I'm old, so someone at my age, I don't buy crypto tokens, I buy treasury bonds.
00:08:52.240 --> 00:08:54.639
Your great-grandmother probably bought these.
00:08:54.879 --> 00:08:59.679
Now, some of you will laugh because it's not an exciting thing, but the world runs off of treasuries.
00:09:00.000 --> 00:09:04.879
Whatever value you think you have, put a multiple on it, and that's the treasury market.
00:09:05.360 --> 00:09:08.960
And so for someone like me, I tracked the treasury market and the prices and all these things.
00:09:09.039 --> 00:09:16.000
So I said, hey, let me try an AI agent to see if it can help me manage my treasury portfolio.
00:09:16.240 --> 00:09:17.919
Okay, very simple task.
00:09:18.159 --> 00:09:22.000
Now, some of you are like, Helsinki, that task is so simple, why would you use an agent for it?
00:09:22.320 --> 00:09:25.039
This is exactly the question I've been asking y'all.
00:09:25.360 --> 00:09:29.600
Some of the tasks y'all showed me, I'm like, why are you using an agent for it?
00:09:29.759 --> 00:09:33.840
So if this looks ridiculous, take a look in the mirror.
00:09:35.840 --> 00:09:40.399
So, all sophisticated investments, investors, this is how we manage our portfolios.
00:09:40.559 --> 00:09:49.440
On a spreadsheet, I don't care what software is out there, you gotta have your portfolio on the spreadsheet in case the financial institution goes away.
00:09:49.600 --> 00:09:56.480
I'm not sure this is gonna help you in court, but it do make you feel a little bit better when the spreadsheet matches your brokerage account.
00:09:57.120 --> 00:10:03.120
And so on this spreadsheet, I have one of my treasury bonds, one of the serial numbers, I just made up a quantity.
00:10:03.279 --> 00:10:09.759
And the thing about managing a treasury portfolio, when the interest rates go up, the price of your bond goes down.
00:10:10.240 --> 00:10:13.200
It's weird, but we're not here for finance education.
00:10:14.000 --> 00:10:15.679
And how would you manage this manually?
00:10:15.840 --> 00:10:16.879
Think through the steps, right?
00:10:17.039 --> 00:10:23.360
You will go and get your information about your treasury, and then you what you have to do is go get the current market rate to see what the interest rates are.
00:10:23.519 --> 00:10:24.879
Do they go up if they go down?
00:10:25.039 --> 00:10:26.480
You need to figure that out.
00:10:26.720 --> 00:10:29.519
Now you could go to a website to get this information.
00:10:29.759 --> 00:10:35.039
You may or may not trust the pricing data, and then once you have that information, you gotta calculate the current bond price.
00:10:35.120 --> 00:10:42.720
So if you bought a bond for 4.75%, you need to calculate how much it's worth now if the interest rates go up, because now it's worth less.
00:10:42.960 --> 00:10:45.759
And then you can update your spreadsheet with the new balance.
00:10:46.000 --> 00:10:47.039
Simple, right?
00:10:47.440 --> 00:10:54.720
Now, if you have any experience, you'd be thinking, Kelsey, you can solve this problem with a macro inside the spreadsheet.
00:10:54.960 --> 00:10:55.279
Right?
00:10:55.440 --> 00:10:59.600
You do not need to have Claude figure this out for you.
00:10:59.840 --> 00:11:00.159
Right?
00:11:00.240 --> 00:11:04.000
This is a common place where you don't need to burn any tokens to solve this problem.
00:11:04.080 --> 00:11:05.679
You can do it right there in the spreadsheet.
00:11:05.919 --> 00:11:10.639
But the problem is, do you really want your spreadsheet going to the internet to look at bond prices?
00:11:11.279 --> 00:11:11.919
You could.
00:11:12.080 --> 00:11:15.120
You could probably write an Excel macro to do this.
00:11:15.360 --> 00:11:18.240
And you could solve this problem without using Claud.
00:11:18.720 --> 00:11:21.679
But we're in the age of AI, we have to use it for everything.
00:11:21.759 --> 00:11:27.120
I know some of y'all have token burning quotas at work, so you gotta burn tokens somehow.
00:11:27.360 --> 00:11:31.279
So we're finna burn tokens or maybe burn tokens to solve this problem.
00:11:31.840 --> 00:11:35.360
Now, the first thing I have to do is I have to go to the Treasury website.
00:11:35.519 --> 00:11:39.759
Now I know some of you be like, you can just ask Claude where to go to get the bottom rates.
00:11:39.919 --> 00:11:41.440
This is also insane to me.
00:11:41.600 --> 00:11:43.840
There's only one official source for this data.
00:11:44.000 --> 00:11:46.399
Maybe Claude knows that, maybe it doesn't.
00:11:46.559 --> 00:11:48.720
But that's the decision you need to make.
00:11:49.200 --> 00:11:56.399
And when you go there, you're presented with like this list of interest rates every day that give you the last set of interest rates that have traded on the market.
00:11:58.159 --> 00:12:00.960
Now, once I have that, I can extract it.
00:12:01.519 --> 00:12:03.120
And then you gotta do some math.
00:12:03.360 --> 00:12:05.360
How many people want the college in here?
00:12:06.000 --> 00:12:08.000
How many people understand this formula?
00:12:08.320 --> 00:12:11.519
Aha! And then the three of y'all lying in the back.
00:12:13.519 --> 00:12:15.039
But it's a very simple formula.
00:12:15.120 --> 00:12:20.240
And the interesting thing about this formula this is a human judgment, nothing more.
00:12:20.480 --> 00:12:24.720
Humans have agreed that this formula represents the fair price of this particular asset.
00:12:24.799 --> 00:12:26.000
That's all it means.
00:12:26.240 --> 00:12:31.279
There's no more opinionation other than humans said that's a fair rate when rates go up or down.
00:12:31.360 --> 00:12:32.000
That's it.
00:12:32.240 --> 00:12:37.840
And we represented this human decision into a mathematical formula.
00:12:38.320 --> 00:12:40.559
There is no room for interpretation.
00:12:40.720 --> 00:12:42.720
This is the agreed upon formula.
00:12:43.919 --> 00:12:52.320
And so when you get all these things put together, you can do the math, and if interest rates are high, which they are now, you've lost a whole bunch of money if you sold those things.
00:12:52.559 --> 00:12:55.440
Now, during this process, I actually wrote some code.
00:12:56.399 --> 00:13:01.919
And I wrote some code to remind myself like, why do y'all want Claude generating a bunch of code for you all?
00:13:02.399 --> 00:13:06.480
I was like, I gotta remind myself because this surely is an easy task to do.
00:13:06.559 --> 00:13:10.879
How long would it take you all to write something like this if you had to write it from scratch?
00:13:11.600 --> 00:13:12.799
Five minutes?
00:13:14.080 --> 00:13:15.039
An hour?
00:13:16.559 --> 00:13:18.080
Oh, people being honest.
00:13:18.159 --> 00:13:19.840
How long would it take Claude to do it?
00:13:20.639 --> 00:13:21.759
Five minutes?
00:13:22.879 --> 00:13:24.080
Thirty seconds?
00:13:24.320 --> 00:13:30.559
Alright, I'm gonna get with you afterwards, and I'm gonna see if you can do it, because I tried it and I ran out of tokens.
00:13:31.279 --> 00:13:34.399
It tells you out of tokens, and you gotta upgrade your plan.
00:13:34.879 --> 00:13:40.080
I wasn't giving anthropometry my credit card, but it did take longer than five seconds.
00:13:40.320 --> 00:13:43.120
And I'll tell you why later, probably at a different event.
00:13:43.279 --> 00:13:44.559
So I wrote the code myself.
00:13:44.720 --> 00:13:48.080
Now in your mind, as a developer, you think it's easy.
00:13:48.320 --> 00:13:50.480
In your mind, you're thinking how hard it could be.
00:13:50.720 --> 00:13:52.559
Let me make this a little bit bigger.
00:13:53.600 --> 00:13:56.480
And so in my mind, it looks like this.
00:13:56.960 --> 00:13:57.519
Right?
00:13:57.840 --> 00:14:03.279
Figure out what the bond portfolio is and update the spreadsheet.
00:14:03.679 --> 00:14:05.679
And about, and I'm embarrassed.
00:14:06.080 --> 00:14:08.159
It took me about six hours.
00:14:09.120 --> 00:14:19.360
It took me six hours because it turns out calculating bond rates and finding all the right data in XML format and transferring it to the right format that you need.
00:14:19.519 --> 00:14:24.240
And then the thing about calculating time, there's leap seconds and leap years.
00:14:24.399 --> 00:14:27.279
And if you get that wrong, your bond prices will be off.
00:14:27.679 --> 00:14:33.360
And there's some other things you need to adjust for, unless you understand the algorithm deeply, you will just be wrong.
00:14:33.600 --> 00:14:42.240
And so when I tried to do this using, you know, the whole point is you take that algorithm or that mathematical formula and you have to turn it into code.
00:14:42.399 --> 00:14:43.919
And that part was actually easy.
00:14:44.000 --> 00:14:47.440
So the part that, you know, you look at that equation, I'm gonna show it to you.
00:14:47.600 --> 00:14:48.960
That was actually pretty simple.
00:14:49.039 --> 00:14:49.679
Like this.
00:14:50.080 --> 00:14:51.360
This is simple.
00:14:51.679 --> 00:14:57.279
Like calculating that bond rate was super simple, but all the nuance only an experienced person could do.
00:14:57.600 --> 00:15:04.559
And so it reminded me of like, number one, writing code is hard mainly because there's no documentation for most of the libraries.
00:15:04.799 --> 00:15:08.399
There's a discovery problem, what tools you should even use to do it.
00:15:08.559 --> 00:15:16.080
And so now I kind of respect a bit more why people want things like MCP, because now we start to address the, I guess, the discovery problem.
00:15:16.240 --> 00:15:17.200
Where's the endpoints?
00:15:17.279 --> 00:15:18.240
What do the endpoints do?
00:15:18.320 --> 00:15:22.960
Because trust me, the US Treasury doesn't have a RESTful API documented at all.
00:15:23.120 --> 00:15:25.679
You end up screen scraping the website.
00:15:26.320 --> 00:15:33.039
And at the end of it though, I did end up with a binary that can update a bond portfolio.
00:15:33.200 --> 00:15:36.639
Now, if somebody was like, Kelsey, that's that's not an agent though.
00:15:36.960 --> 00:15:40.000
Because it doesn't run autonomously, right?
00:15:40.080 --> 00:15:41.600
Would you say that I got that part wrong?
00:15:41.679 --> 00:15:43.600
It doesn't run on its own.
00:15:43.840 --> 00:15:44.960
And I thought about it for a while.
00:15:45.039 --> 00:15:46.639
I was like, oh, you might got me.
00:15:47.120 --> 00:15:51.919
And I was like, okay, what would it take to make this thing run on its own?
00:15:52.720 --> 00:15:54.879
And I thought long and hard about it.
00:15:55.679 --> 00:16:02.960
And it turns out there's a thing on your computer that will run this agent every five minutes.
00:16:03.200 --> 00:16:06.480
And this cost me no tokens at all.
00:16:07.440 --> 00:16:09.519
And it has the same properties and the behavior.
00:16:09.600 --> 00:16:11.200
Now you're looking at me like Kelsey Dow.
00:16:11.440 --> 00:16:13.840
This, you're writing code like a caveman.
00:16:14.720 --> 00:16:16.240
And I won't argue.
00:16:16.720 --> 00:16:23.200
I will admit, this is probably not something that if I was in the industry at this moment, that I would ever see myself wanting to do again.
00:16:23.279 --> 00:16:30.399
If you told me that a computer can actually do a good job at generating code and doing this for me, I might be interested in using it.
00:16:30.960 --> 00:16:34.559
And I know most of you will tell me, Kelsey, you should just use something like this instead.
00:16:34.720 --> 00:16:40.639
Go to the chat window, express this as a prompt, and you're gonna get the same result and behavior.
00:16:40.960 --> 00:16:52.799
But if you did that and you let it deploy the agent for you, every time in that loop, it may sit there and burn tokens trying to discover what tool to call, or if the model changes, you may get different behavior than before.
00:16:53.039 --> 00:16:55.759
And in that world, I'm gonna leave you with one thing.
00:16:56.240 --> 00:16:59.279
If you're gonna go this route, fine, teach their own.
00:16:59.360 --> 00:17:03.759
But I don't think it makes sense to be burning tokens in a tight loop.
00:17:03.919 --> 00:17:08.799
You should be thinking about inferring once and then running the results anywhere.
00:17:09.039 --> 00:17:11.440
There's an analogy that I think will help you with this.
00:17:11.680 --> 00:17:15.680
Imagine if you wanted to have, I don't know, Beyonce make a new song.
00:17:16.079 --> 00:17:21.759
If you wanted her to go to the studio every time you wanted to hear that song, that would be silly.
00:17:21.920 --> 00:17:23.519
Number one, she ain't gonna do it.
00:17:24.480 --> 00:17:30.880
And it takes a lot of work to set up a music studio, get all the producers, writers, songs, and the singers in one space.
00:17:31.039 --> 00:17:44.960
But once you do it, it's a lot of work that goes into that, you should then export something that can then be played over and over again in a predictable manner without the same expense that it costs to make the song in the first place.
00:17:45.200 --> 00:17:48.640
And that's the architecture I want to remind people of in computing.
00:17:48.799 --> 00:17:55.759
Use the tools necessary to create the object, but in automation theory, it's just much better to run that thing in a predictable way.
00:17:56.000 --> 00:18:00.400
And so I'm gonna leave you with one prompt, so maybe one day Cloud will support this functionality.
00:18:00.559 --> 00:18:11.920
You should be able to give it some prompt like this like whatever it does, the last thing we should tell it is turn all of that into a shell script and remove all the dependencies that aren't necessary.
00:18:12.079 --> 00:18:22.319
And if this thing is as good as you say it is, it should have no problem exporting the logic to something that cuts the dependencies and works the same way.
00:18:22.880 --> 00:18:23.839
Thank you.
00:18:26.240 --> 00:18:28.000
Now I left time for a QA.
00:18:28.079 --> 00:18:29.599
Like, hey, what is the music person doing?
00:18:29.680 --> 00:18:30.799
I got some time.
00:18:34.640 --> 00:18:35.680
That's for them?
00:18:36.000 --> 00:18:36.319
Oh.
00:18:36.720 --> 00:18:38.799
Oh, y'all have a formula.
00:18:39.119 --> 00:18:40.880
Now we're problems.
00:18:42.000 --> 00:18:44.160
Yeah, uh, we had a few questions coming in.
00:18:44.240 --> 00:18:48.480
Uh but I I have so much fun doing shell scripting again right now myself.
00:18:48.640 --> 00:18:56.640
Because I I also like I get my agent, build things, then I got 15 folders with files, and I'm like, what is all that like?
00:18:56.880 --> 00:18:57.920
It's just unbelievable.
00:18:58.160 --> 00:18:59.279
You're just burning tokens.
00:18:59.440 --> 00:18:59.680
Yeah.
00:19:00.480 --> 00:19:00.720
Yeah.
00:19:00.880 --> 00:19:06.799
In 30 years of my career, I got never actually got a promotion for spending money in uh for the company.
00:19:06.960 --> 00:19:09.039
But we are in that place, aren't we?
00:19:09.920 --> 00:19:11.440
Oh there's one thing I want to make sure.
00:19:11.599 --> 00:19:13.119
This people don't get this joke.
00:19:13.200 --> 00:19:21.920
So when I started my career as a system administrator, if you wasn't good at your job, someone will walk by your desk and threaten to replace you with a shell script.
00:19:22.160 --> 00:19:24.000
So this is a callback to that.
00:19:24.079 --> 00:19:29.200
If you catch yours burning tokens too much, you can also threaten to replace Claude with a shell script.
00:19:29.359 --> 00:19:30.400
I just wanted to throw that out there.
00:19:31.039 --> 00:19:32.960
He's like, I got it the first time.
00:19:34.160 --> 00:19:42.240
So please use the app to ask questions because otherwise it's not gonna be on the feed, so we can't do that, that we just shout things because it's it's a different room here.
00:19:42.400 --> 00:19:46.480
So um, one of them is a big one that I keep hearing all the time as well.
00:19:46.720 --> 00:19:49.519
How do you recommend bringing managers back to reality?
00:19:49.759 --> 00:19:51.680
We could stop there, but there's more information.
00:19:51.920 --> 00:19:57.519
I feel like I often have to fight back against the AI salespeople and their demos promising AI will solve everything.
00:19:57.680 --> 00:20:03.119
They see AI as a hammer and everything as a nail and don't have the technical skills to know any better.
00:20:04.000 --> 00:20:06.400
How can you stand your ground as a technical person there?
00:20:06.799 --> 00:20:08.480
I mean, I think you've got to have the right attitude.
00:20:08.559 --> 00:20:12.240
For example, if I get a new tool, there's a chance I don't know how to use the tool effectively.
00:20:12.400 --> 00:20:13.680
I'm admitting that today.
00:20:13.839 --> 00:20:19.680
So, step one, you've got to get enough skill to be able to make a real assessment whether this thing is good or not.
00:20:19.839 --> 00:20:23.599
So I leave myself a little grace period before I start complaining, typically.
00:20:23.839 --> 00:20:25.200
Just not on the internet.
00:20:26.000 --> 00:20:29.440
Uh and then I think the second part of it is you can just prove it.
00:20:29.599 --> 00:20:31.200
We're supposed to be engineers, right?
00:20:31.279 --> 00:20:41.839
So the way you prove it is if you say that AI is gonna solve a particular problem and you think there's a way to solve it in a better way without it, then you should be able to prove it.
00:20:42.400 --> 00:20:50.480
And I think the proof comes into a situation where maybe you do have a session where you're trying to generate the code, and I know some of these things will get stuck.
00:20:50.720 --> 00:20:52.079
Record your time.
00:20:52.240 --> 00:20:54.559
And then ask yourself, is there a better way of doing it?
00:20:54.640 --> 00:20:55.759
And if so, bring that data.
00:20:55.920 --> 00:20:58.799
My guess is this thing will get better at generating code over time.
00:20:58.960 --> 00:21:09.519
But in the case of that zero token piece around burning tokens unnecessarily, if I was at a company and I wanted to prove that to the management team, I would say, look, here's how much it costs to run these agents.
00:21:09.680 --> 00:21:12.640
At some point you should be able to calculate every loop and how much it costs.
00:21:12.799 --> 00:21:14.000
A dollar and fifty cents.
00:21:14.160 --> 00:21:15.039
Okay, fine.
00:21:15.279 --> 00:21:16.400
Do the math.
00:21:16.640 --> 00:21:23.279
And then if I said, hey, Claude, export this thing without all the necessary dependencies, and we're still getting the same results.
00:21:23.440 --> 00:21:29.599
Now I can just do math and say, hey, we're no longer spending a dollar and fifty cent for each of these loops at running every second.
00:21:29.759 --> 00:21:37.359
And so if you're getting money back, I think the the manager would say you're still using AI maybe on the front end to create the thing that's being put in the loop.
00:21:37.519 --> 00:21:39.920
But then you're removing the unnecessary dependency.
00:21:40.079 --> 00:21:44.720
If someone was like, no, I'd rather you burn the tokens instead, that's a different conversation.
00:21:44.880 --> 00:21:46.480
But that's the way I would approach that problem.
00:21:46.559 --> 00:21:49.519
I would just actually go through the scientific method and prove it.
00:21:49.680 --> 00:21:52.400
And then the last thing I'll say here is just be open to being wrong.
00:21:52.720 --> 00:21:52.880
Right?
00:21:53.039 --> 00:21:59.119
Maybe that agent is doing something that you can't do in an imperative loop or in a predictable way, and they want that flexibility.
00:21:59.200 --> 00:21:59.759
Maybe they're reaching.
00:22:00.319 --> 00:22:07.200
Unstructured data and they're outputting things in multiple ways that you don't want to program from scratch, then maybe it needs to be that way.
00:22:07.279 --> 00:22:09.599
But I think you can actually find the truth at some point.
00:22:09.920 --> 00:22:16.960
There is evidence that like structuring your data properly before you actually get the agent on it is the best saving you can do.
00:22:17.680 --> 00:22:22.720
Work with clean information, work with clean tools, find the right thing to do rather than less.
00:22:23.359 --> 00:22:30.079
I mean, it scares me that like most of the LLMs that we use, the free ones, are like get the first answer from Stack Overflow.
00:22:30.400 --> 00:22:35.119
Whereas like as an as a senior engineer, you know the sixth or seventh answer was the right one.
00:22:35.200 --> 00:22:38.480
The first one was the one that showed the how but not the why.
00:22:39.039 --> 00:22:40.960
And we we have these tools.
00:22:41.119 --> 00:22:49.440
I mean, the first LLMs that I used were code generators and like make the button blue and it started from scratch again, downloaded all the NPM modules.
00:22:49.599 --> 00:22:55.680
Now we got modules that are more uh uh that are more modular, that basically just change the code as necessary.
00:22:55.839 --> 00:23:02.480
So we're getting in a space where a conversation with an agent is like a conversation with a junior developer or with a with a pair programmer.
00:23:03.359 --> 00:23:11.359
Do you think it will be that we have tools that optimize themselves and create the bash script, for example, automatically for us?
00:23:12.480 --> 00:23:25.680
This is an area where I don't think that's far off, mainly because when you look at the what your compiler does, the code optimization that it does to run on a piece of hardware effectively, we kind of get into that domain already.
00:23:25.839 --> 00:23:29.839
Sometimes your compiler may optimize part of your code out of it because it's unnecessary.
00:23:30.000 --> 00:23:31.920
And most of us have grown to accept it.
00:23:32.000 --> 00:23:36.799
Most people do not look at the generated output from their compiler, they just trust it.
00:23:37.039 --> 00:23:42.640
But those compilers are built with a lot of intentionality, sometimes formal verification if they can if they can pull it off.
00:23:42.880 --> 00:23:48.400
But the part that I actually want to address here is the part around it's like talking to a junior engineer.
00:23:48.640 --> 00:23:52.960
And I think the unfortunate thing that I hope gets reversed because of all this productivity.
00:23:53.839 --> 00:23:58.880
Talking to a junior engineer should not be about low-level syntax issues.
00:23:59.119 --> 00:24:03.119
Talking to a junior engineer should be about things that a computer can't do.
00:24:03.359 --> 00:24:07.519
The thing that you do when you get to a whiteboard and you reason about the customer base.
00:24:07.759 --> 00:24:12.640
The part where you actually go and visit the customer and watch how they actually work.
00:24:12.960 --> 00:24:18.480
And then you use wisdom, not just intelligence, to observe and honor their experience.
00:24:18.720 --> 00:24:26.720
You capture all of those things and you revisit the whiteboard and ask yourself if there's a million ways of doing this, which one should we do?
00:24:26.960 --> 00:24:32.079
And that's still to me the type of thing that a human should be much better than a computer app.
00:24:32.160 --> 00:24:33.920
Can a computer mimic this behavior?
00:24:34.160 --> 00:24:34.720
Absolutely.
00:24:34.880 --> 00:24:36.400
So can a magic eight ball.
00:24:36.880 --> 00:24:41.200
But I think you should try to optimize for the type of work that a computer can't do.
00:24:41.359 --> 00:24:46.160
And so, yeah, if it can generate the bash script and run it in the background, okay.
00:24:46.400 --> 00:24:47.359
Who cares?
00:24:47.680 --> 00:24:53.759
But I hope that this productivity gives you all your time back, and I hope you all get raises for being 10x engineers now.
00:24:53.920 --> 00:25:05.039
But I also hope you find the time to actually get to talk to each other again, and hopefully all of you get to experience what it's like to actually collaborate with people versus sitting in front of your computer hitting enter.
00:25:05.440 --> 00:25:06.720
Which brings me to this question.
00:25:06.880 --> 00:25:10.960
AI has just made me an angrier engineer, losing some of the joy in programming.
00:25:11.119 --> 00:25:14.880
How do we keep that joy alive, or maybe are we beyond that phase?
00:25:15.200 --> 00:25:16.799
Is angry our standard now?
00:25:16.880 --> 00:25:17.599
Is that what you're saying?
00:25:17.920 --> 00:25:19.359
No, just redefine it now.
00:25:19.519 --> 00:25:23.440
So we've optimized work to what a person can do with the computer.
00:25:23.680 --> 00:25:24.720
Now you have to change it.
00:25:24.880 --> 00:25:26.799
Now people's gonna have to offer new ideas.
00:25:26.960 --> 00:25:29.599
So complaining is one way to express feedback, no problem.
00:25:29.759 --> 00:25:31.279
I can't fault you for that.
00:25:31.519 --> 00:25:33.920
But what the culture should be should get redefined.
00:25:34.079 --> 00:25:38.079
I remember when this agile methodology took over software engineering.
00:25:38.240 --> 00:25:41.039
People were walking around with black belts but didn't know karate.
00:25:42.000 --> 00:25:44.559
And then it became this cargo culted thing.
00:25:44.799 --> 00:25:54.640
There's gonna be space there to redefine what engineering culture should be, especially if you're not gonna optimize it for taking Jira tickets and turning it into syntax.
00:25:54.799 --> 00:26:00.559
If that's not gonna be the job anymore, and I'm assuming we still want engineers, what will they be doing?
00:26:00.720 --> 00:26:04.799
So I think at some point, maybe this will be something that you do hand off to the machines.
00:26:04.960 --> 00:26:08.079
You hand off a lot to the machines, like routing packets.
00:26:08.400 --> 00:26:13.440
That stuff has already been delegated, and I think it's one of these things where I can understand the allergic reaction.
00:26:13.680 --> 00:26:16.400
You spent a lot of time developing these skills.
00:26:16.640 --> 00:26:21.759
You feel like a crafts person every time you walk up to that keyboard and format that code perfectly.
00:26:22.160 --> 00:26:23.599
But that day may go away.
00:26:23.680 --> 00:26:29.839
I'm pretty sure the person that used to neatly stack the punch cards had a system, and then that went away.
00:26:30.240 --> 00:26:33.839
I'm not necessarily sold on it, but I do know how to deal with change.
00:26:34.000 --> 00:26:43.279
And so for me, if I was in that situation, I would probably try to redefine the culture, give it a name so that other people can express it and practice it as well.
00:26:44.240 --> 00:26:51.759
I'm actually happy that we have an opportunity for product managers to create click-throughs and MVPs that I as a developer don't have to write.
00:26:51.920 --> 00:27:00.079
Because we went through the whole iteration of like until it needs to be productified, and why should that not be generated by an agent and somebody who's not a programmer?
00:27:00.240 --> 00:27:03.440
I think that's just the danger that we think we're not in control anymore.
00:27:03.599 --> 00:27:06.079
And maybe that's letting go is a good idea there.
00:27:06.400 --> 00:27:08.000
Well, I will say this though.
00:27:22.799 --> 00:27:27.759
It gets even worse when someone makes a decision on where to live or who to love.
00:27:27.920 --> 00:27:29.359
This is this is insane.
00:27:29.599 --> 00:27:35.200
And imagine when you start to delegate this to the judges, the lawyers, the teachers, the politicians.
00:27:35.359 --> 00:27:42.000
If they're just sitting in front of a computer doing exactly the thing that you're doing, this is a problem.
00:27:42.160 --> 00:27:46.720
This is why we are judged by our peers, not judged by computers.
00:27:46.960 --> 00:27:49.680
And so that's the part that I'm a little worried about.
00:27:49.839 --> 00:27:51.839
It's that judgment and decision making.
00:27:51.920 --> 00:27:56.079
Remember, that's the whole point between the intelligence and wisdom piece.
00:27:56.240 --> 00:28:00.319
It's the thing where it sounds good until you try it.
00:28:00.480 --> 00:28:09.920
And then once we try it, we encode in our laws or in our practices that's not something you can do or should do because it's dangerous.
00:28:10.160 --> 00:28:12.400
And that's the part that I hope we don't lose.
00:28:12.559 --> 00:28:16.880
That's the part that makes us human and the reason why we all also have our own agency.
00:28:17.039 --> 00:28:24.559
I am not looking for a cloud to design my life and to predict my future, but I don't care if it decides to help me along the way.
00:28:24.799 --> 00:28:25.039
Yeah.
00:28:25.200 --> 00:28:36.240
I mean, I I love when you talked about the malware thing, the amount of malware phishing attempts I had, like, here's some code, copy that into your terminal, and you're like, nah, not gonna happen, but then like, oh, it came from ChatGPT.
00:28:36.640 --> 00:28:38.240
It's probably safe to copy in, right?
00:28:38.880 --> 00:28:47.119
This seriously, I remember when I started my career, software that behaved in unpredictable ways, we called it malware.
00:28:47.200 --> 00:28:56.559
We used to install a Norton antivirus on your computer, and it will watch for anything misbehaving, and then quarantine it unless you were being explicit about what it could do.
00:28:56.720 --> 00:29:07.279
And that was like this thing, and then we had this whole thing around zero trust and this whole discipline around removing implicit trust from the system until we were being explicit.
00:29:07.440 --> 00:29:11.039
And all of a sudden, there's a new thing that comes with some really cool capabilities.
00:29:11.119 --> 00:29:12.480
I'm never gonna undermine it.
00:29:12.720 --> 00:29:18.160
But boy, does it create a scenario that we have never practiced for in the last 30 years of software development.
00:29:18.319 --> 00:29:24.160
That you have a thing that is designed to behave in many ways on its own terms.
00:29:24.319 --> 00:29:29.119
And so now we're creating this illusion that we're gonna put it in the sandbox and we'll be fine.
00:29:29.279 --> 00:29:31.920
You can do a lot of destruction from a sandbox.
00:29:32.079 --> 00:29:35.119
You can steal all the data you want, you can affect other machines.
00:29:35.279 --> 00:29:40.400
Sure, you can't copy files from the operating system underneath you, but you can do everything else.
00:29:40.640 --> 00:29:52.880
So I think this is where we should probably be super careful with putting something that has no way to reason about its behavior and treat it as functionality that should become standard practice.
00:29:54.240 --> 00:29:55.839
Um yeah, that's an interesting one.
00:29:55.920 --> 00:30:01.680
In this AI era, uh, what's the role of senior leadership according to you, and what value does leadership offer?
00:30:01.839 --> 00:30:06.319
Is the player coach role that's getting traction the only relevant role for current leaders?
00:30:06.640 --> 00:30:11.119
I think a lot of leaders are senior leaders, senior directors, and junior humans.
00:30:11.279 --> 00:30:13.680
Most of them are not really good at human development.
00:30:13.920 --> 00:30:15.599
They've optimized for the wrong thing.
00:30:15.680 --> 00:30:22.160
So I hope the senior leaders learn to become senior humans and everything gets a little bit better.
00:30:25.599 --> 00:30:26.240
I agree.
00:30:26.400 --> 00:30:27.599
I like humans.
00:30:28.079 --> 00:30:30.400
Dogs are better, but humans are great too.
00:30:30.559 --> 00:30:31.680
Thank you very much, Kelsey.
00:30:31.839 --> 00:30:32.880
It was always fun to have you.
00:30:33.200 --> 00:30:33.680
Thank you.
00:30:41.359 --> 00:30:42.000
Good.
00:30:42.640 --> 00:30:47.359
Another 10 minute break, and then it's gonna be the one and only Angie Jones up here.
00:30:47.440 --> 00:30:51.200
So come back and make sure you have her because it's always an experience.
00:30:51.440 --> 00:30:52.240
See you in 10 minutes.