WEBVTT
1
00:00:03.560 --> 00:00:06.839
Welcome to the Angular Plus Show. We're app developers of
2
00:00:06.960 --> 00:00:11.359
all kinds share their insights and experiences. Let's get started.
3
00:00:14.480 --> 00:00:18.160
Welcome back to another episode of the Angular Plus Show.
4
00:00:18.359 --> 00:00:20.239
I am Laura Newsome. I'll be one of your hosts
5
00:00:20.239 --> 00:00:24.399
for today. With me co hosting, I have Jay Jay.
6
00:00:24.399 --> 00:00:25.879
How's it going good?
7
00:00:26.800 --> 00:00:28.519
I was a little rush this morning. I just got
8
00:00:28.559 --> 00:00:30.719
back home, but I made it with like twelve minutes
9
00:00:30.719 --> 00:00:32.719
of spare, so I'm here nice.
10
00:00:32.799 --> 00:00:37.280
Yeah. Luckily I remembered it was Wednesday because I forgot
11
00:00:37.280 --> 00:00:40.719
how time works. So I'm like counting the days down
12
00:00:40.719 --> 00:00:42.799
to PTO. So I told my husband I've got like
13
00:00:42.880 --> 00:00:47.560
senioritis for vacation. We're like, I don't actually want to work.
14
00:00:47.600 --> 00:00:52.560
I just want to be on vacation. That sounds glorious, honest,
15
00:00:53.479 --> 00:00:57.280
so excited. And we also have Yon Nicholas. How are
16
00:00:57.320 --> 00:00:57.799
you today?
17
00:00:58.079 --> 00:01:02.799
Pretty good? Ready to Okay, okay, vacation, do vacation whatever?
18
00:01:03.159 --> 00:01:04.400
You're coming with me?
19
00:01:05.120 --> 00:01:05.280
No?
20
00:01:06.079 --> 00:01:11.159
Not really, I am not doing vacation. Unfortunately. I wish
21
00:01:11.239 --> 00:01:12.519
I vacation, but I'm not.
22
00:01:13.319 --> 00:01:16.959
Yeah, I'm really looking forward to it. I'm finally taking
23
00:01:16.959 --> 00:01:20.120
my my family to Europe, and so that is like
24
00:01:20.280 --> 00:01:23.439
really exciting because my husband's never been, my kids have
25
00:01:23.519 --> 00:01:25.640
never been, and so every time I go, I'm like,
26
00:01:25.680 --> 00:01:27.319
I really want to take you guys with me, and
27
00:01:27.359 --> 00:01:33.439
so I bullied them into it, and you know what,
28
00:01:33.599 --> 00:01:36.040
like growing up in the Midwest, I'm like, literally, I'm like,
29
00:01:36.120 --> 00:01:38.400
I don't even have to do anything when I'm there.
30
00:01:38.560 --> 00:01:40.480
Just seeing different buildings.
31
00:01:40.120 --> 00:01:42.280
As exciting to just take them to like the biggest
32
00:01:42.439 --> 00:01:45.159
yarn ball or something.
33
00:01:45.200 --> 00:01:51.480
We've already done all of that. We've seen all the
34
00:01:51.480 --> 00:01:53.519
stupid things we can see here in the US. Now
35
00:01:53.519 --> 00:01:56.719
we want to go see all the things in Europe
36
00:01:56.439 --> 00:01:58.519
exactly exactly.
37
00:01:58.959 --> 00:02:02.280
So much more interesting the North America. That's so much
38
00:02:02.319 --> 00:02:03.040
more interesting.
39
00:02:03.400 --> 00:02:08.719
It really is. Like, first of all, there's history exactly. Yeah,
40
00:02:08.800 --> 00:02:11.439
I like that house was built before eighteen hundred? Is
41
00:02:11.439 --> 00:02:12.520
that even allowed?
42
00:02:12.719 --> 00:02:16.439
Like yeah, all right.
43
00:02:16.599 --> 00:02:19.879
So, but we're actually here for a podcast and we
44
00:02:19.919 --> 00:02:23.120
have a guest with us today. We have Tomash Duchine
45
00:02:23.120 --> 00:02:25.560
with us. Welcome to the show. How are you today?
46
00:02:26.159 --> 00:02:30.080
I'm fine, Welcome everyone, and thank you for the invitation.
47
00:02:30.240 --> 00:02:31.520
It's my pleasure to be.
48
00:02:31.520 --> 00:02:31.960
Here with you.
49
00:02:32.639 --> 00:02:36.840
Absolutely For the listeners who do not who haven't met
50
00:02:36.840 --> 00:02:39.039
you before, would you want to introduce yourself.
51
00:02:39.719 --> 00:02:46.280
Yeah. Sure, So I've been working as a developer for definitely,
52
00:02:46.560 --> 00:02:50.120
as an architect, as a consultant. Last more or less
53
00:02:50.159 --> 00:02:55.000
ten years, I've been doing freelance consulting for well business applications,
54
00:02:55.039 --> 00:02:59.280
business web applications, some like in my early days, I
55
00:02:59.319 --> 00:03:01.479
started with back and then spend kind of a decade
56
00:03:01.479 --> 00:03:04.000
with front End. Now I'm kind of moving back to
57
00:03:04.039 --> 00:03:07.439
my roots back, so kind of I consider myself as
58
00:03:07.479 --> 00:03:11.000
a software generalist more than you know, being sticked, not
59
00:03:11.120 --> 00:03:13.639
stick to a certain framework, not even stick to front
60
00:03:13.680 --> 00:03:17.479
end itself, but generally interested in pretty much everything, all
61
00:03:17.560 --> 00:03:21.360
things software, I would say, And also, like moving forward
62
00:03:21.400 --> 00:03:27.280
to our topic of the of the episode, this is
63
00:03:27.280 --> 00:03:31.000
something that I believe would be also useful for well
64
00:03:31.280 --> 00:03:35.639
majority of our industry to to focus on business side
65
00:03:35.759 --> 00:03:38.840
and use technology as a tool and not as a
66
00:03:38.919 --> 00:03:43.120
you know kind of you know, any kind of decision
67
00:03:43.159 --> 00:03:45.240
that has been made once and for all and you
68
00:03:45.319 --> 00:03:48.039
have to stick to it very very very strictly and
69
00:03:48.080 --> 00:03:50.439
so on. So yeah, that.
70
00:03:50.479 --> 00:03:52.039
Makes a less sense, Yeah, I definitely.
71
00:03:52.400 --> 00:03:52.479
So.
72
00:03:52.520 --> 00:03:54.319
I did a lot of contracting, and there would always
73
00:03:54.360 --> 00:03:57.960
be anxiety from people when we would switch contracts. Oh
74
00:03:58.039 --> 00:03:59.800
I got now I got a right react as sort
75
00:03:59.800 --> 00:04:01.639
of a I got a right view, And it's like
76
00:04:02.400 --> 00:04:04.199
it's just like kind of the same, like you just
77
00:04:04.240 --> 00:04:06.199
got to learn a few different rules and a little
78
00:04:06.199 --> 00:04:07.199
different sceases exactly.
79
00:04:07.240 --> 00:04:10.400
And what's also funny is that, of course, technically there
80
00:04:10.439 --> 00:04:13.719
are lots of differences in in API level, there is
81
00:04:13.759 --> 00:04:16.879
like pretty much everything is different, but on conceptual level,
82
00:04:17.600 --> 00:04:20.920
I would roughly say ninety percent at least is exactly
83
00:04:20.959 --> 00:04:23.839
the same when it comes to concepts. So yeah, like
84
00:04:23.920 --> 00:04:27.240
if you know one well then it's really kind of
85
00:04:27.279 --> 00:04:31.120
you know, straightforward to move to another stack.
86
00:04:31.160 --> 00:04:32.920
Absolutely for sure.
87
00:04:33.000 --> 00:04:36.519
Yeah yeah, but agular so.
88
00:04:38.600 --> 00:04:40.560
You know, like you also have an awareness of like
89
00:04:40.639 --> 00:04:44.120
your team's work full stacks, so you have to understand
90
00:04:44.160 --> 00:04:47.079
how like how the back ends work, like what what
91
00:04:47.199 --> 00:04:50.120
advantages you can give the UI. You know, it's really
92
00:04:50.160 --> 00:04:51.959
hard to be a front end developer and not have
93
00:04:52.040 --> 00:04:54.040
any understanding of how the back end works.
94
00:04:54.680 --> 00:04:56.879
Like Angelo on the back end, so.
95
00:04:57.399 --> 00:04:59.959
Yeah, you still have to like know how to make it.
96
00:05:00.120 --> 00:05:01.360
Do you like back end things?
97
00:05:01.480 --> 00:05:01.720
Right?
98
00:05:01.879 --> 00:05:06.240
Like? But anyways, all right, so the topic today that
99
00:05:06.279 --> 00:05:10.839
we've hinted at maybe a little bit, but shockingly, y'all
100
00:05:10.839 --> 00:05:13.920
we're going to talk a little bit about AI LMS
101
00:05:14.920 --> 00:05:19.160
and how that relates to software architecture specifically as it
102
00:05:19.160 --> 00:05:24.920
relates to Angular applications. So, Tomash, what are your what
103
00:05:25.079 --> 00:05:29.199
is your current experience dealing with AI and Angular?
104
00:05:29.720 --> 00:05:33.600
So generally speaking, my experience with AI and development generally
105
00:05:33.759 --> 00:05:38.120
is around two years so far, and it's been done
106
00:05:38.480 --> 00:05:41.439
both on front and on back end in DevOps and
107
00:05:41.480 --> 00:05:46.600
so on and so forth. So with Angular specifically, my
108
00:05:46.800 --> 00:05:50.480
experience is very good when it comes to applying AI.
109
00:05:50.639 --> 00:05:52.680
But of course there is kind of you know, lots
110
00:05:52.720 --> 00:05:56.360
of various things to look at, to look forward to
111
00:05:56.519 --> 00:05:58.759
watch out for, and so on and so forth. But
112
00:05:59.720 --> 00:06:02.600
if if you know what you're doing, and first of all,
113
00:06:02.639 --> 00:06:05.560
like you put a lot of effort into your design
114
00:06:06.319 --> 00:06:10.920
and you don't lose the business perspective from what you're doing,
115
00:06:11.000 --> 00:06:14.800
like why is actually business paying you your salary or
116
00:06:14.879 --> 00:06:21.680
wait whatever, then it can be used very very effectively.
117
00:06:22.560 --> 00:06:24.319
Of course, it depends on the model, it depends on
118
00:06:24.360 --> 00:06:28.839
the prompts, on all your settings. But mostly I would
119
00:06:28.920 --> 00:06:32.560
say my work right now is a kind of design
120
00:06:32.639 --> 00:06:37.639
slash architectural work, and I try to be picky about
121
00:06:37.639 --> 00:06:41.199
the decisions I want to make and what I can
122
00:06:41.279 --> 00:06:46.639
actually shift to the model. Yeah, so I would say
123
00:06:46.680 --> 00:06:49.600
this is my main area and when it comes to
124
00:06:49.639 --> 00:06:53.800
the code to the implementation, I would rather shift it
125
00:06:53.839 --> 00:06:56.199
to the model. But again, like what are these things
126
00:06:56.199 --> 00:06:59.680
that I want to decide and I don't want the
127
00:06:59.720 --> 00:07:03.399
model to make the decision instead of me, Like this
128
00:07:03.439 --> 00:07:07.279
is what matters the most from my experience, But actually,
129
00:07:07.279 --> 00:07:11.079
you know it, it is kind of interconnected to the
130
00:07:11.199 --> 00:07:14.360
architectural style you have, for instance, whether you have global
131
00:07:14.639 --> 00:07:18.199
or local state management solution, whether you walk into vertical
132
00:07:18.240 --> 00:07:24.319
slices architecture, whether you prefer you know, sharing everything like
133
00:07:24.519 --> 00:07:28.319
reusability or not, etc. Like you know whether you would
134
00:07:28.519 --> 00:07:33.040
go with duplication or reusability. So what are the architectural traits?
135
00:07:33.079 --> 00:07:36.000
So some of them work very well with AI, some
136
00:07:36.040 --> 00:07:40.399
of them don't or they kind of destroy the whole point.
137
00:07:40.879 --> 00:07:43.680
Or another topic is how much do you like how
138
00:07:43.720 --> 00:07:47.480
do you do code reviews with the code that is generated?
139
00:07:47.600 --> 00:07:50.759
For instance, you know, you ask AI to implement something,
140
00:07:50.920 --> 00:07:56.160
it generates five hundred lines or one thousand lines of code,
141
00:07:56.399 --> 00:08:00.920
and now would you review everything? If you do, then
142
00:08:01.120 --> 00:08:03.920
it would take you, you know, a lot of time
143
00:08:03.959 --> 00:08:07.160
because it's not your code. So these are probably or
144
00:08:07.279 --> 00:08:10.480
possibly not your mental models. So this is a short
145
00:08:10.480 --> 00:08:14.360
way to make the model slow you down if you
146
00:08:14.759 --> 00:08:18.480
compare compared us to if you didn't have the model
147
00:08:18.839 --> 00:08:22.399
at all, and if you don't review anythings like some
148
00:08:22.639 --> 00:08:26.360
we call them shamans Ai shamans on LinkedIn that they
149
00:08:26.399 --> 00:08:29.759
you know, generate code, they push it to production, and
150
00:08:29.800 --> 00:08:31.199
they don't even read it at all.
151
00:08:31.720 --> 00:08:33.200
So it's like it freaks me out.
152
00:08:34.240 --> 00:08:37.559
Two extremes. So I would say, you need to have somewhere,
153
00:08:37.600 --> 00:08:40.279
some golden middle somewhere, and the question is where is
154
00:08:40.320 --> 00:08:41.000
that golden middle?
155
00:08:41.440 --> 00:08:44.320
Yeah, you know, I think that's a good summary of
156
00:08:44.679 --> 00:08:48.519
I feel like that's been my exact experience. You know,
157
00:08:48.559 --> 00:08:53.039
we started an application before we were really using AI tools,
158
00:08:53.039 --> 00:08:56.120
and we've sort of gone through all a whole lot
159
00:08:56.120 --> 00:08:59.440
of different growing pains to get it working right, to
160
00:08:59.480 --> 00:09:02.600
get it working efficiently. You know, like we thought, okay,
161
00:09:02.600 --> 00:09:04.159
we just got to add more context, and then we
162
00:09:04.159 --> 00:09:06.080
added too much context, and now we got to pull
163
00:09:06.120 --> 00:09:09.159
the context out and put it into skills. And you know,
164
00:09:09.320 --> 00:09:13.879
it's like it's a constant. It's it's evolving as like
165
00:09:13.919 --> 00:09:15.919
it's evolving in the same way that our code end
166
00:09:16.000 --> 00:09:19.000
up involving evolving as well, Like it's I think of it,
167
00:09:19.000 --> 00:09:21.519
it's just like a whole other layer to the architecture.
168
00:09:21.559 --> 00:09:21.799
Now.
169
00:09:22.240 --> 00:09:26.559
Yeah, but also it's evolving according to your understanding and
170
00:09:26.600 --> 00:09:29.840
your kind of mental model behind working with AI. By
171
00:09:29.879 --> 00:09:32.200
the way, you said that you've been iterating over how
172
00:09:32.240 --> 00:09:35.080
you work with it. Did you kind of go through
173
00:09:35.120 --> 00:09:38.399
the step which is called you are an angular expert
174
00:09:38.399 --> 00:09:41.000
you never make mistakes or not? Yeah?
175
00:09:41.080 --> 00:09:44.879
We so yeah, like we yeah, we've we've gone through Oh,
176
00:09:44.879 --> 00:09:47.440
we've gone through so many different steps. Like literally there
177
00:09:47.480 --> 00:09:49.320
was one where like if it's something that you think
178
00:09:49.360 --> 00:09:51.919
a I can do, just add it to this instruction
179
00:09:52.200 --> 00:09:54.639
and oh boy, it got like real bad and everything
180
00:09:54.759 --> 00:09:58.279
was it Like it was giving us some really interesting solutions.
181
00:09:58.440 --> 00:10:03.039
And yeah, and I'd say, right now we are in
182
00:10:03.080 --> 00:10:05.519
a really good spot with the tooling that we have.
183
00:10:05.600 --> 00:10:08.279
It does a really a pretty good job. Like I
184
00:10:08.399 --> 00:10:12.039
stopped not trusting it at all, and now I mostly
185
00:10:12.039 --> 00:10:13.000
trust it, but I'm.
186
00:10:13.600 --> 00:10:18.080
I'm still suspicious. Yeah, but you need to choose where
187
00:10:18.120 --> 00:10:22.440
can you actually like remove the responsibility from you and
188
00:10:22.600 --> 00:10:25.320
where you need to hold the responsibility like readly right.
189
00:10:25.759 --> 00:10:27.879
Yeah, I would say, like one of the biggest discussions
190
00:10:27.879 --> 00:10:33.279
we've had is like when because you know, coming from NX,
191
00:10:33.320 --> 00:10:35.960
like we use local plug ins, We've developed a lot
192
00:10:35.960 --> 00:10:38.960
of plug ins to do repetitive tasks in our code base.
193
00:10:39.399 --> 00:10:43.080
It really does not make sense to have AI, right,
194
00:10:43.240 --> 00:10:46.519
like create a new library for us when we have
195
00:10:46.600 --> 00:10:49.279
a generator that can do it, Like why spend the
196
00:10:49.320 --> 00:10:51.759
tokens right? And so we've spent a lot of time
197
00:10:51.799 --> 00:10:56.480
recently sort of discussing like which are the which steps
198
00:10:56.600 --> 00:10:59.759
do we want to hand off to the generators, like
199
00:10:59.799 --> 00:11:03.960
the terministic solutions versus which steps is AI going to
200
00:11:04.000 --> 00:11:09.120
excel at? And that has that that's definitely something you
201
00:11:09.159 --> 00:11:11.440
know we have. We haven't what you call him an
202
00:11:11.440 --> 00:11:14.879
AI shaman on our team, and even you know, it
203
00:11:14.919 --> 00:11:16.600
was great to hear him be like, you know, if
204
00:11:16.600 --> 00:11:19.000
it's a deterministic thing like creating a library, we should
205
00:11:19.000 --> 00:11:21.159
probably have the generators use it. We're like, I'm so
206
00:11:21.240 --> 00:11:25.279
glad to hear you say that, because I really need
207
00:11:25.320 --> 00:11:26.039
you to say that.
208
00:11:27.600 --> 00:11:31.200
Yeah, that's something I didn't mention exactly. Also identify what
209
00:11:31.279 --> 00:11:35.240
needs to what can be deterministic and is doable in
210
00:11:35.279 --> 00:11:38.600
a quite you know, short amount of time for instance,
211
00:11:39.120 --> 00:11:43.840
like things like linters or typescript compilation, et cetera, like
212
00:11:44.159 --> 00:11:50.440
or regenerating I know, typescript types from the open API
213
00:11:50.559 --> 00:11:53.960
contract whatever, like if something can be automated, like automated
214
00:11:54.000 --> 00:11:54.919
and like don't touch.
215
00:11:54.759 --> 00:11:57.639
It right right, have the AI help you work on
216
00:11:57.679 --> 00:11:58.759
the generator if you need.
217
00:11:58.720 --> 00:12:05.639
To exactly exactly exactly, or make the AI create exactly
218
00:12:06.080 --> 00:12:08.000
create a tool that would be deterministic.
219
00:12:08.000 --> 00:12:12.559
At some point, we've we've really like, well, in my team,
220
00:12:12.600 --> 00:12:14.279
I'm usually the one is building all the tooling, and
221
00:12:14.320 --> 00:12:17.720
we've like double triple quadrupled down on building tooling now
222
00:12:17.759 --> 00:12:19.759
that I can just like whip up tooling for all
223
00:12:19.759 --> 00:12:22.120
the different use cases that we that we need that
224
00:12:22.200 --> 00:12:24.960
I wouldn't have had time to do before. And a
225
00:12:24.960 --> 00:12:27.519
lot of the tooling is well, I'm actually just building
226
00:12:27.519 --> 00:12:31.639
guardrails for the LMS so that my team can use
227
00:12:31.639 --> 00:12:34.639
alums more effectively. So I'm like, you know, it's that
228
00:12:35.120 --> 00:12:38.000
self improvement like that like feedback loop right where I'm
229
00:12:38.039 --> 00:12:39.679
like using it to build the guard rails so that
230
00:12:39.720 --> 00:12:42.279
we can use it more to build better stuff so
231
00:12:42.320 --> 00:12:44.679
that we don't have to like constantly be fixing it
232
00:12:44.720 --> 00:12:48.440
and be like, no, I said, don't do that right now,
233
00:12:48.440 --> 00:12:51.320
I can just not do that anymore. Or but then
234
00:12:51.360 --> 00:12:53.919
it's self no, like it'll run the command and be
235
00:12:54.000 --> 00:12:58.120
like oh right, okay, well that failed, I'll fix it
236
00:12:58.279 --> 00:12:58.720
kind of thing.
237
00:12:58.879 --> 00:13:00.440
Yeah, And like I really want to yell at the AI,
238
00:13:00.559 --> 00:13:02.279
but then I'm also afraid that when they take over
239
00:13:02.320 --> 00:13:03.720
the world, they're going to come back for me.
240
00:13:03.919 --> 00:13:08.559
So they have a really bad memory right now, He's
241
00:13:08.559 --> 00:13:10.240
like one of the biggest problems with them, right they
242
00:13:10.360 --> 00:13:11.519
never remember anything.
243
00:13:11.720 --> 00:13:16.000
So but you know, there is one funny thing. There
244
00:13:16.039 --> 00:13:18.720
is a research that I cannot recall what was the
245
00:13:18.759 --> 00:13:22.360
title of it, but I remember the numbers. And according
246
00:13:22.360 --> 00:13:25.919
to the research, when you when you swear at AI,
247
00:13:27.519 --> 00:13:28.240
there was.
248
00:13:28.240 --> 00:13:34.279
A eightytry code will actually send telemetry events to anthropic when.
249
00:13:34.120 --> 00:13:38.440
You Yeah, now now we know that. Now we know that. Yeah,
250
00:13:38.600 --> 00:13:41.399
now we know that. But generally speaking, there was eighty
251
00:13:41.399 --> 00:13:47.200
two to eighty four percentage difference in like being successful
252
00:13:47.279 --> 00:13:51.679
with your prompts for swearing. So if you yell.
253
00:13:53.320 --> 00:13:56.240
Yes, oh okay, so what I'm hearing.
254
00:13:56.080 --> 00:14:01.960
Is claude code hook what pre tool call hook and
255
00:14:02.000 --> 00:14:06.639
then just depend like echo, just effing do this correct?
256
00:14:07.120 --> 00:14:10.919
Before every command yeah or or you.
257
00:14:13.159 --> 00:14:17.480
Yeah, yeah, yeah, exactly you blah blah blah.
258
00:14:17.720 --> 00:14:21.000
Yeah, I'm gonna try that. I'm gonna try that.
259
00:14:21.759 --> 00:14:21.960
You know.
260
00:14:22.039 --> 00:14:24.639
It was from eighty two percent to eighty four percent,
261
00:14:24.679 --> 00:14:26.879
so it's not big though, as far as I remember,
262
00:14:26.919 --> 00:14:29.679
it was not only Entropic. As far as I remember,
263
00:14:29.720 --> 00:14:30.879
that was the Big three.
264
00:14:30.600 --> 00:14:31.440
So right.
265
00:14:31.799 --> 00:14:34.159
I remember reading somewhere that if you said, like if
266
00:14:34.480 --> 00:14:38.360
you were either nice or really threatening, you got better results.
267
00:14:38.440 --> 00:14:41.240
But like just being like kind of vanilla, it just
268
00:14:41.320 --> 00:14:44.519
was like whatever, I mean, it.
269
00:14:44.600 --> 00:14:47.879
Trained on human interactions, so like, are we really surprised?
270
00:14:49.799 --> 00:14:51.440
You just need to know if you're gonna lead with
271
00:14:51.480 --> 00:14:55.200
a carrot or stick, right or a whip? All right.
272
00:14:56.080 --> 00:14:58.720
They're also studies that if you bribe the model where
273
00:14:58.720 --> 00:15:00.360
you say, like, oh, I give you a hundred if
274
00:15:00.399 --> 00:15:02.519
you get this right, that the quality of results is
275
00:15:02.720 --> 00:15:03.759
concept again better.
276
00:15:04.440 --> 00:15:05.799
Again, are we surprised?
277
00:15:06.200 --> 00:15:07.720
I'm like, I'm a little afraid it would just go
278
00:15:07.720 --> 00:15:09.720
get one hundred dollars out of my account, though, like
279
00:15:09.799 --> 00:15:12.279
what if I set it up wrong, You're gonna lock
280
00:15:12.360 --> 00:15:13.120
those tools down.
281
00:15:13.799 --> 00:15:17.240
I know that's actually something we could say in assistant
282
00:15:17.279 --> 00:15:22.480
prompt like you're given one hundred dollars to do your job, right, Yeah, I'm.
283
00:15:22.360 --> 00:15:24.480
Just gonna go add that and see what happens. Like,
284
00:15:24.759 --> 00:15:28.159
if you actually follow the rules on writing unit tests,
285
00:15:28.200 --> 00:15:31.360
I'll give you one hundred dollars. You should check at
286
00:15:31.360 --> 00:15:31.679
the end.
287
00:15:33.279 --> 00:15:35.919
So good, Okay.
288
00:15:35.960 --> 00:15:37.759
So one of the other things that you brought up
289
00:15:38.759 --> 00:15:43.159
was there is sort of this like shifting responsibility of
290
00:15:43.240 --> 00:15:45.759
software engineers. Like it used to be that we would
291
00:15:45.759 --> 00:15:48.399
be like, got to solve this dumb problem where I
292
00:15:48.440 --> 00:15:51.080
need to figure out how to map this complex thing
293
00:15:51.200 --> 00:15:54.159
to this thing or you know, sort this or d
294
00:15:54.320 --> 00:15:56.960
dupe or whatever. Right, Like, we we've had all these
295
00:15:57.039 --> 00:16:00.600
dumb problems we have to solve. AI's very good at
296
00:16:00.639 --> 00:16:04.799
doing that stuff for us now, and so we sort
297
00:16:04.799 --> 00:16:08.679
of I think a lot of us are sensing sort
298
00:16:08.720 --> 00:16:11.879
of a shift more towards Okay, let me say this.
299
00:16:12.159 --> 00:16:15.000
I feel like the developers who are good at understanding
300
00:16:15.000 --> 00:16:17.639
the product that they're trying to build, who are good
301
00:16:17.639 --> 00:16:20.559
at communicating with the product teams, are going to be
302
00:16:20.639 --> 00:16:25.039
more successful in an AI world.
303
00:16:25.279 --> 00:16:25.720
I agree.
304
00:16:26.159 --> 00:16:28.399
Are you saying people are getting replaced by AI?
305
00:16:29.879 --> 00:16:35.679
What I'm saying is that if your entire purpose on
306
00:16:35.759 --> 00:16:39.720
a team is you know, mapping, you know, is just
307
00:16:39.840 --> 00:16:43.320
writing code. If you don't understand what you're building, you
308
00:16:43.519 --> 00:16:46.360
will probably become less and less useful to your team.
309
00:16:47.399 --> 00:16:50.639
I said any different than before though, No, okay.
310
00:16:50.440 --> 00:16:53.360
I mean I just want to be brought to the
311
00:16:53.399 --> 00:16:58.120
surface more now, right, just like it's just showing those
312
00:16:58.200 --> 00:17:00.440
gaps more extreamly.
313
00:17:00.559 --> 00:17:03.879
Then then you could like hides the wrong word, but
314
00:17:04.000 --> 00:17:07.759
like hide behind the fact, like hide behind certain things
315
00:17:07.799 --> 00:17:09.359
before where it's like, yeah, I just do my job,
316
00:17:09.480 --> 00:17:12.279
you know, like the ticket comes in, I do the ticket,
317
00:17:12.279 --> 00:17:13.839
I work on the next I work on the next ticket,
318
00:17:13.880 --> 00:17:15.519
and that's all I ever do. Right, That's like you
319
00:17:15.559 --> 00:17:18.680
were constantly outputting. But now it's like in this age
320
00:17:18.680 --> 00:17:23.440
of like, well that part is quote unquote cheap. We
321
00:17:23.519 --> 00:17:25.440
know it's not cheap, and it's changing day by day.
322
00:17:25.519 --> 00:17:29.359
Look at co pilot like yes, like well like quote
323
00:17:29.440 --> 00:17:33.240
unquote cheap to produce code, like all of the other
324
00:17:33.400 --> 00:17:36.960
skills that are necessary to be successful, whether that be
325
00:17:37.000 --> 00:17:39.519
in your professional life or your personal life. It all
326
00:17:39.559 --> 00:17:41.079
it's a jokes right now. It's like, oh, all these
327
00:17:41.079 --> 00:17:44.839
developers learn to like unitate correct with LMS is actually
328
00:17:44.839 --> 00:17:47.240
just teaching them how to communicate with humans at the
329
00:17:47.279 --> 00:17:49.359
same time too, like that just be part of the
330
00:17:49.359 --> 00:17:52.119
service more because it's more necessary now because the code
331
00:17:52.400 --> 00:17:53.759
is quote unquote cheap to produce.
332
00:17:54.160 --> 00:17:57.279
I think it's the same discussion that we have when
333
00:17:57.480 --> 00:18:00.079
near sharing become popular then like on the assurance a
334
00:18:00.240 --> 00:18:03.599
very expensive, let's to offshoring. It's the same same discussion,
335
00:18:03.880 --> 00:18:06.240
and so the scale is a little bit different because
336
00:18:06.759 --> 00:18:11.920
even offshoring is still well that's probably cheaper, to be honest, butation.
337
00:18:11.680 --> 00:18:15.799
And that's only gonna be it. It'll always be cheaper, right, Yeah.
338
00:18:16.160 --> 00:18:18.480
Like, well, one thing I would add to Jay's idea
339
00:18:19.279 --> 00:18:22.240
that I that I like a lot is that I
340
00:18:22.279 --> 00:18:24.200
tried to think it in a way that when there
341
00:18:24.279 --> 00:18:26.720
was a scrum team or any other team that was
342
00:18:26.759 --> 00:18:31.160
given a handful of Gira tasks whatever, and you had
343
00:18:31.200 --> 00:18:34.680
a two weeks to to to to deliver them, then
344
00:18:35.680 --> 00:18:38.240
there would be the next day, the next working day,
345
00:18:38.279 --> 00:18:41.759
where you would all meet during a stand up you
346
00:18:41.799 --> 00:18:45.160
would start discussing what everybody picked up, what is your status,
347
00:18:45.200 --> 00:18:49.000
et cetera. And you had basically two weeks or more
348
00:18:49.079 --> 00:18:52.200
or less, like two weeks of finding out that there
349
00:18:52.279 --> 00:18:54.839
might be some duplication across your work or that you
350
00:18:54.880 --> 00:18:58.359
are trying to do or planning to do some piece
351
00:18:58.359 --> 00:19:01.880
of you know, really wonderful, magnificent piece of work that
352
00:19:02.240 --> 00:19:05.599
nobody needs or that is already present in the system
353
00:19:05.640 --> 00:19:08.160
that you can reuse something that exists already or blah
354
00:19:08.200 --> 00:19:11.200
blah blah, like find out any kind of obstacles or
355
00:19:11.279 --> 00:19:14.440
identify basically stupid work that does need to be done,
356
00:19:14.680 --> 00:19:17.039
and so on and so forth. And now if this
357
00:19:17.400 --> 00:19:22.240
code production phase gets limited from two weeks to i know,
358
00:19:22.440 --> 00:19:29.880
two hours, then every kind of communication flaw or like
359
00:19:30.000 --> 00:19:34.720
lack of skill of organizational skills, communication skills is going
360
00:19:34.799 --> 00:19:38.039
to be kind of ten times more painful, like you know,
361
00:19:38.119 --> 00:19:43.440
so to say, so yeah, definitely, like communication skills are
362
00:19:43.440 --> 00:19:46.920
going to be like way more demanding and actually, like
363
00:19:47.559 --> 00:19:50.640
a situation I've had at my customer where we you know,
364
00:19:50.799 --> 00:19:53.880
there is also one more dimension that we haven't touched yet.
365
00:19:54.000 --> 00:19:57.039
Is it's totally different when you want to be successful
366
00:19:57.039 --> 00:20:00.279
with AI or effective with AI when you're a one
367
00:20:00.319 --> 00:20:03.279
man army, or when you want to introduce it across
368
00:20:03.279 --> 00:20:07.279
the whole team or across an organization that includes lots
369
00:20:07.279 --> 00:20:10.680
of teams. Because this is totally different absolutely totally different.
370
00:20:10.759 --> 00:20:14.240
What works for one person doesn't necessarily work for a team,
371
00:20:14.240 --> 00:20:17.960
and not even to mention a whole company. So a
372
00:20:18.000 --> 00:20:21.519
situation we've had with the customer that we are implementing
373
00:20:21.759 --> 00:20:25.759
like introducing AI but to the whole SDLC across the
374
00:20:25.799 --> 00:20:29.400
whole company was that there was a planning session and
375
00:20:29.480 --> 00:20:33.200
the team decided that they basically picked something for the
376
00:20:33.599 --> 00:20:38.559
scrum scrum sprint, and they went home for a weekend.
377
00:20:39.119 --> 00:20:42.799
And after the weekend, it turned out that both one
378
00:20:42.839 --> 00:20:46.079
person from the team and one person from another team
379
00:20:46.160 --> 00:20:49.440
has vibe coded the very same solution for a task,
380
00:20:49.640 --> 00:20:52.240
and then they were fighting whose code is going to
381
00:20:52.279 --> 00:20:53.000
get merged in.
382
00:20:53.759 --> 00:20:55.440
So it's like, neither of us wrote this code, but
383
00:20:55.480 --> 00:20:58.000
I really passionately care about the one I vibe coded.
384
00:20:58.000 --> 00:20:59.880
It doesn't matter.
385
00:21:00.160 --> 00:21:02.839
And of course this is kind of a kind of
386
00:21:03.119 --> 00:21:06.599
quite an extreme situation, but like all these kind of
387
00:21:06.680 --> 00:21:10.440
communication problems are going to be way way way higher
388
00:21:10.440 --> 00:21:12.359
in priorities than they used to be.
389
00:21:12.920 --> 00:21:16.119
Yeah, like we are not just communication intro team or
390
00:21:16.160 --> 00:21:18.680
inter organization, right, Like, yeah, you know, I've always been
391
00:21:18.720 --> 00:21:24.240
an entrepreneur and like, actually, like writing the software wasn't
392
00:21:24.279 --> 00:21:26.480
necessarily the hardest part, of.
393
00:21:26.400 --> 00:21:29.440
Course, Asterisk. It depends on what you're building. In the
394
00:21:29.480 --> 00:21:34.319
Compignanent bubble. I'm going to generalize this. Building the actual
395
00:21:34.440 --> 00:21:37.759
product isn't always the hardest part of building a company.
396
00:21:37.920 --> 00:21:42.880
Building the right thing that someone actually needs, that someone's
397
00:21:42.960 --> 00:21:45.599
actually willing to pay for, that you target to the
398
00:21:45.680 --> 00:21:48.759
right people in the market so you get product market fit.
399
00:21:49.279 --> 00:21:52.400
That's the hard part. That's why companies fail. It's not
400
00:21:52.839 --> 00:21:55.319
the fact that they couldn't build a thing, it's because
401
00:21:55.319 --> 00:21:58.599
they couldn't find product market fit. And my tools now
402
00:21:58.640 --> 00:22:02.680
it's like that's you can produce products at a weekend.
403
00:22:02.920 --> 00:22:08.880
I mean like some people already could. Like anything, people
404
00:22:08.920 --> 00:22:09.400
have to pay.
405
00:22:09.359 --> 00:22:13.720
For it, Like, yeah, we we have run into this
406
00:22:13.880 --> 00:22:18.000
so like so I have so like the team I
407
00:22:18.039 --> 00:22:20.920
work on we have we are full. We are all
408
00:22:20.960 --> 00:22:24.880
angular experts. We've been working together for like three four years.
409
00:22:25.519 --> 00:22:27.519
We have our like we know how to write code,
410
00:22:27.559 --> 00:22:30.119
we know how to get code out fast. We have
411
00:22:30.359 --> 00:22:33.720
never ever, ever been the bottleneck at any point in
412
00:22:33.759 --> 00:22:37.680
the process. But business is like, well, the software is
413
00:22:37.720 --> 00:22:40.279
not getting written, so it must mean that the dev
414
00:22:40.359 --> 00:22:42.480
teams are the bottleneck, and so they're like all the
415
00:22:42.519 --> 00:22:44.440
dev teams have to use AI and I'm like, okay,
416
00:22:44.480 --> 00:22:46.599
so like now you've just sped us up and now
417
00:22:46.599 --> 00:22:48.160
we're still out of tickets.
418
00:22:48.759 --> 00:22:48.960
Yeah.
419
00:22:50.480 --> 00:22:55.440
Yeah, I'm like our bottleneck has never been the development teams.
420
00:22:55.799 --> 00:22:59.880
It's always been that we can't get solid requirements out
421
00:22:59.880 --> 00:23:03.880
of anyone and we can't get an understanding that like, oh,
422
00:23:03.920 --> 00:23:07.839
when you do stuff like just rename things two days
423
00:23:07.880 --> 00:23:11.920
before we release it to the general public, it causes
424
00:23:11.960 --> 00:23:15.160
a lot of weird churn that makes it difficult, you know,
425
00:23:15.240 --> 00:23:18.880
Like there's there's never like I just feel like I
426
00:23:18.880 --> 00:23:22.359
feel like AI and a lot of companies gets focused
427
00:23:22.359 --> 00:23:25.759
on the wrong layer of the problem, and I think.
428
00:23:25.920 --> 00:23:28.559
You just need to throw agents at that problem.
429
00:23:29.400 --> 00:23:32.200
Honestly, Like I'm about to just start doing their job too.
430
00:23:32.240 --> 00:23:34.319
I'm like, tell me what the customers want, and I'll
431
00:23:34.359 --> 00:23:35.279
build it myself.
432
00:23:35.920 --> 00:23:38.160
Like, I know you're being sarcastic, but like a lot
433
00:23:38.160 --> 00:23:45.039
of people think that.
434
00:23:42.039 --> 00:23:44.559
There are times, Yeah, I mean like there are times though,
435
00:23:44.559 --> 00:23:45.440
where it's just.
436
00:23:45.559 --> 00:23:46.000
I don't know.
437
00:23:46.920 --> 00:23:49.240
So at cloud Next. I went to cloud Next last
438
00:23:49.279 --> 00:23:53.880
week and yeah, and I totally left the day early.
439
00:23:53.960 --> 00:23:55.200
I could not do anymore.
440
00:23:56.640 --> 00:24:00.400
I had a fantastic dinner in Vegas. Vegas sucked, sorry,
441
00:24:04.279 --> 00:24:05.559
but the food is really good there.
442
00:24:05.599 --> 00:24:08.480
So I got free sushi two nights in the row
443
00:24:09.000 --> 00:24:11.319
thanks to I think it was Glean that had their
444
00:24:11.440 --> 00:24:16.119
like their like thing at the sushi restaurant there at
445
00:24:16.240 --> 00:24:18.799
Mandalay Bay, and I had like two nights of free sushi.
446
00:24:19.000 --> 00:24:21.440
The second night, I went by myself like a raccoon,
447
00:24:21.480 --> 00:24:23.400
and I gathered up a bunch of sushi and like
448
00:24:23.640 --> 00:24:25.599
ate it in the corner and then escaped as fast
449
00:24:25.599 --> 00:24:27.240
as I could, because all I wanted to do was
450
00:24:27.279 --> 00:24:29.759
be alone in my room. But I also didn't want
451
00:24:29.759 --> 00:24:32.160
to have to solve my food problem by paying for food.
452
00:24:32.279 --> 00:24:34.480
So anyway, I'll tell me.
453
00:24:34.400 --> 00:24:34.960
A lot about me.
454
00:24:35.000 --> 00:24:38.599
I'd rather eat like a raccoon in the corner, shove
455
00:24:38.640 --> 00:24:41.079
a bunch of dessert in my pocket, and run back
456
00:24:41.079 --> 00:24:44.279
to my room and hide. We're gonna get.
457
00:24:44.119 --> 00:24:44.519
Out of here.
458
00:24:44.680 --> 00:24:51.359
Sorry. Why do you have tupperware.
459
00:24:49.680 --> 00:24:50.759
At cloud Necks?
460
00:24:52.119 --> 00:24:52.920
That was my full?
461
00:24:54.200 --> 00:24:56.039
Just want to talk about sushi, That's cool, I just
462
00:24:56.119 --> 00:24:56.400
know I.
463
00:24:56.319 --> 00:24:57.960
Just want to talk about sushi. There was no point
464
00:24:57.960 --> 00:24:59.960
to my comment. I just wanted an excuse to talk
465
00:25:00.000 --> 00:25:04.559
about eating free sushi. No Google has introduced like this
466
00:25:04.960 --> 00:25:08.880
like agents in their GCP platform and like they demonstrated,
467
00:25:09.000 --> 00:25:11.200
like they had their like product person come in, They're like,
468
00:25:11.240 --> 00:25:12.839
this is what we want to build, and they like
469
00:25:13.039 --> 00:25:15.559
made tickets and then the dev team's got the tickets
470
00:25:15.599 --> 00:25:17.920
and like super smooth. And I'm like, oh god, it
471
00:25:17.960 --> 00:25:22.920
never works like that. Like does anyone have this experience
472
00:25:22.960 --> 00:25:26.079
where they're like, I got the requirement all of the
473
00:25:26.079 --> 00:25:29.240
requirements I need. We knew exactly where the data was
474
00:25:29.279 --> 00:25:32.119
going to come from, We knew exactly what it was
475
00:25:32.160 --> 00:25:34.200
supposed to look like and how it was supposed to work.
476
00:25:34.759 --> 00:25:37.039
LARDO is all about getting the right data in the
477
00:25:37.119 --> 00:25:38.880
right format efficiently.
478
00:25:38.799 --> 00:25:40.839
Yes, but it's really really hard.
479
00:25:42.200 --> 00:25:44.119
There is also one one thing when it comes to
480
00:25:44.200 --> 00:25:47.559
using models that is not transparent when we have big vendors,
481
00:25:48.160 --> 00:25:51.119
and it's not you know about Gemini, it's pretty much
482
00:25:51.160 --> 00:25:54.799
about every book, every every big vendor, especially if you
483
00:25:54.839 --> 00:25:56.720
compare it to Hugging Face, where you've got all of
484
00:25:56.720 --> 00:25:59.160
these you know, open models, open training sets, et cetera.
485
00:25:59.200 --> 00:26:02.079
There is something called quantization in models that you basically
486
00:26:02.079 --> 00:26:04.480
can have you know, the original quality of the model,
487
00:26:04.519 --> 00:26:08.960
or it's kind of quantized like compressed, that is, you know, smaller,
488
00:26:09.119 --> 00:26:13.039
cheaper to run, and also weaker in quality. And the
489
00:26:13.279 --> 00:26:16.319
issue is that when we have closed vendors and you
490
00:26:16.400 --> 00:26:19.119
pay with your subscription or pay as you go whatever
491
00:26:19.240 --> 00:26:24.559
kind of model, that you don't actually know which quantization
492
00:26:24.680 --> 00:26:27.160
you're going to get. And for instance, when people are
493
00:26:27.400 --> 00:26:34.039
satisfied with cloud code and suddenly one day, yeah, I
494
00:26:34.039 --> 00:26:40.119
don't want to swear here, I'm a nice guy. So
495
00:26:40.119 --> 00:26:43.039
so out of a sudden, cloud code becomes very very
496
00:26:43.079 --> 00:26:47.440
bad at doing its job. And you know, what's what's
497
00:26:47.480 --> 00:26:50.640
the matter. So there is quantization, but we it's totally
498
00:26:50.640 --> 00:26:53.759
transparent to us, which in my opinion is some kind
499
00:26:53.799 --> 00:26:56.359
of cheating because you pay for some service and you
500
00:26:56.400 --> 00:27:02.839
don't know what the quality is, right, And the issue
501
00:27:02.960 --> 00:27:06.640
is that when we're speaking about, for instance, the quality
502
00:27:06.839 --> 00:27:10.079
of what the models say. For instance, once there was
503
00:27:10.119 --> 00:27:13.599
a paper, white paper saying that some open AI model
504
00:27:14.119 --> 00:27:19.279
has filled in a like a submitted or written not
505
00:27:19.359 --> 00:27:24.920
sure how to see it PhD in mathematics and I'm
506
00:27:24.960 --> 00:27:28.480
not sure if it was GPT for GPT which version,
507
00:27:28.519 --> 00:27:31.839
never mind, but it is absolutely doable. But that's probably
508
00:27:31.839 --> 00:27:35.799
a quantization version that we mayor models are never going
509
00:27:35.839 --> 00:27:38.599
to touch. And that's kind of a problem that we're
510
00:27:38.680 --> 00:27:42.000
using something like you are driving a car and you
511
00:27:42.039 --> 00:27:44.359
don't know how much horsepower you've gotten in the car
512
00:27:44.400 --> 00:27:46.000
because each day you have different horse power.
513
00:27:46.119 --> 00:27:51.759
So I disagree, all right, Why So, I mean, it's
514
00:27:51.799 --> 00:27:54.480
not a secret that cloud code is. The subscription are
515
00:27:54.599 --> 00:27:57.359
very heavily subsidized, so it's more kind of like you're
516
00:27:57.359 --> 00:28:00.240
paying a subscription fee to Uber and like what car
517
00:28:00.319 --> 00:28:03.720
you get for that might be slightly different, But it's
518
00:28:03.759 --> 00:28:04.960
not about the subsidy.
519
00:28:05.160 --> 00:28:06.119
It's about the if.
520
00:28:06.039 --> 00:28:09.160
You pay API pricing, and you can also use hugging
521
00:28:09.200 --> 00:28:10.720
face with a cloud code if you want.
522
00:28:11.200 --> 00:28:14.440
Yeah, But my point here is that like how much
523
00:28:14.480 --> 00:28:17.720
you pay and the subsidies is one thing, It's absolutely true,
524
00:28:18.119 --> 00:28:20.839
But the size and the quality of their model is
525
00:28:20.839 --> 00:28:23.240
a different thing. For instance, if you take Quen three
526
00:28:23.279 --> 00:28:26.160
point five or whatever, you can have a whole bunch
527
00:28:26.240 --> 00:28:30.519
a whole range of different quantitization versions of what you're
528
00:28:30.559 --> 00:28:33.160
going to get, and this effects you know, how much
529
00:28:33.240 --> 00:28:35.720
VRAM you need to have, how much electricity this is
530
00:28:35.720 --> 00:28:38.039
going to cost you, et cetera. So I would say
531
00:28:38.799 --> 00:28:41.720
subsidies and pricing is one topic, and quantization is like
532
00:28:41.759 --> 00:28:44.720
an orthogonal topic. So they are both important.
533
00:28:45.279 --> 00:28:47.000
Yeah, I don't know.
534
00:28:47.200 --> 00:28:48.920
At the end of the day, you're paying for service,
535
00:28:49.000 --> 00:28:53.119
not for a certain x or like to Yeah, but
536
00:28:53.279 --> 00:28:55.359
if it bothers you, you can run your own model
537
00:28:55.400 --> 00:28:58.359
and like or your own proxy or use whatever you want.
538
00:28:58.640 --> 00:29:01.279
Yeah, but imagine that you you need to travel fast
539
00:29:01.559 --> 00:29:05.240
and one day your car has more horsepower, another day
540
00:29:05.279 --> 00:29:08.839
you have less horse power. Sometimes you don't drive because
541
00:29:08.880 --> 00:29:10.880
you don't have to drive, and then you have a
542
00:29:10.920 --> 00:29:15.160
lot of horsepower. Like, the service that you're using actually
543
00:29:15.240 --> 00:29:17.720
changes its parameters.
544
00:29:18.000 --> 00:29:22.559
It's the same for service architectures. It's based on servers
545
00:29:22.759 --> 00:29:25.440
run where you're coming from. But at the same time,
546
00:29:25.519 --> 00:29:28.039
I feel like the comparison is a little bit it's
547
00:29:28.079 --> 00:29:30.799
not quite the same because you're paying for virtual resources
548
00:29:30.839 --> 00:29:33.480
that you're getting access to, not a physical matter.
549
00:29:34.119 --> 00:29:39.400
Well, you have different Well, this quantization basis on how
550
00:29:39.440 --> 00:29:43.079
many bits you've got for a single parameter. So like
551
00:29:43.119 --> 00:29:46.720
we have you know, these tens or thousands of billions
552
00:29:46.720 --> 00:29:49.759
of parameters whatever, then you could have like you know,
553
00:29:49.960 --> 00:29:53.240
sixteen bits or thirty two bits or eight bits or
554
00:29:53.279 --> 00:29:56.680
four bits, et cetera. So this affects the quality of
555
00:29:56.759 --> 00:30:01.079
the response. Like really really really huge. So I would say,
556
00:30:01.119 --> 00:30:04.279
like you pay for a service that has an undefined
557
00:30:04.480 --> 00:30:05.559
quality level.
558
00:30:05.599 --> 00:30:09.240
It sounds like, okays, like Internet. It sounds to be
559
00:30:09.319 --> 00:30:12.200
like Internet in the United States because it'll be like, oh,
560
00:30:12.319 --> 00:30:14.599
you've paid for up to x amount of speed, and
561
00:30:14.640 --> 00:30:16.359
then if you call the complaint because you can't get
562
00:30:16.359 --> 00:30:18.200
that speed, they're like, you just need to upgrade your
563
00:30:18.200 --> 00:30:19.519
service and get a better router.
564
00:30:20.079 --> 00:30:22.359
Yeah, and here you don't have that defined at all.
565
00:30:22.759 --> 00:30:24.920
Yeah, it's always like up to like you can have
566
00:30:25.200 --> 00:30:29.720
up to this, and like, which is I guess I've
567
00:30:29.759 --> 00:30:31.480
just learned to internalize that.
568
00:30:31.839 --> 00:30:35.240
But I'm curious what what would you expect for a
569
00:30:35.279 --> 00:30:37.000
non deterministic resource.
570
00:30:37.279 --> 00:30:38.400
I mean, it's kind of like.
571
00:30:38.279 --> 00:30:39.839
You're going to the stock market and be like, hey,
572
00:30:39.880 --> 00:30:42.000
yesterday the price was two dollars, today it's five.
573
00:30:44.440 --> 00:30:49.200
That's not you know universe discussion you know about.
574
00:30:49.400 --> 00:30:53.799
You know, you mentioned cloud and basically serverless architecture, which
575
00:30:53.839 --> 00:30:56.720
is very good kind of point of reference here. So
576
00:30:57.039 --> 00:31:00.559
imagine that you pay for a uh VP is APS
577
00:31:00.759 --> 00:31:03.400
virtual private server, or that you pay for I know,
578
00:31:03.559 --> 00:31:07.400
a cluster or whatever. Basically you pay for very specific
579
00:31:07.720 --> 00:31:11.160
parameters of hardware that you want to use, and that's
580
00:31:11.160 --> 00:31:14.319
basically the thing. So depending on the quantization of a model,
581
00:31:15.759 --> 00:31:18.759
you actually have totally different infrastructure and different power of
582
00:31:18.759 --> 00:31:20.440
what you're of what you're using.
583
00:31:20.519 --> 00:31:22.000
Essentially, that's but that's what I'm saying.
584
00:31:22.119 --> 00:31:26.640
You're not you're not paying Anthropic for the usage of opus.
585
00:31:26.319 --> 00:31:29.240
Or whatever, but that affects what you get.
586
00:31:29.519 --> 00:31:31.559
You're paying for the output tokens.
587
00:31:31.839 --> 00:31:34.680
Yeah, but at a I see what. I understand what
588
00:31:34.720 --> 00:31:37.599
you're both saying. But like the fact that you can
589
00:31:37.720 --> 00:31:41.039
pay a single price for service and then the quality
590
00:31:41.079 --> 00:31:45.200
that service changes on a dime is like, that's not
591
00:31:45.759 --> 00:31:47.240
like what like that?
592
00:31:47.640 --> 00:31:50.920
Yes, exactly, that's the thing, John, I, I don't know.
593
00:31:50.880 --> 00:31:54.440
Why you're fighting against the fact that there's one like, yes,
594
00:31:55.119 --> 00:31:57.960
the price is static for the input and output, but
595
00:31:58.240 --> 00:32:02.000
the quality of the output is changing without your knowledge,
596
00:32:02.039 --> 00:32:05.160
with the same price. So how do I think against that?
597
00:32:05.440 --> 00:32:07.240
I'm not I'm not your argument.
598
00:32:07.680 --> 00:32:12.000
The argument is basically that you're accepting that for the
599
00:32:12.039 --> 00:32:14.359
price that you're paying on Tropic, you don't have to
600
00:32:14.440 --> 00:32:15.160
do a Tropic.
601
00:32:16.119 --> 00:32:16.839
You can do.
602
00:32:16.759 --> 00:32:18.960
Your you can build your own thing. You can't pay proxy,
603
00:32:19.039 --> 00:32:21.319
you can host your own model, you can use a
604
00:32:21.319 --> 00:32:24.480
different agent hardness. So it's a it's an point that
605
00:32:24.519 --> 00:32:28.119
you're accepting for that given price because conceptually it's still
606
00:32:28.200 --> 00:32:31.720
that it's sometimes it's still cheaper, and so so that
607
00:32:32.160 --> 00:32:35.559
it's a deal that we're making with that. I absolutely
608
00:32:35.599 --> 00:32:39.880
agree the same way in Germany, I had the shitty
609
00:32:40.039 --> 00:32:43.640
mobile provider because I was cheap. Now I pay a
610
00:32:43.680 --> 00:32:47.039
ship on more money, but have a butt it connection. Like,
611
00:32:47.640 --> 00:32:48.880
so it's a it's a matter of trade.
612
00:32:49.119 --> 00:32:52.039
Yeah, yeah, But on the other hand, you'retecting the you're
613
00:32:52.079 --> 00:32:54.759
like in terms of service. But like that, yes, agree,
614
00:32:54.839 --> 00:32:58.240
but like that doesn't mean that it's okay for us
615
00:32:58.240 --> 00:32:59.279
to accept.
616
00:33:01.119 --> 00:33:03.960
It's I mean, it's a pea capitalism. You don't have
617
00:33:04.000 --> 00:33:05.200
to pay for it, but you're doing.
618
00:33:05.960 --> 00:33:06.160
Yeah.
619
00:33:06.200 --> 00:33:07.920
But on the on the other hand, if there is
620
00:33:07.960 --> 00:33:14.759
a vendor that basically don't introduce surprises like this and
621
00:33:15.039 --> 00:33:18.240
becomes big enough, et cetera, it would shake the market.
622
00:33:18.359 --> 00:33:21.519
So it's kind of a okay, let's not not walk
623
00:33:21.559 --> 00:33:24.000
into it. But I would say there is a kind
624
00:33:24.039 --> 00:33:29.039
of area that if any vendor treats it seriously, it
625
00:33:29.079 --> 00:33:32.079
could win a lot, really a lot, because that would
626
00:33:32.119 --> 00:33:36.279
be more kind of deterministic for us users I mean
627
00:33:36.319 --> 00:33:39.720
not deterministic with models that are not deterministic by nature,
628
00:33:39.720 --> 00:33:43.519
but I mean less surprising because of that. For instance,
629
00:33:43.759 --> 00:33:47.680
I would be glad to decide myself whether I pay
630
00:33:47.680 --> 00:33:49.680
more or less depending on what is the quality of
631
00:33:49.720 --> 00:33:52.400
the model itself, or at least that you know, you
632
00:33:52.440 --> 00:33:54.480
don't get surprised in a way that you know, for
633
00:33:54.519 --> 00:33:57.200
two weeks or for two months or whatever, a thing
634
00:33:57.279 --> 00:34:01.960
is working for you, all your you know, skills, subagents, commands,
635
00:34:01.960 --> 00:34:05.160
et cetera. Everything is working, and now once, like out
636
00:34:05.240 --> 00:34:08.360
of a sudden, everybody is complaining on discord on slack
637
00:34:08.440 --> 00:34:12.079
because everybody is getting the same infrastructure essentially, which is
638
00:34:12.119 --> 00:34:16.159
basically you know, more like more aggressively quantized model, which
639
00:34:16.320 --> 00:34:19.639
to be honest, I haven't like I'm a heavy user
640
00:34:19.719 --> 00:34:23.840
of Anthropic and Gemini, and I've I have experienced it
641
00:34:23.880 --> 00:34:27.760
a lot with Anthropic. I didn't experience it with with
642
00:34:27.760 --> 00:34:32.840
with with Gemini, not sure if at all, but generally, uh,
643
00:34:32.880 --> 00:34:35.320
this is something I would complain about Anthropic here.
644
00:34:36.199 --> 00:34:39.119
Okay, but again, to play devil's advocate, you could just
645
00:34:39.159 --> 00:34:42.360
pay hugging face. They're not having that issue for their
646
00:34:42.400 --> 00:34:45.400
OPOS model. For access to the opos model that they're
647
00:34:45.400 --> 00:34:46.480
providing or.
648
00:34:46.559 --> 00:34:50.440
Dead rock or yes, yes or yes.
649
00:34:50.440 --> 00:34:51.960
But but you're accepting the.
650
00:34:53.800 --> 00:34:57.559
Even if we would call it availability, where technically it's
651
00:34:57.599 --> 00:35:00.840
more of like a quality aspect, but you're still willing
652
00:35:00.880 --> 00:35:02.280
to accept that for the cheaper price.
653
00:35:02.559 --> 00:35:05.199
Yeah, but as you said, it's like a capitalism, like
654
00:35:05.400 --> 00:35:09.800
there are only few extremely big vendor who can manage
655
00:35:09.880 --> 00:35:13.400
to do whatever they want because they have no competition
656
00:35:13.559 --> 00:35:16.159
unless any of them, you know, make a breakthrough to
657
00:35:16.960 --> 00:35:17.719
still doing that.
658
00:35:18.199 --> 00:35:20.800
It's also the mode of the default, right. The vast,
659
00:35:20.880 --> 00:35:23.679
vast majority of users, regardless of how technical or non
660
00:35:23.760 --> 00:35:26.960
technical user is, will just accept the default, right.
661
00:35:27.480 --> 00:35:29.559
I think that actually is one thing that is going
662
00:35:29.599 --> 00:35:34.079
to change because I do think for bigger companies, Cisco
663
00:35:34.199 --> 00:35:36.199
for instance, is going to be one of them that
664
00:35:36.239 --> 00:35:38.960
I see that is going to host their own AWS
665
00:35:38.960 --> 00:35:40.559
bedrock instance or something like that.
666
00:35:40.679 --> 00:35:44.320
I mean we're using we're using bedrock models, trellis. Like
667
00:35:44.360 --> 00:35:48.280
I've started switching from I don't know what's the Amazon model,
668
00:35:48.320 --> 00:35:52.119
party models, first party hosted models, to bedrock models. I
669
00:35:52.159 --> 00:35:55.800
mean we've been using we started switching to open source
670
00:35:56.119 --> 00:35:58.599
bedrock models though as well, right, Like I've some we
671
00:35:58.639 --> 00:36:00.559
have some internal tools. I was like, I don't need
672
00:36:00.599 --> 00:36:03.599
to be paying these like Frontier Labs this price when
673
00:36:03.679 --> 00:36:06.159
Quinn three point five works perfectly fine for my like
674
00:36:06.719 --> 00:36:13.280
super fine grained niche small like there's five hundred input tokens,
675
00:36:13.440 --> 00:36:16.119
or there's two hundred and fifty input tokens and like
676
00:36:16.400 --> 00:36:20.159
fifteen hundred output tokens. I don't need Frontier models for that, right,
677
00:36:20.239 --> 00:36:22.039
it's like super well defined.
678
00:36:22.119 --> 00:36:23.199
I'm not doing that clothing.
679
00:36:23.639 --> 00:36:25.559
It's like I'm getting the input, I need you to
680
00:36:25.679 --> 00:36:30.519
flag if there's certain words in it, yes or no,
681
00:36:31.280 --> 00:36:34.400
and then we just use the Quinn on bedrock because
682
00:36:34.440 --> 00:36:36.239
we don't need Frontier Labs for that kind of thing.
683
00:36:36.480 --> 00:36:38.599
Just lots and lots and lots of tasks. You don't
684
00:36:38.599 --> 00:36:41.599
need Frontier Labs for Frontier Lab models for I should
685
00:36:41.639 --> 00:36:44.599
say whether they're hosted on first party or third party
686
00:36:44.679 --> 00:36:44.840
or not.
687
00:36:45.079 --> 00:36:48.679
Did you see the Century CTO post yesterday where they
688
00:36:48.760 --> 00:36:53.199
basically disabled open four point seven in the entire Century organization.
689
00:36:53.480 --> 00:36:55.360
I did see that, and I want to disable it
690
00:36:55.400 --> 00:36:57.920
across my organization as well. Four point seven.
691
00:36:58.159 --> 00:37:02.480
Sucks not noticing better but thirty percent more expensive.
692
00:37:03.159 --> 00:37:07.000
Yeah, yeah, I have noticed a difference though, like I
693
00:37:07.079 --> 00:37:09.519
have consistently and I don't. I've been seeing some things
694
00:37:09.519 --> 00:37:12.719
about maybe like auto mode is causing problems too. I'm
695
00:37:12.760 --> 00:37:13.639
not sure I bet.
696
00:37:13.599 --> 00:37:14.880
Oh yeah yet or not.
697
00:37:15.000 --> 00:37:17.880
But like between auto mode and four point seven, like
698
00:37:17.960 --> 00:37:22.159
I'm consistently being like, what are you doing? How did
699
00:37:22.199 --> 00:37:25.639
you what? You went so far off the rails when
700
00:37:25.719 --> 00:37:28.400
last week this task was perfectly fine. I don't understand
701
00:37:28.440 --> 00:37:28.679
how the.
702
00:37:28.719 --> 00:37:31.599
Qualityeah, but token consumption was already.
703
00:37:31.400 --> 00:37:34.039
Done crazy, it's insane, how like.
704
00:37:35.400 --> 00:37:38.519
Yeah, yeah, but what you said with with Quinn actually
705
00:37:38.719 --> 00:37:41.119
like where where do these models come from? Is a
706
00:37:41.119 --> 00:37:44.079
totally different topic that I don't want to touch here.
707
00:37:44.440 --> 00:37:47.159
But actually, like what you've said about like you don't
708
00:37:47.199 --> 00:37:49.800
need the most frontier models that are you know, like
709
00:37:50.159 --> 00:37:53.320
when we're speaking about you know, clots on It, Gemini,
710
00:37:53.400 --> 00:37:57.840
the big one, the GPT, et cetera. Like they're trained
711
00:37:57.840 --> 00:38:02.840
with development, they're trained with ancient philosophy, cooking, I know, history,
712
00:38:03.559 --> 00:38:07.519
many different languages like human languages, and you know, hundreds
713
00:38:07.519 --> 00:38:11.199
of different other stuff that like we don't need all
714
00:38:11.280 --> 00:38:15.679
of that. And the funny thing is that the provider
715
00:38:15.800 --> 00:38:18.719
pays for it with you know, the electric the power
716
00:38:18.800 --> 00:38:21.880
for electricity and for the hardware. And what you've said
717
00:38:22.159 --> 00:38:26.159
Jay resonates a lot with me, is that for kind
718
00:38:26.239 --> 00:38:29.840
of tasks that we do in a kind of specific
719
00:38:29.880 --> 00:38:34.039
domain like web development. If you have a company that
720
00:38:34.119 --> 00:38:37.239
basically runs Angular, NX, et cetera, like, let's take out
721
00:38:37.320 --> 00:38:41.440
know ten frameworks, languages, et cetera, and combine them together
722
00:38:42.440 --> 00:38:47.000
tune like open models such as Quen, Kimi, whatever, or
723
00:38:47.119 --> 00:38:51.280
a game from Meta or whatever base model we take,
724
00:38:51.679 --> 00:38:56.159
and we need a model that would be few orders
725
00:38:56.159 --> 00:38:59.960
of magnitude, smaller and cheaper and not worse because we
726
00:39:00.159 --> 00:39:03.599
just don't need you know, like the context of full
727
00:39:03.760 --> 00:39:07.880
humanity and all these languages. For instance, for me, having
728
00:39:08.039 --> 00:39:11.039
a model that supports English would be totally enough and
729
00:39:11.079 --> 00:39:13.920
I can not care about other languages. Let's say that
730
00:39:13.960 --> 00:39:16.440
it would be even English and Polish doesn't matter. I
731
00:39:16.480 --> 00:39:19.840
don't need any other languages, right, why would like? And
732
00:39:19.920 --> 00:39:22.480
the problem is that if that model is trained, you know,
733
00:39:23.000 --> 00:39:27.079
multilingually and in any other aspects, like first you need
734
00:39:27.079 --> 00:39:29.679
to pay for the training, but also all these parameters
735
00:39:29.679 --> 00:39:33.360
within the model, they do kind of include the weights,
736
00:39:33.400 --> 00:39:35.719
you know, the data that was in the training. So
737
00:39:36.039 --> 00:39:38.480
and whenever we run the model of course, like sometimes
738
00:39:38.480 --> 00:39:42.000
we run through all the layers, all the tensors, sometimes not,
739
00:39:42.119 --> 00:39:45.119
so it kind of depends. But anyway, we are paying
740
00:39:45.280 --> 00:39:49.559
with electricity and power for many aspects that we're never
741
00:39:49.639 --> 00:39:51.960
going to use, which is basically kind of in the
742
00:39:52.000 --> 00:39:54.360
long run, it does make sense. On the other hand,
743
00:39:54.400 --> 00:39:58.159
like you know, the flagship models, they set the direction
744
00:39:58.559 --> 00:40:01.840
in terms of what even possible, But this is so
745
00:40:02.039 --> 00:40:06.440
insanely expensive for the provider, Like why why do they
746
00:40:06.559 --> 00:40:09.679
even have to subsidize it? For instance, if you take
747
00:40:10.320 --> 00:40:15.719
three point five, you would be happy with mac mac
748
00:40:16.039 --> 00:40:21.119
M five, which has one hundred and twenty eight gigabytes
749
00:40:21.159 --> 00:40:24.360
of VRAM, so quen three point five would take you
750
00:40:24.440 --> 00:40:26.880
half of that and you would still have the other
751
00:40:26.960 --> 00:40:29.239
half to use for any of your applications that you need,
752
00:40:29.360 --> 00:40:31.840
so you'd have a local development. And more and more
753
00:40:31.840 --> 00:40:36.000
people say that they are really happy with a local model,
754
00:40:36.079 --> 00:40:39.280
not even you know, via open Router or what jan
755
00:40:39.440 --> 00:40:41.599
you mentioned, like like set up your own et cetera.
756
00:40:41.679 --> 00:40:44.360
Like you can literally have it on your laptop provided
757
00:40:44.400 --> 00:40:46.239
that you have at least these kind of sixty four
758
00:40:46.320 --> 00:40:50.039
at least, but they're not trained, you know, with all
759
00:40:50.079 --> 00:40:54.000
the humanity context and I really believe that it's a
760
00:40:54.000 --> 00:40:57.239
matter of time, not unless, not only unless we have
761
00:40:57.480 --> 00:41:01.039
you know, smaller models that are specific to like tied
762
00:41:01.119 --> 00:41:06.400
to a specific domain, but also models that are going
763
00:41:06.440 --> 00:41:09.400
to be open source, like I believe, like maybe maybe
764
00:41:09.480 --> 00:41:13.039
hugging face making something else will win very similarly as
765
00:41:13.079 --> 00:41:16.800
we have with operating systems for instance, nowadays in Cloud
766
00:41:16.840 --> 00:41:20.639
we don't pay for we don't pay for operating system
767
00:41:20.719 --> 00:41:23.920
because everything mainly runs a Linux, So we pay for
768
00:41:24.079 --> 00:41:30.400
infrastrure back. So yeah, yeah, but you use it in
769
00:41:30.519 --> 00:41:35.760
so many places in like Linux scales very very well,
770
00:41:35.800 --> 00:41:41.119
like both industry wise, commercially wise, et cetera. So I
771
00:41:41.199 --> 00:41:43.679
believe what we are going to pay in a couple
772
00:41:43.679 --> 00:41:46.360
of years, in several years, maybe more than ten years,
773
00:41:46.400 --> 00:41:49.039
I know, but we're going to pay for infrastructure, same
774
00:41:49.159 --> 00:41:52.159
as with Cloud, and not for the model itself. This
775
00:41:52.239 --> 00:41:54.360
is what I expect in years to come.
776
00:41:54.840 --> 00:41:58.079
Yeah. We so like just a real life use case
777
00:41:58.119 --> 00:42:02.119
for listeners, we switched from cohere model, so that's a
778
00:42:02.159 --> 00:42:05.599
Canadian that's like the Canadian Frontier lab AI company. We
779
00:42:05.639 --> 00:42:08.920
switched from co Here models to Quinn on Bedrock for this,
780
00:42:09.119 --> 00:42:13.440
like a couple of different like really niche like very
781
00:42:13.480 --> 00:42:16.599
deterministic tasks, like the same input every time, same output
782
00:42:16.599 --> 00:42:18.599
every time, et cetera. So one case was we have
783
00:42:18.679 --> 00:42:21.639
this integration with a CRM that does matching of constituents
784
00:42:21.639 --> 00:42:24.559
and towners whatever. We added an AI layer onto that
785
00:42:24.599 --> 00:42:27.400
to it, and we got amazing results. We went from
786
00:42:27.440 --> 00:42:30.119
like an eighty three percent match rate up to like
787
00:42:30.559 --> 00:42:34.079
ninety eight point six match rate by adding this like
788
00:42:34.119 --> 00:42:36.519
by like tweaking the algorithm and then using AI as
789
00:42:36.519 --> 00:42:39.679
a fallback case. Right, that was with cohere. Then I
790
00:42:39.719 --> 00:42:41.599
switched over and we did like a trainset of data
791
00:42:41.639 --> 00:42:44.159
set of like you know, six hundred, six hundred records.
792
00:42:44.159 --> 00:42:47.280
We did the comparison between right, So we're once you
793
00:42:47.320 --> 00:42:49.440
get up to those like above ninety eight, you're getting
794
00:42:49.440 --> 00:42:52.079
into like standard deviation territory where like a couple points
795
00:42:52.119 --> 00:42:54.800
of percent or like not gonna it'll more depend on
796
00:42:54.840 --> 00:42:57.519
the data set than it does on the actual test setter. Right,
797
00:42:57.960 --> 00:43:00.400
So we switched from cohre I think it was command
798
00:43:00.440 --> 00:43:03.679
A I believe, over to Quent three point five I
799
00:43:03.679 --> 00:43:07.119
think is what we ended up determining on bedrock using
800
00:43:07.159 --> 00:43:10.840
the flex service tier, so even cheaper than the standard
801
00:43:11.320 --> 00:43:14.199
Quent three point five service tier for like an extra
802
00:43:14.320 --> 00:43:17.079
seven hundred millis seconds of latency or something crazy like that.
803
00:43:17.119 --> 00:43:19.840
I was like, sure, I'll absolutely, you know, pay seventy
804
00:43:19.840 --> 00:43:21.719
five percent of the standard tier price for three point
805
00:43:21.760 --> 00:43:24.159
five Quent three point five, like whatever, And we got
806
00:43:24.199 --> 00:43:28.199
like pretty much the exact same success rate. It was
807
00:43:28.239 --> 00:43:31.199
like ninety eight point three versus ninety eight point six.
808
00:43:31.880 --> 00:43:35.880
We're in within standard deviation territory of test data, right,
809
00:43:36.280 --> 00:43:40.079
But it was like seven to nine x cheaper than
810
00:43:40.159 --> 00:43:44.599
command A with coher and it was faster by some
811
00:43:45.199 --> 00:43:48.440
order of magnitude. So it was like, well, why would
812
00:43:48.440 --> 00:43:51.880
I even remotely consider a frontier lab for this use
813
00:43:51.920 --> 00:43:56.719
case when Quent three point five is faster, significantly cheaper.
814
00:43:57.360 --> 00:43:59.400
And in the future, if we want to go from
815
00:43:59.480 --> 00:44:02.719
ninety eight plus two one hundred percent, we can fine
816
00:44:02.760 --> 00:44:06.440
tune it and then hostly bedrock ourselves using realistic data
817
00:44:06.440 --> 00:44:07.320
from our data sets.
818
00:44:07.400 --> 00:44:07.519
Right.
819
00:44:07.559 --> 00:44:09.679
And I know some someone's probably gonna adp me and
820
00:44:09.719 --> 00:44:13.360
be like, oh, you can fine tune the frontier models too. Well, sure,
821
00:44:13.400 --> 00:44:15.880
but then you're back to the whole pricing problem again.
822
00:44:15.960 --> 00:44:19.000
Right now You're like, now you're paying fine tuned prices
823
00:44:19.039 --> 00:44:22.159
because you're the only one using that fine tuned model
824
00:44:22.559 --> 00:44:25.480
versus like being able to share compute with everybody else
825
00:44:25.519 --> 00:44:27.760
that's using them, like the Quinn If we didn't find
826
00:44:27.760 --> 00:44:29.519
tuned on betrock, for example, we use them. I mean
827
00:44:29.559 --> 00:44:32.039
even on even on bedrock. With a fine tuned model,
828
00:44:32.119 --> 00:44:34.440
it's like exactly seven and a half x cheaper than
829
00:44:34.480 --> 00:44:37.599
the frontier labs use the fine toothed models. Like why
830
00:44:37.639 --> 00:44:40.440
wouldn't you use an open weight model for these like
831
00:44:41.159 --> 00:44:45.760
super specific tasks that you know you can control versus
832
00:44:45.920 --> 00:44:49.079
these like more open ended let's say coding for example.
833
00:44:49.159 --> 00:44:52.280
Right not to mention the fact that some companies require
834
00:44:52.360 --> 00:44:55.400
to own or at least partially own their infrastructure. So
835
00:44:55.679 --> 00:44:58.400
in case of of this, like you don't have to
836
00:44:58.480 --> 00:45:00.559
use bad rock, like as long as bad rock in
837
00:45:00.559 --> 00:45:04.360
this case was just infrastructure. So if you have, if
838
00:45:04.400 --> 00:45:06.679
you want, you can like you know, build your own
839
00:45:06.719 --> 00:45:09.360
infrastructure if you want, like if there is a kind
840
00:45:09.360 --> 00:45:12.159
of you know, legal requirement for that. So why not
841
00:45:12.559 --> 00:45:16.000
so that you know your data never leave your company.
842
00:45:16.199 --> 00:45:17.360
Nop exactly.
843
00:45:17.719 --> 00:45:19.920
I'm just like so glad that there's just a whole
844
00:45:19.960 --> 00:45:22.280
team that does all of this for me.
845
00:45:27.320 --> 00:45:29.440
These are just numbers you are going to pay, you know,
846
00:45:29.559 --> 00:45:34.159
like tens of thousands of dollars I believe for a
847
00:45:34.199 --> 00:45:35.920
single you know, GPU device.
848
00:45:36.559 --> 00:45:39.039
Just I wish more companies would just like post how
849
00:45:39.079 --> 00:45:42.239
much money they've spent on AI in like the last month,
850
00:45:42.280 --> 00:45:44.039
because yeah, it can be.
851
00:45:44.039 --> 00:45:47.559
Like by the way, Jay, can you say how many
852
00:45:47.719 --> 00:45:51.960
developers were using how many instances of the quen Was
853
00:45:52.000 --> 00:45:53.880
this just one instance or more?
854
00:45:54.280 --> 00:45:57.320
Well, the developers aren't actually using the Quinn model. It's
855
00:45:57.360 --> 00:46:00.800
built into our system, like it's built into the product itself,
856
00:46:00.800 --> 00:46:01.280
the product.
857
00:46:01.760 --> 00:46:03.480
Okay, So it's being used in run time, not.
858
00:46:03.480 --> 00:46:06.199
To do to power a feature that our customers use.
859
00:46:06.280 --> 00:46:08.320
Sure, Okay, so not just for development, sure?
860
00:46:08.360 --> 00:46:10.400
Yeah, yeah, No, we're actually not using quint for development
861
00:46:10.440 --> 00:46:12.760
right now. Right now, we're just using standard pod code
862
00:46:12.800 --> 00:46:15.519
via subscription. Sure. And that's why I'm so upset about
863
00:46:15.559 --> 00:46:17.559
four point seven and Automove.
864
00:46:19.239 --> 00:46:22.280
Do better Anthropic you're listening, all right, all right, So
865
00:46:22.880 --> 00:46:27.639
let's to bring it back to the angular perspective, Tomash,
866
00:46:27.719 --> 00:46:31.599
what are some of your must haves for Angular development
867
00:46:31.760 --> 00:46:35.079
regarding ail code?
868
00:46:37.159 --> 00:46:41.199
I would say, like do your homework when it comes
869
00:46:41.199 --> 00:46:45.039
to fundamentals of software architecture when it when it when
870
00:46:45.079 --> 00:46:49.880
it's about modularizing your application and thinking about how to
871
00:46:49.960 --> 00:46:53.480
integrate modules across them. So I know that is going
872
00:46:53.559 --> 00:46:57.760
to be opinionated, et cetera. But basically, the more you
873
00:46:57.840 --> 00:47:01.199
share in your code base and and like you know,
874
00:47:01.360 --> 00:47:04.960
the more different pieces of your code base can import
875
00:47:05.239 --> 00:47:08.360
and use or reuse whatever other pieces of your code base,
876
00:47:09.760 --> 00:47:15.480
then this introduces quite some let's say, obstacles or make
877
00:47:15.519 --> 00:47:18.239
it more expensive to maintain, to understand, et cetera. And
878
00:47:18.360 --> 00:47:20.760
it's not only people who'd have to read more code,
879
00:47:20.760 --> 00:47:23.360
but also it's AI who needs to read more files,
880
00:47:23.400 --> 00:47:26.599
which consumes more tokens, et cetera, et cetera. So basically
881
00:47:27.639 --> 00:47:31.239
I would say before we could go like before the
882
00:47:31.280 --> 00:47:33.599
EI era, we could go with you know, more like
883
00:47:33.719 --> 00:47:38.639
global or centralized state solutions, or think of more distributed
884
00:47:38.719 --> 00:47:42.840
like you know, more like more aggressively modularized. Now, whenever
885
00:47:42.880 --> 00:47:48.360
we want to change something in for instance, global, NNGRX, state, whatever,
886
00:47:48.519 --> 00:47:52.559
then there is a risk that whenever you change something
887
00:47:52.599 --> 00:47:56.480
that is global, then potentially all other pieces of the
888
00:47:56.599 --> 00:47:59.519
R application depend on it. Like of course it doesn't
889
00:47:59.519 --> 00:48:01.679
have to be n but basically anything that is global
890
00:48:02.559 --> 00:48:06.480
and generally available to the codebase. Then there is a
891
00:48:06.559 --> 00:48:09.199
risk somebody else would depend on that, which would basically
892
00:48:09.239 --> 00:48:13.079
make the model to iterate more times on your codebase
893
00:48:13.159 --> 00:48:15.360
to make it compile, make it work, et cetera. So
894
00:48:15.599 --> 00:48:21.639
basically I would say more localized state solutions make way
895
00:48:21.639 --> 00:48:25.159
more sense. So that generally speaking, as much as a
896
00:48:25.199 --> 00:48:28.679
model can work in a thin vertical slice, which is
897
00:48:28.719 --> 00:48:32.679
basically a folder with component services, whatever you need just
898
00:48:32.760 --> 00:48:36.320
within a slice, of course, it's more convenient to make
899
00:48:36.360 --> 00:48:38.360
it a folder, but a folder is just a folder.
900
00:48:38.679 --> 00:48:43.400
But still you don't make the model read everything that
901
00:48:43.519 --> 00:48:46.679
is globally available. But on the other hand, you will
902
00:48:46.920 --> 00:48:50.480
have in all applications sooner or later places where you
903
00:48:50.639 --> 00:48:52.920
change something in one view or in one module and
904
00:48:52.960 --> 00:48:55.599
it affects in some way other modules. So you need
905
00:48:55.679 --> 00:48:59.239
some ways of integration. And again, like learn fundamentals such
906
00:48:59.239 --> 00:49:02.760
as there are events, commands and queries, So what are
907
00:49:03.079 --> 00:49:05.920
the most fundamental ways for models to communicate with each other?
908
00:49:06.159 --> 00:49:09.960
And basically this is something that works in Angular, it
909
00:49:10.039 --> 00:49:13.119
works also in View and in other frameworks as well.
910
00:49:13.599 --> 00:49:17.199
That you in your guard rails, in your you know
911
00:49:17.320 --> 00:49:22.199
rules and expectations from the model, you enforce it like
912
00:49:22.320 --> 00:49:24.079
of course that the model can kind of you know,
913
00:49:24.360 --> 00:49:29.079
jail break from your rules never mind, but you you
914
00:49:30.280 --> 00:49:33.400
drive the model to work only in a specific directory,
915
00:49:33.639 --> 00:49:38.079
and you explicitly define what is the contract with other modules,
916
00:49:38.280 --> 00:49:42.400
so for instance, what events could you send, what actions
917
00:49:42.400 --> 00:49:45.920
could you dispatch? Whatever we call them. So focus on
918
00:49:46.519 --> 00:49:50.199
local let's say features the most, even at the cost
919
00:49:50.199 --> 00:49:55.199
of duplication, so that whenever you want to extend something,
920
00:49:55.360 --> 00:49:59.760
build something, replace something, or even remove something, there are
921
00:50:00.119 --> 00:50:04.400
as few global things to touch as possible. So of
922
00:50:04.440 --> 00:50:08.800
course there would be exceptions from it, for instance, component
923
00:50:08.880 --> 00:50:12.239
libraries that are you know, used throughout the product, or
924
00:50:12.360 --> 00:50:15.400
if you, i know, have a library or kind of
925
00:50:15.480 --> 00:50:18.840
API that another team has built and you have to use.
926
00:50:18.920 --> 00:50:21.519
Like sure, like you might have some global dependencies, but
927
00:50:21.840 --> 00:50:24.760
try to limit them as much as possible, because this
928
00:50:24.840 --> 00:50:31.880
is going to be both like economically like economically better
929
00:50:31.960 --> 00:50:34.679
for token consumption, but also this is going to be
930
00:50:35.320 --> 00:50:40.079
more predictable. So I would say, be localized as much
931
00:50:40.119 --> 00:50:43.400
as possible. And there is also one more concept but
932
00:50:43.519 --> 00:50:45.199
I don't have if I don't know if we have
933
00:50:45.239 --> 00:50:49.360
time for it, which is removability, which are also kind
934
00:50:49.360 --> 00:50:54.679
of a huge fan of that, and it's like, you know,
935
00:50:55.079 --> 00:50:58.400
coding as we've been doing it manually was kind of
936
00:50:58.760 --> 00:51:01.039
expensive and took us a lot of time. So now
937
00:51:01.079 --> 00:51:03.840
if coding is kind of shifted to the model, not design,
938
00:51:03.920 --> 00:51:07.480
but coding, what if our modules are so small that
939
00:51:07.599 --> 00:51:11.119
it's cheaper for us to basically throw away a model
940
00:51:11.159 --> 00:51:14.159
that we're a module, sorry, a module that we have
941
00:51:14.239 --> 00:51:17.280
trouble with, And basically it's what if it's cheaper to
942
00:51:17.599 --> 00:51:20.880
rewrite it from scratch, replace it instead of maintaining it.
943
00:51:21.280 --> 00:51:26.199
So this is a concept that Greg Young Beckond architect
944
00:51:26.480 --> 00:51:29.199
introduced kind of more than ten years ago, and at
945
00:51:29.199 --> 00:51:32.559
that time it was kind of a visionary because writing
946
00:51:32.599 --> 00:51:36.719
code was expensive. Now writing code is not expensive and
947
00:51:36.920 --> 00:51:40.360
llms can you know, help us a lot with that.
948
00:51:40.559 --> 00:51:43.480
So at this point in time, I would say this
949
00:51:43.559 --> 00:51:47.000
is not visionary that much. So that if our modules
950
00:51:47.000 --> 00:51:51.239
are small and we explicitly say what are the integration
951
00:51:51.599 --> 00:51:54.800
points with other modules, then I would say this is
952
00:51:54.800 --> 00:51:55.639
the this is the way.
953
00:51:55.960 --> 00:51:58.920
Yeah, I want what we've been So we have a
954
00:51:58.960 --> 00:52:01.880
lot of like table views, right like, we have a
955
00:52:01.920 --> 00:52:04.239
lot of data and so it's going to get displayed
956
00:52:04.719 --> 00:52:07.320
and you know, there's going to be different columns, there's
957
00:52:07.360 --> 00:52:09.920
going to be like different formatting in the cells maybe,
958
00:52:10.280 --> 00:52:13.199
but for the most part, like all the tables do
959
00:52:13.239 --> 00:52:16.559
the same thing. And so what I've focused more on
960
00:52:16.679 --> 00:52:20.519
is building out utilities to help provide the configuration to
961
00:52:20.599 --> 00:52:24.480
render the tables as opposed to repeating you know, like,
962
00:52:24.559 --> 00:52:27.519
so we'll have these you know, like this is how
963
00:52:27.559 --> 00:52:31.239
the columns get made. Right, So we have the column configuration,
964
00:52:31.559 --> 00:52:34.400
we have, the users have the ability they want to
965
00:52:34.400 --> 00:52:35.880
be able to say, oh, this time, I want to
966
00:52:35.920 --> 00:52:38.880
see only these columns in this view. And so we
967
00:52:38.960 --> 00:52:42.159
have the concept of like user preferences, and so instead
968
00:52:42.199 --> 00:52:44.679
of having to rewrite that logic over and over and
969
00:52:44.719 --> 00:52:48.440
over again, which gets really really difficult to maintain, We've
970
00:52:48.480 --> 00:52:52.960
created these really lightweight features signal store features that handle
971
00:52:53.599 --> 00:52:58.400
these very specific utilities. Like this thing only handles this job,
972
00:52:58.880 --> 00:53:01.639
and it makes it so much easier, if you know,
973
00:53:01.719 --> 00:53:05.119
like since it's so straightforward, its task is very clear.
974
00:53:05.679 --> 00:53:08.039
If somebody changes it, it's very easy to say, Okay,
975
00:53:08.079 --> 00:53:10.360
that's probably going to break everybody, let's not do that,
976
00:53:10.800 --> 00:53:13.880
or you know, like yeah, that's that's an okay change.
977
00:53:14.239 --> 00:53:16.079
Or it's also very easy to swap it out for
978
00:53:16.159 --> 00:53:18.800
a different feature, right, Like, as long as the interfaces match,
979
00:53:18.880 --> 00:53:20.760
you just say, instead of using this one, just use
980
00:53:20.800 --> 00:53:24.000
this one. And so it's made it a lot easier
981
00:53:24.000 --> 00:53:26.199
for us to maintain some of those views. And then
982
00:53:26.360 --> 00:53:28.360
it makes it easy for us to say, hey, AI,
983
00:53:28.960 --> 00:53:32.639
we have these utilities, so instead of reinventing the wheel
984
00:53:32.639 --> 00:53:35.639
every time you make a table view, let's use these utilities.
985
00:53:35.760 --> 00:53:37.920
And it can mil those out pretty fast for us.
986
00:53:39.280 --> 00:53:41.280
And you know, it's always a fine tuning process because
987
00:53:41.320 --> 00:53:43.360
like you're going fast and you've got like we've got
988
00:53:43.400 --> 00:53:45.519
like fifty dev's on the team, and everyone's merging code
989
00:53:45.559 --> 00:53:47.679
every day, and it gets really hard to keep up
990
00:53:47.679 --> 00:53:48.519
with everybody.
991
00:53:49.280 --> 00:53:53.000
So but you know, much code be emerged right now?
992
00:53:53.199 --> 00:53:54.039
Yeah and open.
993
00:53:54.119 --> 00:53:57.519
Yeah. It also depends what is the I'm not sure
994
00:53:57.599 --> 00:53:59.320
how to say it in English. What is the point
995
00:53:59.360 --> 00:54:02.039
of difficult in your project? For instance, if you have
996
00:54:02.079 --> 00:54:06.840
lots of views that have tabular data, then like like
997
00:54:07.280 --> 00:54:10.960
duplicating the code of your grid or table tables, et
998
00:54:11.039 --> 00:54:15.360
cetera could be madness in your case. But other projects
999
00:54:15.360 --> 00:54:18.559
could have lots of forms, or they could guide the
1000
00:54:18.719 --> 00:54:22.079
user through business processes that could be instant or could
1001
00:54:22.119 --> 00:54:24.800
be long running, et cetera, et cetera. So every application
1002
00:54:24.880 --> 00:54:27.199
is different, every kind of you know, user experience could
1003
00:54:27.239 --> 00:54:30.599
be different. You could have one that is kind of majority,
1004
00:54:30.719 --> 00:54:33.320
or you could have a mixture, hybrid, whatever. But I
1005
00:54:33.360 --> 00:54:38.639
would say the more like the question is, even if
1006
00:54:38.639 --> 00:54:41.239
you have a table utility, I would ask a question,
1007
00:54:41.360 --> 00:54:43.119
and I don't know what is the answer, because every
1008
00:54:43.119 --> 00:54:45.920
product could be different, Like what is the probability that
1009
00:54:46.039 --> 00:54:48.239
you would have to change that utility? And it would
1010
00:54:48.239 --> 00:54:51.039
affect many places in the code base. So if it's
1011
00:54:51.079 --> 00:54:55.079
not likely in your situation, not a new problem. If
1012
00:54:55.119 --> 00:54:57.599
there is a risk like this, then imagine what the
1013
00:54:57.639 --> 00:55:00.559
model would do. So basically you would have these itraates, etcetera,
1014
00:55:00.679 --> 00:55:03.639
et cetera. And it's not you know, like Claude or
1015
00:55:03.760 --> 00:55:07.800
Gemini or GPT whatever, codex being stupid or not. It's
1016
00:55:07.800 --> 00:55:12.599
basically people introducing more or less traps into their design.
1017
00:55:13.159 --> 00:55:16.199
So I would say, we have a kind of like
1018
00:55:16.239 --> 00:55:19.760
from my experience, like twenty ish years of experience, we
1019
00:55:19.840 --> 00:55:23.639
have kind of an obsession in the industry of over
1020
00:55:23.840 --> 00:55:28.159
drying our code basis. So going back to you know,
1021
00:55:28.199 --> 00:55:33.159
the roots, the pragmatic programmer. What the authors defined dry
1022
00:55:33.320 --> 00:55:38.400
as it's about a single source of truth of knowledge,
1023
00:55:38.800 --> 00:55:42.360
not code. So the question is how do you modularize
1024
00:55:42.440 --> 00:55:47.880
your code base, And most often people modularize it around
1025
00:55:48.119 --> 00:55:52.719
nouns like things and not necessarily user actions or let's
1026
00:55:52.760 --> 00:55:56.079
say business processes. So it really depends on many factors.
1027
00:55:56.079 --> 00:55:58.519
But I would say, like a rule of thumb or
1028
00:55:58.519 --> 00:56:02.039
a heuristic, ask yourself, if you need to change a
1029
00:56:02.280 --> 00:56:05.920
usable stuff, how much of the area could be affected
1030
00:56:05.960 --> 00:56:09.360
by it? And if little, that's cool, If a lot,
1031
00:56:09.719 --> 00:56:11.440
it's certainly not well well.
1032
00:56:11.480 --> 00:56:13.559
And so one of the problems that we have, of
1033
00:56:13.599 --> 00:56:15.800
course is that you know, we're trying to prevent this
1034
00:56:16.039 --> 00:56:19.119
unified solution, right, We don't want you to go to
1035
00:56:19.159 --> 00:56:21.440
one table and have it behave one way, and so
1036
00:56:21.519 --> 00:56:24.840
actually what we're doing is encapsulating behavior. And so like
1037
00:56:25.119 --> 00:56:28.760
you can go ahead and like hand in call and configuration,
1038
00:56:28.880 --> 00:56:31.119
get it to render the table. We're just using a
1039
00:56:31.480 --> 00:56:33.920
g grid, right, So like you could go ahead and
1040
00:56:33.920 --> 00:56:37.880
have it do that, no problem. But if the expectation
1041
00:56:38.280 --> 00:56:41.679
is that if you sort, it should go to the
1042
00:56:42.400 --> 00:56:44.760
uh query prams, if you do this, it should do that.
1043
00:56:44.800 --> 00:56:47.719
You know, if if there's that expectation that the behavior
1044
00:56:47.800 --> 00:56:49.719
is the same. That's where we were running into a
1045
00:56:49.760 --> 00:56:52.719
lot of problems in a previous application where we're trying
1046
00:56:52.760 --> 00:56:55.280
to like we got bug ticket out after bug ticket,
1047
00:56:55.320 --> 00:56:57.679
like the behavior's different, it doesn't behave the same and
1048
00:56:57.719 --> 00:56:59.960
so we're like, all right, then we're going to encapsulate
1049
00:57:00.079 --> 00:57:03.679
this specific piece of behavior and then like all the
1050
00:57:03.719 --> 00:57:06.480
weird stuff like oh this is one API. Yeah, we
1051
00:57:06.559 --> 00:57:09.480
have to map that because it has duplicates and we
1052
00:57:09.480 --> 00:57:11.079
need to do this, and we need to do that,
1053
00:57:11.239 --> 00:57:13.639
like all that belongs just there, and if I have
1054
00:57:13.679 --> 00:57:15.920
to make changes to it, nobody else.
1055
00:57:16.400 --> 00:57:20.960
Kind of plugin based Yes, that you can encapsulate behavior
1056
00:57:20.960 --> 00:57:24.239
as plugins that you attach or not cool coo.
1057
00:57:24.280 --> 00:57:26.800
Yeah, yeah, and it's very cool, very cool. Yeah, and
1058
00:57:27.079 --> 00:57:28.840
it works like it's working for us. But I think
1059
00:57:28.840 --> 00:57:31.119
it's also really hard, you know, like our end goal
1060
00:57:31.360 --> 00:57:33.599
is like we want our AI tools to be really
1061
00:57:33.639 --> 00:57:35.400
good at it. So you tread the line of like
1062
00:57:35.639 --> 00:57:38.639
did I make it so special that I'm always going
1063
00:57:38.679 --> 00:57:40.920
to have to maintain a skill so that my AI
1064
00:57:41.039 --> 00:57:43.719
knows how to do it? Or did I follow enough
1065
00:57:43.760 --> 00:57:46.639
of like the industry standard on this that the AI
1066
00:57:46.679 --> 00:57:49.440
tool can just rely on this the you know, the
1067
00:57:49.480 --> 00:57:52.679
documentation provided by the community and the Angular team, and
1068
00:57:53.119 --> 00:57:55.599
so I think there's a balance there too.
1069
00:57:55.440 --> 00:57:58.119
To be honest, what you described is very close or
1070
00:57:58.159 --> 00:58:01.840
even it is my kind of preferred or optimal way
1071
00:58:01.920 --> 00:58:05.440
of designing component libraries because something that I also found
1072
00:58:05.719 --> 00:58:08.880
and I was working on many kind of consultancy you know,
1073
00:58:09.480 --> 00:58:14.760
gigs trying to like rescue projects where when component libraries
1074
00:58:14.880 --> 00:58:19.440
were way, way, way too big to broad and especially
1075
00:58:19.519 --> 00:58:23.000
when there was an SDK that was published to customers
1076
00:58:23.119 --> 00:58:26.639
you know, outside of the company, and basically whenever the
1077
00:58:26.719 --> 00:58:29.800
developers need to change anything in the SDKA, which was
1078
00:58:29.960 --> 00:58:34.719
enormously big, and customers were unhappy, and every next time
1079
00:58:34.840 --> 00:58:37.480
customers were more and more and more unhappy. So basically,
1080
00:58:37.679 --> 00:58:40.320
by the way in DevOps and platform engineering, they have
1081
00:58:40.440 --> 00:58:44.719
exactly the same problem, like an overgrown API or overgrown
1082
00:58:44.880 --> 00:58:48.800
platform that is trying to provide too much. And what
1083
00:58:48.840 --> 00:58:51.639
you've said is a kind of I would say, very
1084
00:58:51.639 --> 00:58:54.199
close or even the golden middle when it comes to
1085
00:58:54.320 --> 00:58:59.639
component library itself having just the basics very limited amount
1086
00:58:59.719 --> 00:59:03.320
because your public API that you need to maintain and
1087
00:59:03.320 --> 00:59:07.440
you're responsible for and changing it would make your consumers
1088
00:59:07.559 --> 00:59:09.920
angry and so on and so forth. So this is
1089
00:59:10.000 --> 00:59:13.559
very limited, but if you need to adjust it in
1090
00:59:13.599 --> 00:59:16.480
any way, just here you go. You have plugins, And
1091
00:59:16.519 --> 00:59:19.159
the only thing I would add is that your plugins
1092
00:59:19.159 --> 00:59:23.400
could be documented, for instance, with storybook, so that it's
1093
00:59:23.719 --> 00:59:28.880
really easy to see how does it behave, how does
1094
00:59:28.920 --> 00:59:32.159
it look like, blah blah blah. And also if you
1095
00:59:32.199 --> 00:59:35.480
have plugins that are part of the let's say they're
1096
00:59:35.480 --> 00:59:38.079
not literally part of the platform or part of SDK
1097
00:59:38.400 --> 00:59:43.480
or the Combon library, but every plugin that has been made,
1098
00:59:43.559 --> 00:59:47.199
it's already an effort that you can copy or use,
1099
00:59:47.599 --> 00:59:52.440
so you don't have to like redo the effort. You
1100
00:59:52.480 --> 00:59:55.599
can copy the code, but you don't redo the effort.
1101
00:59:55.639 --> 00:59:57.559
The effort has been made, just tay can use it.
1102
00:59:58.199 --> 01:00:00.679
But on the other hand, if you have to change
1103
01:00:00.679 --> 01:00:04.440
the API, the public API, you can do it because
1104
01:00:04.519 --> 01:00:07.320
it's the team, the product team that owns the plug in,
1105
01:00:07.559 --> 01:00:11.039
not you as the compond library provider. So I would
1106
01:00:11.039 --> 01:00:12.880
say this is also very important. And you know, like
1107
01:00:13.119 --> 01:00:16.639
there are many kind of you know, conflicts between the
1108
01:00:16.760 --> 01:00:20.599
product team expecting the compond library or the platform team
1109
01:00:20.639 --> 01:00:23.199
to deliver something within the platform, and there then there
1110
01:00:23.239 --> 01:00:26.159
is often a conflict like who does it? Because everybody
1111
01:00:26.320 --> 01:00:28.760
wants to have as little work as possible, so they
1112
01:00:28.880 --> 01:00:31.679
just you know, try to enforce the other insight to
1113
01:00:31.679 --> 01:00:35.000
do it, yeah, exactly to own it, like exactly like
1114
01:00:35.119 --> 01:00:35.440
you do.
1115
01:00:35.440 --> 01:00:38.400
The platform right, you should give it to us, Like
1116
01:00:38.440 --> 01:00:40.679
there's always that one ticket that goes like from board
1117
01:00:40.679 --> 01:00:41.079
to board.
1118
01:00:41.599 --> 01:00:43.960
Yeah, and whatever you do in this situation is going
1119
01:00:44.000 --> 01:00:46.599
to be kind of troublesome. So it's kind of an
1120
01:00:46.760 --> 01:00:49.280
art to or it's kind of a like, you know,
1121
01:00:49.320 --> 01:00:52.800
it takes a lot of experience to make the SDK
1122
01:00:53.039 --> 01:00:56.280
or make the public API really thin and narrow, but
1123
01:00:56.400 --> 01:00:59.119
also make it extensible and plug in architecture is kind
1124
01:00:59.119 --> 01:01:03.400
of super like useful for it. Absolutely strongly agree with
1125
01:01:03.400 --> 01:01:03.920
what you said.
1126
01:01:04.440 --> 01:01:08.239
Absolutely well, thank you that. It's so affirming, you know,
1127
01:01:08.239 --> 01:01:11.039
when you're right. Am I doing the right thing? Or
1128
01:01:11.079 --> 01:01:13.960
am I being if I gon't? You know, like the
1129
01:01:14.559 --> 01:01:17.239
gift of the guy with the like the notebook. You know,
1130
01:01:17.320 --> 01:01:20.440
I start to explain what I'm doing and I'm like, oh, like.
1131
01:01:20.440 --> 01:01:23.039
But you know, it's not common, it's not common to
1132
01:01:23.079 --> 01:01:23.679
think this way.
1133
01:01:24.199 --> 01:01:25.599
Yeah, And the.
1134
01:01:25.519 --> 01:01:29.079
Most common of what I've seen is just put everything
1135
01:01:29.119 --> 01:01:31.800
into that platform. Or the library, like just push it there,
1136
01:01:31.920 --> 01:01:34.800
and then you have a grid that has sixty parameters.
1137
01:01:35.239 --> 01:01:36.800
I have like a lot of fights with people or
1138
01:01:36.840 --> 01:01:39.440
I'm like that doesn't belong here, please don't put that here.
1139
01:01:41.320 --> 01:01:45.239
Exactly exactly, So there is too little of that kind
1140
01:01:45.280 --> 01:01:46.960
of no, we won't take it.
1141
01:01:47.360 --> 01:01:50.400
Yeah, yeah, like I really want like five more people
1142
01:01:50.519 --> 01:01:53.960
to be on that mode of like no, it's not mine,
1143
01:01:54.400 --> 01:01:56.039
Like that's something you need to handle.
1144
01:01:56.599 --> 01:01:58.480
And by the way, this is also a decision that
1145
01:01:58.480 --> 01:02:02.000
I would never shift to a because basically, like yeah,
1146
01:02:02.039 --> 01:02:05.039
at this point, majority knows that AI is kind of,
1147
01:02:05.039 --> 01:02:09.960
you know, statistical machine blah blah blah. So statistically people
1148
01:02:10.000 --> 01:02:12.800
would put everything into the component library.
1149
01:02:12.800 --> 01:02:16.639
It would make it. It's the easiest solution, you know, until.
1150
01:02:16.360 --> 01:02:19.440
It's not because you don't have to think about the consequences.
1151
01:02:19.760 --> 01:02:24.280
And by the way, AI doesn't have experience, it doesn't
1152
01:02:24.280 --> 01:02:26.719
have its will, et cetera. And we do have our
1153
01:02:26.840 --> 01:02:29.119
own experience, which is kind of difficult to measure, but
1154
01:02:29.440 --> 01:02:31.440
if you put too much into the library, you do
1155
01:02:31.519 --> 01:02:35.599
have your own experience, and well we all do as well.
1156
01:02:36.119 --> 01:02:39.199
We know what could be the consequences, but it's not
1157
01:02:39.360 --> 01:02:42.840
just statistical text that we've been taught on. This is
1158
01:02:42.920 --> 01:02:43.280
kind of ye.
1159
01:02:43.440 --> 01:02:45.360
It's like, no, I literally had to clean this up
1160
01:02:45.400 --> 01:02:47.360
before and it's terrible and I never want to do
1161
01:02:47.440 --> 01:02:47.840
that again.
1162
01:02:49.000 --> 01:02:51.639
Yeah, yeah, all.
1163
01:02:51.599 --> 01:02:53.280
Right, Well we all doesn't have experience.
1164
01:02:53.360 --> 01:02:56.559
Yeah, well exactly. They're like a really good like mid
1165
01:02:56.679 --> 01:02:59.519
level dev right, Like they haven't seen a lot of stuff,
1166
01:02:59.559 --> 01:03:01.199
Like they haven't had a lot of stuff go wrong
1167
01:03:01.280 --> 01:03:03.840
for them, but they're really good at like they know
1168
01:03:03.920 --> 01:03:06.559
the libraries, they know they know how to write code,
1169
01:03:06.639 --> 01:03:10.440
they know different solutions for things, but they've never had
1170
01:03:10.440 --> 01:03:13.760
to live with the consequences of their own actions. They
1171
01:03:13.880 --> 01:03:18.840
never get blamed themselves anyways. All right, so we are
1172
01:03:18.920 --> 01:03:22.280
getting to the top of the hour here, tamatch. I
1173
01:03:22.400 --> 01:03:24.079
want to thank you so much for joining us. I
1174
01:03:24.119 --> 01:03:26.199
think we could probably just keep talking about this for
1175
01:03:26.239 --> 01:03:29.079
a long time. It's very much top of mind for
1176
01:03:29.199 --> 01:03:31.400
most I don't think I know a developer at all
1177
01:03:31.480 --> 01:03:35.760
right now who doesn't have some form of anxiety related
1178
01:03:35.760 --> 01:03:38.840
to AI, you know, excitement, Like we're all kind of
1179
01:03:38.840 --> 01:03:42.199
trying to figure out, you know, what are the new patterns,
1180
01:03:42.199 --> 01:03:44.119
what are the new you know, And of course AI
1181
01:03:44.159 --> 01:03:46.159
doesn't help because it changes constantly. It used to be
1182
01:03:46.199 --> 01:03:47.920
that we would say, oh, I don't want to adopt
1183
01:03:47.920 --> 01:03:49.679
this right away. I want to see how this plays out.
1184
01:03:49.679 --> 01:03:53.039
But now we're like, new model, let's use it, you know,
1185
01:03:53.119 --> 01:03:55.440
And so it's kind of a different world for a
1186
01:03:55.440 --> 01:03:58.639
lot of us. It can feel scary, it can feel overwhelming.
1187
01:03:59.360 --> 01:04:02.800
If that's if for the listener, if that's you, you
1188
01:04:02.960 --> 01:04:05.400
are not alone. This is how a lot of people
1189
01:04:05.440 --> 01:04:08.639
feel right now. But I think it is important for
1190
01:04:08.719 --> 01:04:10.920
us to sort of figure out where we fit into
1191
01:04:10.960 --> 01:04:15.920
this process because developers do have value in an AI world,
1192
01:04:16.039 --> 01:04:18.000
and a lot of it is that expertise that we're
1193
01:04:18.039 --> 01:04:20.639
talking about, where you know where things can go wrong.
1194
01:04:20.960 --> 01:04:24.000
You can guide those models to maybe not make those
1195
01:04:24.039 --> 01:04:27.639
mistakes that you've had to clean up before. And that's
1196
01:04:27.679 --> 01:04:29.800
not going to change, or I hope that doesn't change
1197
01:04:29.800 --> 01:04:33.000
at least until I just want to retire, y'all. So
1198
01:04:33.760 --> 01:04:35.719
that is my goal, and then i'd like for you know,
1199
01:04:35.760 --> 01:04:38.199
like Jay to be able to retire and Yahn.
1200
01:04:39.079 --> 01:04:43.159
I'm not retiring in this have you seen the economy?
1201
01:04:43.400 --> 01:04:46.199
I know, I'm just like say, I just need to
1202
01:04:46.199 --> 01:04:48.000
get enough money so I can get some land in
1203
01:04:48.039 --> 01:04:50.039
the mountains and go hide in my cabin for the
1204
01:04:50.039 --> 01:04:54.679
rest of my life. All right, well, ta much. Thank
1205
01:04:54.719 --> 01:04:57.480
you so much for joining us. It's always it's a
1206
01:04:57.480 --> 01:05:01.519
pleasure to have you. And to the listeners, thank you
1207
01:05:01.559 --> 01:05:04.440
for joining us and listening. We literally wouldn't do this
1208
01:05:04.480 --> 01:05:07.039
podcast if you didn't, so we appreciate the time that
1209
01:05:07.079 --> 01:05:09.719
you take to listen to us too much. Was there
1210
01:05:09.760 --> 01:05:11.840
anything you wanted to say before leave?
1211
01:05:13.599 --> 01:05:17.239
Thank you? First of all, thank you for having the
1212
01:05:17.239 --> 01:05:20.599
pleasure to to talk to you. But yeah, one thing
1213
01:05:20.639 --> 01:05:22.760
I would like to address is exactly what you said
1214
01:05:22.840 --> 01:05:28.199
Lara just before, I would say, like like in poland
1215
01:05:28.239 --> 01:05:30.920
also people like some people are also scared that they're
1216
01:05:30.920 --> 01:05:33.159
going to be replaced by AI, et cetera. Like my
1217
01:05:33.320 --> 01:05:37.280
view is like don't ignore AI, but also don't overdo
1218
01:05:37.320 --> 01:05:41.880
it and keep on learning, but also try to keep
1219
01:05:41.920 --> 01:05:45.199
calm and learn new stuff and you're going to be happy.
1220
01:05:45.360 --> 01:05:49.400
But also think about like if you're having doubts, try
1221
01:05:49.440 --> 01:05:54.039
to think about why would your employer pay you for
1222
01:05:54.079 --> 01:05:56.719
your work? Like what is the value that you introduce
1223
01:05:56.800 --> 01:06:01.320
when when you do your daily task? Like why are
1224
01:06:01.360 --> 01:06:04.000
you paid if that was being an expert in a
1225
01:06:04.039 --> 01:06:08.920
given library, that might not be as useful as it
1226
01:06:09.000 --> 01:06:11.639
used to be so far, But it doesn't mean that
1227
01:06:11.679 --> 01:06:13.960
AI is going to replace all of us. So basically
1228
01:06:14.239 --> 01:06:17.840
like try to find your own value in what you
1229
01:06:17.920 --> 01:06:20.480
do and you're going to be really fine.
1230
01:06:21.440 --> 01:06:21.760
Yeah.
1231
01:06:21.760 --> 01:06:25.199
Absolutely, It's like find your place on your team, right,
1232
01:06:25.280 --> 01:06:28.119
Like what is your team missing? What is your company missing?
1233
01:06:28.920 --> 01:06:31.719
Are you the product expert? Like people come to me
1234
01:06:31.760 --> 01:06:34.400
all the time because I know a lot about our
1235
01:06:34.519 --> 01:06:38.320
data set, right, I understand a lot about how our
1236
01:06:38.639 --> 01:06:41.159
I'm the only one that understands our graph QL setup.
1237
01:06:41.280 --> 01:06:46.760
So there is that, you know, like, there's you know,
1238
01:06:46.840 --> 01:06:49.159
you just need to find that place where you can
1239
01:06:49.239 --> 01:06:55.800
be the person that has to stay. So on that note,
1240
01:06:56.719 --> 01:06:59.199
thank you again for joining us. If people want to
1241
01:06:59.239 --> 01:07:01.320
reach out to you, what's the best platform to.
1242
01:07:01.280 --> 01:07:06.719
Do that, hmm, well that could be LinkedIn, that could
1243
01:07:06.719 --> 01:07:09.280
be X, or that could be just email. You can
1244
01:07:09.320 --> 01:07:12.159
find me on email like at gmail dot com.
1245
01:07:12.280 --> 01:07:15.760
Nice, excellent. Again, thank you for your time to the listener.
1246
01:07:15.800 --> 01:07:19.400
Thank you for your time and we will catch you
1247
01:07:19.480 --> 01:07:20.079
next time.
1
00:00:03.560 --> 00:00:06.839
Welcome to the Angular Plus Show. We're app developers of
2
00:00:06.960 --> 00:00:11.359
all kinds share their insights and experiences. Let's get started.
3
00:00:14.480 --> 00:00:18.160
Welcome back to another episode of the Angular Plus Show.
4
00:00:18.359 --> 00:00:20.239
I am Laura Newsome. I'll be one of your hosts
5
00:00:20.239 --> 00:00:24.399
for today. With me co hosting, I have Jay Jay.
6
00:00:24.399 --> 00:00:25.879
How's it going good?
7
00:00:26.800 --> 00:00:28.519
I was a little rush this morning. I just got
8
00:00:28.559 --> 00:00:30.719
back home, but I made it with like twelve minutes
9
00:00:30.719 --> 00:00:32.719
of spare, so I'm here nice.
10
00:00:32.799 --> 00:00:37.280
Yeah. Luckily I remembered it was Wednesday because I forgot
11
00:00:37.280 --> 00:00:40.719
how time works. So I'm like counting the days down
12
00:00:40.719 --> 00:00:42.799
to PTO. So I told my husband I've got like
13
00:00:42.880 --> 00:00:47.560
senioritis for vacation. We're like, I don't actually want to work.
14
00:00:47.600 --> 00:00:52.560
I just want to be on vacation. That sounds glorious, honest,
15
00:00:53.479 --> 00:00:57.280
so excited. And we also have Yon Nicholas. How are
16
00:00:57.320 --> 00:00:57.799
you today?
17
00:00:58.079 --> 00:01:02.799
Pretty good? Ready to Okay, okay, vacation, do vacation whatever?
18
00:01:03.159 --> 00:01:04.400
You're coming with me?
19
00:01:05.120 --> 00:01:05.280
No?
20
00:01:06.079 --> 00:01:11.159
Not really, I am not doing vacation. Unfortunately. I wish
21
00:01:11.239 --> 00:01:12.519
I vacation, but I'm not.
22
00:01:13.319 --> 00:01:16.959
Yeah, I'm really looking forward to it. I'm finally taking
23
00:01:16.959 --> 00:01:20.120
my my family to Europe, and so that is like
24
00:01:20.280 --> 00:01:23.439
really exciting because my husband's never been, my kids have
25
00:01:23.519 --> 00:01:25.640
never been, and so every time I go, I'm like,
26
00:01:25.680 --> 00:01:27.319
I really want to take you guys with me, and
27
00:01:27.359 --> 00:01:33.439
so I bullied them into it, and you know what,
28
00:01:33.599 --> 00:01:36.040
like growing up in the Midwest, I'm like, literally, I'm like,
29
00:01:36.120 --> 00:01:38.400
I don't even have to do anything when I'm there.
30
00:01:38.560 --> 00:01:40.480
Just seeing different buildings.
31
00:01:40.120 --> 00:01:42.280
As exciting to just take them to like the biggest
32
00:01:42.439 --> 00:01:45.159
yarn ball or something.
33
00:01:45.200 --> 00:01:51.480
We've already done all of that. We've seen all the
34
00:01:51.480 --> 00:01:53.519
stupid things we can see here in the US. Now
35
00:01:53.519 --> 00:01:56.719
we want to go see all the things in Europe
36
00:01:56.439 --> 00:01:58.519
exactly exactly.
37
00:01:58.959 --> 00:02:02.280
So much more interesting the North America. That's so much
38
00:02:02.319 --> 00:02:03.040
more interesting.
39
00:02:03.400 --> 00:02:08.719
It really is. Like, first of all, there's history exactly. Yeah,
40
00:02:08.800 --> 00:02:11.439
I like that house was built before eighteen hundred? Is
41
00:02:11.439 --> 00:02:12.520
that even allowed?
42
00:02:12.719 --> 00:02:16.439
Like yeah, all right.
43
00:02:16.599 --> 00:02:19.879
So, but we're actually here for a podcast and we
44
00:02:19.919 --> 00:02:23.120
have a guest with us today. We have Tomash Duchine
45
00:02:23.120 --> 00:02:25.560
with us. Welcome to the show. How are you today?
46
00:02:26.159 --> 00:02:30.080
I'm fine, Welcome everyone, and thank you for the invitation.
47
00:02:30.240 --> 00:02:31.520
It's my pleasure to be.
48
00:02:31.520 --> 00:02:31.960
Here with you.
49
00:02:32.639 --> 00:02:36.840
Absolutely For the listeners who do not who haven't met
50
00:02:36.840 --> 00:02:39.039
you before, would you want to introduce yourself.
51
00:02:39.719 --> 00:02:46.280
Yeah. Sure, So I've been working as a developer for definitely,
52
00:02:46.560 --> 00:02:50.120
as an architect, as a consultant. Last more or less
53
00:02:50.159 --> 00:02:55.000
ten years, I've been doing freelance consulting for well business applications,
54
00:02:55.039 --> 00:02:59.280
business web applications, some like in my early days, I
55
00:02:59.319 --> 00:03:01.479
started with back and then spend kind of a decade
56
00:03:01.479 --> 00:03:04.000
with front End. Now I'm kind of moving back to
57
00:03:04.039 --> 00:03:07.439
my roots back, so kind of I consider myself as
58
00:03:07.479 --> 00:03:11.000
a software generalist more than you know, being sticked, not
59
00:03:11.120 --> 00:03:13.639
stick to a certain framework, not even stick to front
60
00:03:13.680 --> 00:03:17.479
end itself, but generally interested in pretty much everything, all
61
00:03:17.560 --> 00:03:21.360
things software, I would say, And also, like moving forward
62
00:03:21.400 --> 00:03:27.280
to our topic of the of the episode, this is
63
00:03:27.280 --> 00:03:31.000
something that I believe would be also useful for well
64
00:03:31.280 --> 00:03:35.639
majority of our industry to to focus on business side
65
00:03:35.759 --> 00:03:38.840
and use technology as a tool and not as a
66
00:03:38.919 --> 00:03:43.120
you know kind of you know, any kind of decision
67
00:03:43.159 --> 00:03:45.240
that has been made once and for all and you
68
00:03:45.319 --> 00:03:48.039
have to stick to it very very very strictly and
69
00:03:48.080 --> 00:03:50.439
so on. So yeah, that.
70
00:03:50.479 --> 00:03:52.039
Makes a less sense, Yeah, I definitely.
71
00:03:52.400 --> 00:03:52.479
So.
72
00:03:52.520 --> 00:03:54.319
I did a lot of contracting, and there would always
73
00:03:54.360 --> 00:03:57.960
be anxiety from people when we would switch contracts. Oh
74
00:03:58.039 --> 00:03:59.800
I got now I got a right react as sort
75
00:03:59.800 --> 00:04:01.639
of a I got a right view, And it's like
76
00:04:02.400 --> 00:04:04.199
it's just like kind of the same, like you just
77
00:04:04.240 --> 00:04:06.199
got to learn a few different rules and a little
78
00:04:06.199 --> 00:04:07.199
different sceases exactly.
79
00:04:07.240 --> 00:04:10.400
And what's also funny is that, of course, technically there
80
00:04:10.439 --> 00:04:13.719
are lots of differences in in API level, there is
81
00:04:13.759 --> 00:04:16.879
like pretty much everything is different, but on conceptual level,
82
00:04:17.600 --> 00:04:20.920
I would roughly say ninety percent at least is exactly
83
00:04:20.959 --> 00:04:23.839
the same when it comes to concepts. So yeah, like
84
00:04:23.920 --> 00:04:27.240
if you know one well then it's really kind of
85
00:04:27.279 --> 00:04:31.120
you know, straightforward to move to another stack.
86
00:04:31.160 --> 00:04:32.920
Absolutely for sure.
87
00:04:33.000 --> 00:04:36.519
Yeah yeah, but agular so.
88
00:04:38.600 --> 00:04:40.560
You know, like you also have an awareness of like
89
00:04:40.639 --> 00:04:44.120
your team's work full stacks, so you have to understand
90
00:04:44.160 --> 00:04:47.079
how like how the back ends work, like what what
91
00:04:47.199 --> 00:04:50.120
advantages you can give the UI. You know, it's really
92
00:04:50.160 --> 00:04:51.959
hard to be a front end developer and not have
93
00:04:52.040 --> 00:04:54.040
any understanding of how the back end works.
94
00:04:54.680 --> 00:04:56.879
Like Angelo on the back end, so.
95
00:04:57.399 --> 00:04:59.959
Yeah, you still have to like know how to make it.
96
00:05:00.120 --> 00:05:01.360
Do you like back end things?
97
00:05:01.480 --> 00:05:01.720
Right?
98
00:05:01.879 --> 00:05:06.240
Like? But anyways, all right, so the topic today that
99
00:05:06.279 --> 00:05:10.839
we've hinted at maybe a little bit, but shockingly, y'all
100
00:05:10.839 --> 00:05:13.920
we're going to talk a little bit about AI LMS
101
00:05:14.920 --> 00:05:19.160
and how that relates to software architecture specifically as it
102
00:05:19.160 --> 00:05:24.920
relates to Angular applications. So, Tomash, what are your what
103
00:05:25.079 --> 00:05:29.199
is your current experience dealing with AI and Angular?
104
00:05:29.720 --> 00:05:33.600
So generally speaking, my experience with AI and development generally
105
00:05:33.759 --> 00:05:38.120
is around two years so far, and it's been done
106
00:05:38.480 --> 00:05:41.439
both on front and on back end in DevOps and
107
00:05:41.480 --> 00:05:46.600
so on and so forth. So with Angular specifically, my
108
00:05:46.800 --> 00:05:50.480
experience is very good when it comes to applying AI.
109
00:05:50.639 --> 00:05:52.680
But of course there is kind of you know, lots
110
00:05:52.720 --> 00:05:56.360
of various things to look at, to look forward to
111
00:05:56.519 --> 00:05:58.759
watch out for, and so on and so forth. But
112
00:05:59.720 --> 00:06:02.600
if if you know what you're doing, and first of all,
113
00:06:02.639 --> 00:06:05.560
like you put a lot of effort into your design
114
00:06:06.319 --> 00:06:10.920
and you don't lose the business perspective from what you're doing,
115
00:06:11.000 --> 00:06:14.800
like why is actually business paying you your salary or
116
00:06:14.879 --> 00:06:21.680
wait whatever, then it can be used very very effectively.
117
00:06:22.560 --> 00:06:24.319
Of course, it depends on the model, it depends on
118
00:06:24.360 --> 00:06:28.839
the prompts, on all your settings. But mostly I would
119
00:06:28.920 --> 00:06:32.560
say my work right now is a kind of design
120
00:06:32.639 --> 00:06:37.639
slash architectural work, and I try to be picky about
121
00:06:37.639 --> 00:06:41.199
the decisions I want to make and what I can
122
00:06:41.279 --> 00:06:46.639
actually shift to the model. Yeah, so I would say
123
00:06:46.680 --> 00:06:49.600
this is my main area and when it comes to
124
00:06:49.639 --> 00:06:53.800
the code to the implementation, I would rather shift it
125
00:06:53.839 --> 00:06:56.199
to the model. But again, like what are these things
126
00:06:56.199 --> 00:06:59.680
that I want to decide and I don't want the
127
00:06:59.720 --> 00:07:03.399
model to make the decision instead of me, Like this
128
00:07:03.439 --> 00:07:07.279
is what matters the most from my experience, But actually,
129
00:07:07.279 --> 00:07:11.079
you know it, it is kind of interconnected to the
130
00:07:11.199 --> 00:07:14.360
architectural style you have, for instance, whether you have global
131
00:07:14.639 --> 00:07:18.199
or local state management solution, whether you walk into vertical
132
00:07:18.240 --> 00:07:24.319
slices architecture, whether you prefer you know, sharing everything like
133
00:07:24.519 --> 00:07:28.319
reusability or not, etc. Like you know whether you would
134
00:07:28.519 --> 00:07:33.040
go with duplication or reusability. So what are the architectural traits?
135
00:07:33.079 --> 00:07:36.000
So some of them work very well with AI, some
136
00:07:36.040 --> 00:07:40.399
of them don't or they kind of destroy the whole point.
137
00:07:40.879 --> 00:07:43.680
Or another topic is how much do you like how
138
00:07:43.720 --> 00:07:47.480
do you do code reviews with the code that is generated?
139
00:07:47.600 --> 00:07:50.759
For instance, you know, you ask AI to implement something,
140
00:07:50.920 --> 00:07:56.160
it generates five hundred lines or one thousand lines of code,
141
00:07:56.399 --> 00:08:00.920
and now would you review everything? If you do, then
142
00:08:01.120 --> 00:08:03.920
it would take you, you know, a lot of time
143
00:08:03.959 --> 00:08:07.160
because it's not your code. So these are probably or
144
00:08:07.279 --> 00:08:10.480
possibly not your mental models. So this is a short
145
00:08:10.480 --> 00:08:14.360
way to make the model slow you down if you
146
00:08:14.759 --> 00:08:18.480
compare compared us to if you didn't have the model
147
00:08:18.839 --> 00:08:22.399
at all, and if you don't review anythings like some
148
00:08:22.639 --> 00:08:26.360
we call them shamans Ai shamans on LinkedIn that they
149
00:08:26.399 --> 00:08:29.759
you know, generate code, they push it to production, and
150
00:08:29.800 --> 00:08:31.199
they don't even read it at all.
151
00:08:31.720 --> 00:08:33.200
So it's like it freaks me out.
152
00:08:34.240 --> 00:08:37.559
Two extremes. So I would say, you need to have somewhere,
153
00:08:37.600 --> 00:08:40.279
some golden middle somewhere, and the question is where is
154
00:08:40.320 --> 00:08:41.000
that golden middle?
155
00:08:41.440 --> 00:08:44.320
Yeah, you know, I think that's a good summary of
156
00:08:44.679 --> 00:08:48.519
I feel like that's been my exact experience. You know,
157
00:08:48.559 --> 00:08:53.039
we started an application before we were really using AI tools,
158
00:08:53.039 --> 00:08:56.120
and we've sort of gone through all a whole lot
159
00:08:56.120 --> 00:08:59.440
of different growing pains to get it working right, to
160
00:08:59.480 --> 00:09:02.600
get it working efficiently. You know, like we thought, okay,
161
00:09:02.600 --> 00:09:04.159
we just got to add more context, and then we
162
00:09:04.159 --> 00:09:06.080
added too much context, and now we got to pull
163
00:09:06.120 --> 00:09:09.159
the context out and put it into skills. And you know,
164
00:09:09.320 --> 00:09:13.879
it's like it's a constant. It's it's evolving as like
165
00:09:13.919 --> 00:09:15.919
it's evolving in the same way that our code end
166
00:09:16.000 --> 00:09:19.000
up involving evolving as well, Like it's I think of it,
167
00:09:19.000 --> 00:09:21.519
it's just like a whole other layer to the architecture.
168
00:09:21.559 --> 00:09:21.799
Now.
169
00:09:22.240 --> 00:09:26.559
Yeah, but also it's evolving according to your understanding and
170
00:09:26.600 --> 00:09:29.840
your kind of mental model behind working with AI. By
171
00:09:29.879 --> 00:09:32.200
the way, you said that you've been iterating over how
172
00:09:32.240 --> 00:09:35.080
you work with it. Did you kind of go through
173
00:09:35.120 --> 00:09:38.399
the step which is called you are an angular expert
174
00:09:38.399 --> 00:09:41.000
you never make mistakes or not? Yeah?
175
00:09:41.080 --> 00:09:44.879
We so yeah, like we yeah, we've we've gone through Oh,
176
00:09:44.879 --> 00:09:47.440
we've gone through so many different steps. Like literally there
177
00:09:47.480 --> 00:09:49.320
was one where like if it's something that you think
178
00:09:49.360 --> 00:09:51.919
a I can do, just add it to this instruction
179
00:09:52.200 --> 00:09:54.639
and oh boy, it got like real bad and everything
180
00:09:54.759 --> 00:09:58.279
was it Like it was giving us some really interesting solutions.
181
00:09:58.440 --> 00:10:03.039
And yeah, and I'd say, right now we are in
182
00:10:03.080 --> 00:10:05.519
a really good spot with the tooling that we have.
183
00:10:05.600 --> 00:10:08.279
It does a really a pretty good job. Like I
184
00:10:08.399 --> 00:10:12.039
stopped not trusting it at all, and now I mostly
185
00:10:12.039 --> 00:10:13.000
trust it, but I'm.
186
00:10:13.600 --> 00:10:18.080
I'm still suspicious. Yeah, but you need to choose where
187
00:10:18.120 --> 00:10:22.440
can you actually like remove the responsibility from you and
188
00:10:22.600 --> 00:10:25.320
where you need to hold the responsibility like readly right.
189
00:10:25.759 --> 00:10:27.879
Yeah, I would say, like one of the biggest discussions
190
00:10:27.879 --> 00:10:33.279
we've had is like when because you know, coming from NX,
191
00:10:33.320 --> 00:10:35.960
like we use local plug ins, We've developed a lot
192
00:10:35.960 --> 00:10:38.960
of plug ins to do repetitive tasks in our code base.
193
00:10:39.399 --> 00:10:43.080
It really does not make sense to have AI, right,
194
00:10:43.240 --> 00:10:46.519
like create a new library for us when we have
195
00:10:46.600 --> 00:10:49.279
a generator that can do it, Like why spend the
196
00:10:49.320 --> 00:10:51.759
tokens right? And so we've spent a lot of time
197
00:10:51.799 --> 00:10:56.480
recently sort of discussing like which are the which steps
198
00:10:56.600 --> 00:10:59.759
do we want to hand off to the generators, like
199
00:10:59.799 --> 00:11:03.960
the terministic solutions versus which steps is AI going to
200
00:11:04.000 --> 00:11:09.120
excel at? And that has that that's definitely something you
201
00:11:09.159 --> 00:11:11.440
know we have. We haven't what you call him an
202
00:11:11.440 --> 00:11:14.879
AI shaman on our team, and even you know, it
203
00:11:14.919 --> 00:11:16.600
was great to hear him be like, you know, if
204
00:11:16.600 --> 00:11:19.000
it's a deterministic thing like creating a library, we should
205
00:11:19.000 --> 00:11:21.159
probably have the generators use it. We're like, I'm so
206
00:11:21.240 --> 00:11:25.279
glad to hear you say that, because I really need
207
00:11:25.320 --> 00:11:26.039
you to say that.
208
00:11:27.600 --> 00:11:31.200
Yeah, that's something I didn't mention exactly. Also identify what
209
00:11:31.279 --> 00:11:35.240
needs to what can be deterministic and is doable in
210
00:11:35.279 --> 00:11:38.600
a quite you know, short amount of time for instance,
211
00:11:39.120 --> 00:11:43.840
like things like linters or typescript compilation, et cetera, like
212
00:11:44.159 --> 00:11:50.440
or regenerating I know, typescript types from the open API
213
00:11:50.559 --> 00:11:53.960
contract whatever, like if something can be automated, like automated
214
00:11:54.000 --> 00:11:54.919
and like don't touch.
215
00:11:54.759 --> 00:11:57.639
It right right, have the AI help you work on
216
00:11:57.679 --> 00:11:58.759
the generator if you need.
217
00:11:58.720 --> 00:12:05.639
To exactly exactly exactly, or make the AI create exactly
218
00:12:06.080 --> 00:12:08.000
create a tool that would be deterministic.
219
00:12:08.000 --> 00:12:12.559
At some point, we've we've really like, well, in my team,
220
00:12:12.600 --> 00:12:14.279
I'm usually the one is building all the tooling, and
221
00:12:14.320 --> 00:12:17.720
we've like double triple quadrupled down on building tooling now
222
00:12:17.759 --> 00:12:19.759
that I can just like whip up tooling for all
223
00:12:19.759 --> 00:12:22.120
the different use cases that we that we need that
224
00:12:22.200 --> 00:12:24.960
I wouldn't have had time to do before. And a
225
00:12:24.960 --> 00:12:27.519
lot of the tooling is well, I'm actually just building
226
00:12:27.519 --> 00:12:31.639
guardrails for the LMS so that my team can use
227
00:12:31.639 --> 00:12:34.639
alums more effectively. So I'm like, you know, it's that
228
00:12:35.120 --> 00:12:38.000
self improvement like that like feedback loop right where I'm
229
00:12:38.039 --> 00:12:39.679
like using it to build the guard rails so that
230
00:12:39.720 --> 00:12:42.279
we can use it more to build better stuff so
231
00:12:42.320 --> 00:12:44.679
that we don't have to like constantly be fixing it
232
00:12:44.720 --> 00:12:48.440
and be like, no, I said, don't do that right now,
233
00:12:48.440 --> 00:12:51.320
I can just not do that anymore. Or but then
234
00:12:51.360 --> 00:12:53.919
it's self no, like it'll run the command and be
235
00:12:54.000 --> 00:12:58.120
like oh right, okay, well that failed, I'll fix it
236
00:12:58.279 --> 00:12:58.720
kind of thing.
237
00:12:58.879 --> 00:13:00.440
Yeah, And like I really want to yell at the AI,
238
00:13:00.559 --> 00:13:02.279
but then I'm also afraid that when they take over
239
00:13:02.320 --> 00:13:03.720
the world, they're going to come back for me.
240
00:13:03.919 --> 00:13:08.559
So they have a really bad memory right now, He's
241
00:13:08.559 --> 00:13:10.240
like one of the biggest problems with them, right they
242
00:13:10.360 --> 00:13:11.519
never remember anything.
243
00:13:11.720 --> 00:13:16.000
So but you know, there is one funny thing. There
244
00:13:16.039 --> 00:13:18.720
is a research that I cannot recall what was the
245
00:13:18.759 --> 00:13:22.360
title of it, but I remember the numbers. And according
246
00:13:22.360 --> 00:13:25.919
to the research, when you when you swear at AI,
247
00:13:27.519 --> 00:13:28.240
there was.
248
00:13:28.240 --> 00:13:34.279
A eightytry code will actually send telemetry events to anthropic when.
249
00:13:34.120 --> 00:13:38.440
You Yeah, now now we know that. Now we know that. Yeah,
250
00:13:38.600 --> 00:13:41.399
now we know that. But generally speaking, there was eighty
251
00:13:41.399 --> 00:13:47.200
two to eighty four percentage difference in like being successful
252
00:13:47.279 --> 00:13:51.679
with your prompts for swearing. So if you yell.
253
00:13:53.320 --> 00:13:56.240
Yes, oh okay, so what I'm hearing.
254
00:13:56.080 --> 00:14:01.960
Is claude code hook what pre tool call hook and
255
00:14:02.000 --> 00:14:06.639
then just depend like echo, just effing do this correct?
256
00:14:07.120 --> 00:14:10.919
Before every command yeah or or you.
257
00:14:13.159 --> 00:14:17.480
Yeah, yeah, yeah, exactly you blah blah blah.
258
00:14:17.720 --> 00:14:21.000
Yeah, I'm gonna try that. I'm gonna try that.
259
00:14:21.759 --> 00:14:21.960
You know.
260
00:14:22.039 --> 00:14:24.639
It was from eighty two percent to eighty four percent,
261
00:14:24.679 --> 00:14:26.879
so it's not big though, as far as I remember,
262
00:14:26.919 --> 00:14:29.679
it was not only Entropic. As far as I remember,
263
00:14:29.720 --> 00:14:30.879
that was the Big three.
264
00:14:30.600 --> 00:14:31.440
So right.
265
00:14:31.799 --> 00:14:34.159
I remember reading somewhere that if you said, like if
266
00:14:34.480 --> 00:14:38.360
you were either nice or really threatening, you got better results.
267
00:14:38.440 --> 00:14:41.240
But like just being like kind of vanilla, it just
268
00:14:41.320 --> 00:14:44.519
was like whatever, I mean, it.
269
00:14:44.600 --> 00:14:47.879
Trained on human interactions, so like, are we really surprised?
270
00:14:49.799 --> 00:14:51.440
You just need to know if you're gonna lead with
271
00:14:51.480 --> 00:14:55.200
a carrot or stick, right or a whip? All right.
272
00:14:56.080 --> 00:14:58.720
They're also studies that if you bribe the model where
273
00:14:58.720 --> 00:15:00.360
you say, like, oh, I give you a hundred if
274
00:15:00.399 --> 00:15:02.519
you get this right, that the quality of results is
275
00:15:02.720 --> 00:15:03.759
concept again better.
276
00:15:04.440 --> 00:15:05.799
Again, are we surprised?
277
00:15:06.200 --> 00:15:07.720
I'm like, I'm a little afraid it would just go
278
00:15:07.720 --> 00:15:09.720
get one hundred dollars out of my account, though, like
279
00:15:09.799 --> 00:15:12.279
what if I set it up wrong, You're gonna lock
280
00:15:12.360 --> 00:15:13.120
those tools down.
281
00:15:13.799 --> 00:15:17.240
I know that's actually something we could say in assistant
282
00:15:17.279 --> 00:15:22.480
prompt like you're given one hundred dollars to do your job, right, Yeah, I'm.
283
00:15:22.360 --> 00:15:24.480
Just gonna go add that and see what happens. Like,
284
00:15:24.759 --> 00:15:28.159
if you actually follow the rules on writing unit tests,
285
00:15:28.200 --> 00:15:31.360
I'll give you one hundred dollars. You should check at
286
00:15:31.360 --> 00:15:31.679
the end.
287
00:15:33.279 --> 00:15:35.919
So good, Okay.
288
00:15:35.960 --> 00:15:37.759
So one of the other things that you brought up
289
00:15:38.759 --> 00:15:43.159
was there is sort of this like shifting responsibility of
290
00:15:43.240 --> 00:15:45.759
software engineers. Like it used to be that we would
291
00:15:45.759 --> 00:15:48.399
be like, got to solve this dumb problem where I
292
00:15:48.440 --> 00:15:51.080
need to figure out how to map this complex thing
293
00:15:51.200 --> 00:15:54.159
to this thing or you know, sort this or d
294
00:15:54.320 --> 00:15:56.960
dupe or whatever. Right, Like, we we've had all these
295
00:15:57.039 --> 00:16:00.600
dumb problems we have to solve. AI's very good at
296
00:16:00.639 --> 00:16:04.799
doing that stuff for us now, and so we sort
297
00:16:04.799 --> 00:16:08.679
of I think a lot of us are sensing sort
298
00:16:08.720 --> 00:16:11.879
of a shift more towards Okay, let me say this.
299
00:16:12.159 --> 00:16:15.000
I feel like the developers who are good at understanding
300
00:16:15.000 --> 00:16:17.639
the product that they're trying to build, who are good
301
00:16:17.639 --> 00:16:20.559
at communicating with the product teams, are going to be
302
00:16:20.639 --> 00:16:25.039
more successful in an AI world.
303
00:16:25.279 --> 00:16:25.720
I agree.
304
00:16:26.159 --> 00:16:28.399
Are you saying people are getting replaced by AI?
305
00:16:29.879 --> 00:16:35.679
What I'm saying is that if your entire purpose on
306
00:16:35.759 --> 00:16:39.720
a team is you know, mapping, you know, is just
307
00:16:39.840 --> 00:16:43.320
writing code. If you don't understand what you're building, you
308
00:16:43.519 --> 00:16:46.360
will probably become less and less useful to your team.
309
00:16:47.399 --> 00:16:50.639
I said any different than before though, No, okay.
310
00:16:50.440 --> 00:16:53.360
I mean I just want to be brought to the
311
00:16:53.399 --> 00:16:58.120
surface more now, right, just like it's just showing those
312
00:16:58.200 --> 00:17:00.440
gaps more extreamly.
313
00:17:00.559 --> 00:17:03.879
Then then you could like hides the wrong word, but
314
00:17:04.000 --> 00:17:07.759
like hide behind the fact, like hide behind certain things
315
00:17:07.799 --> 00:17:09.359
before where it's like, yeah, I just do my job,
316
00:17:09.480 --> 00:17:12.279
you know, like the ticket comes in, I do the ticket,
317
00:17:12.279 --> 00:17:13.839
I work on the next I work on the next ticket,
318
00:17:13.880 --> 00:17:15.519
and that's all I ever do. Right, That's like you
319
00:17:15.559 --> 00:17:18.680
were constantly outputting. But now it's like in this age
320
00:17:18.680 --> 00:17:23.440
of like, well that part is quote unquote cheap. We
321
00:17:23.519 --> 00:17:25.440
know it's not cheap, and it's changing day by day.
322
00:17:25.519 --> 00:17:29.359
Look at co pilot like yes, like well like quote
323
00:17:29.440 --> 00:17:33.240
unquote cheap to produce code, like all of the other
324
00:17:33.400 --> 00:17:36.960
skills that are necessary to be successful, whether that be
325
00:17:37.000 --> 00:17:39.519
in your professional life or your personal life. It all
326
00:17:39.559 --> 00:17:41.079
it's a jokes right now. It's like, oh, all these
327
00:17:41.079 --> 00:17:44.839
developers learn to like unitate correct with LMS is actually
328
00:17:44.839 --> 00:17:47.240
just teaching them how to communicate with humans at the
329
00:17:47.279 --> 00:17:49.359
same time too, like that just be part of the
330
00:17:49.359 --> 00:17:52.119
service more because it's more necessary now because the code
331
00:17:52.400 --> 00:17:53.759
is quote unquote cheap to produce.
332
00:17:54.160 --> 00:17:57.279
I think it's the same discussion that we have when
333
00:17:57.480 --> 00:18:00.079
near sharing become popular then like on the assurance a
334
00:18:00.240 --> 00:18:03.599
very expensive, let's to offshoring. It's the same same discussion,
335
00:18:03.880 --> 00:18:06.240
and so the scale is a little bit different because
336
00:18:06.759 --> 00:18:11.920
even offshoring is still well that's probably cheaper, to be honest, butation.
337
00:18:11.680 --> 00:18:15.799
And that's only gonna be it. It'll always be cheaper, right, Yeah.
338
00:18:16.160 --> 00:18:18.480
Like, well, one thing I would add to Jay's idea
339
00:18:19.279 --> 00:18:22.240
that I that I like a lot is that I
340
00:18:22.279 --> 00:18:24.200
tried to think it in a way that when there
341
00:18:24.279 --> 00:18:26.720
was a scrum team or any other team that was
342
00:18:26.759 --> 00:18:31.160
given a handful of Gira tasks whatever, and you had
343
00:18:31.200 --> 00:18:34.680
a two weeks to to to to deliver them, then
344
00:18:35.680 --> 00:18:38.240
there would be the next day, the next working day,
345
00:18:38.279 --> 00:18:41.759
where you would all meet during a stand up you
346
00:18:41.799 --> 00:18:45.160
would start discussing what everybody picked up, what is your status,
347
00:18:45.200 --> 00:18:49.000
et cetera. And you had basically two weeks or more
348
00:18:49.079 --> 00:18:52.200
or less, like two weeks of finding out that there
349
00:18:52.279 --> 00:18:54.839
might be some duplication across your work or that you
350
00:18:54.880 --> 00:18:58.359
are trying to do or planning to do some piece
351
00:18:58.359 --> 00:19:01.880
of you know, really wonderful, magnificent piece of work that
352
00:19:02.240 --> 00:19:05.599
nobody needs or that is already present in the system
353
00:19:05.640 --> 00:19:08.160
that you can reuse something that exists already or blah
354
00:19:08.200 --> 00:19:11.200
blah blah, like find out any kind of obstacles or
355
00:19:11.279 --> 00:19:14.440
identify basically stupid work that does need to be done,
356
00:19:14.680 --> 00:19:17.039
and so on and so forth. And now if this
357
00:19:17.400 --> 00:19:22.240
code production phase gets limited from two weeks to i know,
358
00:19:22.440 --> 00:19:29.880
two hours, then every kind of communication flaw or like
359
00:19:30.000 --> 00:19:34.720
lack of skill of organizational skills, communication skills is going
360
00:19:34.799 --> 00:19:38.039
to be kind of ten times more painful, like you know,
361
00:19:38.119 --> 00:19:43.440
so to say, so yeah, definitely, like communication skills are
362
00:19:43.440 --> 00:19:46.920
going to be like way more demanding and actually, like
363
00:19:47.559 --> 00:19:50.640
a situation I've had at my customer where we you know,
364
00:19:50.799 --> 00:19:53.880
there is also one more dimension that we haven't touched yet.
365
00:19:54.000 --> 00:19:57.039
Is it's totally different when you want to be successful
366
00:19:57.039 --> 00:20:00.279
with AI or effective with AI when you're a one
367
00:20:00.319 --> 00:20:03.279
man army, or when you want to introduce it across
368
00:20:03.279 --> 00:20:07.279
the whole team or across an organization that includes lots
369
00:20:07.279 --> 00:20:10.680
of teams. Because this is totally different absolutely totally different.
370
00:20:10.759 --> 00:20:14.240
What works for one person doesn't necessarily work for a team,
371
00:20:14.240 --> 00:20:17.960
and not even to mention a whole company. So a
372
00:20:18.000 --> 00:20:21.519
situation we've had with the customer that we are implementing
373
00:20:21.759 --> 00:20:25.759
like introducing AI but to the whole SDLC across the
374
00:20:25.799 --> 00:20:29.400
whole company was that there was a planning session and
375
00:20:29.480 --> 00:20:33.200
the team decided that they basically picked something for the
376
00:20:33.599 --> 00:20:38.559
scrum scrum sprint, and they went home for a weekend.
377
00:20:39.119 --> 00:20:42.799
And after the weekend, it turned out that both one
378
00:20:42.839 --> 00:20:46.079
person from the team and one person from another team
379
00:20:46.160 --> 00:20:49.440
has vibe coded the very same solution for a task,
380
00:20:49.640 --> 00:20:52.240
and then they were fighting whose code is going to
381
00:20:52.279 --> 00:20:53.000
get merged in.
382
00:20:53.759 --> 00:20:55.440
So it's like, neither of us wrote this code, but
383
00:20:55.480 --> 00:20:58.000
I really passionately care about the one I vibe coded.
384
00:20:58.000 --> 00:20:59.880
It doesn't matter.
385
00:21:00.160 --> 00:21:02.839
And of course this is kind of a kind of
386
00:21:03.119 --> 00:21:06.599
quite an extreme situation, but like all these kind of
387
00:21:06.680 --> 00:21:10.440
communication problems are going to be way way way higher
388
00:21:10.440 --> 00:21:12.359
in priorities than they used to be.
389
00:21:12.920 --> 00:21:16.119
Yeah, like we are not just communication intro team or
390
00:21:16.160 --> 00:21:18.680
inter organization, right, Like, yeah, you know, I've always been
391
00:21:18.720 --> 00:21:24.240
an entrepreneur and like, actually, like writing the software wasn't
392
00:21:24.279 --> 00:21:26.480
necessarily the hardest part, of.
393
00:21:26.400 --> 00:21:29.440
Course, Asterisk. It depends on what you're building. In the
394
00:21:29.480 --> 00:21:34.319
Compignanent bubble. I'm going to generalize this. Building the actual
395
00:21:34.440 --> 00:21:37.759
product isn't always the hardest part of building a company.
396
00:21:37.920 --> 00:21:42.880
Building the right thing that someone actually needs, that someone's
397
00:21:42.960 --> 00:21:45.599
actually willing to pay for, that you target to the
398
00:21:45.680 --> 00:21:48.759
right people in the market so you get product market fit.
399
00:21:49.279 --> 00:21:52.400
That's the hard part. That's why companies fail. It's not
400
00:21:52.839 --> 00:21:55.319
the fact that they couldn't build a thing, it's because
401
00:21:55.319 --> 00:21:58.599
they couldn't find product market fit. And my tools now
402
00:21:58.640 --> 00:22:02.680
it's like that's you can produce products at a weekend.
403
00:22:02.920 --> 00:22:08.880
I mean like some people already could. Like anything, people
404
00:22:08.920 --> 00:22:09.400
have to pay.
405
00:22:09.359 --> 00:22:13.720
For it, Like, yeah, we we have run into this
406
00:22:13.880 --> 00:22:18.000
so like so I have so like the team I
407
00:22:18.039 --> 00:22:20.920
work on we have we are full. We are all
408
00:22:20.960 --> 00:22:24.880
angular experts. We've been working together for like three four years.
409
00:22:25.519 --> 00:22:27.519
We have our like we know how to write code,
410
00:22:27.559 --> 00:22:30.119
we know how to get code out fast. We have
411
00:22:30.359 --> 00:22:33.720
never ever, ever been the bottleneck at any point in
412
00:22:33.759 --> 00:22:37.680
the process. But business is like, well, the software is
413
00:22:37.720 --> 00:22:40.279
not getting written, so it must mean that the dev
414
00:22:40.359 --> 00:22:42.480
teams are the bottleneck, and so they're like all the
415
00:22:42.519 --> 00:22:44.440
dev teams have to use AI and I'm like, okay,
416
00:22:44.480 --> 00:22:46.599
so like now you've just sped us up and now
417
00:22:46.599 --> 00:22:48.160
we're still out of tickets.
418
00:22:48.759 --> 00:22:48.960
Yeah.
419
00:22:50.480 --> 00:22:55.440
Yeah, I'm like our bottleneck has never been the development teams.
420
00:22:55.799 --> 00:22:59.880
It's always been that we can't get solid requirements out
421
00:22:59.880 --> 00:23:03.880
of anyone and we can't get an understanding that like, oh,
422
00:23:03.920 --> 00:23:07.839
when you do stuff like just rename things two days
423
00:23:07.880 --> 00:23:11.920
before we release it to the general public, it causes
424
00:23:11.960 --> 00:23:15.160
a lot of weird churn that makes it difficult, you know,
425
00:23:15.240 --> 00:23:18.880
Like there's there's never like I just feel like I
426
00:23:18.880 --> 00:23:22.359
feel like AI and a lot of companies gets focused
427
00:23:22.359 --> 00:23:25.759
on the wrong layer of the problem, and I think.
428
00:23:25.920 --> 00:23:28.559
You just need to throw agents at that problem.
429
00:23:29.400 --> 00:23:32.200
Honestly, Like I'm about to just start doing their job too.
430
00:23:32.240 --> 00:23:34.319
I'm like, tell me what the customers want, and I'll
431
00:23:34.359 --> 00:23:35.279
build it myself.
432
00:23:35.920 --> 00:23:38.160
Like, I know you're being sarcastic, but like a lot
433
00:23:38.160 --> 00:23:45.039
of people think that.
434
00:23:42.039 --> 00:23:44.559
There are times, Yeah, I mean like there are times though,
435
00:23:44.559 --> 00:23:45.440
where it's just.
436
00:23:45.559 --> 00:23:46.000
I don't know.
437
00:23:46.920 --> 00:23:49.240
So at cloud Next. I went to cloud Next last
438
00:23:49.279 --> 00:23:53.880
week and yeah, and I totally left the day early.
439
00:23:53.960 --> 00:23:55.200
I could not do anymore.
440
00:23:56.640 --> 00:24:00.400
I had a fantastic dinner in Vegas. Vegas sucked, sorry,
441
00:24:04.279 --> 00:24:05.559
but the food is really good there.
442
00:24:05.599 --> 00:24:08.480
So I got free sushi two nights in the row
443
00:24:09.000 --> 00:24:11.319
thanks to I think it was Glean that had their
444
00:24:11.440 --> 00:24:16.119
like their like thing at the sushi restaurant there at
445
00:24:16.240 --> 00:24:18.799
Mandalay Bay, and I had like two nights of free sushi.
446
00:24:19.000 --> 00:24:21.440
The second night, I went by myself like a raccoon,
447
00:24:21.480 --> 00:24:23.400
and I gathered up a bunch of sushi and like
448
00:24:23.640 --> 00:24:25.599
ate it in the corner and then escaped as fast
449
00:24:25.599 --> 00:24:27.240
as I could, because all I wanted to do was
450
00:24:27.279 --> 00:24:29.759
be alone in my room. But I also didn't want
451
00:24:29.759 --> 00:24:32.160
to have to solve my food problem by paying for food.
452
00:24:32.279 --> 00:24:34.480
So anyway, I'll tell me.
453
00:24:34.400 --> 00:24:34.960
A lot about me.
454
00:24:35.000 --> 00:24:38.599
I'd rather eat like a raccoon in the corner, shove
455
00:24:38.640 --> 00:24:41.079
a bunch of dessert in my pocket, and run back
456
00:24:41.079 --> 00:24:44.279
to my room and hide. We're gonna get.
457
00:24:44.119 --> 00:24:44.519
Out of here.
458
00:24:44.680 --> 00:24:51.359
Sorry. Why do you have tupperware.
459
00:24:49.680 --> 00:24:50.759
At cloud Necks?
460
00:24:52.119 --> 00:24:52.920
That was my full?
461
00:24:54.200 --> 00:24:56.039
Just want to talk about sushi, That's cool, I just
462
00:24:56.119 --> 00:24:56.400
know I.
463
00:24:56.319 --> 00:24:57.960
Just want to talk about sushi. There was no point
464
00:24:57.960 --> 00:24:59.960
to my comment. I just wanted an excuse to talk
465
00:25:00.000 --> 00:25:04.559
about eating free sushi. No Google has introduced like this
466
00:25:04.960 --> 00:25:08.880
like agents in their GCP platform and like they demonstrated,
467
00:25:09.000 --> 00:25:11.200
like they had their like product person come in, They're like,
468
00:25:11.240 --> 00:25:12.839
this is what we want to build, and they like
469
00:25:13.039 --> 00:25:15.559
made tickets and then the dev team's got the tickets
470
00:25:15.599 --> 00:25:17.920
and like super smooth. And I'm like, oh god, it
471
00:25:17.960 --> 00:25:22.920
never works like that. Like does anyone have this experience
472
00:25:22.960 --> 00:25:26.079
where they're like, I got the requirement all of the
473
00:25:26.079 --> 00:25:29.240
requirements I need. We knew exactly where the data was
474
00:25:29.279 --> 00:25:32.119
going to come from, We knew exactly what it was
475
00:25:32.160 --> 00:25:34.200
supposed to look like and how it was supposed to work.
476
00:25:34.759 --> 00:25:37.039
LARDO is all about getting the right data in the
477
00:25:37.119 --> 00:25:38.880
right format efficiently.
478
00:25:38.799 --> 00:25:40.839
Yes, but it's really really hard.
479
00:25:42.200 --> 00:25:44.119
There is also one one thing when it comes to
480
00:25:44.200 --> 00:25:47.559
using models that is not transparent when we have big vendors,
481
00:25:48.160 --> 00:25:51.119
and it's not you know about Gemini, it's pretty much
482
00:25:51.160 --> 00:25:54.799
about every book, every every big vendor, especially if you
483
00:25:54.839 --> 00:25:56.720
compare it to Hugging Face, where you've got all of
484
00:25:56.720 --> 00:25:59.160
these you know, open models, open training sets, et cetera.
485
00:25:59.200 --> 00:26:02.079
There is something called quantization in models that you basically
486
00:26:02.079 --> 00:26:04.480
can have you know, the original quality of the model,
487
00:26:04.519 --> 00:26:08.960
or it's kind of quantized like compressed, that is, you know, smaller,
488
00:26:09.119 --> 00:26:13.039
cheaper to run, and also weaker in quality. And the
489
00:26:13.279 --> 00:26:16.319
issue is that when we have closed vendors and you
490
00:26:16.400 --> 00:26:19.119
pay with your subscription or pay as you go whatever
491
00:26:19.240 --> 00:26:24.559
kind of model, that you don't actually know which quantization
492
00:26:24.680 --> 00:26:27.160
you're going to get. And for instance, when people are
493
00:26:27.400 --> 00:26:34.039
satisfied with cloud code and suddenly one day, yeah, I
494
00:26:34.039 --> 00:26:40.119
don't want to swear here, I'm a nice guy. So
495
00:26:40.119 --> 00:26:43.039
so out of a sudden, cloud code becomes very very
496
00:26:43.079 --> 00:26:47.440
bad at doing its job. And you know, what's what's
497
00:26:47.480 --> 00:26:50.640
the matter. So there is quantization, but we it's totally
498
00:26:50.640 --> 00:26:53.759
transparent to us, which in my opinion is some kind
499
00:26:53.799 --> 00:26:56.359
of cheating because you pay for some service and you
500
00:26:56.400 --> 00:27:02.839
don't know what the quality is, right, And the issue
501
00:27:02.960 --> 00:27:06.640
is that when we're speaking about, for instance, the quality
502
00:27:06.839 --> 00:27:10.079
of what the models say. For instance, once there was
503
00:27:10.119 --> 00:27:13.599
a paper, white paper saying that some open AI model
504
00:27:14.119 --> 00:27:19.279
has filled in a like a submitted or written not
505
00:27:19.359 --> 00:27:24.920
sure how to see it PhD in mathematics and I'm
506
00:27:24.960 --> 00:27:28.480
not sure if it was GPT for GPT which version,
507
00:27:28.519 --> 00:27:31.839
never mind, but it is absolutely doable. But that's probably
508
00:27:31.839 --> 00:27:35.799
a quantization version that we mayor models are never going
509
00:27:35.839 --> 00:27:38.599
to touch. And that's kind of a problem that we're
510
00:27:38.680 --> 00:27:42.000
using something like you are driving a car and you
511
00:27:42.039 --> 00:27:44.359
don't know how much horsepower you've gotten in the car
512
00:27:44.400 --> 00:27:46.000
because each day you have different horse power.
513
00:27:46.119 --> 00:27:51.759
So I disagree, all right, Why So, I mean, it's
514
00:27:51.799 --> 00:27:54.480
not a secret that cloud code is. The subscription are
515
00:27:54.599 --> 00:27:57.359
very heavily subsidized, so it's more kind of like you're
516
00:27:57.359 --> 00:28:00.240
paying a subscription fee to Uber and like what car
517
00:28:00.319 --> 00:28:03.720
you get for that might be slightly different, But it's
518
00:28:03.759 --> 00:28:04.960
not about the subsidy.
519
00:28:05.160 --> 00:28:06.119
It's about the if.
520
00:28:06.039 --> 00:28:09.160
You pay API pricing, and you can also use hugging
521
00:28:09.200 --> 00:28:10.720
face with a cloud code if you want.
522
00:28:11.200 --> 00:28:14.440
Yeah, But my point here is that like how much
523
00:28:14.480 --> 00:28:17.720
you pay and the subsidies is one thing, It's absolutely true,
524
00:28:18.119 --> 00:28:20.839
But the size and the quality of their model is
525
00:28:20.839 --> 00:28:23.240
a different thing. For instance, if you take Quen three
526
00:28:23.279 --> 00:28:26.160
point five or whatever, you can have a whole bunch
527
00:28:26.240 --> 00:28:30.519
a whole range of different quantitization versions of what you're
528
00:28:30.559 --> 00:28:33.160
going to get, and this effects you know, how much
529
00:28:33.240 --> 00:28:35.720
VRAM you need to have, how much electricity this is
530
00:28:35.720 --> 00:28:38.039
going to cost you, et cetera. So I would say
531
00:28:38.799 --> 00:28:41.720
subsidies and pricing is one topic, and quantization is like
532
00:28:41.759 --> 00:28:44.720
an orthogonal topic. So they are both important.
533
00:28:45.279 --> 00:28:47.000
Yeah, I don't know.
534
00:28:47.200 --> 00:28:48.920
At the end of the day, you're paying for service,
535
00:28:49.000 --> 00:28:53.119
not for a certain x or like to Yeah, but
536
00:28:53.279 --> 00:28:55.359
if it bothers you, you can run your own model
537
00:28:55.400 --> 00:28:58.359
and like or your own proxy or use whatever you want.
538
00:28:58.640 --> 00:29:01.279
Yeah, but imagine that you you need to travel fast
539
00:29:01.559 --> 00:29:05.240
and one day your car has more horsepower, another day
540
00:29:05.279 --> 00:29:08.839
you have less horse power. Sometimes you don't drive because
541
00:29:08.880 --> 00:29:10.880
you don't have to drive, and then you have a
542
00:29:10.920 --> 00:29:15.160
lot of horsepower. Like, the service that you're using actually
543
00:29:15.240 --> 00:29:17.720
changes its parameters.
544
00:29:18.000 --> 00:29:22.559
It's the same for service architectures. It's based on servers
545
00:29:22.759 --> 00:29:25.440
run where you're coming from. But at the same time,
546
00:29:25.519 --> 00:29:28.039
I feel like the comparison is a little bit it's
547
00:29:28.079 --> 00:29:30.799
not quite the same because you're paying for virtual resources
548
00:29:30.839 --> 00:29:33.480
that you're getting access to, not a physical matter.
549
00:29:34.119 --> 00:29:39.400
Well, you have different Well, this quantization basis on how
550
00:29:39.440 --> 00:29:43.079
many bits you've got for a single parameter. So like
551
00:29:43.119 --> 00:29:46.720
we have you know, these tens or thousands of billions
552
00:29:46.720 --> 00:29:49.759
of parameters whatever, then you could have like you know,
553
00:29:49.960 --> 00:29:53.240
sixteen bits or thirty two bits or eight bits or
554
00:29:53.279 --> 00:29:56.680
four bits, et cetera. So this affects the quality of
555
00:29:56.759 --> 00:30:01.079
the response. Like really really really huge. So I would say,
556
00:30:01.119 --> 00:30:04.279
like you pay for a service that has an undefined
557
00:30:04.480 --> 00:30:05.559
quality level.
558
00:30:05.599 --> 00:30:09.240
It sounds like, okays, like Internet. It sounds to be
559
00:30:09.319 --> 00:30:12.200
like Internet in the United States because it'll be like, oh,
560
00:30:12.319 --> 00:30:14.599
you've paid for up to x amount of speed, and
561
00:30:14.640 --> 00:30:16.359
then if you call the complaint because you can't get
562
00:30:16.359 --> 00:30:18.200
that speed, they're like, you just need to upgrade your
563
00:30:18.200 --> 00:30:19.519
service and get a better router.
564
00:30:20.079 --> 00:30:22.359
Yeah, and here you don't have that defined at all.
565
00:30:22.759 --> 00:30:24.920
Yeah, it's always like up to like you can have
566
00:30:25.200 --> 00:30:29.720
up to this, and like, which is I guess I've
567
00:30:29.759 --> 00:30:31.480
just learned to internalize that.
568
00:30:31.839 --> 00:30:35.240
But I'm curious what what would you expect for a
569
00:30:35.279 --> 00:30:37.000
non deterministic resource.
570
00:30:37.279 --> 00:30:38.400
I mean, it's kind of like.
571
00:30:38.279 --> 00:30:39.839
You're going to the stock market and be like, hey,
572
00:30:39.880 --> 00:30:42.000
yesterday the price was two dollars, today it's five.
573
00:30:44.440 --> 00:30:49.200
That's not you know universe discussion you know about.
574
00:30:49.400 --> 00:30:53.799
You know, you mentioned cloud and basically serverless architecture, which
575
00:30:53.839 --> 00:30:56.720
is very good kind of point of reference here. So
576
00:30:57.039 --> 00:31:00.559
imagine that you pay for a uh VP is APS
577
00:31:00.759 --> 00:31:03.400
virtual private server, or that you pay for I know,
578
00:31:03.559 --> 00:31:07.400
a cluster or whatever. Basically you pay for very specific
579
00:31:07.720 --> 00:31:11.160
parameters of hardware that you want to use, and that's
580
00:31:11.160 --> 00:31:14.319
basically the thing. So depending on the quantization of a model,
581
00:31:15.759 --> 00:31:18.759
you actually have totally different infrastructure and different power of
582
00:31:18.759 --> 00:31:20.440
what you're of what you're using.
583
00:31:20.519 --> 00:31:22.000
Essentially, that's but that's what I'm saying.
584
00:31:22.119 --> 00:31:26.640
You're not you're not paying Anthropic for the usage of opus.
585
00:31:26.319 --> 00:31:29.240
Or whatever, but that affects what you get.
586
00:31:29.519 --> 00:31:31.559
You're paying for the output tokens.
587
00:31:31.839 --> 00:31:34.680
Yeah, but at a I see what. I understand what
588
00:31:34.720 --> 00:31:37.599
you're both saying. But like the fact that you can
589
00:31:37.720 --> 00:31:41.039
pay a single price for service and then the quality
590
00:31:41.079 --> 00:31:45.200
that service changes on a dime is like, that's not
591
00:31:45.759 --> 00:31:47.240
like what like that?
592
00:31:47.640 --> 00:31:50.920
Yes, exactly, that's the thing, John, I, I don't know.
593
00:31:50.880 --> 00:31:54.440
Why you're fighting against the fact that there's one like, yes,
594
00:31:55.119 --> 00:31:57.960
the price is static for the input and output, but
595
00:31:58.240 --> 00:32:02.000
the quality of the output is changing without your knowledge,
596
00:32:02.039 --> 00:32:05.160
with the same price. So how do I think against that?
597
00:32:05.440 --> 00:32:07.240
I'm not I'm not your argument.
598
00:32:07.680 --> 00:32:12.000
The argument is basically that you're accepting that for the
599
00:32:12.039 --> 00:32:14.359
price that you're paying on Tropic, you don't have to
600
00:32:14.440 --> 00:32:15.160
do a Tropic.
601
00:32:16.119 --> 00:32:16.839
You can do.
602
00:32:16.759 --> 00:32:18.960
Your you can build your own thing. You can't pay proxy,
603
00:32:19.039 --> 00:32:21.319
you can host your own model, you can use a
604
00:32:21.319 --> 00:32:24.480
different agent hardness. So it's a it's an point that
605
00:32:24.519 --> 00:32:28.119
you're accepting for that given price because conceptually it's still
606
00:32:28.200 --> 00:32:31.720
that it's sometimes it's still cheaper, and so so that
607
00:32:32.160 --> 00:32:35.559
it's a deal that we're making with that. I absolutely
608
00:32:35.599 --> 00:32:39.880
agree the same way in Germany, I had the shitty
609
00:32:40.039 --> 00:32:43.640
mobile provider because I was cheap. Now I pay a
610
00:32:43.680 --> 00:32:47.039
ship on more money, but have a butt it connection. Like,
611
00:32:47.640 --> 00:32:48.880
so it's a it's a matter of trade.
612
00:32:49.119 --> 00:32:52.039
Yeah, yeah, But on the other hand, you'retecting the you're
613
00:32:52.079 --> 00:32:54.759
like in terms of service. But like that, yes, agree,
614
00:32:54.839 --> 00:32:58.240
but like that doesn't mean that it's okay for us
615
00:32:58.240 --> 00:32:59.279
to accept.
616
00:33:01.119 --> 00:33:03.960
It's I mean, it's a pea capitalism. You don't have
617
00:33:04.000 --> 00:33:05.200
to pay for it, but you're doing.
618
00:33:05.960 --> 00:33:06.160
Yeah.
619
00:33:06.200 --> 00:33:07.920
But on the on the other hand, if there is
620
00:33:07.960 --> 00:33:14.759
a vendor that basically don't introduce surprises like this and
621
00:33:15.039 --> 00:33:18.240
becomes big enough, et cetera, it would shake the market.
622
00:33:18.359 --> 00:33:21.519
So it's kind of a okay, let's not not walk
623
00:33:21.559 --> 00:33:24.000
into it. But I would say there is a kind
624
00:33:24.039 --> 00:33:29.039
of area that if any vendor treats it seriously, it
625
00:33:29.079 --> 00:33:32.079
could win a lot, really a lot, because that would
626
00:33:32.119 --> 00:33:36.279
be more kind of deterministic for us users I mean
627
00:33:36.319 --> 00:33:39.720
not deterministic with models that are not deterministic by nature,
628
00:33:39.720 --> 00:33:43.519
but I mean less surprising because of that. For instance,
629
00:33:43.759 --> 00:33:47.680
I would be glad to decide myself whether I pay
630
00:33:47.680 --> 00:33:49.680
more or less depending on what is the quality of
631
00:33:49.720 --> 00:33:52.400
the model itself, or at least that you know, you
632
00:33:52.440 --> 00:33:54.480
don't get surprised in a way that you know, for
633
00:33:54.519 --> 00:33:57.200
two weeks or for two months or whatever, a thing
634
00:33:57.279 --> 00:34:01.960
is working for you, all your you know, skills, subagents, commands,
635
00:34:01.960 --> 00:34:05.160
et cetera. Everything is working, and now once, like out
636
00:34:05.240 --> 00:34:08.360
of a sudden, everybody is complaining on discord on slack
637
00:34:08.440 --> 00:34:12.079
because everybody is getting the same infrastructure essentially, which is
638
00:34:12.119 --> 00:34:16.159
basically you know, more like more aggressively quantized model, which
639
00:34:16.320 --> 00:34:19.639
to be honest, I haven't like I'm a heavy user
640
00:34:19.719 --> 00:34:23.840
of Anthropic and Gemini, and I've I have experienced it
641
00:34:23.880 --> 00:34:27.760
a lot with Anthropic. I didn't experience it with with
642
00:34:27.760 --> 00:34:32.840
with with Gemini, not sure if at all, but generally, uh,
643
00:34:32.880 --> 00:34:35.320
this is something I would complain about Anthropic here.
644
00:34:36.199 --> 00:34:39.119
Okay, but again, to play devil's advocate, you could just
645
00:34:39.159 --> 00:34:42.360
pay hugging face. They're not having that issue for their
646
00:34:42.400 --> 00:34:45.400
OPOS model. For access to the opos model that they're
647
00:34:45.400 --> 00:34:46.480
providing or.
648
00:34:46.559 --> 00:34:50.440
Dead rock or yes, yes or yes.
649
00:34:50.440 --> 00:34:51.960
But but you're accepting the.
650
00:34:53.800 --> 00:34:57.559
Even if we would call it availability, where technically it's
651
00:34:57.599 --> 00:35:00.840
more of like a quality aspect, but you're still willing
652
00:35:00.880 --> 00:35:02.280
to accept that for the cheaper price.
653
00:35:02.559 --> 00:35:05.199
Yeah, but as you said, it's like a capitalism, like
654
00:35:05.400 --> 00:35:09.800
there are only few extremely big vendor who can manage
655
00:35:09.880 --> 00:35:13.400
to do whatever they want because they have no competition
656
00:35:13.559 --> 00:35:16.159
unless any of them, you know, make a breakthrough to
657
00:35:16.960 --> 00:35:17.719
still doing that.
658
00:35:18.199 --> 00:35:20.800
It's also the mode of the default, right. The vast,
659
00:35:20.880 --> 00:35:23.679
vast majority of users, regardless of how technical or non
660
00:35:23.760 --> 00:35:26.960
technical user is, will just accept the default, right.
661
00:35:27.480 --> 00:35:29.559
I think that actually is one thing that is going
662
00:35:29.599 --> 00:35:34.079
to change because I do think for bigger companies, Cisco
663
00:35:34.199 --> 00:35:36.199
for instance, is going to be one of them that
664
00:35:36.239 --> 00:35:38.960
I see that is going to host their own AWS
665
00:35:38.960 --> 00:35:40.559
bedrock instance or something like that.
666
00:35:40.679 --> 00:35:44.320
I mean we're using we're using bedrock models, trellis. Like
667
00:35:44.360 --> 00:35:48.280
I've started switching from I don't know what's the Amazon model,
668
00:35:48.320 --> 00:35:52.119
party models, first party hosted models, to bedrock models. I
669
00:35:52.159 --> 00:35:55.800
mean we've been using we started switching to open source
670
00:35:56.119 --> 00:35:58.599
bedrock models though as well, right, Like I've some we
671
00:35:58.639 --> 00:36:00.559
have some internal tools. I was like, I don't need
672
00:36:00.599 --> 00:36:03.599
to be paying these like Frontier Labs this price when
673
00:36:03.679 --> 00:36:06.159
Quinn three point five works perfectly fine for my like
674
00:36:06.719 --> 00:36:13.280
super fine grained niche small like there's five hundred input tokens,
675
00:36:13.440 --> 00:36:16.119
or there's two hundred and fifty input tokens and like
676
00:36:16.400 --> 00:36:20.159
fifteen hundred output tokens. I don't need Frontier models for that, right,
677
00:36:20.239 --> 00:36:22.039
it's like super well defined.
678
00:36:22.119 --> 00:36:23.199
I'm not doing that clothing.
679
00:36:23.639 --> 00:36:25.559
It's like I'm getting the input, I need you to
680
00:36:25.679 --> 00:36:30.519
flag if there's certain words in it, yes or no,
681
00:36:31.280 --> 00:36:34.400
and then we just use the Quinn on bedrock because
682
00:36:34.440 --> 00:36:36.239
we don't need Frontier Labs for that kind of thing.
683
00:36:36.480 --> 00:36:38.599
Just lots and lots and lots of tasks. You don't
684
00:36:38.599 --> 00:36:41.599
need Frontier Labs for Frontier Lab models for I should
685
00:36:41.639 --> 00:36:44.599
say whether they're hosted on first party or third party
686
00:36:44.679 --> 00:36:44.840
or not.
687
00:36:45.079 --> 00:36:48.679
Did you see the Century CTO post yesterday where they
688
00:36:48.760 --> 00:36:53.199
basically disabled open four point seven in the entire Century organization.
689
00:36:53.480 --> 00:36:55.360
I did see that, and I want to disable it
690
00:36:55.400 --> 00:36:57.920
across my organization as well. Four point seven.
691
00:36:58.159 --> 00:37:02.480
Sucks not noticing better but thirty percent more expensive.
692
00:37:03.159 --> 00:37:07.000
Yeah, yeah, I have noticed a difference though, like I
693
00:37:07.079 --> 00:37:09.519
have consistently and I don't. I've been seeing some things
694
00:37:09.519 --> 00:37:12.719
about maybe like auto mode is causing problems too. I'm
695
00:37:12.760 --> 00:37:13.639
not sure I bet.
696
00:37:13.599 --> 00:37:14.880
Oh yeah yet or not.
697
00:37:15.000 --> 00:37:17.880
But like between auto mode and four point seven, like
698
00:37:17.960 --> 00:37:22.159
I'm consistently being like, what are you doing? How did
699
00:37:22.199 --> 00:37:25.639
you what? You went so far off the rails when
700
00:37:25.719 --> 00:37:28.400
last week this task was perfectly fine. I don't understand
701
00:37:28.440 --> 00:37:28.679
how the.
702
00:37:28.719 --> 00:37:31.599
Qualityeah, but token consumption was already.
703
00:37:31.400 --> 00:37:34.039
Done crazy, it's insane, how like.
704
00:37:35.400 --> 00:37:38.519
Yeah, yeah, but what you said with with Quinn actually
705
00:37:38.719 --> 00:37:41.119
like where where do these models come from? Is a
706
00:37:41.119 --> 00:37:44.079
totally different topic that I don't want to touch here.
707
00:37:44.440 --> 00:37:47.159
But actually, like what you've said about like you don't
708
00:37:47.199 --> 00:37:49.800
need the most frontier models that are you know, like
709
00:37:50.159 --> 00:37:53.320
when we're speaking about you know, clots on It, Gemini,
710
00:37:53.400 --> 00:37:57.840
the big one, the GPT, et cetera. Like they're trained
711
00:37:57.840 --> 00:38:02.840
with development, they're trained with ancient philosophy, cooking, I know, history,
712
00:38:03.559 --> 00:38:07.519
many different languages like human languages, and you know, hundreds
713
00:38:07.519 --> 00:38:11.199
of different other stuff that like we don't need all
714
00:38:11.280 --> 00:38:15.679
of that. And the funny thing is that the provider
715
00:38:15.800 --> 00:38:18.719
pays for it with you know, the electric the power
716
00:38:18.800 --> 00:38:21.880
for electricity and for the hardware. And what you've said
717
00:38:22.159 --> 00:38:26.159
Jay resonates a lot with me, is that for kind
718
00:38:26.239 --> 00:38:29.840
of tasks that we do in a kind of specific
719
00:38:29.880 --> 00:38:34.039
domain like web development. If you have a company that
720
00:38:34.119 --> 00:38:37.239
basically runs Angular, NX, et cetera, like, let's take out
721
00:38:37.320 --> 00:38:41.440
know ten frameworks, languages, et cetera, and combine them together
722
00:38:42.440 --> 00:38:47.000
tune like open models such as Quen, Kimi, whatever, or
723
00:38:47.119 --> 00:38:51.280
a game from Meta or whatever base model we take,
724
00:38:51.679 --> 00:38:56.159
and we need a model that would be few orders
725
00:38:56.159 --> 00:38:59.960
of magnitude, smaller and cheaper and not worse because we
726
00:39:00.159 --> 00:39:03.599
just don't need you know, like the context of full
727
00:39:03.760 --> 00:39:07.880
humanity and all these languages. For instance, for me, having
728
00:39:08.039 --> 00:39:11.039
a model that supports English would be totally enough and
729
00:39:11.079 --> 00:39:13.920
I can not care about other languages. Let's say that
730
00:39:13.960 --> 00:39:16.440
it would be even English and Polish doesn't matter. I
731
00:39:16.480 --> 00:39:19.840
don't need any other languages, right, why would like? And
732
00:39:19.920 --> 00:39:22.480
the problem is that if that model is trained, you know,
733
00:39:23.000 --> 00:39:27.079
multilingually and in any other aspects, like first you need
734
00:39:27.079 --> 00:39:29.679
to pay for the training, but also all these parameters
735
00:39:29.679 --> 00:39:33.360
within the model, they do kind of include the weights,
736
00:39:33.400 --> 00:39:35.719
you know, the data that was in the training. So
737
00:39:36.039 --> 00:39:38.480
and whenever we run the model of course, like sometimes
738
00:39:38.480 --> 00:39:42.000
we run through all the layers, all the tensors, sometimes not,
739
00:39:42.119 --> 00:39:45.119
so it kind of depends. But anyway, we are paying
740
00:39:45.280 --> 00:39:49.559
with electricity and power for many aspects that we're never
741
00:39:49.639 --> 00:39:51.960
going to use, which is basically kind of in the
742
00:39:52.000 --> 00:39:54.360
long run, it does make sense. On the other hand,
743
00:39:54.400 --> 00:39:58.159
like you know, the flagship models, they set the direction
744
00:39:58.559 --> 00:40:01.840
in terms of what even possible, But this is so
745
00:40:02.039 --> 00:40:06.440
insanely expensive for the provider, Like why why do they
746
00:40:06.559 --> 00:40:09.679
even have to subsidize it? For instance, if you take
747
00:40:10.320 --> 00:40:15.719
three point five, you would be happy with mac mac
748
00:40:16.039 --> 00:40:21.119
M five, which has one hundred and twenty eight gigabytes
749
00:40:21.159 --> 00:40:24.360
of VRAM, so quen three point five would take you
750
00:40:24.440 --> 00:40:26.880
half of that and you would still have the other
751
00:40:26.960 --> 00:40:29.239
half to use for any of your applications that you need,
752
00:40:29.360 --> 00:40:31.840
so you'd have a local development. And more and more
753
00:40:31.840 --> 00:40:36.000
people say that they are really happy with a local model,
754
00:40:36.079 --> 00:40:39.280
not even you know, via open Router or what jan
755
00:40:39.440 --> 00:40:41.599
you mentioned, like like set up your own et cetera.
756
00:40:41.679 --> 00:40:44.360
Like you can literally have it on your laptop provided
757
00:40:44.400 --> 00:40:46.239
that you have at least these kind of sixty four
758
00:40:46.320 --> 00:40:50.039
at least, but they're not trained, you know, with all
759
00:40:50.079 --> 00:40:54.000
the humanity context and I really believe that it's a
760
00:40:54.000 --> 00:40:57.239
matter of time, not unless, not only unless we have
761
00:40:57.480 --> 00:41:01.039
you know, smaller models that are specific to like tied
762
00:41:01.119 --> 00:41:06.400
to a specific domain, but also models that are going
763
00:41:06.440 --> 00:41:09.400
to be open source, like I believe, like maybe maybe
764
00:41:09.480 --> 00:41:13.039
hugging face making something else will win very similarly as
765
00:41:13.079 --> 00:41:16.800
we have with operating systems for instance, nowadays in Cloud
766
00:41:16.840 --> 00:41:20.639
we don't pay for we don't pay for operating system
767
00:41:20.719 --> 00:41:23.920
because everything mainly runs a Linux, So we pay for
768
00:41:24.079 --> 00:41:30.400
infrastrure back. So yeah, yeah, but you use it in
769
00:41:30.519 --> 00:41:35.760
so many places in like Linux scales very very well,
770
00:41:35.800 --> 00:41:41.119
like both industry wise, commercially wise, et cetera. So I
771
00:41:41.199 --> 00:41:43.679
believe what we are going to pay in a couple
772
00:41:43.679 --> 00:41:46.360
of years, in several years, maybe more than ten years,
773
00:41:46.400 --> 00:41:49.039
I know, but we're going to pay for infrastructure, same
774
00:41:49.159 --> 00:41:52.159
as with Cloud, and not for the model itself. This
775
00:41:52.239 --> 00:41:54.360
is what I expect in years to come.
776
00:41:54.840 --> 00:41:58.079
Yeah. We so like just a real life use case
777
00:41:58.119 --> 00:42:02.119
for listeners, we switched from cohere model, so that's a
778
00:42:02.159 --> 00:42:05.599
Canadian that's like the Canadian Frontier lab AI company. We
779
00:42:05.639 --> 00:42:08.920
switched from co Here models to Quinn on Bedrock for this,
780
00:42:09.119 --> 00:42:13.440
like a couple of different like really niche like very
781
00:42:13.480 --> 00:42:16.599
deterministic tasks, like the same input every time, same output
782
00:42:16.599 --> 00:42:18.599
every time, et cetera. So one case was we have
783
00:42:18.679 --> 00:42:21.639
this integration with a CRM that does matching of constituents
784
00:42:21.639 --> 00:42:24.559
and towners whatever. We added an AI layer onto that
785
00:42:24.599 --> 00:42:27.400
to it, and we got amazing results. We went from
786
00:42:27.440 --> 00:42:30.119
like an eighty three percent match rate up to like
787
00:42:30.559 --> 00:42:34.079
ninety eight point six match rate by adding this like
788
00:42:34.119 --> 00:42:36.519
by like tweaking the algorithm and then using AI as
789
00:42:36.519 --> 00:42:39.679
a fallback case. Right, that was with cohere. Then I
790
00:42:39.719 --> 00:42:41.599
switched over and we did like a trainset of data
791
00:42:41.639 --> 00:42:44.159
set of like you know, six hundred, six hundred records.
792
00:42:44.159 --> 00:42:47.280
We did the comparison between right, So we're once you
793
00:42:47.320 --> 00:42:49.440
get up to those like above ninety eight, you're getting
794
00:42:49.440 --> 00:42:52.079
into like standard deviation territory where like a couple points
795
00:42:52.119 --> 00:42:54.800
of percent or like not gonna it'll more depend on
796
00:42:54.840 --> 00:42:57.519
the data set than it does on the actual test setter. Right,
797
00:42:57.960 --> 00:43:00.400
So we switched from cohre I think it was command
798
00:43:00.440 --> 00:43:03.679
A I believe, over to Quent three point five I
799
00:43:03.679 --> 00:43:07.119
think is what we ended up determining on bedrock using
800
00:43:07.159 --> 00:43:10.840
the flex service tier, so even cheaper than the standard
801
00:43:11.320 --> 00:43:14.199
Quent three point five service tier for like an extra
802
00:43:14.320 --> 00:43:17.079
seven hundred millis seconds of latency or something crazy like that.
803
00:43:17.119 --> 00:43:19.840
I was like, sure, I'll absolutely, you know, pay seventy
804
00:43:19.840 --> 00:43:21.719
five percent of the standard tier price for three point
805
00:43:21.760 --> 00:43:24.159
five Quent three point five, like whatever, And we got
806
00:43:24.199 --> 00:43:28.199
like pretty much the exact same success rate. It was
807
00:43:28.239 --> 00:43:31.199
like ninety eight point three versus ninety eight point six.
808
00:43:31.880 --> 00:43:35.880
We're in within standard deviation territory of test data, right,
809
00:43:36.280 --> 00:43:40.079
But it was like seven to nine x cheaper than
810
00:43:40.159 --> 00:43:44.599
command A with coher and it was faster by some
811
00:43:45.199 --> 00:43:48.440
order of magnitude. So it was like, well, why would
812
00:43:48.440 --> 00:43:51.880
I even remotely consider a frontier lab for this use
813
00:43:51.920 --> 00:43:56.719
case when Quent three point five is faster, significantly cheaper.
814
00:43:57.360 --> 00:43:59.400
And in the future, if we want to go from
815
00:43:59.480 --> 00:44:02.719
ninety eight plus two one hundred percent, we can fine
816
00:44:02.760 --> 00:44:06.440
tune it and then hostly bedrock ourselves using realistic data
817
00:44:06.440 --> 00:44:07.320
from our data sets.
818
00:44:07.400 --> 00:44:07.519
Right.
819
00:44:07.559 --> 00:44:09.679
And I know some someone's probably gonna adp me and
820
00:44:09.719 --> 00:44:13.360
be like, oh, you can fine tune the frontier models too. Well, sure,
821
00:44:13.400 --> 00:44:15.880
but then you're back to the whole pricing problem again.
822
00:44:15.960 --> 00:44:19.000
Right now You're like, now you're paying fine tuned prices
823
00:44:19.039 --> 00:44:22.159
because you're the only one using that fine tuned model
824
00:44:22.559 --> 00:44:25.480
versus like being able to share compute with everybody else
825
00:44:25.519 --> 00:44:27.760
that's using them, like the Quinn If we didn't find
826
00:44:27.760 --> 00:44:29.519
tuned on betrock, for example, we use them. I mean
827
00:44:29.559 --> 00:44:32.039
even on even on bedrock. With a fine tuned model,
828
00:44:32.119 --> 00:44:34.440
it's like exactly seven and a half x cheaper than
829
00:44:34.480 --> 00:44:37.599
the frontier labs use the fine toothed models. Like why
830
00:44:37.639 --> 00:44:40.440
wouldn't you use an open weight model for these like
831
00:44:41.159 --> 00:44:45.760
super specific tasks that you know you can control versus
832
00:44:45.920 --> 00:44:49.079
these like more open ended let's say coding for example.
833
00:44:49.159 --> 00:44:52.280
Right not to mention the fact that some companies require
834
00:44:52.360 --> 00:44:55.400
to own or at least partially own their infrastructure. So
835
00:44:55.679 --> 00:44:58.400
in case of of this, like you don't have to
836
00:44:58.480 --> 00:45:00.559
use bad rock, like as long as bad rock in
837
00:45:00.559 --> 00:45:04.360
this case was just infrastructure. So if you have, if
838
00:45:04.400 --> 00:45:06.679
you want, you can like you know, build your own
839
00:45:06.719 --> 00:45:09.360
infrastructure if you want, like if there is a kind
840
00:45:09.360 --> 00:45:12.159
of you know, legal requirement for that. So why not
841
00:45:12.559 --> 00:45:16.000
so that you know your data never leave your company.
842
00:45:16.199 --> 00:45:17.360
Nop exactly.
843
00:45:17.719 --> 00:45:19.920
I'm just like so glad that there's just a whole
844
00:45:19.960 --> 00:45:22.280
team that does all of this for me.
845
00:45:27.320 --> 00:45:29.440
These are just numbers you are going to pay, you know,
846
00:45:29.559 --> 00:45:34.159
like tens of thousands of dollars I believe for a
847
00:45:34.199 --> 00:45:35.920
single you know, GPU device.
848
00:45:36.559 --> 00:45:39.039
Just I wish more companies would just like post how
849
00:45:39.079 --> 00:45:42.239
much money they've spent on AI in like the last month,
850
00:45:42.280 --> 00:45:44.039
because yeah, it can be.
851
00:45:44.039 --> 00:45:47.559
Like by the way, Jay, can you say how many
852
00:45:47.719 --> 00:45:51.960
developers were using how many instances of the quen Was
853
00:45:52.000 --> 00:45:53.880
this just one instance or more?
854
00:45:54.280 --> 00:45:57.320
Well, the developers aren't actually using the Quinn model. It's
855
00:45:57.360 --> 00:46:00.800
built into our system, like it's built into the product itself,
856
00:46:00.800 --> 00:46:01.280
the product.
857
00:46:01.760 --> 00:46:03.480
Okay, So it's being used in run time, not.
858
00:46:03.480 --> 00:46:06.199
To do to power a feature that our customers use.
859
00:46:06.280 --> 00:46:08.320
Sure, Okay, so not just for development, sure?
860
00:46:08.360 --> 00:46:10.400
Yeah, yeah, No, we're actually not using quint for development
861
00:46:10.440 --> 00:46:12.760
right now. Right now, we're just using standard pod code
862
00:46:12.800 --> 00:46:15.519
via subscription. Sure. And that's why I'm so upset about
863
00:46:15.559 --> 00:46:17.559
four point seven and Automove.
864
00:46:19.239 --> 00:46:22.280
Do better Anthropic you're listening, all right, all right, So
865
00:46:22.880 --> 00:46:27.639
let's to bring it back to the angular perspective, Tomash,
866
00:46:27.719 --> 00:46:31.599
what are some of your must haves for Angular development
867
00:46:31.760 --> 00:46:35.079
regarding ail code?
868
00:46:37.159 --> 00:46:41.199
I would say, like do your homework when it comes
869
00:46:41.199 --> 00:46:45.039
to fundamentals of software architecture when it when it when
870
00:46:45.079 --> 00:46:49.880
it's about modularizing your application and thinking about how to
871
00:46:49.960 --> 00:46:53.480
integrate modules across them. So I know that is going
872
00:46:53.559 --> 00:46:57.760
to be opinionated, et cetera. But basically, the more you
873
00:46:57.840 --> 00:47:01.199
share in your code base and and like you know,
874
00:47:01.360 --> 00:47:04.960
the more different pieces of your code base can import
875
00:47:05.239 --> 00:47:08.360
and use or reuse whatever other pieces of your code base,
876
00:47:09.760 --> 00:47:15.480
then this introduces quite some let's say, obstacles or make
877
00:47:15.519 --> 00:47:18.239
it more expensive to maintain, to understand, et cetera. And
878
00:47:18.360 --> 00:47:20.760
it's not only people who'd have to read more code,
879
00:47:20.760 --> 00:47:23.360
but also it's AI who needs to read more files,
880
00:47:23.400 --> 00:47:26.599
which consumes more tokens, et cetera, et cetera. So basically
881
00:47:27.639 --> 00:47:31.239
I would say before we could go like before the
882
00:47:31.280 --> 00:47:33.599
EI era, we could go with you know, more like
883
00:47:33.719 --> 00:47:38.639
global or centralized state solutions, or think of more distributed
884
00:47:38.719 --> 00:47:42.840
like you know, more like more aggressively modularized. Now, whenever
885
00:47:42.880 --> 00:47:48.360
we want to change something in for instance, global, NNGRX, state, whatever,
886
00:47:48.519 --> 00:47:52.559
then there is a risk that whenever you change something
887
00:47:52.599 --> 00:47:56.480
that is global, then potentially all other pieces of the
888
00:47:56.599 --> 00:47:59.519
R application depend on it. Like of course it doesn't
889
00:47:59.519 --> 00:48:01.679
have to be n but basically anything that is global
890
00:48:02.559 --> 00:48:06.480
and generally available to the codebase. Then there is a
891
00:48:06.559 --> 00:48:09.199
risk somebody else would depend on that, which would basically
892
00:48:09.239 --> 00:48:13.079
make the model to iterate more times on your codebase
893
00:48:13.159 --> 00:48:15.360
to make it compile, make it work, et cetera. So
894
00:48:15.599 --> 00:48:21.639
basically I would say more localized state solutions make way
895
00:48:21.639 --> 00:48:25.159
more sense. So that generally speaking, as much as a
896
00:48:25.199 --> 00:48:28.679
model can work in a thin vertical slice, which is
897
00:48:28.719 --> 00:48:32.679
basically a folder with component services, whatever you need just
898
00:48:32.760 --> 00:48:36.320
within a slice, of course, it's more convenient to make
899
00:48:36.360 --> 00:48:38.360
it a folder, but a folder is just a folder.
900
00:48:38.679 --> 00:48:43.400
But still you don't make the model read everything that
901
00:48:43.519 --> 00:48:46.679
is globally available. But on the other hand, you will
902
00:48:46.920 --> 00:48:50.480
have in all applications sooner or later places where you
903
00:48:50.639 --> 00:48:52.920
change something in one view or in one module and
904
00:48:52.960 --> 00:48:55.599
it affects in some way other modules. So you need
905
00:48:55.679 --> 00:48:59.239
some ways of integration. And again, like learn fundamentals such
906
00:48:59.239 --> 00:49:02.760
as there are events, commands and queries, So what are
907
00:49:03.079 --> 00:49:05.920
the most fundamental ways for models to communicate with each other?
908
00:49:06.159 --> 00:49:09.960
And basically this is something that works in Angular, it
909
00:49:10.039 --> 00:49:13.119
works also in View and in other frameworks as well.
910
00:49:13.599 --> 00:49:17.199
That you in your guard rails, in your you know
911
00:49:17.320 --> 00:49:22.199
rules and expectations from the model, you enforce it like
912
00:49:22.320 --> 00:49:24.079
of course that the model can kind of you know,
913
00:49:24.360 --> 00:49:29.079
jail break from your rules never mind, but you you
914
00:49:30.280 --> 00:49:33.400
drive the model to work only in a specific directory,
915
00:49:33.639 --> 00:49:38.079
and you explicitly define what is the contract with other modules,
916
00:49:38.280 --> 00:49:42.400
so for instance, what events could you send, what actions
917
00:49:42.400 --> 00:49:45.920
could you dispatch? Whatever we call them. So focus on
918
00:49:46.519 --> 00:49:50.199
local let's say features the most, even at the cost
919
00:49:50.199 --> 00:49:55.199
of duplication, so that whenever you want to extend something,
920
00:49:55.360 --> 00:49:59.760
build something, replace something, or even remove something, there are
921
00:50:00.119 --> 00:50:04.400
as few global things to touch as possible. So of
922
00:50:04.440 --> 00:50:08.800
course there would be exceptions from it, for instance, component
923
00:50:08.880 --> 00:50:12.239
libraries that are you know, used throughout the product, or
924
00:50:12.360 --> 00:50:15.400
if you, i know, have a library or kind of
925
00:50:15.480 --> 00:50:18.840
API that another team has built and you have to use.
926
00:50:18.920 --> 00:50:21.519
Like sure, like you might have some global dependencies, but
927
00:50:21.840 --> 00:50:24.760
try to limit them as much as possible, because this
928
00:50:24.840 --> 00:50:31.880
is going to be both like economically like economically better
929
00:50:31.960 --> 00:50:34.679
for token consumption, but also this is going to be
930
00:50:35.320 --> 00:50:40.079
more predictable. So I would say, be localized as much
931
00:50:40.119 --> 00:50:43.400
as possible. And there is also one more concept but
932
00:50:43.519 --> 00:50:45.199
I don't have if I don't know if we have
933
00:50:45.239 --> 00:50:49.360
time for it, which is removability, which are also kind
934
00:50:49.360 --> 00:50:54.679
of a huge fan of that, and it's like, you know,
935
00:50:55.079 --> 00:50:58.400
coding as we've been doing it manually was kind of
936
00:50:58.760 --> 00:51:01.039
expensive and took us a lot of time. So now
937
00:51:01.079 --> 00:51:03.840
if coding is kind of shifted to the model, not design,
938
00:51:03.920 --> 00:51:07.480
but coding, what if our modules are so small that
939
00:51:07.599 --> 00:51:11.119
it's cheaper for us to basically throw away a model
940
00:51:11.159 --> 00:51:14.159
that we're a module, sorry, a module that we have
941
00:51:14.239 --> 00:51:17.280
trouble with, And basically it's what if it's cheaper to
942
00:51:17.599 --> 00:51:20.880
rewrite it from scratch, replace it instead of maintaining it.
943
00:51:21.280 --> 00:51:26.199
So this is a concept that Greg Young Beckond architect
944
00:51:26.480 --> 00:51:29.199
introduced kind of more than ten years ago, and at
945
00:51:29.199 --> 00:51:32.559
that time it was kind of a visionary because writing
946
00:51:32.599 --> 00:51:36.719
code was expensive. Now writing code is not expensive and
947
00:51:36.920 --> 00:51:40.360
llms can you know, help us a lot with that.
948
00:51:40.559 --> 00:51:43.480
So at this point in time, I would say this
949
00:51:43.559 --> 00:51:47.000
is not visionary that much. So that if our modules
950
00:51:47.000 --> 00:51:51.239
are small and we explicitly say what are the integration
951
00:51:51.599 --> 00:51:54.800
points with other modules, then I would say this is
952
00:51:54.800 --> 00:51:55.639
the this is the way.
953
00:51:55.960 --> 00:51:58.920
Yeah, I want what we've been So we have a
954
00:51:58.960 --> 00:52:01.880
lot of like table views, right like, we have a
955
00:52:01.920 --> 00:52:04.239
lot of data and so it's going to get displayed
956
00:52:04.719 --> 00:52:07.320
and you know, there's going to be different columns, there's
957
00:52:07.360 --> 00:52:09.920
going to be like different formatting in the cells maybe,
958
00:52:10.280 --> 00:52:13.199
but for the most part, like all the tables do
959
00:52:13.239 --> 00:52:16.559
the same thing. And so what I've focused more on
960
00:52:16.679 --> 00:52:20.519
is building out utilities to help provide the configuration to
961
00:52:20.599 --> 00:52:24.480
render the tables as opposed to repeating you know, like,
962
00:52:24.559 --> 00:52:27.519
so we'll have these you know, like this is how
963
00:52:27.559 --> 00:52:31.239
the columns get made. Right, So we have the column configuration,
964
00:52:31.559 --> 00:52:34.400
we have, the users have the ability they want to
965
00:52:34.400 --> 00:52:35.880
be able to say, oh, this time, I want to
966
00:52:35.920 --> 00:52:38.880
see only these columns in this view. And so we
967
00:52:38.960 --> 00:52:42.159
have the concept of like user preferences, and so instead
968
00:52:42.199 --> 00:52:44.679
of having to rewrite that logic over and over and
969
00:52:44.719 --> 00:52:48.440
over again, which gets really really difficult to maintain, We've
970
00:52:48.480 --> 00:52:52.960
created these really lightweight features signal store features that handle
971
00:52:53.599 --> 00:52:58.400
these very specific utilities. Like this thing only handles this job,
972
00:52:58.880 --> 00:53:01.639
and it makes it so much easier, if you know,
973
00:53:01.719 --> 00:53:05.119
like since it's so straightforward, its task is very clear.
974
00:53:05.679 --> 00:53:08.039
If somebody changes it, it's very easy to say, Okay,
975
00:53:08.079 --> 00:53:10.360
that's probably going to break everybody, let's not do that,
976
00:53:10.800 --> 00:53:13.880
or you know, like yeah, that's that's an okay change.
977
00:53:14.239 --> 00:53:16.079
Or it's also very easy to swap it out for
978
00:53:16.159 --> 00:53:18.800
a different feature, right, Like, as long as the interfaces match,
979
00:53:18.880 --> 00:53:20.760
you just say, instead of using this one, just use
980
00:53:20.800 --> 00:53:24.000
this one. And so it's made it a lot easier
981
00:53:24.000 --> 00:53:26.199
for us to maintain some of those views. And then
982
00:53:26.360 --> 00:53:28.360
it makes it easy for us to say, hey, AI,
983
00:53:28.960 --> 00:53:32.639
we have these utilities, so instead of reinventing the wheel
984
00:53:32.639 --> 00:53:35.639
every time you make a table view, let's use these utilities.
985
00:53:35.760 --> 00:53:37.920
And it can mil those out pretty fast for us.
986
00:53:39.280 --> 00:53:41.280
And you know, it's always a fine tuning process because
987
00:53:41.320 --> 00:53:43.360
like you're going fast and you've got like we've got
988
00:53:43.400 --> 00:53:45.519
like fifty dev's on the team, and everyone's merging code
989
00:53:45.559 --> 00:53:47.679
every day, and it gets really hard to keep up
990
00:53:47.679 --> 00:53:48.519
with everybody.
991
00:53:49.280 --> 00:53:53.000
So but you know, much code be emerged right now?
992
00:53:53.199 --> 00:53:54.039
Yeah and open.
993
00:53:54.119 --> 00:53:57.519
Yeah. It also depends what is the I'm not sure
994
00:53:57.599 --> 00:53:59.320
how to say it in English. What is the point
995
00:53:59.360 --> 00:54:02.039
of difficult in your project? For instance, if you have
996
00:54:02.079 --> 00:54:06.840
lots of views that have tabular data, then like like
997
00:54:07.280 --> 00:54:10.960
duplicating the code of your grid or table tables, et
998
00:54:11.039 --> 00:54:15.360
cetera could be madness in your case. But other projects
999
00:54:15.360 --> 00:54:18.559
could have lots of forms, or they could guide the
1000
00:54:18.719 --> 00:54:22.079
user through business processes that could be instant or could
1001
00:54:22.119 --> 00:54:24.800
be long running, et cetera, et cetera. So every application
1002
00:54:24.880 --> 00:54:27.199
is different, every kind of you know, user experience could
1003
00:54:27.239 --> 00:54:30.599
be different. You could have one that is kind of majority,
1004
00:54:30.719 --> 00:54:33.320
or you could have a mixture, hybrid, whatever. But I
1005
00:54:33.360 --> 00:54:38.639
would say the more like the question is, even if
1006
00:54:38.639 --> 00:54:41.239
you have a table utility, I would ask a question,
1007
00:54:41.360 --> 00:54:43.119
and I don't know what is the answer, because every
1008
00:54:43.119 --> 00:54:45.920
product could be different, Like what is the probability that
1009
00:54:46.039 --> 00:54:48.239
you would have to change that utility? And it would
1010
00:54:48.239 --> 00:54:51.039
affect many places in the code base. So if it's
1011
00:54:51.079 --> 00:54:55.079
not likely in your situation, not a new problem. If
1012
00:54:55.119 --> 00:54:57.599
there is a risk like this, then imagine what the
1013
00:54:57.639 --> 00:55:00.559
model would do. So basically you would have these itraates, etcetera,
1014
00:55:00.679 --> 00:55:03.639
et cetera. And it's not you know, like Claude or
1015
00:55:03.760 --> 00:55:07.800
Gemini or GPT whatever, codex being stupid or not. It's
1016
00:55:07.800 --> 00:55:12.599
basically people introducing more or less traps into their design.
1017
00:55:13.159 --> 00:55:16.199
So I would say, we have a kind of like
1018
00:55:16.239 --> 00:55:19.760
from my experience, like twenty ish years of experience, we
1019
00:55:19.840 --> 00:55:23.639
have kind of an obsession in the industry of over
1020
00:55:23.840 --> 00:55:28.159
drying our code basis. So going back to you know,
1021
00:55:28.199 --> 00:55:33.159
the roots, the pragmatic programmer. What the authors defined dry
1022
00:55:33.320 --> 00:55:38.400
as it's about a single source of truth of knowledge,
1023
00:55:38.800 --> 00:55:42.360
not code. So the question is how do you modularize
1024
00:55:42.440 --> 00:55:47.880
your code base, And most often people modularize it around
1025
00:55:48.119 --> 00:55:52.719
nouns like things and not necessarily user actions or let's
1026
00:55:52.760 --> 00:55:56.079
say business processes. So it really depends on many factors.
1027
00:55:56.079 --> 00:55:58.519
But I would say, like a rule of thumb or
1028
00:55:58.519 --> 00:56:02.039
a heuristic, ask yourself, if you need to change a
1029
00:56:02.280 --> 00:56:05.920
usable stuff, how much of the area could be affected
1030
00:56:05.960 --> 00:56:09.360
by it? And if little, that's cool, If a lot,
1031
00:56:09.719 --> 00:56:11.440
it's certainly not well well.
1032
00:56:11.480 --> 00:56:13.559
And so one of the problems that we have, of
1033
00:56:13.599 --> 00:56:15.800
course is that you know, we're trying to prevent this
1034
00:56:16.039 --> 00:56:19.119
unified solution, right, We don't want you to go to
1035
00:56:19.159 --> 00:56:21.440
one table and have it behave one way, and so
1036
00:56:21.519 --> 00:56:24.840
actually what we're doing is encapsulating behavior. And so like
1037
00:56:25.119 --> 00:56:28.760
you can go ahead and like hand in call and configuration,
1038
00:56:28.880 --> 00:56:31.119
get it to render the table. We're just using a
1039
00:56:31.480 --> 00:56:33.920
g grid, right, So like you could go ahead and
1040
00:56:33.920 --> 00:56:37.880
have it do that, no problem. But if the expectation
1041
00:56:38.280 --> 00:56:41.679
is that if you sort, it should go to the
1042
00:56:42.400 --> 00:56:44.760
uh query prams, if you do this, it should do that.
1043
00:56:44.800 --> 00:56:47.719
You know, if if there's that expectation that the behavior
1044
00:56:47.800 --> 00:56:49.719
is the same. That's where we were running into a
1045
00:56:49.760 --> 00:56:52.719
lot of problems in a previous application where we're trying
1046
00:56:52.760 --> 00:56:55.280
to like we got bug ticket out after bug ticket,
1047
00:56:55.320 --> 00:56:57.679
like the behavior's different, it doesn't behave the same and
1048
00:56:57.719 --> 00:56:59.960
so we're like, all right, then we're going to encapsulate
1049
00:57:00.079 --> 00:57:03.679
this specific piece of behavior and then like all the
1050
00:57:03.719 --> 00:57:06.480
weird stuff like oh this is one API. Yeah, we
1051
00:57:06.559 --> 00:57:09.480
have to map that because it has duplicates and we
1052
00:57:09.480 --> 00:57:11.079
need to do this, and we need to do that,
1053
00:57:11.239 --> 00:57:13.639
like all that belongs just there, and if I have
1054
00:57:13.679 --> 00:57:15.920
to make changes to it, nobody else.
1055
00:57:16.400 --> 00:57:20.960
Kind of plugin based Yes, that you can encapsulate behavior
1056
00:57:20.960 --> 00:57:24.239
as plugins that you attach or not cool coo.
1057
00:57:24.280 --> 00:57:26.800
Yeah, yeah, and it's very cool, very cool. Yeah, and
1058
00:57:27.079 --> 00:57:28.840
it works like it's working for us. But I think
1059
00:57:28.840 --> 00:57:31.119
it's also really hard, you know, like our end goal
1060
00:57:31.360 --> 00:57:33.599
is like we want our AI tools to be really
1061
00:57:33.639 --> 00:57:35.400
good at it. So you tread the line of like
1062
00:57:35.639 --> 00:57:38.639
did I make it so special that I'm always going
1063
00:57:38.679 --> 00:57:40.920
to have to maintain a skill so that my AI
1064
00:57:41.039 --> 00:57:43.719
knows how to do it? Or did I follow enough
1065
00:57:43.760 --> 00:57:46.639
of like the industry standard on this that the AI
1066
00:57:46.679 --> 00:57:49.440
tool can just rely on this the you know, the
1067
00:57:49.480 --> 00:57:52.679
documentation provided by the community and the Angular team, and
1068
00:57:53.119 --> 00:57:55.599
so I think there's a balance there too.
1069
00:57:55.440 --> 00:57:58.119
To be honest, what you described is very close or
1070
00:57:58.159 --> 00:58:01.840
even it is my kind of preferred or optimal way
1071
00:58:01.920 --> 00:58:05.440
of designing component libraries because something that I also found
1072
00:58:05.719 --> 00:58:08.880
and I was working on many kind of consultancy you know,
1073
00:58:09.480 --> 00:58:14.760
gigs trying to like rescue projects where when component libraries
1074
00:58:14.880 --> 00:58:19.440
were way, way, way too big to broad and especially
1075
00:58:19.519 --> 00:58:23.000
when there was an SDK that was published to customers
1076
00:58:23.119 --> 00:58:26.639
you know, outside of the company, and basically whenever the
1077
00:58:26.719 --> 00:58:29.800
developers need to change anything in the SDKA, which was
1078
00:58:29.960 --> 00:58:34.719
enormously big, and customers were unhappy, and every next time
1079
00:58:34.840 --> 00:58:37.480
customers were more and more and more unhappy. So basically,
1080
00:58:37.679 --> 00:58:40.320
by the way in DevOps and platform engineering, they have
1081
00:58:40.440 --> 00:58:44.719
exactly the same problem, like an overgrown API or overgrown
1082
00:58:44.880 --> 00:58:48.800
platform that is trying to provide too much. And what
1083
00:58:48.840 --> 00:58:51.639
you've said is a kind of I would say, very
1084
00:58:51.639 --> 00:58:54.199
close or even the golden middle when it comes to
1085
00:58:54.320 --> 00:58:59.639
component library itself having just the basics very limited amount
1086
00:58:59.719 --> 00:59:03.320
because your public API that you need to maintain and
1087
00:59:03.320 --> 00:59:07.440
you're responsible for and changing it would make your consumers
1088
00:59:07.559 --> 00:59:09.920
angry and so on and so forth. So this is
1089
00:59:10.000 --> 00:59:13.559
very limited, but if you need to adjust it in
1090
00:59:13.599 --> 00:59:16.480
any way, just here you go. You have plugins, And
1091
00:59:16.519 --> 00:59:19.159
the only thing I would add is that your plugins
1092
00:59:19.159 --> 00:59:23.400
could be documented, for instance, with storybook, so that it's
1093
00:59:23.719 --> 00:59:28.880
really easy to see how does it behave, how does
1094
00:59:28.920 --> 00:59:32.159
it look like, blah blah blah. And also if you
1095
00:59:32.199 --> 00:59:35.480
have plugins that are part of the let's say they're
1096
00:59:35.480 --> 00:59:38.079
not literally part of the platform or part of SDK
1097
00:59:38.400 --> 00:59:43.480
or the Combon library, but every plugin that has been made,
1098
00:59:43.559 --> 00:59:47.199
it's already an effort that you can copy or use,
1099
00:59:47.599 --> 00:59:52.440
so you don't have to like redo the effort. You
1100
00:59:52.480 --> 00:59:55.599
can copy the code, but you don't redo the effort.
1101
00:59:55.639 --> 00:59:57.559
The effort has been made, just tay can use it.
1102
00:59:58.199 --> 01:00:00.679
But on the other hand, if you have to change
1103
01:00:00.679 --> 01:00:04.440
the API, the public API, you can do it because
1104
01:00:04.519 --> 01:00:07.320
it's the team, the product team that owns the plug in,
1105
01:00:07.559 --> 01:00:11.039
not you as the compond library provider. So I would
1106
01:00:11.039 --> 01:00:12.880
say this is also very important. And you know, like
1107
01:00:13.119 --> 01:00:16.639
there are many kind of you know, conflicts between the
1108
01:00:16.760 --> 01:00:20.599
product team expecting the compond library or the platform team
1109
01:00:20.639 --> 01:00:23.199
to deliver something within the platform, and there then there
1110
01:00:23.239 --> 01:00:26.159
is often a conflict like who does it? Because everybody
1111
01:00:26.320 --> 01:00:28.760
wants to have as little work as possible, so they
1112
01:00:28.880 --> 01:00:31.679
just you know, try to enforce the other insight to
1113
01:00:31.679 --> 01:00:35.000
do it, yeah, exactly to own it, like exactly like
1114
01:00:35.119 --> 01:00:35.440
you do.
1115
01:00:35.440 --> 01:00:38.400
The platform right, you should give it to us, Like
1116
01:00:38.440 --> 01:00:40.679
there's always that one ticket that goes like from board
1117
01:00:40.679 --> 01:00:41.079
to board.
1118
01:00:41.599 --> 01:00:43.960
Yeah, and whatever you do in this situation is going
1119
01:00:44.000 --> 01:00:46.599
to be kind of troublesome. So it's kind of an
1120
01:00:46.760 --> 01:00:49.280
art to or it's kind of a like, you know,
1121
01:00:49.320 --> 01:00:52.800
it takes a lot of experience to make the SDK
1122
01:00:53.039 --> 01:00:56.280
or make the public API really thin and narrow, but
1123
01:00:56.400 --> 01:00:59.119
also make it extensible and plug in architecture is kind
1124
01:00:59.119 --> 01:01:03.400
of super like useful for it. Absolutely strongly agree with
1125
01:01:03.400 --> 01:01:03.920
what you said.
1126
01:01:04.440 --> 01:01:08.239
Absolutely well, thank you that. It's so affirming, you know,
1127
01:01:08.239 --> 01:01:11.039
when you're right. Am I doing the right thing? Or
1128
01:01:11.079 --> 01:01:13.960
am I being if I gon't? You know, like the
1129
01:01:14.559 --> 01:01:17.239
gift of the guy with the like the notebook. You know,
1130
01:01:17.320 --> 01:01:20.440
I start to explain what I'm doing and I'm like, oh, like.
1131
01:01:20.440 --> 01:01:23.039
But you know, it's not common, it's not common to
1132
01:01:23.079 --> 01:01:23.679
think this way.
1133
01:01:24.199 --> 01:01:25.599
Yeah, And the.
1134
01:01:25.519 --> 01:01:29.079
Most common of what I've seen is just put everything
1135
01:01:29.119 --> 01:01:31.800
into that platform. Or the library, like just push it there,
1136
01:01:31.920 --> 01:01:34.800
and then you have a grid that has sixty parameters.
1137
01:01:35.239 --> 01:01:36.800
I have like a lot of fights with people or
1138
01:01:36.840 --> 01:01:39.440
I'm like that doesn't belong here, please don't put that here.
1139
01:01:41.320 --> 01:01:45.239
Exactly exactly, So there is too little of that kind
1140
01:01:45.280 --> 01:01:46.960
of no, we won't take it.
1141
01:01:47.360 --> 01:01:50.400
Yeah, yeah, like I really want like five more people
1142
01:01:50.519 --> 01:01:53.960
to be on that mode of like no, it's not mine,
1143
01:01:54.400 --> 01:01:56.039
Like that's something you need to handle.
1144
01:01:56.599 --> 01:01:58.480
And by the way, this is also a decision that
1145
01:01:58.480 --> 01:02:02.000
I would never shift to a because basically, like yeah,
1146
01:02:02.039 --> 01:02:05.039
at this point, majority knows that AI is kind of,
1147
01:02:05.039 --> 01:02:09.960
you know, statistical machine blah blah blah. So statistically people
1148
01:02:10.000 --> 01:02:12.800
would put everything into the component library.
1149
01:02:12.800 --> 01:02:16.639
It would make it. It's the easiest solution, you know, until.
1150
01:02:16.360 --> 01:02:19.440
It's not because you don't have to think about the consequences.
1151
01:02:19.760 --> 01:02:24.280
And by the way, AI doesn't have experience, it doesn't
1152
01:02:24.280 --> 01:02:26.719
have its will, et cetera. And we do have our
1153
01:02:26.840 --> 01:02:29.119
own experience, which is kind of difficult to measure, but
1154
01:02:29.440 --> 01:02:31.440
if you put too much into the library, you do
1155
01:02:31.519 --> 01:02:35.599
have your own experience, and well we all do as well.
1156
01:02:36.119 --> 01:02:39.199
We know what could be the consequences, but it's not
1157
01:02:39.360 --> 01:02:42.840
just statistical text that we've been taught on. This is
1158
01:02:42.920 --> 01:02:43.280
kind of ye.
1159
01:02:43.440 --> 01:02:45.360
It's like, no, I literally had to clean this up
1160
01:02:45.400 --> 01:02:47.360
before and it's terrible and I never want to do
1161
01:02:47.440 --> 01:02:47.840
that again.
1162
01:02:49.000 --> 01:02:51.639
Yeah, yeah, all.
1163
01:02:51.599 --> 01:02:53.280
Right, Well we all doesn't have experience.
1164
01:02:53.360 --> 01:02:56.559
Yeah, well exactly. They're like a really good like mid
1165
01:02:56.679 --> 01:02:59.519
level dev right, Like they haven't seen a lot of stuff,
1166
01:02:59.559 --> 01:03:01.199
Like they haven't had a lot of stuff go wrong
1167
01:03:01.280 --> 01:03:03.840
for them, but they're really good at like they know
1168
01:03:03.920 --> 01:03:06.559
the libraries, they know they know how to write code,
1169
01:03:06.639 --> 01:03:10.440
they know different solutions for things, but they've never had
1170
01:03:10.440 --> 01:03:13.760
to live with the consequences of their own actions. They
1171
01:03:13.880 --> 01:03:18.840
never get blamed themselves anyways. All right, so we are
1172
01:03:18.920 --> 01:03:22.280
getting to the top of the hour here, tamatch. I
1173
01:03:22.400 --> 01:03:24.079
want to thank you so much for joining us. I
1174
01:03:24.119 --> 01:03:26.199
think we could probably just keep talking about this for
1175
01:03:26.239 --> 01:03:29.079
a long time. It's very much top of mind for
1176
01:03:29.199 --> 01:03:31.400
most I don't think I know a developer at all
1177
01:03:31.480 --> 01:03:35.760
right now who doesn't have some form of anxiety related
1178
01:03:35.760 --> 01:03:38.840
to AI, you know, excitement, Like we're all kind of
1179
01:03:38.840 --> 01:03:42.199
trying to figure out, you know, what are the new patterns,
1180
01:03:42.199 --> 01:03:44.119
what are the new you know, And of course AI
1181
01:03:44.159 --> 01:03:46.159
doesn't help because it changes constantly. It used to be
1182
01:03:46.199 --> 01:03:47.920
that we would say, oh, I don't want to adopt
1183
01:03:47.920 --> 01:03:49.679
this right away. I want to see how this plays out.
1184
01:03:49.679 --> 01:03:53.039
But now we're like, new model, let's use it, you know,
1185
01:03:53.119 --> 01:03:55.440
And so it's kind of a different world for a
1186
01:03:55.440 --> 01:03:58.639
lot of us. It can feel scary, it can feel overwhelming.
1187
01:03:59.360 --> 01:04:02.800
If that's if for the listener, if that's you, you
1188
01:04:02.960 --> 01:04:05.400
are not alone. This is how a lot of people
1189
01:04:05.440 --> 01:04:08.639
feel right now. But I think it is important for
1190
01:04:08.719 --> 01:04:10.920
us to sort of figure out where we fit into
1191
01:04:10.960 --> 01:04:15.920
this process because developers do have value in an AI world,
1192
01:04:16.039 --> 01:04:18.000
and a lot of it is that expertise that we're
1193
01:04:18.039 --> 01:04:20.639
talking about, where you know where things can go wrong.
1194
01:04:20.960 --> 01:04:24.000
You can guide those models to maybe not make those
1195
01:04:24.039 --> 01:04:27.639
mistakes that you've had to clean up before. And that's
1196
01:04:27.679 --> 01:04:29.800
not going to change, or I hope that doesn't change
1197
01:04:29.800 --> 01:04:33.000
at least until I just want to retire, y'all. So
1198
01:04:33.760 --> 01:04:35.719
that is my goal, and then i'd like for you know,
1199
01:04:35.760 --> 01:04:38.199
like Jay to be able to retire and Yahn.
1200
01:04:39.079 --> 01:04:43.159
I'm not retiring in this have you seen the economy?
1201
01:04:43.400 --> 01:04:46.199
I know, I'm just like say, I just need to
1202
01:04:46.199 --> 01:04:48.000
get enough money so I can get some land in
1203
01:04:48.039 --> 01:04:50.039
the mountains and go hide in my cabin for the
1204
01:04:50.039 --> 01:04:54.679
rest of my life. All right, well, ta much. Thank
1205
01:04:54.719 --> 01:04:57.480
you so much for joining us. It's always it's a
1206
01:04:57.480 --> 01:05:01.519
pleasure to have you. And to the listeners, thank you
1207
01:05:01.559 --> 01:05:04.440
for joining us and listening. We literally wouldn't do this
1208
01:05:04.480 --> 01:05:07.039
podcast if you didn't, so we appreciate the time that
1209
01:05:07.079 --> 01:05:09.719
you take to listen to us too much. Was there
1210
01:05:09.760 --> 01:05:11.840
anything you wanted to say before leave?
1211
01:05:13.599 --> 01:05:17.239
Thank you? First of all, thank you for having the
1212
01:05:17.239 --> 01:05:20.599
pleasure to to talk to you. But yeah, one thing
1213
01:05:20.639 --> 01:05:22.760
I would like to address is exactly what you said
1214
01:05:22.840 --> 01:05:28.199
Lara just before, I would say, like like in poland
1215
01:05:28.239 --> 01:05:30.920
also people like some people are also scared that they're
1216
01:05:30.920 --> 01:05:33.159
going to be replaced by AI, et cetera. Like my
1217
01:05:33.320 --> 01:05:37.280
view is like don't ignore AI, but also don't overdo
1218
01:05:37.320 --> 01:05:41.880
it and keep on learning, but also try to keep
1219
01:05:41.920 --> 01:05:45.199
calm and learn new stuff and you're going to be happy.
1220
01:05:45.360 --> 01:05:49.400
But also think about like if you're having doubts, try
1221
01:05:49.440 --> 01:05:54.039
to think about why would your employer pay you for
1222
01:05:54.079 --> 01:05:56.719
your work? Like what is the value that you introduce
1223
01:05:56.800 --> 01:06:01.320
when when you do your daily task? Like why are
1224
01:06:01.360 --> 01:06:04.000
you paid if that was being an expert in a
1225
01:06:04.039 --> 01:06:08.920
given library, that might not be as useful as it
1226
01:06:09.000 --> 01:06:11.639
used to be so far, But it doesn't mean that
1227
01:06:11.679 --> 01:06:13.960
AI is going to replace all of us. So basically
1228
01:06:14.239 --> 01:06:17.840
like try to find your own value in what you
1229
01:06:17.920 --> 01:06:20.480
do and you're going to be really fine.
1230
01:06:21.440 --> 01:06:21.760
Yeah.
1231
01:06:21.760 --> 01:06:25.199
Absolutely, It's like find your place on your team, right,
1232
01:06:25.280 --> 01:06:28.119
Like what is your team missing? What is your company missing?
1233
01:06:28.920 --> 01:06:31.719
Are you the product expert? Like people come to me
1234
01:06:31.760 --> 01:06:34.400
all the time because I know a lot about our
1235
01:06:34.519 --> 01:06:38.320
data set, right, I understand a lot about how our
1236
01:06:38.639 --> 01:06:41.159
I'm the only one that understands our graph QL setup.
1237
01:06:41.280 --> 01:06:46.760
So there is that, you know, like, there's you know,
1238
01:06:46.840 --> 01:06:49.159
you just need to find that place where you can
1239
01:06:49.239 --> 01:06:55.800
be the person that has to stay. So on that note,
1240
01:06:56.719 --> 01:06:59.199
thank you again for joining us. If people want to
1241
01:06:59.239 --> 01:07:01.320
reach out to you, what's the best platform to.
1242
01:07:01.280 --> 01:07:06.719
Do that, hmm, well that could be LinkedIn, that could
1243
01:07:06.719 --> 01:07:09.280
be X, or that could be just email. You can
1244
01:07:09.320 --> 01:07:12.159
find me on email like at gmail dot com.
1245
01:07:12.280 --> 01:07:15.760
Nice, excellent. Again, thank you for your time to the listener.
1246
01:07:15.800 --> 01:07:19.400
Thank you for your time and we will catch you
1247
01:07:19.480 --> 01:07:20.079
next time.