1
00:00:09,510 --> 00:00:09,780
Phil Sturgeon: and

2
00:00:09,780 --> 00:00:10,620
Mike Bifulco: we'll come back to APIs.

3
00:00:10,620 --> 00:00:13,200
You won't hate it's me, Mike, with Phil here, Phil.

4
00:00:13,200 --> 00:00:13,680
How's it going?

5
00:00:13,890 --> 00:00:14,670
Phil Sturgeon: Hey, pretty good.

6
00:00:14,670 --> 00:00:16,680
I've been out in a failed plan entries in the rhino day.

7
00:00:16,680 --> 00:00:17,730
So just, you know,

8
00:00:17,790 --> 00:00:19,800
Mike Bifulco: normal pretty standard stuff.

9
00:00:19,800 --> 00:00:20,010
Yeah.

10
00:00:20,010 --> 00:00:21,180
Where in the world are you?

11
00:00:21,180 --> 00:00:22,590
Uh, catching up with me from today?

12
00:00:23,280 --> 00:00:24,150
Phil Sturgeon: Southwest of England.

13
00:00:24,150 --> 00:00:26,460
Again, she's is my usual corner of the world.

14
00:00:26,790 --> 00:00:27,000
These.

15
00:00:28,830 --> 00:00:29,100
Mike Bifulco: Yeah.

16
00:00:29,100 --> 00:00:31,680
It's an odd feeling that you have a usual place to me.

17
00:00:31,680 --> 00:00:38,640
I don't think I'll ever quite get used to that because it sort of feels like
you're, you're hopping about and jumping from forest to forest, like a, an idea.

18
00:00:38,640 --> 00:00:40,050
I can't quite get a grasp on.

19
00:00:40,710 --> 00:00:41,700
Phil Sturgeon: That's been all over the place.

20
00:00:41,700 --> 00:00:42,810
I mean, it's been a bit weird.

21
00:00:42,810 --> 00:00:44,610
I'm in the peak district.

22
00:00:45,165 --> 00:00:50,595
Near Manchester one day and then like north Wales around
the corner, the next looking at a bit of land and then

23
00:00:50,864 --> 00:00:53,745
rushing off to, to do a planning project in London.

24
00:00:53,804 --> 00:01:01,515
And then I've been putting some real miles on my like electric
rental thing, but, uh, hopefully I can ditch the car soon and

25
00:01:01,515 --> 00:01:04,304
get back to being, uh, the wandering woodsmen on, on two wheels.

26
00:01:04,304 --> 00:01:07,455
Cause, uh, I'm recovered from my, from my injury surgery.

27
00:01:07,455 --> 00:01:08,505
Recovery has gone nicely.

28
00:01:08,505 --> 00:01:14,445
I'm I'm back and I can like lift stuff
without crying and um, Back to back to health.

29
00:01:14,774 --> 00:01:18,765
So, uh, yeah, there'll be plenty of moving around,
but it will be, it'll be bike powered instead.

30
00:01:19,095 --> 00:01:19,455
Mike Bifulco: Yeah.

31
00:01:19,455 --> 00:01:20,145
Well, that's great to hear.

32
00:01:20,145 --> 00:01:21,914
I'm glad to hear your recovery is going well.

33
00:01:22,035 --> 00:01:24,765
Did, did you end up having two surgeries?

34
00:01:25,425 --> 00:01:25,845
No, just

35
00:01:25,845 --> 00:01:26,715
Phil Sturgeon: the one in the end.

36
00:01:26,745 --> 00:01:29,715
The, um, there was some like other side effects.

37
00:01:29,955 --> 00:01:30,285
Basically.

38
00:01:30,285 --> 00:01:33,705
I had like a surgery and then I was still in loads
of pain and I said, what the hell is going on?

39
00:01:33,975 --> 00:01:35,324
And basically it's just cause.

40
00:01:36,390 --> 00:01:40,619
I had gone from being incredibly active to sitting on the couch for four months.

41
00:01:40,890 --> 00:01:45,960
Um, there weren't like loads of other problems going on,
like crazy stomach acid, just like causing pain everywhere.

42
00:01:45,960 --> 00:01:50,850
So it seemed like there was something much bigger going on, but
it was like, oh no, you've just been really lazy for a while.

43
00:01:50,850 --> 00:01:52,259
And your body's upset about it.

44
00:01:54,270 --> 00:01:54,509
Yeah.

45
00:01:54,570 --> 00:01:54,970
So.

46
00:01:56,200 --> 00:01:56,530
Mike Bifulco: Yeah.

47
00:01:56,560 --> 00:01:56,860
Yeah.

48
00:01:56,890 --> 00:01:57,250
Cool.

49
00:01:57,280 --> 00:01:57,970
Well, I'm glad to hear it.

50
00:01:57,970 --> 00:01:59,320
I'm glad you're back in one piece.

51
00:01:59,320 --> 00:02:03,700
And I guess just probably as the weather starts to get
a little nicer there, you can get back on two wheels and

52
00:02:03,700 --> 00:02:06,040
kind of start to do all the things that you'd like to do.

53
00:02:06,760 --> 00:02:07,030
Phil Sturgeon: Yeah.

54
00:02:07,030 --> 00:02:13,720
We're currently being battered by storm Ursula, which is a
ridiculous name for quite a vicious storm, but, uh, yeah,

55
00:02:13,720 --> 00:02:15,640
the weather should start getting nicer in a couple of days.

56
00:02:16,330 --> 00:02:16,690
Mike Bifulco: Yeah.

57
00:02:16,750 --> 00:02:17,800
Well, I'm glad to hear it.

58
00:02:17,800 --> 00:02:21,730
I want to get an update from you on, uh, your, uh, work with protect.

59
00:02:22,530 --> 00:02:24,959
I want to hear a little bit about what's been going on with APS.

60
00:02:24,970 --> 00:02:25,440
You won't hate.

61
00:02:25,440 --> 00:02:29,609
And some of the work we've put out there, but first, before
we do that, let's hear a little bit from our sponsors.

62
00:02:31,334 --> 00:02:36,704
This episode of APS you won't hate is brought to you by
triple treble is an API management platform that helps

63
00:02:36,704 --> 00:02:39,045
developers and companies understand their APIs better.

64
00:02:39,285 --> 00:02:41,204
And then the process saves a lot of time and money.

65
00:02:41,385 --> 00:02:47,174
What started out as a solution for their own problems has grown into
a platform that's processing more than 9 million API requests a month.

66
00:02:47,355 --> 00:02:53,475
Treble features real-time API monitoring, automatically
generated documentation, logging and error tracking, API

67
00:02:53,475 --> 00:02:57,015
analytics, and one click API testing to learn more about trouble.

68
00:02:57,045 --> 00:02:59,505
Go to treble.com/api, as you love.

69
00:03:00,045 --> 00:03:04,394
That's trebled, T R E B L L e.com/api, as you.

70
00:03:04,845 --> 00:03:07,334
Thank you so much to trouble for sponsoring API rotate.

71
00:03:10,665 --> 00:03:13,334
This episode of APS you won't hate is brought to you by lob.

72
00:03:13,785 --> 00:03:19,214
Lob is a group of passionate people working towards their vision
of increasing connectivity between the offline and online worlds.

73
00:03:19,484 --> 00:03:20,204
They helped developers.

74
00:03:20,740 --> 00:03:22,480
Card's letters and checks is easily.

75
00:03:22,480 --> 00:03:29,020
It's email through restful APIs, lobbyists looking for engineers at
all levels, interested in joining a successful growth stage startup.

76
00:03:29,200 --> 00:03:32,320
They offer collaborative culture, supporting teamwork and mentorship.

77
00:03:32,350 --> 00:03:36,520
Their founders have a strong vision of building a product
led organization, and it's an opportunity to have a

78
00:03:36,520 --> 00:03:38,860
big impact on LOBs business and engineering culture.

79
00:03:39,250 --> 00:03:45,190
Lob is built using open API specifications for contract
testing, generating documentation, and soon SDK.

80
00:03:45,670 --> 00:03:50,260
Their API is written in the mix of JavaScript go
Lang and elixir and their customer facing deck.

81
00:03:50,710 --> 00:03:51,880
Built with Vue JS.

82
00:03:52,060 --> 00:03:56,740
If you're interested in joining lob, check them out online at lob.com/careers.

83
00:03:56,950 --> 00:03:59,560
Thank you so much to LA for sponsoring APS, you will need.

84
00:04:02,595 --> 00:04:03,614
And we're back.

85
00:04:03,704 --> 00:04:05,714
So Phil tell me you've been outside.

86
00:04:05,714 --> 00:04:06,765
You've been doing things.

87
00:04:06,795 --> 00:04:07,304
Uh what's.

88
00:04:07,304 --> 00:04:08,295
What's the latest with the

89
00:04:08,295 --> 00:04:08,744
Phil Sturgeon: charity.

90
00:04:09,075 --> 00:04:09,405
Yeah.

91
00:04:09,405 --> 00:04:12,015
I've barely been looking at my laptop, which is ridiculous.

92
00:04:12,015 --> 00:04:16,154
Cause there's a lot more planning work to be
done, but it is the height of planting season.

93
00:04:16,185 --> 00:04:18,375
I'm pretty much planting trees every day.

94
00:04:18,495 --> 00:04:24,914
Sometimes it's a volunteer project where there's 60 of
us trying to get through 5,000 trees in three days and

95
00:04:25,245 --> 00:04:28,155
sometimes there's eight of us and we've got, I've got some.

96
00:04:28,965 --> 00:04:30,495
Tough paid planters.

97
00:04:30,585 --> 00:04:36,405
You know, we had a few projects where there
was maybe eight of us doing 1,500 trees a day.

98
00:04:36,585 --> 00:04:40,455
So the, the number of trees we can get done
in a day really varies project to project.

99
00:04:40,455 --> 00:04:42,525
But yeah, there's loads of projects going on.

100
00:04:42,625 --> 00:04:50,065
It's pretty much every day, like back to back, um, Thursday,
I'll be in the Cotswolds Friday, I'll be in London or weekend.

101
00:04:50,065 --> 00:04:51,105
There'll be up in Manchester.

102
00:04:51,135 --> 00:04:56,445
It's like, as soon as it gets dark planting, I jump in
the car and you're just scream off to the next project.

103
00:04:56,655 --> 00:04:57,705
But yeah, the.

104
00:04:59,175 --> 00:05:03,555
The charities and a funny place, because we've, we've
basically paid for paid for loads and loads and loads

105
00:05:03,555 --> 00:05:06,255
of trees and been planting loads and loads of trees.

106
00:05:06,585 --> 00:05:08,765
And now I've got to do the job of documenting all the.

107
00:05:09,570 --> 00:05:14,100
So that they start showing up on people's ecology
profiles and everywhere else where we get our money from.

108
00:05:14,460 --> 00:05:16,620
And we've had a few new funding partners on board.

109
00:05:16,620 --> 00:05:22,860
So I've had to do some work on our API, um, and the iPhone app
to, because we use an iPhone out to take photographs of all the

110
00:05:22,860 --> 00:05:28,110
trees that gets them up in our API and then funding partners
can pull those, those photographs of trees in for whatever.

111
00:05:28,940 --> 00:05:37,610
And yeah, that's a layer of our PHP app that Matt originally
put together and it's using a whole bunch of open API as well.

112
00:05:37,610 --> 00:05:39,110
So it feels pretty cool.

113
00:05:40,200 --> 00:05:47,010
Quit working in tech and quit working on API APIs, but still be
doing modes of API work and open API work, and then writing about it.

114
00:05:47,010 --> 00:05:47,969
VPAs you and hate.

115
00:05:47,969 --> 00:05:49,559
So I haven't gone too far.

116
00:05:50,250 --> 00:05:50,520
Mike Bifulco: Yeah.

117
00:05:50,520 --> 00:05:56,820
It's rarely to get, to actually be able to meaningfully
use the stuff you we want to build and, and, uh, be

118
00:05:56,820 --> 00:05:59,159
your own user is kind of an interesting place to be in.

119
00:05:59,369 --> 00:06:00,989
So give me a sense of scale here.

120
00:06:01,020 --> 00:06:02,640
I know it's been a long winter for you.

121
00:06:02,909 --> 00:06:07,979
Do you have some estimate for how many trees you've
planted with your volunteers in the past few?

122
00:06:09,539 --> 00:06:14,640
Phil Sturgeon: We planted 3000 trees, roughly, I think in the last winter.

123
00:06:14,760 --> 00:06:22,830
And then this winter we've done, uh, we've done about 15,000 under
projects that we kind of directly control, but I know that there's another

124
00:06:24,090 --> 00:06:27,210
double that there's another like 17,000 floating around that we have.

125
00:06:27,960 --> 00:06:30,510
Paid for, but I haven't gone out to the projects to see them yet.

126
00:06:30,540 --> 00:06:35,460
So we're looking at about whatever, 35,000 trees
this season, and there are still more to come.

127
00:06:35,670 --> 00:06:40,680
We've probably got another, I've got like another
10,000 left to do before the middle of March.

128
00:06:40,840 --> 00:06:41,969
It's all a bit bonkers.

129
00:06:42,360 --> 00:06:48,690
Um, so we've really, really grown that up and we're
starting to get our hands on huge chunks of land as well.

130
00:06:48,690 --> 00:06:50,250
So we've, um, we've just had.

131
00:06:51,065 --> 00:06:56,375
It's only seven more sleeps until we get our hands on
the Cornish bit of land, the ancient replanted, Woodland.

132
00:06:56,794 --> 00:06:57,094
Heck.

133
00:06:57,094 --> 00:06:57,544
Yeah.

134
00:06:57,575 --> 00:07:00,544
And that has been an emotional rollercoaster since October.

135
00:07:00,544 --> 00:07:03,125
Cause there's been so many times where it seemed like we might not get it.

136
00:07:03,395 --> 00:07:09,844
There was a few issues around like VAT and, and
like negotiations with a philanthropic donor.

137
00:07:10,085 --> 00:07:15,635
And there's been a lot of different things going on, but like I
think, yeah, contracts are being exchanged in, in seven, seven days.

138
00:07:15,755 --> 00:07:16,715
Oh, that's amazing.

139
00:07:17,865 --> 00:07:24,585
And we've started working with people who were basically the original
plan was that we kind of raised a bunch of money from donors and

140
00:07:24,585 --> 00:07:27,765
then Bilan directly, and then we're still doing that, but we've also.

141
00:07:28,695 --> 00:07:36,914
That's really interesting person who was just got millions of pounds, apparently
burning a hole in his pocket and he wants to kind of buy land and hold onto it.

142
00:07:37,125 --> 00:07:38,565
And then he needs someone to reforest it.

143
00:07:38,565 --> 00:07:44,114
So it's kind of more like a partnership, um, where we'll lease
the land from, I dunno, a pound a year or something, and we'll,

144
00:07:44,145 --> 00:07:46,575
we'll, we'll manage the land back to back to being a forest.

145
00:07:46,875 --> 00:07:51,734
And so we've just found 27 acres for him and the offer was accepted and.

146
00:07:53,015 --> 00:07:56,555
That's only using like 1% of the money.

147
00:07:57,005 --> 00:08:02,885
So there's going to be a lot of land for us to plan, which
is why it's all about scaling things up, making things

148
00:08:02,885 --> 00:08:05,105
more efficient, making the project planning more efficient.

149
00:08:05,105 --> 00:08:10,775
I was talking about that last time and, and making sure that the
API is solid and does everything that our funding partners need.

150
00:08:10,775 --> 00:08:17,645
So they can pull out all the data and, and, and run their business off
of it and not have any bugs and mistakes, because whenever I have to try

151
00:08:17,645 --> 00:08:22,650
it, Figure out what's going wrong with the API or awkward mismatches.

152
00:08:22,650 --> 00:08:29,190
It's like, I'm in a field and I'm trying to send you samples of
code and code requests on my phone and this is not going well.

153
00:08:30,219 --> 00:08:35,100
So I have to make sure that thing is like slick and reliable
and not taking me away from the actual work at hand.

154
00:08:35,309 --> 00:08:35,669
Mike Bifulco: Yeah.

155
00:08:35,669 --> 00:08:36,780
So really that's incredible.

156
00:08:36,780 --> 00:08:42,449
It sounds like you, you have been figuring out how to scale
beyond just the fill, which is one of the core problems.

157
00:08:42,449 --> 00:08:43,470
I'm sure that you have there.

158
00:08:44,479 --> 00:08:50,660
Unbelievable for me to imagine that there's, I don't know,
sounds like 15, 20, 30,000 trees being planted this year.

159
00:08:50,660 --> 00:08:52,430
And each one of them will also have a glamorous.

160
00:08:53,370 --> 00:08:54,210
Pretty wild, man.

161
00:08:54,390 --> 00:08:55,439
That's very cool.

162
00:08:55,770 --> 00:08:56,010
Phil Sturgeon: Yeah.

163
00:08:56,040 --> 00:09:00,750
Luckily we have a lot of different types of projects
where some of them, we handle the entire thing.

164
00:09:00,750 --> 00:09:05,280
And sometimes the project has already been planned
by a big group, like say the Woodland trust.

165
00:09:05,280 --> 00:09:07,410
And they're just looking for someone to do the actual planting.

166
00:09:07,650 --> 00:09:13,680
And so with those sorts of projects, luckily we can just shove them in and take
like a few establishing Schultz, but we don't have to take a photograph of.

167
00:09:14,605 --> 00:09:23,005
But yeah, there, there are some of those projects where like we're
planting 4,000 trees near, uh, soon my neck of the woods and yep.

168
00:09:23,065 --> 00:09:29,665
I'm gonna have to, I'm gonna have to go out and photograph
4,000 trees and put that one's a bird cherry that one's a Rowan.

169
00:09:29,815 --> 00:09:35,545
That one's a, ah, you're about to get like three pound for everyone.

170
00:09:35,755 --> 00:09:36,085
Mike Bifulco: Yeah.

171
00:09:36,205 --> 00:09:36,475
Yeah.

172
00:09:36,475 --> 00:09:37,225
That's really cool.

173
00:09:37,235 --> 00:09:41,665
You're also about to have the least interesting
Instagram feed I've ever seen, but you know, I'm into it.

174
00:09:41,665 --> 00:09:42,085
That's great.

175
00:09:43,465 --> 00:09:44,275
Phil Sturgeon: Yeah, I should hook it up.

176
00:09:44,275 --> 00:09:48,175
So every single one just goes straight out and
people are like, we don't care about this at all.

177
00:09:48,175 --> 00:09:49,225
They all look the same.

178
00:09:49,225 --> 00:09:50,245
They're all two years old.

179
00:09:50,245 --> 00:09:51,145
It's not interesting.

180
00:09:51,475 --> 00:09:51,835
Mike Bifulco: It's all right.

181
00:09:51,865 --> 00:09:52,405
That's all right.

182
00:09:52,645 --> 00:09:53,605
Yeah, really cool, man.

183
00:09:53,605 --> 00:09:59,185
So th the work that you've been doing to support that kind of the
infrastructure behind this stuff has resulted in some learnings and

184
00:09:59,185 --> 00:10:04,285
some articles that we've published recently on the site for API, as you
won't hate, you want to tell a little, tell us a little bit about that.

185
00:10:05,280 --> 00:10:10,200
Phil Sturgeon: So Matt did a great job of
putting the APA together in a bit of a rush.

186
00:10:10,500 --> 00:10:19,500
We were kind of given, we were given an API hosted by
another planting partner of, at one of our funding partners.

187
00:10:19,500 --> 00:10:22,110
There's a company called future forest company.

188
00:10:22,110 --> 00:10:23,160
They do amazing things.

189
00:10:23,160 --> 00:10:23,640
They do.

190
00:10:24,555 --> 00:10:26,985
Slightly differently, but a good group of people.

191
00:10:27,055 --> 00:10:33,015
And we basically had to kind of copy their API so that they could
be integrated into one of our funding partners really easily.

192
00:10:33,285 --> 00:10:36,495
So we didn't really bother designing the API as such.

193
00:10:36,495 --> 00:10:38,175
We just kind of went, make it look like.

194
00:10:39,195 --> 00:10:42,705
And that seemed like a reasonable reason to not design it.

195
00:10:43,065 --> 00:10:49,005
It's one of those things, like the mechanics car is always
broken or like the shoemaker's son never has shoes or whatever.

196
00:10:49,005 --> 00:10:54,345
There's a million of those phrases around, like, I know chefs that
just microwave all of their dinners when they get home from work.

197
00:10:54,345 --> 00:10:58,305
It's always that thing of like, you think you're
an expert in it, so you just kind of don't bother.

198
00:10:58,635 --> 00:11:01,905
And I thought I know all about APA design first.

199
00:11:01,905 --> 00:11:02,385
I know enough.

200
00:11:03,300 --> 00:11:05,040
To to know when I should use it.

201
00:11:05,040 --> 00:11:11,370
And when I shouldn't and I totally messed up,
they're not having open API from the start.

202
00:11:11,610 --> 00:11:14,220
It just meant that we didn't have any API documentation.

203
00:11:14,280 --> 00:11:20,160
When we had a second funding partner, they want it to get on board
and I'm like, oh, let me send you some awkward curl examples.

204
00:11:20,160 --> 00:11:22,470
And if you have questions, just figure it out, I guess.

205
00:11:22,650 --> 00:11:27,210
And that led to a bunch of integration issues
and we had no way to do contract testing.

206
00:11:27,270 --> 00:11:28,920
There were just no tests at all.

207
00:11:29,100 --> 00:11:31,440
So we made a bunch of changes to improve before.

208
00:11:32,205 --> 00:11:36,705
Because it was built to handle like hundreds of
trees and then we've got tens of thousands of trees.

209
00:11:37,305 --> 00:11:42,945
So yeah, things kind of blow up in our face in a bunch of different
ways from just having their docs, having no contract testing

210
00:11:43,215 --> 00:11:47,505
and not being able to do design first for new functionality.

211
00:11:47,525 --> 00:11:50,865
So if he wants to add a new end point,
we've kind of got, I have this like weird.

212
00:11:52,050 --> 00:11:56,400
You know, we started a new open API from scratch and
it just had the one end point in it with nothing else.

213
00:11:56,400 --> 00:11:57,810
So it was kind of useless.

214
00:11:57,840 --> 00:11:59,340
Couldn't use it for mocking or anything else.

215
00:11:59,340 --> 00:12:01,770
So, um, I really wish I stuck to my own advice.

216
00:12:01,830 --> 00:12:05,940
I've been talking about how important EPA designed
first for months, and then I just don't do it.

217
00:12:07,110 --> 00:12:09,840
It's immediately justified everything I've been saying for years.

218
00:12:10,110 --> 00:12:10,380
Yeah.

219
00:12:10,480 --> 00:12:14,820
Mike Bifulco: I think we can chalk it up to a good reminder
that, uh, it's helpful to put yourself in the right

220
00:12:14,820 --> 00:12:18,090
shoes from time to time to reinvigorate that context.

221
00:12:18,844 --> 00:12:23,104
I, I tend to live more on the visual design
side of things in, in sort of past lives.

222
00:12:23,104 --> 00:12:29,735
And that's something that a lot of designers will say, like,
you really need to go in and do sketches and put together wire

223
00:12:29,735 --> 00:12:31,685
frames and all these other things before you start building.

224
00:12:31,685 --> 00:12:33,905
And every single designer I know with the website.

225
00:12:34,860 --> 00:12:40,079
Splash some CSS on to their code editor and
started making a mess of that way first.

226
00:12:40,079 --> 00:12:42,569
So, uh, I'm also definitely guilty of that.

227
00:12:42,569 --> 00:12:45,390
It's tempting to go in and do it the wrong way first.

228
00:12:45,449 --> 00:12:51,060
Um, and the quote that I always bandy about from a
friend and a mentor is from, I think it's our Franklin.

229
00:12:52,170 --> 00:12:59,430
That's essentially like a, as an architect, your most valuable tools are
the pencil at the drawing board and a sledgehammer on the construction site.

230
00:12:59,940 --> 00:13:01,800
And it's sorta like, guess which one of those is cheaper?

231
00:13:01,830 --> 00:13:06,720
You know, it's definitely usually a better idea to spend some
time with a piece of paper or, you know, your design system,

232
00:13:06,720 --> 00:13:10,200
writing things down, uh, ahead of time or you can go and build it.

233
00:13:10,200 --> 00:13:16,620
And then when your, your project goes from a hundred trees to a thousand
trees, to 10,000, you're going to be sledgehammering your app into

234
00:13:16,620 --> 00:13:19,560
shape and, uh, starting from scratch and wasting a bunch of time.

235
00:13:20,435 --> 00:13:21,045
Yeah.

236
00:13:21,315 --> 00:13:27,765
Phil Sturgeon: I mean, there were, there was, there was so many things that
like, you know, not all Matt's fault, uh, it really, really hard to spot,

237
00:13:27,765 --> 00:13:36,315
but they were little things where the, we were copying was a numeric string
and, uh, instead of, uh, integer or whatever, and PHP had opinions and just

238
00:13:36,315 --> 00:13:41,835
did it one way or the other, and they're, they're really small, hard to
spot things, but I can cause you know, a bunch of errors on the other side.

239
00:13:41,835 --> 00:13:43,185
So yeah, I think I'm.

240
00:13:44,270 --> 00:13:45,920
I'm just never making that mistake again.

241
00:13:45,920 --> 00:13:50,960
I'm always going to, if I ever need someone to
make an API for me, I'm always going to say right.

242
00:13:50,960 --> 00:13:52,670
Here's the open API spec.

243
00:13:52,880 --> 00:13:59,270
When you build it, implement contract testing
with the spec and like make sure it passes.

244
00:14:00,320 --> 00:14:01,400
Past this open API.

245
00:14:01,400 --> 00:14:08,300
Like it, it doesn't work the way I want it to, so you
don't get paid until you fix it, like make that pass.

246
00:14:08,300 --> 00:14:09,440
And then the contract is done.

247
00:14:09,440 --> 00:14:10,070
The job is done.

248
00:14:10,430 --> 00:14:14,630
Mike Bifulco: We'll say I've definitely been on the
other side of fill requests for software in the past.

249
00:14:14,630 --> 00:14:19,490
And usually it starts with a cheeky, like, Hey, I've got a quick
idea for something that's going to be really easy to go and build it.

250
00:14:20,035 --> 00:14:27,535
And really like, you're just polishing the tip of the iceberg and introducing
it to me in a way that sounds like it'll be a quick coffee break project.

251
00:14:27,564 --> 00:14:29,724
Uh, and they, they get big pretty fast.

252
00:14:29,724 --> 00:14:31,255
So we've all been victim to this.

253
00:14:31,255 --> 00:14:35,125
I think, you know, Matt and I are no strangers to these sizes of problems.

254
00:14:35,125 --> 00:14:38,155
And sometimes you just do what you can with the time you've got, for sure.

255
00:14:38,224 --> 00:14:38,755
Phil Sturgeon: Yeah.

256
00:14:38,995 --> 00:14:42,115
The, um, uh, I need to change.

257
00:14:42,900 --> 00:14:50,640
How I do business completely from everything is messed up because it's always,
it's always like the quickest laziest, crappiest version of everything.

258
00:14:50,640 --> 00:14:57,090
Like I'm usually zipping about doing a million things and then
like an idea pops into my head and it's maybe it's like three pints

259
00:14:57,090 --> 00:14:59,640
in, but I'm just like, oh yeah, we totally need to do this thing.

260
00:14:59,790 --> 00:15:01,260
Hey Mike, can you do this thing?

261
00:15:01,260 --> 00:15:05,940
And I just fire over a DM and you're like, I
guess, and then you do what seems sensible.

262
00:15:05,940 --> 00:15:08,640
And it wasn't exactly what I imagined based on 10 words.

263
00:15:08,910 --> 00:15:09,270
And then.

264
00:15:09,970 --> 00:15:18,280
You messed it up, maybe to spend again, that's like the benefit of the,
kind of the open API thing, or just generally writing down a bloody project.

265
00:15:18,280 --> 00:15:19,900
Brief both.

266
00:15:19,930 --> 00:15:25,210
If it's an API, like the more time you can spend planning
the thing, the less time you spend on doing the thing.

267
00:15:25,210 --> 00:15:30,100
Cause if I just say 10 words at you and you take a
swing at it, it's not going to be exactly what I meant.

268
00:15:30,130 --> 00:15:30,610
Is it for

269
00:15:30,610 --> 00:15:30,880
Mike Bifulco: sure?

270
00:15:31,060 --> 00:15:31,370
Yeah.

271
00:15:31,370 --> 00:15:31,580
Yeah.

272
00:15:31,960 --> 00:15:38,430
Uh, a thoughtful proposal is, is the hard part of the job on some
level when you're doing planning and sort of the leadership side of.

273
00:15:39,020 --> 00:15:43,160
And by the way, I should say that wasn't meant to be
a personal critique or attack or anything like that.

274
00:15:43,370 --> 00:15:44,030
We've all done it.

275
00:15:45,440 --> 00:15:46,790
Phil Sturgeon: Um, well, uh, I'm well aware.

276
00:15:46,820 --> 00:15:49,490
It's just kind of why I had to quit the last job.

277
00:15:49,490 --> 00:15:49,700
Right.

278
00:15:49,700 --> 00:15:57,440
It was like I'm doing a full-time job and the charity and trying to like for
a while, like get Dutch residency and start this software consulting business.

279
00:15:57,500 --> 00:16:01,970
And, and, and then like, people were like,
Hey, come and do this, uh, PHB meet up.

280
00:16:01,970 --> 00:16:02,930
And then there's a podcast.

281
00:16:02,930 --> 00:16:05,530
And then, ah, Oh, fuck it.

282
00:16:07,390 --> 00:16:12,490
But, um, yeah, thankfully, hopefully as I get more time,
I can, I can put more effort into doing things properly.

283
00:16:13,590 --> 00:16:18,240
Or I'll just keep taking on more tree planting
projects and keep rushing around doing them all badly.

284
00:16:18,270 --> 00:16:18,689
We'll see.

285
00:16:18,780 --> 00:16:19,110
Yeah.

286
00:16:19,140 --> 00:16:25,020
Mike Bifulco: Well, Hey, part of the reason we have the, the site and
the podcast is to scale your wisdom and the experiences that we all have.

287
00:16:25,020 --> 00:16:30,030
And the thing I haven't really said in public is that part of the
reason we're also recording your voice over and over, is that just

288
00:16:30,030 --> 00:16:35,610
so that we can take all the words you've written and throw them
through machine learning and deep, fake Phil wisdom from here forward.

289
00:16:35,610 --> 00:16:41,250
So you can go play in the trees and we'll just set up a
fill, but to yell at people on the internet when we need it.

290
00:16:42,165 --> 00:16:42,915
Phil Sturgeon: Sounds good.

291
00:16:43,905 --> 00:16:49,064
Well, speaking of getting machines to do our bidding,
one of the things, one of the two articles we put up

292
00:16:49,125 --> 00:16:52,994
recently was about using, um, Akita, a really helpful tool.

293
00:16:53,265 --> 00:17:01,185
Uh, it's this, the tool I use to get me out of the hole where like, okay,
we have API, we need open API so that we can do a bunch of useful things.

294
00:17:01,185 --> 00:17:02,525
Docs, mocks, contract testing.

295
00:17:03,020 --> 00:17:11,630
But I am not going to sit down there and go to every end point and go, oh,
there's a property called, you know, Fu and it looks like a string and oh, you

296
00:17:11,630 --> 00:17:15,319
know, format equals date and just click a thousand buttons or type a thousand.

297
00:17:15,319 --> 00:17:15,950
Mine's a Yammer.

298
00:17:16,160 --> 00:17:17,240
That just sounds like death.

299
00:17:17,900 --> 00:17:18,859
And no one got time for that.

300
00:17:18,859 --> 00:17:24,859
So, uh, yeah, we did not call called creating open API from HTTP traffic.

301
00:17:25,310 --> 00:17:28,190
And it would like show you how it works, but super handy.

302
00:17:28,310 --> 00:17:29,290
I knew there were tools out there that.

303
00:17:29,940 --> 00:17:37,710
And I'd kind of like played with them a little bit a year ago and they
were all still, you know, kind of, kind of getting really good now.

304
00:17:37,980 --> 00:17:41,550
And there's another one called optic, which people recommend.

305
00:17:41,550 --> 00:17:44,129
I played around with some Beyers that were a little tricky.

306
00:17:44,955 --> 00:17:51,045
But, uh, I've heard, that's made a lot of progress too, so
Akita or optic can help you out, but it's amazing to just

307
00:17:51,045 --> 00:17:58,365
say, Hey, look, maybe was over there, poke a few end points
with your HTP client of choice, co postmen, whatever insomnia.

308
00:17:58,695 --> 00:18:00,165
And then it just goes right.

309
00:18:00,225 --> 00:18:03,135
You've got these endpoints, these properties, these mindsets.

310
00:18:04,439 --> 00:18:05,429
Does your rep an API.

311
00:18:05,730 --> 00:18:06,270
Yeah.

312
00:18:06,270 --> 00:18:06,720
And you're done.

313
00:18:07,020 --> 00:18:07,350
Yeah.

314
00:18:07,379 --> 00:18:07,560
That's

315
00:18:07,560 --> 00:18:08,189
Mike Bifulco: pretty amazing.

316
00:18:08,250 --> 00:18:09,990
It's definitely hacker friendly.

317
00:18:10,050 --> 00:18:16,679
And I mean, hacker and maybe the friend, well, the, the nicer sense of
the word, not like I'm going to go steal your bank account necessarily,

318
00:18:16,679 --> 00:18:22,110
but like, if you want to figure out how something is built or get some
introspection until the way that someone else has designed an API.

319
00:18:23,115 --> 00:18:26,595
Like, it can be a useful exercise to go
in and dive in and use that kind of thing.

320
00:18:26,865 --> 00:18:32,355
Even if you're not going, and re-engineering an API or putting
design docs and testing together around something that you're

321
00:18:32,355 --> 00:18:38,385
already using, like kind of interesting to see the way that
things are organized, uh, from, you know, soup to nuts.

322
00:18:38,625 --> 00:18:44,145
It's, it's one of those things that's really easy to do with some of the
other things we work with, but like, yeah, these, these tools are really.

323
00:18:44,905 --> 00:18:52,014
Coming into shape lately and definitely hitting a stage where it's like, oh,
you can go and do some really meaningful, interesting Packery with this stuff

324
00:18:52,014 --> 00:18:56,274
and put together a useful prototype based on an API that you know, exists.

325
00:18:56,784 --> 00:18:56,935
Phil Sturgeon: Yeah.

326
00:18:56,965 --> 00:18:57,804
Yeah, for sure.

327
00:18:57,834 --> 00:19:00,594
And I just, I can think about how it would have helped me in a lot of things.

328
00:19:01,650 --> 00:19:07,020
Projects in the past, like when I was at, um, giant coworking
company that I need to stop naming when I'm complaining about

329
00:19:07,020 --> 00:19:11,400
them, I was constantly trying to get people to write open API.

330
00:19:11,550 --> 00:19:14,040
You know, we had a few people that were like, yeah, I'm going to make open API.

331
00:19:14,040 --> 00:19:16,170
I want dogs and mocks and SDK generations and all that.

332
00:19:16,170 --> 00:19:16,290
Good.

333
00:19:17,000 --> 00:19:21,200
And I brought people with pizza that helped, but
it was still quite a lot of reach-out effort.

334
00:19:21,230 --> 00:19:28,480
And then it was like trying to get people to slight that work into that
sprints when they have completely unmanageable deadlines already and, and

335
00:19:28,550 --> 00:19:31,580
constant rewrites, because they never wrote any docs in the first place.

336
00:19:31,580 --> 00:19:32,420
So they don't know how it works.

337
00:19:32,450 --> 00:19:34,040
So they're too busy doing three, right.

338
00:19:34,040 --> 00:19:37,490
To write the docs, which means they'd probably
have to do another rewrite in the future.

339
00:19:37,580 --> 00:19:41,660
Ah, so I was trying to get people out of that cycle and I could just imagine.

340
00:19:42,375 --> 00:19:47,145
Dropping Akita or something similar optic, some sort of traffic sniffing proxy.

341
00:19:47,325 --> 00:19:52,725
I can just imagine dropping that into the end to end test suite
where we've got, you know, multiple APIs or talking to each

342
00:19:52,725 --> 00:19:59,325
other, and then all of that traffic is being recorded and you
can then convert that into open API and awesomely for the.

343
00:20:00,074 --> 00:20:03,165
Comfort for the API is and teams that did have open API.

344
00:20:03,405 --> 00:20:07,935
We were dropping that into the end to end test suite with a validation proxy.

345
00:20:07,965 --> 00:20:12,524
So if you suddenly made a change that broke
your open API, it would say error error.

346
00:20:12,794 --> 00:20:16,725
So you could kind of use the end-to-end test
suite to create the open API if you don't have it.

347
00:20:16,935 --> 00:20:23,800
And then once you do that, You can use it for validation testing
and you wouldn't have to say, please, please, please, can you sit

348
00:20:23,800 --> 00:20:27,220
down and type out every single property in every single thing?

349
00:20:27,220 --> 00:20:28,840
Cause again, humans will get that wrong.

350
00:20:29,170 --> 00:20:31,690
So yeah, it's a really useful tool and I'm glad that I got to play with it.

351
00:20:31,690 --> 00:20:39,880
Cause I think a lot more people can use that to catch up because
so, so many people I know don't I've done the poll a few times.

352
00:20:39,880 --> 00:20:39,940
Yeah.

353
00:20:40,725 --> 00:20:47,985
Are you code first design first, uh, switching from
code first to design first, or like awkward combination.

354
00:20:48,165 --> 00:20:52,095
And most people are awkward combination, um, or switching.

355
00:20:52,455 --> 00:20:56,865
So yeah, using those tools, you can kind of play,
catch up, get your open API and move on from there.

356
00:20:56,925 --> 00:20:58,004
Design first, all the things.

357
00:20:58,830 --> 00:20:59,460
Yeah, I think

358
00:20:59,460 --> 00:21:04,500
Mike Bifulco: the reality is there's very few companies that any
of us get to work with on any level that are like starting from

359
00:21:04,500 --> 00:21:07,410
scratch and getting to play with things from the ideal scenario.

360
00:21:07,410 --> 00:21:15,390
And especially if you've got something that's, I don't know, 10, 15 years old,
like you're working your way back towards compliance, uh, is a, is a mega chore.

361
00:21:15,390 --> 00:21:24,390
And some of those tasks that are sitting down and staring at Yamhill, or, you
know, HTTP responses, sound torturous for experienced people and our problems.

362
00:21:25,155 --> 00:21:30,585
A little too important to give to someone who's like in an
internship or data entry role or whatever, for a variety of reasons.

363
00:21:30,585 --> 00:21:35,655
And, and putting tooling in the middle, I guess, is sort
of the obvious engineer's response there is to figure

364
00:21:35,655 --> 00:21:37,335
out some way to automate it in a way that's rolling.

365
00:21:38,860 --> 00:21:43,030
Phil Sturgeon: I've definitely seen some engineers kind
of saying, well, we don't need to ever make an open API

366
00:21:43,030 --> 00:21:45,400
because we can always just produce them automatically.

367
00:21:45,610 --> 00:21:48,460
And that's taking the point too far a little bit.

368
00:21:48,460 --> 00:21:54,310
Like, I, I think some optic definitely seems to kind of be
portraying that as like, you don't need to spend time designing

369
00:21:54,310 --> 00:21:56,560
it because you could just, you know, make it automatically.

370
00:21:56,560 --> 00:21:56,820
And I.

371
00:21:58,200 --> 00:22:02,370
No, if that's still their messaging or, or maybe it never was.

372
00:22:02,730 --> 00:22:12,060
But I, I worry about that sort of concept because what I did with Akita was use
it to get a starting point that's pretty accurate and then tweak it from there.

373
00:22:12,270 --> 00:22:17,220
And there were things missing and there was like, the human touch was missing.

374
00:22:17,220 --> 00:22:19,710
It was just what you can sniff and control.

375
00:22:20,465 --> 00:22:28,925
And there were, I think there are a few examples in there, but I want
to put some more targeted examples and I had to remove a few sensitive

376
00:22:29,045 --> 00:22:35,575
UIDs cause you know, with, with certain new ideas, the way it's currently
built, if you have the UID of a funding partner, you can just see your.

377
00:22:36,335 --> 00:22:38,435
Orders and save all of their trees and not have to pay for them.

378
00:22:39,845 --> 00:22:42,095
So I don't want to put that ID in the docks.

379
00:22:42,305 --> 00:22:48,245
And so I think anything that you get from one of these tools
that kind of looks at what's going on and takes the best

380
00:22:48,245 --> 00:22:50,765
educated, guess it can, it's never going to be perfect.

381
00:22:50,855 --> 00:22:58,505
It's never going to be a publishable document that you would be proud to
make, you know, your API reference documentation of choice for end users.

382
00:22:58,805 --> 00:23:03,575
Uh, it's just like a useful artifact of this getting pretty close.

383
00:23:03,635 --> 00:23:04,795
It's like a quick.

384
00:23:05,669 --> 00:23:06,870
More than anything else, you know?

385
00:23:07,320 --> 00:23:10,020
And, uh, yeah, I've seen some engineers go well, great.

386
00:23:10,020 --> 00:23:14,189
I don't have to do the time-consuming thing
cause I'll just do the auto automated bad thing.

387
00:23:14,610 --> 00:23:15,840
And that just lazy.

388
00:23:16,620 --> 00:23:17,220
It's easy to

389
00:23:17,220 --> 00:23:25,080
Mike Bifulco: maybe, um, interpret in bad faith, I suppose, or like in, in a
way that makes life easier, but not necessarily in the long run beneficial.

390
00:23:25,590 --> 00:23:25,709
So.

391
00:23:27,205 --> 00:23:29,395
I wanted to mention one of the things I've been thinking about lately.

392
00:23:29,395 --> 00:23:36,085
So I think you, well, I'd imagine you're probably much more disconnected
from the internet and Twitter and things than I am these days, as a

393
00:23:36,085 --> 00:23:43,764
result of you mostly literally getting your hands dirty, but, uh, you
and I tend to run in slightly different, like developer circles online.

394
00:23:44,215 --> 00:23:44,905
And one of the things I've.

395
00:23:45,735 --> 00:23:52,034
Noticing a lot lately is a lot of, sort of like call it
indie web sort of developers and people building their own

396
00:23:52,034 --> 00:23:54,495
products and whatnot who are building on top of frameworks.

397
00:23:54,495 --> 00:24:03,645
Like, uh, she's I don't know, Jekyll and, um, view and remix is one of
the newer ones and next JS and all these other things that have really

398
00:24:03,645 --> 00:24:12,254
interesting integrations for sort of natively supporting automatically
generated or serverless functions within a sort of web application context.

399
00:24:13,260 --> 00:24:17,130
You could basically use a command line app
to generate the framework for a web app.

400
00:24:17,400 --> 00:24:23,280
And then by creating a file in a specific place, it
gets deployed to, uh, an Amazon serverless app or, you

401
00:24:23,280 --> 00:24:26,160
know, whatever other hosting providers who do magic.

402
00:24:26,220 --> 00:24:27,480
I love it pretty cool.

403
00:24:27,510 --> 00:24:28,230
And it's all done.

404
00:24:28,230 --> 00:24:31,560
Like it hooks into CII really nicely and does lots of good things with that.

405
00:24:31,860 --> 00:24:33,390
In addition to giving sort of the.

406
00:24:34,650 --> 00:24:42,060
In most cases, JavaScript, granted hooks into the API lifecycle or
the HTTP verbs and things like that, that you would want for an API.

407
00:24:42,570 --> 00:24:45,810
There is a lot of cool stuff you can do with that.

408
00:24:45,810 --> 00:24:48,360
And you can kind of imagine that being in the middle layer for a lot of things.

409
00:24:48,360 --> 00:24:54,420
In fact, actually the, the, our new API is you won't hate site uses
some of this stuff for like our contact form, where we sort of use

410
00:24:54,420 --> 00:24:57,540
that as air to fire things off to places to automate our lives.

411
00:24:57,540 --> 00:24:58,290
On the other end, when we.

412
00:24:59,550 --> 00:25:08,820
But what's interesting to me there is that there's almost no discussion around
how to keep track of those things and how to make sure that you are, you know,

413
00:25:08,820 --> 00:25:12,960
not using, uh, your, uh, delete verb for a post and those kinds of things.

414
00:25:13,380 --> 00:25:18,120
And in those communities in particular, there
is precious little education to begin with.

415
00:25:18,975 --> 00:25:24,345
You know, why you would make these kinds of choices and, and why
it's important to consider like the shape of things coming into

416
00:25:24,345 --> 00:25:32,085
your API or where they're coming from and validating and doing
things like recaptures and honeypots and all those sorts of things.

417
00:25:32,385 --> 00:25:40,155
I bring all this up mostly to say that, like, I think that's an interesting
avenue for maybe me to head down over the coming months in terms of

418
00:25:40,635 --> 00:25:43,215
considering types of things that we can help those sorts of developers.

419
00:25:44,115 --> 00:25:51,645
Because I think it's largely unknown to this, to lots of folks in
this audience, one, the structure of, of these sorts of APIs, even

420
00:25:51,645 --> 00:25:57,735
if it's a very basic crud thing for one use case, like a lot of it
seems to be just like smash this code into place and it'll work.

421
00:25:57,735 --> 00:25:58,215
Trust me.

422
00:25:58,725 --> 00:26:00,195
Like I know because of the axles.

423
00:26:00,960 --> 00:26:02,080
Yeah.

424
00:26:02,110 --> 00:26:09,430
And the other side of it is too, like the, the debug tooling to be able to go
and build these things like using postman, insomnia, all those things to go

425
00:26:09,430 --> 00:26:12,910
and actually fire off the HTTP requests to test just the serverless function.

426
00:26:13,240 --> 00:26:17,950
I never see those talked about when people are
building these serverless things on these frames.

427
00:26:18,825 --> 00:26:26,655
So I think there's very likely a, um, a hole in documentation, a
hole in content produced there a whole and just discussion around

428
00:26:26,685 --> 00:26:29,505
like, here's, what's actually going on behind the scenes here.

429
00:26:29,655 --> 00:26:31,095
Here's how you can think about it.

430
00:26:31,095 --> 00:26:36,555
And here's how you can build and debug it as a developer, building
these things out, whether you're creating a contact form or completing

431
00:26:36,555 --> 00:26:42,945
a purchase, or I don't know, you name it, creating an account for
your, you know, visitors to your app or whatever the case may be.

432
00:26:43,785 --> 00:26:52,605
It's an interesting thing where we have a full stack to our way into
what could be a potentially like security averse kind of mindset.

433
00:26:53,805 --> 00:26:54,165
Yeah.

434
00:26:54,195 --> 00:26:58,875
I I'm I'm, I'm not, uh, I won't say I'm preoccupied about it,
but I'm definitely fascinated by the way, all that stuff is.

435
00:27:01,495 --> 00:27:03,294
Phil Sturgeon: Yeah, that, that sounds really interesting.

436
00:27:03,294 --> 00:27:14,695
I, I keep seeing fantastic things coming along and, and generally
I'm only introduced to new web front end kind of frameworks when you

437
00:27:14,695 --> 00:27:18,834
switch the website to them and you're like this cool new tool came out.

438
00:27:18,834 --> 00:27:19,645
It does this, this and this.

439
00:27:19,645 --> 00:27:20,365
And I'm like, all right.

440
00:27:20,365 --> 00:27:24,145
And you know, you, you like put, uh, moved us from wherever it was.

441
00:27:24,175 --> 00:27:25,145
Uh, yeah.

442
00:27:27,375 --> 00:27:27,774
Yeah.

443
00:27:27,895 --> 00:27:28,135
That was.

444
00:27:29,240 --> 00:27:31,909
Uh, there was middleman for awhile and then Gatsby.

445
00:27:31,970 --> 00:27:38,270
And then, um, we were on, uh, I don't even know, but we switched
to Netlify and then I was like, oh, damn, this is really good.

446
00:27:38,600 --> 00:27:41,780
And then versa last, even better that makes Netlify look like rubbish.

447
00:27:42,020 --> 00:27:47,540
Like there are all these kinds of new changes come
along and make things faster and easier and better.

448
00:27:47,540 --> 00:27:49,699
And so I have been really impressed with a lot of that end.

449
00:27:50,754 --> 00:27:53,665
But like the specific troubles you're
describing, it's just kind of makes me laugh.

450
00:27:54,024 --> 00:27:59,725
I feel like we went from a period where, you
know, service lead pages were very static.

451
00:27:59,725 --> 00:28:05,695
It's like, I'm going to figure out what HTML to spit out and then
you'll do a form and I'll think about it and spouse and HTML.

452
00:28:05,695 --> 00:28:06,845
And that was very static and that.

453
00:28:07,505 --> 00:28:08,705
Kind of web one, right.

454
00:28:09,005 --> 00:28:11,795
Or maybe when you got to forums, it was like kind of getting into web two.

455
00:28:12,065 --> 00:28:14,105
And we're not just talking about three today that can get in the bent.

456
00:28:14,825 --> 00:28:18,755
There was this kind of period in, in kind of web
to where it was like more rich and interactive.

457
00:28:18,755 --> 00:28:21,095
And, and we started to do a lot more Ajax functions.

458
00:28:21,245 --> 00:28:25,015
So you had a site that felt generally quite static being loaded by the server.

459
00:28:25,975 --> 00:28:30,985
And then you had these little random Ajax functions, these
little random end points that would be you just called whatever.

460
00:28:31,014 --> 00:28:37,794
And maybe have like an Ajax controller and group them under that
like set like slash Ajax slash whatever random logic you wanted.

461
00:28:38,125 --> 00:28:41,034
And they were all just like floaty, totally disparate.

462
00:28:41,034 --> 00:28:43,435
No one was really meant to use them, although they totally could.

463
00:28:43,824 --> 00:28:51,145
And it was just kind of a, a kind of a
floating function useful for the front end.

464
00:28:51,445 --> 00:28:52,855
Um, and then we went through this period of.

465
00:28:53,669 --> 00:29:00,750
Glorifying the API for many good reasons, but all of
a sudden it became about like I'm making an API for my

466
00:29:00,750 --> 00:29:04,320
website and this API will be called like API dot, whatever.

467
00:29:04,530 --> 00:29:08,639
And, and it should all be consistent and lovely and, and follow all these rules.

468
00:29:08,639 --> 00:29:11,399
I don't know what rules, what, what, what can we do to make it good Russ dish?

469
00:29:11,429 --> 00:29:11,820
Sure.

470
00:29:11,820 --> 00:29:13,199
Those are the rules that we will follow.

471
00:29:13,590 --> 00:29:15,540
And everyone kind of focused on that.

472
00:29:15,540 --> 00:29:20,790
And the idea of these floaty disparate age
actually functions has just kind of fell away.

473
00:29:21,270 --> 00:29:29,610
Um, but it sounds like we're moving back towards that very quickly without
taking any of the lessons learned from either of those two iterations, because

474
00:29:30,900 --> 00:29:35,910
there are reasons why you do things like use the correct, um, HTP method, right.

475
00:29:36,540 --> 00:29:40,830
Gave a talk ages ago, like the original API
pain points talk I used to do back in the day.

476
00:29:40,830 --> 00:29:48,899
It sounds like a lot of that stuff might be good content for them because
there's things like, um, you know, Uh, some company, I think it was Rackspace.

477
00:29:49,139 --> 00:29:53,970
They had an API that you would delete action was on a get method.

478
00:29:54,450 --> 00:30:01,889
And so Google found the XML, um, the crawler, the XML, uh,
collection, and started calling all these endpoints and just deleting

479
00:30:01,889 --> 00:30:04,919
people's servers, just bang, bang, bang, bang, just deleting them.

480
00:30:05,810 --> 00:30:07,530
Google was just sitting there going right.

481
00:30:07,530 --> 00:30:09,690
It's like Google sitting there going, I wonder what's on this link.

482
00:30:09,780 --> 00:30:10,409
Oh, nothing.

483
00:30:10,409 --> 00:30:10,830
That's weird.

484
00:30:11,100 --> 00:30:11,460
I wonder why.

485
00:30:12,074 --> 00:30:12,794
Oh, nothing.

486
00:30:12,855 --> 00:30:13,215
That's all right.

487
00:30:13,554 --> 00:30:13,725
Right.

488
00:30:13,725 --> 00:30:15,824
So these things matter, the conventions matter.

489
00:30:15,824 --> 00:30:17,504
You don't know why they matter.

490
00:30:17,564 --> 00:30:19,965
So you think they don't matter, but they bloody well do.

491
00:30:20,235 --> 00:30:26,355
And so if we're kind of getting a bunch of people who are
generally not that used to all of the horror stories that I've

492
00:30:26,355 --> 00:30:28,514
been trying to tell for years and other people have been going on.

493
00:30:29,320 --> 00:30:35,050
And they just think, oh, it's just some ivory tower
nonsense and preferences and opinions and whatever.

494
00:30:35,050 --> 00:30:37,300
They're going to build a bunch of shit and repeat all the same mistakes.

495
00:30:37,570 --> 00:30:37,900
Yeah.

496
00:30:37,960 --> 00:30:38,440
Everything

497
00:30:38,440 --> 00:30:40,420
Mike Bifulco: old is indeed new again in this case.

498
00:30:40,840 --> 00:30:45,430
Uh, and it's funny because it's, a lot of these things
are pitched as like, this is just a really fast way.

499
00:30:45,430 --> 00:30:48,940
Like it's fast and you'll get it done and
it's deployed on the edge of the network.

500
00:30:48,940 --> 00:30:51,150
So it's performance and it's like, yeah.

501
00:30:51,150 --> 00:30:51,790
Yeah, cool.

502
00:30:51,790 --> 00:30:52,360
Like that.

503
00:30:52,540 --> 00:30:53,050
That's great.

504
00:30:53,050 --> 00:30:55,150
And all, but if I'm giving you the, uh, the nuclear.

505
00:30:56,030 --> 00:30:57,770
Uh, faster and on the edge of the network.

506
00:30:57,770 --> 00:30:58,960
It's not a good thing for me.

507
00:30:58,970 --> 00:31:03,620
You know, I, I need some degree of certainty
that the things are being built here.

508
00:31:03,710 --> 00:31:09,050
We've done responsibly, or, you know, in ways that, that
won't open up holes in the functionality of the software.

509
00:31:09,050 --> 00:31:10,290
And I think there's very likely.

510
00:31:11,070 --> 00:31:12,870
Quite a few exploits to do with these things.

511
00:31:12,880 --> 00:31:20,550
As people like go and copy paste, uh, unwittingly, some code from a very
popular tutorial that doesn't happen to consider these things or like is

512
00:31:20,550 --> 00:31:23,790
just reusable and all kinds of places, all the things we've seen before.

513
00:31:23,790 --> 00:31:29,840
And definitely like not, not meaning to point to anyone's anything
in particular and say, this is bad, but it's more the, the

514
00:31:29,970 --> 00:31:32,880
rough concept of the thing that, uh, that's the starting point.

515
00:31:34,399 --> 00:31:39,260
Phil Sturgeon: It does just seem like a walk down memory
lane a lot, like copying and pasting random insecure

516
00:31:39,260 --> 00:31:41,990
PHP code you found on a tutorial was how I started.

517
00:31:43,370 --> 00:31:45,139
That's the only way I've ever 20 plus years ago.

518
00:31:45,139 --> 00:31:46,520
That's the first thing I was doing.

519
00:31:46,520 --> 00:31:46,820
Yeah.

520
00:31:46,820 --> 00:31:48,439
And it's not great.

521
00:31:50,085 --> 00:31:51,195
Yeah, right.

522
00:31:51,195 --> 00:31:56,745
And like you copy and paste a class off of, uh, off of a blog and
you'd have to change all of the, um, like all of the quotation

523
00:31:56,745 --> 00:32:03,345
marks accidentally being converted to like, you know, uh, tactics or
smart quotes or Kelly, Kelly quotes, Sage that find them replacing.

524
00:32:03,345 --> 00:32:09,165
And now you type like composer install when you get that package,
check them to make sure it's not being completely screwed.

525
00:32:09,375 --> 00:32:11,535
But yeah, like let's not, let's not do all that again.

526
00:32:11,565 --> 00:32:12,345
It's not go backwards.

527
00:32:12,825 --> 00:32:13,125
Mike Bifulco: Yeah.

528
00:32:13,515 --> 00:32:17,355
Maybe I'll have to sit down and actually put some things
into writing here and we can, we can educate the world.

529
00:32:18,255 --> 00:32:21,105
Phil Sturgeon: The good news is my old content
is now going to stay relevant for longer.

530
00:32:21,105 --> 00:32:21,705
So thank you for that,

531
00:32:21,885 --> 00:32:22,365
Mike Bifulco: for sure.

532
00:32:22,365 --> 00:32:22,685
Yeah.

533
00:32:22,725 --> 00:32:22,965
Right.

534
00:32:23,235 --> 00:32:26,255
All you've got to do is slap a new title on
your old talk and you're back in business, man.

535
00:32:26,275 --> 00:32:26,715
That's great.

536
00:32:27,045 --> 00:32:27,825
Maybe not even a new

537
00:32:28,485 --> 00:32:30,795
Phil Sturgeon: functions, you won't hate exactly.

538
00:32:30,795 --> 00:32:31,305
Exactly.

539
00:32:31,305 --> 00:32:32,505
It's just exactly the same thing.

540
00:32:33,255 --> 00:32:36,715
Mike Bifulco: AWS, you all and hate has a weird
ring to it, but I'm kind of into that too.

541
00:32:38,010 --> 00:32:38,430
All right, man.

542
00:32:38,430 --> 00:32:40,050
We'll look, it's been nice catching up.

543
00:32:40,260 --> 00:32:45,450
We are, I should say I'm getting into the cadence of
doing this thing on a roughly monthly schedule, although

544
00:32:45,750 --> 00:32:47,700
as the stars aligned for the three of us to get on it.

545
00:32:48,660 --> 00:32:54,090
It's monthly ish, but, um, yeah, we'll we'll um, gosh,
I guess I'll catch up with you in a few weeks and we'll,

546
00:32:54,150 --> 00:32:56,250
we'll see where you're, uh, where you're at at that point.

547
00:32:56,580 --> 00:32:56,790
Phil Sturgeon: Yeah.

548
00:32:56,790 --> 00:32:58,920
In a few weeks, I should be nearly done with planting seasons.

549
00:32:58,940 --> 00:32:59,520
Thank God.

550
00:32:59,550 --> 00:33:03,240
So I will be I'm coming at, you live from a beach or something.

551
00:33:03,240 --> 00:33:03,690
I don't know.

552
00:33:03,690 --> 00:33:04,290
I need a break.

553
00:33:04,380 --> 00:33:04,860
Mike Bifulco: There we go.

554
00:33:05,220 --> 00:33:05,850
It sounds lovely.

555
00:33:06,270 --> 00:33:08,040
Well, take care of yourself and

556
00:33:10,830 --> 00:33:11,190
Phil Sturgeon: good to see you.