WEBVTT

1
00:00:05.440 --> 00:00:08.400
<v Speaker 1>Hey, growl. Welcome to another episode of Ruby Ropes. I'm

2
00:00:08.480 --> 00:00:10.960
<v Speaker 1>David Kumia and today on our panel we have Luke

3
00:00:11.000 --> 00:00:15.839
<v Speaker 1>Sutter's Stutters, and we have John Epperson everybody, and today

4
00:00:15.919 --> 00:00:18.120
<v Speaker 1>we have a special guest, Jesse Speedback.

5
00:00:18.320 --> 00:00:19.079
<v Speaker 2>Great to be here.

6
00:00:19.280 --> 00:00:21.679
<v Speaker 1>So, Jesse, would you mind explaining just a bit about

7
00:00:21.719 --> 00:00:23.559
<v Speaker 1>who you are, some of the things that you're doing,

8
00:00:24.000 --> 00:00:25.839
<v Speaker 1>who you work for, and what are you're famous and

9
00:00:25.879 --> 00:00:26.640
<v Speaker 1>all that good stuff.

10
00:00:27.879 --> 00:00:31.120
<v Speaker 2>Yeah. Absolutely, so. My name is Jessin Speedback. I'm a

11
00:00:31.239 --> 00:00:34.520
<v Speaker 2>senior engineer at a company called Ibata, which is a

12
00:00:34.520 --> 00:00:38.200
<v Speaker 2>cash back for shopping app based in Denver, Colorado. I've

13
00:00:38.200 --> 00:00:40.600
<v Speaker 2>been working there for about three and a half years.

14
00:00:40.960 --> 00:00:42.880
<v Speaker 2>We are to do some hiring, so check out our

15
00:00:42.920 --> 00:00:47.479
<v Speaker 2>cruise page. I guess I'm famous as it were, because

16
00:00:47.960 --> 00:00:51.520
<v Speaker 2>I gave a talk at the first Remote Rails comp

17
00:00:51.640 --> 00:00:54.920
<v Speaker 2>this past May, and I talked about kind of how

18
00:00:54.960 --> 00:00:56.960
<v Speaker 2>crummy of a developer I am.

19
00:00:57.119 --> 00:00:59.560
<v Speaker 3>Yeah, I think we can all relate to that on

20
00:00:59.640 --> 00:01:03.439
<v Speaker 3>the daily basis sometimes, So would you might have given

21
00:01:03.479 --> 00:01:07.200
<v Speaker 3>a bit of a you know, highlight talk about what

22
00:01:07.599 --> 00:01:09.920
<v Speaker 3>you covered the conference and stuff, so we can just

23
00:01:10.000 --> 00:01:11.040
<v Speaker 3>kind of pick it up from there.

24
00:01:11.239 --> 00:01:13.560
<v Speaker 1>We'll link to the in the show notes a link

25
00:01:13.599 --> 00:01:16.599
<v Speaker 1>to the conference, but just for those who maybe didn't

26
00:01:16.640 --> 00:01:17.079
<v Speaker 1>see it.

27
00:01:17.200 --> 00:01:21.359
<v Speaker 2>Sure, and there's no substitute for actually watching this fantastic talk.

28
00:01:23.200 --> 00:01:28.760
<v Speaker 2>But more more seriously, the talk is really about my

29
00:01:28.879 --> 00:01:31.599
<v Speaker 2>experience as a tech lead and I bought a working

30
00:01:31.599 --> 00:01:34.719
<v Speaker 2>on a pretty critical project over the course of about

31
00:01:35.599 --> 00:01:40.040
<v Speaker 2>six six months or so, and over that time I

32
00:01:40.120 --> 00:01:45.079
<v Speaker 2>made four very big mistakes that put the project in jeopardy.

33
00:01:45.599 --> 00:01:48.719
<v Speaker 2>And hopefully there are mistakes that I will learn from

34
00:01:48.760 --> 00:01:51.159
<v Speaker 2>and not make again as I continue to lead projects

35
00:01:51.159 --> 00:01:55.120
<v Speaker 2>that I bought in the future. And my hope is

36
00:01:55.200 --> 00:02:00.760
<v Speaker 2>that by sort of articulating these mistakes and what I

37
00:02:00.840 --> 00:02:03.760
<v Speaker 2>learned from them, other folks can benefit. And so the

38
00:02:03.799 --> 00:02:06.400
<v Speaker 2>four mistakes that I made are first, we picked the

39
00:02:06.439 --> 00:02:09.800
<v Speaker 2>wrong technology. Can get more into that. We also, as

40
00:02:09.840 --> 00:02:13.319
<v Speaker 2>a team we siloed work, so work was divided up

41
00:02:13.360 --> 00:02:17.599
<v Speaker 2>in not the best way. We fell into the premature

42
00:02:17.680 --> 00:02:22.159
<v Speaker 2>optimization trap. And then maybe worst of all, we made

43
00:02:22.680 --> 00:02:25.639
<v Speaker 2>way too many changes at one time. So I can

44
00:02:25.680 --> 00:02:26.960
<v Speaker 2>go into detail on any of those.

45
00:02:27.319 --> 00:02:30.719
<v Speaker 1>Yeah, and I think it's fair to say that our

46
00:02:30.759 --> 00:02:34.599
<v Speaker 1>listeners other members on the panel have been there before.

47
00:02:35.240 --> 00:02:38.280
<v Speaker 4>Yeah, I've worked with loads of people who made those mistakes.

48
00:02:38.360 --> 00:02:41.199
<v Speaker 4>Obviously I've never made them myself, but oh my word.

49
00:02:43.159 --> 00:02:45.199
<v Speaker 5>Luke is the perfect developer. Let's be fair.

50
00:02:45.680 --> 00:02:48.039
<v Speaker 6>No, I was actually going to jump in and say that, like,

51
00:02:48.719 --> 00:02:51.360
<v Speaker 6>I feel like I don't feel like I'm alone, but

52
00:02:51.560 --> 00:02:55.759
<v Speaker 6>usually when you make a mistake, it cascades into more

53
00:02:55.840 --> 00:02:59.479
<v Speaker 6>for whatever reason. I generally feel like you you either

54
00:02:59.599 --> 00:03:01.719
<v Speaker 6>kind of a rolling along and you feel pretty good

55
00:03:01.719 --> 00:03:05.719
<v Speaker 6>about stuff, or you're just like in a bottomless pit

56
00:03:07.039 --> 00:03:09.479
<v Speaker 6>and there's very little in between. Time you just suddenly

57
00:03:09.520 --> 00:03:13.080
<v Speaker 6>notice that you're at the bottom. So yeah, just saying.

58
00:03:13.159 --> 00:03:15.680
<v Speaker 2>And absolutely, and I just want to kind of call

59
00:03:15.719 --> 00:03:19.280
<v Speaker 2>out that there's like a certain amount of privilege that

60
00:03:19.319 --> 00:03:22.240
<v Speaker 2>comes with being able to talk about our mistakes. Right,

61
00:03:22.719 --> 00:03:25.639
<v Speaker 2>I'm not worried that my boss is going to fire me,

62
00:03:26.000 --> 00:03:29.120
<v Speaker 2>and I'm also not worried that folks won't take me

63
00:03:29.159 --> 00:03:32.560
<v Speaker 2>seriously for getting this talk. If anything, it probably improves

64
00:03:32.560 --> 00:03:35.520
<v Speaker 2>my reputation as evidence by getting to talk to three

65
00:03:35.560 --> 00:03:37.960
<v Speaker 2>of you gentlemen. So I just want to call that

66
00:03:38.000 --> 00:03:40.840
<v Speaker 2>out because I think it's important.

67
00:03:41.000 --> 00:03:43.680
<v Speaker 6>I think that, Okay, So speaking of that, I think

68
00:03:43.680 --> 00:03:45.840
<v Speaker 6>there's a give and take there too, So I think

69
00:03:45.879 --> 00:03:48.680
<v Speaker 6>this is one of this will get into a thing

70
00:03:48.719 --> 00:03:52.039
<v Speaker 6>that I care a lot about this particular subject because

71
00:03:52.319 --> 00:03:55.159
<v Speaker 6>for most of my shoot, I still feel it today

72
00:03:55.240 --> 00:03:57.919
<v Speaker 6>or whatever, it doesn't really matter. I still always feel

73
00:03:57.919 --> 00:04:01.599
<v Speaker 6>this pressure to not let people know about the mistakes

74
00:04:01.599 --> 00:04:03.960
<v Speaker 6>that I made, right, because letting people know about the

75
00:04:03.960 --> 00:04:07.159
<v Speaker 6>mistakes that I made makes me more vulnerable to them

76
00:04:07.240 --> 00:04:09.520
<v Speaker 6>not wanting me to work for them, right, like fire

77
00:04:09.599 --> 00:04:13.159
<v Speaker 6>me whatever. The bad thing is that it's a boogeyman,

78
00:04:13.240 --> 00:04:16.360
<v Speaker 6>it's not real. It's just a pressure, right, And so

79
00:04:17.399 --> 00:04:18.959
<v Speaker 6>I guess what I'm trying to get at is like

80
00:04:19.240 --> 00:04:22.040
<v Speaker 6>I kind of feel like one of the things that

81
00:04:22.120 --> 00:04:26.040
<v Speaker 6>I always care a lot about, what mistakes is telling

82
00:04:26.040 --> 00:04:30.800
<v Speaker 6>people about your mistakes, I actually have discovered in reality

83
00:04:31.920 --> 00:04:35.879
<v Speaker 6>actually makes people respect you more, but it doesn't change

84
00:04:35.920 --> 00:04:38.360
<v Speaker 6>the fact that it's like really hard, and I still

85
00:04:38.360 --> 00:04:39.680
<v Speaker 6>feel that pressure to this day.

86
00:04:39.879 --> 00:04:42.360
<v Speaker 2>Yeah, John, Yeah, I agree with what you're saying. I

87
00:04:42.360 --> 00:04:46.800
<v Speaker 2>think that for a lot of us, talking about mistakes

88
00:04:46.839 --> 00:04:49.279
<v Speaker 2>openly and honestly and what we learn from them actually

89
00:04:49.319 --> 00:04:53.040
<v Speaker 2>builds our credibility. But that's not always the case, depending

90
00:04:53.079 --> 00:04:55.920
<v Speaker 2>on sort of how you present what you look like.

91
00:04:56.639 --> 00:05:00.279
<v Speaker 2>I think that you guys recently did an episode. I

92
00:05:00.279 --> 00:05:05.360
<v Speaker 2>think you talked about issues of hiring and getting equality

93
00:05:05.360 --> 00:05:07.120
<v Speaker 2>in a workplace, and I think that that kind of

94
00:05:07.120 --> 00:05:08.240
<v Speaker 2>plays in here for sure.

95
00:05:08.680 --> 00:05:11.160
<v Speaker 1>And I would go as far to say that it

96
00:05:11.160 --> 00:05:14.160
<v Speaker 1>depends on what the mistake is, what kind of mistake

97
00:05:14.199 --> 00:05:18.279
<v Speaker 1>it is. If it is just utter and complete negligence,

98
00:05:19.120 --> 00:05:21.959
<v Speaker 1>then those aren't really the kind of mistakes I would

99
00:05:21.959 --> 00:05:25.399
<v Speaker 1>really want to be forthcoming and outright about, you know.

100
00:05:25.560 --> 00:05:29.759
<v Speaker 1>But like if I went in and always had a

101
00:05:29.879 --> 00:05:33.319
<v Speaker 1>VP and tunnel into my production environment and then we

102
00:05:33.399 --> 00:05:37.720
<v Speaker 1>got malware in our local work environment and that transferred

103
00:05:37.759 --> 00:05:41.360
<v Speaker 1>over to production and encrypted all of our production data,

104
00:05:41.759 --> 00:05:43.720
<v Speaker 1>I don't know if I would really say like, oh, yeah,

105
00:05:43.800 --> 00:05:46.199
<v Speaker 1>you know, that was a silly mistake of mine. No,

106
00:05:46.480 --> 00:05:50.000
<v Speaker 1>it's like, okay, not only of our customers effective, but

107
00:05:50.079 --> 00:05:54.399
<v Speaker 1>now you know, my jobs in jeopardy because I decided

108
00:05:54.439 --> 00:05:58.040
<v Speaker 1>to always take shortcuts. But something like and what I'm

109
00:05:58.079 --> 00:06:03.879
<v Speaker 1>really interested in is your technology framework or the use

110
00:06:04.000 --> 00:06:07.120
<v Speaker 1>the wrong technology? Can you explain a bit more about

111
00:06:07.160 --> 00:06:07.920
<v Speaker 1>the scenario?

112
00:06:08.560 --> 00:06:12.439
<v Speaker 2>Sure? Absolutely, so. This is the high level we had

113
00:06:12.480 --> 00:06:17.720
<v Speaker 2>ibought it. We have just a wonderful majestic monolith rails application. Actually,

114
00:06:17.720 --> 00:06:20.680
<v Speaker 2>originally the application we've written in Scala, and then after

115
00:06:20.720 --> 00:06:22.720
<v Speaker 2>about a month of that, they switched it over and

116
00:06:23.040 --> 00:06:25.680
<v Speaker 2>rebuilt the whole thing in Rails and it's been Rails

117
00:06:25.720 --> 00:06:29.360
<v Speaker 2>ever since. So it's going on close almost ten years

118
00:06:29.360 --> 00:06:31.600
<v Speaker 2>at this point. So it's a it's a large application,

119
00:06:31.680 --> 00:06:36.279
<v Speaker 2>it serves millions of users. Very cool, and about three

120
00:06:36.360 --> 00:06:38.959
<v Speaker 2>years ago when I joined, we started thinking. We started

121
00:06:39.000 --> 00:06:42.199
<v Speaker 2>growing the team and thinking about how we could, like

122
00:06:42.639 --> 00:06:45.839
<v Speaker 2>many people have pull pieces out of the monolith into

123
00:06:46.360 --> 00:06:49.959
<v Speaker 2>micro services. So this project in particular was about taking

124
00:06:50.000 --> 00:06:52.800
<v Speaker 2>a piece of billing logic from the system, from the

125
00:06:52.800 --> 00:06:55.959
<v Speaker 2>monolith and pulling it out into a micro service. The

126
00:06:56.040 --> 00:06:59.519
<v Speaker 2>hope was to make it better, encapsulated, easier to iterate on,

127
00:07:00.120 --> 00:07:03.560
<v Speaker 2>not you know, isolate dependencies, every reason that you'd think

128
00:07:03.600 --> 00:07:07.639
<v Speaker 2>to build a micro service. So we chose Actually, before

129
00:07:07.639 --> 00:07:11.319
<v Speaker 2>I say the technology, because before I get trolled by

130
00:07:11.360 --> 00:07:15.040
<v Speaker 2>all the lovers of this technology, I'm going to preface

131
00:07:15.079 --> 00:07:18.199
<v Speaker 2>this by saying I don't think that this technology is wrong,

132
00:07:18.360 --> 00:07:21.120
<v Speaker 2>and I don't think it's bad in and of itself.

133
00:07:21.560 --> 00:07:23.800
<v Speaker 2>I just think it was not the right technology for

134
00:07:23.920 --> 00:07:24.560
<v Speaker 2>the problem.

135
00:07:25.160 --> 00:07:28.399
<v Speaker 4>And the team hold on a second hold on the

136
00:07:28.439 --> 00:07:32.319
<v Speaker 4>second Jesse because the slide I'm looking at says big mistakes.

137
00:07:32.639 --> 00:07:36.759
<v Speaker 4>It doesn't say small mistakes. It said big mistakes. So

138
00:07:36.879 --> 00:07:38.759
<v Speaker 4>let's just keep this in mind, beful, what we reveal,

139
00:07:38.839 --> 00:07:41.560
<v Speaker 4>what this technology is, What a big mistake.

140
00:07:41.399 --> 00:07:46.360
<v Speaker 2>Was absolutely this. Whoever uses this technology is definitely making

141
00:07:46.399 --> 00:07:49.920
<v Speaker 2>a big mistake. So you spoiler. We weren't building like

142
00:07:50.079 --> 00:07:53.759
<v Speaker 2>us a side rails app micro service, which would probably

143
00:07:53.800 --> 00:07:56.519
<v Speaker 2>would not have been as big a mistake. But the

144
00:07:56.639 --> 00:08:00.519
<v Speaker 2>issue really was that our team, the small team of

145
00:08:00.560 --> 00:08:03.920
<v Speaker 2>developers and then a larger team of engineers in the company,

146
00:08:04.360 --> 00:08:07.199
<v Speaker 2>really did not have a ton of experience with the

147
00:08:07.240 --> 00:08:11.959
<v Speaker 2>framework that we chose, and as a result, we ended

148
00:08:12.040 --> 00:08:15.160
<v Speaker 2>up having to do a lot of plumbing and reinventing

149
00:08:15.199 --> 00:08:19.480
<v Speaker 2>the wheel and just not benefiting from the institutional experience

150
00:08:19.519 --> 00:08:24.399
<v Speaker 2>that exists at Ibottom. And unfortunately, right this this could

151
00:08:24.480 --> 00:08:26.680
<v Speaker 2>work if you're doing kind of like a proof concept,

152
00:08:26.800 --> 00:08:29.959
<v Speaker 2>like let's show what this technology can do. Let's pick

153
00:08:30.040 --> 00:08:34.039
<v Speaker 2>a pretty isolated use case. But the building logic that

154
00:08:34.080 --> 00:08:38.559
<v Speaker 2>we were pulling out about Monolith was basically like do

155
00:08:38.759 --> 00:08:42.080
<v Speaker 2>or die. Right, if it did not work, it costs

156
00:08:42.120 --> 00:08:45.000
<v Speaker 2>millions of dollars to fix, or you know, it ends

157
00:08:45.080 --> 00:08:47.919
<v Speaker 2>up costing company millions of dollars. So it really we

158
00:08:47.919 --> 00:08:49.960
<v Speaker 2>were walking on a tide rope and there was no

159
00:08:50.000 --> 00:08:53.360
<v Speaker 2>net underneath us, and unfortunately we decided to I guess

160
00:08:53.360 --> 00:08:56.799
<v Speaker 2>like walk on our hands instead of go across normally.

161
00:08:57.399 --> 00:09:01.480
<v Speaker 2>So the framework that we used is called and I

162
00:09:01.519 --> 00:09:04.720
<v Speaker 2>think for a team that knows AKA, this probably would

163
00:09:04.759 --> 00:09:07.559
<v Speaker 2>have been really a perfect tool for the job. But

164
00:09:07.840 --> 00:09:09.840
<v Speaker 2>our team and our company really did not have a

165
00:09:09.879 --> 00:09:13.240
<v Speaker 2>ton of experience with Akka, and so unfortunately we weren't

166
00:09:13.279 --> 00:09:15.799
<v Speaker 2>able to sort of take advantage of it and use

167
00:09:15.840 --> 00:09:19.240
<v Speaker 2>it in a way that sort of professional AKA developers

168
00:09:19.960 --> 00:09:20.480
<v Speaker 2>likely can.

169
00:09:20.960 --> 00:09:24.039
<v Speaker 4>So this is kind of like a functional programming thing, right.

170
00:09:24.120 --> 00:09:28.840
<v Speaker 2>It deals with data streams and passing data along in

171
00:09:28.879 --> 00:09:33.519
<v Speaker 2>a functional paradigm, and it's meant to accommodate high volume

172
00:09:33.639 --> 00:09:39.279
<v Speaker 2>data across highly parallelized system. So you know, at the

173
00:09:39.360 --> 00:09:42.840
<v Speaker 2>time we went there, well I'll talk about when we

174
00:09:42.879 --> 00:09:45.799
<v Speaker 2>went there in a second, but in retrospect, it was

175
00:09:46.200 --> 00:09:49.919
<v Speaker 2>it was something that could handle basically ten thousand x

176
00:09:50.360 --> 00:09:52.159
<v Speaker 2>really what we needed in terms of what it was

177
00:09:52.200 --> 00:09:55.960
<v Speaker 2>designed to handle. So just sort of on paper, it

178
00:09:55.960 --> 00:09:59.200
<v Speaker 2>probably wasn't the best the best move in that respect,

179
00:09:59.279 --> 00:10:00.879
<v Speaker 2>but I could also talk about the team as well

180
00:10:00.879 --> 00:10:02.399
<v Speaker 2>and why it wasn't a great a great bit.

181
00:10:02.799 --> 00:10:05.279
<v Speaker 6>Yeah, can you can you talk for just a minute

182
00:10:05.320 --> 00:10:07.519
<v Speaker 6>about like what was the problem that you were trying

183
00:10:07.559 --> 00:10:09.240
<v Speaker 6>to solve, why did you choose?

184
00:10:09.360 --> 00:10:11.720
<v Speaker 5>Like what did you need akup for sure?

185
00:10:11.840 --> 00:10:15.440
<v Speaker 2>Yeah? Perfect. So the problem that we're trying to solve,

186
00:10:15.679 --> 00:10:17.480
<v Speaker 2>and you have to know a little bit about the

187
00:10:17.519 --> 00:10:19.759
<v Speaker 2>Ibota app. So I assume all of you, all of

188
00:10:19.759 --> 00:10:22.600
<v Speaker 2>you guys have downloaded it and are actively using it.

189
00:10:23.000 --> 00:10:25.000
<v Speaker 4>Absolutely it's the best Apple that they used.

190
00:10:25.240 --> 00:10:25.440
<v Speaker 2>Good.

191
00:10:25.919 --> 00:10:31.759
<v Speaker 6>I've definitely looked at it and I was like, nope.

192
00:10:30.840 --> 00:10:33.039
<v Speaker 2>That's funny. We did a cert. Well I'll get to

193
00:10:33.039 --> 00:10:36.559
<v Speaker 2>that later, But basically, I bought it as a way

194
00:10:36.600 --> 00:10:39.960
<v Speaker 2>for you to get digital coupons. You can get brands

195
00:10:40.000 --> 00:10:42.720
<v Speaker 2>put offers in the app. You click on the offer,

196
00:10:43.240 --> 00:10:45.840
<v Speaker 2>you show us evidence that you bought the thing that

197
00:10:45.960 --> 00:10:47.679
<v Speaker 2>is on offer, and then I bought it. Will pay

198
00:10:47.720 --> 00:10:50.399
<v Speaker 2>you cash back, they'll put me send it to your

199
00:10:50.399 --> 00:10:52.600
<v Speaker 2>PayPal account, give you a gift card to Amazon, whatever

200
00:10:52.600 --> 00:10:55.519
<v Speaker 2>you want. So the problem that we're trying to solve

201
00:10:55.639 --> 00:10:57.440
<v Speaker 2>is how do we make sure that the offers in

202
00:10:57.519 --> 00:11:01.399
<v Speaker 2>the app don't exceed the budget that is allocated to

203
00:11:01.480 --> 00:11:03.600
<v Speaker 2>them by the brands that put those offers in the air.

204
00:11:03.759 --> 00:11:05.919
<v Speaker 2>And that sounds maybe like an easy problem, like there's

205
00:11:05.960 --> 00:11:08.840
<v Speaker 2>an easy way to just say, Okay, there's five hundred

206
00:11:08.840 --> 00:11:13.720
<v Speaker 2>thousand dollars in budget for Oreo coupons. Just divide five

207
00:11:13.759 --> 00:11:16.639
<v Speaker 2>hundred thousand dollars by how many how much money we're

208
00:11:16.679 --> 00:11:20.080
<v Speaker 2>giving out per coupon, and then you know, there's actually

209
00:11:20.159 --> 00:11:23.919
<v Speaker 2>much Like it's obviously much harder than that, And in

210
00:11:24.000 --> 00:11:26.679
<v Speaker 2>order to preserve a good user experience, we need to

211
00:11:26.720 --> 00:11:30.679
<v Speaker 2>make sure that we're not yanking content and surprising our users.

212
00:11:30.720 --> 00:11:32.720
<v Speaker 2>Like you would be really upset if you went to

213
00:11:32.720 --> 00:11:35.519
<v Speaker 2>the store specifically to buy Oreos to get the coupon

214
00:11:36.120 --> 00:11:38.840
<v Speaker 2>and then by the time you checked out, the coupon

215
00:11:38.960 --> 00:11:41.200
<v Speaker 2>was no longer in your application. So we have to

216
00:11:41.279 --> 00:11:46.039
<v Speaker 2>run some predictive algorithms to basically guess when we're going

217
00:11:46.120 --> 00:11:48.799
<v Speaker 2>to run out of money and kind of slow the coupon,

218
00:11:48.919 --> 00:11:52.440
<v Speaker 2>slow the velocity down as we approach that point.

219
00:11:52.840 --> 00:11:58.000
<v Speaker 4>Oh dear, that's that's that's that's a dangerous recipe, I

220
00:11:58.080 --> 00:12:00.279
<v Speaker 4>must add to think about. It is a vague in

221
00:12:00.279 --> 00:12:03.200
<v Speaker 4>the UK at the moment. Is it available in Canada.

222
00:12:03.919 --> 00:12:06.840
<v Speaker 2>We are only in the United States right now. Sorry.

223
00:12:07.080 --> 00:12:11.080
<v Speaker 4>Yeah, So in my defense, this looks like the perfect

224
00:12:11.080 --> 00:12:13.200
<v Speaker 4>storm for me because you've both got the kind of

225
00:12:13.240 --> 00:12:15.519
<v Speaker 4>strong financial components. So if you get it wrong, you

226
00:12:15.600 --> 00:12:19.759
<v Speaker 4>lose money. And if you get it long, then people

227
00:12:19.799 --> 00:12:22.639
<v Speaker 4>have wasted their time going to the shop. You know,

228
00:12:23.279 --> 00:12:25.960
<v Speaker 4>in Britain it's so small. I can walk to the shop.

229
00:12:26.360 --> 00:12:28.799
<v Speaker 4>You know, sometimes I just open the window and shout

230
00:12:28.840 --> 00:12:30.799
<v Speaker 4>at them and tell them what I want. But you know,

231
00:12:30.960 --> 00:12:32.679
<v Speaker 4>I know when I was living in the States and

232
00:12:32.720 --> 00:12:35.279
<v Speaker 4>people maybe drive for two hours to go to Walmart.

233
00:12:35.879 --> 00:12:39.519
<v Speaker 4>So this is this is this is quite a quite

234
00:12:39.559 --> 00:12:40.679
<v Speaker 4>a problem you've got there.

235
00:12:41.120 --> 00:12:43.600
<v Speaker 2>Yeah, it was. It's interesting that you say that, because

236
00:12:43.720 --> 00:12:45.919
<v Speaker 2>right when I joined the company, I was kind of

237
00:12:46.200 --> 00:12:48.919
<v Speaker 2>put on the team. I was actually giving you my

238
00:12:49.559 --> 00:12:52.200
<v Speaker 2>tech body, my mentor. When I joined the company, this

239
00:12:52.360 --> 00:12:55.840
<v Speaker 2>was his project, and as someone knew in the company,

240
00:12:55.840 --> 00:12:58.559
<v Speaker 2>it was it was very it was really overwhelming problem

241
00:12:58.639 --> 00:13:04.600
<v Speaker 2>space because basically, these campaigns and application almost have like a

242
00:13:04.600 --> 00:13:08.080
<v Speaker 2>physical momentum to them. So if you imagine trying to

243
00:13:08.120 --> 00:13:11.480
<v Speaker 2>stop a moving train, you can't just hit the brakes

244
00:13:11.480 --> 00:13:13.320
<v Speaker 2>and expect it to stop on a dime. You have

245
00:13:13.399 --> 00:13:17.399
<v Speaker 2>to apply the brakes over some distance to slow the

246
00:13:17.440 --> 00:13:19.519
<v Speaker 2>train down. And that's really how the content in the

247
00:13:19.559 --> 00:13:23.639
<v Speaker 2>application is modeled. And it's I'm not a physics person,

248
00:13:24.039 --> 00:13:25.679
<v Speaker 2>and so it's really confusing.

249
00:13:26.759 --> 00:13:30.279
<v Speaker 6>So all right, so this seems a slightly I mean,

250
00:13:30.320 --> 00:13:34.240
<v Speaker 6>it's a it's a twist right on your classical inventory problem, right,

251
00:13:34.480 --> 00:13:38.120
<v Speaker 6>is what it kind of sounds like. So the way

252
00:13:38.159 --> 00:13:42.720
<v Speaker 6>that AKA came into this is is what you were taking,

253
00:13:42.759 --> 00:13:46.279
<v Speaker 6>like what all these requests from users and trying to

254
00:13:46.360 --> 00:13:48.600
<v Speaker 6>decide whether or not you're going to I guess give

255
00:13:48.600 --> 00:13:50.039
<v Speaker 6>them the coupon or not or something.

256
00:13:50.600 --> 00:13:53.879
<v Speaker 2>Yeah, that's that's that's sort of right. So we have

257
00:13:54.159 --> 00:13:58.120
<v Speaker 2>an event based architecture where our system and for the

258
00:13:58.200 --> 00:14:00.120
<v Speaker 2>for folks who are familiar with that, I mean is

259
00:14:00.120 --> 00:14:04.799
<v Speaker 2>that basically your system publishes events, which is data that

260
00:14:04.960 --> 00:14:08.240
<v Speaker 2>signified that something has happened of interest in the system.

261
00:14:08.320 --> 00:14:12.559
<v Speaker 2>So maybe, like you know, shopping cart loaded is an

262
00:14:12.559 --> 00:14:14.840
<v Speaker 2>event that you might have in like a typical inventory

263
00:14:14.840 --> 00:14:18.039
<v Speaker 2>space or something like that. So we have events that

264
00:14:18.120 --> 00:14:22.039
<v Speaker 2>we're interested in, like content awarded, which means that John

265
00:14:22.240 --> 00:14:24.639
<v Speaker 2>went to the store, submitted or received through the app,

266
00:14:25.120 --> 00:14:28.080
<v Speaker 2>and got cash back. So the content has been awarded,

267
00:14:28.600 --> 00:14:32.679
<v Speaker 2>So we listen for those events in order to keep

268
00:14:32.720 --> 00:14:35.759
<v Speaker 2>track in real time of how much budget is being used,

269
00:14:36.279 --> 00:14:40.039
<v Speaker 2>and we basically track that over time to make a

270
00:14:40.159 --> 00:14:44.120
<v Speaker 2>rough prediction about how fast things are moving. And so AKA, sorry, John,

271
00:14:44.159 --> 00:14:47.399
<v Speaker 2>to get back to your original question, AKA is really

272
00:14:47.440 --> 00:14:53.799
<v Speaker 2>good at streaming data, at streaming large amounts, high volume data.

273
00:14:54.399 --> 00:14:58.080
<v Speaker 2>And I bought a we'll get on the order of

274
00:14:58.159 --> 00:15:01.679
<v Speaker 2>several hundred thousand of these content aword events per day,

275
00:15:02.480 --> 00:15:04.600
<v Speaker 2>which seems like a lot, but it's actually much lower

276
00:15:04.600 --> 00:15:06.919
<v Speaker 2>than I think what AKA can kind of deal with

277
00:15:07.080 --> 00:15:08.720
<v Speaker 2>or is designed to deal with out of the box.

278
00:15:09.200 --> 00:15:10.240
<v Speaker 5>Yeah did you so?

279
00:15:11.080 --> 00:15:15.480
<v Speaker 6>Did you consider alternatives? Did you reject them for various reasons?

280
00:15:16.480 --> 00:15:19.320
<v Speaker 6>And and I guess so. Obviously AKA didn't work out

281
00:15:19.320 --> 00:15:21.840
<v Speaker 6>for you, so you must have picked something else that

282
00:15:22.200 --> 00:15:25.200
<v Speaker 6>you like better. And how did you arrive at that

283
00:15:25.320 --> 00:15:27.720
<v Speaker 6>new thing? And what was that? If that makes some sense?

284
00:15:28.080 --> 00:15:36.080
<v Speaker 2>Yeah? Perfect, So yeah we we Basically this comes down

285
00:15:36.120 --> 00:15:40.360
<v Speaker 2>to some team issues again and not not an issue

286
00:15:40.360 --> 00:15:45.919
<v Speaker 2>with OCCA. So the team issue was basically that at

287
00:15:45.960 --> 00:15:47.799
<v Speaker 2>the start of this project, we scaled up our team,

288
00:15:47.960 --> 00:15:50.320
<v Speaker 2>like this is a lot of work we need, we

289
00:15:50.360 --> 00:15:53.320
<v Speaker 2>need to bring in some artillery, and we brought in

290
00:15:53.360 --> 00:15:56.679
<v Speaker 2>a new developer from outside of the company who is awesome.

291
00:15:57.519 --> 00:16:00.360
<v Speaker 2>She's a rock star and had it was from the

292
00:16:00.399 --> 00:16:06.159
<v Speaker 2>ad product space and with dealing with volume, much volume

293
00:16:06.200 --> 00:16:09.159
<v Speaker 2>of streaming data at a scale much higher than than

294
00:16:09.200 --> 00:16:11.600
<v Speaker 2>what we needed or we're going to be dealing with

295
00:16:11.639 --> 00:16:17.360
<v Speaker 2>in it in any near near future. And you know,

296
00:16:17.480 --> 00:16:19.960
<v Speaker 2>she was coming from I believe in AKA shop and

297
00:16:20.000 --> 00:16:22.919
<v Speaker 2>so she joins the team. We're excited to have her.

298
00:16:22.960 --> 00:16:24.879
<v Speaker 2>We think she's a rock star. I mean, she's a

299
00:16:24.960 --> 00:16:28.320
<v Speaker 2>rock star. And she's like, this is a perfect use

300
00:16:28.360 --> 00:16:31.159
<v Speaker 2>case for ACCA. We're like, okay, never heard of that,

301
00:16:31.200 --> 00:16:33.960
<v Speaker 2>but you know, we trust you. You crushed our interview

302
00:16:34.240 --> 00:16:38.000
<v Speaker 2>and we think you're amazing. So yeah, that's that sounds

303
00:16:38.000 --> 00:16:42.879
<v Speaker 2>pretty good. And again this isn't a knock against Akka.

304
00:16:42.960 --> 00:16:46.080
<v Speaker 2>I think this is just that in our company, we

305
00:16:46.159 --> 00:16:49.480
<v Speaker 2>have a ton of infrastructure setup to support the tools

306
00:16:49.480 --> 00:16:53.279
<v Speaker 2>that our company has sort of blessed that that are

307
00:16:53.360 --> 00:16:55.639
<v Speaker 2>kind of frequently in use. In fact, we have like

308
00:16:55.639 --> 00:16:57.840
<v Speaker 2>a name for that. We call it the paved road,

309
00:16:58.480 --> 00:17:00.679
<v Speaker 2>which is like, if you're an engineer, you have a

310
00:17:00.720 --> 00:17:03.159
<v Speaker 2>lot of autonomy and abada belt what you use but

311
00:17:03.240 --> 00:17:05.079
<v Speaker 2>if you stay on the paved road, it should be

312
00:17:05.119 --> 00:17:08.599
<v Speaker 2>an easy path. And akka, which is a jam you know,

313
00:17:08.640 --> 00:17:13.720
<v Speaker 2>which used with Java or Scala typically is not on.

314
00:17:13.920 --> 00:17:16.799
<v Speaker 2>I bought a paved road. So we had to kind

315
00:17:16.799 --> 00:17:20.880
<v Speaker 2>of have a contentious meeting, a contentious conversation with the

316
00:17:21.079 --> 00:17:24.359
<v Speaker 2>architects at Abada and say, no, we really we believe

317
00:17:24.440 --> 00:17:27.279
<v Speaker 2>in in our developer and we think that she knows

318
00:17:27.319 --> 00:17:30.039
<v Speaker 2>what she's doing, and we're ready to sort of make

319
00:17:30.079 --> 00:17:33.240
<v Speaker 2>our bed and lay in it. And they were like, well,

320
00:17:33.519 --> 00:17:37.039
<v Speaker 2>you know, as long as you know that, so they

321
00:17:37.160 --> 00:17:39.039
<v Speaker 2>let us kind of they gave us just enough rope

322
00:17:39.079 --> 00:17:41.759
<v Speaker 2>to forget how the rest of that goes to hang

323
00:17:41.839 --> 00:17:42.400
<v Speaker 2>ourselves with.

324
00:17:43.000 --> 00:17:46.599
<v Speaker 6>Okay, So so it sounds like you had an advocate

325
00:17:46.640 --> 00:17:49.400
<v Speaker 6>and that's kind of how you landed on it. Where

326
00:17:49.440 --> 00:17:51.599
<v Speaker 6>did you go after you decided that ACA was the

327
00:17:51.599 --> 00:17:53.400
<v Speaker 6>poor choice? Like what did you end up with?

328
00:17:53.920 --> 00:17:56.200
<v Speaker 2>Yeah? So this and this kind of gets into the

329
00:17:56.200 --> 00:18:00.960
<v Speaker 2>next problem, which was the siloed work. So we're starting

330
00:18:01.000 --> 00:18:04.960
<v Speaker 2>to work on building this AKA powered race car of

331
00:18:05.000 --> 00:18:08.039
<v Speaker 2>a micro service to pull biling logic out of our

332
00:18:08.160 --> 00:18:11.519
<v Speaker 2>rails monolith. And there's sort of two streams of work.

333
00:18:11.759 --> 00:18:15.599
<v Speaker 2>There's the development of the ACA micro service, which is

334
00:18:15.960 --> 00:18:18.799
<v Speaker 2>we were writing the reason Cotland, which is the JBM.

335
00:18:19.240 --> 00:18:22.079
<v Speaker 2>It's kind of a nicer job. It's what Android apps

336
00:18:22.079 --> 00:18:24.799
<v Speaker 2>are written in. It's actually pretty nice. So we have

337
00:18:24.920 --> 00:18:27.000
<v Speaker 2>that work going on, and then we have to integrate

338
00:18:28.200 --> 00:18:33.079
<v Speaker 2>that micro service sorry into the Rails monolith. So I

339
00:18:33.160 --> 00:18:36.359
<v Speaker 2>ended up taking on a lot of the integration work

340
00:18:36.920 --> 00:18:40.319
<v Speaker 2>and the other developer took on most of the Akka

341
00:18:40.759 --> 00:18:43.440
<v Speaker 2>and Cotland work. So we have these sort of two

342
00:18:43.519 --> 00:18:47.480
<v Speaker 2>very isolated pieces of work that are siloed. And then

343
00:18:47.920 --> 00:18:51.440
<v Speaker 2>something terrible happened. And I don't blame this person at all,

344
00:18:51.519 --> 00:18:54.480
<v Speaker 2>because I wouldn't want to be on my team anyway.

345
00:18:54.920 --> 00:18:57.799
<v Speaker 2>She decided that she was much more interested in data

346
00:18:57.839 --> 00:19:01.240
<v Speaker 2>engineering and she moved to a different team in the company.

347
00:19:01.759 --> 00:19:04.359
<v Speaker 2>So and that's actually, you know a great thing about

348
00:19:04.400 --> 00:19:07.759
<v Speaker 2>working at Ibada, Like we've got tons of really cool problems,

349
00:19:07.759 --> 00:19:11.319
<v Speaker 2>different spaces, and people are almost encouraged to move around

350
00:19:11.359 --> 00:19:13.039
<v Speaker 2>to find things that they're that they like and are

351
00:19:13.039 --> 00:19:17.400
<v Speaker 2>good at. So she made this move, and now now

352
00:19:17.559 --> 00:19:20.960
<v Speaker 2>the the problem of using a framework that none of

353
00:19:21.039 --> 00:19:24.119
<v Speaker 2>us had experience with and that the general company didn't

354
00:19:24.160 --> 00:19:26.519
<v Speaker 2>have a ton of experience with really became self evident

355
00:19:26.880 --> 00:19:29.039
<v Speaker 2>because now there was there was still work left to

356
00:19:29.079 --> 00:19:33.079
<v Speaker 2>do on the micro service. And I'm just I'm just

357
00:19:33.440 --> 00:19:36.400
<v Speaker 2>a rails developer, Like I had to go into there

358
00:19:36.680 --> 00:19:40.079
<v Speaker 2>and start reading Cotlan, started reading the ACA documentation and

359
00:19:40.160 --> 00:19:42.799
<v Speaker 2>try to wrap my head around what what this whole

360
00:19:42.920 --> 00:19:48.319
<v Speaker 2>you know, actor system meant. And it was. It was tough,

361
00:19:48.519 --> 00:19:53.119
<v Speaker 2>and that's why I call it a big mistake. So sorry, Dave.

362
00:19:53.519 --> 00:19:56.839
<v Speaker 1>You know from my experience too, is that, yeah, Ruby

363
00:19:56.920 --> 00:19:59.480
<v Speaker 1>is slow, you know, there's no getting around that when

364
00:19:59.519 --> 00:20:03.720
<v Speaker 1>you compare to a compiled language. But holy crab, is

365
00:20:03.759 --> 00:20:07.599
<v Speaker 1>it fast too. You know, I have a production application

366
00:20:08.119 --> 00:20:13.680
<v Speaker 1>which processes over five hundred thousand active jobs every single day,

367
00:20:14.279 --> 00:20:17.359
<v Speaker 1>and that it does it extremely quick. I don't need

368
00:20:17.400 --> 00:20:20.279
<v Speaker 1>it to be faster. I mean that's plenty fast on

369
00:20:20.359 --> 00:20:23.839
<v Speaker 1>the current setup that it's on, which is two cores

370
00:20:24.079 --> 00:20:27.440
<v Speaker 1>and four gigs of RAM, and we have two servers

371
00:20:27.720 --> 00:20:31.279
<v Speaker 1>dedicated to the background job, so two vms. It's able

372
00:20:31.279 --> 00:20:33.440
<v Speaker 1>to handle that load and we don't have to worry

373
00:20:33.480 --> 00:20:36.599
<v Speaker 1>about it crashing or anything like that. So I mean

374
00:20:36.640 --> 00:20:40.319
<v Speaker 1>that's good enough for us. Now I imagine that it

375
00:20:40.359 --> 00:20:43.720
<v Speaker 1>would be able to double that workload before we ever

376
00:20:43.839 --> 00:20:46.720
<v Speaker 1>ran into any kind of performance issues where we needed

377
00:20:46.759 --> 00:20:47.920
<v Speaker 1>to start scaling up.

378
00:20:48.440 --> 00:20:52.240
<v Speaker 2>Absolutely, Davi, and we were originally in the monolith. The

379
00:20:52.279 --> 00:20:55.640
<v Speaker 2>way the system worked was it ran on a background

380
00:20:55.640 --> 00:21:00.559
<v Speaker 2>scheduled job using rescue, and the scheduled job based took

381
00:21:00.680 --> 00:21:04.000
<v Speaker 2>roughly forty five minutes to run, So it was running

382
00:21:04.720 --> 00:21:06.559
<v Speaker 2>like kind of like a waterfall, like every ten minutes,

383
00:21:06.599 --> 00:21:08.319
<v Speaker 2>we'd start a new job that would take forty five

384
00:21:08.319 --> 00:21:12.319
<v Speaker 2>minutes to run. And so going from that to basically

385
00:21:12.440 --> 00:21:16.839
<v Speaker 2>completely real time is a huge improvement. And if you know,

386
00:21:16.920 --> 00:21:19.880
<v Speaker 2>real time for five hundred thousand events per day versus

387
00:21:19.880 --> 00:21:23.319
<v Speaker 2>five million events per day are different things, but if

388
00:21:23.359 --> 00:21:26.440
<v Speaker 2>you're at real time, it's already this just enormous improvement

389
00:21:27.000 --> 00:21:28.759
<v Speaker 2>over what we were working with, which is like this

390
00:21:28.839 --> 00:21:32.799
<v Speaker 2>forty five minute loop. So at that point, and I

391
00:21:32.799 --> 00:21:35.559
<v Speaker 2>guess I'll say another thing before I get into like

392
00:21:35.559 --> 00:21:38.599
<v Speaker 2>how we fixed how we fixed my mistake, This is

393
00:21:38.640 --> 00:21:41.759
<v Speaker 2>actually getting to what Dave said, this is a case

394
00:21:41.759 --> 00:21:44.920
<v Speaker 2>of premature optimization. We sort of didn't do the back

395
00:21:44.960 --> 00:21:48.839
<v Speaker 2>of the envelope math well enough or didn't have a

396
00:21:48.839 --> 00:21:51.519
<v Speaker 2>clear picture of like, okay, this is really like designed

397
00:21:51.559 --> 00:21:55.519
<v Speaker 2>to handle like literally a thousand times more traffic than

398
00:21:55.599 --> 00:21:59.640
<v Speaker 2>our best day. So you know, we didn't that was

399
00:21:59.720 --> 00:22:01.559
<v Speaker 2>that was definitely a mistake, like we should have asked

400
00:22:01.599 --> 00:22:04.839
<v Speaker 2>that question and realized, Okay, maybe maybe this is a

401
00:22:04.880 --> 00:22:07.200
<v Speaker 2>little too much horsepower. We don't need this. It's too

402
00:22:07.279 --> 00:22:10.039
<v Speaker 2>much trouble for what it's for, what's buying us. And

403
00:22:10.160 --> 00:22:13.680
<v Speaker 2>on my end, also, I was imagining, you know, getting

404
00:22:13.720 --> 00:22:16.400
<v Speaker 2>all these events we call it, So the micro service

405
00:22:16.480 --> 00:22:20.640
<v Speaker 2>was producing like prediction events, Okay, so predicting every time

406
00:22:20.680 --> 00:22:22.920
<v Speaker 2>a piece of content should come down and making an

407
00:22:22.920 --> 00:22:26.240
<v Speaker 2>adjustment about when it thinks that that should happen. And

408
00:22:26.279 --> 00:22:29.880
<v Speaker 2>so I'm imagining the monolith is listening to these prediction events,

409
00:22:30.200 --> 00:22:35.599
<v Speaker 2>subscribe to an SNS topic or sqsq and I imagine,

410
00:22:35.920 --> 00:22:39.640
<v Speaker 2>you know, thousands and thousands and thousands of events every second,

411
00:22:40.119 --> 00:22:42.640
<v Speaker 2>which is way way too much. And so I was

412
00:22:42.680 --> 00:22:45.200
<v Speaker 2>thinking of like all these clever ways to do caching

413
00:22:45.359 --> 00:22:48.200
<v Speaker 2>and like to try to figure out when can I

414
00:22:48.279 --> 00:22:50.519
<v Speaker 2>drop events so I don't need to hit the database,

415
00:22:50.599 --> 00:22:53.039
<v Speaker 2>like when can I? When can I? How can I

416
00:22:53.079 --> 00:22:55.440
<v Speaker 2>come up with these clever ways to only make round

417
00:22:55.480 --> 00:22:58.200
<v Speaker 2>trips to the database when I really need to, And

418
00:22:58.559 --> 00:23:01.599
<v Speaker 2>that added time to the DEVI, and it also added

419
00:23:01.599 --> 00:23:04.720
<v Speaker 2>a ton of complexity so that when our two systems,

420
00:23:04.759 --> 00:23:06.240
<v Speaker 2>when we were like, okay, let's turn them on, let's

421
00:23:06.240 --> 00:23:09.599
<v Speaker 2>see what happens. The first error that comes out, because

422
00:23:09.599 --> 00:23:11.680
<v Speaker 2>of course there's going to be an error when you

423
00:23:11.799 --> 00:23:15.079
<v Speaker 2>first try it out. That was really hard to debug.

424
00:23:15.160 --> 00:23:16.920
<v Speaker 2>It was really hard to understand, like is this a

425
00:23:17.000 --> 00:23:20.799
<v Speaker 2>caching issue? Is this actually an issue with the data

426
00:23:21.119 --> 00:23:24.640
<v Speaker 2>coming from microservice? Like it was really hard to isolate that.

427
00:23:25.000 --> 00:23:27.480
<v Speaker 2>And then that obviously moves into the third problem. The

428
00:23:27.480 --> 00:23:30.079
<v Speaker 2>third mistake was that we made too many changes at

429
00:23:30.079 --> 00:23:33.279
<v Speaker 2>one time. So all these were ways that I tried

430
00:23:33.319 --> 00:23:35.200
<v Speaker 2>to shoot myself in my foot, in my own foot

431
00:23:35.599 --> 00:23:37.400
<v Speaker 2>while working on this very important project.

432
00:23:38.480 --> 00:23:41.880
<v Speaker 4>Yeah makes sense. I'm not sure if I understand it.

433
00:23:42.200 --> 00:23:44.240
<v Speaker 4>So you're saying there's kind of two separate things going

434
00:23:44.240 --> 00:23:49.880
<v Speaker 4>on here. Firstly, you're moving to a completely new technology,

435
00:23:50.720 --> 00:23:52.799
<v Speaker 4>so you're taking a large part of the app out,

436
00:23:52.880 --> 00:23:55.400
<v Speaker 4>you're putting it in a micro service. It's not very

437
00:23:55.440 --> 00:23:58.680
<v Speaker 4>micro if you're doing what seven hundred thousand things today,

438
00:23:58.720 --> 00:24:02.160
<v Speaker 4>that's not a micro service. That's ah, this is this

439
00:24:02.240 --> 00:24:06.279
<v Speaker 4>is this is this is a macro MicroB or medcro

440
00:24:06.960 --> 00:24:11.079
<v Speaker 4>and the second thing you're doing is you're actually changing

441
00:24:11.119 --> 00:24:13.960
<v Speaker 4>the whole into face. So you're saying you're going from

442
00:24:14.799 --> 00:24:18.000
<v Speaker 4>you previously had a rescue batch job and now it's

443
00:24:18.039 --> 00:24:19.839
<v Speaker 4>saying no, no, no, we're not going to do batching. We're

444
00:24:19.839 --> 00:24:21.839
<v Speaker 4>going to do it all immediately.

445
00:24:22.359 --> 00:24:26.279
<v Speaker 2>Yeah, that's a really a student observation. So we were

446
00:24:26.480 --> 00:24:29.839
<v Speaker 2>changing structure and you were changing behavior at the same time,

447
00:24:29.960 --> 00:24:32.960
<v Speaker 2>which is something since that point I've really tried to

448
00:24:33.039 --> 00:24:36.759
<v Speaker 2>avoid doing, even at like the micro PR level. If

449
00:24:36.759 --> 00:24:38.680
<v Speaker 2>I have a PR, then I'm going to push up.

450
00:24:39.000 --> 00:24:42.599
<v Speaker 2>It's either going to add behavior, change behavior, or it's

451
00:24:42.599 --> 00:24:44.240
<v Speaker 2>going to change the structure of the code, and I'm

452
00:24:44.240 --> 00:24:45.799
<v Speaker 2>going to try to not do the two things at

453
00:24:45.799 --> 00:24:48.119
<v Speaker 2>the same time. So in this case, we did the

454
00:24:48.119 --> 00:24:51.839
<v Speaker 2>two things at the same time, and at multiple points

455
00:24:51.880 --> 00:24:54.480
<v Speaker 2>we should have known, or we should in retrospect, we

456
00:24:54.480 --> 00:24:58.000
<v Speaker 2>should have known to pause and verify, right and if

457
00:24:58.240 --> 00:25:02.279
<v Speaker 2>if we couldn't verify, take that failure as feedback and iterate.

458
00:25:02.480 --> 00:25:05.599
<v Speaker 2>And I think that that's really what really strong engineers,

459
00:25:05.640 --> 00:25:08.599
<v Speaker 2>experienced engineers know to do, make one change at a

460
00:25:08.599 --> 00:25:11.839
<v Speaker 2>time and verify like I have. It's I guess it's

461
00:25:11.920 --> 00:25:14.559
<v Speaker 2>kind of like when I run our respect right or

462
00:25:15.319 --> 00:25:18.960
<v Speaker 2>ourspect feels like supernatural to me. So every time I

463
00:25:19.039 --> 00:25:21.599
<v Speaker 2>hit my test suite, I'm like, Okay, I expect this

464
00:25:21.680 --> 00:25:24.519
<v Speaker 2>to happen, and like sometimes I'm right and then sometimes

465
00:25:24.519 --> 00:25:27.519
<v Speaker 2>I'm wrong, and that's like really interesting too. But making

466
00:25:27.559 --> 00:25:30.920
<v Speaker 2>that initial guess of what's going to happen is super important.

467
00:25:31.240 --> 00:25:33.960
<v Speaker 2>And I think we didn't slow down and stop and say, Okay,

468
00:25:34.000 --> 00:25:36.799
<v Speaker 2>here's our guesses to what's going to happen. Here's how

469
00:25:36.799 --> 00:25:39.720
<v Speaker 2>we're going to verify it. And if we can't verify it,

470
00:25:39.759 --> 00:25:41.759
<v Speaker 2>here's like the corrective action we can take.

471
00:25:42.279 --> 00:25:44.759
<v Speaker 6>Yeah, so I think you're hitting it, like one thing

472
00:25:44.799 --> 00:25:48.880
<v Speaker 6>that's like really important, right, So one of the things

473
00:25:48.960 --> 00:25:52.559
<v Speaker 6>I think that make that really kind of makes you

474
00:25:52.599 --> 00:25:55.680
<v Speaker 6>a strong engineer of sorts. Right, It is not necessarily

475
00:25:55.720 --> 00:26:00.119
<v Speaker 6>like to avoid mistakes because shoot, for whatever reason, they

476
00:26:00.240 --> 00:26:03.319
<v Speaker 6>keep happening to me, Right, it's are you good at

477
00:26:03.319 --> 00:26:03.839
<v Speaker 6>cleaning up?

478
00:26:03.920 --> 00:26:04.119
<v Speaker 5>Right?

479
00:26:04.160 --> 00:26:07.920
<v Speaker 6>Are you good at figuring out that something's not right,

480
00:26:08.000 --> 00:26:11.680
<v Speaker 6>something smells funny? Whatever it is? Can you go back

481
00:26:11.759 --> 00:26:14.440
<v Speaker 6>and you know, sweep up your mess? You know, either

482
00:26:14.480 --> 00:26:16.920
<v Speaker 6>push it across the finish line because you're close enough,

483
00:26:17.400 --> 00:26:19.880
<v Speaker 6>or say, actually, this is the wrong path. We should

484
00:26:19.960 --> 00:26:22.440
<v Speaker 6>actually back up, go the last intersection and go down

485
00:26:22.440 --> 00:26:26.279
<v Speaker 6>the other way. So I mean it's definitely yeah. I

486
00:26:26.680 --> 00:26:28.799
<v Speaker 6>mean I can speak to experiences too where I was

487
00:26:28.880 --> 00:26:31.319
<v Speaker 6>just like, man, I really like missed all the flags

488
00:26:31.680 --> 00:26:34.160
<v Speaker 6>and then I kept missing more flags and just kept

489
00:26:34.200 --> 00:26:37.480
<v Speaker 6>going and and why are we surprised that we were

490
00:26:37.519 --> 00:26:39.960
<v Speaker 6>in a bad place? Because I like ignored everything. So

491
00:26:40.440 --> 00:26:44.359
<v Speaker 6>I hear you meant it, and and kudos for recognizing

492
00:26:44.440 --> 00:26:47.559
<v Speaker 6>it at some point and and uh and doing something

493
00:26:47.559 --> 00:26:47.960
<v Speaker 6>about it.

494
00:26:48.400 --> 00:26:51.440
<v Speaker 2>Yeah, so what do we do about it? We? Unfortunately,

495
00:26:51.640 --> 00:26:53.960
<v Speaker 2>I well, not unfortunately. It was a good It was

496
00:26:53.960 --> 00:26:58.400
<v Speaker 2>a good learning experience. But obviously my happy place is

497
00:26:58.559 --> 00:27:03.240
<v Speaker 2>deep in our legacy rails application finding all the pathways there.

498
00:27:03.240 --> 00:27:05.200
<v Speaker 2>But I had to get really pushed myself yet out

499
00:27:05.240 --> 00:27:08.319
<v Speaker 2>of my comfort zone. I had to pick up Colin. Luckily,

500
00:27:08.359 --> 00:27:11.240
<v Speaker 2>Colin is like a super friendly language I think to

501
00:27:11.240 --> 00:27:15.000
<v Speaker 2>get into, especially for folks who are coming from Ruby,

502
00:27:15.440 --> 00:27:17.480
<v Speaker 2>because I think that there's like kind of like an

503
00:27:17.519 --> 00:27:22.160
<v Speaker 2>emphasis on syntax, on like syntactic sugar on, like making

504
00:27:22.200 --> 00:27:25.519
<v Speaker 2>the code actually like readable and look nice, whereas that's

505
00:27:25.559 --> 00:27:29.039
<v Speaker 2>not always the case with all JBM languages. So in

506
00:27:29.079 --> 00:27:31.920
<v Speaker 2>that case. In that sense, it was kind of friendly. Also,

507
00:27:31.960 --> 00:27:34.200
<v Speaker 2>at I bought a we were able to like organize

508
00:27:34.279 --> 00:27:36.279
<v Speaker 2>kind of a learning group. So there are lots of

509
00:27:36.279 --> 00:27:38.640
<v Speaker 2>folks who are new to Ibata or new to Colin

510
00:27:39.039 --> 00:27:42.440
<v Speaker 2>who were kind of trying to solve these similar problems.

511
00:27:42.440 --> 00:27:46.200
<v Speaker 2>So we made a study group, we found cool online coursework.

512
00:27:46.960 --> 00:27:49.200
<v Speaker 2>We held each other accountable for making sure that we

513
00:27:49.200 --> 00:27:52.599
<v Speaker 2>were making progress on those things. And I started writing

514
00:27:52.640 --> 00:27:55.680
<v Speaker 2>Colin in the micro service to try to, like you said,

515
00:27:55.799 --> 00:27:57.640
<v Speaker 2>push across the line, like we need to get this

516
00:27:57.720 --> 00:27:59.839
<v Speaker 2>across the line, and then we can kind of circle

517
00:27:59.839 --> 00:28:03.000
<v Speaker 2>back and deal with some of the underlying problems. And

518
00:28:03.039 --> 00:28:05.119
<v Speaker 2>that's important because like as engineers, like at the end

519
00:28:05.160 --> 00:28:07.880
<v Speaker 2>of the day, we're trying to deliver value to the

520
00:28:07.880 --> 00:28:10.640
<v Speaker 2>businesses that we that we work for and not just

521
00:28:10.839 --> 00:28:14.839
<v Speaker 2>like trying out a new technology or like optimize what technology,

522
00:28:14.880 --> 00:28:19.039
<v Speaker 2>what what technological solution we're we're we're implementing.

523
00:28:19.799 --> 00:28:23.599
<v Speaker 6>So to just to clarify with what you're saying, you kept,

524
00:28:24.680 --> 00:28:28.160
<v Speaker 6>you kept oka you just you just pushed it across

525
00:28:28.200 --> 00:28:30.960
<v Speaker 6>the finish line despite all your your problems.

526
00:28:31.559 --> 00:28:33.240
<v Speaker 5>Yeah, that's okay.

527
00:28:33.680 --> 00:28:37.240
<v Speaker 2>So we had we had problems with it, and we decided,

528
00:28:37.640 --> 00:28:41.440
<v Speaker 2>let's get this thing. We're like, we're close enough, even

529
00:28:41.480 --> 00:28:44.200
<v Speaker 2>with the problems, even with our lack of understanding, we're

530
00:28:44.200 --> 00:28:47.759
<v Speaker 2>close enough that a total re right right now would

531
00:28:47.799 --> 00:28:50.960
<v Speaker 2>put us back a long way and upset the business.

532
00:28:51.160 --> 00:28:53.720
<v Speaker 2>So let's push it across the line and then we

533
00:28:53.720 --> 00:28:56.119
<v Speaker 2>can circle back and figure out what to do. So

534
00:28:56.400 --> 00:28:59.920
<v Speaker 2>that was that. Delivering that value, even though it kind

535
00:28:59.920 --> 00:29:02.720
<v Speaker 2>of felt yucky, even though we knew that there were

536
00:29:02.720 --> 00:29:04.720
<v Speaker 2>things that were going to need to change over the

537
00:29:04.799 --> 00:29:07.880
<v Speaker 2>long swer bought us some time and brought us some

538
00:29:07.920 --> 00:29:09.400
<v Speaker 2>credibility in the organization.

539
00:29:10.160 --> 00:29:12.119
<v Speaker 1>And I want to circle back to the point you

540
00:29:12.160 --> 00:29:15.640
<v Speaker 1>made about moving too quickly or too many changes happening

541
00:29:15.680 --> 00:29:18.440
<v Speaker 1>at one time, And I think that's something that a

542
00:29:18.480 --> 00:29:23.559
<v Speaker 1>lot of developers might start to experience soon with the

543
00:29:23.599 --> 00:29:28.640
<v Speaker 1>whole removal of j Query from Bootstrap five. So no,

544
00:29:29.440 --> 00:29:31.960
<v Speaker 1>not my jQuery, no.

545
00:29:35.200 --> 00:29:35.559
<v Speaker 5>Sorry.

546
00:29:35.680 --> 00:29:39.599
<v Speaker 1>So the idea is that Bootstrap five no longer has

547
00:29:39.640 --> 00:29:44.039
<v Speaker 1>a jQuery dependency. So you might plan to upgrade your

548
00:29:44.119 --> 00:29:49.839
<v Speaker 1>rails application the CSS framework from bootsrap four to Bootstrap five,

549
00:29:50.440 --> 00:29:53.519
<v Speaker 1>and you might say like, hey, well, why we're making

550
00:29:53.559 --> 00:29:56.160
<v Speaker 1>this change, Why don't we go ahead and rewrite a

551
00:29:56.160 --> 00:30:00.880
<v Speaker 1>lot of our JavaScript that was also jQuery dependent, and

552
00:30:00.960 --> 00:30:04.880
<v Speaker 1>so I would say, instead of doing that, do one thing.

553
00:30:05.319 --> 00:30:09.400
<v Speaker 1>Either first remove all your jQuery dependency within your application

554
00:30:09.880 --> 00:30:13.440
<v Speaker 1>and just have jQuery be a dependency of Bootstrap, and

555
00:30:13.480 --> 00:30:18.359
<v Speaker 1>then in another iteration, upgrade your Bootstrap version, removing then

556
00:30:18.480 --> 00:30:21.799
<v Speaker 1>jQuery entirely. Or do advice versa where you do your

557
00:30:21.799 --> 00:30:24.599
<v Speaker 1>Bootstrap upgrade first and then you do your j Query

558
00:30:24.759 --> 00:30:28.240
<v Speaker 1>removal from your application as a dependency. But trying to

559
00:30:28.279 --> 00:30:31.519
<v Speaker 1>do both side by side it's too big of a task,

560
00:30:32.279 --> 00:30:35.079
<v Speaker 1>you know, for you know, one person or one team

561
00:30:35.119 --> 00:30:37.079
<v Speaker 1>to do right away. I would just handle one thing

562
00:30:37.119 --> 00:30:40.759
<v Speaker 1>at a time and moving slower. You're going to say, okay,

563
00:30:41.319 --> 00:30:44.960
<v Speaker 1>what broke this? Was it the new Bootstrap framework.

564
00:30:44.640 --> 00:30:45.119
<v Speaker 5>That broke this?

565
00:30:45.359 --> 00:30:48.960
<v Speaker 1>Or was it our jQuery rewrite? So that way you're

566
00:30:48.960 --> 00:30:52.440
<v Speaker 1>gonna be able to identify a lot more problems quicker

567
00:30:52.519 --> 00:30:54.839
<v Speaker 1>before they are reported to you by the customer.

568
00:30:55.640 --> 00:31:00.319
<v Speaker 2>Absolutely, I think the most experienced engines of the best

569
00:31:00.359 --> 00:31:02.759
<v Speaker 2>engineers I've worked with, his name is Justin Hart. He

570
00:31:02.920 --> 00:31:05.480
<v Speaker 2>was the like did the first commit on the on

571
00:31:05.559 --> 00:31:08.440
<v Speaker 2>the monath that I work on, and every time I

572
00:31:08.480 --> 00:31:11.519
<v Speaker 2>work with him, that is always my experience like is like,

573
00:31:11.680 --> 00:31:15.119
<v Speaker 2>we're making this change, here's what we expect, and we're

574
00:31:15.119 --> 00:31:16.799
<v Speaker 2>going to do it, and then we're going to verify

575
00:31:16.839 --> 00:31:19.240
<v Speaker 2>it and then we're gonna move on. And I'm always like, oh,

576
00:31:19.279 --> 00:31:21.359
<v Speaker 2>why don't we do this, this and this, and he's like, no, no, no,

577
00:31:21.960 --> 00:31:26.599
<v Speaker 2>just this one thing. And it's illuminating, right, it's illuminating.

578
00:31:26.640 --> 00:31:29.039
<v Speaker 2>I think it's helped me as a developer in the

579
00:31:29.079 --> 00:31:32.440
<v Speaker 2>projects that I'm doing now, realizing like, Okay, this thing

580
00:31:32.519 --> 00:31:34.160
<v Speaker 2>that I that I want to do, it's actually like

581
00:31:34.240 --> 00:31:36.319
<v Speaker 2>four different things, and I'm going to do the first

582
00:31:36.559 --> 00:31:38.920
<v Speaker 2>the first thing, first, verify it, and then move on

583
00:31:39.000 --> 00:31:39.359
<v Speaker 2>from there.

584
00:31:39.519 --> 00:31:42.680
<v Speaker 4>If you all your loved ones are affected by the

585
00:31:42.759 --> 00:31:45.839
<v Speaker 4>removal of j Query from boots Chap, why not check

586
00:31:45.880 --> 00:31:48.680
<v Speaker 4>out the excellent call from Jef dev chat dot tv

587
00:31:49.480 --> 00:31:52.880
<v Speaker 4>you don't know JavaScript yet thirty day challenge available with

588
00:31:52.960 --> 00:31:55.960
<v Speaker 4>the link in the episode showness.

589
00:31:55.640 --> 00:31:58.359
<v Speaker 5>Were scheduled for advertisement there.

590
00:32:01.240 --> 00:32:03.559
<v Speaker 4>Just trying to just trying to just trying to keep

591
00:32:03.559 --> 00:32:04.279
<v Speaker 4>a ship afloat.

592
00:32:04.279 --> 00:32:08.799
<v Speaker 6>Man, come on, uh, I was gonna so this goes

593
00:32:08.839 --> 00:32:10.200
<v Speaker 6>along for me with.

594
00:32:10.319 --> 00:32:11.720
<v Speaker 4>No no, no, no no no no no no no no no.

595
00:32:12.119 --> 00:32:14.480
<v Speaker 4>We have to do jQuery now because this is really

596
00:32:14.519 --> 00:32:17.559
<v Speaker 4>affecting me. I mean, this is this is terrible news.

597
00:32:17.920 --> 00:32:22.000
<v Speaker 4>I literally can't write JavaScript without putting a dollar sign

598
00:32:22.079 --> 00:32:22.839
<v Speaker 4>in front of everything.

599
00:32:23.480 --> 00:32:24.400
<v Speaker 5>You wanted to have a.

600
00:32:24.400 --> 00:32:26.559
<v Speaker 6>Dollar sign it you just need to assign something to

601
00:32:26.599 --> 00:32:27.640
<v Speaker 6>the dollar sign that's off.

602
00:32:28.039 --> 00:32:31.079
<v Speaker 4>One of the reasons I started using maybe not jQuery

603
00:32:31.759 --> 00:32:33.680
<v Speaker 4>was because it has a little dollar sign in front

604
00:32:33.680 --> 00:32:35.559
<v Speaker 4>of the data structure, and that kind of really makes

605
00:32:35.559 --> 00:32:37.759
<v Speaker 4>me feel at home. Plus, you know, it's if it

606
00:32:37.839 --> 00:32:39.920
<v Speaker 4>feels like money, you know, when I tip the dollar

607
00:32:39.920 --> 00:32:41.720
<v Speaker 4>sign in, I feel like, yeah, this is going to

608
00:32:41.759 --> 00:32:42.720
<v Speaker 4>make me a millionaire.

609
00:32:43.440 --> 00:32:44.680
<v Speaker 5>Oh, I'm sorry.

610
00:32:44.880 --> 00:32:47.319
<v Speaker 1>So I guess while we're on JavaScript, I think another

611
00:32:47.480 --> 00:32:51.359
<v Speaker 1>premature optimization, or rather I like to call them premature

612
00:32:51.480 --> 00:32:56.279
<v Speaker 1>de optimization is creating a new Rubyon Reil's application with React.

613
00:32:56.839 --> 00:32:59.799
<v Speaker 1>The dashat web back equals React. Just thought through that

614
00:33:00.039 --> 00:33:02.799
<v Speaker 1>there for the oblutory bash on React.

615
00:33:03.079 --> 00:33:04.279
<v Speaker 5>I do like stimulus.

616
00:33:04.759 --> 00:33:06.759
<v Speaker 6>I do feel like I do feel like we can

617
00:33:06.920 --> 00:33:08.559
<v Speaker 6>we can let React go now.

618
00:33:08.920 --> 00:33:11.319
<v Speaker 2>Yeah, I mean, I don't know. Have you all checked

619
00:33:11.319 --> 00:33:15.920
<v Speaker 2>out the base camp's email Hey heay dot com.

620
00:33:15.519 --> 00:33:18.720
<v Speaker 4>Mm hm, oh yeah, yeah, what do you think?

621
00:33:19.359 --> 00:33:22.759
<v Speaker 2>Yeah? So I've been I've been using it, and obviously

622
00:33:22.799 --> 00:33:25.680
<v Speaker 2>I'm a base Camp fanboy, but I think it's it's

623
00:33:25.720 --> 00:33:29.359
<v Speaker 2>pretty amazing what what they're able to do with just

624
00:33:29.680 --> 00:33:32.119
<v Speaker 2>HTML over the wire for the most part, and not

625
00:33:32.119 --> 00:33:34.440
<v Speaker 2>not relying on some of the frameworks that have come

626
00:33:34.480 --> 00:33:37.960
<v Speaker 2>out recently. Also think it's super interesting, Like the twenty

627
00:33:38.000 --> 00:33:41.359
<v Speaker 2>twenty rebown Rails community survey, if you look the one

628
00:33:41.400 --> 00:33:44.480
<v Speaker 2>put out by Planet are Gone. If you look at

629
00:33:44.480 --> 00:33:46.720
<v Speaker 2>like what jobscript libraries people are using. So I was

630
00:33:46.759 --> 00:33:50.519
<v Speaker 2>expecting that number one would be React and maybe number

631
00:33:50.559 --> 00:33:52.680
<v Speaker 2>two would be I don't a view, or like Ember

632
00:33:52.759 --> 00:33:56.119
<v Speaker 2>or maybe, but number one on there is jQuery, and

633
00:33:56.839 --> 00:33:59.279
<v Speaker 2>it's like we're all in this, in this jQuery world,

634
00:33:59.319 --> 00:34:01.519
<v Speaker 2>and it's not bad. I love your Query.

635
00:34:02.039 --> 00:34:04.759
<v Speaker 6>So so for all of you who, along with Luke

636
00:34:04.960 --> 00:34:09.920
<v Speaker 6>are mourning j Query, I'm telling you Stimulus go check

637
00:34:09.960 --> 00:34:10.280
<v Speaker 6>it out.

638
00:34:10.880 --> 00:34:12.320
<v Speaker 4>All of them don't understand it.

639
00:34:12.880 --> 00:34:16.320
<v Speaker 5>I don't have an It's that's fair. I thought I

640
00:34:16.360 --> 00:34:17.280
<v Speaker 5>found it pretty easy.

641
00:34:17.360 --> 00:34:21.039
<v Speaker 6>I thought it gave me everything that I felt like

642
00:34:21.079 --> 00:34:23.719
<v Speaker 6>I was getting from j Querry before, which is a

643
00:34:23.760 --> 00:34:27.119
<v Speaker 6>thing happened on the page. And because that thing happened,

644
00:34:27.119 --> 00:34:31.400
<v Speaker 6>I mean Jesse talk about event based architecture here. Come on,

645
00:34:31.440 --> 00:34:35.159
<v Speaker 6>this is exactly what JavaScript is, right and jQuery especially right.

646
00:34:35.480 --> 00:34:39.039
<v Speaker 6>Stimulus is exactly that event happens. Do something else because

647
00:34:39.079 --> 00:34:41.679
<v Speaker 6>this thing happened, right, Just saying if you love that

648
00:34:41.760 --> 00:34:46.920
<v Speaker 6>event based architecture style stimulus is that it's just way

649
00:34:46.960 --> 00:34:50.800
<v Speaker 6>prettier and I found it a lot easier to use,

650
00:34:51.679 --> 00:34:54.320
<v Speaker 6>and because I don't like dollar signs, I was happy

651
00:34:54.360 --> 00:34:54.800
<v Speaker 6>about it.

652
00:34:55.039 --> 00:34:57.000
<v Speaker 1>Yeah, And Luke, if you want a bunch of different

653
00:34:57.599 --> 00:35:01.000
<v Speaker 1>stimulus JS tutorials, check out your the Ruby man, I

654
00:35:01.000 --> 00:35:02.199
<v Speaker 1>have a whole bunch on there.

655
00:35:02.880 --> 00:35:06.000
<v Speaker 4>And it's a big plug episode. Everyone quickly plugged their thing.

656
00:35:08.440 --> 00:35:10.719
<v Speaker 4>Do you know what, Actually, Dave, I have already checked

657
00:35:10.719 --> 00:35:13.599
<v Speaker 4>that out and I still don't understand it, so I

658
00:35:13.679 --> 00:35:16.760
<v Speaker 4>need to check it out again. It's definitely me, I

659
00:35:16.840 --> 00:35:18.440
<v Speaker 4>tell you, I tell you what the problem is, right.

660
00:35:19.480 --> 00:35:22.159
<v Speaker 4>I've been leaning on j Query for so long and

661
00:35:22.199 --> 00:35:26.599
<v Speaker 4>I'm talking about ten years, right, And it's not just

662
00:35:26.679 --> 00:35:30.360
<v Speaker 4>that I've got my whole arsenal of weird front end

663
00:35:30.519 --> 00:35:34.599
<v Speaker 4>stuff that I can pull in and replacing that big

664
00:35:34.800 --> 00:35:39.239
<v Speaker 4>long list of handy widgets I know will solve this problem.

665
00:35:39.840 --> 00:35:43.039
<v Speaker 4>Is the is the is what I'm lacking. So yeah,

666
00:35:43.079 --> 00:35:46.400
<v Speaker 4>basic gomb stuff. Fine, you know, yes, six all away.

667
00:35:46.880 --> 00:35:49.800
<v Speaker 4>But if I want to do something weird, if I

668
00:35:49.840 --> 00:35:53.239
<v Speaker 4>want to do something fancy, the whole point of stimulus

669
00:35:53.320 --> 00:35:55.679
<v Speaker 4>is it doesn't have weird fancy stuff. It's clean.

670
00:35:56.400 --> 00:36:00.320
<v Speaker 6>So so, now that we've decided that Jaquer is eyeing

671
00:36:00.599 --> 00:36:04.559
<v Speaker 6>and the hopefully our morning period is almost over, it

672
00:36:04.719 --> 00:36:05.039
<v Speaker 6>is dead.

673
00:36:05.519 --> 00:36:07.880
<v Speaker 4>I know it's dead. I'm just finding it hard to cope.

674
00:36:08.239 --> 00:36:12.199
<v Speaker 6>Okay, fair So, Dave, you earlier had me a little

675
00:36:12.199 --> 00:36:13.800
<v Speaker 6>bit on this train and I kind of wanted to

676
00:36:13.920 --> 00:36:16.599
<v Speaker 6>go back to it or whatever talking about like changing

677
00:36:16.679 --> 00:36:20.719
<v Speaker 6>multiple things because there's so many places where we can

678
00:36:20.760 --> 00:36:25.400
<v Speaker 6>find ourselves tricked or just like seduced into it right

679
00:36:25.840 --> 00:36:27.559
<v Speaker 6>where it just seems like the right thing to do.

680
00:36:28.519 --> 00:36:31.360
<v Speaker 6>So so my the thing that like I like to

681
00:36:31.480 --> 00:36:34.559
<v Speaker 6>tell people because it made total sense to me when

682
00:36:34.559 --> 00:36:37.400
<v Speaker 6>I first heard it, was, you know, Kep Beck's like,

683
00:36:37.960 --> 00:36:40.679
<v Speaker 6>first you make the change easy, then you go and

684
00:36:40.760 --> 00:36:43.559
<v Speaker 6>make the easy change, right. And the important thing about that,

685
00:36:43.880 --> 00:36:48.000
<v Speaker 6>right is there are steps here, right, like I Yeah, dude,

686
00:36:48.119 --> 00:36:50.840
<v Speaker 6>engineering is all about taking those like tiny steps and

687
00:36:50.960 --> 00:36:53.679
<v Speaker 6>like you said, testing right, and we all know what

688
00:36:53.800 --> 00:36:55.719
<v Speaker 6>happens when we change a bunch of things at once

689
00:36:56.280 --> 00:36:59.960
<v Speaker 6>and then we all do it and then we Yeah,

690
00:37:00.320 --> 00:37:02.519
<v Speaker 6>that's how we go down the road of mistakes.

691
00:37:03.000 --> 00:37:03.719
<v Speaker 5>Engineering is this.

692
00:37:04.280 --> 00:37:07.360
<v Speaker 6>It requires self discipline and whenever we don't have self

693
00:37:07.440 --> 00:37:10.119
<v Speaker 6>discipline or whenever we you know, just break it. Because

694
00:37:10.360 --> 00:37:12.400
<v Speaker 6>for human beings that stuff happens.

695
00:37:12.920 --> 00:37:13.079
<v Speaker 5>Yeah.

696
00:37:13.079 --> 00:37:17.000
<v Speaker 2>I almost feel like it's I go into like meditative

697
00:37:17.079 --> 00:37:20.039
<v Speaker 2>state almost. It's kind of like the flow state kind of.

698
00:37:20.559 --> 00:37:23.039
<v Speaker 2>And there are times where it's like I pick up

699
00:37:23.079 --> 00:37:25.000
<v Speaker 2>a story and it say, Okay, yeah, this is easy.

700
00:37:25.079 --> 00:37:27.280
<v Speaker 2>I can just kind of like half think about it

701
00:37:27.400 --> 00:37:30.960
<v Speaker 2>and do it. And when that doesn't work, which it

702
00:37:31.000 --> 00:37:33.800
<v Speaker 2>almost never does, I have to like get into this

703
00:37:34.000 --> 00:37:38.440
<v Speaker 2>like very focused. I'm making this one change verifying state.

704
00:37:39.159 --> 00:37:42.000
<v Speaker 2>It's almost like like the cartoon Avatar going into your

705
00:37:42.360 --> 00:37:45.360
<v Speaker 2>Avatar state. If you guys know that amazing cartoon.

706
00:37:45.880 --> 00:37:48.039
<v Speaker 5>Yes, I'm familiar with it, Luke, I.

707
00:37:48.079 --> 00:37:48.800
<v Speaker 2>Highly recommend it.

708
00:37:49.159 --> 00:37:50.920
<v Speaker 4>Well, it's a cool Avatar and.

709
00:37:50.920 --> 00:37:53.360
<v Speaker 2>The Last Airbender. I think it came out like ten years.

710
00:37:53.199 --> 00:37:55.440
<v Speaker 4>Ago, fifteen hours to go up with the face the

711
00:37:55.480 --> 00:37:56.239
<v Speaker 4>face tattoo.

712
00:37:56.800 --> 00:37:59.559
<v Speaker 5>It's got narrow yeah, exactly, you know exactly.

713
00:37:59.239 --> 00:38:02.360
<v Speaker 4>What right, I will check it out.

714
00:38:02.719 --> 00:38:06.119
<v Speaker 5>I've seen that art too, he looks like he's really angry. Exactly.

715
00:38:06.760 --> 00:38:10.920
<v Speaker 4>He's got no hair, right, yeah, bald head. Yeah that's

716
00:38:11.000 --> 00:38:13.639
<v Speaker 4>the guy. Yeah, all right, all right, I'm a huge

717
00:38:13.639 --> 00:38:17.039
<v Speaker 4>anime watch too. That's a that's a dangerous gap in

718
00:38:17.199 --> 00:38:17.880
<v Speaker 4>my knowledge.

719
00:38:18.440 --> 00:38:21.119
<v Speaker 6>Yes, So anyway, it's like you go into the state

720
00:38:21.639 --> 00:38:23.840
<v Speaker 6>just oh Jesse, you were you were saying, you go

721
00:38:23.920 --> 00:38:26.840
<v Speaker 6>into the state when when the first.

722
00:38:27.239 --> 00:38:31.119
<v Speaker 2>And unfortunately for me maybe it's because of my age

723
00:38:31.239 --> 00:38:35.199
<v Speaker 2>or whatever, but getting into that really focused state, actually

724
00:38:35.239 --> 00:38:37.559
<v Speaker 2>that costs something, right, It takes like a little bit out.

725
00:38:37.960 --> 00:38:40.960
<v Speaker 2>You can't maintain that state forever. There's like a manipool

726
00:38:41.000 --> 00:38:44.320
<v Speaker 2>almost of how long you how long for me? I

727
00:38:44.400 --> 00:38:48.440
<v Speaker 2>can be in that extreme focused state. And I think

728
00:38:48.519 --> 00:38:51.440
<v Speaker 2>that when there are times where I look at a problem,

729
00:38:51.519 --> 00:38:54.159
<v Speaker 2>I'm like do it Like I almost like ask myself

730
00:38:54.199 --> 00:38:56.400
<v Speaker 2>do I need to be in this highly focused date

731
00:38:56.480 --> 00:38:59.239
<v Speaker 2>to get this thing accomplished? And more often than not

732
00:38:59.599 --> 00:39:02.679
<v Speaker 2>the answer is yes, But my initial answer is no,

733
00:39:03.320 --> 00:39:05.480
<v Speaker 2>And so I end up wasting time by not doing

734
00:39:05.719 --> 00:39:08.239
<v Speaker 2>things as systematically as they need to get done. Am

735
00:39:08.280 --> 00:39:12.000
<v Speaker 2>I am I one on this? Nobody else? When they

736
00:39:12.199 --> 00:39:12.960
<v Speaker 2>when they call.

737
00:39:15.559 --> 00:39:18.599
<v Speaker 4>I find that, Yeah, people talk about this flow state

738
00:39:18.719 --> 00:39:19.199
<v Speaker 4>and I was.

739
00:39:19.320 --> 00:39:19.639
<v Speaker 2>I was.

740
00:39:20.079 --> 00:39:22.480
<v Speaker 4>I was not a believer for a while until I

741
00:39:22.599 --> 00:39:25.840
<v Speaker 4>got something really hard to work on, you know. And

742
00:39:25.960 --> 00:39:28.440
<v Speaker 4>it's those problems where you're the kind of limit of

743
00:39:28.559 --> 00:39:31.000
<v Speaker 4>what you can do, when someone you're thinking, can I

744
00:39:31.119 --> 00:39:35.360
<v Speaker 4>actually write this? That is when I find you get

745
00:39:35.440 --> 00:39:39.159
<v Speaker 4>this kind of periods of intense concentration, and obviously you

746
00:39:39.239 --> 00:39:40.920
<v Speaker 4>don't want to be, you know, at the edge of

747
00:39:41.000 --> 00:39:43.159
<v Speaker 4>your ability all the time. You want to kind of

748
00:39:43.440 --> 00:39:46.320
<v Speaker 4>line up the nice easy jobs or things tend to

749
00:39:46.360 --> 00:39:49.679
<v Speaker 4>go disastrously wrong. But one thing I have found is

750
00:39:49.760 --> 00:39:52.280
<v Speaker 4>that you know, when you're doing your really hard problems

751
00:39:52.880 --> 00:39:54.639
<v Speaker 4>and you're like, can can we do it? You know,

752
00:39:54.760 --> 00:39:57.280
<v Speaker 4>can is it possible? You always have to come back

753
00:39:57.440 --> 00:40:01.079
<v Speaker 4>and redo it. Once you prove the as possible, then

754
00:40:01.119 --> 00:40:03.480
<v Speaker 4>you have to hit it again, and then you come

755
00:40:03.599 --> 00:40:06.400
<v Speaker 4>up the one. So all of the stuff I've done

756
00:40:06.440 --> 00:40:09.119
<v Speaker 4>in the kind of state intents concentration tends to get

757
00:40:09.239 --> 00:40:13.480
<v Speaker 4>thrown away, but it moves you forward down the old

758
00:40:13.719 --> 00:40:14.960
<v Speaker 4>down the road, down the road.

759
00:40:16.639 --> 00:40:21.000
<v Speaker 6>I always cause those my naive implementations, and it's totally

760
00:40:21.079 --> 00:40:24.400
<v Speaker 6>cool to write really terrible code during naive implementation.

761
00:40:24.519 --> 00:40:25.320
<v Speaker 5>That's not the point of it.

762
00:40:25.440 --> 00:40:29.800
<v Speaker 6>The point is to get from having nothing to having

763
00:40:29.880 --> 00:40:34.400
<v Speaker 6>a working thing. The important thing is that after your

764
00:40:34.519 --> 00:40:38.800
<v Speaker 6>naive implementation, you decide, you know, decide whether it's worth

765
00:40:38.880 --> 00:40:41.519
<v Speaker 6>refractoring when you're going to refactor all that kind of stuff.

766
00:40:41.920 --> 00:40:44.840
<v Speaker 2>Yeah, I love that idea of a naive implementation. And

767
00:40:44.920 --> 00:40:49.400
<v Speaker 2>I think the Aka micro service was our naive implementation.

768
00:40:49.800 --> 00:40:52.480
<v Speaker 2>We didn't consider it a scale at all. We didn't

769
00:40:52.519 --> 00:40:57.519
<v Speaker 2>consider the makeup of the team changing. And as a result,

770
00:40:57.559 --> 00:41:00.360
<v Speaker 2>when we went back to fix the naive implementation, right

771
00:41:00.400 --> 00:41:02.320
<v Speaker 2>when we wanted to get rid of the double loops

772
00:41:02.400 --> 00:41:06.920
<v Speaker 2>or whatever, we ended up moving to Java. So from

773
00:41:07.000 --> 00:41:12.440
<v Speaker 2>Cotton to Java and from Aka to Camel. And the

774
00:41:12.559 --> 00:41:17.199
<v Speaker 2>reason that those tools made sense is because they were

775
00:41:17.320 --> 00:41:20.440
<v Speaker 2>very common in our company and what we didn't have

776
00:41:20.519 --> 00:41:23.199
<v Speaker 2>to reinvent the wheel. We weren't seeing errors for the

777
00:41:23.280 --> 00:41:25.440
<v Speaker 2>first time in the entire company. It was sort of

778
00:41:25.480 --> 00:41:28.400
<v Speaker 2>a knowledge base to draw from. So the current state

779
00:41:28.599 --> 00:41:33.079
<v Speaker 2>is that we have Java, Camel, a Spring micro service

780
00:41:33.719 --> 00:41:37.079
<v Speaker 2>talking to the rails monolith. It's very stable, it's performing

781
00:41:37.159 --> 00:41:41.119
<v Speaker 2>super well now and yeah, I mean getting I guess

782
00:41:41.679 --> 00:41:44.320
<v Speaker 2>a question I have is like, how can we speed

783
00:41:44.440 --> 00:41:47.880
<v Speaker 2>up the process of getting from our naive solution to

784
00:41:48.159 --> 00:41:50.440
<v Speaker 2>the more learned solution.

785
00:41:51.400 --> 00:41:54.119
<v Speaker 6>I think, in my opinion, if I had an answer

786
00:41:54.199 --> 00:41:57.920
<v Speaker 6>for that, I would be I would be a super

787
00:41:58.000 --> 00:42:02.679
<v Speaker 6>wealthy person because in my experience, usually what happens is

788
00:42:03.320 --> 00:42:05.159
<v Speaker 6>when you get to the point that you're calling something

789
00:42:05.199 --> 00:42:08.440
<v Speaker 6>a naive solution, right, it's usually because you recognize that

790
00:42:08.519 --> 00:42:12.039
<v Speaker 6>there's a problem with it, right. And one of the

791
00:42:12.119 --> 00:42:15.480
<v Speaker 6>things that's going on, I feel like is that you're

792
00:42:15.519 --> 00:42:18.400
<v Speaker 6>sort of you're kind of burning yourself out on the problem.

793
00:42:18.639 --> 00:42:19.760
<v Speaker 5>At that point when you when.

794
00:42:19.599 --> 00:42:22.199
<v Speaker 6>You sort of have this realization, you're also at the

795
00:42:22.239 --> 00:42:24.400
<v Speaker 6>point that you're kind of burning yourself out in this problem.

796
00:42:24.880 --> 00:42:30.000
<v Speaker 6>So if you as an organization don't have the resources

797
00:42:30.079 --> 00:42:32.960
<v Speaker 6>to sort of like swap out people, you know, bring

798
00:42:33.079 --> 00:42:36.159
<v Speaker 6>somebody in it's fresh things like that, right, or or

799
00:42:36.320 --> 00:42:39.039
<v Speaker 6>kind of go back to a huddle and you know,

800
00:42:39.199 --> 00:42:41.559
<v Speaker 6>somehow become re energized. Like all the things that we

801
00:42:41.679 --> 00:42:47.400
<v Speaker 6>can do are almost all like social interactions, not engineering interactions, right.

802
00:42:48.000 --> 00:42:51.960
<v Speaker 6>And so if you have a culture where you can

803
00:42:52.239 --> 00:42:55.000
<v Speaker 6>kind of deal with that, I feel like people can

804
00:42:55.400 --> 00:42:58.840
<v Speaker 6>kind of turn around and refactor and make reasonable choices

805
00:42:58.960 --> 00:43:00.920
<v Speaker 6>or whatever. But if you don't, like I feel like

806
00:43:00.960 --> 00:43:03.760
<v Speaker 6>it's really hard. It's really hard for you, as somebody

807
00:43:04.480 --> 00:43:07.800
<v Speaker 6>who just burned yourself out pushing something across the finish

808
00:43:07.880 --> 00:43:10.519
<v Speaker 6>line that was really hard, to then turn back around

809
00:43:10.559 --> 00:43:12.639
<v Speaker 6>and be like, I'm throwing you out and I'm going

810
00:43:12.719 --> 00:43:15.679
<v Speaker 6>to redo this really hard problem again, right like. That's

811
00:43:15.760 --> 00:43:16.840
<v Speaker 6>just a really hard thing to do.

812
00:43:16.960 --> 00:43:19.559
<v Speaker 2>I think it's interesting that you say that, because at

813
00:43:19.639 --> 00:43:23.079
<v Speaker 2>the point that we made that decision, the problem didn't

814
00:43:23.079 --> 00:43:25.320
<v Speaker 2>seem hard anymore. At the point that we were like,

815
00:43:26.039 --> 00:43:27.840
<v Speaker 2>you know, we can just do this in Job and Camel,

816
00:43:27.920 --> 00:43:30.519
<v Speaker 2>we had wrapped our heads around the problem enough that

817
00:43:30.639 --> 00:43:34.079
<v Speaker 2>we really felt like it wasn't hard anymore. And maybe

818
00:43:34.159 --> 00:43:34.880
<v Speaker 2>that's what it takes.

819
00:43:35.280 --> 00:43:37.559
<v Speaker 6>You also said a really important word there, which is

820
00:43:37.639 --> 00:43:40.960
<v Speaker 6>we right. So one of the things that you did

821
00:43:41.159 --> 00:43:44.360
<v Speaker 6>as a company to recover from this problem is you

822
00:43:44.440 --> 00:43:47.760
<v Speaker 6>went back to this huddle and you said, hey, I

823
00:43:47.880 --> 00:43:52.840
<v Speaker 6>made some mistakes, and then your team said that's okay, Jesse,

824
00:43:53.519 --> 00:43:56.360
<v Speaker 6>we as a team are taking ownership for this, right like,

825
00:43:56.559 --> 00:43:58.280
<v Speaker 6>and we as a team are going to fix this

826
00:43:58.519 --> 00:44:00.800
<v Speaker 6>right like that. That's what a lot of that communicates

827
00:44:00.880 --> 00:44:04.800
<v Speaker 6>right here. And when you do that, like, that's one

828
00:44:04.800 --> 00:44:07.599
<v Speaker 6>of those re energizing moments or you know things, and

829
00:44:07.719 --> 00:44:09.440
<v Speaker 6>then those decisions become a lot easier.

830
00:44:09.880 --> 00:44:14.119
<v Speaker 4>In my experience, it breaks my heart every time, every

831
00:44:14.199 --> 00:44:16.480
<v Speaker 4>every time I have a have a get commit with

832
00:44:16.599 --> 00:44:19.800
<v Speaker 4>a kind of more lines removed than added. Oh man,

833
00:44:20.480 --> 00:44:23.519
<v Speaker 4>those are the proudest, is right. I know some people

834
00:44:23.719 --> 00:44:25.400
<v Speaker 4>like to take the code out and they're like, oh,

835
00:44:25.480 --> 00:44:27.840
<v Speaker 4>I go knocked out. You know, loads of that repeated code.

836
00:44:28.320 --> 00:44:30.400
<v Speaker 4>I just think, oh, why couldn't I get it right

837
00:44:30.480 --> 00:44:31.199
<v Speaker 4>the first time?

838
00:44:31.719 --> 00:44:34.039
<v Speaker 2>That's interesting. The person who taught me how to code,

839
00:44:35.280 --> 00:44:37.280
<v Speaker 2>one of the first pieces of advice that he gave

840
00:44:37.400 --> 00:44:41.039
<v Speaker 2>me was that you should write a lot of code

841
00:44:41.599 --> 00:44:43.519
<v Speaker 2>and throw a lot of code out, and that's how

842
00:44:43.599 --> 00:44:44.559
<v Speaker 2>you'll get better at coding.

843
00:44:45.000 --> 00:44:48.400
<v Speaker 4>That is very very sensible advice, very sensible advice, and

844
00:44:48.719 --> 00:44:51.519
<v Speaker 4>by that standard, I've got amazing coding over the years.

845
00:44:52.039 --> 00:44:55.320
<v Speaker 4>Do I The context is a big mistake. Now, just

846
00:44:55.360 --> 00:44:58.079
<v Speaker 4>to be clear, this big mistake has had a happy ending.

847
00:44:58.480 --> 00:45:00.840
<v Speaker 4>So this isn't This isn't the kind of mistake I

848
00:45:01.000 --> 00:45:04.519
<v Speaker 4>got fired. This is big mistake. We pulled through it

849
00:45:04.599 --> 00:45:06.039
<v Speaker 4>and it'll work down, Am I right?

850
00:45:06.360 --> 00:45:10.320
<v Speaker 2>Thankfully? Yeah? So I think so we did a couple

851
00:45:10.360 --> 00:45:12.440
<v Speaker 2>of things. I think that helped us. So the first is,

852
00:45:12.880 --> 00:45:15.679
<v Speaker 2>as John said, we were open about these things. We

853
00:45:15.760 --> 00:45:18.840
<v Speaker 2>didn't try to hide that things weren't going as well

854
00:45:18.840 --> 00:45:20.760
<v Speaker 2>as we had wanted them to. And I think that

855
00:45:21.360 --> 00:45:24.559
<v Speaker 2>Ibota has a pretty strong culture in the sense that

856
00:45:25.199 --> 00:45:28.280
<v Speaker 2>we're not trying to throw people under the bus. In engineering,

857
00:45:28.840 --> 00:45:32.440
<v Speaker 2>if something crashes, it's not who's going to get fired,

858
00:45:32.639 --> 00:45:34.639
<v Speaker 2>It's like, Okay, how do we learn from this this

859
00:45:35.000 --> 00:45:36.599
<v Speaker 2>this is a mistake that costs us some money. How

860
00:45:36.639 --> 00:45:39.559
<v Speaker 2>do we make sure that that money is actually teaching

861
00:45:39.679 --> 00:45:42.760
<v Speaker 2>us something. So that was part of it. And then

862
00:45:42.800 --> 00:45:45.039
<v Speaker 2>I think also we did a good job of communicating,

863
00:45:45.199 --> 00:45:49.360
<v Speaker 2>like to external stakeholders. We communicated to the finance team,

864
00:45:49.519 --> 00:45:52.559
<v Speaker 2>who were kind of one of the main main consumers

865
00:45:52.599 --> 00:45:56.000
<v Speaker 2>of the data that we were producing, and you know,

866
00:45:56.159 --> 00:45:58.559
<v Speaker 2>really went through in detail, here's where we're at, here's

867
00:45:58.599 --> 00:46:01.159
<v Speaker 2>the timeline, like up them. We were checking in with

868
00:46:01.239 --> 00:46:05.000
<v Speaker 2>them all the time and just keeping expectations in line.

869
00:46:05.079 --> 00:46:07.679
<v Speaker 2>I think really helped us out. So even though we

870
00:46:08.840 --> 00:46:11.000
<v Speaker 2>delivered a little bit later than I think we thought

871
00:46:11.039 --> 00:46:14.360
<v Speaker 2>we would at the onset of the project, because we

872
00:46:14.440 --> 00:46:20.119
<v Speaker 2>were able to communicate that we were not fired. And yeah,

873
00:46:20.360 --> 00:46:24.519
<v Speaker 2>I mean not only that we've hired more people, we're

874
00:46:24.559 --> 00:46:29.119
<v Speaker 2>still hiring. And if you're thinking about getting into the

875
00:46:29.199 --> 00:46:32.119
<v Speaker 2>mobile coupon space, there's a ton of really cool problems

876
00:46:32.440 --> 00:46:36.000
<v Speaker 2>even if you're not passionate about mobile coupons, and you

877
00:46:36.119 --> 00:46:37.559
<v Speaker 2>might get to talk to me in the interview process,

878
00:46:37.639 --> 00:46:38.280
<v Speaker 2>which will be fun.

879
00:46:38.559 --> 00:46:42.760
<v Speaker 4>Speaking of interviews, I see a smooth transition there. Speaking

880
00:46:42.800 --> 00:46:46.599
<v Speaker 4>of interviews, I understand that you have a project which

881
00:46:46.840 --> 00:46:51.480
<v Speaker 4>you call meanas one interviewing that is I have no

882
00:46:51.599 --> 00:46:53.360
<v Speaker 4>idea what minis ones aunds well, I see a lot

883
00:46:53.360 --> 00:46:55.199
<v Speaker 4>of people saying it in a rib community, but I

884
00:46:55.360 --> 00:46:58.000
<v Speaker 4>just just not It's one of these weird in jokes

885
00:46:58.039 --> 00:46:59.639
<v Speaker 4>I think they have in a Rube community.

886
00:47:00.119 --> 00:47:06.480
<v Speaker 1>It's so nice, I know, I know, I know, try humor, Luke,

887
00:47:07.199 --> 00:47:08.679
<v Speaker 1>never pick up on your sarcasm.

888
00:47:09.360 --> 00:47:13.400
<v Speaker 5>Good lord, I'm just over here like like dying everything.

889
00:47:14.320 --> 00:47:16.000
<v Speaker 4>That's the What was it, Dave?

890
00:47:16.079 --> 00:47:20.719
<v Speaker 1>Sorry? It was seriously? Yeah, go on, Matt's is nice

891
00:47:20.760 --> 00:47:21.239
<v Speaker 1>and storial.

892
00:47:21.280 --> 00:47:21.800
<v Speaker 5>We Yeah.

893
00:47:21.880 --> 00:47:24.719
<v Speaker 4>What the best thing about Rabius community, it's a it's

894
00:47:24.760 --> 00:47:28.199
<v Speaker 4>a really it's a really great language, and that's a

895
00:47:28.239 --> 00:47:31.000
<v Speaker 4>really strong community, really great events, even though obviously the

896
00:47:31.079 --> 00:47:35.360
<v Speaker 4>events this year have been a bit difficult. So how

897
00:47:35.440 --> 00:47:40.920
<v Speaker 4>are you carrying that culture, that tradition over into the

898
00:47:41.000 --> 00:47:42.960
<v Speaker 4>interviewing process. What's your gambit.

899
00:47:43.519 --> 00:47:48.559
<v Speaker 2>Yeah, so maybe maybe everybody has experience or a lot

900
00:47:48.599 --> 00:47:52.239
<v Speaker 2>of folks haven't have an experience in let's just say

901
00:47:52.320 --> 00:47:55.320
<v Speaker 2>a not mean us one interview an interview, maybe it's

902
00:47:55.320 --> 00:47:57.119
<v Speaker 2>a little more hostile than we'd like, And I think

903
00:47:57.519 --> 00:48:00.400
<v Speaker 2>I think a lot of us have experienced kind of

904
00:48:00.440 --> 00:48:04.599
<v Speaker 2>broken interviews where it feels more like the person on

905
00:48:04.679 --> 00:48:06.119
<v Speaker 2>the other side of the table is trying to prove

906
00:48:06.159 --> 00:48:08.440
<v Speaker 2>how much smarter they are or how much better they

907
00:48:08.440 --> 00:48:13.199
<v Speaker 2>are coding than I am. And that's not nice. Another

908
00:48:13.280 --> 00:48:18.280
<v Speaker 2>thing that's not nice is asking someone to do an

909
00:48:18.400 --> 00:48:22.800
<v Speaker 2>inordinate amount of work outside of work that's not paid

910
00:48:22.920 --> 00:48:25.159
<v Speaker 2>in the form of like a take home project. So

911
00:48:25.559 --> 00:48:28.199
<v Speaker 2>I've done take home projects that have taken me in

912
00:48:28.599 --> 00:48:33.000
<v Speaker 2>entire weekends, multiple days, and that's uncompensated work, and that

913
00:48:33.559 --> 00:48:37.119
<v Speaker 2>that can bias your process against people who have outside

914
00:48:37.119 --> 00:48:40.280
<v Speaker 2>of work commitments like families and I just you know,

915
00:48:40.400 --> 00:48:44.119
<v Speaker 2>who don't want to be working all the time. So

916
00:48:45.360 --> 00:48:47.840
<v Speaker 2>I thought it would make sense to kind of take

917
00:48:47.920 --> 00:48:50.440
<v Speaker 2>the best part of the Ruby community. This idea that

918
00:48:50.719 --> 00:48:53.239
<v Speaker 2>Matt's is nice, and so we are nice and apply

919
00:48:53.320 --> 00:48:55.800
<v Speaker 2>it to interviewing. Let's like actually be nice to the

920
00:48:55.880 --> 00:49:00.800
<v Speaker 2>people that we potentially could be working with. And you know,

921
00:49:00.920 --> 00:49:04.559
<v Speaker 2>the pandemic has been terrible in so many ways, but

922
00:49:04.920 --> 00:49:08.000
<v Speaker 2>it did offer us this opportunity to kind of dramatically

923
00:49:08.079 --> 00:49:09.960
<v Speaker 2>rethink what our interview was.

924
00:49:10.000 --> 00:49:10.559
<v Speaker 4>Going to look like.

925
00:49:11.079 --> 00:49:13.599
<v Speaker 2>Because we're not coming into the office. Everything has to

926
00:49:13.639 --> 00:49:17.119
<v Speaker 2>be remote. And basically, our HR team and our leadership

927
00:49:17.119 --> 00:49:19.360
<v Speaker 2>were like, how how can we do this? We've only

928
00:49:19.920 --> 00:49:24.119
<v Speaker 2>been accustomed to bringing people in, asking them super tricky

929
00:49:24.199 --> 00:49:28.400
<v Speaker 2>things that they have to wipeboard. How can we translate

930
00:49:28.480 --> 00:49:31.360
<v Speaker 2>this to a remote interview? And this is what I proposed,

931
00:49:31.400 --> 00:49:35.119
<v Speaker 2>And this is like what we landed on, which is

932
00:49:35.199 --> 00:49:39.400
<v Speaker 2>an interview not meant to trick the interviewee. It's an

933
00:49:39.519 --> 00:49:42.599
<v Speaker 2>interview meant to simulate what the first couple of days

934
00:49:42.639 --> 00:49:45.719
<v Speaker 2>of work is going to look like. And it's supposed

935
00:49:45.719 --> 00:49:48.280
<v Speaker 2>to give give us as an organization, a sense of

936
00:49:48.320 --> 00:49:51.599
<v Speaker 2>how much we would enjoy this person as a colleague,

937
00:49:51.920 --> 00:49:55.039
<v Speaker 2>how successful they'll be. And the message that we're always

938
00:49:55.079 --> 00:49:58.000
<v Speaker 2>trying to send is not hey, I'm so much smarter

939
00:49:58.119 --> 00:50:01.480
<v Speaker 2>than you, because I understand ourcourage because I understand how

940
00:50:01.519 --> 00:50:03.920
<v Speaker 2>to do whatever, this type of model, this type of

941
00:50:04.000 --> 00:50:06.920
<v Speaker 2>data structure. The message is you're going to be successful

942
00:50:06.960 --> 00:50:09.159
<v Speaker 2>on our team, and you're going to like working with us,

943
00:50:09.280 --> 00:50:13.280
<v Speaker 2>and we're going to like working with you. So the

944
00:50:13.519 --> 00:50:17.599
<v Speaker 2>way that we do that is basically by giving the

945
00:50:17.679 --> 00:50:21.199
<v Speaker 2>person a sample of code from our domain and it's

946
00:50:21.320 --> 00:50:24.880
<v Speaker 2>highly simplified and it's not and we ask them to

947
00:50:24.960 --> 00:50:26.920
<v Speaker 2>just read the code and we say what is this doing?

948
00:50:27.440 --> 00:50:28.920
<v Speaker 2>What do you like about this code? What do you

949
00:50:29.000 --> 00:50:31.159
<v Speaker 2>not like about this code? And it's not a bug

950
00:50:31.239 --> 00:50:33.599
<v Speaker 2>finding adventure, and we're not asking them to find where

951
00:50:34.280 --> 00:50:36.599
<v Speaker 2>where an error is going to be secretly raised or

952
00:50:36.679 --> 00:50:38.840
<v Speaker 2>why it tests this failing that's that's kind of beyond,

953
00:50:39.000 --> 00:50:41.360
<v Speaker 2>like you can't really do that in a twenty or

954
00:50:41.400 --> 00:50:44.239
<v Speaker 2>thirty minute conversation. We want to hear how this person

955
00:50:44.280 --> 00:50:47.079
<v Speaker 2>would approach an alien code base, which is what their

956
00:50:47.159 --> 00:50:49.320
<v Speaker 2>first task is going to be on the job. Then

957
00:50:49.880 --> 00:50:53.320
<v Speaker 2>we present them with some data, you know, some kind

958
00:50:53.320 --> 00:50:56.880
<v Speaker 2>of some award events from our system, and we ask

959
00:50:56.960 --> 00:50:59.599
<v Speaker 2>them to manipulate that data and with a pretty simple

960
00:50:59.599 --> 00:51:02.000
<v Speaker 2>alberta them. We even tell them what the algorithm is

961
00:51:02.440 --> 00:51:04.840
<v Speaker 2>and we ask them to code it. And we say specifically,

962
00:51:05.960 --> 00:51:08.000
<v Speaker 2>we don't care about the answer here. The answer is

963
00:51:08.039 --> 00:51:10.119
<v Speaker 2>not interesting. We just told you what the answer is.

964
00:51:10.719 --> 00:51:13.400
<v Speaker 2>We actually want to see what it looks like when

965
00:51:13.400 --> 00:51:17.159
<v Speaker 2>you code. How what's your approach? Are you systematic right?

966
00:51:17.280 --> 00:51:21.119
<v Speaker 2>Are you making guesses about what should happen and checking yourself?

967
00:51:21.599 --> 00:51:23.719
<v Speaker 2>Those are the things that we're looking for. We're not

968
00:51:23.800 --> 00:51:26.199
<v Speaker 2>looking for some for to see. You know, do you

969
00:51:26.320 --> 00:51:30.239
<v Speaker 2>know this random algorithm from your computer science education that

970
00:51:30.440 --> 00:51:32.280
<v Speaker 2>you'll never use as a as a web developer at

971
00:51:32.280 --> 00:51:34.639
<v Speaker 2>I bought it? So those are those are the big pieces.

972
00:51:35.079 --> 00:51:38.119
<v Speaker 2>And I'm stoked because I got invited to talk at

973
00:51:38.800 --> 00:51:41.000
<v Speaker 2>Ruby KMF which is coming up in November, where I'm

974
00:51:41.000 --> 00:51:43.199
<v Speaker 2>going to be kind of outlining this. You all got

975
00:51:43.440 --> 00:51:47.159
<v Speaker 2>a preview of the content there exclusive.

976
00:51:46.760 --> 00:51:48.360
<v Speaker 5>To Ruby Rhodes Awesome.

977
00:51:48.639 --> 00:51:52.920
<v Speaker 6>I'm definitely curious as you guys implement this, like when

978
00:51:52.960 --> 00:51:54.840
<v Speaker 6>you kind of come back and say, well this works

979
00:51:55.039 --> 00:51:58.159
<v Speaker 6>and this didn't work, or or this is like this

980
00:51:58.400 --> 00:52:00.400
<v Speaker 6>is how we sort of had to come on with

981
00:52:00.440 --> 00:52:04.039
<v Speaker 6>a way to you know, because this is a subjective thing.

982
00:52:04.239 --> 00:52:05.760
<v Speaker 6>This is this is how we came up with a

983
00:52:05.800 --> 00:52:09.920
<v Speaker 6>way to to make this more objective than it originally was,

984
00:52:10.079 --> 00:52:12.760
<v Speaker 6>you know, and that helped us like definitely interested in

985
00:52:12.840 --> 00:52:15.880
<v Speaker 6>seeing this. I mean all of you, all of the

986
00:52:15.920 --> 00:52:18.480
<v Speaker 6>pain points that you're talking about, right, all this homework

987
00:52:18.559 --> 00:52:21.320
<v Speaker 6>that we have, all these you know, coding challenges that

988
00:52:21.400 --> 00:52:24.480
<v Speaker 6>we do. I mean, we were very I feel like

989
00:52:24.559 --> 00:52:27.000
<v Speaker 6>as a community, we talk about how where we are

990
00:52:27.360 --> 00:52:30.320
<v Speaker 6>that they don't work, but we don't have alternatives yet,

991
00:52:30.440 --> 00:52:34.519
<v Speaker 6>and so people continue to use them regardless because they're like, well,

992
00:52:34.559 --> 00:52:36.760
<v Speaker 6>I don't know what to do, and the people who

993
00:52:36.800 --> 00:52:39.000
<v Speaker 6>are lost, you know, just run back to where they

994
00:52:39.039 --> 00:52:41.000
<v Speaker 6>came from a lot of times, right, It's like the squirrel.

995
00:52:41.119 --> 00:52:42.280
<v Speaker 6>It's like in the middle of the street and the

996
00:52:42.320 --> 00:52:44.039
<v Speaker 6>car's coming and it's like, shoot, I gotta go all

997
00:52:44.079 --> 00:52:46.039
<v Speaker 6>the way back. So I kind of feel like we

998
00:52:46.119 --> 00:52:48.800
<v Speaker 6>do a lot of that. Still, Yeah, there have been

999
00:52:48.960 --> 00:52:51.119
<v Speaker 6>there have been various things like talked about. I remember

1000
00:52:51.719 --> 00:52:54.199
<v Speaker 6>I think I've heard various people from thomp Bottom various

1001
00:52:54.239 --> 00:52:57.199
<v Speaker 6>podcasts like talk about the fact that like they they

1002
00:52:57.760 --> 00:53:00.159
<v Speaker 6>have you come and spend like I don't remember if

1003
00:53:00.159 --> 00:53:02.119
<v Speaker 6>it was like a day or whatever, half day, but

1004
00:53:02.280 --> 00:53:04.880
<v Speaker 6>like a lot of time with them pairing, right. I

1005
00:53:05.000 --> 00:53:08.960
<v Speaker 6>know that boot camp does that as well, or base Camp. Sorry, wow,

1006
00:53:09.199 --> 00:53:11.760
<v Speaker 6>whatever base Camp does that as well or something similar.

1007
00:53:12.079 --> 00:53:14.760
<v Speaker 6>They'll they'll actually I remember hearing they had an article

1008
00:53:14.760 --> 00:53:17.440
<v Speaker 6>about they did some homework or something recently. Whatever they

1009
00:53:18.440 --> 00:53:21.639
<v Speaker 6>pay for the homework though, Yeah, that's okay. Yeah, I

1010
00:53:21.719 --> 00:53:24.719
<v Speaker 6>mean there's there's people that are like exploring around these edges,

1011
00:53:24.760 --> 00:53:27.159
<v Speaker 6>but we don't really have like a good way forward,

1012
00:53:27.199 --> 00:53:27.880
<v Speaker 6>I feel like yet.

1013
00:53:27.960 --> 00:53:31.280
<v Speaker 5>Still, so I'm super interested to see how this turns out.

1014
00:53:31.519 --> 00:53:34.719
<v Speaker 2>Yeah, I mean so far, you know, obviously hiring has

1015
00:53:35.199 --> 00:53:39.800
<v Speaker 2>been slower than typical for for Ibata, but we are

1016
00:53:39.840 --> 00:53:42.760
<v Speaker 2>still hiring, and so far, to feedback from candidates has

1017
00:53:42.800 --> 00:53:47.039
<v Speaker 2>been really interesting because you know, we'll get unsolicited emails

1018
00:53:47.840 --> 00:53:50.800
<v Speaker 2>about how much people like the process and how they

1019
00:53:50.920 --> 00:53:53.079
<v Speaker 2>hope that this is the direction that the industry goes in.

1020
00:53:53.760 --> 00:53:55.800
<v Speaker 2>A lot of folks who are interviewing with us are

1021
00:53:55.880 --> 00:53:58.760
<v Speaker 2>interviewing at other places as well. And I see this

1022
00:53:58.840 --> 00:54:02.119
<v Speaker 2>as like a competitive competitive advantage for us, Right, does

1023
00:54:02.199 --> 00:54:04.800
<v Speaker 2>this by us like ten thousand dollars in salary of

1024
00:54:04.880 --> 00:54:06.840
<v Speaker 2>five thousand dollars in salary or something like that, Like

1025
00:54:07.280 --> 00:54:10.000
<v Speaker 2>does this make our company more? You know, once you

1026
00:54:10.039 --> 00:54:12.559
<v Speaker 2>get to a certain point, there's like diminishing returns on

1027
00:54:13.320 --> 00:54:16.440
<v Speaker 2>all these different levers that a company can offer to developer.

1028
00:54:17.039 --> 00:54:19.440
<v Speaker 2>And I think that this is maybe an unexplored lever

1029
00:54:19.880 --> 00:54:22.039
<v Speaker 2>or a lever where there's a ton of root to gain.

1030
00:54:22.199 --> 00:54:24.800
<v Speaker 2>And when someone goes through our process and comes out

1031
00:54:24.840 --> 00:54:28.360
<v Speaker 2>feeling like, hey, I'm gonna kick butt there the people

1032
00:54:28.440 --> 00:54:30.559
<v Speaker 2>that are super nice, they didn't make me feel like

1033
00:54:30.559 --> 00:54:34.039
<v Speaker 2>an idiot, and they can trast that with other interview

1034
00:54:34.079 --> 00:54:37.079
<v Speaker 2>experiences that they've recently had, hopefully that will play in

1035
00:54:37.119 --> 00:54:37.519
<v Speaker 2>our favor.

1036
00:54:37.920 --> 00:54:42.480
<v Speaker 4>That is certainly not the current approach to coding interviews.

1037
00:54:43.559 --> 00:54:47.000
<v Speaker 4>I've been hearing recently a mill more people talking about

1038
00:54:47.079 --> 00:54:50.039
<v Speaker 4>make how to make coding interviews harder. If you go

1039
00:54:50.159 --> 00:54:53.000
<v Speaker 4>on something like hack and news, you know, they discuss

1040
00:54:53.280 --> 00:54:57.679
<v Speaker 4>which framework they need to insert onns of the fingernails

1041
00:54:57.760 --> 00:55:00.440
<v Speaker 4>of potential applicants. And I hear if you go to

1042
00:55:00.519 --> 00:55:04.440
<v Speaker 4>Facebook now and apply for a job, then you have

1043
00:55:04.559 --> 00:55:08.320
<v Speaker 4>to bring along your PhD in computer science. They then

1044
00:55:08.480 --> 00:55:11.559
<v Speaker 4>burn it in front of you, mix it into old coffee,

1045
00:55:11.559 --> 00:55:13.679
<v Speaker 4>and make you drink it as part of the interview process.

1046
00:55:14.159 --> 00:55:16.159
<v Speaker 4>So it's really I think it's really something that the

1047
00:55:16.480 --> 00:55:18.960
<v Speaker 4>tech community needs. We have been doing a few episodes

1048
00:55:19.320 --> 00:55:21.679
<v Speaker 4>about trying to make community more inclusive, trying to bring

1049
00:55:21.719 --> 00:55:24.760
<v Speaker 4>in people, trying to keep people in, and that sounds

1050
00:55:24.840 --> 00:55:27.000
<v Speaker 4>like a really great idea for talk. You know, why

1051
00:55:27.039 --> 00:55:30.840
<v Speaker 4>don't we be be nicer to people, try and get

1052
00:55:30.880 --> 00:55:33.320
<v Speaker 4>the most out of them during interviews and stead of

1053
00:55:33.400 --> 00:55:34.920
<v Speaker 4>subjecting them to torture.

1054
00:55:35.320 --> 00:55:39.400
<v Speaker 2>I love that image of shoving a framework under someone's fingernails.

1055
00:55:39.440 --> 00:55:45.199
<v Speaker 2>Luke Right. The thing that I noticed, and I've done

1056
00:55:45.599 --> 00:55:49.039
<v Speaker 2>a lot of interviews. I have done I would say

1057
00:55:49.159 --> 00:55:53.239
<v Speaker 2>easily two hundred interviews over the past two years. We

1058
00:55:53.320 --> 00:55:57.079
<v Speaker 2>did a ton of firing, so it's crazy. And the

1059
00:55:57.159 --> 00:55:59.920
<v Speaker 2>thing that I noticed is that when we were asking

1060
00:56:00.079 --> 00:56:03.559
<v Speaker 2>people to wipeboard right to answer these kind of tougher

1061
00:56:03.639 --> 00:56:07.760
<v Speaker 2>algorithm algorithm questions, I didn't I didn't always see a

1062
00:56:07.840 --> 00:56:10.239
<v Speaker 2>one to one correlation between the people who crush that

1063
00:56:10.400 --> 00:56:14.400
<v Speaker 2>kind of question and the people who I really enjoy

1064
00:56:14.639 --> 00:56:18.000
<v Speaker 2>working with in either direction. Right, they're false positives and

1065
00:56:18.119 --> 00:56:22.480
<v Speaker 2>false negatives, and I just found there to be way

1066
00:56:22.559 --> 00:56:25.800
<v Speaker 2>too much noise in that type of diagnostic tool for

1067
00:56:25.880 --> 00:56:29.079
<v Speaker 2>me to really make a strong decision that I felt

1068
00:56:29.079 --> 00:56:31.679
<v Speaker 2>confident with that proved out over time, and I'm hoping

1069
00:56:31.760 --> 00:56:32.880
<v Speaker 2>that this is a remedy for that.

1070
00:56:33.360 --> 00:56:35.159
<v Speaker 6>Yeah, I mean you always have to check to make

1071
00:56:35.199 --> 00:56:38.320
<v Speaker 6>sure that whatever test you're giving, right, like is that

1072
00:56:38.639 --> 00:56:40.760
<v Speaker 6>you have to decide what you're testing for and you

1073
00:56:40.880 --> 00:56:43.760
<v Speaker 6>have to say, is the question that I'm asking actually

1074
00:56:43.880 --> 00:56:46.559
<v Speaker 6>testing for the thing that I'm testing for? And too

1075
00:56:46.679 --> 00:56:51.599
<v Speaker 6>often we jump to this conclusion that, oh, yeah, this

1076
00:56:51.760 --> 00:56:54.440
<v Speaker 6>sort of this sort of is related. Therefore it'll let

1077
00:56:54.519 --> 00:56:57.559
<v Speaker 6>me know when really you're just you're making a subjective

1078
00:56:57.599 --> 00:57:00.000
<v Speaker 6>judgment call again and calling it objective.

1079
00:57:00.280 --> 00:57:01.679
<v Speaker 5>So yep, it is.

1080
00:57:01.880 --> 00:57:04.639
<v Speaker 6>It is a thing that's very painful, and maybe maybe

1081
00:57:04.719 --> 00:57:07.559
<v Speaker 6>we should we should focus a little bit on this

1082
00:57:07.719 --> 00:57:11.480
<v Speaker 6>in the future and have a more in depth chat

1083
00:57:11.519 --> 00:57:13.719
<v Speaker 6>about this. I feel like that would be an interesting subject.

1084
00:57:14.039 --> 00:57:17.440
<v Speaker 2>Yeah, there was a rails comp talk last year. I believe.

1085
00:57:17.440 --> 00:57:19.679
<v Speaker 2>The guy's name is Eric. I'll throw it in the

1086
00:57:20.159 --> 00:57:23.400
<v Speaker 2>chat in the second. He's from test Double and he

1087
00:57:23.519 --> 00:57:26.719
<v Speaker 2>talked about test doubles like a rail when you consultancy

1088
00:57:27.519 --> 00:57:31.039
<v Speaker 2>based on Columbus, I believe, And he talked about their

1089
00:57:31.159 --> 00:57:35.920
<v Speaker 2>hiring process and more in the sense of our goal

1090
00:57:36.280 --> 00:57:39.239
<v Speaker 2>is to build a process that lets candidates show off

1091
00:57:39.280 --> 00:57:43.400
<v Speaker 2>their strengths and as opposed to helping us find their weaknesses.

1092
00:57:43.719 --> 00:57:46.960
<v Speaker 2>And that's how really informed our process that I bought it.

1093
00:57:47.000 --> 00:57:49.519
<v Speaker 2>We're trying to find people's strengths and trying to figure

1094
00:57:49.519 --> 00:57:50.840
<v Speaker 2>out where they're going to be able to make the

1095
00:57:50.920 --> 00:57:52.159
<v Speaker 2>most impact in our company.

1096
00:57:52.599 --> 00:57:53.079
<v Speaker 5>Yeah, I have.

1097
00:57:53.440 --> 00:57:56.079
<v Speaker 6>I have gone for the past, like I don't know,

1098
00:57:56.239 --> 00:57:59.400
<v Speaker 6>four or five rails comps. I've gone to basically every

1099
00:57:59.519 --> 00:58:02.599
<v Speaker 6>single talk that was sort of like related to the

1100
00:58:02.679 --> 00:58:05.360
<v Speaker 6>subject I do. I care about it quite a bit,

1101
00:58:05.440 --> 00:58:07.159
<v Speaker 6>and I just kind of hope that we get to

1102
00:58:07.199 --> 00:58:10.679
<v Speaker 6>a better place. It's Yeah, like I said earlier, my

1103
00:58:11.000 --> 00:58:13.280
<v Speaker 6>feelings on this I think are basically what I said

1104
00:58:13.280 --> 00:58:15.519
<v Speaker 6>earlier that I think that a lot of people are

1105
00:58:15.559 --> 00:58:17.920
<v Speaker 6>thinking about this and I just don't think there's a

1106
00:58:18.000 --> 00:58:21.199
<v Speaker 6>clear answer yet. But I'm super interested at like everything

1107
00:58:21.280 --> 00:58:24.679
<v Speaker 6>that people are trying experiment. It's kind that's how I

1108
00:58:24.719 --> 00:58:26.039
<v Speaker 6>think we're going to get a little better.

1109
00:58:26.440 --> 00:58:29.039
<v Speaker 1>Yeah. Well, hey, it looks like we're coming up on

1110
00:58:29.199 --> 00:58:33.079
<v Speaker 1>the hour, so we need to move things along. Jesse.

1111
00:58:33.199 --> 00:58:35.320
<v Speaker 1>If people want to get in touch with you, where

1112
00:58:35.360 --> 00:58:36.280
<v Speaker 1>should they go online?

1113
00:58:36.320 --> 00:58:39.400
<v Speaker 2>And look, I would say you can find me on Twitter.

1114
00:58:40.159 --> 00:58:44.679
<v Speaker 2>I tweet from Planet Efficacy, So if you can, if

1115
00:58:44.719 --> 00:58:47.480
<v Speaker 2>you can spell that you can find me and you'll

1116
00:58:47.519 --> 00:58:52.000
<v Speaker 2>find a lot of interesting movie content, political outrage, and

1117
00:58:53.239 --> 00:58:56.159
<v Speaker 2>Vermont progressive rock on that Twitter stream.

1118
00:58:56.679 --> 00:59:01.079
<v Speaker 1>Awesome. Well, let's go ahead and move over into Look

1119
00:59:01.119 --> 00:59:01.840
<v Speaker 1>you want to kick.

1120
00:59:01.760 --> 00:59:02.760
<v Speaker 5>Us off, I would.

1121
00:59:03.760 --> 00:59:09.119
<v Speaker 4>My first pick is a version of Windows ten. A

1122
00:59:09.239 --> 00:59:14.320
<v Speaker 4>bit of a strange thing to pick on a podcast,

1123
00:59:14.480 --> 00:59:20.199
<v Speaker 4>but this is called Windows ten Ameliorrated Edition. I found

1124
00:59:20.239 --> 00:59:23.000
<v Speaker 4>it featured on a popular YouTube channel not long ago.

1125
00:59:23.679 --> 00:59:25.559
<v Speaker 4>And this is a version of Windows ten called a

1126
00:59:25.639 --> 00:59:32.199
<v Speaker 4>spy aware taken out, which also incredibly boosts the responsivity

1127
00:59:32.280 --> 00:59:35.119
<v Speaker 4>and performance because it's not doing any acinc network calls

1128
00:59:35.480 --> 00:59:37.760
<v Speaker 4>back home in the background, if you know what I mean.

1129
00:59:38.480 --> 00:59:43.679
<v Speaker 4>This is the first operating system I've ever found where

1130
00:59:43.760 --> 00:59:47.400
<v Speaker 4>to download it. I had to get a bit torrent

1131
00:59:47.760 --> 00:59:51.280
<v Speaker 4>link from a Telegram channel. So if you want some

1132
00:59:51.440 --> 00:59:57.719
<v Speaker 4>excitement in your operating systems, check out Windows ten Ameliorated Edition.

1133
00:59:58.119 --> 00:59:59.440
<v Speaker 4>Never seen anything like it.

1134
01:00:00.159 --> 01:00:02.719
<v Speaker 6>Just just wanted to confirm something here really quick. Look,

1135
01:00:02.840 --> 01:00:05.039
<v Speaker 6>is this a legal version of Windows ten.

1136
01:00:05.760 --> 01:00:10.320
<v Speaker 4>It's got quite a big section on legality on the website. Okay,

1137
01:00:10.800 --> 01:00:12.960
<v Speaker 4>the website does make it clear that you do need

1138
01:00:13.079 --> 01:00:17.079
<v Speaker 4>to have a Windows ten license in order to legally

1139
01:00:17.480 --> 01:00:21.679
<v Speaker 4>use the Windows ten and Media rated edition, but I

1140
01:00:21.800 --> 01:00:25.599
<v Speaker 4>mean come on bit torrently through a Telegram channel. Wow,

1141
01:00:26.400 --> 01:00:30.320
<v Speaker 4>that's that's quite anyway, It's it's quite. It's a cool

1142
01:00:30.360 --> 01:00:33.159
<v Speaker 4>little project. There's lots in the faq about their rationale

1143
01:00:33.199 --> 01:00:37.000
<v Speaker 4>behind it, and it does fly when it runs, it's

1144
01:00:37.199 --> 01:00:37.840
<v Speaker 4>really quick.

1145
01:00:39.039 --> 01:00:41.280
<v Speaker 1>I heard there were some issues with it with not

1146
01:00:41.400 --> 01:00:45.079
<v Speaker 1>being able to do certain things because it can't call

1147
01:00:45.119 --> 01:00:49.320
<v Speaker 1>home to Microsoft even some like simple rudimentary things that

1148
01:00:49.440 --> 01:00:52.519
<v Speaker 1>you would think that would be possible but just kind

1149
01:00:52.559 --> 01:00:53.039
<v Speaker 1>of breaks it.

1150
01:00:53.800 --> 01:00:56.559
<v Speaker 4>Yeah, I mean you could call it Windows ten bottomized.

1151
01:00:56.679 --> 01:00:58.480
<v Speaker 4>I mean, there's barely anything there at all.

1152
01:00:58.800 --> 01:00:59.599
<v Speaker 5>But it's it's.

1153
01:00:59.760 --> 01:01:01.119
<v Speaker 4>Oh well, it's a lot of fun.

1154
01:01:01.679 --> 01:01:03.719
<v Speaker 5>It flies doing nothing awesome.

1155
01:01:04.039 --> 01:01:05.840
<v Speaker 1>Well, John, you want to do some picks?

1156
01:01:06.159 --> 01:01:08.159
<v Speaker 6>Yeah, so I have a different pick this week too.

1157
01:01:08.719 --> 01:01:11.840
<v Speaker 6>You may by the time this this comes out. I

1158
01:01:12.000 --> 01:01:13.800
<v Speaker 6>have no idea if people are even gonna still be

1159
01:01:13.840 --> 01:01:17.320
<v Speaker 6>playing this game, but I have been playing and streaming

1160
01:01:17.679 --> 01:01:21.400
<v Speaker 6>and absolutely having a blast playing.

1161
01:01:21.440 --> 01:01:22.920
<v Speaker 5>I guess that's redundant among us.

1162
01:01:23.800 --> 01:01:26.840
<v Speaker 6>So if you're not familiar with it, if you're familiar

1163
01:01:26.880 --> 01:01:30.239
<v Speaker 6>with like Werewolf or Mafia or kind of games in

1164
01:01:30.320 --> 01:01:34.000
<v Speaker 6>that nature where you there's another game that people have

1165
01:01:34.199 --> 01:01:37.199
<v Speaker 6>like compared this to or whatever, where you like sort

1166
01:01:37.199 --> 01:01:41.280
<v Speaker 6>of have like like townsfolk, and then you have like

1167
01:01:41.519 --> 01:01:43.679
<v Speaker 6>people that are pretending to be townsfolk that are like

1168
01:01:43.719 --> 01:01:45.440
<v Speaker 6>trying to kill everybody off, and your goal is a

1169
01:01:45.519 --> 01:01:48.559
<v Speaker 6>townsfolk are to try and find the well. In this game,

1170
01:01:48.639 --> 01:01:51.440
<v Speaker 6>the imposters among you. So this is like set in

1171
01:01:51.519 --> 01:01:56.440
<v Speaker 6>space or whatever. But yeah, it's an absolute blast. I

1172
01:01:57.159 --> 01:01:59.039
<v Speaker 6>really am not sure what to say about it other

1173
01:01:59.119 --> 01:02:02.559
<v Speaker 6>than it's like kind of a great social game. Yeah,

1174
01:02:03.000 --> 01:02:06.559
<v Speaker 6>it's it's pretty awesome, so I highly recommend checking it out.

1175
01:02:07.000 --> 01:02:08.960
<v Speaker 6>I definitely have been doing a lot of streaming of

1176
01:02:09.039 --> 01:02:11.320
<v Speaker 6>it lately, so yeah, I'll.

1177
01:02:11.239 --> 01:02:15.519
<v Speaker 1>Jump in with a few picks. First pick bamboo flooring,

1178
01:02:15.800 --> 01:02:19.960
<v Speaker 1>so I love bamboo. And instead of the crummy old

1179
01:02:20.119 --> 01:02:24.199
<v Speaker 1>chair mat, the little plastic, thin plastic that I was

1180
01:02:24.360 --> 01:02:26.880
<v Speaker 1>using for a long time, I finally went to home

1181
01:02:26.920 --> 01:02:30.639
<v Speaker 1>Depot and got some bamboo flooring and I put glued

1182
01:02:30.719 --> 01:02:33.280
<v Speaker 1>that to a piece of plywood and I now use

1183
01:02:33.320 --> 01:02:37.480
<v Speaker 1>that as my floor mat on my carpeted floor, so

1184
01:02:37.639 --> 01:02:40.000
<v Speaker 1>my chair can just slide around on it. It's really

1185
01:02:40.079 --> 01:02:43.719
<v Speaker 1>really cool and it's been a life changing event here,

1186
01:02:43.880 --> 01:02:47.360
<v Speaker 1>so it's pretty awesome. And the second thing that I

1187
01:02:47.599 --> 01:02:51.559
<v Speaker 1>pick is the Elgato key light, So I got those

1188
01:02:51.639 --> 01:02:54.559
<v Speaker 1>for mass streaming set up and they make a huge difference.

1189
01:02:54.920 --> 01:02:56.719
<v Speaker 1>So you won't be able to tell on the podcast,

1190
01:02:56.840 --> 01:02:59.519
<v Speaker 1>but this is with my light's on and this is

1191
01:02:59.559 --> 01:03:02.400
<v Speaker 1>what the like it's off. Makes a really big difference

1192
01:03:02.440 --> 01:03:05.440
<v Speaker 1>in quality. So having a proper lighting on doing any

1193
01:03:05.519 --> 01:03:07.679
<v Speaker 1>kind of video work is an absolute must.

1194
01:03:08.000 --> 01:03:09.800
<v Speaker 4>Can you can you do it that again, Dave? Just

1195
01:03:09.840 --> 01:03:12.400
<v Speaker 4>so everyone can see on the podcast. Yeah, I got

1196
01:03:12.480 --> 01:03:14.480
<v Speaker 4>to say that is quite striking. Is that the same

1197
01:03:14.559 --> 01:03:16.840
<v Speaker 4>company that did the shortcut bomb?

1198
01:03:17.199 --> 01:03:18.280
<v Speaker 1>Yes, the stream deck.

1199
01:03:19.280 --> 01:03:20.960
<v Speaker 4>Yeah, that's a pretty cool thing as well.

1200
01:03:21.159 --> 01:03:23.519
<v Speaker 1>Big al galto f and Jesse, do you want to

1201
01:03:24.440 --> 01:03:25.400
<v Speaker 1>jump in with some picks?

1202
01:03:25.639 --> 01:03:28.280
<v Speaker 2>Yeah, I've got a couple of picks different categories. So

1203
01:03:28.480 --> 01:03:32.119
<v Speaker 2>first is a talk that I watched recently that maybe

1204
01:03:32.159 --> 01:03:34.880
<v Speaker 2>you all have seen already, but I recommend revisiting it.

1205
01:03:35.480 --> 01:03:39.320
<v Speaker 2>So Sandy Metz is rails com twenty nineteen keynote which

1206
01:03:39.400 --> 01:03:44.920
<v Speaker 2>is called Lucky You, and I think it's especially timely

1207
01:03:45.199 --> 01:03:49.119
<v Speaker 2>at the as we approach election season and thinking about

1208
01:03:49.639 --> 01:03:52.960
<v Speaker 2>equality and issues of inequality in our country. So I

1209
01:03:53.119 --> 01:03:55.760
<v Speaker 2>highly recommend that talk. It's amazing, as all Sandy Metz

1210
01:03:56.079 --> 01:04:00.000
<v Speaker 2>talks tend to be. Then I have when the pandemic starts,

1211
01:04:00.119 --> 01:04:04.000
<v Speaker 2>we started working remote, I made a small investment in

1212
01:04:04.079 --> 01:04:07.639
<v Speaker 2>my work from home setup that I highly highly highly recommend.

1213
01:04:08.239 --> 01:04:12.000
<v Speaker 2>I went out and I got an Ergo doos split keyboard,

1214
01:04:12.599 --> 01:04:14.480
<v Speaker 2>having some risk pain on the keyboard I was using,

1215
01:04:14.599 --> 01:04:17.360
<v Speaker 2>so I know keyboards can be a whole other podcast,

1216
01:04:17.880 --> 01:04:21.039
<v Speaker 2>But check out ergodocs. They make a really, really, really

1217
01:04:21.119 --> 01:04:23.960
<v Speaker 2>good product that's worth the price and I've been a

1218
01:04:24.039 --> 01:04:26.760
<v Speaker 2>huge fan of it since getting it. And then my

1219
01:04:27.000 --> 01:04:30.639
<v Speaker 2>final pick, there's a book that just came out. It's

1220
01:04:30.679 --> 01:04:33.840
<v Speaker 2>a guilty pleasure. It's called The Trouble with Peace by

1221
01:04:34.039 --> 01:04:38.000
<v Speaker 2>Joe Abercrombie, British gentleman, and it is in the grim

1222
01:04:38.119 --> 01:04:42.880
<v Speaker 2>dark genre of fantasy literature and I highly recommend it.

1223
01:04:43.280 --> 01:04:46.480
<v Speaker 1>Awesome. Well, thank you for those picks, and just be

1224
01:04:46.599 --> 01:04:49.039
<v Speaker 1>sure to post them into our chat section here so

1225
01:04:49.159 --> 01:04:52.119
<v Speaker 1>we can include them on the show notes. Well, Jesse,

1226
01:04:52.559 --> 01:04:54.440
<v Speaker 1>thank you for coming on today. It was a lot

1227
01:04:54.519 --> 01:04:56.440
<v Speaker 1>of fun. I love these kind of talks where we

1228
01:04:56.480 --> 01:05:00.239
<v Speaker 1>can just humble ourselves and talk about past mistake weeks

1229
01:05:00.280 --> 01:05:03.480
<v Speaker 1>and you know what we learned from them, so thanks again.

1230
01:05:03.719 --> 01:05:05.400
<v Speaker 4>This was awesome, really interesting.

1231
01:05:05.559 --> 01:05:09.079
<v Speaker 2>I listened a long time listener, first time guest, and

1232
01:05:09.360 --> 01:05:11.000
<v Speaker 2>this was This was awesome. I appreciate it.

1233
01:05:11.320 --> 01:05:12.840
<v Speaker 5>Yeah, thank you for coming right.

1234
01:05:12.920 --> 01:05:15.760
<v Speaker 1>Well, that's all for this episode everyone, Thanks for listening.

1235
01:05:16.039 --> 01:05:16.679
<v Speaker 5>Take everybody,
