WEBVTT

1
00:00:04.919 --> 00:00:09.640
Okay, Hey, what's going on? Everybody got another episode of Adventures in

2
00:00:10.000 --> 00:00:12.800
DevOps. I'm back this week.
Hey, Warren, how's it going.

3
00:00:14.199 --> 00:00:16.600
It's great. You know, I
didn't know if you were going to show

4
00:00:16.640 --> 00:00:19.879
up, so I was thinking about
we'd be having to do a second episode

5
00:00:20.079 --> 00:00:24.199
just by myself. I mean,
I think last week went right. You

6
00:00:24.239 --> 00:00:27.120
know, I was on an island
in the South Pacific, so it went

7
00:00:27.160 --> 00:00:32.759
great for me as well. I
have zero complaints. I'm jealous. I'm

8
00:00:32.759 --> 00:00:37.719
gonna have to head over there myself, so I've got my Factor of the

9
00:00:37.719 --> 00:00:44.520
week. I was over in Warsaw
doing a cybersecurity short conference meetup, and

10
00:00:45.240 --> 00:00:50.679
I got questions whether or not using
SaaS is secure. And I feel like

11
00:00:50.719 --> 00:00:55.600
it's an interesting proposition people bring up
as a challenge whether or not what you're

12
00:00:55.600 --> 00:01:00.280
building internally versus externally is more or
less secure than that. And I find

13
00:01:00.320 --> 00:01:04.760
it really interesting that still lots of
companies believe that somehow the engineers that you've

14
00:01:04.840 --> 00:01:08.239
hired are better than the ones that
another company is hired. Now, for

15
00:01:08.239 --> 00:01:11.879
sure, it can be true sometimes, but I still feel like there's an

16
00:01:11.879 --> 00:01:15.200
overwhelming majority that keeps questioning this,
which is really a surprise for me.

17
00:01:17.840 --> 00:01:25.680
Yeah, So what you're saying there
is that people are reinventing the wheel still

18
00:01:25.760 --> 00:01:29.280
because they don't trust sas. Is
that the Yeah, for sure. I

19
00:01:29.319 --> 00:01:32.319
mean it's a whole nother level on
top of not invented here, right,

20
00:01:32.400 --> 00:01:34.319
it's a oh yeah, that's not
secure. And I feel like it's just

21
00:01:34.400 --> 00:01:40.000
this abyss that you can fall into
of believing that because we're doing it ourselves,

22
00:01:40.079 --> 00:01:44.000
we're going to somehow do it better, it's going to be more secure

23
00:01:44.159 --> 00:01:47.959
than another solution. I'm just like, you know, show me where your

24
00:01:47.959 --> 00:01:52.480
interview process is that proves that the
engineering team is definitely better, because there's

25
00:01:52.519 --> 00:01:57.079
lots of good companies out there that
are have great interviewing processes, have great

26
00:01:57.120 --> 00:02:00.640
cultures that are for sure building secure
solutions. Yeah for sure. Yeah,

27
00:02:00.680 --> 00:02:07.400
I'm leveraging that right. Well,
may I may I interrupt? May I

28
00:02:07.599 --> 00:02:13.400
absolutely an opinion? Yeah, bring
it on, go for it. I

29
00:02:13.479 --> 00:02:15.360
think I understand where people might be
coming from it. I don't think it's

30
00:02:15.400 --> 00:02:20.439
because they think that they're better engineers. I'm sure some of them do,

31
00:02:22.520 --> 00:02:34.000
but I think that there's some legitimate
engineering consideration around isolation, right, Like

32
00:02:34.080 --> 00:02:36.360
I think like as an engineer,
you would say, Okay, well,

33
00:02:36.400 --> 00:02:42.240
if it's like inside my ABS account
and I control the boundaries of this account,

34
00:02:42.280 --> 00:02:46.680
the VPC, the im rolls as
account as an example, is like

35
00:02:46.719 --> 00:02:52.560
an isolation boundary, and I think
like there is something to say about going

36
00:02:52.599 --> 00:02:58.520
outside of that boundary into another you
know, and then into another system.

37
00:02:58.599 --> 00:03:02.400
And so I think that maybe some
of that sentiment comes from from that isolation

38
00:03:02.520 --> 00:03:07.479
boundary, not necessarily from like I
didn't build it, so I don't trust

39
00:03:07.479 --> 00:03:14.199
it. I don't know. Yeah, I feel like we should introduce our

40
00:03:14.280 --> 00:03:21.599
guest for today, right. That
new voice that you just heard is our

41
00:03:21.680 --> 00:03:29.360
guest, Eli Ben Israel, former
ABS, former Microsoft, the CEO and

42
00:03:29.439 --> 00:03:34.680
co founder of Wing. And this
is a cool fact you created the AWS

43
00:03:34.800 --> 00:03:39.080
CDK, Is that right? Yeah? Yeah, you just hold that.

44
00:03:39.400 --> 00:03:45.759
Yeah, Yeah, of course I
did. Mean and an amazing team that

45
00:03:46.240 --> 00:03:53.039
Amazon and WUS and but yeah,
it's it's really really really proud of this

46
00:03:53.120 --> 00:04:01.159
project. That definitely been really sure
the journey. Yeah, just looking at

47
00:04:01.199 --> 00:04:05.080
your background here, it seems like
it's been a fun journey, which I've

48
00:04:05.080 --> 00:04:08.479
always you know, I feel the
same about my career, and I just

49
00:04:08.520 --> 00:04:14.560
think how amazing that is that I
could spend three decades doing something and go

50
00:04:15.120 --> 00:04:18.720
that was pretty cool, man,
and continuing to be passionate about it and

51
00:04:18.759 --> 00:04:24.560
like excited about it. I feel
like, actually, I think Microsoft was

52
00:04:24.560 --> 00:04:32.399
the first time in my career where
I stumbled into old geezers who are still

53
00:04:32.720 --> 00:04:38.879
doing software for a living and still
writing code and still have this like childish

54
00:04:39.120 --> 00:04:46.720
enthusiasm after you know, forty years
of programming and got really inspired by that.

55
00:04:46.800 --> 00:04:49.240
I feel like that was like,
as a young engineer, it was

56
00:04:49.279 --> 00:04:55.680
like, yeah, I can I
can see myself doing this for a few

57
00:04:55.720 --> 00:05:00.439
more decades. Oh for sure,
I agree, And I think that's super

58
00:05:00.439 --> 00:05:04.279
cool because a lot of people can't
say that, And I know for sure

59
00:05:04.279 --> 00:05:09.879
if I were in a different career, I may not be as excited about

60
00:05:09.879 --> 00:05:12.480
it. So I think it's really
really cool that we can do that.

61
00:05:13.199 --> 00:05:15.439
Well, now, I'm worried that
the first job you get out of university

62
00:05:15.519 --> 00:05:19.079
or you know, get into the
professional environment, whoever is around you is

63
00:05:19.120 --> 00:05:24.480
going to dictate how were you inspiration
and how you think about work goes on

64
00:05:24.560 --> 00:05:28.079
for the rest of your professional life, and that that scares me a bit

65
00:05:28.160 --> 00:05:31.959
because I feel like there were way
too many jaded engineers at the early on

66
00:05:32.040 --> 00:05:38.439
places where I worked. I don't
think it would it would dictate it.

67
00:05:38.480 --> 00:05:42.959
I think, like like anything in
life, you you find your role models

68
00:05:44.399 --> 00:05:48.600
during your journey, and you identify
them when they they're the right road models,

69
00:05:48.680 --> 00:05:51.720
right like, not necessarily with the
first one, the first ones that

70
00:05:51.759 --> 00:05:58.240
you encounter. Yeah. I can
say from my perspective that a lot of

71
00:05:58.279 --> 00:06:01.959
the the mentors in role models that
I had over my career, it wasn't

72
00:06:02.040 --> 00:06:08.279
until years and sometime decades later that
I realized that they were mentors and role

73
00:06:08.319 --> 00:06:11.879
models. Yeah. I mean,
I don't think it's well defined, and

74
00:06:11.920 --> 00:06:15.360
I also think that there the corollary
problem here is you're not really talked to

75
00:06:15.560 --> 00:06:18.920
or taught about how to find a
role model or why you might want to

76
00:06:18.959 --> 00:06:21.279
find one, or what that even
looks like and how it can help you.

77
00:06:21.360 --> 00:06:25.720
I feel like at one point in
your career people start popping on and

78
00:06:25.759 --> 00:06:28.360
be like, oh, I it
would probably be good if I had one

79
00:06:28.399 --> 00:06:32.519
of these. Maybe how do I
get one? Where's the app? Where's

80
00:06:32.600 --> 00:06:38.480
the app? Right? You joke? But I'm sure there was one out

81
00:06:38.480 --> 00:06:42.199
there now, like find your tech
mentor, right and go on there?

82
00:06:43.560 --> 00:06:46.680
Actually both I think both Microsoft and
Amazon has like had like internal systems for

83
00:06:47.600 --> 00:06:53.800
matching you with the mentor. So
it's not so makes sense right, the

84
00:06:53.800 --> 00:07:00.839
AI has automatically selected your mentor.
Please click continue Why it has Scarlette Johansson's

85
00:07:01.319 --> 00:07:14.920
It has Scarlett Johanson's voice. Cool. So aside from mentoring and sas and

86
00:07:15.560 --> 00:07:19.600
careers, what is wing? I'm
curious about that because I kind of have

87
00:07:19.600 --> 00:07:21.399
a little bit of an idea,
but I want to hear it straight out

88
00:07:21.439 --> 00:07:26.839
of your mouth. Tell us what
wing is. Yeah, we're also like

89
00:07:27.279 --> 00:07:30.959
learning how to talk about it,
like as the project evolved, so it's

90
00:07:31.000 --> 00:07:35.600
probably you probably have a different It
would be interesting to hear what you you

91
00:07:35.639 --> 00:07:43.800
know, I think that the way
the way I'm thinking about it is so

92
00:07:43.920 --> 00:07:47.720
Yeah, spend some time at AWS, built the CDK, built some internal

93
00:07:47.759 --> 00:07:59.560
distributed systems at Amazon, and been
constantly obsessed about developer experience and developer productivity

94
00:07:59.720 --> 00:08:03.839
and iteration speed because to me as
a developer, that's like the most most

95
00:08:03.839 --> 00:08:11.959
important piece of like my my experience
is my ability to iterate. And after

96
00:08:11.040 --> 00:08:15.959
leaving Amazon, I was like,
okay, so it still feels crappy to

97
00:08:15.959 --> 00:08:18.879
build stuff on the cloud. For
some reason, I mean, I love

98
00:08:18.920 --> 00:08:22.920
the CDK and I think like it's
it took us many steps forward, but

99
00:08:22.000 --> 00:08:26.199
something didn't feel like we've really solved
the problem. It's kind of I was

100
00:08:26.240 --> 00:08:30.959
thinking, well, the cloud is
going to be here for fore you know,

101
00:08:31.040 --> 00:08:33.639
for the foreseeable future. We're going
to continue to build stuff on this

102
00:08:33.679 --> 00:08:39.960
new kind of platform. But something
is still a bit broken, and it

103
00:08:39.000 --> 00:08:46.200
took me some time to untangle,
like what are the what are the big

104
00:08:46.279 --> 00:08:52.159
pains or where the kind of the
root causes of the of those of those

105
00:08:52.360 --> 00:08:56.919
of this friction that we feel.
I think like everybody I talked to kind

106
00:08:56.919 --> 00:09:01.639
of resonates with that friction. But
no, I think like people perceive that

107
00:09:01.679 --> 00:09:07.320
it's coming from different uh, you
know, from different reasons and and the

108
00:09:07.360 --> 00:09:11.600
way I am thinking about it,
my perception of this is that there are

109
00:09:11.600 --> 00:09:18.679
two main problems. One is the
fact that the developers, you know,

110
00:09:18.720 --> 00:09:24.799
when you're when you're looking at a
system like the cloud, there are two

111
00:09:24.399 --> 00:09:30.399
engineering disciplines that are required in order
to deliver something to the cloud. One

112
00:09:30.639 --> 00:09:35.120
is the infrastructure discipline or the DevOps
discipline or the it ops or the system

113
00:09:35.200 --> 00:09:41.200
administration, and the other is the
application developers. And as much as we

114
00:09:41.279 --> 00:09:46.639
would love a world where all applications
developers would also be passionate about I P

115
00:09:48.360 --> 00:09:52.480
routing tables. And I think some
of us are. I think some of

116
00:09:52.559 --> 00:09:56.519
us are, which is tantalizing somethings, because you know, I'm I'm one

117
00:09:56.559 --> 00:10:00.519
of those. And so for me, like having like a full understand of

118
00:10:00.600 --> 00:10:05.960
the stack is it's fun and I
enjoy it. And I learned enjoyed learning

119
00:10:05.000 --> 00:10:11.639
how to configure vpcs and how to
set up EC two instances. And but

120
00:10:11.919 --> 00:10:16.519
most application developers are focused and passionate
about the problem domain that they're you know,

121
00:10:16.600 --> 00:10:22.080
solving for, which is usually the
business problem domain or the customers of

122
00:10:22.120 --> 00:10:28.360
their business. And these are two
different engineering domains in terms of like the

123
00:10:28.440 --> 00:10:33.639
problem space. And I think what
I've seen with the CDK, and I

124
00:10:33.639 --> 00:10:37.759
think a little bit of the blind
spot we had with the CDK, especially

125
00:10:37.759 --> 00:10:45.039
given Amazon's and Aws's engineering culture,
which is very much on the kind of

126
00:10:45.120 --> 00:10:52.159
like full stack devop see you know, everybody, the side of the spectrum

127
00:10:52.639 --> 00:11:00.399
is that developers don't really want and
are really struggling to understand all the mechanics

128
00:11:00.559 --> 00:11:05.720
of the of the cloud and and
in reality, when you look at organizations

129
00:11:05.879 --> 00:11:09.399
they don't really want their developers to
fully understand all the mechanics and the cloud.

130
00:11:11.000 --> 00:11:15.159
And so one of the problems that
I've seen is that developers are not

131
00:11:15.320 --> 00:11:20.919
they don't have access to this new
type of computer they they access in terms

132
00:11:20.960 --> 00:11:28.000
of like cognitive you know, cognitive
barrier, learning barrier, and in some

133
00:11:28.120 --> 00:11:31.840
cases also like they're not allowed to
touch the cloud, right, Like it's

134
00:11:31.879 --> 00:11:35.639
like, this is the develop scene, this is the platform stuff. You

135
00:11:35.879 --> 00:11:39.200
just do your container you know.
I kind of I kind of sometimes think

136
00:11:39.200 --> 00:11:45.279
about it, like we've containerized the
developers just put them in side, and

137
00:11:45.600 --> 00:11:48.799
this is the cloud. You don't
worry about it. Just just write your

138
00:11:48.799 --> 00:11:52.639
code and the cloud is you don't
have to care about it. And I

139
00:11:52.639 --> 00:12:00.320
think it's a shame because you know, the beauty of the cloud is infrastructure

140
00:12:00.519 --> 00:12:05.039
is the ability to leverage managed services
to achieve your goals. And the more

141
00:12:05.799 --> 00:12:09.120
but the more you're leaning on that, on that, on that system,

142
00:12:09.159 --> 00:12:15.200
the more you're leaning on these services, uh, the less you give developers

143
00:12:15.200 --> 00:12:18.799
independence, and the less you give
developers the ability to actually like iterate quickly

144
00:12:18.840 --> 00:12:24.240
and choose the right tools and understand
how they're you know, leveraging this new

145
00:12:24.240 --> 00:12:31.120
type of technology. And so to
me that was like the fundamental realization is

146
00:12:31.159 --> 00:12:37.320
that the gout that the cloud is
not is not ready for developers in a

147
00:12:37.399 --> 00:12:41.639
sense. And and I think what
we've seen is that, or what we're

148
00:12:41.679 --> 00:12:48.080
seeing is that organizations are trying to
kind of again they containerize the developers.

149
00:12:48.120 --> 00:12:54.279
They create these like big platforms and
complex workflows. And you know this HELM

150
00:12:54.440 --> 00:12:56.519
chart, So go and change this
one line if you want to add an

151
00:12:56.559 --> 00:13:03.759
API endpoint, but you can't really
test it because we need to deploy it

152
00:13:03.759 --> 00:13:05.279
on the cluster in order for you
to actually see that it's working. But

153
00:13:05.320 --> 00:13:09.320
don't worry, it's going to be
fine. And it's not fine sometimes And

154
00:13:09.399 --> 00:13:13.240
I think you guys know what I'm
about, right, And so basically trying

155
00:13:13.279 --> 00:13:16.679
to solve this problem, right,
Like it's like, how do we give

156
00:13:16.720 --> 00:13:22.759
developers access to this new type of
computer? And it's a huge challenge,

157
00:13:22.799 --> 00:13:28.919
I feel, because I think what
happened is that the cloud is you know,

158
00:13:28.960 --> 00:13:33.799
we've we've raced to the cloud in
a sense and as an industry,

159
00:13:33.919 --> 00:13:39.799
and we've basically carried with us a
lot of the tools and approaches that worked

160
00:13:39.799 --> 00:13:43.720
for us in the data center and
in traditional computing that like the programming languages

161
00:13:43.759 --> 00:13:50.279
and the abstractions and the deployment systems, and and we ended up with like

162
00:13:50.960 --> 00:13:56.320
something that's not optimized for this type
of platform, and so what have you

163
00:13:56.360 --> 00:14:01.320
know. What we've been doing with
WING in the past few years is trying

164
00:14:01.360 --> 00:14:07.960
to distill how to how to address
this pain uh. And I think like

165
00:14:07.039 --> 00:14:13.200
one of the kind of like maybe
a bit of a recent coin drops I

166
00:14:13.279 --> 00:14:20.360
had or the recent kind of uh
observations I had, was that the thing

167
00:14:20.399 --> 00:14:28.120
that we're missing is is an abstraction
layer. Is this decoupling between application and

168
00:14:28.200 --> 00:14:35.679
platform that we have in traditional software
and we've developed in traditional software, Like

169
00:14:35.039 --> 00:14:37.960
I used to write code in the
nineties, and we didn't have that decoupling.

170
00:14:39.039 --> 00:14:41.200
I had to you know, I
know which file system I'm using in

171
00:14:41.279 --> 00:14:45.840
order to write files, and I
had to know how to you know,

172
00:14:46.000 --> 00:14:50.399
store create like TSR programs in order
to do some memory you know background uh,

173
00:14:50.759 --> 00:14:56.519
you know stuff that truns in the
background and like do sometime. And

174
00:14:56.559 --> 00:15:00.360
so again this is I loved I
love this. I've always been a acted

175
00:15:00.399 --> 00:15:03.360
to this, but now today when
you want to do these things, you

176
00:15:03.399 --> 00:15:05.879
really don't have to understand how your
your platform works, right Like, you

177
00:15:05.919 --> 00:15:09.720
really don't have to know which filesystem
you're using in most cases, and which

178
00:15:11.039 --> 00:15:15.759
even which operating system you're using,
right Like, we have established a bunch

179
00:15:15.840 --> 00:15:22.679
of layers that allow developers to be
effective on this platform called a computer,

180
00:15:22.960 --> 00:15:28.799
right computer that runs inside a machine. And and and my realization was that

181
00:15:28.960 --> 00:15:33.879
we need this layering for the cloud
because without this layering, we keep bumping

182
00:15:33.919 --> 00:15:39.080
into each other, right Like,
these disciplines keep keep the friction keeps happening.

183
00:15:39.039 --> 00:15:46.279
And what we've been doing with WING
is basically we've established this abstract cloud

184
00:15:46.320 --> 00:15:52.000
API as a foundation for solving this
problem. And I think there's a timing

185
00:15:52.039 --> 00:15:56.919
aspect to this, because the cloud
as a as a you know, as

186
00:15:56.960 --> 00:16:03.120
a as a platform is is maturing
over time. And we've and I believe

187
00:16:03.159 --> 00:16:10.440
we're at the state where we can
identify the primitives and and even identifying them

188
00:16:10.559 --> 00:16:12.120
from the bottom. In a sense, it's not necessarily saying, you know,

189
00:16:12.320 --> 00:16:15.120
I'm going to be able to like
give you all the primitives you ever

190
00:16:15.159 --> 00:16:21.360
need. It's basically saying, let's
give you more primitives. I'll give you.

191
00:16:21.399 --> 00:16:26.000
I'll give you an example, what
I mean about this, you know

192
00:16:26.039 --> 00:16:30.720
what let me So the basically what
I'm trying to say is that it's it's

193
00:16:30.759 --> 00:16:34.919
pretty safe. There are some primitives
that we know that are very valuable.

194
00:16:36.240 --> 00:16:40.240
But for example, a container,
right, being able to execute a container,

195
00:16:40.320 --> 00:16:42.399
run a container, you know,
in a scalable way. And I

196
00:16:42.440 --> 00:16:48.320
think Kubernetes said basically said, yeah, here's here's your primitive. And it's

197
00:16:48.360 --> 00:16:52.480
been very very successful in exactly that, right, Like it's basically saying,

198
00:16:52.480 --> 00:16:56.759
if you need to run containers,
Kubernetes gives you exactly this abstraction that you

199
00:16:56.840 --> 00:17:03.319
need. And it's because super successful
because it was able to identify this one

200
00:17:03.400 --> 00:17:11.720
primitive, uh that that can hold
an application on the cloud. But in

201
00:17:11.720 --> 00:17:15.920
my mind, it's it's very low
level, and it's it still means that

202
00:17:15.960 --> 00:17:18.680
you're not leverage you're not really able
to leverage the cloud, right, Like

203
00:17:18.720 --> 00:17:25.160
you're leveraging VMS maybe, right,
which is super powerful, super valuable.

204
00:17:25.160 --> 00:17:27.880
But again, if you need if
you need storage, for example, then

205
00:17:30.039 --> 00:17:34.000
okay, go manage hard drives and
memory manage and and you know, scale

206
00:17:34.039 --> 00:17:40.839
your volumes and back up and replication
and like, but hey, guys,

207
00:17:40.880 --> 00:17:45.960
there's like a thousand people team at
Amazon that's managing object storage and S three,

208
00:17:45.519 --> 00:17:48.519
maybe we can use this service and
then instead of doing this ourselves,

209
00:17:48.599 --> 00:17:53.960
right, And so even just saying
let's take object storage as another primitive,

210
00:17:55.359 --> 00:17:59.319
it's pretty ubiquitous. It exists in
every cloud, every cloud provider. It

211
00:17:59.440 --> 00:18:03.359
even as a self hosted Kubernetes you
know, solution if you need it.

212
00:18:04.200 --> 00:18:08.920
And let's define the abstraction layer of
this, of this idea called a bucket

213
00:18:10.000 --> 00:18:12.279
or object store. And I think
we know how to do this. I

214
00:18:12.279 --> 00:18:17.079
think, like you know, anybody
can pretty much define, Okay, we

215
00:18:17.119 --> 00:18:21.160
need to be able to put files
and get files and download and download multi

216
00:18:21.160 --> 00:18:26.880
part downloads and uploads and mind types
and this there's a surface area that's pretty

217
00:18:26.920 --> 00:18:33.039
easy to identify and say, even
just adding this one primitive to your toolbox

218
00:18:33.240 --> 00:18:40.960
of abstract cloud primitives can really help. Right. I've talked to many people

219
00:18:41.000 --> 00:18:45.400
and because that especially people who use
Kubernetes that are kind of like, we're

220
00:18:45.440 --> 00:18:51.119
worried about taking too much dependency on
their cloud provider, but they still have

221
00:18:51.160 --> 00:18:56.240
a bucket, right, Like they
still need a bucket, which is anecdotally

222
00:18:56.279 --> 00:19:00.279
it's actually as is first service,
right like atabus is first service. That's

223
00:19:00.279 --> 00:19:04.440
three. So taking step by step
basically saying, okay, let's let's talk

224
00:19:04.440 --> 00:19:10.720
about object store and define this abstract
API and start building our applications on top

225
00:19:10.759 --> 00:19:15.279
of this abstract API, which is
decoupled from the you know, concrete implementation.

226
00:19:15.240 --> 00:19:22.480
Again, super simple exercise, not
super hard to do. And the

227
00:19:22.519 --> 00:19:26.279
other thing that we're doing with Wing
is we're actually doing we're actually audi also

228
00:19:26.680 --> 00:19:33.279
providing a simulator implementation for those for
those resources, because again, if I

229
00:19:33.359 --> 00:19:37.160
define the contract for a bucket,
pull, get lists, whatever, it's

230
00:19:37.160 --> 00:19:41.000
pretty easy to implement it locally.
It's obviously not highly available and replicate it

231
00:19:41.039 --> 00:19:45.799
and all that stuff, but like
from a functional perspective, I can actually

232
00:19:45.839 --> 00:19:49.559
test my application now and I can
iterate. And so this is basically the

233
00:19:49.599 --> 00:19:53.559
exercise that we've started doing. It's
like, okay, let's take buckets and

234
00:19:53.640 --> 00:20:04.200
queues and topics and static websites and
and secrets and basically slowly kind of like

235
00:20:04.480 --> 00:20:10.440
adding more tools to the arsenal of
tools that you that are the foundation.

236
00:20:10.599 --> 00:20:17.240
They are the standard library in a
sense of the cloud. And let me

237
00:20:17.319 --> 00:20:22.559
let me pause you right there.
So so if I'm following you correctly,

238
00:20:22.680 --> 00:20:30.559
you're thinking about application development in terms
of just the primitives as far as like

239
00:20:30.599 --> 00:20:34.240
Okay, I need compute, I
need file storage, I need database,

240
00:20:34.480 --> 00:20:41.079
and so instead of forcing the application
developers to think about the individual characteristics of

241
00:20:41.119 --> 00:20:48.319
those because of the chosen provider,
just abstracting that away to say, look,

242
00:20:49.000 --> 00:20:53.640
you need file storage, Okay,
here's here's the interface for putting files.

243
00:20:53.680 --> 00:20:59.559
Here's the interface for getting files.
How that happens because you're using ABS

244
00:20:59.720 --> 00:21:06.240
or g CP or NetApp or whatever
doesn't matter, right, am I following?

245
00:21:06.240 --> 00:21:10.559
You're right? Yeah, yeah,
exactly right. And I think like

246
00:21:10.759 --> 00:21:14.200
the heavy lifting that we're doing on
our side is testing, right. It's

247
00:21:14.240 --> 00:21:17.599
basically saying, oh, here's an
implantation for a WS, here's an inflation

248
00:21:17.960 --> 00:21:22.279
implantation, or azure, here's an
implementation for the simulator. It's heavy lifting

249
00:21:22.319 --> 00:21:27.279
because I can't expect every platform team
across the industry to actually do all this

250
00:21:27.400 --> 00:21:32.319
heavy lifting across you know, multiple
resources, across all the different types of

251
00:21:32.359 --> 00:21:36.359
cloud providers. And obviously we're doing
this with the community. It's like an

252
00:21:36.400 --> 00:21:41.759
open source project, and so we
start to see people fill up, you

253
00:21:41.759 --> 00:21:48.039
know, fill up little little boxes
in this matrix of compatibility and the thing

254
00:21:48.079 --> 00:21:52.799
that this does in terms of solving
the original problem. There are two things.

255
00:21:52.839 --> 00:22:00.920
Basically, one is a higher level
API which is in it, which

256
00:22:00.960 --> 00:22:06.119
is based on the mental model of
the application and not on the mental model

257
00:22:06.119 --> 00:22:10.839
of the infrastructure. And because when
the developer uses a bucket, they they

258
00:22:10.960 --> 00:22:17.519
understand the the semantics of this the
function, the functional semantics of this of

259
00:22:17.559 --> 00:22:21.119
this resource even today right like when
they're using S three, they understand,

260
00:22:21.119 --> 00:22:26.759
okay, so I'm putting objects on
this service. And there's some constraints related

261
00:22:26.759 --> 00:22:30.319
to the fact that it's a distributed
system. Like all those things are easy

262
00:22:30.359 --> 00:22:33.680
for developers to understand, they're not
that that's not the hard part. The

263
00:22:33.799 --> 00:22:40.400
non functional aspects of the of the
of the of the bucket. Uh wing

264
00:22:40.519 --> 00:22:45.319
actually has this like pluggable customizable back
end model, and so we provide some

265
00:22:45.400 --> 00:22:51.799
default implementation, but then platform teams
can actually like customize that default implementation and

266
00:22:51.839 --> 00:22:56.960
provide their own implementation or you know, a customized implementation of our of our

267
00:22:57.039 --> 00:23:03.079
bucket. And so for example,
we have this customer who it's actually a

268
00:23:03.079 --> 00:23:07.839
really cool example, like we have
this uh resource called API, which is

269
00:23:08.079 --> 00:23:15.519
sorry, which is basically so we
have this resource called API which is basically

270
00:23:15.559 --> 00:23:18.400
an API gateway, so you can
specify routes and then you can specify the

271
00:23:18.440 --> 00:23:22.920
handlers, you know, how how
how the each route, how you respond

272
00:23:22.960 --> 00:23:26.440
to each route. And our default
implementation at the time for the time being

273
00:23:26.559 --> 00:23:33.480
is using infre w S, is
using API gateway and lambda functions because it's

274
00:23:33.519 --> 00:23:37.960
the it's the simplest implementation to get
started with. And we have a customer

275
00:23:38.240 --> 00:23:41.640
who basically said, well, we
were not allowed to use API gateway because

276
00:23:42.039 --> 00:23:47.960
you know, some compliance security,
you know, some financial institute, and

277
00:23:47.960 --> 00:23:53.480
and they created an implementation of this
API resource that uses load balancer and a

278
00:23:53.559 --> 00:24:00.440
monolithic container right behind the scenes,
and you didn't have to change to anything

279
00:24:00.480 --> 00:24:03.400
about the programming model. Like from
the developers perspective, they just specify the

280
00:24:03.480 --> 00:24:07.839
bunch of routes and a bunch of
handlers, and and the way that these

281
00:24:07.839 --> 00:24:14.119
guys are going to be deployed in
that with this particular cloud environment is using

282
00:24:14.599 --> 00:24:18.279
you know, a load balancer and
a long runnings container. Great, and

283
00:24:18.319 --> 00:24:22.680
so I think this de coupling offers
both the application the developers the ability to

284
00:24:22.720 --> 00:24:27.759
actually understand what they're doing, right, Like it's not just like change this

285
00:24:27.880 --> 00:24:33.599
one line here this terre form and
yeah, it's it's HCl, it's this

286
00:24:33.759 --> 00:24:37.880
thing. Don't worry about it,
it's it's now. Like talking in their

287
00:24:37.000 --> 00:24:42.319
language also gives the platform teams and
develops teams the ability to focus on their

288
00:24:42.880 --> 00:24:48.720
responsibility, because it's not like we're
saying there's no need for develops or there's

289
00:24:48.759 --> 00:24:52.160
no need for you know, people
who are experts in on the on the

290
00:24:52.160 --> 00:24:56.839
problem domain of the infrastructure and the
problem domain of the the of the system.

291
00:24:57.000 --> 00:25:03.559
It's always been needed, right for
software. So that's why sure.

292
00:25:03.119 --> 00:25:07.480
And then the second side is like
the simulation, which I think is really

293
00:25:07.279 --> 00:25:12.400
shifting the developer experience to to the
left in the sense it's like the cloud

294
00:25:12.480 --> 00:25:15.480
is not that you don't need the
cloud in the loop when you're iterating,

295
00:25:15.519 --> 00:25:21.480
which is and probably don't want it
there even if it is in the loop.

296
00:25:22.039 --> 00:25:26.079
Yeah, I mean, I think
developers are really spoiled and legitimately so

297
00:25:26.319 --> 00:25:29.519
right, Like they want to work
on their ID, they want their debugger.

298
00:25:30.519 --> 00:25:33.920
This is their you know, this
is their craft, right Like their

299
00:25:33.960 --> 00:25:37.599
craft is like to change some code
and check that it's working, and change

300
00:25:37.640 --> 00:25:38.920
it again, and check again and
change again, and then then write a

301
00:25:38.920 --> 00:25:42.240
little unit test, and like you
want to be able to do these iterations

302
00:25:42.279 --> 00:25:45.839
really really quickly, and even if
it takes like thirty seconds or a minute,

303
00:25:47.400 --> 00:25:52.720
it's too long, at least in
my my standards. You said,

304
00:25:52.759 --> 00:25:55.519
you said a bunch of really interesting
things there, and I feel like there's

305
00:25:55.599 --> 00:25:59.079
a there's three that really come to
mind, and the first one is there's

306
00:25:59.119 --> 00:26:02.920
an aspect of the container world,
which I think you know started with Docker

307
00:26:03.119 --> 00:26:06.960
than Kubernetes, that has really failed
us. It just the interface that you

308
00:26:07.000 --> 00:26:11.000
have to understand in order to deploy
your technology in one of these environments requires

309
00:26:11.240 --> 00:26:12.839
I mean, it's better than it
was. It took the interface that we

310
00:26:12.920 --> 00:26:15.920
had, which was the operating system, and sort of adjusted it by like

311
00:26:15.960 --> 00:26:19.160
say, ninety degree angle. It's
still the same, it's still the same

312
00:26:19.160 --> 00:26:22.799
thing in a lot of ways,
but maybe there is more consistency in what

313
00:26:22.880 --> 00:26:26.839
we're getting. And I feel like
that's that's in a way something that we

314
00:26:27.000 --> 00:26:32.079
lost. We had the DevOps movement. Everything's supposed to be under one roof,

315
00:26:32.079 --> 00:26:34.880
everything's supposed to be understood together,
and if anything, we didn't achieve

316
00:26:34.920 --> 00:26:38.079
that. We didn't get in that
direction with the tools. We just you

317
00:26:38.079 --> 00:26:41.119
know said, oh yeah, you
know, we have the mindset, and

318
00:26:41.160 --> 00:26:44.079
I feel like this is an opportunity. You start talking about primitives here that

319
00:26:44.160 --> 00:26:47.839
we actually need, and I feel
like that's where AWS was really successful compared

320
00:26:47.839 --> 00:26:51.200
to the other cloud providers. You
start out with S three. A huge

321
00:26:51.200 --> 00:26:53.880
release was Lambda successfully in an API
gateway. I mean, these to me

322
00:26:53.960 --> 00:26:57.319
are the primitives that you're even talking
about, and they that's where the success

323
00:26:57.319 --> 00:27:00.960
came from. Everything else is like, you know, what is that even?

324
00:27:00.680 --> 00:27:04.240
And if we take it another step
further, we can see companies like

325
00:27:04.279 --> 00:27:10.599
render or Netlify versl that are trying
to create an abstraction layer on top of

326
00:27:10.640 --> 00:27:11.880
the cloud to make it simpler.
But I feel like it's you know,

327
00:27:11.920 --> 00:27:15.319
almost what we're saying is it's two
opinion based, right. You're losing the

328
00:27:15.400 --> 00:27:21.400
aspect of how to deliver value from
the underlying resources that are there, blockstore,

329
00:27:21.400 --> 00:27:25.440
et cetera. By offering a two
opinion needed answer, like if you

330
00:27:25.480 --> 00:27:27.680
need to dive down, you can't
get that. So both early on we

331
00:27:27.960 --> 00:27:33.200
didn't succeed because we didn't figure out
what the primitives were, and we also

332
00:27:33.240 --> 00:27:37.400
have two over opinionated platforms. It'd
be great if we could redefine what that

333
00:27:37.599 --> 00:27:41.160
real interfaces at the platform level,
at the cloud provider level, so that

334
00:27:41.599 --> 00:27:44.519
what you need at the application makes
sense. I mean, even Lambda,

335
00:27:44.839 --> 00:27:48.480
you have to know that you're using
Lambda in aws in order to deploy your

336
00:27:48.559 --> 00:27:52.039
software. Right, you can't just
be like I don't want to think about

337
00:27:52.039 --> 00:27:56.079
this in go to town. Early
alternative as containers today. Yeah, absolutely

338
00:27:56.160 --> 00:28:02.279
agree. I think I think the
vertical the vertical platforms like Heroku, you

339
00:28:02.319 --> 00:28:07.240
know, ver Cell render uh,
you know, they're able to create a

340
00:28:07.279 --> 00:28:11.799
really great developer experience by completely narrowing
down the surface area and saying, Okay,

341
00:28:11.799 --> 00:28:15.559
we're just going to give you the
ability to you know, deploy websites

342
00:28:15.640 --> 00:28:18.839
or to deploy containerized the applications.
And in that sense, it's it's great,

343
00:28:18.960 --> 00:28:23.000
it's solving it's solving the problem right
in that sense because for those use

344
00:28:23.039 --> 00:28:27.400
case you really get an amazing experience. Well, what we're trying to do

345
00:28:27.480 --> 00:28:30.599
with Wing is we're trying to actually
create like a general purpose solution, not

346
00:28:30.680 --> 00:28:37.279
necessarily a vertically integrated solution, but
more of like like any any you know,

347
00:28:37.319 --> 00:28:41.559
programming environment where you're able to actually
pick and choose which tools you want

348
00:28:41.559 --> 00:28:48.160
to use for your solution, and
we are actually working on a delivery experience

349
00:28:48.599 --> 00:28:55.240
there will be very similar to what
Render offers and verseell offers, but works

350
00:28:55.279 --> 00:28:59.839
on top of this foundation, so
it's not limited to you know, just

351
00:29:00.119 --> 00:29:08.720
delivering websites or containers. It almost
makes me think of like an infrastructure approach

352
00:29:08.880 --> 00:29:14.079
implemented with Go interfaces, you know, because if you have a Go interface,

353
00:29:14.519 --> 00:29:21.440
you can swap out anything that matches
those same interface, the same interface

354
00:29:21.440 --> 00:29:26.319
specification, so underneath, you know, if you're if you're logging provider matches

355
00:29:26.319 --> 00:29:29.440
the interface and you want to swap
that out, you can just swap it

356
00:29:29.680 --> 00:29:33.200
and there's no there's no impact that
no one knows the difference except for the

357
00:29:33.200 --> 00:29:40.839
people who are required to maintain that, and you're it sounds like you're taking

358
00:29:40.880 --> 00:29:44.799
that to an infrastructure approach. You
know, if you need a storage bucket,

359
00:29:45.200 --> 00:29:48.440
here's the interface for it, and
who the actual provider that is doesn't

360
00:29:48.440 --> 00:29:52.720
matter. You can swap it out
daily if that's what makes you happy.

361
00:29:53.480 --> 00:29:57.839
As long as it matches the interface, you're good to get the buckets.

362
00:29:57.880 --> 00:30:02.400
You have to also move all the
across Oh you're not, You're not going

363
00:30:02.440 --> 00:30:07.000
to handle that part automatic, and
that's that's the support teams problem. That

364
00:30:07.119 --> 00:30:11.880
line, I think that's a very
apt uh, you know, very aware

365
00:30:12.000 --> 00:30:15.839
of the problem. I mean,
just for those that haven't used GO versus

366
00:30:15.920 --> 00:30:19.640
other compiled languages, you normally you
have to define the inner the interface.

367
00:30:19.720 --> 00:30:23.279
Is that a class implements you know, not just here are the methods,

368
00:30:23.279 --> 00:30:26.880
but explicitly that it implements an interface, and then go. You actually don't

369
00:30:26.920 --> 00:30:32.440
have to define the interface in order
to pass an object around and injecting as

370
00:30:32.480 --> 00:30:34.920
long as all the properties of that
class actually match. So, I mean,

371
00:30:36.000 --> 00:30:41.480
I think that's that's spot on realistically
here. Yeah, there are many

372
00:30:41.599 --> 00:30:48.839
versions of this, I think in
software design and dependency injection is like something

373
00:30:48.880 --> 00:30:55.599
that exists in almost every programming environment
and and and it's at the heart of

374
00:30:55.640 --> 00:30:59.279
what we're doing, right, Like
you're able to basically inject the dependency and

375
00:30:59.319 --> 00:31:02.119
say, okay, in the case
I want to use, uh, my

376
00:31:02.240 --> 00:31:07.720
bucket instead of of the standard bucket. Yeah, I agree. I think

377
00:31:07.960 --> 00:31:10.920
I think we know how to do
this as a as a you know,

378
00:31:11.759 --> 00:31:15.920
you know, as an industry.
It's not we're not inventing the wheel in

379
00:31:15.920 --> 00:31:22.680
the sense of like new, completely
new uh design paradigms. But but I

380
00:31:22.720 --> 00:31:30.599
think like there's a I think like
I think you know there is you know

381
00:31:30.880 --> 00:31:37.519
there is a there's there. They're
going and doing it right, like going

382
00:31:37.519 --> 00:31:41.000
and going and saying this is the
API that we think is the right a

383
00:31:41.119 --> 00:31:47.599
PI. That's a really big challenge
because designing good a PI is is is

384
00:31:47.640 --> 00:31:51.319
an art and science problem of thing
right, like and and and this is

385
00:31:51.400 --> 00:31:55.319
one of the reasons we're doing this
as an open source project because we believe

386
00:31:55.400 --> 00:32:00.200
that this is something that needs to
be baked with the community, baked with

387
00:32:00.480 --> 00:32:06.319
use cases, baked with the real
world. We don't have the oracle and

388
00:32:06.920 --> 00:32:08.880
knowledge of like exactly how to do
this, and so I think like doing

389
00:32:08.880 --> 00:32:14.960
this in the open and collaboratively is
the right way to do something like that

390
00:32:15.039 --> 00:32:19.720
for sure. And you've been working
on us for a couple of years now,

391
00:32:19.799 --> 00:32:25.000
is that right? Yeah? Cool? How has how's the community support

392
00:32:25.279 --> 00:32:29.359
been from that? Because like with
with open source projects, you know,

393
00:32:29.440 --> 00:32:36.000
that's I think that's the challenge is
like getting people to make it a two

394
00:32:36.079 --> 00:32:40.359
way conversation. How has that experience
been for you? It's been amazing,

395
00:32:40.480 --> 00:32:45.079
to be honest, I feel like
I feel I learned a lot from my

396
00:32:45.160 --> 00:32:51.559
experience, you know, building the
CDK and kind of like being not in

397
00:32:51.559 --> 00:32:55.119
a way a bit not very intentional
about the community that's built around the CDK,

398
00:32:55.240 --> 00:33:01.559
but observing the organic kind of evolution
of it, and then coming into

399
00:33:01.799 --> 00:33:07.200
Wing was like, Okay, I
kind of know what are the important things

400
00:33:07.240 --> 00:33:13.119
about creating a community like that,
And we've really made a lot of effort

401
00:33:13.200 --> 00:33:16.079
to kind of put that in place
very early in the project, and it

402
00:33:16.119 --> 00:33:21.599
really pays off, right like the
fact that I feel like I feel Wing

403
00:33:21.720 --> 00:33:24.759
is a really really great project to
contribute to, and I'm not saying that,

404
00:33:25.240 --> 00:33:29.440
I really do think it's just a
good experience as a contributor, right,

405
00:33:29.519 --> 00:33:34.559
Like, you have a really good, really reasonable documentation, definitely always

406
00:33:34.559 --> 00:33:39.319
have, always can improve the documentation
with reasonable documentation, the build environment and

407
00:33:39.359 --> 00:33:45.559
the development environment is is is pretty
easy to use, and it's a pretty

408
00:33:45.599 --> 00:33:49.839
complex project. So you know,
being able to actually like get that right

409
00:33:49.839 --> 00:33:54.759
as took us quite a lot of
iterations. We're trying to be very responsive.

410
00:33:54.839 --> 00:34:00.000
The community is very welcoming and very
helpful, and we public goods first

411
00:34:00.039 --> 00:34:05.359
issues and there's a bunch of things
that you can do that even things like

412
00:34:05.480 --> 00:34:13.480
I'll just give you an acdotal example. Uh, there's this to two really

413
00:34:13.679 --> 00:34:17.000
simple things that that you can do
to really improve the experience of contributors.

414
00:34:17.519 --> 00:34:22.199
One is, whenever someone submits a
pull request, send them a note,

415
00:34:22.559 --> 00:34:27.840
you know, send them a comment, acknowledge that there's someone on the other

416
00:34:27.880 --> 00:34:30.760
side. That's like it's a it's
a dopamine rush, right, Like it's

417
00:34:30.760 --> 00:34:35.599
like, oh, sure, someone
that saw me right, saw that I'm

418
00:34:36.000 --> 00:34:39.199
that I'm here. And then the
other one is that once the feature that

419
00:34:39.280 --> 00:34:45.360
they or the fix that they contributed
was released, add a comment to the

420
00:34:45.360 --> 00:34:50.519
pool request that says this was released
in the version of V and and just

421
00:34:50.559 --> 00:34:58.119
getting that like closing the cycle and
giving people the acknowledgment that what they've contributed

422
00:34:58.239 --> 00:35:05.280
is now a public release and everybody
can use it is really gratifying for contributors.

423
00:35:05.280 --> 00:35:07.519
I can say that as you know, from from firsthand experience, right

424
00:35:07.519 --> 00:35:12.679
like for me when I'm contributing.
And so these two things can be pretty

425
00:35:12.760 --> 00:35:16.519
much automated, right Like you really
don't have to be super It doesn't require

426
00:35:16.519 --> 00:35:20.960
a lot of efforts, but it
does require intention to to put them in

427
00:35:20.960 --> 00:35:22.840
place. And once you put them
in place like even for me when I'm

428
00:35:23.320 --> 00:35:28.159
I'm submitting pr to our repo and
I get this little note that says it

429
00:35:28.239 --> 00:35:32.599
was released and version of x y
Z, it just feels good for sure.

430
00:35:32.639 --> 00:35:39.480
That's that's something that I think is
worth acknowledging and mentioning, you know,

431
00:35:39.519 --> 00:35:46.000
because that's the people side of writing
goods software and it's something that we

432
00:35:46.000 --> 00:35:52.719
we can easily get defocused from.
You know that there are people at the

433
00:35:52.760 --> 00:35:54.679
other end of this, and so
I think that's super cool to just acknowledge

434
00:35:54.719 --> 00:36:00.320
them. And you're right, it's
a it's a dopamine hit. Yeah,

435
00:36:00.000 --> 00:36:02.760
I mean you you can look at
it. Actually two from it just a

436
00:36:02.800 --> 00:36:08.000
statistical value driven standpoint, Your software
isn't delivering value or the changes that you

437
00:36:08.079 --> 00:36:13.079
make until someone's using it. And
if they don't know that the changes that

438
00:36:13.159 --> 00:36:15.480
you're deployed you've worked so hard to
get out, you know, aren't there

439
00:36:15.599 --> 00:36:19.639
or you know what they've done.
There are so many open source projects that

440
00:36:20.119 --> 00:36:22.400
you don't know when it's going to
be released after you put in a polear

441
00:36:22.480 --> 00:36:25.880
quest. I mean my strategy now
is first I start with the issue.

442
00:36:25.960 --> 00:36:29.840
I'd be like, this is a
problem. Is someone like if I submit

443
00:36:29.880 --> 00:36:34.039
a pole request, will it get
merged? Yeah? And ninety nine percent

444
00:36:34.079 --> 00:36:37.920
of the time I never hear back. There is like sometimes I hear back

445
00:36:37.920 --> 00:36:44.360
within six months, which is just
so ridiculous to me. Frequently I hear

446
00:36:44.400 --> 00:36:49.719
back with that baby agile. Agile
is thirty days. I hear back from

447
00:36:49.760 --> 00:36:52.320
their box saying, no one's meant
put a comment on this for thirty days.

448
00:36:52.880 --> 00:36:58.960
We're going to close it automatically.
I'm like, thank you, yeah

449
00:36:59.079 --> 00:37:00.559
and again. And I think,
like we can. I think we can.

450
00:37:00.559 --> 00:37:05.400
Definitely there's things we can improve,
but at least we were trying to

451
00:37:05.400 --> 00:37:09.360
be intentional about those things. I
mean, I remember uh from the CDK

452
00:37:09.519 --> 00:37:15.519
at some point. It is really
hard to maintain a big open source project.

453
00:37:16.159 --> 00:37:22.800
And once one of the problems with
this is is that there's an asymmetry

454
00:37:23.239 --> 00:37:28.760
between the capacity you have with the
team, with the core team, which

455
00:37:28.800 --> 00:37:31.159
is usually a fixed size or you
know, maybe growing a little bit every

456
00:37:31.199 --> 00:37:37.519
year, and and and the user
base, which is sometimes exponentially growing or

457
00:37:37.559 --> 00:37:40.800
sometimes growing like crazy, and the
contribute and the contributor base as well.

458
00:37:42.719 --> 00:37:50.960
And if you don't have automation,
if you don't have like really great workflows

459
00:37:51.000 --> 00:37:55.719
for like accepting contributions and dealing with
them. It's just immediately, very quickly

460
00:37:55.760 --> 00:38:00.599
gets you overwhelming for the for the
core team, and the CDK had like

461
00:38:01.519 --> 00:38:06.800
still I think really struggling with this
because you know, anyways just keeps growing.

462
00:38:06.880 --> 00:38:10.000
There's like more and more services,
more and more capabilities. The CDK

463
00:38:10.199 --> 00:38:15.679
definitely is perfect for contribution in that
sense. It's like, oh, yeah,

464
00:38:15.840 --> 00:38:17.400
just they eded this new feature in
Lambdough, let's just expose it in

465
00:38:17.440 --> 00:38:22.199
the CDK. So it's like these
are really simple contributions and so people can

466
00:38:22.440 --> 00:38:27.119
can really participate, but you need
someone to review this, you need someone

467
00:38:27.159 --> 00:38:30.039
to accept it, you need someone
to and so it's it's a challenge.

468
00:38:30.079 --> 00:38:37.440
It's a big challenge with big projects. So definitely I can also you know,

469
00:38:37.719 --> 00:38:40.280
I can also be empathetic to the
other side in that sense. That's

470
00:38:40.320 --> 00:38:45.960
what I'm trying to say. Yeah, for sure, so and now and

471
00:38:45.719 --> 00:38:51.880
so with weing, you've got that
problem, but also with the other cloud

472
00:38:51.920 --> 00:38:55.719
providers as well, because you are
supporting all the different cloud providers, right

473
00:38:55.920 --> 00:38:59.119
right, I guess we can't say
all because I don't even know what all

474
00:38:59.400 --> 00:39:06.280
really. Someone someone who said the
cloud flare back, right, which is

475
00:39:07.199 --> 00:39:10.119
oh, yeah, right, Uh, they seem to have all the primitives

476
00:39:10.159 --> 00:39:15.679
we need now to build the standard
library. Yeah, and we don't.

477
00:39:15.719 --> 00:39:17.960
We don't. We also don't have
full support for all all the kind of

478
00:39:19.079 --> 00:39:22.840
traditional providers. As I said,
it's kind of like a matrix that we're

479
00:39:22.840 --> 00:39:28.719
filling up. We have the foundation
for testing everything, which is really important.

480
00:39:28.760 --> 00:39:31.159
So like if you fill up something, it goes into the goes into

481
00:39:31.159 --> 00:39:35.599
the factory and starts, you know, and we start testing it every time

482
00:39:35.639 --> 00:39:43.000
you every time there's a change.
And it's interesting to think about the cloud

483
00:39:43.039 --> 00:39:49.920
agnostic problem, which is I haven't
mentioned it actually but in a way not

484
00:39:50.000 --> 00:39:52.159
in a way, but we also
solve that problem, right like because once

485
00:39:52.199 --> 00:39:57.480
you work against the substraction, then
suddenly you're not you're portable. Your application

486
00:39:57.559 --> 00:40:00.679
can be ported across different implementation.
Like you said, I can change the

487
00:40:00.719 --> 00:40:05.920
bucket, I can change the cloud
provider. And and I've been talking to

488
00:40:06.079 --> 00:40:09.480
like tons of you know, people
from the industry in the past two years,

489
00:40:09.519 --> 00:40:15.400
and this is a growing pain.
It feels like I've seen more and

490
00:40:15.480 --> 00:40:22.679
more people concerned about portability, both
from a cost perspective. Just talk to

491
00:40:22.519 --> 00:40:27.039
someone yesterday and they mentioned you know, they've been an AA base shop for

492
00:40:27.199 --> 00:40:30.639
many years and at some point just
became really expensive and Atabase was wouldn't you

493
00:40:30.679 --> 00:40:34.679
know, wouldn't give them any discounts, And so they said, Okay,

494
00:40:35.000 --> 00:40:38.280
we're gonna move some of our workloads
to GCP or to AZURE. I think

495
00:40:38.280 --> 00:40:43.400
I don't remember what it was,
but just just just pointing out that I

496
00:40:43.440 --> 00:40:47.159
think, like, as the cloud
is evolving and people have bigger workloads and

497
00:40:47.199 --> 00:40:53.880
more stakes than the fact that the
power is in the hands of the vendor

498
00:40:53.880 --> 00:40:59.920
as opposed as opposed to being in
the hands of the of the user is

499
00:41:00.599 --> 00:41:04.559
I feel like it's not it's not
the good. It's not good for the

500
00:41:04.559 --> 00:41:08.039
industry eventually, right, Like it's
not good for anyone, and Wing is

501
00:41:08.039 --> 00:41:15.760
solving that problem again still early,
still have a lot of work to do,

502
00:41:15.800 --> 00:41:20.079
but like at least from at least
uh, you know, architecturally,

503
00:41:20.159 --> 00:41:23.239
this is a solution to this problem. And I'm seeing more and more people

504
00:41:23.480 --> 00:41:30.320
talk about this. I think the
other the other anecdotally like weren't like kind

505
00:41:30.320 --> 00:41:35.320
of related to what you asked earlier. I'm seeing a lot more vendors wanting

506
00:41:35.320 --> 00:41:42.320
to support self hosted solutions because of
those concerns about you know, data where

507
00:41:42.320 --> 00:41:45.159
the data is stored and going out
of your account, and and so in

508
00:41:45.239 --> 00:41:50.880
those examples are like they're not they're
not SaaS providers. They are vendors that

509
00:41:51.239 --> 00:41:54.599
create services, but they want to
be able to deploy them in customer accounts

510
00:41:54.920 --> 00:42:01.840
across different cloud providers. And right
now, the only reasonable solution, which

511
00:42:01.880 --> 00:42:06.199
is which you know, I don't
actually think it's like a fully it's not

512
00:42:06.320 --> 00:42:13.079
real in a sense, it's to
use pure Kubernetes, right And the reality

513
00:42:13.079 --> 00:42:15.960
of that is actually pretty harsh because
first of all, you're really limited in

514
00:42:16.039 --> 00:42:21.320
terms of like the resources that you
can use outside of your Kubernetes cluster.

515
00:42:21.400 --> 00:42:23.480
So once you start you need a
bucket. Then okay, we need this

516
00:42:23.639 --> 00:42:30.760
abstraction again. And two is Kubernetes, as much as we wanted to think

517
00:42:30.800 --> 00:42:37.360
about it as like cloud agnostic and
portable, and the reality is that the

518
00:42:37.440 --> 00:42:42.559
distributions are very different. The versioning
are very are different, vms are different,

519
00:42:42.599 --> 00:42:46.599
the VM types are different, the
volumes are different, the managed you

520
00:42:46.639 --> 00:42:51.559
know, Kubernetes solutions are different,
and so you end up having to like

521
00:42:51.639 --> 00:42:55.639
actually test yes this works with the
GCP Kubernetes, and with the abase Kubernetes,

522
00:42:55.639 --> 00:43:00.400
and and so even this is not
truly so the only portable thing in

523
00:43:00.440 --> 00:43:05.360
this world is the container in a
way, or you know, your application

524
00:43:05.960 --> 00:43:09.199
that's running inside Kubernetes, which is
a bit unfortunate, I feel, because

525
00:43:09.599 --> 00:43:15.119
I know that a lot of people
are using Kubernetes with the sense of cloud

526
00:43:15.159 --> 00:43:17.000
portability, and then when when they
actually need it, it's, uh,

527
00:43:17.440 --> 00:43:23.000
it's much harder than than they expect. For sure, because you dhorn I

528
00:43:23.039 --> 00:43:27.360
would say, you heard it here
first, are using Kubernetes for cloud portability.

529
00:43:27.400 --> 00:43:31.199
Stop it. You're you're not getting
the value out for sure. It's

530
00:43:31.280 --> 00:43:36.199
been a it's been a slow transition
like that, you know, because as

531
00:43:36.280 --> 00:43:43.280
Kubernetes has matured, you see like
little things that steer you towards a cloud

532
00:43:43.719 --> 00:43:49.239
agnostic or a cloud specific solution.
Like whenever you set up your ingress for

533
00:43:50.679 --> 00:43:54.480
for your service, if you're in
GCEP, you know, you use one

534
00:43:54.519 --> 00:43:58.760
type of ingress, or if you're
using uh, you know, the the

535
00:43:58.800 --> 00:44:00.920
Amazon managed kuberne As, you'll use
a different ingress and then you try to

536
00:44:00.960 --> 00:44:05.559
move it to a different Kubernetes cluster
and you're like, oh damn it,

537
00:44:06.800 --> 00:44:10.559
I've screwed. Yeah, and then
you end up with like overlays and tim

538
00:44:10.679 --> 00:44:19.119
plates and patching and taint different taints, and I don't I don't even know

539
00:44:19.199 --> 00:44:24.639
all the but I just wanted to
make sure that I think Kubernetes is a

540
00:44:24.679 --> 00:44:31.039
really great and powerful tool I have. I think that oftentimes people use it

541
00:44:31.480 --> 00:44:38.400
without really needing all this power and
these capabilities. And oftentimes people use it

542
00:44:38.440 --> 00:44:43.239
because they think that they're not going
to be locked to a cloud provider.

543
00:44:43.280 --> 00:44:46.840
But that's not really. But but
there are I've seen amazing use cases of

544
00:44:46.880 --> 00:44:50.280
Kubernetes, and I think, like, you know, definitely, by the

545
00:44:50.280 --> 00:44:55.480
way, people who need like on
prem container orchestration right amazing, right,

546
00:44:55.519 --> 00:44:59.199
Like I don't, I don't know
that there's a better solution for them.

547
00:45:00.119 --> 00:45:02.519
No, I'm totally with you on
that. I mean, I'll say the

548
00:45:02.519 --> 00:45:07.480
controversial thing, which is, I
believe there's probably one percent of the use

549
00:45:07.559 --> 00:45:12.079
cases are Kubernetes, and the ninety
nine percent you probably don't need that,

550
00:45:12.199 --> 00:45:15.039
you know. I feel like from
experience it's something related to GPUs or on

551
00:45:15.159 --> 00:45:22.639
prem you have if you have need
to deploy like a very high cardinality number

552
00:45:22.719 --> 00:45:29.239
of containers with minor tweaks to the
variables or parameters for each of those containers,

553
00:45:29.519 --> 00:45:31.559
then for sure, one hundred percent
Kubernetes, nothing else is going to

554
00:45:31.559 --> 00:45:36.280
give you that level of control with
the repeatability. I just find that,

555
00:45:36.360 --> 00:45:42.079
as you said, there is hypothetical
value associated with portability or cross platform same

556
00:45:42.079 --> 00:45:44.840
way like, oh, if we
use terraform, we'll just be able to

557
00:45:45.559 --> 00:45:50.360
immediately change clouds, just like that
with the infrastructure. I think it's it's

558
00:45:50.400 --> 00:45:52.320
for sure the same mistake. But
at the application level. That's my highly

559
00:45:52.320 --> 00:45:58.239
controversial opinion. I'm not going to
get my mind changed anytime soon, but

560
00:45:58.519 --> 00:46:00.400
you know, feel free to write
me some letters to my email. Yeah

561
00:46:00.559 --> 00:46:06.199
I would. I would also add
that the ecosystem that's evolved around Kubernetes is

562
00:46:06.719 --> 00:46:09.679
amazing, and I think a lot
of people use Kubernetes because of that ecosystem,

563
00:46:09.679 --> 00:46:15.559
because they have, you know,
great tools in Kubernetes that enable them

564
00:46:15.559 --> 00:46:20.960
to do observability and c ICD and
the or and I see or you also

565
00:46:21.000 --> 00:46:24.039
have another Yeah, I know,
right, this is hot take episode.

566
00:46:24.159 --> 00:46:30.599
I think that there's uh. There
was a controversial AI developer Devin who I'm

567
00:46:30.599 --> 00:46:32.159
sure everyone is aware of at this
point, and I feel like there's a

568
00:46:32.480 --> 00:46:38.119
it's very difficult to separate out core
problem solving from solving problems that were created

569
00:46:38.159 --> 00:46:43.480
by the infrastructure or architecture that you've
picked. So ideally, if using a

570
00:46:43.519 --> 00:46:46.119
cloud provider, you don't need to
monitor and observe what's going on there.

571
00:46:46.119 --> 00:46:50.760
If using Kubernetes, you for sure
do. So. Yes, all the

572
00:46:50.760 --> 00:46:53.400
great tools for observability only work with
Kubernetes because you need them to work.

573
00:46:53.599 --> 00:47:00.400
Otherwise you're like, what is going
on and by infrastructure staff? Yeah,

574
00:47:00.400 --> 00:47:04.159
what's wrong with me? Why don't
I Why don't I need to use all

575
00:47:04.159 --> 00:47:08.039
these observability cool observability tools be with
the cool kids. No, No,

576
00:47:08.360 --> 00:47:13.800
it's interesting. I mean you definitely
get you definitely get left out right because

577
00:47:13.840 --> 00:47:15.920
you're not using that thing. I
hear very frequently using Oh, we can't

578
00:47:16.000 --> 00:47:21.559
use Lambda or cloud functions or even
cloud run because they don't offer the same

579
00:47:21.599 --> 00:47:23.480
sort of integration. I mean,
I think the truth is almost everything offers

580
00:47:23.480 --> 00:47:28.920
hotel integration at this point, So
you know, forget that, you know

581
00:47:28.920 --> 00:47:30.800
that's no longer the truth, But
for sure, you just don't need to

582
00:47:30.800 --> 00:47:35.000
integrate with things because the hope is
that you don't need to and I imagine,

583
00:47:35.039 --> 00:47:37.559
you know, with wing Lang you're
writing stuff in a way that is

584
00:47:37.679 --> 00:47:42.159
agnostic, and you also hopefully don't
need to know the observer. I don't

585
00:47:42.199 --> 00:47:44.239
know, maybe I'm saying too much. I assume you know, some sort

586
00:47:44.239 --> 00:47:50.840
of observability back end configuration or integration
exists in some way. It exists in

587
00:47:50.840 --> 00:47:53.119
a roadmap. It doesn't exist yet, but it definitely exists in a roadmap.

588
00:47:53.119 --> 00:47:59.159
We want to We do want hotel
to be built in to Wing,

589
00:47:59.280 --> 00:48:05.480
which is actually really exciting. I
can wait to get there. I know

590
00:48:05.519 --> 00:48:07.039
a lot of people are jumping for
joy over the fact that, oh I

591
00:48:07.079 --> 00:48:09.639
get that for free now, and
I don't have to write a whole bunch

592
00:48:09.679 --> 00:48:15.599
of things to run a sidecar.
Actually it's really timely because there was just

593
00:48:15.639 --> 00:48:22.199
a huge vulnerability discovered in a fluent
bit I think like literally today, where

594
00:48:22.679 --> 00:48:28.599
there's a huge problem there and anyone
running it there's a promote code execution vulnerability

595
00:48:28.599 --> 00:48:32.840
that you need to go and patch. Oh okay, well I guess I

596
00:48:32.880 --> 00:48:43.400
know what I'm doing this second.
I don't over I mean so literally asked

597
00:48:43.400 --> 00:48:46.519
a question, is it worse than
mug for Jay, so still being determined.

598
00:48:47.599 --> 00:48:51.519
Oh wow, the fact that you
have to pause to answer that question

599
00:48:51.679 --> 00:48:59.840
is not a great indicator. This
is concerning Yeah, so you mentioned that

600
00:49:00.239 --> 00:49:04.320
hotels on your roadmap. What else
is on your roadmap? For Wing?

601
00:49:09.000 --> 00:49:15.400
One of the one of the pieces
of of the solution is what we call

602
00:49:15.480 --> 00:49:22.719
the WING Console, which is this
graphical user interface that allows you to interact

603
00:49:22.719 --> 00:49:29.679
with your cloud application. And again
it starts from the developer, from the

604
00:49:29.719 --> 00:49:32.880
inner loop, right like you're because
we're running inside a simulator, and so

605
00:49:34.159 --> 00:49:37.119
now you want to be able to
see that when you put something in the

606
00:49:37.119 --> 00:49:39.559
bucket, it's actually there, and
you know, send a request through the

607
00:49:39.599 --> 00:49:44.880
API or put some message in the
queue and see that it's behaving the way

608
00:49:44.920 --> 00:49:46.679
you want it and run your tests. And so it's kind of like this.

609
00:49:47.199 --> 00:49:51.519
Currently it's kinrent of like a development
tool, but one of the things

610
00:49:51.519 --> 00:49:59.079
that we're working on is getting the
same view to connect to your production system.

611
00:49:59.559 --> 00:50:01.840
And and I think that I'm really
excited about this because one of the

612
00:50:01.880 --> 00:50:08.239
cool things about this view is that
it has a logical model of your application.

613
00:50:08.440 --> 00:50:15.440
So if you design your application,
and every developer designs your application through

614
00:50:15.480 --> 00:50:19.639
composition. Right, they say,
okay, this, I'm taking my problem,

615
00:50:19.760 --> 00:50:22.280
I'm breaking it down to smaller pieces, and each piece solves a certain

616
00:50:22.719 --> 00:50:27.119
part of the problem, and there's
like interfaces, and you know, I

617
00:50:27.159 --> 00:50:30.239
can test each piece in isolation blah
blah blah. But then you compose things

618
00:50:30.239 --> 00:50:34.239
together and it becomes this like tree. Right, so you have like your

619
00:50:34.239 --> 00:50:39.199
application and then your inger system and
your storage system and your outbound connector and

620
00:50:39.280 --> 00:50:45.480
whatever. Right, So it basically
create some kind of a hierarchical logical structure.

621
00:50:45.639 --> 00:50:49.960
And one of the things that I've
seen with the CDK, and the

622
00:50:50.000 --> 00:50:53.480
CDK also allows you to do that, Like CDK has this concept called constructs

623
00:50:53.519 --> 00:51:00.760
that basically allow you to compose a
smaller you know, composed truck together into

624
00:51:00.800 --> 00:51:05.360
higher level, higher level abstractions.
And one of the things that I've seen

625
00:51:05.400 --> 00:51:08.599
with the CDK is that people are
a bit reluctant to use these constructs to

626
00:51:08.639 --> 00:51:15.719
create logical abstractions because they they're lost
when the abstractions are when the system is

627
00:51:15.760 --> 00:51:21.320
deployed. So you have this beautiful
view right of your system and all these

628
00:51:21.480 --> 00:51:24.639
logical units, but then you end
up deploying them and they break down to

629
00:51:24.760 --> 00:51:30.400
their atoms in a sense, right, like they break down become queues and

630
00:51:30.480 --> 00:51:35.760
buckets and containers and you know,
topics, and like you're just you're unable

631
00:51:35.800 --> 00:51:38.880
to have like this logical you don't
have this logical view of your system anymore.

632
00:51:39.760 --> 00:51:45.320
And so this console being able to
actually see the same logical view in

633
00:51:45.440 --> 00:51:51.400
production, and being able to reason
about your application in production the same way

634
00:51:51.440 --> 00:51:54.679
you reason about it and during development
the same way you wrote your code,

635
00:51:54.960 --> 00:52:00.920
and having this trace stability between something
that happens and in production on the cloud

636
00:52:01.119 --> 00:52:06.599
and the logical unit in the code
that actually you know, like you know,

637
00:52:06.719 --> 00:52:10.199
I have this queue filled up.
Okay, so this is a low

638
00:52:10.280 --> 00:52:15.599
level error. But then if I
understand that this que belongs to some certain

639
00:52:15.920 --> 00:52:19.559
piece of the system, I can
react much more much quickly. I can

640
00:52:19.639 --> 00:52:24.000
understand exactly who's responsible for this.
I can diagnose problems much better. And

641
00:52:24.000 --> 00:52:29.639
and so that's another thing that we're
working on. The I think it's I

642
00:52:29.639 --> 00:52:32.159
feel like that's something that's not work
like definitely not to skip over, like

643
00:52:32.239 --> 00:52:36.679
when you're using stuff like the CDK, it's a bunch of transformation steps,

644
00:52:37.000 --> 00:52:39.559
and so one of the transformations you
lose sort of all of the metadata that

645
00:52:39.599 --> 00:52:44.599
happens in the step before its CDK
turns into CloudFormation templates, which ends up

646
00:52:44.639 --> 00:52:47.320
in AWS, and it's like one
direction. All that basically means you have

647
00:52:47.360 --> 00:52:51.599
a bi directional view. You're able
to look at what's actually deployed in production,

648
00:52:51.800 --> 00:52:55.039
combine it with the metadata that's in
your in the written for wing,

649
00:52:55.280 --> 00:53:00.679
and see that picture from the outside
without needing a WS to make fundamental changes

650
00:53:00.760 --> 00:53:04.960
to their tagging system or I mean, I'm sure there's some clever ways of

651
00:53:05.000 --> 00:53:07.840
getting that metadata am so you can
pull it back out later, but they

652
00:53:07.880 --> 00:53:09.559
don't have to make changes to the
cloud in order to directly be able to

653
00:53:09.559 --> 00:53:13.719
support this view, which is what
we need to happen with stuff like the

654
00:53:13.719 --> 00:53:19.480
CDK or even terrorform, which doesn't
command or really look into your production cloud

655
00:53:19.559 --> 00:53:22.719
environment to understand what's going on.
It's just one direction, you know,

656
00:53:22.800 --> 00:53:25.239
transform, have to transform until you're
there. Yeah, it's kind of leaky

657
00:53:25.280 --> 00:53:30.039
in that sense, right because basically
the abstraction is leaking out and that and

658
00:53:30.039 --> 00:53:37.199
and also in many cases you have
different people involved in the operations of the

659
00:53:37.239 --> 00:53:43.559
system and so not having like a
shared mental model of the system is sometimes

660
00:53:43.599 --> 00:53:46.159
a huge problem, and I think
you know people what people do is that

661
00:53:46.280 --> 00:53:52.960
they they use tagging, they they
create dashboards. Dashboards sometimes is basically just

662
00:53:52.039 --> 00:53:57.639
a way to restore some logical view, right they Oh, all of these

663
00:53:57.679 --> 00:54:00.519
resources belong to this part of the
system, and so now when I'm walking

664
00:54:00.719 --> 00:54:04.880
looking at the dashboard, I understand
that something happened in this part of the

665
00:54:04.920 --> 00:54:07.760
system. But with WING, you
really don't have to do this manual because

666
00:54:07.760 --> 00:54:14.599
we know all this information from your
code, which is exciting. I mean

667
00:54:14.639 --> 00:54:16.599
I feel like as actually trying to
go in this direction a little bit,

668
00:54:16.639 --> 00:54:21.360
but then clearly didn't get it turned
into a product or a service in the

669
00:54:21.360 --> 00:54:24.719
aws's view, which is like I
don't want to see the underlying primitives as

670
00:54:24.760 --> 00:54:29.000
you put it here, Like I
want to see the service components and the

671
00:54:29.079 --> 00:54:31.199
architecture that I've deployed, as I
understand it. When I go to the

672
00:54:31.239 --> 00:54:36.800
homepage of AWS console, I want
to see my individual services laid out there

673
00:54:36.880 --> 00:54:38.920
that I can click on directly and
not be like, oh wait, this

674
00:54:39.000 --> 00:54:43.199
service is made up of a container, plus it's running Kubernetes, and then

675
00:54:43.199 --> 00:54:45.000
there's these other things like I just
want to see one blog and I can

676
00:54:45.000 --> 00:54:47.920
click on it and it will tell
me. Data is fine, Logs are

677
00:54:47.960 --> 00:54:52.119
great, monitoring, observabili everything's great. There, connections in and out a

678
00:54:52.119 --> 00:54:54.119
shop good, right, flows fantastic. I don't want to have to jump

679
00:54:54.119 --> 00:55:00.400
into those underlying primitives to understand them. Yeah, I agree. I think

680
00:55:00.440 --> 00:55:05.519
a lot of them went too far
with that, Like they tried to show

681
00:55:05.599 --> 00:55:08.760
that, but then in doing so, they ended up showing you know,

682
00:55:08.840 --> 00:55:12.760
like, oh, here's the four
hundred security groups that were created. Was

683
00:55:12.960 --> 00:55:15.159
as a result of this template,
and like, ah, okay, thanks,

684
00:55:15.199 --> 00:55:22.679
but really really not helpful, man. Yeah, I mean I can

685
00:55:22.760 --> 00:55:25.400
also be empathetic to a w S
society of the world in that sense,

686
00:55:25.480 --> 00:55:31.159
because one of the beautiful things about
Amazon, and really for me it was

687
00:55:31.239 --> 00:55:38.000
it was it was just empower incredibly
empowering. Is this two pizza team model,

688
00:55:38.159 --> 00:55:43.360
you know? And I'm assuming like
it's basically like this operational model of

689
00:55:43.400 --> 00:55:46.320
the company that says, you know, there's a there's a small team that's

690
00:55:46.360 --> 00:55:52.119
responsible for a certain type of product
delivered to customers. They just obsess about

691
00:55:52.199 --> 00:55:57.119
making these customers happy and and it's
it's and it's real, like and the

692
00:55:57.199 --> 00:56:00.440
empowerment is real, Like the ability
of that team to actually make decisions and

693
00:56:00.480 --> 00:56:07.760
deliver without interruption is I haven't seen
that anywhere. And I think one of

694
00:56:07.800 --> 00:56:13.559
the results of this is that it's
really hard to create like a holistic view,

695
00:56:13.760 --> 00:56:16.760
right, Like I think like as
customers both aws. You actually also

696
00:56:16.760 --> 00:56:20.599
see this in the Amazon website,
right, Like you go to an Amazon

697
00:56:21.480 --> 00:56:27.079
product page and there's like a eleven
thousand services involved in like rendering this page,

698
00:56:27.519 --> 00:56:31.800
and it's horrible, right Like,
it's like it's clear that nobody has

699
00:56:31.880 --> 00:56:38.519
like this holistic you know, intention
about how this needs to look. But

700
00:56:39.320 --> 00:56:44.639
it's good enough, and it's like, you know, very valuable to customers.

701
00:56:44.679 --> 00:56:47.760
And I think like this is saying
kind of like DNA Amazon DNA,

702
00:56:47.880 --> 00:56:57.280
that's like leaking out to the experience
because Amazon is really intentional about this trade

703
00:56:57.320 --> 00:57:02.639
office like saying, we prefer that
teams would have independence because otherwise it's just,

704
00:57:02.920 --> 00:57:07.239
you know, with such a big
organization, so many services and so

705
00:57:07.280 --> 00:57:12.480
many teams just becomes like a you
know, a standstill at some point if

706
00:57:12.480 --> 00:57:19.199
you have to, Like so,
I can't even imagine what that would look

707
00:57:19.239 --> 00:57:25.159
like if you had every developer at
Amazon had to go through like a single

708
00:57:25.760 --> 00:57:30.599
infrastructure team to build something we would
it takes like six months to get a

709
00:57:30.599 --> 00:57:35.239
PR through. There's a there's a
couple of other cloud providers out there who

710
00:57:35.280 --> 00:57:37.360
may be following that model, and
you know, maybe that's what it looks

711
00:57:37.400 --> 00:57:44.119
like. I mean, I see
I see WING as this like you know,

712
00:57:44.199 --> 00:57:46.760
imagine AWS worked exactly as it did, but there are a couple of

713
00:57:46.800 --> 00:57:52.000
things that are cross cutting that just
salt Like everyone's like, how can tags

714
00:57:52.039 --> 00:57:54.079
not be ubiquitous? Right? There
are a couple of things like that which

715
00:57:54.079 --> 00:57:58.800
are which would really make the developer
experience so much better. And I feel

716
00:57:58.840 --> 00:58:04.119
like maybe it's WING that's giving you
that. I think. I think the

717
00:58:04.159 --> 00:58:09.039
way we kind of circumvent the challenge
is by reducing the surface area, right,

718
00:58:10.159 --> 00:58:15.880
because trying to do this across one
hundred and eighty services of ABS is

719
00:58:15.960 --> 00:58:20.119
no reasonable, right, especially not
for a small startup. It's not also

720
00:58:20.159 --> 00:58:22.400
reasonable for like a team of databas. I think one of the challenges we've

721
00:58:22.400 --> 00:58:27.360
had with the CDK and constantly having
with the CDK, and I think CloudFormation

722
00:58:27.559 --> 00:58:32.480
is also having this challenge is basically
racing AWS and making sure there's coverage for

723
00:58:32.480 --> 00:58:37.920
all the research for the capabilities and
feed new features and new services that spin

724
00:58:37.079 --> 00:58:40.119
up every year. And so what
we've done with WINGS is said, Okay,

725
00:58:43.079 --> 00:58:45.679
hold on for a second, Let's
see what's the foundation that is,

726
00:58:45.920 --> 00:58:51.480
you know, good enough to build
a majority of the applications or a good

727
00:58:51.920 --> 00:58:54.280
you know, a good chunk of
the applications and create a really great developer

728
00:58:54.320 --> 00:59:01.320
experience for that. And it is
a very extensible kind of ecosystem play that

729
00:59:01.360 --> 00:59:06.360
we're doing. And so you can
actually create libraries and we have like people

730
00:59:06.400 --> 00:59:10.280
starting to like publish libraries for Wing
and so like it is designed to offer

731
00:59:10.360 --> 00:59:15.760
you a general purpose solution. But
what we're trying to do is we're trying

732
00:59:15.800 --> 00:59:19.400
to focus on the foundation. I
think like it's a it's a it's a

733
00:59:19.440 --> 00:59:22.480
reverse pyramid, uh. And I
think one of the problems with AWS is

734
00:59:22.559 --> 00:59:30.280
kind of architectural philosophy is that there's
no pyramid in in internally a a WS,

735
00:59:30.840 --> 00:59:36.400
all services are created equal. So
s Ree and Robomaker are basically the

736
00:59:36.480 --> 00:59:39.239
same, has the same kind of
you know, place in the in the

737
00:59:39.360 --> 00:59:43.639
architecture. Right, Like it's kind
of like a it's a it's a mesh

738
00:59:43.719 --> 00:59:46.760
of services as opposed to being like
a stack. And I think like not

739
00:59:46.880 --> 00:59:52.280
having a stack makes it really hard
for a ws's teams to prioritize and say,

740
00:59:52.320 --> 00:59:55.239
okay, this is this, these
are part of the foundational stack.

741
00:59:55.320 --> 00:59:59.679
Let's make sure that you know,
we get it in practice, this is

742
00:59:59.719 --> 01:00:04.440
what right like in practice, when
we started a CDK, we've you know,

743
01:00:04.480 --> 01:00:09.119
we've created as three abstraction API would
create it like we've actually done practically,

744
01:00:09.159 --> 01:00:13.440
we've done that. But but I
think it's if when you don't have

745
01:00:13.519 --> 01:00:20.280
that architecturally, then you can't really
build holistic experiences based on that stock.

746
01:00:20.320 --> 01:00:23.000
And then that's what we're trying to
do with me. I don't know if

747
01:00:23.000 --> 01:00:34.880
that made sense philosophical Sometimes it just
goes that way. Yeah, So from

748
01:00:34.920 --> 01:00:38.719
a practical perspective, what does it
look like to get started with Wing?

749
01:00:38.800 --> 01:00:45.000
Like if I have my application and
of like it's it's already built and running,

750
01:00:45.079 --> 01:00:50.159
but I'm signing off on this new
approach. How do I what's the

751
01:00:50.199 --> 01:00:53.639
transition project or transition process look like
for saying I'm going to use Wing to

752
01:00:53.719 --> 01:00:59.119
do that? And how do I
get started? So first of all,

753
01:00:59.119 --> 01:01:02.000
it's you know, open source and
go to Wing lang dot io and you

754
01:01:02.039 --> 01:01:07.360
can download it and install it and
run it on your machine and it's free,

755
01:01:07.519 --> 01:01:13.159
and uh, you get the simulator
and the console and everything. And

756
01:01:14.440 --> 01:01:17.599
what what we've that's actually an interesting
you know, it's an interest. It's

757
01:01:17.599 --> 01:01:22.239
a it's a more interesting question.
I think that you that maybe we want

758
01:01:22.280 --> 01:01:25.719
it to be at this point.
But what we've started to do with Wing

759
01:01:25.760 --> 01:01:31.400
is we basically said we want to
start from the ideal experience. We want

760
01:01:31.480 --> 01:01:37.280
to put it to put that in
place. And and so what we've done

761
01:01:37.360 --> 01:01:39.320
is we actually created a programming language. We haven't talked about this, but

762
01:01:39.360 --> 01:01:45.679
we've actually created a programming language that's
that has that has these ideas baked into

763
01:01:45.719 --> 01:01:51.880
the language, and it's built on
top of this standard library. It's built

764
01:01:51.880 --> 01:01:54.400
on top of this you know,
set of abstractions, but it also has

765
01:01:54.440 --> 01:02:00.280
this really cool thing called in flight
functions, and the idea of inflight functions

766
01:02:00.280 --> 01:02:05.719
in the way it's kind of like
ACYNC functions in traditional languages, only that

767
01:02:05.880 --> 01:02:09.880
inflant functions not only run later in
time, they also run in a different

768
01:02:10.039 --> 01:02:14.920
place, so you can actually package
them and ship them to the cloud.

769
01:02:15.760 --> 01:02:21.119
And what you could do with inflight
functions is basically represent the application logic,

770
01:02:21.159 --> 01:02:29.360
the run time behavior of your system
within the same programming model that you're describing

771
01:02:29.559 --> 01:02:32.599
the cloud resources that you're using.
So you can basically say new bucket,

772
01:02:32.719 --> 01:02:38.840
new queue, new container, and
then you can basically specify the code that's

773
01:02:38.880 --> 01:02:43.800
running inside the container in the same
programming space or new function, new Lembda

774
01:02:43.800 --> 01:02:49.400
function. And the cool thing about
this is that when you write this code,

775
01:02:49.440 --> 01:02:54.239
this inflight code, you can interact
between your inflight and your pre flight

776
01:02:54.320 --> 01:03:00.519
resources. So you can basically say
bucket, dot put and when this,

777
01:03:00.679 --> 01:03:05.320
when this is basically compiled, it
compiles to terra form or to any other

778
01:03:05.800 --> 01:03:07.679
uh you know target platform. As
I said, right like, it's a

779
01:03:07.719 --> 01:03:12.280
customizable thing. So we actually have
an a b c DK platform, the

780
01:03:12.320 --> 01:03:16.679
compilsitor that can be deployed through cloud
formation. And we have someone asking about

781
01:03:19.320 --> 01:03:22.280
cross plane platform, which is interesting, right like, basically compiled to Kubernetes

782
01:03:22.280 --> 01:03:29.039
siamos and deployed through through Kubernetes.
And but when you compile to the Staria

783
01:03:29.079 --> 01:03:32.960
platform, the compiler is able to
basically bind your runt time code with your

784
01:03:34.000 --> 01:03:36.559
infrastructure. And so it basically says, okay, so you need to be

785
01:03:36.639 --> 01:03:38.440
able to put file in the bucket. Great, I need to know the

786
01:03:38.519 --> 01:03:42.400
name of the let's say I'm on
S three, I need to know the

787
01:03:42.440 --> 01:03:45.280
bucket name, and I need the
im permissions, these im permissions in order

788
01:03:45.320 --> 01:03:52.320
to actually deliver this this application code
and and so you get this really really

789
01:03:52.360 --> 01:04:00.079
really nice end to end holistic experience. But what we're realizing, and I

790
01:04:00.079 --> 01:04:04.440
guess it's pretty obvious, but what
we're doing right now is we're basically offer

791
01:04:04.480 --> 01:04:10.079
it starting to offer the ability to
use WING just for the infrastructure piece.

792
01:04:10.239 --> 01:04:15.239
So basically use all these APIs,
but then just bring in your own LAMB

793
01:04:15.239 --> 01:04:18.760
the function or your own container.
And we already have support for containers,

794
01:04:18.760 --> 01:04:24.039
which is pretty cool. We're working
on some support for LAMBDAM And in this

795
01:04:24.199 --> 01:04:28.599
case you're binding between your infrastructure and
your application. Is obviously requires a bit

796
01:04:28.639 --> 01:04:34.159
more a bit more work because those
things are now decoupled and not coupled together

797
01:04:34.239 --> 01:04:40.320
into the same language. And so
to your question, if you have existing

798
01:04:40.360 --> 01:04:45.360
code, you can take your application
code and use it and then replace your

799
01:04:45.360 --> 01:04:49.320
infrastructure code with WING. So would
it be maybe it's like terraform or CloudFormation,

800
01:04:49.719 --> 01:04:54.000
So you can basically use way to
define your infrastructure and basically point to

801
01:04:54.079 --> 01:04:57.719
your application code and bind it together, and then it starts running in a

802
01:04:57.760 --> 01:05:04.199
simulator and you can start compiling different
cloud platforms. So yeah, it's it's,

803
01:05:04.320 --> 01:05:08.920
it's it's definitely a theme that we've
we're working on now, and we

804
01:05:09.079 --> 01:05:13.760
kind of have some more work to
do in order to streamline this experience because

805
01:05:14.679 --> 01:05:17.679
obviously we understand that most people already
have some work clouds, and we really

806
01:05:17.719 --> 01:05:23.559
do want to be able to bring
the value immediately, right Like it doesn't

807
01:05:23.599 --> 01:05:28.760
mean it, yeah for sure,
And I think it's that's kind of kind

808
01:05:28.760 --> 01:05:32.159
of the reason I phrased the question
the way I did, because I think

809
01:05:32.639 --> 01:05:40.320
as a community or as an industry, maybe we're all sort of looking for

810
01:05:40.400 --> 01:05:45.880
that solution that says, Okay,
I'm I'm down with cloud infrastructure, but

811
01:05:45.960 --> 01:05:50.079
that's not the solution every time.
And you know, we talked we've talked

812
01:05:50.079 --> 01:05:55.719
about this already in the episode,
that there's a desire to have cloud agnostic

813
01:05:55.880 --> 01:06:00.360
solutions and so there's all this legacy
stuff and it's problems that we haven't really

814
01:06:00.239 --> 01:06:04.679
face before or saw before. So
I think you're very early in this,

815
01:06:04.960 --> 01:06:12.199
and there's there's no path right now
where you're you're kind of cutting your own

816
01:06:12.280 --> 01:06:15.079
path, as are some other people
in the industry to figure out what this

817
01:06:15.159 --> 01:06:19.559
looks like. And I think it's
like the future of what the whole infrastructure

818
01:06:19.599 --> 01:06:24.440
world is going to look like a
few years from now. They're very optimistic.

819
01:06:28.320 --> 01:06:30.760
I like the fact that you both
laughed at me, like I've done.

820
01:06:31.480 --> 01:06:33.719
No, I was, I was. I was happy to hear that.

821
01:06:33.800 --> 01:06:38.960
No. Obviously obviously optimistic. I
was. I was, I obviously

822
01:06:39.159 --> 01:06:41.920
you know, I always, I
really do believe that. You know,

823
01:06:42.000 --> 01:06:45.199
as an engineers, we we want
to solve problems. Eventually we solve them.

824
01:06:45.480 --> 01:06:48.199
It takes time. We need to
crack the crack, the solutions,

825
01:06:48.320 --> 01:06:54.760
crack. The The business around solving
those problems is you know, one of

826
01:06:54.800 --> 01:06:58.920
the things that I'm you know,
challenged by right now is like, Okay,

827
01:06:58.960 --> 01:07:01.039
I'm an engineer, but you need
to build a business act and create

828
01:07:01.079 --> 01:07:05.559
like a commercial story around this.
But it's all problem solving eventually, so

829
01:07:06.360 --> 01:07:09.679
we'll figure things out. No,
I mean, I think it's right on

830
01:07:09.719 --> 01:07:13.320
point, because actually last week on
the episode, we were talking about the

831
01:07:13.320 --> 01:07:16.000
fact that there needs to be probably
a compaction in the space. We need

832
01:07:16.039 --> 01:07:21.559
to do some sort of depth first
evaluation on a bunch of different things until

833
01:07:21.559 --> 01:07:27.079
we find one that actually solves a
majority of our stack, majority of the

834
01:07:27.119 --> 01:07:30.599
problems that we're having, and then
sort of eliminate all of the previous examples.

835
01:07:30.800 --> 01:07:33.679
And so right now we're not really
sure, especially in the infrastructure deployment

836
01:07:33.719 --> 01:07:36.800
area. I feel like, as
Will you pointed out, we don't really

837
01:07:36.840 --> 01:07:40.840
know what the best answer is at
this moment, and for sure what we've

838
01:07:40.840 --> 01:07:43.920
got is not appropriate. Like we
can see that there's lots of churn,

839
01:07:44.039 --> 01:07:48.599
lots of struggle in the different areas, So I think realistically you may actually

840
01:07:48.639 --> 01:07:55.400
want to start fresh with something new
to examine it. There's not really another

841
01:07:55.400 --> 01:07:58.639
way, But you know, Flo, as you said, it's a business,

842
01:07:58.760 --> 01:08:02.480
right, I think trying to capture
those existing everyone has something today,

843
01:08:02.639 --> 01:08:08.199
likely if they're making money in some
way, So trying to do that migration

844
01:08:08.360 --> 01:08:15.119
is going to be a critical path
forward totally and possibly, like you were

845
01:08:15.159 --> 01:08:19.560
just alluding to Warren, maybe a
bit premature. Like the first thing is

846
01:08:19.600 --> 01:08:24.560
to just do a new project and
see what the see what it looks like,

847
01:08:25.840 --> 01:08:29.079
and kind of iron out that flow
and then figure out, Okay,

848
01:08:29.359 --> 01:08:32.439
now, how do we use this
to onboard all of the legacy stuff that

849
01:08:32.439 --> 01:08:36.800
we're that kind of forced us to
look at this problem. Oh yeah,

850
01:08:36.840 --> 01:08:41.960
every company should be doing pocs with
experiments like I don't know, each team

851
01:08:42.000 --> 01:08:45.439
should be doing at least once maybe
once a month. And if they're not,

852
01:08:45.680 --> 01:08:48.039
you know, then you have this
extra capacity where you're not actually figuring

853
01:08:48.079 --> 01:08:53.039
out how can we push our business
forward with a huge step change? Right?

854
01:08:53.079 --> 01:08:55.239
You know, how what can we
do with innovative in our space?

855
01:08:55.399 --> 01:08:58.720
So it doesn't really matter where it's
at, the idea is, of course,

856
01:08:58.760 --> 01:09:02.119
experiment with something new and figure out
how you can maybe use that effective

857
01:09:02.239 --> 01:09:08.039
in a future real business case.
Yeah. So yeah, if people are

858
01:09:08.760 --> 01:09:15.319
experimenting with wing, we'd love feedback. We'd love to learn about people's use

859
01:09:15.359 --> 01:09:18.119
cases and what they're trying to achieve
and what they like, what they don't

860
01:09:18.239 --> 01:09:24.760
like. More than happy to talk
to anyone. What's the time commitment look

861
01:09:24.920 --> 01:09:30.079
like for checking out like the Hello
World version of using wing? How long

862
01:09:30.119 --> 01:09:33.960
does it take to get up and
run? In? Fifteen minutes? Ten

863
01:09:34.000 --> 01:09:40.079
minutes? Nice, super quick,
super quick? Right on? I think

864
01:09:40.119 --> 01:09:43.720
you've got a I don't think you
saw this a whole Discord community dedicated to

865
01:09:44.680 --> 01:09:50.399
the project to Yeah, it was
a Slack community until last week. So

866
01:09:50.520 --> 01:09:55.880
yeah, come join our new Discord. It's it's uh, we're ramping it

867
01:09:56.000 --> 01:10:00.960
up and it's been just a coincidence. Has nothing to do with their policy

868
01:10:00.039 --> 01:10:05.119
change, Actually not, it's it
has to do with you know, the

869
01:10:05.399 --> 01:10:10.359
community just grew to a point where
it was like didn't make sense financially to

870
01:10:10.600 --> 01:10:15.560
support the slack Slack stuff. Yeah, for sure that that gets out of

871
01:10:15.560 --> 01:10:21.399
control really really quick. Yeah.
Yeah, but yeah, as you mentioned,

872
01:10:21.439 --> 01:10:26.800
Warren, the policy change has been
has been the best thing to happen

873
01:10:26.840 --> 01:10:31.199
to Discord in years. I mean
it's right online because uh, you know,

874
01:10:31.239 --> 01:10:34.159
Discord wants to IPO at some point, so uh you know, I

875
01:10:34.199 --> 01:10:38.720
feel like having those wins in there
in their bag is important. Just need

876
01:10:38.840 --> 01:10:46.880
Microsoft teams to uh continue on.
It's pretty as bad. Yeah. Every

877
01:10:46.920 --> 01:10:50.560
product has their like product name and
tagline. For Discord, it's going to

878
01:10:50.600 --> 01:10:58.800
be Discord. We're not Slack.
Yeah, it's it's I like, I

879
01:10:59.239 --> 01:11:04.800
really like the playfulness and the like. There's some weirdness, like it takes

880
01:11:04.960 --> 01:11:10.159
use to definitely if you're coming from
Slack, But I like the pay playfulness.

881
01:11:10.239 --> 01:11:14.840
I like all the community features,
the events, the uh. It

882
01:11:14.880 --> 01:11:20.279
definitely feels like we've debated it when
we started the when we started the community,

883
01:11:20.319 --> 01:11:24.079
and it was a mistake. I
feel like we should have started with

884
01:11:24.119 --> 01:11:29.640
Discord. I feel like Discord has
come a long way, and probably in

885
01:11:29.680 --> 01:11:33.920
the last two years, I'm going
to say as far as like the number

886
01:11:33.960 --> 01:11:40.560
of features and options, but the
biggest one for me has been the improvements

887
01:11:40.600 --> 01:11:45.239
they've made. And like the onboarding
experience and getting started because it was early

888
01:11:45.279 --> 01:11:49.760
on it was a hassle to get
connected and God forbid you. You get

889
01:11:49.760 --> 01:11:53.720
a second device and have to sign
in again. It's like, ah,

890
01:11:54.119 --> 01:11:59.640
it's great, I'm just starting a
new account. Yeah, totally. Or

891
01:11:59.680 --> 01:12:02.279
you make it through the onboarding experience
and realized you did create a second account

892
01:12:02.319 --> 01:12:11.760
without meaning to cool. So anything
that we should have covered that we haven't

893
01:12:11.760 --> 01:12:16.800
talked about yet. For Wing,
No, I think you let me talk

894
01:12:16.800 --> 01:12:26.760
a lot. That's that's my job. Give an introvert to mic and everything

895
01:12:26.800 --> 01:12:32.520
else works itself out. Awesome,
man, Well let's do some pics,

896
01:12:34.159 --> 01:12:38.039
Warren. Did you bring a pick
this week? Yeah, of course,

897
01:12:38.119 --> 01:12:45.600
right, that's a sort of requirement
for sure. My pick is going to

898
01:12:45.640 --> 01:12:48.600
be Building micro Services by Sam Newman, So I'm going to stay on my

899
01:12:48.680 --> 01:12:55.479
book trend. Really, I feel
like this is what converted me to personally

900
01:12:55.479 --> 01:13:00.119
the micro services in my career,
where the advantages are really hot, to

901
01:13:00.159 --> 01:13:02.319
think about them, how to interface
between them, how to build them effectively.

902
01:13:02.920 --> 01:13:06.279
Uh, it's a really great book. Honestly, I think it's still

903
01:13:06.279 --> 01:13:11.760
in the community. It's probably considered
the I don't say holy Grail, but

904
01:13:12.239 --> 01:13:17.880
for sure relic that represents how to
how to push the industry forward? Ran

905
01:13:18.439 --> 01:13:28.800
excellent. What about you? I'll
pick The Three Body Problem. Have you

906
01:13:28.960 --> 01:13:35.319
had a chance to watch it?
Both both actually like the the I read

907
01:13:35.359 --> 01:13:41.479
the books a while ago, and
probably one of the best science fiction serious

908
01:13:41.640 --> 01:13:45.920
I've ever read. I really love
science fiction, and this one's like the

909
01:13:45.960 --> 01:13:48.800
first book is a bit it.
I actually read the first one and only

910
01:13:48.840 --> 01:13:54.920
read the second one kind of got
came back to the serious few years later.

911
01:13:55.279 --> 01:13:57.800
It didn't, it didn't make it
didn't. It didn't for some reason

912
01:13:57.840 --> 01:14:00.359
then when it didn't want to continue. But then as you continue to read

913
01:14:00.399 --> 01:14:11.199
the series, it's just amazing.
It's just an amazing story and beautifully written

914
01:14:11.439 --> 01:14:16.720
and creative and it goes really really
really far, and so I think like

915
01:14:17.159 --> 01:14:21.279
Netflix has just released the first season
and it was so much fun to watch,

916
01:14:21.520 --> 01:14:28.399
especially knowing where this is going,
and so highly recommend this the book

917
01:14:28.439 --> 01:14:34.880
series and the and the show.
And it's like it's it's there's something I

918
01:14:34.920 --> 01:14:41.319
think I can tell, like the
kind of like the theme basically is aliens

919
01:14:41.319 --> 01:14:45.800
are coming in three hundred years.
We know that they're coming. What happens

920
01:14:45.800 --> 01:14:50.479
with humanity? Right? Like what
what does this knowledge due to humanity?

921
01:14:50.680 --> 01:15:00.720
Right? Like that's just crazy?
So right you mentioned you you also read

922
01:15:00.720 --> 01:15:03.960
a little bit some of it.
I read the first two books and seen

923
01:15:04.000 --> 01:15:08.760
the show. Honestly, they're sort
of like the same concept but different,

924
01:15:08.840 --> 01:15:14.800
completely different content as far as watching
or reading. Obviously the same challenge,

925
01:15:15.079 --> 01:15:18.560
but they go in different directions,
so you can get the same enjoyment twice

926
01:15:18.640 --> 01:15:23.159
by by going about them. It's
not really like book is better than the

927
01:15:23.279 --> 01:15:25.960
movie. Yeah, yeah, which
is very rare. It's very differ.

928
01:15:26.520 --> 01:15:29.000
Both of them are very very well
done, for sure. I mean I

929
01:15:29.000 --> 01:15:33.560
feel like you said something controversial when
you said it's the best science fiction I

930
01:15:33.600 --> 01:15:40.159
have, you know, but I
don't want to get this into an argument

931
01:15:40.920 --> 01:15:44.000
said, it's almost the best,
because to me, the best always foundation.

932
01:15:44.159 --> 01:15:47.840
It's always like, oh man,
see, you know, just agree

933
01:15:47.840 --> 01:15:51.560
to disagree there, Okay, no, no gloves come off, let's go.

934
01:15:53.039 --> 01:15:57.520
Oh for sure, for sure it's
Frank Herbert's Dune, hands down,

935
01:15:57.600 --> 01:16:00.800
no question. I admit I didn't. I didn't read the book, so

936
01:16:00.840 --> 01:16:03.760
maybe I should. I know that
I should know that I should. It's

937
01:16:04.359 --> 01:16:10.720
like the idea of world building is
so far, even beyond the three body

938
01:16:10.760 --> 01:16:13.760
problem. How to think about it
and the things that are generated in order

939
01:16:13.800 --> 01:16:18.000
to further the universe. Also the
length of time, you know, much

940
01:16:18.039 --> 01:16:23.800
more further out than even three body
problem. It's nuts, it's not you

941
01:16:23.840 --> 01:16:30.279
haven't read the last book. Yeah, so all right, So what I'm

942
01:16:30.279 --> 01:16:34.760
hearing here is Warren is going to
go read the third book and then you're

943
01:16:34.760 --> 01:16:42.159
going to come back on the show
and we're gonna Yeah, he's just trying

944
01:16:42.159 --> 01:16:45.720
to read The Expense now, which
is also pretty good for sure, also

945
01:16:45.840 --> 01:16:51.359
great science fiction book. Will just
trying to get out of sharing his pick

946
01:16:51.439 --> 01:16:58.039
though. Oh no, I'm ready
with a pick. Mine is is it's

947
01:16:58.079 --> 01:17:01.560
about knife sharpening because I did not
know this was a rabbit hole. I

948
01:17:01.720 --> 01:17:08.960
was gonna go down, right,
So I ended up watching Alex over on

949
01:17:09.119 --> 01:17:14.399
the Outdoors fifty five YouTube channel on
how to sharpen your knife. And he's

950
01:17:14.439 --> 01:17:19.439
got to have a complete list of
his videos here. It doesn't say him

951
01:17:20.399 --> 01:17:26.479
two hundred and sixty three videos on
how to sharpen your knives. I didn't

952
01:17:26.520 --> 01:17:29.880
know you could talk about it that
many times, but they're all like super

953
01:17:30.000 --> 01:17:38.600
interesting. And as a result,
I bought a diamond grit sharpening stone and

954
01:17:38.840 --> 01:17:41.600
have been going through and sharpening all
my eyes And I thought I could do

955
01:17:41.640 --> 01:17:45.399
a pretty decent job of sharpening and
eyes before, but this takes it to

956
01:17:45.640 --> 01:17:53.079
a whole new level, like surgical
grade sharpening. And so go check out,

957
01:17:53.439 --> 01:17:59.319
go check out his channel. Outdoors
fifty five is the YouTube channel for

958
01:17:59.439 --> 01:18:01.439
two reasons. One, so you
can learn everything you didn't know that you

959
01:18:01.920 --> 01:18:05.600
needed to know about sharpening your knife. But also just like the content creation,

960
01:18:06.640 --> 01:18:12.279
yeah right, And but also just
like for content creation, like how

961
01:18:12.279 --> 01:18:17.760
do you create two hundred and sixty
three entertaining videos about the same topic,

962
01:18:18.159 --> 01:18:21.399
Because he's done that, so it's
actually pretty cool to share off for two

963
01:18:21.439 --> 01:18:25.840
reasons, and that's my pick for
the week. Cool, all right,

964
01:18:26.399 --> 01:18:29.720
well, thanks for joining us,
Eeled. This is being cool and I'm

965
01:18:30.359 --> 01:18:33.479
yeah, I'm excited about this because
I you know, I I really think

966
01:18:33.520 --> 01:18:39.199
that this is the direction our industry
is going is until it's an interesting space.

967
01:18:39.760 --> 01:18:44.960
There's quite a few people working on
this, and and so yeah,

968
01:18:45.079 --> 01:18:47.039
I think it's super cool. Really
appreciate you taking the time to come and

969
01:18:47.119 --> 01:18:51.840
sit with us on a show.
Thanks for having me guys, yeah,

970
01:18:53.600 --> 01:18:58.880
Lawren, thank you, appreciate having
you here and for yeah, I guess

971
01:18:58.960 --> 01:19:03.159
most importantly to everyone listening, thanks
for listening, because that's not really a

972
01:19:03.159 --> 01:19:06.640
whole lot of reason for us to
do this if you're not listening. Oh

973
01:19:08.079 --> 01:19:13.479
does it for himself? Right?
Awesome? All right, Well it's getting

974
01:19:13.479 --> 01:19:16.600
awkward at this point, so I'm
gonna kill the stream and thanks again,

975
01:19:16.960 --> 01:19:18.239
and we'll see you all next week.

