WEBVTT

1
00:00:05.040 --> 00:00:08.720
Hey, everybody, and welcome to
another episode of the Ruby Rogues podcast.

2
00:00:09.080 --> 00:00:11.839
This week, on our panel,
we have Andrew Mason, Good morning,

3
00:00:12.320 --> 00:00:17.160
Nate Hawkins, Hello, Hello,
Dave Kimira. Hi everyone. I'm Charles

4
00:00:17.160 --> 00:00:20.519
Maxwood from duv Chat dot TV.
And this week we have a special guest,

5
00:00:20.519 --> 00:00:23.760
and that's Olivier Lacart. Hello.
Now, do you want to just

6
00:00:23.960 --> 00:00:26.559
remind people who you are? We
haven't had John for a while. That's

7
00:00:26.559 --> 00:00:29.920
true. So I am a French
person. I originally come from Paris,

8
00:00:29.920 --> 00:00:32.640
France. I moved to the US
when I was I don't know, in

9
00:00:32.679 --> 00:00:36.600
my twenties to learn more about how
to make websites and eventually ended up at

10
00:00:36.679 --> 00:00:42.399
Code School, where I've made websites
and then basically I have been running and

11
00:00:42.439 --> 00:00:45.560
maintaining Quotes School for years until it
was acquired by Plural Site, where I

12
00:00:45.600 --> 00:00:51.159
work now doing interactive education stuff for
people who like to learn web things.

13
00:00:51.719 --> 00:00:57.880
Nice and we had some discussion before
the call, but yeah, Plural Sites

14
00:00:58.039 --> 00:01:03.240
a local company at least to me
in Utah, and it was interesting when

15
00:01:03.240 --> 00:01:06.040
it got acquired, yeah, just
to see where they would go with it.

16
00:01:06.079 --> 00:01:08.400
And it sounds like just from talking
to you as a little bit of

17
00:01:08.400 --> 00:01:12.000
setup and then you can dive us
into this. Is that the kind of

18
00:01:12.079 --> 00:01:15.760
sunset of code school itself. It
sounds like they're still doing the content,

19
00:01:15.799 --> 00:01:21.040
but they're not using the platform anymore. Do you want to just give us

20
00:01:21.079 --> 00:01:23.560
a rundown of our topic here?
It's the life and death of the rails

21
00:01:23.560 --> 00:01:29.879
app. Yeah, so essentially it's
kind of talking about the whole spectrum of

22
00:01:30.120 --> 00:01:33.000
when you create a rails app,
or any app. Really, when you

23
00:01:33.040 --> 00:01:36.079
get excited about a technology, say
you're playing with an elixir or any other

24
00:01:36.159 --> 00:01:40.040
technology like that, and you start
building it. The excite, the initial

25
00:01:40.079 --> 00:01:44.519
excitement and all the kind of like
oooh dependency shelf, like picking all the

26
00:01:44.560 --> 00:01:48.319
things in the candy jars and everything, and then when it starts actually getting

27
00:01:48.319 --> 00:01:53.280
customers, and when it starts getting
traction and scaling issues and people scaling issues,

28
00:01:53.439 --> 00:01:59.359
and eventually either you're successful or you're
not successful. If you happen to

29
00:01:59.400 --> 00:02:02.599
be successful, well, either you
stay independent or you get acquired. And

30
00:02:02.640 --> 00:02:06.799
where you get acquired, there's a
lot of things you think are going to

31
00:02:06.840 --> 00:02:09.479
be simpler, and of course they're
not. And either you stick around as

32
00:02:09.599 --> 00:02:13.280
kind of like a part of the
thing that acquired you as an app,

33
00:02:13.360 --> 00:02:17.960
you integrate, which is a whole, a whole technical you know minefield,

34
00:02:19.240 --> 00:02:23.120
or you just become completely ingested in
a new thing, which is eventually what

35
00:02:23.159 --> 00:02:25.759
happened to us. I think it
took two years. So there's just so

36
00:02:25.960 --> 00:02:30.719
many people things and technical things that
can be discussed, but most mostly it's

37
00:02:30.800 --> 00:02:35.680
just like this idea that we we
always plan for the wrong things. We're

38
00:02:35.680 --> 00:02:39.120
always like expecting like the web scale
is going to be the problem, or

39
00:02:39.800 --> 00:02:45.159
that you know, anything that's not
actually the real problem, which is usually

40
00:02:45.240 --> 00:02:50.479
people problem, and just like the
churn and the technical debt and things like

41
00:02:50.520 --> 00:02:53.879
that, and then also the end
of it, like you just never plan

42
00:02:53.039 --> 00:02:55.400
for that. And for user privacy, for instance, there's a lot of

43
00:02:55.439 --> 00:03:00.080
problems, especially recently with GPR,
where when you close an app or you've

44
00:03:00.240 --> 00:03:06.960
closed a company, you have this
treasure chest of privacy data that you're supposed

45
00:03:06.960 --> 00:03:09.400
to do things with now and it
used to be much simpler, just like

46
00:03:09.439 --> 00:03:14.039
sell it to someone if you're not
moral. If you're moral, you try

47
00:03:14.080 --> 00:03:16.199
to safeguard it and put it somewhere
safe. But if you get hacked,

48
00:03:16.199 --> 00:03:21.039
what happens. You know a lot
of data breaches happen like that because people

49
00:03:21.039 --> 00:03:24.080
put stuff away and forgot to lock
it nicely. So yeah, lots of

50
00:03:24.080 --> 00:03:29.080
stuff like that. Interesting. A
few other ways that I've seen this play

51
00:03:29.120 --> 00:03:31.879
out too, are I mean,
like Twitter when they switched over to Skala,

52
00:03:32.159 --> 00:03:36.240
moved a lot of stuff off of
Rails, you know, for different

53
00:03:36.240 --> 00:03:40.039
performance and scalability issues, and so
that was kind of a rewrite. I've

54
00:03:40.080 --> 00:03:45.000
seen companies kind of peel pieces off
because it's cheaper to run it in the

55
00:03:45.039 --> 00:03:49.400
cloud in different ways. So there
are a lot of different things that people

56
00:03:49.439 --> 00:03:52.719
are concerned with. And I think
also just to your point, when we

57
00:03:52.759 --> 00:03:54.240
get started with a Ruby on Rails
app, I think a lot of times

58
00:03:54.280 --> 00:03:59.240
we don't think ahead just to the
fact that eventually the current version of Rails

59
00:03:59.319 --> 00:04:02.560
is going to become ob right,
and so sooner than later, right,

60
00:04:02.680 --> 00:04:05.919
and so all of a sudden,
you know, we've we've got to update

61
00:04:05.919 --> 00:04:09.479
it one way or the other.
And so I've I've talked to a bunch

62
00:04:09.520 --> 00:04:13.080
of companies where they didn't plan for, oh, we've got to upgrade to

63
00:04:13.159 --> 00:04:15.879
Rails four, and then all of
a sudden they've got a Rails three app.

64
00:04:15.960 --> 00:04:18.240
They've got to upgrade to Rails five, and so they've got to upgrade

65
00:04:18.279 --> 00:04:23.319
and then upgrade again and then update
all the gems and so yeah, this

66
00:04:23.399 --> 00:04:27.240
planning theme turns out to be a
nightmare in some ways. But at the

67
00:04:27.240 --> 00:04:30.839
same time, I wonder, is
there is there really a good way to

68
00:04:30.040 --> 00:04:33.720
plan ahead for the things that are
going to die off in your app,

69
00:04:33.800 --> 00:04:38.160
or for your app to die off. It's tricky. I don't know if

70
00:04:38.240 --> 00:04:41.920
anybody had an opinion. For us, it was really tricky to plan ahead

71
00:04:42.480 --> 00:04:46.680
because every time we predicted, as
programmers were so bad at predicting everything.

72
00:04:46.079 --> 00:04:49.279
We make estimates that are completely lies, and we know it, and we

73
00:04:49.360 --> 00:04:54.879
try to make them better lies,
but not like truth. That's super hard.

74
00:04:55.120 --> 00:04:57.920
So I think that for like you
get an example of, like upgrading

75
00:04:57.959 --> 00:05:03.199
dependencies. Let me tell you how
Code School, the course runner app that

76
00:05:03.240 --> 00:05:08.800
had interactive like courses released every month, worked every month. We would make

77
00:05:08.839 --> 00:05:12.079
a new Rails app that was the
course. We would skin it, have

78
00:05:12.279 --> 00:05:16.120
our front end team design HTMLCSS,
JavaScript, everything for that app. If

79
00:05:16.160 --> 00:05:20.519
there was improvements to the way that
we were handling for like server side front

80
00:05:20.600 --> 00:05:25.120
end stuff, we would make those
improvements in the app, at least at

81
00:05:25.160 --> 00:05:29.480
first and then we would release a
whole new app that was independent talk to

82
00:05:30.120 --> 00:05:32.800
the you know main web server like
domain code school, dot com server with

83
00:05:33.040 --> 00:05:39.480
ooth and APIs and synchronous messaging and
stuff like that, which means that within

84
00:05:39.519 --> 00:05:44.399
a few months of being operating as
a subscription based company, we had twenty

85
00:05:45.120 --> 00:05:49.680
or so Rails apps with different versions. Some of them were still happy about

86
00:05:49.680 --> 00:05:55.800
that. Beta versions of Rails that
were running completely different, like security version,

87
00:05:55.839 --> 00:05:59.759
like you know, patch versions,
or even minor versions of a Ruby

88
00:05:59.839 --> 00:06:03.360
and Rails. So it's just like
those are the kinds of things that you

89
00:06:03.399 --> 00:06:08.319
can't necessarily plan for a lot of
other things, but the kind of decisions

90
00:06:08.319 --> 00:06:14.480
where moving fast and breaking things kind
of mindsets quickly quickly you can see if

91
00:06:14.480 --> 00:06:18.040
you look around the feel and kind
of take a breather for a second,

92
00:06:18.040 --> 00:06:21.319
you can see, oh crap,
this is not going to work, Like

93
00:06:21.399 --> 00:06:26.759
within a few months. Reassessing is
kind of like this thing of like,

94
00:06:27.439 --> 00:06:32.399
yeah, the speed of iteration quickly
becomes We're basically to me, it's like

95
00:06:32.839 --> 00:06:36.399
putting everything on a credit card.
That's exactly how I picture it. Like

96
00:06:36.560 --> 00:06:40.199
doing this kind of stuff is like, oh, you have a seventeen or

97
00:06:40.240 --> 00:06:44.279
eighteen percent interest rate, and it's
cool because you have this twenty thousand dollars

98
00:06:44.319 --> 00:06:46.759
credit limit, but that's going to
run out real quick. So yeah,

99
00:06:47.040 --> 00:06:50.240
I don't know. Planning is hard. Get Up kind of has a similar

100
00:06:50.279 --> 00:06:55.079
story where they forked rails and kind
of had a custom flavor of it for

101
00:06:55.480 --> 00:07:01.519
several years and then finally have just
got back onto the main line of Rails

102
00:07:01.560 --> 00:07:04.560
release, which is cool because now
they can contribute back to the framework.

103
00:07:04.600 --> 00:07:10.600
Right, And that's actually Eileen,
Eileen, you should tell and Ann Patterson

104
00:07:10.680 --> 00:07:14.199
working on that a bunch and they
gave a talk or she gave a talk

105
00:07:14.240 --> 00:07:18.319
at res coff for Ruby CLF or
I think it right, and that talk

106
00:07:18.639 --> 00:07:24.279
tells you everything. Right, it's
just three sporadically with you know, patchy

107
00:07:25.279 --> 00:07:29.639
involvement from a bunch of different people. It's essentially a three year effort two

108
00:07:29.759 --> 00:07:34.079
or even more sometimes just to get
back to you're not that special, right,

109
00:07:34.240 --> 00:07:38.800
and you can contribute back. And
I think that's the situation that we

110
00:07:38.839 --> 00:07:41.800
find a lot of ourselves in.
It's you know, we read a blog

111
00:07:41.879 --> 00:07:45.879
article where we see something new and
cool and we're like, hey, I

112
00:07:45.879 --> 00:07:49.600
could use that in my application,
and so now you have your standard,

113
00:07:49.720 --> 00:07:54.279
you know, very close to the
rail's core application. Now you're diverging a

114
00:07:54.279 --> 00:07:58.680
bit, whether it's adding in a
gym or a client side framework, or

115
00:07:58.759 --> 00:08:03.120
some other kind of infrastructure or architecture
like micro services or lend of functions.

116
00:08:03.360 --> 00:08:07.600
You start branching out or in your
case, creating a separate app for each

117
00:08:09.040 --> 00:08:15.199
instance or product that you're doing,
and it's going to complicate everything. Maybe

118
00:08:15.199 --> 00:08:18.519
not today. Maybe today you said
a few hours, but you're gonna end

119
00:08:18.560 --> 00:08:22.959
up costing yourself many many more hours
in the long run. And I think

120
00:08:22.000 --> 00:08:28.639
that's where technical debt can eventually cause
an application to die if you're not maintaining

121
00:08:28.680 --> 00:08:35.039
it, if you diverge so much
that now the application is almost unmaintainable because

122
00:08:35.080 --> 00:08:41.080
it's such a mess. Now those
original people who implemented those ideas are gone.

123
00:08:41.480 --> 00:08:43.399
Now you have a new group of
people coming in and they have like

124
00:08:43.759 --> 00:08:48.279
very little idea of its architecture.
Where if you sit to the rail's corel

125
00:08:48.279 --> 00:08:54.120
in something, then you're going to
be able to bring in any rails developer,

126
00:08:54.159 --> 00:08:56.960
no matter who it is, and
then they're gonna be able to look

127
00:08:56.000 --> 00:08:58.879
at the application, look at your
gym file, look at your routes,

128
00:09:00.320 --> 00:09:03.159
look at you know, some of
the other things that you have going on,

129
00:09:03.639 --> 00:09:07.080
and they're going to be able to
get to production or you know,

130
00:09:07.679 --> 00:09:11.480
start coutting on it really quickly.
And so I've made this mistake many times

131
00:09:11.519 --> 00:09:16.159
where I thought that, oh,
I have this very special use case and

132
00:09:16.279 --> 00:09:20.200
so I tried doing something and it
always comes back to bite me. So

133
00:09:20.559 --> 00:09:24.679
recently, in the past year,
I've been on this real kick where it's

134
00:09:24.720 --> 00:09:31.200
a question more or less is your
Rails application maintainable? And I think that

135
00:09:31.440 --> 00:09:35.600
if you can confidently say yes,
then you're going to be able to easily

136
00:09:35.759 --> 00:09:41.360
just bump the Rails version to a
bundle update on your application, run your

137
00:09:41.399 --> 00:09:46.519
tests, go to Rails diff and
then see the differences between the configuration files

138
00:09:46.559 --> 00:09:50.759
from your current Rails application version and
the new one, and then everything is

139
00:09:50.799 --> 00:09:54.120
just going to work. Updating Rails
should not be a hard process. We

140
00:09:54.200 --> 00:09:58.600
make it hard through the decisions that
we've made over time. Yeah, And

141
00:09:58.639 --> 00:10:03.399
it's all so like when you're in
the initial startup phase, it's very tricky

142
00:10:03.440 --> 00:10:07.559
because you're any longer than fifteen minute
problem solve feels like you're spending so much

143
00:10:07.600 --> 00:10:11.480
money that you don't have and that's
the infancy stage, which is very like

144
00:10:11.879 --> 00:10:16.360
you think. It's like you're predator
and you're trying to find something to eat

145
00:10:16.440 --> 00:10:20.279
because you're going to die of starvation. It seems very dire, so you

146
00:10:20.320 --> 00:10:24.360
make really really bad I mean,
it's that there's a similar problem with the

147
00:10:24.360 --> 00:10:28.279
poverty in general. It's just like
when you're impoverished or you're hungry, your

148
00:10:28.279 --> 00:10:33.919
brain doesn't have the same capacity to
make like long, longer terms, safer,

149
00:10:33.039 --> 00:10:37.840
stable decisions. It's not because you're
stupid, it's because it's you're in

150
00:10:37.879 --> 00:10:39.960
a bad setup. In context,
we had the same the prime with people

151
00:10:39.960 --> 00:10:45.399
like you just mentioned people coming in. We had people coming out because startups,

152
00:10:45.559 --> 00:10:50.600
by very nature just people leave all
the time because they usually people who

153
00:10:50.639 --> 00:10:52.720
start things are not great at finishing
them. It's kind of sound like a

154
00:10:52.759 --> 00:10:56.159
slight dig, but that's just a
natural thing. A lot of people are

155
00:10:56.159 --> 00:10:58.879
like, ooh, super exciting and
I have tons of energy at the beginning.

156
00:10:58.159 --> 00:11:03.360
They don't really like the slog of
maintaining things. And as you said,

157
00:11:03.720 --> 00:11:05.480
if they customize everything, if they
fork a bunch of gems, if

158
00:11:05.519 --> 00:11:09.279
they do all that stuff, then
it's a nightmare. But it seems like

159
00:11:09.320 --> 00:11:13.960
it makes sense during the time.
And there's moments during the Ruby and Rails

160
00:11:13.960 --> 00:11:16.960
development cycles where or you're in any
gem cycle or you're like, oh god,

161
00:11:18.000 --> 00:11:22.519
this is not moving, like it's
not they're not doing what I want.

162
00:11:22.919 --> 00:11:26.399
So I want them to upgrade.
I want them to deprecate this other

163
00:11:26.399 --> 00:11:28.279
thing. I don't want them to
use jiquary anymore. And you're like,

164
00:11:28.320 --> 00:11:31.600
oh, I just fork it,
because literally fork it. I don't want

165
00:11:31.600 --> 00:11:35.440
to deal with this, and that's
the moment that it's hard. Like what

166
00:11:35.480 --> 00:11:39.960
you just said is very wise.
But during these phases, these kind of

167
00:11:39.960 --> 00:11:45.440
like desert crossings are like the slow
slumps in development of Rails or Ruby or

168
00:11:45.480 --> 00:11:48.960
anything, You're like, h screw
it, I'll just fork it. Yeah,

169
00:11:50.000 --> 00:11:54.799
everybody that starts a project and experiences
that pain and making some of those

170
00:11:54.039 --> 00:11:58.759
rash decisions should be forced to stay
at a company long enough to deal with

171
00:11:58.799 --> 00:12:09.200
them. Oh hi, I wish, And you know, you know,

172
00:12:09.279 --> 00:12:11.720
I know I've said this a few
times, but I think my experience in

173
00:12:11.840 --> 00:12:18.840
rails projects specifically is rather unique because
I'm going to hit my tenure anniversary with

174
00:12:18.960 --> 00:12:24.240
the same job next month, and
so I've had to live through all of

175
00:12:24.279 --> 00:12:30.759
the horrible decisions that I've made,
and then looking back at those decisions,

176
00:12:30.799 --> 00:12:35.159
I'm like, wow, I cannot
believe this idiot implemented something this way,

177
00:12:35.279 --> 00:12:39.480
Like who the hell would decide to
store images in the database? Why did

178
00:12:39.519 --> 00:12:41.720
you think that was a good idea? And you know, at the time,

179
00:12:41.840 --> 00:12:46.360
it was because like, well,
we have multiple web servers, so

180
00:12:46.840 --> 00:12:50.519
they need to be able to all
hit the same images. And then you

181
00:12:50.559 --> 00:12:52.919
know, like, well, why
don't you just use something like as three

182
00:12:52.039 --> 00:12:56.200
or some cloud storage, Like,
well, that's going to be so many

183
00:12:56.240 --> 00:12:58.879
hoops I have to jump through because
my bosses are going to you know,

184
00:13:00.240 --> 00:13:03.440
require a vendor relationship and this kind
of thing. So I'm like, the

185
00:13:03.519 --> 00:13:07.960
image is only ten kilobytes each,
that's not a big deal. Just throw

186
00:13:07.000 --> 00:13:13.320
them in the database. Well,
seven years later, that database table is

187
00:13:13.399 --> 00:13:18.159
over thirty gigabytes and it just has
a user idea and to image. There's

188
00:13:18.200 --> 00:13:22.919
nothing much in there, but it
just got really utilized. So now it's

189
00:13:22.960 --> 00:13:24.600
like, crap, what do we
do now? We had to convert all

190
00:13:24.639 --> 00:13:31.080
these base sixty fours back into a
jpegger AP and G and then upload that

191
00:13:31.120 --> 00:13:33.679
to S three and then create some
tie back into the rails at So it's

192
00:13:33.679 --> 00:13:37.480
a mess, but at the time
it was a decision because I was too

193
00:13:37.600 --> 00:13:43.279
lazy to go to management and request
access to this resource to do it properly.

194
00:13:43.840 --> 00:13:46.320
So it made sense at the time. Right, even if you like

195
00:13:46.759 --> 00:13:50.960
slap on yourself, like back in
the back in time and you travel,

196
00:13:50.000 --> 00:13:52.720
it's just like, oh, that
makes sense back in time. This is

197
00:13:52.720 --> 00:13:56.480
why like, commits are a big
deal to me, and the reason why

198
00:13:56.519 --> 00:14:00.879
I think anybody with long tenure values
commits so heavily is that whenever someone leaves

199
00:14:00.919 --> 00:14:03.240
and at least you have a commit, you can be like, Okay,

200
00:14:03.320 --> 00:14:05.279
well I hate you, but at
least I understand why you did this,

201
00:14:05.720 --> 00:14:11.039
and it's you, which means tenure
is humbling because quickly, like within a

202
00:14:11.120 --> 00:14:15.039
year, you'll see commits you're like, wow, why is it like that,

203
00:14:15.399 --> 00:14:18.399
And it's you in that thing you
just described because you're like, I'm

204
00:14:18.440 --> 00:14:20.840
stuck. This is my wall.
I have to deal with this thing,

205
00:14:22.440 --> 00:14:24.960
and I'm doing the best with the
tools that I have. Yeah, but

206
00:14:26.000 --> 00:14:31.120
it's just one of those examples where
I diverged from the best practices route and

207
00:14:31.360 --> 00:14:33.720
it worn't the time, and it
was great, and it was because it

208
00:14:33.720 --> 00:14:37.039
was a business need, or at
least I justified it as a business need.

209
00:14:37.559 --> 00:14:41.360
And then many years down the road, it's like, Okay, it's

210
00:14:41.399 --> 00:14:45.240
just gonna be easier to rewrite this
application, or it's gonna be easier to

211
00:14:45.320 --> 00:14:48.960
do you know something else than to
have to continue to maintain this thing because

212
00:14:50.000 --> 00:14:52.919
it was not maintainable. It didn't
fit into this little paradigm of you know,

213
00:14:54.240 --> 00:14:56.679
be able to just run bundle update, run your tests, and then

214
00:14:56.799 --> 00:15:03.279
do rail stiff to see the changes. Now I over complicated its architecture through

215
00:15:03.360 --> 00:15:09.879
poor decision. So I'd like to
fold this kind of technical story back into

216
00:15:09.120 --> 00:15:13.320
the narrative that all of her started
with with Code School of being acquired,

217
00:15:15.159 --> 00:15:18.840
and it sounds like you maybe had
some of these architectural some of this architectural

218
00:15:18.840 --> 00:15:26.080
complexity baked into Code School. What
was the team dynamical life. So at

219
00:15:26.080 --> 00:15:28.080
the time of the acquisition, we
had my favorite team I've ever had,

220
00:15:28.399 --> 00:15:33.960
Like it was the best structure of
a team I think I've ever had.

221
00:15:33.000 --> 00:15:37.639
The time had its team non computer
scientists, and then the two women,

222
00:15:37.799 --> 00:15:43.600
one of them was a PhD candidate
in physics who had dropped out for because

223
00:15:43.919 --> 00:15:48.879
it was driving her crazy that she
couldn't get results like she wanted feedback,

224
00:15:48.080 --> 00:15:52.240
which sounds like a programmer problem.
And then the other kid, Delphin,

225
00:15:52.240 --> 00:15:54.960
who's not kid, have actually it's
just like this magic like context monster,

226
00:15:56.039 --> 00:16:00.000
who just like absorbed contest, is
a great team lead. Basically she had

227
00:16:00.039 --> 00:16:03.120
had the computer science knowledge and everything, but more importantly, she was very

228
00:16:03.159 --> 00:16:07.679
good at like five steps ahead thinking
like you, we're going to do this,

229
00:16:07.720 --> 00:16:10.440
We're going to do that, And
so we had managed to build a

230
00:16:10.480 --> 00:16:15.639
system that was despite the fact that, yeah, we had limitations because I

231
00:16:15.039 --> 00:16:22.919
think that and the things Dave talked
about where we at the time vaguely remembering

232
00:16:22.919 --> 00:16:26.799
but we had like roughly three to
five million users, not constantly, and

233
00:16:26.840 --> 00:16:30.080
then subscribers. I vaguely remember those
numbers, but I think we're like twenty

234
00:16:30.120 --> 00:16:33.919
thousand, like paid subscribers or something
like that. So it wasn't gigantic,

235
00:16:33.960 --> 00:16:37.000
but it you know, there's a
lot of things to do and often not

236
00:16:37.200 --> 00:16:41.200
enough time to do them, so
we had to like cut and prioritize,

237
00:16:41.200 --> 00:16:45.759
and someone had to roll into marketing
development. Occasionally, a bunch of people

238
00:16:45.759 --> 00:16:48.639
are doing billing work, a bunch
of people are doing innovation work. And

239
00:16:48.679 --> 00:16:52.039
then someone like me had to be
doing technical dead stuff. So Ruby upgrades

240
00:16:52.080 --> 00:16:59.960
long running, Rails upgrades long running
everything before both Gymnasium and which doesn't exist,

241
00:17:00.039 --> 00:17:03.960
Amurba has been rolled into get lab
and depend about existed, which makes

242
00:17:04.000 --> 00:17:07.839
it way easier to deal with these
things because as I don't know if it

243
00:17:07.839 --> 00:17:11.839
was Dave that mentioned that, it's
just like constantly be upgrading was a thing

244
00:17:11.920 --> 00:17:15.359
that I was somehow to think that
a human was doing this. It just

245
00:17:15.400 --> 00:17:18.559
sounds like such a waste of time. All these prs that are opened by

246
00:17:18.559 --> 00:17:23.680
DependaBot to update your dependencies are just
like magical so much so, Yeah,

247
00:17:23.720 --> 00:17:26.680
that was the dynamic at the time. You got to cut yourself some slack.

248
00:17:26.720 --> 00:17:30.599
I mean, with a team of
four with twenty thousand paying subscribers and

249
00:17:30.640 --> 00:17:37.279
moving like managing the entire business,
It's it's easy to see why some poor

250
00:17:37.279 --> 00:17:41.079
decisions might get made. Right.
Yes, absolutely. Also, this is

251
00:17:41.119 --> 00:17:45.519
the kicker that I didn't mention is
that originally Quotes School built its own billing

252
00:17:45.599 --> 00:17:48.960
system. It wasn't quot schools Enny
Lab, so I blame them, but

253
00:17:48.000 --> 00:17:52.319
they're they're nice people. They just
planned to reuse it with customers and they

254
00:17:52.400 --> 00:17:56.400
never did, I think, and
so we had to maintain and move off

255
00:17:56.440 --> 00:18:03.319
of that to a semi stripe has
Stripe subscription now where it manages the whole

256
00:18:03.359 --> 00:18:07.480
life cycle stuff, but it didn't
do that before, so we had to

257
00:18:07.519 --> 00:18:11.240
still build that like everyone else and
migrate everything. And I think that was

258
00:18:11.359 --> 00:18:15.400
the year we got acquired, was
the year we did that. So we

259
00:18:15.440 --> 00:18:18.400
did all that work and then we
got acquired, and of course the people

260
00:18:18.400 --> 00:18:21.559
who acquired us were like, oh, we have this other subscription vendor.

261
00:18:22.400 --> 00:18:26.039
Yeah, I'm curious kind of the
specifics to the acquisition in terms of what

262
00:18:26.160 --> 00:18:30.319
the intent was, what you thought
was going to happen, versus what actually

263
00:18:30.319 --> 00:18:37.880
happened. I think I'm speaking for
founders and leadership in that sense. I

264
00:18:37.920 --> 00:18:44.759
think for every SaaS software service company
or even content educational company, there's always

265
00:18:44.759 --> 00:18:48.000
that fear that there's always the driving
fear, which is you don't have enough

266
00:18:48.000 --> 00:18:52.640
content people stick around to drive up
the lifetime value of a customer. So

267
00:18:52.759 --> 00:18:56.400
I think our LCV was around I
vaguely remember, so there's probably wrong,

268
00:18:56.640 --> 00:19:02.319
but I think eighty dollars. So
it's like it's really hard to deal with

269
00:19:02.519 --> 00:19:06.480
those facts when you see them they're
terrifying. This is the data you gather

270
00:19:07.160 --> 00:19:11.039
makes you fear of death is not
just vague. It's like you have numbers

271
00:19:11.079 --> 00:19:15.680
for each of those things. You
know that if in a month more people

272
00:19:15.920 --> 00:19:21.640
cancel than the previous month, and
that trend changes in any significant way,

273
00:19:22.559 --> 00:19:25.440
you know that in six months,
paar Roll's going to black out like it's

274
00:19:25.480 --> 00:19:29.359
it, you know, there's it's
really. And then for people who love

275
00:19:29.400 --> 00:19:33.799
what they do and have a team
that's fairly like well adjusted and there's not

276
00:19:33.839 --> 00:19:37.400
too much drama, and it's it's
it's fairly you know, a healthy job.

277
00:19:37.920 --> 00:19:41.720
It's terrifying to see people that you
consider even like good friends or acquaintances

278
00:19:41.720 --> 00:19:47.920
that you like, to see them
in the bullseye of that reality. So

279
00:19:48.000 --> 00:19:51.319
I think that when the markets started
getting bigger and bigger, and people are

280
00:19:51.319 --> 00:19:53.200
getting acquired left and right and things
like that, you kind of see like

281
00:19:53.240 --> 00:19:57.640
small producers like peep Coode and other
people were acquired by Bipolar Site, others

282
00:19:57.640 --> 00:20:02.920
were acquired by other companies like that. You could see that consolidation happening in

283
00:20:02.960 --> 00:20:07.599
that like tech learning sphere. You're
thinking, I think the thinking becomes like,

284
00:20:07.720 --> 00:20:11.279
well, either we're going to get
bought out by someone, or they're

285
00:20:11.279 --> 00:20:17.079
going to drown us out by producing
more content pouring more money in it.

286
00:20:17.160 --> 00:20:21.839
We were kind of in the high
quality, compelling interactive content sphere, which

287
00:20:21.880 --> 00:20:26.160
few people competed in. But they
had more marketing, they had more everything,

288
00:20:26.200 --> 00:20:29.519
They were louder, so we could
get drowned out. I think was

289
00:20:29.559 --> 00:20:33.160
the fear, and I think the
acquisition came after talking to several suitors more

290
00:20:33.200 --> 00:20:37.279
as okay, well we kind of
fit in because they don't do that,

291
00:20:37.480 --> 00:20:41.440
right, they don't do interactive stuff
plural siden is very much like video training,

292
00:20:41.839 --> 00:20:45.599
at least for many years, it's
acquired and rolled into its service multiple

293
00:20:45.680 --> 00:20:49.319
kind of like training mentoring services and
things like that. There are more tailor

294
00:20:49.759 --> 00:20:53.240
made stuff and enterprise specific stuff,
but at the time it was similar to

295
00:20:53.319 --> 00:20:57.359
the other offerings out there, and
it was also kind of restricted to a

296
00:20:57.359 --> 00:21:03.319
subset of the technology space, which
is Microsoft focused, and we were doing

297
00:21:03.400 --> 00:21:07.559
Ruby Node, you know, a
bunch of other exciting hot technologies and front

298
00:21:07.599 --> 00:21:11.480
end stuff and things like that.
So I think they saw us as kind

299
00:21:11.480 --> 00:21:14.279
of like a differentiating factor, and
for a while they used us as a

300
00:21:14.400 --> 00:21:18.920
kind of like a premium offering enterprise
companies would would get that on top and

301
00:21:18.960 --> 00:21:22.480
a little cherry on top with code
school. And originally there's no plans.

302
00:21:22.480 --> 00:21:25.680
And this is the thing where a
lot of people think like, oh,

303
00:21:25.839 --> 00:21:29.559
they said it would stare around,
but it didn't. Most companies, they

304
00:21:29.559 --> 00:21:33.799
get acquired, it's hard to integrate, so they'd rather have it as a

305
00:21:33.839 --> 00:21:37.880
separate service, like at least for
whoever's manager or leadership at the time.

306
00:21:37.920 --> 00:21:38.839
I'm like, oh god, no, we don't want to do that.

307
00:21:40.519 --> 00:21:42.599
So hard to do migrations. I
spent six months of my life doing a

308
00:21:42.960 --> 00:21:47.799
customer migration with like stripe and stuff
like that. It was it was horrible.

309
00:21:48.359 --> 00:21:49.720
Even if it's complicated to have two
stacks or something like that, which

310
00:21:49.759 --> 00:21:53.519
is tricky, they'd rather keep it
around and see what happens. The problem

311
00:21:53.559 --> 00:21:59.319
is everything shifts when you get acquired
all of the That's the thing I tried

312
00:21:59.319 --> 00:22:02.240
to talk about in and the talk
is that the things that you were scared

313
00:22:02.279 --> 00:22:04.160
of are not there anymore, and
then you're scared of different things. So

314
00:22:04.200 --> 00:22:08.640
instead of running out of money,
which was the driving fear, you start

315
00:22:08.680 --> 00:22:15.599
fearing, oh, we don't know
this leadership. And if the leadership changes

316
00:22:15.720 --> 00:22:21.480
the agreements we've made with the previous
leadership, there'seral guarantee and also like what

317
00:22:22.039 --> 00:22:26.000
like holding ourselves accountable. When your
startup and you're starved for you know,

318
00:22:26.359 --> 00:22:32.000
sustainability, you make decisions that are
more short term and you're and when you're

319
00:22:32.039 --> 00:22:34.200
suddenly allowed to make more longer term
decisions, you get kind of cocky,

320
00:22:34.880 --> 00:22:38.000
Like you start doing things like,
oh, we're gonna merge our engineering teams,

321
00:22:38.200 --> 00:22:41.480
or we're gonna because I don't know, let's try that, and we're

322
00:22:41.480 --> 00:22:45.440
gonna produce twice the amount of courses, even though we're about you know,

323
00:22:45.519 --> 00:22:49.640
kind of deep content and compelling content. We took a long time with every

324
00:22:49.680 --> 00:22:53.160
topic. We took like a month
to make every course. We spent lots

325
00:22:53.160 --> 00:23:00.920
of money making very very like compact
and dense and uh like you know,

326
00:23:00.000 --> 00:23:04.400
something that can kick start you very
very quickly, not long, you know,

327
00:23:04.680 --> 00:23:08.640
ten hour courses that you have to
watch through. So we started kind

328
00:23:08.640 --> 00:23:11.920
of trying things and many of those
things didn't work, and I kind of

329
00:23:11.920 --> 00:23:15.599
lost momentum. And then it started
making more sense for us to just be

330
00:23:17.599 --> 00:23:21.799
integrated into the ecosystem more to you
know, through the years, and this

331
00:23:21.839 --> 00:23:25.880
is what happens to a lot of
acquisitions where you lose the momentum because all

332
00:23:25.920 --> 00:23:30.039
of the parameters change even if you
even if you say nothing will change.

333
00:23:30.960 --> 00:23:36.160
We have assurances, leaderships loves what
we do, and there I think when

334
00:23:36.160 --> 00:23:37.920
we were required, that's the last
thing I'll say. I think there were

335
00:23:38.039 --> 00:23:44.960
a handful like dozens of developer at
Plorocyite, and we had our engineering team

336
00:23:45.039 --> 00:23:48.759
was like at least twice or three
times the size of their juring team because

337
00:23:48.799 --> 00:23:52.200
they produced video content stuff, so
they had they had no complicated, you

338
00:23:52.240 --> 00:23:56.680
know, evaluation of code stuff to
deal with. And also they were like

339
00:23:56.079 --> 00:24:00.240
heavily focused on enterprise stuff, so
they did a lot more stuff there,

340
00:24:00.440 --> 00:24:04.359
says Loan. Yeah. And so
that actually kind of gets into like some

341
00:24:04.440 --> 00:24:11.079
of our conversation before podcasts started,
which is how you plan for this stuff?

342
00:24:11.079 --> 00:24:15.880
Because you had mentioned that that oftentimes
we don't think about what it means

343
00:24:15.960 --> 00:24:22.279
to shut down a product, even
if it's just an internal app. Right,

344
00:24:22.839 --> 00:24:25.319
But a lot of the stuff,
it's, like you said, you

345
00:24:25.359 --> 00:24:26.759
can't foresee it, so how do
you plan for it? To me,

346
00:24:26.839 --> 00:24:33.079
the great thing to do is to
think about the things you don't need right

347
00:24:33.119 --> 00:24:37.559
now. A lot of us,
a lot of developers, programmers and web

348
00:24:37.640 --> 00:24:42.440
developers or kind of hoarders, like
we like to have all the logs,

349
00:24:42.799 --> 00:24:47.720
we like to have just in case
we're going to have this extra thing.

350
00:24:48.200 --> 00:24:51.079
Some of us are not like that. But thankfully, Yeah, there's a

351
00:24:51.119 --> 00:24:56.200
few different people. But the perfect
exempt that I use in the talk that

352
00:24:56.279 --> 00:25:00.519
I gave a boys device very useful
tool gets you started super fast. You

353
00:25:00.519 --> 00:25:04.799
have user authentication registration confirmation. If
you use it, you should use it.

354
00:25:06.160 --> 00:25:07.880
When you get acquired and you have
not confirmed any of the emails you

355
00:25:07.880 --> 00:25:11.920
have in your database, that sucks. But there's a module in device that

356
00:25:12.400 --> 00:25:17.839
for a very long time was included
by default called trackable. What trackable does

357
00:25:18.039 --> 00:25:22.400
is log the IP address of the
person who signs in with that user account,

358
00:25:22.680 --> 00:25:25.799
the last IP address, the current
IP address when they signed in,

359
00:25:25.880 --> 00:25:29.880
when the last time they signed in
was, and then often people tack on

360
00:25:30.279 --> 00:25:36.000
what was the GUIP resolution of that, what was the country associated with the

361
00:25:36.000 --> 00:25:41.319
IP that this person came from.
That is I mean, for still to

362
00:25:41.359 --> 00:25:45.920
this day, I think it's not
considered PII personally identifiable information by the US

363
00:25:45.000 --> 00:25:48.279
government or the US entities. When
it comes to that, but in Europe

364
00:25:48.319 --> 00:25:52.039
it is so your i P is
a piece of private information because you can

365
00:25:52.079 --> 00:25:56.799
determine a lot of things based on
someone's IP, their email address and everything

366
00:25:56.839 --> 00:26:00.720
you can. You can take that
metadata and make a very interesting story of

367
00:26:00.759 --> 00:26:03.200
where they were, when, why, and all that stuff. And so

368
00:26:03.559 --> 00:26:07.160
when I gave the talk, I
think it was in April twenty eighteen,

369
00:26:07.759 --> 00:26:11.920
yeah, device had a little no
mention of GDPR, which is the European

370
00:26:12.200 --> 00:26:18.200
Privacy regulation stuff that came into effect
literally the day quotes school shutdown, which

371
00:26:18.440 --> 00:26:22.359
kind of tells you a little bit. And I found out just doing research

372
00:26:22.400 --> 00:26:27.880
before this call. That device four
point five point zero was released on August

373
00:26:27.880 --> 00:26:32.519
fifteen, twenty eighteen, and removed
trackable as a default module, which is

374
00:26:32.599 --> 00:26:37.480
great because unless you have a very
very good reason to have the IP address

375
00:26:37.480 --> 00:26:40.119
of the person who signed in for
your service, because you're doing I don't

376
00:26:40.119 --> 00:26:44.039
know, you're having like massive fraud
sign ups or stuff like that, or

377
00:26:44.119 --> 00:26:48.559
people are hammering like dedossing your service, you should not be holding this data.

378
00:26:48.599 --> 00:26:51.720
And this is one of those things
where which is you can do a

379
00:26:51.759 --> 00:26:55.799
review right now the things you're using. I have a quick other example one

380
00:26:55.839 --> 00:27:00.720
of our founders saw the Obama campaign
did this really smart. When people were

381
00:27:00.720 --> 00:27:04.200
signed up for donations and they were
failing to sign up or they were failing

382
00:27:04.240 --> 00:27:08.200
to sign in, there was patterns
to how they failed to sign in,

383
00:27:08.319 --> 00:27:18.079
So they would save any failed sign
in attempt form submissions or failed registration attempt

384
00:27:18.519 --> 00:27:22.720
form submissions I might be misremembering,
and they would later just run some data

385
00:27:22.759 --> 00:27:25.160
against that and figure out, okay, what are the patterns of people who

386
00:27:25.160 --> 00:27:27.160
failed to sign in or fail to
sign up, And then they would just

387
00:27:27.200 --> 00:27:30.279
analyze that data and then oh,
okay, we'll put some JavaScript in there

388
00:27:30.319 --> 00:27:33.920
and say like, no, you
meant Gmail, not gimial. And that

389
00:27:33.960 --> 00:27:37.039
way you get a proper sign up
because the email actually is the correct email,

390
00:27:37.079 --> 00:27:40.920
and you know, there's a there's
a few different end things that allow

391
00:27:41.000 --> 00:27:42.880
you to do that. We did
that, and we forgot about it because

392
00:27:42.920 --> 00:27:47.240
the person who set it up just
left the company. And so I found

393
00:27:47.279 --> 00:27:51.799
a database table that had oh,
I don't even know, one hundred and

394
00:27:51.799 --> 00:27:57.599
fifty million rows of signing attempts with
some PII, some of it that I

395
00:27:57.680 --> 00:28:02.079
didn't want to have. And it
was a quick conversation with a team lead

396
00:28:02.359 --> 00:28:03.799
Thomas meeks. I think I remember
saying like, do you know about this?

397
00:28:04.599 --> 00:28:07.759
Why do we do this? Have
we ever used it? Nope?

398
00:28:07.799 --> 00:28:11.640
Nope, nope. Can I get
rid of it? Truncate by cool awesome.

399
00:28:11.759 --> 00:28:14.640
I don't have to deal with it. I'm not responsible for it.

400
00:28:14.799 --> 00:28:18.319
Essentially, It's just it's just like
it's not not my job. It's more

401
00:28:18.440 --> 00:28:19.920
like, I do not want to
be liable for this stuff. And I

402
00:28:19.960 --> 00:28:26.039
think if more people who build ups
thought of liability as a vector of concern,

403
00:28:26.559 --> 00:28:30.519
they'd be be a little bit more
thrifty with the stuff that they gather.

404
00:28:30.079 --> 00:28:34.599
Yeah, the default module and device
is I mean, you just slapped

405
00:28:34.680 --> 00:28:38.559
gems in and who knows sometimes what
they're doing, right, Yeah, exactly.

406
00:28:40.319 --> 00:28:44.480
Yeah, And then there's also sometimes
where you know, if you need

407
00:28:44.519 --> 00:28:48.880
to store the personal information. There
are some justifications for it, especially if

408
00:28:48.880 --> 00:28:53.519
you're taking in payments from people where
I've been in a situation on Drift and

409
00:28:53.599 --> 00:28:59.920
Ruby where someone has disputed a charge, and that's not cheap, you know,

410
00:29:00.319 --> 00:29:03.599
especially if I'm only charging fifteen dollars
a month. The charge that Strip

411
00:29:03.720 --> 00:29:10.079
charges me is fifteen dollars plus that
fee that gets returned, So I mean

412
00:29:10.079 --> 00:29:14.480
that's almost a two times hit and
if I'm able to provide that Okay,

413
00:29:14.519 --> 00:29:18.920
this is the IP address that this
person use on the credit card to sign

414
00:29:19.039 --> 00:29:22.920
up at and then here I have
records where they have downloaded this video,

415
00:29:23.039 --> 00:29:27.319
this video in this video with the
say my p address. Now I have

416
00:29:27.400 --> 00:29:34.599
a more legitimate case to defend myself
on that charge back. But it's something

417
00:29:34.599 --> 00:29:38.880
that you have to be careful on
because you know what is these setul limitations

418
00:29:38.880 --> 00:29:42.279
for a charge back? You know, if a thirty day window passes,

419
00:29:42.799 --> 00:29:47.200
then that data that's thirty one days
old? Do I need to keep it?

420
00:29:47.599 --> 00:29:49.880
You know? Or can I truncate
it? And so I put in

421
00:29:51.039 --> 00:29:56.400
a psychic crown job that will basically
go through and it'll remove all that historical

422
00:29:56.599 --> 00:30:00.759
data that I don't no longer need. There you go, that's exactly the

423
00:30:00.799 --> 00:30:04.039
kind of stuff that we rarely think
we have time to do this when we're

424
00:30:04.079 --> 00:30:10.079
building a business, and then really
it's not that much work to clean up

425
00:30:10.119 --> 00:30:14.440
after ourselves. It's actually far easier
to do it iteratively, like you're saying,

426
00:30:14.440 --> 00:30:17.119
in a crown job than at the
very end when you realize, oh

427
00:30:17.119 --> 00:30:18.960
crap, I have all this data, and when a user cancels. For

428
00:30:19.000 --> 00:30:22.359
instance, for us before the migration, we told people, Hey, we're

429
00:30:22.359 --> 00:30:26.279
going to migrate. You're going to
get a pluor side account unless you don't

430
00:30:26.279 --> 00:30:30.680
want one. If you want to
just wipe your data to send us a

431
00:30:30.759 --> 00:30:34.279
little request in this thing and you
will. We will delete everything that you

432
00:30:34.400 --> 00:30:40.000
have to be able to guarantee that, and GDPR enforcement can come after you

433
00:30:40.240 --> 00:30:44.039
and say, prove to us that
you've deleted all that data, which and

434
00:30:44.079 --> 00:30:47.960
you can take it out of the
database, but still have logs backups,

435
00:30:48.559 --> 00:30:52.720
backups and your log files and backups
of the logs. It's a nightmare.

436
00:30:52.920 --> 00:30:56.279
That's why I think having a very
good reason like Dave mentioned is great.

437
00:30:56.319 --> 00:31:00.720
It's better to have the problem first
and then and then put it into place,

438
00:31:00.799 --> 00:31:03.599
rather than assume, oh, what
if we get that problem, it's

439
00:31:03.640 --> 00:31:08.039
kind of turning on all the features. So I think a little harder before

440
00:31:08.079 --> 00:31:15.039
you just throw in soft delete to
your application. God, this is a

441
00:31:17.119 --> 00:31:19.960
very relevant to my life. Yeah, And you know, I think Nate

442
00:31:21.400 --> 00:31:26.960
paranoia, which is a really cool
gym for doing a soft delete that's really

443
00:31:26.039 --> 00:31:32.799
useful in certain situations where someone performs
something very destructive that they didn't mean to

444
00:31:33.480 --> 00:31:37.960
you know, there's you know,
no matter how many times you give someone

445
00:31:37.039 --> 00:31:41.160
the opportunity to warn them, like, hey, what you're doing is very

446
00:31:41.200 --> 00:31:47.559
destructive. Once it's done, the
data's gone. There's always a case where

447
00:31:47.599 --> 00:31:52.079
someone clicked through all those yes's and
checkboxes and type in their password to confirm

448
00:31:52.359 --> 00:31:55.519
and then like, oops, I
didn't mean to do that, or I

449
00:31:55.559 --> 00:31:57.880
didn't know what it was going to
do, and then it's like you want

450
00:31:57.920 --> 00:32:04.200
to service the customer, but then
you also want to service your customers privacies

451
00:32:04.279 --> 00:32:08.319
on the other hand. So it's
a tricky situation that you get yourself into.

452
00:32:08.480 --> 00:32:14.920
So in a lot of situations where
I will have a feature like that,

453
00:32:15.480 --> 00:32:20.400
there's a warning that or a disclaimer
that, Okay, we are able

454
00:32:20.440 --> 00:32:24.119
to retrieve the data, most of
it, certain data aspects of it is

455
00:32:24.200 --> 00:32:29.440
completely lost. And in this specific
case, it would be all of the

456
00:32:29.519 --> 00:32:36.920
metadata about the user's PII information or
their PII so any kind of last signed

457
00:32:36.920 --> 00:32:40.000
in signing counts, IP addresses,
all that data would just get scrubbed from

458
00:32:40.119 --> 00:32:45.960
the database. But the user accounts
you could get back otherwise after thirty days.

459
00:32:46.000 --> 00:32:51.319
Anything that has a deleted at that's
over thirty days old, gets removed

460
00:32:51.880 --> 00:32:57.000
or truncated out. I was mentioning
this briefly, but I use an alternative

461
00:32:57.000 --> 00:33:01.640
to the paranoia gem called disc card
by I think John Hawthorne. Yeah,

462
00:33:01.640 --> 00:33:06.160
it also works in GitHub and it's
slightly different. It doesn't hook into as

463
00:33:06.200 --> 00:33:10.960
many callback cycles. I think it's
just like it sets that that table and

464
00:33:12.000 --> 00:33:15.440
it's basically use scopes for everything you
need to select if you want to select.

465
00:33:15.759 --> 00:33:22.400
And it avoids the kind of the
trap of having associations and dependent destroy

466
00:33:22.480 --> 00:33:27.720
stuff kind of become self deleted automatically. It's nice to consider both. I

467
00:33:27.759 --> 00:33:31.519
think the soft deletion sounds super easy, and it's always never easy. It's

468
00:33:31.519 --> 00:33:35.440
always like there's always little that need, little thing that you didn't think about.

469
00:33:35.480 --> 00:33:37.519
And also, for instance, like
loading, I think we had a

470
00:33:37.559 --> 00:33:39.759
problem like that in the app that
we work on right now, where yeah,

471
00:33:40.079 --> 00:33:45.880
the composite indexes or in disease that
we were using were not quite optimized

472
00:33:45.920 --> 00:33:52.119
for the deleted at column because we
thought we had far more deleted at things

473
00:33:52.200 --> 00:33:57.920
and removing that index actually sped things
up like crazy things like that. Anyway,

474
00:33:58.759 --> 00:34:01.160
to Dave's point, it's actually kind
of funny in a sad state or

475
00:34:01.240 --> 00:34:05.920
commentary on our on our industry and
some of our solutions, in the sense

476
00:34:05.960 --> 00:34:12.920
that we're holding onto a lot of
this PII information kind of not necessarily trying

477
00:34:12.920 --> 00:34:16.079
to be malicious about it. It's
just there in logs and in database backups.

478
00:34:16.360 --> 00:34:22.599
But when we do accidentally really destroy
some records, it proves incredibly difficult

479
00:34:22.639 --> 00:34:25.239
to get them back, even though
we have all the backups. And this

480
00:34:25.320 --> 00:34:30.280
actually talks to a mention I think
that I remember hearing this so much in

481
00:34:30.320 --> 00:34:36.960
the twenty twelve to twenty fourteen era, which was era which was we're not

482
00:34:37.079 --> 00:34:42.000
doctors, so it's fine if we
take down the website, you know or

483
00:34:42.000 --> 00:34:44.760
not. You know, we're just
teaching people things. It's not like we're

484
00:34:44.800 --> 00:34:50.239
like giving them benefits or you know, we're not a financial institution like Square

485
00:34:50.280 --> 00:34:53.480
for instance. And that's a great
cop out. It's a great way to

486
00:34:53.679 --> 00:34:59.559
not be responsible and adult about like
we do affect people. If someone like

487
00:34:59.639 --> 00:35:02.519
took out some time to learn something, or they give us their financial data

488
00:35:02.639 --> 00:35:07.239
or their PII or something like that, it is a responsibility. It's a

489
00:35:07.239 --> 00:35:12.119
big deal. And even if we
don't call ourselves necessarily engineers as in licensed

490
00:35:12.159 --> 00:35:15.719
trade trades people, engineers. It's
a good aspiration to be a little bit

491
00:35:15.719 --> 00:35:22.079
more like engineers and doctors than just
like diletant, like, oh, we

492
00:35:22.199 --> 00:35:24.760
just make webs We're just web masters. We'll just do do fun things on

493
00:35:24.800 --> 00:35:29.880
the side. Yeah, but it
takes a convincing argument from like a senior

494
00:35:29.920 --> 00:35:35.000
team to get the business to move
in that direction. When you're struggling for

495
00:35:35.079 --> 00:35:38.519
survival, right especially in that startup
mode, when you're you're really fighting with

496
00:35:38.519 --> 00:35:43.199
with competitors and you don't know if
you're going to make peril next month,

497
00:35:43.559 --> 00:35:46.199
it is. It is very hard, and sometimes I think it's good to

498
00:35:46.239 --> 00:35:50.519
have those fights. Though. That's
another thing that back to the constraints in

499
00:35:50.559 --> 00:35:54.239
a way, is not having enough
money is good in a company, not

500
00:35:54.280 --> 00:35:59.480
having enough time is good. It's
a forcing function. You need to be

501
00:36:00.480 --> 00:36:04.199
forced to make those arguments. You
need to be forced to have these these

502
00:36:04.239 --> 00:36:07.559
disagreements with your team where you say
I think we should do this, and

503
00:36:07.599 --> 00:36:09.599
the other person says, I think
we should do this other thing, and

504
00:36:09.599 --> 00:36:15.000
this is why, and that way
it fosters a little bit more, especially

505
00:36:15.039 --> 00:36:17.599
when you have a team that's not
just the monoculture of a bunch of friends

506
00:36:17.599 --> 00:36:22.039
that hired each other after college because
otherwise, yeah, everyone's going to agree.

507
00:36:22.760 --> 00:36:25.639
It's likely that everyone's going to agree
when you start getting different people with

508
00:36:25.679 --> 00:36:30.039
different backgrounds and everything left field,
like here's why you don't take this data.

509
00:36:30.440 --> 00:36:36.119
It's great for stalkers. That's that's
a point of view that rarely is

510
00:36:36.159 --> 00:36:39.639
seen from white males, for instance, like go all the chickens and four

511
00:36:39.679 --> 00:36:44.119
square check ins or things like that, where you if you don't think about

512
00:36:44.159 --> 00:36:47.159
it from the kind of like the
bad perspective, kind of like the the

513
00:36:47.239 --> 00:36:52.679
attacker or security researcher perspective, it
you do stupid things. Speaking of stupid

514
00:36:52.679 --> 00:37:00.679
things, there's a I think someone
mentioned sunset at the beginning sun setting,

515
00:37:00.320 --> 00:37:06.920
so that's more like jumping to the
end. But the total lack of emotional

516
00:37:06.960 --> 00:37:10.440
honesty behind the words sunset, to
me is the thing that I rail about

517
00:37:10.480 --> 00:37:16.880
a lot, which is we are
ending, killing, removing, destroying this

518
00:37:16.960 --> 00:37:21.239
thing. Right, We're not sunsetting
it. There's no like, no one's

519
00:37:21.280 --> 00:37:24.960
running on a beach in slow motion
with like beautiful like pastel colors and everything.

520
00:37:25.039 --> 00:37:28.440
No, it's this thing that you
loved and for us, like a

521
00:37:28.480 --> 00:37:34.440
perfect example for code school is apparently
a ton of schools in Puerto Rico we're

522
00:37:34.519 --> 00:37:38.719
using Code School for education stuff.
They were using either free courses because we

523
00:37:38.760 --> 00:37:42.760
had a ton of free content,
and then a ton of boot camps were

524
00:37:42.800 --> 00:37:46.000
using our free content as kind of
like inverted classroom things where people would go

525
00:37:46.079 --> 00:37:50.079
home do a Code School course,
a free one, and then they'd talk

526
00:37:50.119 --> 00:37:53.480
about it, and we like,
kind of it's not really statue statue a

527
00:37:53.480 --> 00:37:59.000
little limitations, but we when we
told people were going to fold Code School

528
00:37:59.039 --> 00:38:02.320
and turn it off, they're kind
of like, what I mean, I

529
00:38:02.360 --> 00:38:06.840
need this, I depend on this, Like I am a teacher and I'm

530
00:38:06.880 --> 00:38:10.800
teaching these kids with this thing,
and being kind of wishy washy about like

531
00:38:10.880 --> 00:38:15.360
what we're doing is kind of like
a doctor saying like on the on the

532
00:38:15.360 --> 00:38:19.599
bedside, but being like it's not
looking good. What do you mean?

533
00:38:20.360 --> 00:38:22.840
Like how much time do I have
to find another place to do the thing

534
00:38:22.880 --> 00:38:27.079
that I do? And I just
say, there's so much of that in

535
00:38:27.119 --> 00:38:30.880
this industry, sadly, and I
think that it's fine to say, hey,

536
00:38:30.119 --> 00:38:35.519
I'm moved on. Like there's tons
of startup founders that are bored within

537
00:38:35.599 --> 00:38:37.760
six months or three years, and
they want to move on something else,

538
00:38:37.800 --> 00:38:42.000
And how about we start saying that, Like, I think that's fine emotionally

539
00:38:42.079 --> 00:38:44.639
to say I had a ton of
fun doing this thing. I mean,

540
00:38:44.679 --> 00:38:47.159
it wasn't necessarily my case with code
school, but there's tons of things like

541
00:38:47.360 --> 00:38:52.559
open source projects, for instance,
where maintainers are like, oh, they

542
00:38:52.639 --> 00:38:53.840
hate they hate the thing that they
build, and I don't want to deal

543
00:38:53.880 --> 00:38:58.480
with it anymore. They're trying to
find maintainers and they don't say in public

544
00:38:58.519 --> 00:39:00.239
the thing that they say, you
know, I'm conference hallways, which is

545
00:39:00.280 --> 00:39:04.760
like, I just it stresses me
out so much every time I get an

546
00:39:04.800 --> 00:39:10.920
issue or something like that. I'm
just sundsetting involvement. I'm walking away in

547
00:39:10.960 --> 00:39:16.480
the sunset. I think, as
you mentioned, Olivia, it's just life.

548
00:39:16.679 --> 00:39:21.719
You know, people die, applications
die, you know, it's not

549
00:39:21.800 --> 00:39:23.719
a matter of if it's going to
happen, when is it going to happen,

550
00:39:24.320 --> 00:39:30.039
And that's not necessarily a bad thing. I think how you approach it,

551
00:39:30.559 --> 00:39:34.519
no to sunset or kill it off, and how you react to it

552
00:39:34.599 --> 00:39:37.039
is where the real difference is going
to come into play. You know.

553
00:39:37.199 --> 00:39:42.519
For the foreseeable future, I plan
to keep doing drifting Ruby as long as

554
00:39:42.559 --> 00:39:46.159
I can, but there's going to
be a time where time just no longer

555
00:39:46.199 --> 00:39:51.159
permits it. Either deny generate enough
revenue where I could do it full time,

556
00:39:51.599 --> 00:39:52.760
and then my kids are growing.
You know, I have a two

557
00:39:52.800 --> 00:39:57.000
year old, four year old,
and six year old, so as they

558
00:39:57.039 --> 00:40:00.840
get older, their time is going
to be a lot more end. So

559
00:40:00.239 --> 00:40:05.280
there is eventually going to be end
alive. I don't know if that is

560
00:40:05.360 --> 00:40:07.719
three years from now or ten years
from now, but I think it is

561
00:40:07.760 --> 00:40:10.280
something that I will have to start
thinking about. It's like, Okay,

562
00:40:10.559 --> 00:40:14.400
once it's done, what am I
going to do with all this data?

563
00:40:14.960 --> 00:40:20.039
Not only the users, which I
would absolutely respect everyone's privacy, but all

564
00:40:20.079 --> 00:40:23.199
the video content that I've created.
Now I'm gonna be hitting two hundred episodes

565
00:40:23.559 --> 00:40:28.559
this year, and for me,
I mean, that's been years and years

566
00:40:28.559 --> 00:40:30.320
of my life that poured into it, and I would hate to see it

567
00:40:30.400 --> 00:40:34.599
just kind of die out. But
I mean that's going to be the reality

568
00:40:34.679 --> 00:40:37.239
of it. Either the content is
going to be stale and old if I'm

569
00:40:37.239 --> 00:40:42.360
not maintaining it anymore, or you
know, people would have moved on to

570
00:40:42.719 --> 00:40:47.880
something else. But it's a real
consideration to take it's a heartbreaker when when

571
00:40:47.920 --> 00:40:52.679
you've when you've worked so hard to
make content and you know that some of

572
00:40:52.719 --> 00:40:58.079
it's out of date, but it's
it can still be a little bit useful,

573
00:40:58.280 --> 00:41:00.320
especially when it's free. One of
the hardest things for me with the

574
00:41:00.880 --> 00:41:06.079
shutdown was was try Ruby. So
try Ruby was one of my babies,

575
00:41:06.119 --> 00:41:09.119
and it was like, there's that
and try get. So I wrote try

576
00:41:09.159 --> 00:41:14.719
get with a bunch of people from
from code school and GitHub in twenty twelve,

577
00:41:15.119 --> 00:41:19.440
and it was this thing that just
like was infrastructure. Those like a

578
00:41:19.480 --> 00:41:22.519
bunch of people which like get started, like see if you hate it or

579
00:41:22.519 --> 00:41:24.000
if you're terrified of it, here's
a great way to show you that it's

580
00:41:24.039 --> 00:41:28.679
not that it's not it's bad,
but it's not that bad, and try

581
00:41:28.719 --> 00:41:31.119
reviews. Likewise, like it's just
we we didn't spend that much time maintaining

582
00:41:31.119 --> 00:41:35.760
it, but it worked, it
was useful, and now I'm glad there

583
00:41:35.800 --> 00:41:38.639
are alternatives, but at the time
it wasn't quite ready, and likewise,

584
00:41:38.679 --> 00:41:45.519
I don't think there's there might be
a try get alternative, but for Ruby,

585
00:41:45.519 --> 00:41:49.519
thankfully there's an open source version the
front end, like open source version

586
00:41:49.559 --> 00:41:52.519
that's now available on the try on
the ruby lang dot org website. You

587
00:41:52.559 --> 00:41:57.639
can get to it. But seeing
this resource like this kind of like thing

588
00:41:57.679 --> 00:42:00.039
that you know, people depend on, this appear we're just that you enjoyed

589
00:42:00.079 --> 00:42:05.079
writing and you know that you were
proud of is is not that Emotionally,

590
00:42:05.119 --> 00:42:08.800
it just sucks. It's just very
like ugh and yeah, met it's okay,

591
00:42:09.000 --> 00:42:15.400
sometimes thinks. So I've been through
you know, almost celebrating my ten

592
00:42:15.440 --> 00:42:20.840
year tenure, but that ten years, I've been through two company acquisitions.

593
00:42:21.400 --> 00:42:24.719
So my company got sold and then
it got sold again. So and I've

594
00:42:24.760 --> 00:42:30.840
stuck around with it for almost ten
years through the whole thing, and you

595
00:42:30.840 --> 00:42:36.119
know, there has been some of
that loss and application that had spent four

596
00:42:36.239 --> 00:42:39.400
years working on. As soon as
the new company acquired it, they said,

597
00:42:39.559 --> 00:42:45.280
day one, all development on new
features is going to stop and sales

598
00:42:45.320 --> 00:42:47.440
is going to stop on this It's
not a direction we want to go down.

599
00:42:47.960 --> 00:42:54.280
And you know, how I internalize
that and my reaction to it is

600
00:42:54.320 --> 00:42:59.519
really going to determine the route I
go as a developer. You know,

601
00:42:59.639 --> 00:43:02.840
I could just rage quit the company
and go somewhere else where I'm appreciated,

602
00:43:04.360 --> 00:43:07.000
or I could look back and say
Where do I put my value? Where

603
00:43:07.039 --> 00:43:12.159
do I put my worth? Is
it in the thing that I created or

604
00:43:12.400 --> 00:43:15.559
was it the experience that I got
over the many years, learning from my

605
00:43:15.639 --> 00:43:20.679
bad decisions, learning how to do
something new, And if I can take

606
00:43:20.800 --> 00:43:25.920
that away from it, then you
reduce your emotional attachment to the actual product,

607
00:43:27.280 --> 00:43:31.280
because I'm a better person because of
that product. Oh yeah, it's

608
00:43:31.320 --> 00:43:37.519
it's It's tricky also because of the
kinds of people that tend to work on

609
00:43:37.599 --> 00:43:42.400
these early stage or just like young
products. But basically, yeah, older,

610
00:43:42.440 --> 00:43:45.840
older people in the industry tend to
have families and kids and you know,

611
00:43:45.960 --> 00:43:47.760
things like that. And when I
say older, I don't mean like

612
00:43:49.199 --> 00:43:52.440
older than twenty, which is a
lot of people. And I think that

613
00:43:52.559 --> 00:43:57.159
helps make your focus less. Oh
my god, this gem that I built

614
00:43:57.280 --> 00:44:00.280
or this you know application is the
treasure of my life and my sole contribution

615
00:44:00.360 --> 00:44:05.199
to the world. When you have
kids or you have a family, it's

616
00:44:05.239 --> 00:44:08.280
easier to move on from that stuff. And I think it's also good to

617
00:44:08.320 --> 00:44:12.239
have more people like that in the
industry that are just like that, have

618
00:44:12.360 --> 00:44:17.960
kids already, that work in apps
and create companies as parents, not as

619
00:44:19.199 --> 00:44:23.119
single dudes in a bedroom or in
a garage, who have no responsibilities other

620
00:44:23.199 --> 00:44:28.440
than that and therefore derive every kind
of validation from it. I will say

621
00:44:28.559 --> 00:44:34.159
I have never lived through the death
of a Rayls app because I've been like,

622
00:44:34.199 --> 00:44:37.480
I'm so young of a developer.
But I had a mentor, and

623
00:44:37.679 --> 00:44:42.400
one thing that he taught me that
I still find valuable to this day is

624
00:44:42.440 --> 00:44:45.400
that you're gonna work really really hard
on something and one day you might have

625
00:44:45.440 --> 00:44:51.639
to completely destroy it. And he
taught me this like in the worst,

626
00:44:51.719 --> 00:44:53.800
like what I thought to be the
worst way possible. Like it hurt at

627
00:44:53.840 --> 00:44:58.400
the time, but I'm really glad
he did this because over time is really

628
00:44:58.400 --> 00:45:01.760
helped. I worked really long time
on this feature. It was very very

629
00:45:01.920 --> 00:45:05.639
very early in my career, and
it was not done well at all,

630
00:45:06.199 --> 00:45:07.519
but I had worked really hard on
it, and the fact that I had

631
00:45:07.519 --> 00:45:10.440
gotten into work, I was very
proud of it. And I took it

632
00:45:10.480 --> 00:45:14.440
to him for code review and he
called me up. He's like, look,

633
00:45:14.480 --> 00:45:16.639
he's like, this isn't really this
isn't like a good way to do

634
00:45:16.679 --> 00:45:20.840
this, and he's like that's when
he gained the little spiel that you really

635
00:45:20.880 --> 00:45:24.039
need to learn that sometimes it's Okay, it's okay to delete the entire thing.

636
00:45:24.079 --> 00:45:27.280
He's like, so right now,
we're going to delete this entire thing

637
00:45:27.320 --> 00:45:30.239
and start over. It's so hard, though, I mean, I still

638
00:45:30.280 --> 00:45:35.360
have that problem even though I'm literally
that person. I have destroyed the thing

639
00:45:35.360 --> 00:45:37.920
that I worked on creating for years, for like six seven years, So

640
00:45:38.599 --> 00:45:43.559
still now, like I'm still that
person who I see people at conferences delete

641
00:45:43.599 --> 00:45:45.840
code for kicks, like as a
demo, and I'm like, but the

642
00:45:45.960 --> 00:45:50.960
wait, okay, it's somewhere sash. What if you need it later,

643
00:45:51.079 --> 00:45:52.039
just get stash and I see you. Oh no, no, no,

644
00:45:52.199 --> 00:45:57.199
we don't. We just get stash
pop or whatever command you used to delete

645
00:45:57.199 --> 00:46:01.920
the stash, which I don't know. And I'm in awe of the kind

646
00:46:01.920 --> 00:46:05.599
of distance right like, as you
said, like they have the maturity of

647
00:46:05.639 --> 00:46:08.000
being like, Okay, my brain
did this, My brain can do this

648
00:46:08.039 --> 00:46:13.960
again, valuing knowledge that you acquired. It actually kind of reminds me of

649
00:46:14.079 --> 00:46:20.599
a college art class I took where
early on in the course we had to

650
00:46:20.639 --> 00:46:24.159
produce one hundred pieces of original art
in a week, and we brought them

651
00:46:24.519 --> 00:46:30.000
and turn them in and the instructor
then proceeded to rip them all apart in

652
00:46:30.000 --> 00:46:34.760
front of the class and said that
destruction is an act of creation. Oh

653
00:46:34.800 --> 00:46:39.480
wow, that's a hardcore version of
Andrews's lesson. Very much a hardcore version.

654
00:46:40.199 --> 00:46:45.039
I didn't know my dad taught art, because that very much seems like

655
00:46:45.119 --> 00:46:49.480
something that my dad has done.
When I was young and when I was

656
00:46:49.599 --> 00:46:53.400
going off to college, I was
writing these cover letters to send off to

657
00:46:53.480 --> 00:46:58.960
colleges, saying now here, this
is who I am and stuff, and

658
00:46:59.119 --> 00:47:00.719
he would look at it and then
he would just tear it up and say,

659
00:47:00.719 --> 00:47:04.119
good, do it again, no
feedback, no pointer, or just

660
00:47:04.199 --> 00:47:07.679
tear it up. Or if I
was working on some kind of other project

661
00:47:07.760 --> 00:47:12.000
or you know, something that I
was getting his opinion on, you just

662
00:47:12.039 --> 00:47:15.400
tear it up, said do it
again. So either you will learn or

663
00:47:16.119 --> 00:47:22.440
you will eventually learn that your projects
isn't where you should put your self worth.

664
00:47:22.639 --> 00:47:25.159
You should put worth into them,
you should care about them, but

665
00:47:25.199 --> 00:47:30.400
that's not where your self worth should
get derived from. And even if it's

666
00:47:30.840 --> 00:47:34.280
the best thing you've done so far, which it definitely implies to me,

667
00:47:34.800 --> 00:47:38.440
you might never do something quite exactly
that special, like in the same way,

668
00:47:38.519 --> 00:47:42.559
with the same people and the same
that's the hard thing to do with

669
00:47:42.960 --> 00:47:46.840
any kind of project creatively. It's
like, ah, there's tons of things

670
00:47:46.880 --> 00:47:51.400
I didn't like, but this was
so great, But you'll do other things.

671
00:47:51.840 --> 00:47:54.880
And then because you've already done that
one saying, you'll infuse a lot

672
00:47:54.880 --> 00:47:58.280
of these other things. And this
is the joy that I've taken. This

673
00:47:58.400 --> 00:48:02.239
is the people joy that I've taken
away from the end of Code School was

674
00:48:02.719 --> 00:48:07.559
I've nurtured a few people, and
a few people have nurtured me, and

675
00:48:07.679 --> 00:48:10.599
we're all like kind of like seating
each other and pieces of the spirit of

676
00:48:10.599 --> 00:48:15.199
code School and things like plural site, like GitHub actually like other places where

677
00:48:15.599 --> 00:48:19.000
so Joel Taylor, who's on my
team works at task for It right now,

678
00:48:19.719 --> 00:48:23.320
Katie Delphin's at GitHub. Thomas Meeks
is doing independent game development now.

679
00:48:23.519 --> 00:48:28.400
So it's like there's just tons of
awesome things happening with all those people and

680
00:48:28.440 --> 00:48:32.039
it makes me happy. And they're
just all around and they always have this

681
00:48:32.079 --> 00:48:35.880
moment where they say, oh,
you know, back in the day when

682
00:48:35.920 --> 00:48:37.559
we did it like that at code
school, this sucks, but this was

683
00:48:37.599 --> 00:48:40.639
awesome, and this is an awesome
thing that we did. Often it's about

684
00:48:40.639 --> 00:48:45.360
people's stuff and more and more of
the code stuff disappears. There's a few

685
00:48:45.360 --> 00:48:47.880
little trickery things that you're like,
oh, we had we figured out a

686
00:48:47.880 --> 00:48:52.719
way that was nice to do x
ra Y, but it's rarely the code

687
00:48:52.760 --> 00:48:54.119
that's like, oh, this was
so great, I wish we had saved

688
00:48:54.159 --> 00:48:59.679
it now. One of my earliest
memories, speaking of code school was Rails

689
00:48:59.719 --> 00:49:05.320
for Zombies with Greg Pollock. That
was one of my first introductions to rails

690
00:49:05.639 --> 00:49:07.760
now after doing Ruby for a while
and then uh, now, I just

691
00:49:07.760 --> 00:49:10.840
want to give him a little shout
out. Really enjoyed it. Yeah,

692
00:49:12.159 --> 00:49:15.880
that's actually how there's my second Rails
tutorial. And I did that Rails for

693
00:49:16.000 --> 00:49:22.440
Zombies beta in Orlando at the Orlando
Ruby Users group, and that's how I

694
00:49:22.440 --> 00:49:24.920
think that was six months or a
few months into meal learning Rails, when

695
00:49:24.960 --> 00:49:30.719
I was still kind of like a
front end focus web designer type person and

696
00:49:30.760 --> 00:49:35.239
still in school. So I did
that little beta before they actually released Rails

697
00:49:35.239 --> 00:49:37.519
for Zombies, I think in the
fall of twenty ten, and then in

698
00:49:37.599 --> 00:49:43.960
early twenty eleven they launched a codesc
subscription service. Man at the end of

699
00:49:43.960 --> 00:49:46.199
twenty eleven beginning of twenty twelve,
I started at cod school. So I

700
00:49:46.599 --> 00:49:52.159
literally learned rails on rails for zombies
and then worked on rails for zombies.

701
00:49:52.280 --> 00:49:54.199
So a bunch of us did that
too. Adam Renzel, who's also at

702
00:49:54.239 --> 00:50:00.599
GitHub now, also learned. I
badgered him to try Ruby and and rails

703
00:50:00.639 --> 00:50:02.760
while he was an instructor at full
Sell University when I went to school,

704
00:50:04.239 --> 00:50:07.679
and he was within a few months. He was like good enough, but

705
00:50:07.760 --> 00:50:09.760
he'd made a gem and everything and
he started working there and now he's just

706
00:50:09.800 --> 00:50:15.119
like doing super cool stuff and it's
just so satisfying to know that people who

707
00:50:15.199 --> 00:50:19.760
just knew nothing. I remember listening
to podcasts like this very podcast when I

708
00:50:19.800 --> 00:50:24.480
was in school and not understanding anything
about nbc orm's, you know, web

709
00:50:24.480 --> 00:50:30.159
development, and saying to myself,
I will probably never understand this because I

710
00:50:30.199 --> 00:50:36.159
think one episode I've listened to of
some Ruby on Rails podcast talking about controllers

711
00:50:36.400 --> 00:50:39.480
and we're thinking, like this word
makes nose. I don't understand what a

712
00:50:39.519 --> 00:50:44.760
controller does and why it's called a
controller. It's not controlling, it's a

713
00:50:44.880 --> 00:50:50.599
router. It's routing things, you
know it. As an English major at

714
00:50:50.599 --> 00:50:52.840
the time, that's the only qualification
I had used to drive me crazy and

715
00:50:52.880 --> 00:50:57.599
I really really thought, I'm just
gonna learn a little bit about whatever this

716
00:50:57.800 --> 00:51:00.840
is, but I'm never going to
be good at it, And then it

717
00:51:00.920 --> 00:51:04.880
just makes so it's so weird to
see your name and people at comferences going

718
00:51:04.920 --> 00:51:07.440
like, oh, I learned rails
from you, or I learned our respect

719
00:51:07.440 --> 00:51:14.000
from you. What. I can
definitely sympathize with that because in college I

720
00:51:14.079 --> 00:51:20.320
listened to this podcast all the time
and learned so much but also new almost

721
00:51:20.880 --> 00:51:23.440
nothing from it. I was like, I don't know these words meaning they're

722
00:51:23.519 --> 00:51:29.119
using all these terms and yata,
and now looking back, I know what

723
00:51:29.159 --> 00:51:32.840
those words mean, and now I'm
here. So you know, it's just

724
00:51:32.840 --> 00:51:37.239
a natural progression, I think.
I think it's it's a useful tool also

725
00:51:37.360 --> 00:51:39.880
to do that, especially when you
have loss or things disappear or things end.

726
00:51:40.679 --> 00:51:45.159
Like a Rails app is to do
this thing called a time machine,

727
00:51:45.159 --> 00:51:49.719
so time machine something. It's like
ego time machine. So you take a

728
00:51:49.719 --> 00:51:52.760
time machine, not with you your
person, but just take your ego and

729
00:51:52.800 --> 00:51:55.760
how you your sense of self worth
back six months, back a year,

730
00:51:55.880 --> 00:52:00.519
five years, and ten years and
realize this thing you thought impossible. Now

731
00:52:00.559 --> 00:52:05.119
you do it like on a daily
basis, and it's not even a big

732
00:52:05.159 --> 00:52:07.480
deal and it doesn't even phase you. But it's good to do that because

733
00:52:07.519 --> 00:52:10.480
I think, David, you're talking
about the sense of self and how much

734
00:52:12.039 --> 00:52:15.719
or worth and how much you derive
from the work you're currently doing, Like

735
00:52:15.920 --> 00:52:20.199
how much worth you derive from now? How much worth you put in it?

736
00:52:20.400 --> 00:52:22.599
And I think it really helps to
go back regularly as a kind of

737
00:52:22.639 --> 00:52:29.039
like a self care exercise to make
sure that you you acknowledge and appreciate how

738
00:52:29.159 --> 00:52:34.440
much you've learned and how far you've
gone despite things starting an ending here and

739
00:52:34.480 --> 00:52:37.440
there, like school ending or a
job ending or an app ending. Absolutely,

740
00:52:37.559 --> 00:52:44.519
I think I was thinking about I've
heard talk about rails itself and say,

741
00:52:44.639 --> 00:52:49.039
and he's acknowledged, what if this
is the best thing I'm ever going

742
00:52:49.119 --> 00:52:52.480
to do? Yep? Wait,
so I guess in the way it's somewhat

743
00:52:52.519 --> 00:52:55.800
of a counterpoint, right pausing and
saying that that might be the best I've

744
00:52:55.840 --> 00:53:00.159
got and if you can recognize that, and maybe, I mean, I

745
00:53:00.159 --> 00:53:06.079
think there's been a significant amount of
luck as well, and just good fortune

746
00:53:06.079 --> 00:53:08.880
and good timing and things like that
with that have all contributed to Rail's success.

747
00:53:08.960 --> 00:53:14.519
But but that also kind of contributes
to this idea of I don't know,

748
00:53:14.599 --> 00:53:16.719
maybe that's the thing we should stick
stick with, right in terms from

749
00:53:16.960 --> 00:53:22.039
his perspective, So the comics similar
to dch like, I thought those thoughts

750
00:53:22.119 --> 00:53:25.480
of you know that this is the
best thing I'll ever do, and and

751
00:53:25.519 --> 00:53:30.840
then it ended. And d is
lucky because it didn't end for him,

752
00:53:30.840 --> 00:53:34.760
and he's very much in control of
where it goes for base Camp and for

753
00:53:34.840 --> 00:53:37.760
Rails, so it's good for him, and I think it's it's nice that

754
00:53:37.880 --> 00:53:43.400
he's able to have perspective on it
and people have helped him in the community

755
00:53:43.480 --> 00:53:45.559
have perspective on it, because of
course he gets tons of feedback from people

756
00:53:45.599 --> 00:53:50.519
in the community saying Rails change my
life, right, And people have told

757
00:53:50.519 --> 00:53:52.280
me the same thing about Codeschuild.
They're like, ah, you changed my

758
00:53:52.320 --> 00:53:57.079
life. I'm like, it's not
me directly, but it's us. And

759
00:53:57.960 --> 00:54:00.440
I think it's okay for it to
keep going, it's okay for it to

760
00:54:00.559 --> 00:54:05.079
end. And I honestly think,
like it's hard to see where you are.

761
00:54:05.199 --> 00:54:07.880
It's back to the planning thing or
seeing ahead, like you don't know

762
00:54:07.920 --> 00:54:09.840
if it's going to be the best
thing you do. You it might feel

763
00:54:09.880 --> 00:54:13.920
that way. It definitely will feel
that way if you're doing if you create

764
00:54:13.960 --> 00:54:16.199
something like Kraals. Yeah, I've
had people tell me some of the same

765
00:54:16.199 --> 00:54:21.519
things about the podcast, that the
podcast change people's lives, and it's it's

766
00:54:21.519 --> 00:54:25.159
interesting because in some sense I kind
of see where they're coming from, and

767
00:54:25.199 --> 00:54:30.639
in the other sense, it's like, yeah, but we just kind of

768
00:54:30.679 --> 00:54:32.320
gave you the tools. You went
and did all the work, right,

769
00:54:34.039 --> 00:54:36.320
and so it's it's, yeah,
where where does it all come in?

770
00:54:36.360 --> 00:54:39.960
Where does it all come down?
And yeah, so I think some credit

771
00:54:40.039 --> 00:54:43.880
is deserved. But on the other
hand of me, people went and did

772
00:54:43.920 --> 00:54:45.719
the work, they figured it out, So I don't know. Yeah,

773
00:54:45.719 --> 00:54:52.480
I think too. One of the
original points was taking a lot of satisfaction

774
00:54:52.639 --> 00:54:59.719
and fulfillment from the relationships that have
been created and established along the way.

775
00:55:00.360 --> 00:55:05.280
That's where the real value is.
Oh yeah, that's absolutely true. All

776
00:55:05.360 --> 00:55:07.559
Right, Well, we're kind of
getting toward the end of our time,

777
00:55:07.960 --> 00:55:12.400
and I think we've kind of minded
this topic for now, so let's go

778
00:55:12.400 --> 00:55:15.519
ahead and do some picks. Nate, do you want to start us off

779
00:55:15.519 --> 00:55:22.320
with picks? Sure? So I
just recently listened to just yesterday the keynote

780
00:55:22.320 --> 00:55:27.599
from rails com from DHH again,
and it's it's really just fantastic. It's

781
00:55:27.639 --> 00:55:32.199
a terrific exploration of what open source
is, what it means to contribute to

782
00:55:32.239 --> 00:55:36.920
it. It's also kind of a
love letter to Ruby. It was just

783
00:55:37.159 --> 00:55:40.239
very well thought out and I highly
recommend it. If you have not seen

784
00:55:40.360 --> 00:55:45.559
or heard that keynote yet. Nice. I'm trying to get DHH on so

785
00:55:45.599 --> 00:55:49.159
we can talk about it, so
we'll see what we can do there,

786
00:55:49.599 --> 00:55:53.800
all right. So yeah, I
have two picks. The first pick is

787
00:55:54.360 --> 00:56:01.000
I coughed up the money after seeing
the like six or seventh Apple display because

788
00:56:01.039 --> 00:56:05.480
I've been in the market for one
bowels, holding off until I saw what

789
00:56:05.559 --> 00:56:07.239
Apple was going to do with their
six K. I'm like, screw that.

790
00:56:07.519 --> 00:56:10.559
I'm not going to buy that.
So instead, I got the five

791
00:56:10.679 --> 00:56:16.360
K screens from LG with the Thunderbolt
three connector, and they are amazing.

792
00:56:16.639 --> 00:56:22.159
The quality on them and stuff are
really nice. And you know, after

793
00:56:22.199 --> 00:56:25.280
seeing a six thousand dollars price stag, a thousand bucks didn't seem as bad.

794
00:56:25.760 --> 00:56:30.320
And since I'm on my computer all
freaking day and night, I figured

795
00:56:30.360 --> 00:56:36.639
that having a quality display was you
know, no justifiable, And I had

796
00:56:36.679 --> 00:56:40.039
another pick. I forget what it
was, so I'll just go with that

797
00:56:40.119 --> 00:56:45.039
one. Wasn't there a bunch of
blowback after WWDC when they announced the six

798
00:56:45.119 --> 00:56:47.639
K monitors and how much they were
going to cost. Well, it's the

799
00:56:47.679 --> 00:56:52.880
stand that actually made people go CROs. Yeah, people, people almost booed.

800
00:56:53.039 --> 00:56:57.480
If you watch the keynote, it's
very interesting because I watched it late

801
00:56:57.599 --> 00:57:00.480
after everybody watched it, like almost
a week after, and there's an audible

802
00:57:00.559 --> 00:57:07.000
like what when they announced a thousand
dollars STAN for a five four or five

803
00:57:07.000 --> 00:57:09.519
thousand dollars monitor? Because yeah,
I think the best argument I've seen on

804
00:57:09.519 --> 00:57:13.639
the internet was someone said, like, just announce the whole thing, say

805
00:57:13.639 --> 00:57:15.400
it's six thousand dollars. People are
be like, yeah, sure, it's

806
00:57:15.440 --> 00:57:22.320
Apple, But if you split the
two, it just sounds insane and it

807
00:57:22.360 --> 00:57:24.360
makes sense. You know, almost
would have been better if they said it

808
00:57:24.519 --> 00:57:28.679
costs that much and people remove the
stam in the cart and see, oh

809
00:57:28.800 --> 00:57:31.039
wait, it's a thousand dollars cheaper. I think they would have as a

810
00:57:31.119 --> 00:57:36.320
negation. It would have been or
subtraction would have been way better for people

811
00:57:36.320 --> 00:57:38.960
to discovery. I'll just get a
two bite four and some nail. I

812
00:57:38.960 --> 00:57:44.280
mean it kind of kind of looks
like that. All right, Andrew,

813
00:57:44.400 --> 00:57:47.760
what are your picks? I usually
pick technical picks, but today I have

814
00:57:49.039 --> 00:57:55.079
a more out there pick. I'm
choosing wild sardines from wild Planet. And

815
00:57:55.119 --> 00:57:58.960
I don't know if you guys like
sardines at all, but I thought I

816
00:57:59.000 --> 00:58:01.320
hated them, but then I actually
tried them and I actually really like them.

817
00:58:01.679 --> 00:58:06.440
And these are a little bit more
expensive than your ninety nine cent can,

818
00:58:06.639 --> 00:58:10.840
but they're a lot better after having
tried some of the lower quality ones,

819
00:58:12.000 --> 00:58:15.280
and they're super healthy for you as
well. My nutrition has actually recommended

820
00:58:15.320 --> 00:58:20.119
them. So yeah, that's my
pick. Nice, I only eat sardines

821
00:58:20.159 --> 00:58:22.559
to gross my kids out. So
I'm going to jump in with a few

822
00:58:22.599 --> 00:58:27.639
picks here. So one is,
I'm currently at Velocity, which is a

823
00:58:27.639 --> 00:58:30.079
conference put on by O'Reilly. It's
for DevOps. They combined it with the

824
00:58:30.280 --> 00:58:36.039
Software Architecture and so anyway, I've
been talking to a bunch of people.

825
00:58:36.039 --> 00:58:38.159
I'm going to go meet a bunch
of other people today. This is mostly

826
00:58:38.880 --> 00:58:43.320
revolving around Adventures in DevOps, which
is a show we're starting soon, so

827
00:58:43.960 --> 00:58:46.199
check that out. If you were
a fan of the Food Fight Show,

828
00:58:46.239 --> 00:58:52.039
which is a devop show that was
put on by Nell from Chef and Nathan

829
00:58:52.079 --> 00:58:54.519
who used to be at Chef and
is now at Google. Then Nell is

830
00:58:54.519 --> 00:58:58.960
helping us pull this one together and
get a rolling so I'm excited about that.

831
00:58:59.000 --> 00:59:00.840
And she's been on the show before
too, so I'm going to pick

832
00:59:00.880 --> 00:59:02.800
that. I also want to shout
out about plural Site. They've got a

833
00:59:02.800 --> 00:59:07.320
ton of great courses there, so
if you want to go check them out,

834
00:59:07.360 --> 00:59:09.000
you can. I have an affiliate
link for them, but you don't

835
00:59:09.039 --> 00:59:12.320
have to use it. Just go
check them out because they've got good stuff.

836
00:59:12.639 --> 00:59:14.760
I have a lot of friends who
are plural site offers as well,

837
00:59:14.840 --> 00:59:20.000
so that's definitely worth doing. Yeah, and then two more picks really quickly,

838
00:59:20.000 --> 00:59:22.360
just because I'm excited. My wife
texted me in the middle of the

839
00:59:22.559 --> 00:59:27.360
podcast and she's like, check your
email for your Father's Day present, and

840
00:59:28.039 --> 00:59:31.639
she signed me up for butcher Box. And butcher Box is a box subscription

841
00:59:32.000 --> 00:59:37.639
where they send you meat, and
I like meat, so yeah, they

842
00:59:37.559 --> 00:59:40.599
they ship it out every every month
you get a box full of meat,

843
00:59:40.800 --> 00:59:45.239
and yeah, I feel like you
had to because of the sardine pick to

844
00:59:45.320 --> 00:59:49.960
balance things out a little bit.
Sardines. I don't think of sardine's is

845
00:59:50.000 --> 00:59:53.639
meat as much as I think of
like steak and port Anyway, Yeah,

846
00:59:53.920 --> 01:00:04.280
ZII jelly at the Month Club probably
sorry the National opens chuck there. It

847
01:00:04.280 --> 01:00:07.480
wouldn't shock me at all at this
point if there's a jellybox. But yeah,

848
01:00:07.519 --> 01:00:12.480
so yeah, I'm excited about that
too, So I'm going to pick

849
01:00:12.480 --> 01:00:15.599
that. And then when I came
out here, I booked my hotel through

850
01:00:15.639 --> 01:00:17.119
hotels dot com. So if you're
looking for a way to save some money

851
01:00:17.119 --> 01:00:20.639
on a hotel, that's a great
way to go to Olivia. What do

852
01:00:20.719 --> 01:00:24.079
you picks? So I'm going to
start with a counterpoint because I have to.

853
01:00:24.320 --> 01:00:27.960
I'm a meat eater, I'm a
carnivore. I'm a French person.

854
01:00:28.039 --> 01:00:31.920
Therefore I eat like milk and all
the things dairy everything. But because I

855
01:00:32.039 --> 01:00:37.159
like my planet and I'm trying to
be kind of conscious, I actually made

856
01:00:37.400 --> 01:00:39.039
It's going to be kind of like
a half steff self pick. There's two

857
01:00:39.039 --> 01:00:44.400
things I don't like. It is
waste and like needless waste, and the

858
01:00:44.440 --> 01:00:46.519
other one is like if I can
reduce my impact or I can help reduce

859
01:00:46.559 --> 01:00:52.719
my impact on like just crap everywhere. I tried to not drink milk if

860
01:00:52.760 --> 01:00:55.199
I don't have to, So if
I need to consume like a whole glass

861
01:00:55.199 --> 01:01:00.920
of milk, I'm actually drinking something
called oatly, which is stupidly good oat

862
01:01:00.920 --> 01:01:05.119
milk or oat I don't know liquid
if you want to be contentious. It

863
01:01:05.320 --> 01:01:08.880
just has exactly what none of the
substitutes to milk have, which is like

864
01:01:08.920 --> 01:01:14.320
a little bit of fatty content in
it in it to make it like substantial,

865
01:01:14.400 --> 01:01:17.280
and it works pretty well with coffee. There's a barista addition for people

866
01:01:17.320 --> 01:01:22.079
who like to use whole milk with
their coffee. That's just thicker and it

867
01:01:22.079 --> 01:01:24.480
works better for that. And actually
I'm a coffee nerd, and when I

868
01:01:24.559 --> 01:01:28.920
stretch milk, I can make it
look like wet paint and it's beautiful and

869
01:01:28.960 --> 01:01:31.760
it's delicious, and it mixes in
perfectly. Oat Lea's a little bit more

870
01:01:31.800 --> 01:01:36.639
like two percent milk in that in
that regard, but it's super good and

871
01:01:37.880 --> 01:01:42.079
fewer farting cows, so it helps
to kind of reduce that a little bit.

872
01:01:42.119 --> 01:01:44.519
And I again, I love cheese. I'm never gonna get rid of

873
01:01:44.559 --> 01:01:46.519
cheese, but I can reduce milk
consumption a little bit because milk is like

874
01:01:46.599 --> 01:01:50.719
not really that when you kind of
try other things, you realize it's not

875
01:01:50.800 --> 01:01:53.400
that amazing. And then there's there's
something I haven't tried but I kind of

876
01:01:53.440 --> 01:01:58.320
want to try. I love ribbi
specifically, it's my favorite cut, but

877
01:01:58.480 --> 01:02:00.679
when I eat burgers, i'm kind
of curous. Like ground meat in general,

878
01:02:00.800 --> 01:02:04.960
is there's a lot of research to
try and make alternative ground meat,

879
01:02:05.480 --> 01:02:08.199
and there's impossible burger and beyond meat. If you have one around you,

880
01:02:08.280 --> 01:02:15.400
just as a intellectual curiosity, try
it out, because I've discovered that I

881
01:02:15.480 --> 01:02:19.719
don't like alternative fake meat stuff,
but things that are good and that you

882
01:02:19.880 --> 01:02:23.119
used to replace ingredients with, not
just to pretend that they're meat, but

883
01:02:23.239 --> 01:02:25.480
to be like, hey, this
is also good. A lot of the

884
01:02:27.440 --> 01:02:30.880
impossible burger beyond meat all that stuff
is pea based, So this is pea

885
01:02:30.920 --> 01:02:34.719
protein and PA has kind of like
a dirt, kind of like similar irony

886
01:02:34.760 --> 01:02:38.360
taste as meat red meat. It's
not going to be a substitute, but

887
01:02:38.400 --> 01:02:43.199
it might be good, like a
legit good thing to eat. So that's

888
01:02:43.199 --> 01:02:46.039
one thing I wanted to mention.
So in the wastefulness kind of like sustainability

889
01:02:46.079 --> 01:02:52.320
angle. I made a little website
for Earthday called Horizon zerowaste dot com.

890
01:02:52.519 --> 01:02:54.639
If you get the pun, you're
cool. If you don't, it's fine.

891
01:02:55.000 --> 01:03:00.079
And it's basically the stupidest little front
end. It's just an HTML repo

892
01:03:00.159 --> 01:03:04.320
that's actually marked down. I'm pretty
sure if I remember correctly, there's at

893
01:03:04.360 --> 01:03:07.199
the bottom you can see there's a
link to the repo and it's just a

894
01:03:07.199 --> 01:03:10.800
list of things you can do as
alternatives to things that are wasteful. So,

895
01:03:10.840 --> 01:03:15.320
for instance, bottle of water is
just straight up it makes no sense,

896
01:03:15.639 --> 01:03:19.239
like just there's so many ways to
drink water in metal bottles like this

897
01:03:19.320 --> 01:03:22.679
qrsicle bottle that I have. It's
an Orlando based company that makes super good

898
01:03:22.960 --> 01:03:25.400
Zoji Roushi is a Japanese company that
makes really easy to drink from mugs that

899
01:03:25.440 --> 01:03:30.000
you don't have to unscrew and things
like this. Carrying around a water mug

900
01:03:30.079 --> 01:03:32.760
or water jug or anything like that
is just like makes a ton of sense.

901
01:03:34.159 --> 01:03:37.320
There's these machines in the airports everywhere
where you can get filtered water now

902
01:03:37.480 --> 01:03:42.000
these days, so it's just like
everywhere. So that's one of the examples.

903
01:03:42.039 --> 01:03:45.440
There's plenty of things like that.
It's not just all about straws.

904
01:03:45.840 --> 01:03:49.000
There's a lot more stuff that you
can avoid doing. It's stupidly easy for

905
01:03:49.119 --> 01:03:52.039
most of them. So I encourage
you to just like type in anything that

906
01:03:52.079 --> 01:03:55.400
you want to try to be less
wasteful about in a little type of keyword

907
01:03:55.559 --> 01:03:59.679
box at the top. Anything plastic, you can see alternatives like metal,

908
01:04:00.079 --> 01:04:02.920
metals cool. You can smelt it
and you can turn it into something else.

909
01:04:03.199 --> 01:04:08.360
Plastic not so cool. A great
examples dishwasher detergent. It comes into

910
01:04:08.480 --> 01:04:13.079
big jugs that are basically full of
water. Powder detergent works exactly the same

911
01:04:13.280 --> 01:04:16.199
because you turn it into water with
your dishwasher. And it also means that

912
01:04:16.199 --> 01:04:19.320
people are not shipping boxes of water
around the world, so it helps.

913
01:04:19.440 --> 01:04:23.199
Now I have more Techi picks.
I'm just gonna go go through them really

914
01:04:23.239 --> 01:04:28.760
quick. I'm an amateur photographer and
for years I try to fight Apple Photos

915
01:04:29.360 --> 01:04:32.039
or like work with it. And
probably they're going to improve it with the

916
01:04:32.119 --> 01:04:36.320
new macros version, but it's it's
still not quite good enough for the kinds

917
01:04:36.360 --> 01:04:40.400
of insane amounts of photos that I
take. I take a lot of photos

918
01:04:40.440 --> 01:04:43.760
that end up being in like two
hundred and fifty thousand shots in fifteen years

919
01:04:43.800 --> 01:04:45.360
or something like that, so it
takes a lot of space. I want

920
01:04:45.360 --> 01:04:49.679
it sync across devices. Turns out
Adobe was there a while ago. They're

921
01:04:49.719 --> 01:04:53.880
still there, and Lightroom CEC is
one of those things where I'm not paid

922
01:04:53.920 --> 01:04:57.880
to say this, but as someone
who's just a software nitpicker and a photographer,

923
01:04:58.239 --> 01:05:00.039
they've kicked ass on light room C. You see. It's efficient.

924
01:05:00.159 --> 01:05:03.920
It uses sql light as a kind
of like a local storage database, but

925
01:05:04.000 --> 01:05:10.599
it's all kind of like Canonical in
the cloud based, which means it's always

926
01:05:10.679 --> 01:05:15.320
sinked extremely fast to a lot of
devices. It has machine learning search like

927
01:05:15.360 --> 01:05:17.840
I mentioned in the pre call,
where you can find like photos of coffee

928
01:05:17.920 --> 01:05:23.400
mugs or photos of rugs when you're
looking for a thing that you haven't categorized

929
01:05:23.400 --> 01:05:27.280
in a thing and it works surprisingly
well. It's fast, the editing is

930
01:05:27.519 --> 01:05:30.840
seamless. You can do a lot
of things with a keyboards. It's really

931
01:05:30.880 --> 01:05:33.119
impressive, and I think they have
like cheap or free tier plans for thirty

932
01:05:33.199 --> 01:05:36.119
days or something like that where you
can try it out. I iPhone app,

933
01:05:36.199 --> 01:05:40.639
macrosapp, and pretty much every platform. Even the web app is great.

934
01:05:41.039 --> 01:05:44.840
Well, what's your preferred camera?
My camera's nuts. So this is

935
01:05:44.880 --> 01:05:47.360
not a recommendation because most sane people
would not spend that much money on a

936
01:05:47.400 --> 01:05:51.480
camera. So I have a Sony
X one R two, which is a

937
01:05:51.519 --> 01:05:57.559
full frame fixed lens camera that's a
thirty five milimeter lens F two point zero

938
01:05:58.280 --> 01:06:05.599
Zeiss lens on a basically the same
sensor as the mirrorless A seven R two

939
01:06:06.079 --> 01:06:12.079
by Sony, which is the big
fancy Sony DSLR. Basically it's not DSLR,

940
01:06:12.079 --> 01:06:15.039
there's no mirror, but it's one
of the best there. The sensor

941
01:06:15.159 --> 01:06:19.000
is the big thing, big ticket
item. Is just an incredible fifty mega

942
01:06:19.280 --> 01:06:24.360
pixel sensor or forty seven megapixel sensor. And it's a full frame camera,

943
01:06:24.440 --> 01:06:28.280
so you get all that, you
know, soft focused stuff and Bok booka

944
01:06:29.000 --> 01:06:31.280
and yeah. So if you like
photos and stuff like that, it's it's

945
01:06:31.280 --> 01:06:34.599
good stuff, very cool, all
right. If people want to find you

946
01:06:34.639 --> 01:06:39.000
online Olivia, where do they go? So O L I V I E

947
01:06:39.119 --> 01:06:44.480
R L A C A N dot
com. That's my email to hi at

948
01:06:44.519 --> 01:06:47.360
me. Uh that's the same for
Twitter, O L I uh oh wow,

949
01:06:47.400 --> 01:06:49.559
I'm trying to spell my name,
and I'm like, you can find

950
01:06:49.559 --> 01:06:54.440
me if you put Olivier and Ruby
in the in the googles, you can

951
01:06:54.480 --> 01:06:57.960
probably find me on GitHub. Same
thing. And I do a bunch of

952
01:06:57.960 --> 01:07:02.639
open source stuff like keep a change
log and uh yeah that's me. Nice

953
01:07:02.920 --> 01:07:05.440
all right. Well, thanks for
coming and talking to us, Thank you

954
01:07:05.440 --> 01:07:08.840
for having me. All right,
We're going to wrap this one up,

955
01:07:08.840 --> 01:07:10.440
folks, and we will be back
next week.

