1
00:00:00,000 --> 00:00:07,000
All right. Well, we are kicking off the second live stream. I'm very, very excited about

2
00:00:07,000 --> 00:00:13,000
today's guest. Neil Toveson, welcome to the live stream. How are you this fine morning?

3
00:00:13,000 --> 00:00:20,500
Fantastic. Fantastic. It's a beautiful sunny warm day in Minneapolis.

4
00:00:20,500 --> 00:00:23,720
I'm going to laugh about that a little bit. And for anyone who is listening, we are chuckling

5
00:00:23,720 --> 00:00:28,720
a little because I used to live in Minnesota and he said it's a beautiful warm 28 degrees

6
00:00:28,720 --> 00:00:33,440
Fahrenheit there. Meanwhile, I'm over here in Texas like it's going to be 78 today.

7
00:00:33,440 --> 00:00:38,440
I'm going to work outside this afternoon. Oh, how the weather is different.

8
00:00:38,440 --> 00:00:42,040
Yep. Yeah. A little bit different perspective on that one.

9
00:00:42,040 --> 00:00:47,280
Yeah. Absolutely. Well, I am so excited to have you today. Why don't you tell us a little

10
00:00:47,280 --> 00:00:51,640
bit about yourself? Obviously from Minnesota, we'll get into kind of like what you do and

11
00:00:51,640 --> 00:00:55,680
how you build, but you know, just generally sort of like what you've been up to and who

12
00:00:55,680 --> 00:01:06,320
are you? Sure. Sure. So I started my career years ago in large enterprise, you know, companies

13
00:01:06,320 --> 00:01:10,400
like GE and Siemens and Pricewaterhouse Cooper and stuff like that. And I kind of got this

14
00:01:10,400 --> 00:01:15,480
sort of itch to do my own thing. And so I've founded two startups and then got to a point

15
00:01:15,480 --> 00:01:20,400
where I couldn't really sustain that after six years and wanted to start a family. So

16
00:01:20,400 --> 00:01:26,600
I kind of like out of necessity and before the word fractional, like it was hard to explain

17
00:01:26,600 --> 00:01:32,160
what I did, but I kind of stumbled into this sort of fractional CTO sort of thing. And

18
00:01:32,160 --> 00:01:35,480
I've been doing that. I did that full time for about five years and getting back into

19
00:01:35,480 --> 00:01:41,500
it now after a little sabbatical. And yeah, so I love working with startups. I love working

20
00:01:41,500 --> 00:01:46,840
with non-technical founders. I love coaching technical founders that maybe are new to the

21
00:01:46,840 --> 00:01:53,640
startup world or maybe you're a, you know, my first client was actually a technical co-founder,

22
00:01:53,640 --> 00:01:58,240
but they were fresh out of school. And so they had a brilliant idea. They managed to

23
00:01:58,240 --> 00:02:03,720
raise money very quickly, had a big first customer right away and said, oh gosh, now

24
00:02:03,720 --> 00:02:08,800
what do we do? You know, and so, you know, it was kind of more of a coaching player coach

25
00:02:08,800 --> 00:02:13,760
sort of scenario there. But yeah, generally speaking, people who can't find can't afford

26
00:02:13,760 --> 00:02:18,480
or don't need a full time technical co-founder. Oh my gosh, I love that so much. We nerded

27
00:02:18,480 --> 00:02:22,480
out on this a little bit before we actually started the live stream. But you know, I

28
00:02:22,480 --> 00:02:25,800
think that's something that's really needed right now. And honestly, there's a lot of

29
00:02:25,800 --> 00:02:30,400
fractional types of roles and not to go out and tangent too much, but I started doing

30
00:02:30,400 --> 00:02:34,080
fractional DevRel earlier in the year as I was starting to build my business. I thought

31
00:02:34,080 --> 00:02:38,360
maybe that was the thing I wanted to chase down. Turns out I don't by any means, but

32
00:02:38,360 --> 00:02:41,880
I had to explain what fractional meant. And I thought that was kind of interesting. So

33
00:02:41,880 --> 00:02:47,200
I do agree that there's it's not as known. Do you want to maybe give folks a good idea?

34
00:02:47,200 --> 00:02:50,280
I think you sort of did in your description, but maybe just let them know what what fractional

35
00:02:50,280 --> 00:02:51,280
means to you.

36
00:02:51,280 --> 00:02:56,360
I think the hardest thing for me, you know, 10 years ago when I started doing this kind

37
00:02:56,360 --> 00:03:01,320
of work was trying to explain to people the difference between like a consultant and a

38
00:03:01,320 --> 00:03:06,560
fractional, right? A fractional is just simply not full time. That's all it means really.

39
00:03:06,560 --> 00:03:13,520
Yeah, that's true. Yeah. So if if if I'm the CTO, I'm the CTO, it just might be working

40
00:03:13,520 --> 00:03:18,200
for multiple companies because they're part time. Right. And I think that's the difference

41
00:03:18,200 --> 00:03:25,480
is that I'm part of your team. I'm there with you in the trenches. I'm not a consultant.

42
00:03:25,480 --> 00:03:30,000
I'm not, you know, whatever. I do do coaching engagements, which is more consulting sort

43
00:03:30,000 --> 00:03:35,680
of stuff too. For you know, high performing software engineering and product development,

44
00:03:35,680 --> 00:03:38,880
you know, what do we build? How do we build it? How do we operate it? Sort of stuff.

45
00:03:38,880 --> 00:03:42,400
But the fractional side of things, if it's a fractional gig, like I'm part of the team

46
00:03:42,400 --> 00:03:49,560
until such time as either I hire my full time replacement or or you don't need me anymore.

47
00:03:49,560 --> 00:03:56,920
But it's it's basically an employee sort of arrangement. Yeah. Not not just some sort

48
00:03:56,920 --> 00:04:01,560
of arms length consulting sort of thing. Right. Yep. I agree, which is why I don't want to

49
00:04:01,560 --> 00:04:07,320
do it. Like, it's for, you know, there's everything, you know, everyone has their different roles.

50
00:04:07,320 --> 00:04:11,640
I think in a CTO space, I could say it would be really, really great opportunity in a DevRel

51
00:04:11,640 --> 00:04:16,520
space, which already has a lot of sort of who's talking to who is product talking to

52
00:04:16,520 --> 00:04:20,880
marketing is marketing topic talking to sales, do they know what's happening with DevRel

53
00:04:20,880 --> 00:04:24,760
and developer relations? And that's already sort of a political nightmare and to come

54
00:04:24,760 --> 00:04:29,760
in part time and try to chase down that nightmare is not not as fun. But I think, you know,

55
00:04:29,760 --> 00:04:33,520
in a CTO realm, I can see that be a really beautiful, rewarding role.

56
00:04:33,520 --> 00:04:39,600
Yeah. Yeah. Like I said, it's really just about I love rolling up my sleeves and being

57
00:04:39,600 --> 00:04:44,680
part of the team. And and I love earlier stage companies because you get to play so many

58
00:04:44,680 --> 00:04:49,240
hats. You get to to get involved in the business, which, you know, I kind of believe that, you

59
00:04:49,240 --> 00:04:53,480
know, every software engineer, you're with every line of code you write, you're placing

60
00:04:53,480 --> 00:04:57,160
bets on behalf of the business. And if you aren't like fully in tune with what the business

61
00:04:57,160 --> 00:05:03,320
is doing, even as a junior debt, like as much as you can learn about what the business

62
00:05:03,320 --> 00:05:10,320
is doing. And when I'm working with CEOs and senior leaders, like my advice to them is

63
00:05:10,320 --> 00:05:17,600
just spew your thoughts like help the team understand how you think, help the team understand

64
00:05:17,600 --> 00:05:21,960
what do you want to be when you grow up? What is this company going to do? How do we approach

65
00:05:21,960 --> 00:05:28,400
all this stuff? Because the way that you're thinking about it influences the code people

66
00:05:28,400 --> 00:05:33,760
right, you know? And so if if if you're working, you know, like I said, even even as a junior

67
00:05:33,760 --> 00:05:40,920
debt, the more you can understand about where we're going and why, the better code you're

68
00:05:40,920 --> 00:05:43,520
going to write, you're going to make better decisions, you know?

69
00:05:43,520 --> 00:05:47,240
Yep. And you're going to be more invested, right? I don't know about you, but for me,

70
00:05:47,240 --> 00:05:50,880
like when I hear some vision and it's like, okay, I'm thinking about this today, but here's

71
00:05:50,880 --> 00:05:55,080
where I'm going in five years or two years or whatever it looks like, I get excited.

72
00:05:55,080 --> 00:05:58,960
Like if I'm invested and I care about it, I get excited and I'm like, okay, you tell

73
00:05:58,960 --> 00:06:03,280
me how to get you there, right? Like how do we do this together? So I fully agree. And

74
00:06:03,280 --> 00:06:07,480
I think I was just at a conference last week, which we were talking about how you had watched

75
00:06:07,480 --> 00:06:11,480
yesterday's live stream. So you heard about this of actually a dev who was really like,

76
00:06:11,480 --> 00:06:15,800
I really think we're making bad decisions. And it was one of those scenarios. It's like,

77
00:06:15,800 --> 00:06:20,080
I don't think that enough developers find their way into those business conversations

78
00:06:20,080 --> 00:06:25,080
or are exposed to those business conversations to really start to understand that and apply

79
00:06:25,080 --> 00:06:28,440
that and bring that into their day to day, which I think is a missed opportunity.

80
00:06:28,440 --> 00:06:33,680
Yeah, absolutely. So like my favorite scenario, which is exactly kind of what you're talking

81
00:06:33,680 --> 00:06:40,000
about is like, you've got the typical situation, right? Where, you know, you've got a CEO or

82
00:06:40,000 --> 00:06:44,160
a product leader or something like that who's like, oh, we got to go faster again. And the

83
00:06:44,160 --> 00:06:48,360
software engineers are like, oh, but I have to make it perfect. I have to make it really

84
00:06:48,360 --> 00:06:52,320
good. I have to spend extra time. And it's like the answer is probably somewhere in between.

85
00:06:52,320 --> 00:06:58,440
Yep. But if everybody's invested in where we're going and why, then those conversations

86
00:06:58,440 --> 00:07:03,920
get a lot easier because the conversation becomes not about making this perfect software

87
00:07:03,920 --> 00:07:07,240
that's beautiful and that we like to look at six months from now, which almost never

88
00:07:07,240 --> 00:07:12,560
happens no matter how hard you try really, right? Yeah, but it becomes where are we going

89
00:07:12,560 --> 00:07:17,360
and why and what's the best way to approach that. And so, you know, one of the things

90
00:07:17,360 --> 00:07:23,360
that I don't think I've ever figured out until I started my own business and start like,

91
00:07:23,360 --> 00:07:33,040
oh, that's why this matters, right? Is like, when do you take shortcuts? Yes, yes, I couldn't

92
00:07:33,040 --> 00:07:38,120
let myself take shortcuts. And I think early in my career, my managers got really frustrated

93
00:07:38,120 --> 00:07:41,880
at me for that, right? Because I wanted to make it perfect. And they're like, no, just

94
00:07:41,880 --> 00:07:46,080
get it done. And I never understood, because I didn't want to deal with that two years from

95
00:07:46,080 --> 00:07:50,480
now or whatever. And the reality is, if the company doesn't survive for two years, it does

96
00:07:50,480 --> 00:07:56,400
not matter what you have to deal with in two years, right? Yes. That was like, that was

97
00:07:56,400 --> 00:08:00,840
something one of those like, I wish somebody had taught me as a junior dev or figured out

98
00:08:00,840 --> 00:08:07,760
how to get through my thick skull. Yes. Junior dev of like, why sometimes it's okay. And

99
00:08:07,760 --> 00:08:13,560
even like if you come into a scenario, you know, nerds, our favorite thing is to walk

100
00:08:13,560 --> 00:08:18,080
into the room and look at the code and be like, well, I didn't write it. So that's crap,

101
00:08:18,080 --> 00:08:27,680
right? And it's like, the reality is that code, that code got us where we are. And if

102
00:08:27,680 --> 00:08:33,640
you know, so many businesses just don't survive, you know, my first startup total, total failure,

103
00:08:33,640 --> 00:08:38,480
I went three years, I learned a ton, but that code's gone, right? Nobody's going to see

104
00:08:38,480 --> 00:08:44,280
that code again ever. And it doesn't matter how perfect it was, the business didn't survive.

105
00:08:44,280 --> 00:08:49,000
So if you're not making choices based on what the business needs right now, even if that

106
00:08:49,000 --> 00:08:55,240
means taking ugly, packy shortcuts sometimes, intentionally understanding the impact, right,

107
00:08:55,240 --> 00:09:00,400
placing the bet, then it doesn't matter. Yep. Oh my gosh, what you said, I was just

108
00:09:00,400 --> 00:09:07,520
over here like, yes, yes, which you can obviously tell, but I started my business back in April.

109
00:09:07,520 --> 00:09:11,480
So it's been, you know, I don't know, however long that's been, it's been a hot minute.

110
00:09:11,480 --> 00:09:15,840
I have that problem. I have the, I need to reach perfection problem. And I couldn't figure

111
00:09:15,840 --> 00:09:20,880
out and I've struggled with it my entire life as a dev also. I just, I couldn't figure out

112
00:09:20,880 --> 00:09:25,080
I'm like, oh, I just feel like I'm delivering such greatness. And my coach was like, Hey,

113
00:09:25,080 --> 00:09:30,280
I get it. But you know, you're probably delivering too much, right? Like they're looking for,

114
00:09:30,280 --> 00:09:34,200
Hey, I need insights on this, this event that's coming up. And they maybe want something

115
00:09:34,200 --> 00:09:37,080
that's a quick turnaround, right? Here's how you approach it. Here's you go talk to you.

116
00:09:37,080 --> 00:09:40,960
Here's your, you know, your whole focus. Here's the goal, right? Here's what you're going

117
00:09:40,960 --> 00:09:44,520
after. And instead I'm like, here's a 10 page strategy doc on how you're going to go to

118
00:09:44,520 --> 00:09:47,240
this event and how you're going to show up and who you should talk to and why. And it's

119
00:09:47,240 --> 00:09:52,520
like, they don't need all that, right? And I think as a dev, I constantly did the same

120
00:09:52,520 --> 00:09:56,900
thing. I was like, everything had to be perfect. It had to be pixel perfect, like literally

121
00:09:56,900 --> 00:10:02,040
pixel perfect, because I was more on the front end side. And it took longer. It took more

122
00:10:02,040 --> 00:10:06,200
time, but I felt better about that. And I think that that's great and all. But like

123
00:10:06,200 --> 00:10:11,360
you said, sometimes businesses don't survive. And sometimes you need all those strategic

124
00:10:11,360 --> 00:10:16,760
insights to be able to say, Hey, I have this ticket. I know that this is something that's

125
00:10:16,760 --> 00:10:21,400
sort of small. This isn't necessarily a priority for us in the future. This is sort of a, maybe

126
00:10:21,400 --> 00:10:25,000
it's a patch, right? Whatever the situation is, to be able to say, Hey, you know what,

127
00:10:25,000 --> 00:10:31,280
I can put my 75% in my 80% in, right? It doesn't have to be at 100.

128
00:10:31,280 --> 00:10:35,520
I would almost re characterize that it's not as though you're not putting 100%. It's what

129
00:10:35,520 --> 00:10:43,920
you're optimizing for, right? I'm always super passionate about what we're doing, right?

130
00:10:43,920 --> 00:10:48,080
But what am I optimizing for? Am I optimizing for speed? Am I optimizing for quality? Am

131
00:10:48,080 --> 00:10:54,040
I optimizing for UX? Am I optimizing for, you know, what is that? Right? And that's the

132
00:10:54,040 --> 00:11:03,040
conversation. And so it's not about phoning it in. It's not about being, you can still

133
00:11:03,040 --> 00:11:07,480
be a perfectionist. This is kind of how I solve the puzzle in my brain, right? I'm a

134
00:11:07,480 --> 00:11:12,920
perfectionist. Change the definition of perfection to match the need at the time. That's what

135
00:11:12,920 --> 00:11:18,760
it is, right? Yes. So, you know, and I still have trouble with it. I still like, I just

136
00:11:18,760 --> 00:11:25,120
can't let it go. And every now and then somebody will be like, dude, just commit. Okay, that

137
00:11:25,120 --> 00:11:29,920
happened yesterday, actually. But like, you know, that's still a thing. But, but yeah,

138
00:11:29,920 --> 00:11:34,640
you just have to, you have to change the definition of the objective. And again, that's why the

139
00:11:34,640 --> 00:11:41,720
business context matters. Because that helps you as your, you know, super anal perfectionist

140
00:11:41,720 --> 00:11:47,920
engineer mind square away the fact that I'm going to hack this and shit that, right? Yep.

141
00:11:47,920 --> 00:11:53,360
Because I'm shooting for perfection of a business. I want to get that extra funding. I need

142
00:11:53,360 --> 00:11:59,040
to get to that release. I need to, because I understand why that's important, right?

143
00:11:59,040 --> 00:12:04,040
I love that angle even more. You're still, you're still contributing your 100%. You're

144
00:12:04,040 --> 00:12:08,200
still feeling like you're reaching that perfectionist level that you want to be at. But you're

145
00:12:08,200 --> 00:12:13,160
focusing that energy in the right direction. Exactly. And like I said, it didn't get through

146
00:12:13,160 --> 00:12:19,600
my skull until I actually own my own business. But if there's like a way for other people

147
00:12:19,600 --> 00:12:26,440
to like, somehow, you know, grok that in a, in a way that doesn't require you to, you

148
00:12:26,440 --> 00:12:30,120
know, take all your life savings and put it in a trash can and light it on fire, then,

149
00:12:30,120 --> 00:12:33,360
then, then you'll be ahead of me.

150
00:12:33,360 --> 00:12:39,320
We are so relatable right now. All right. Digressing from our dumpster fires, which

151
00:12:39,320 --> 00:12:45,120
are all great lessons for everyone to learn, right? We talked about, you know, what you

152
00:12:45,120 --> 00:12:48,440
do, do you have an official title or company? Do you work for yourself?

153
00:12:48,440 --> 00:12:57,560
Yeah, independent and yeah, just, you know, fractional CTO and product development coach.

154
00:12:57,560 --> 00:13:01,080
Love it. Well, we talked about earlier before we got in the live stream that you got to

155
00:13:01,080 --> 00:13:06,600
spend the last six months remodeling your house, which is a nice little break. So with

156
00:13:06,600 --> 00:13:08,920
that, what are you diving into these days?

157
00:13:08,920 --> 00:13:15,640
Yeah, so I'm actually back working in a Ruby on Rails project with a client that I've worked

158
00:13:15,640 --> 00:13:22,880
with off and on for 10 years. And it's really awesome. You know, I love, I've worked in

159
00:13:22,880 --> 00:13:27,440
a lot of different languages and a lot of different frameworks. And they all, you know,

160
00:13:27,440 --> 00:13:31,560
they're all tools. They were all built by somebody to solve a problem. And so they all

161
00:13:31,560 --> 00:13:37,440
have utility and it's all different ways. But I got to say, you know, Ruby as a language

162
00:13:37,440 --> 00:13:44,040
is so elegant. Rails is so, you know, I love the idea of opinionated software. And I think

163
00:13:44,040 --> 00:13:49,000
Rails has done that as well or better than anybody else. And so is it the right tool

164
00:13:49,000 --> 00:13:53,000
for every job? Absolutely not. But I love it when I get to play with it.

165
00:13:53,000 --> 00:13:58,200
Yeah. What do you feel like is that so I don't have as much exposure to, you know, Ruby and

166
00:13:58,200 --> 00:14:03,040
Ruby on Rails generally. I know many devs who build with it and the ones that do just

167
00:14:03,040 --> 00:14:08,520
love it. And they are like, they swear by it. And so I haven't had the chance to actually

168
00:14:08,520 --> 00:14:11,800
sit down and be like, why, why do you spare by it? So tell me like, what, I mean, what,

169
00:14:11,800 --> 00:14:16,600
what is it about sort of that stack that really just you feel like is so powerful, but more

170
00:14:16,600 --> 00:14:20,440
so, where do you feel like it plays the best role in what you're building? Because like

171
00:14:20,440 --> 00:14:24,760
you would said, it's not the job that the tool is not the tool for everything.

172
00:14:24,760 --> 00:14:31,600
Honestly, the way that I think about it in my mind is that there's a dichotomy between

173
00:14:31,600 --> 00:14:39,480
Ruby the language and Rails the framework. So Ruby itself is like, it's, you know, people

174
00:14:39,480 --> 00:14:45,720
compared to Lisp, things like that. It's like this crazy, crazy expressive language, right?

175
00:14:45,720 --> 00:14:51,680
I feel like, and that's that's a double-edged sword a little bit. On one hand, I could probably

176
00:14:51,680 --> 00:14:58,500
take an RB file, I could hand it to my grandmother and she could probably read it and have a

177
00:14:58,500 --> 00:15:04,480
clue about what it does because a good Ruby developer, it almost looks like natural language

178
00:15:04,480 --> 00:15:09,560
like Ruby itself, that you don't need any, you know, people talk about creating DSLs

179
00:15:09,560 --> 00:15:14,120
for certain domain specific languages, things like that. Ruby just is that, right? You don't

180
00:15:14,120 --> 00:15:20,400
need that because the language itself is so expressive. On the flip side, when you first

181
00:15:20,400 --> 00:15:24,440
starting out, I remember when I first started it, I found it was very hard to write because

182
00:15:24,440 --> 00:15:31,000
it's literally a blank page, like it is so expressive that it's hard to understand. So

183
00:15:31,000 --> 00:15:35,800
Ruby itself has this crazy capability that's a little bit hard to wrap your brain around

184
00:15:35,800 --> 00:15:40,280
and then you throw Rails on top of it, which is your, you know, your web framework for,

185
00:15:40,280 --> 00:15:45,280
you know, APIs and web pages and database access and all this other stuff. And that's

186
00:15:45,280 --> 00:15:53,440
all crazy opinionated about how you do things, which is what saves your butt from Ruby's

187
00:15:53,440 --> 00:16:00,760
like, like it's so hard to figure out what to do with Ruby sometimes because it's so

188
00:16:00,760 --> 00:16:11,200
expressive. Rails says, do it this way. And that tension is amazing. And then the other

189
00:16:11,200 --> 00:16:18,040
piece about Ruby that's really interesting is that Ruby being interpreted language has

190
00:16:18,040 --> 00:16:26,480
the ability to do things with like a lot of the best libraries and stuff, active record

191
00:16:26,480 --> 00:16:34,240
is there, ORM, for example, like you can have a class that is just class user and that's

192
00:16:34,240 --> 00:16:40,360
the entire class. And if you go define the rows in the, or the columns in the database

193
00:16:40,360 --> 00:16:44,960
table at runtime, it has all the getters and setters for all those attributes automatically

194
00:16:44,960 --> 00:16:49,560
as well as all the persistence methods and all that other stuff. So Ruby has this ability

195
00:16:49,560 --> 00:16:54,400
to actually take a class and modify it at runtime. And that's a lot of how Rails works,

196
00:16:54,400 --> 00:17:00,200
which gives Rails a whole bunch of crazy capabilities that when I first started doing it, coming

197
00:17:00,200 --> 00:17:06,640
from languages like Java and dot net, things like that, I thought was insane and dangerous.

198
00:17:06,640 --> 00:17:11,680
And but, but again, the Rails community is so opinionated on exactly how you use that

199
00:17:11,680 --> 00:17:18,400
power that that's how it works. So it doesn't have a lot of safety nets in the language,

200
00:17:18,400 --> 00:17:24,520
but the community has built these crazy strong conventions that are really powerful. And

201
00:17:24,520 --> 00:17:31,600
it's, it's a very different way of approaching problems from Java, right?

202
00:17:31,600 --> 00:17:38,280
And, and it has pros and cons. But when it works, it's beautiful. Like, like it's, it's,

203
00:17:38,280 --> 00:17:46,240
it's generally easier to, to if you have a experienced Ruby Dev to show up on a new project

204
00:17:46,240 --> 00:17:52,200
and be productive the first day. I've personally done that. I've seen it. I've hired people

205
00:17:52,200 --> 00:17:59,400
who've done that. It's there. The conventions are so strong in that community that you can

206
00:17:59,400 --> 00:18:04,480
be productive almost immediately, like walking into a Rails app is walking into any Rails

207
00:18:04,480 --> 00:18:11,080
app by and large, right? And then kind of get into my, my next favorite catch phrase,

208
00:18:11,080 --> 00:18:16,200
which is I love tools that make easy things easy and make hard things. And I think Rails

209
00:18:16,200 --> 00:18:20,200
fits that well. Easy things are easy. Hard things are possible.

210
00:18:20,200 --> 00:18:24,480
Right? Oh, that's great. Okay. So follow up to that.

211
00:18:24,480 --> 00:18:28,880
I'm so excited. I'm so excited about Ruby, honestly. I'm like, hmm, so I have a future

212
00:18:28,880 --> 00:18:32,800
guest in a couple of weeks coming on. His name is Brian Castle and he does. He just launched

213
00:18:32,800 --> 00:18:36,000
this. Do you know who that is? I know the name. Yeah.

214
00:18:36,000 --> 00:18:40,680
Okay. So he, he, I don't know when he launched it by Metamint events many years ago. And

215
00:18:40,680 --> 00:18:43,960
I've known him for a number of years, but he has like an app in a month kind of a vibe

216
00:18:43,960 --> 00:18:48,080
service where he's offering. And it's like, he'll come in and it's like on a weekly basis,

217
00:18:48,080 --> 00:18:51,600
he's contributing to the SaaS product that you want to try to build out, right? Can you,

218
00:18:51,600 --> 00:18:54,920
can you get to where you want your app to be? And then I just thought it was so interesting.

219
00:18:54,920 --> 00:18:59,320
And now that you told me about Ruby and, and like Rails and how they come together and,

220
00:18:59,320 --> 00:19:02,760
and the power there makes tons of sense because that's what he's using. And that's what he

221
00:19:02,760 --> 00:19:07,960
like, he just thinks that it is awesome. And he's not a dev by trade. He actually came

222
00:19:07,960 --> 00:19:11,240
in from sort of a different industry, but has been in SaaS and building these different

223
00:19:11,240 --> 00:19:14,880
things. And so now I'm like, Oh, I can't wait to talk to Brian because I think he'll have

224
00:19:14,880 --> 00:19:18,880
very similar sentiment, but also have sort of thoughts on what he's building and how

225
00:19:18,880 --> 00:19:25,560
that's coming into play. So follow up on the, that, where do you think that that stack is

226
00:19:25,560 --> 00:19:29,280
the most lucrative for building, right? Like when would you choose to use that versus maybe

227
00:19:29,280 --> 00:19:31,640
something else?

228
00:19:31,640 --> 00:19:38,760
That's such a hard question. I think, well, so, so I mean, here's the thing, like as much

229
00:19:38,760 --> 00:19:43,680
as I love it, the reality is, is that, you know, practitioners of Ruby and Rails have

230
00:19:43,680 --> 00:19:50,400
been generally, I think in the decline. And so, you know, I think a lot of that has to

231
00:19:50,400 --> 00:19:54,120
do with talking with the founder about what they want to be when they grow up, what is

232
00:19:54,120 --> 00:20:01,080
the company going to be and the culture that they want, right? So, you know, all of the

233
00:20:01,080 --> 00:20:07,200
different languages and frameworks each kind of carry their own culture, which on, you

234
00:20:07,200 --> 00:20:11,440
know, which, which, which on the good side is they bring their own superpowers and they

235
00:20:11,440 --> 00:20:16,560
vary by language. On the flip side, they bring their own baggage, right? And so the baggage

236
00:20:16,560 --> 00:20:20,880
in the Rails community is that the language is does not seem to be growing, which is a

237
00:20:20,880 --> 00:20:27,600
bummer. And the practitioners, the, I would, I would probably say the average Rails practitioner

238
00:20:27,600 --> 00:20:33,080
tends to be very, very highly skilled, very passionate about software engineering and

239
00:20:33,080 --> 00:20:37,240
very, they tend to be, they tend to value productivity. Those are all great things.

240
00:20:37,240 --> 00:20:41,960
They also tend to be expensive. They tend to be hard to find, you know, things like

241
00:20:41,960 --> 00:20:47,360
that. And so it's, it's all kind of a question of what's the right tool for what do you want

242
00:20:47,360 --> 00:20:52,520
to be? You're placing a bet again. Where do you want to be? You know, JavaScript developers,

243
00:20:52,520 --> 00:20:57,880
JavaScript developers are everywhere. And a lot of them are fantastic. And the tools

244
00:20:57,880 --> 00:21:03,120
are so ubiquitous that it's really hard to argue against picking something that has that

245
00:21:03,120 --> 00:21:10,800
kind of inertia and momentum, right? So, you know, you're making those kinds of conversations.

246
00:21:10,800 --> 00:21:16,640
But if you've got a case where, you know, you don't mind trying to find those rare,

247
00:21:16,640 --> 00:21:22,400
very highly sought after engineers, and you've got a business case that is compelling and

248
00:21:22,400 --> 00:21:28,680
interesting to that kind of culture, right? Then, you know, maybe that's the right choice

249
00:21:28,680 --> 00:21:34,360
for you because you can build a culture that can innovate quickly and can do a lot of interesting

250
00:21:34,360 --> 00:21:40,920
things that, that maybe are harder to do, not impossible, but harder to do in other languages.

251
00:21:40,920 --> 00:21:45,400
See, now I'm really turned down by it because that would definitely be what, you know, I'm,

252
00:21:45,400 --> 00:21:49,520
I'm, as I'm sure you can relate to, right, the perfectionist vibe productivity. I'm

253
00:21:49,520 --> 00:21:54,240
trying to be efficient and maximize every day all day. And so to me, that's, that sounds

254
00:21:54,240 --> 00:21:58,640
really, really beautiful. So we actually talked about this topic a little bit before we went

255
00:21:58,640 --> 00:22:03,160
live. And we're kind of derailed from the questions that I really asked. But honestly,

256
00:22:03,160 --> 00:22:07,200
that's okay, because this is such a great conversation. We talked about how all these

257
00:22:07,200 --> 00:22:11,080
different language and different technical stack communities vary in so many ways. And

258
00:22:11,080 --> 00:22:15,160
I fully agree. But I'd love to like kind of dive into that a bit, right? You just sort

259
00:22:15,160 --> 00:22:18,400
of shared with us what Ruby, the vibes you get from Ruby, which I'm going to go hang

260
00:22:18,400 --> 00:22:22,000
out with some Ruby devs, they sound like my people. But you know, a lot of what we get

261
00:22:22,000 --> 00:22:27,360
in sort of the JavaScript ecosystem is going to be more of, you know, it's just like younger,

262
00:22:27,360 --> 00:22:31,760
it's Hipper, it's, I don't know, they're just doing, they're doing sort of different things.

263
00:22:31,760 --> 00:22:35,720
And I'd love to sort of talk through what you think you see, and kind of cross that

264
00:22:35,720 --> 00:22:39,680
with maybe some of the things that I see, as we talk about different languages. So you

265
00:22:39,680 --> 00:22:42,120
would mention some of the other communities you're a part of, do you want to start maybe

266
00:22:42,120 --> 00:22:44,600
sharing some of those and things you've witnessed?

267
00:22:44,600 --> 00:22:50,600
Yeah, I mean, you know, I've done, I spent a huge chunk of my career in Java, I've spent

268
00:22:50,600 --> 00:22:55,480
a good chunk in that net, I've done a lot of JavaScript, I mean, that's kind of almost

269
00:22:55,480 --> 00:23:01,920
in some ways the OG, right? I mean, that language goes back to the 90s. And, you know, and I

270
00:23:01,920 --> 00:23:08,040
worked at a Golang shop, you know, Python. So, you know, I've kind of covered a lot of

271
00:23:08,040 --> 00:23:16,120
the usual suspects. JavaScript and TypeScript are both, you know, I think they're on such

272
00:23:16,120 --> 00:23:21,560
a tear in terms of popularity, in terms of usefulness, in terms of maturity. One of the

273
00:23:21,560 --> 00:23:27,520
things that I think is really, really cool over the last few years is JavaScript as a

274
00:23:27,520 --> 00:23:34,480
general purpose, especially back end, but even on the front end, language has really

275
00:23:34,480 --> 00:23:39,400
started maturing. I think the interesting thing is that JavaScript is still carrying

276
00:23:39,400 --> 00:23:44,480
and seems to be still struggling to figure out how to jettison the baggage of being a

277
00:23:44,480 --> 00:23:48,880
scripting language from the 90s. Yeah.

278
00:23:48,880 --> 00:23:53,320
And there's so much baggage that comes with this, all the transpiling, all of the, you

279
00:23:53,320 --> 00:24:00,160
know, memory issues, the way the event loop works is much, much better than it used to

280
00:24:00,160 --> 00:24:06,400
be. But, you know, async await and promises and things like that, that are, you know,

281
00:24:06,400 --> 00:24:11,600
concepts that, you know, I wasn't part of the working groups that developed those, but

282
00:24:11,600 --> 00:24:20,000
they feel to me very much like they were trying to, you know, I don't want to say polish a

283
00:24:20,000 --> 00:24:24,560
turd, but in the sense like they were trying to take this language that was never designed

284
00:24:24,560 --> 00:24:29,960
to do what they wanted to do with it. But because of backward compatibility, because

285
00:24:29,960 --> 00:24:34,200
the runtimes are in every browser out there on every computer on the internet, and you

286
00:24:34,200 --> 00:24:38,200
can't just go magically snap your fingers and change all that, they had to have all of these

287
00:24:38,200 --> 00:24:46,960
backward compatibility features in the language. And so they've tried so hard to grow and develop

288
00:24:46,960 --> 00:24:52,880
and mature this language while doing, you know, have their cake and eat it too. And it's

289
00:24:52,880 --> 00:24:58,040
really created a lot of complexity in that space. And then the other pieces, the JavaScript

290
00:24:58,040 --> 00:25:06,480
as a community seems very, you know, a little bit, what's the word I'm looking for? I don't

291
00:25:06,480 --> 00:25:07,480
know.

292
00:25:07,480 --> 00:25:09,200
I was trying to find the word too.

293
00:25:09,200 --> 00:25:12,360
Is fad driven fashionable the right term? I'm not sure.

294
00:25:12,360 --> 00:25:13,360
Trendy.

295
00:25:13,360 --> 00:25:19,880
But front end frameworks, I'm so happy that React is finally kind of becoming almost a

296
00:25:19,880 --> 00:25:25,920
de facto standard because for so long there, the front end frameworks didn't last a handful

297
00:25:25,920 --> 00:25:31,400
of years. Every code base, every, if you're thinking about from a business perspective,

298
00:25:31,400 --> 00:25:35,560
I mean, technical debt is something every company has to deal with. But can you imagine

299
00:25:35,560 --> 00:25:40,440
building a product where in two years, you're almost guaranteed that all your front end code

300
00:25:40,440 --> 00:25:48,080
is obsolete just because JavaScripters decided that Mu wasn't cool anymore. Right. You know,

301
00:25:48,080 --> 00:25:55,120
it's really frustrating from a business perspective. So I'm really happy to see the typescript

302
00:25:55,120 --> 00:26:00,200
and JavaScript community, you know, finally getting to some level of maturity. There's

303
00:26:00,200 --> 00:26:06,520
still, I think, a ways to go to make it truly productive as it could be and as robust as

304
00:26:06,520 --> 00:26:11,040
it could be. But it's making a lot of really good strides. I've done a few JavaScript and

305
00:26:11,040 --> 00:26:18,720
typescript projects over the last five years that started feeling a lot better as an engineer,

306
00:26:18,720 --> 00:26:20,400
you know, sort of thing.

307
00:26:20,400 --> 00:26:24,120
That's awesome. That's good to hear. How does that compare, obviously, to like.NET and

308
00:26:24,120 --> 00:26:29,560
Java, right? And then also, as you compare Java and.NET individually in themselves,

309
00:26:29,560 --> 00:26:31,600
like what differences do you see?

310
00:26:31,600 --> 00:26:37,600
So Java, I think, my experience there, because it's not used by a lot of startups, but I

311
00:26:37,600 --> 00:26:41,360
have worked with some larger companies over the last few years and gotten a little experience.

312
00:26:41,360 --> 00:26:48,880
I love what Java, Java has been trying to fold in more like historically, it was there

313
00:26:48,880 --> 00:26:56,960
was so much boilerplate. It was so, you know, highly structured. It was so, you know, earlier

314
00:26:56,960 --> 00:27:04,280
in the Java days, it was all about we need to build the most capable mousetrap possible.

315
00:27:04,280 --> 00:27:11,320
And so everything was possible, which meant that you needed to know, you know, every possible,

316
00:27:11,320 --> 00:27:18,400
you know, configuration option in that, you know, JEE server configuration file and all

317
00:27:18,400 --> 00:27:23,840
of that. You had to lead through and create, you know, hundreds of lines of XML in order

318
00:27:23,840 --> 00:27:28,080
to get things to run it all. And, you know, so much boilerplate, it was so painful. And

319
00:27:28,080 --> 00:27:31,280
I think over the years, they finally kind of started doing it. You get things like

320
00:27:31,280 --> 00:27:35,920
spring boots and things like that that are, I think, pulling a lot of great ideas from

321
00:27:35,920 --> 00:27:42,080
languages like JavaScript and Ruby and stuff like that. And.NET is very similar as well.

322
00:27:42,080 --> 00:27:46,160
What I love about what.NET's been doing lately is we're finally getting out of the world.

323
00:27:46,160 --> 00:27:52,240
Microsoft, I think, really suffered from coming up in a world where commercial software was

324
00:27:52,240 --> 00:27:54,240
all there was. Yeah.

325
00:27:54,240 --> 00:27:59,840
And so for so long, the Microsoft community, the.NET community, like if it didn't come

326
00:27:59,840 --> 00:28:04,560
from Microsoft, or if you weren't paying tens of thousands of dollars a year for a license,

327
00:28:04,560 --> 00:28:06,760
then it was crap. Yep.

328
00:28:06,760 --> 00:28:14,640
And, you know, that has taken literally like a decade plus to evolve. But, you know, the

329
00:28:14,640 --> 00:28:18,480
current CEO of Microsoft is much more into the open source game. You got things like

330
00:28:18,480 --> 00:28:23,080
VS Code, which are pretty amazing. So I think that's all been shifting. You're starting

331
00:28:23,080 --> 00:28:29,880
to see more acknowledgement and widespread adoption of true open source projects in the

332
00:28:29,880 --> 00:28:35,240
.NET world. I've been talking with a company the past couple of weeks here that is a.NET

333
00:28:35,240 --> 00:28:41,280
startup. And so I'm kind of excited about getting my feet wet again in that world because

334
00:28:41,280 --> 00:28:47,120
I'm a little bit rustic. But it's pretty, I think that's shifting quite a bit. It's

335
00:28:47,120 --> 00:28:52,920
really interesting. I've always loved Microsoft's developer tools. Their IDEs were fantastic.

336
00:28:52,920 --> 00:29:00,800
I started my career in Visual Basic and I remember going to some of the earlier Java

337
00:29:00,800 --> 00:29:04,320
things like that. And I'd be like, well, where's the step through debugger? And everybody

338
00:29:04,320 --> 00:29:09,360
looked at me like I had three heads. I mean, that's how far back this stuff goes, right?

339
00:29:09,360 --> 00:29:14,120
And now it's like one of those things that nobody lives without. But Microsoft was doing

340
00:29:14,120 --> 00:29:18,320
that in C++ and VB way back.

341
00:29:18,320 --> 00:29:23,640
Yeah. It's really interesting. So when I first started getting into coding, it was like back

342
00:29:23,640 --> 00:29:29,000
in like, I want to say like 2007, at least professionally, right? I did it as a high

343
00:29:29,000 --> 00:29:32,280
schooler. I was building random stuff, trying to figure out how I can learn. I feel like

344
00:29:32,280 --> 00:29:38,280
a lot of us, right? And as nerds, we are always sort of diving into those types of things.

345
00:29:38,280 --> 00:29:41,720
But it's interesting when I first came into the ecosystem and have been working and like

346
00:29:41,720 --> 00:29:45,040
understanding and I had a great conversation about this is like understanding the system

347
00:29:45,040 --> 00:29:49,000
at which you're building with. And I think a long time ago, like earlier, like what you're

348
00:29:49,000 --> 00:29:53,480
referring to, right? I didn't quite hit it. But it's like in that sort of vein of earlier

349
00:29:53,480 --> 00:29:58,480
days of software development, it was just easier. It was easier, but it was harder, right? It

350
00:29:58,480 --> 00:30:01,280
was harder because you were building more. It was more complex. There was more things

351
00:30:01,280 --> 00:30:05,800
to manage, more things to think about. But at the same time, like I was, so this is going

352
00:30:05,800 --> 00:30:09,920
to like air my, my dev chops. The other day, I was like, okay, I'm going to make an XJS

353
00:30:09,920 --> 00:30:12,920
site. And I was like pulling stuff together. And I've been a leader for like five years

354
00:30:12,920 --> 00:30:17,840
and it hasn't been on a CTO level. So I haven't been necessarily in a whole lot of code of

355
00:30:17,840 --> 00:30:21,440
this one more in technique, technological conversations. And I just like couldn't even

356
00:30:21,440 --> 00:30:25,880
troubleshoot stuff. And I'm like, just bring me back to my PHP stack where I'm like, I

357
00:30:25,880 --> 00:30:29,760
understand how SQL works. I understand how everything works. And like, I know my system

358
00:30:29,760 --> 00:30:33,480
where in these, these newer technologies, they're beautiful. It saves me so much time.

359
00:30:33,480 --> 00:30:38,880
I had a website up in hours, right? But then I also feel like I'm, I feel more imposter

360
00:30:38,880 --> 00:30:42,960
syndrome that I don't understand everything that's going on. And I think for me, it was

361
00:30:42,960 --> 00:30:46,120
just a great conversation. And you talking about all this really sheds light on that

362
00:30:46,120 --> 00:30:50,240
too of looking at sort of JavaScript compared to some of these other languages and, and

363
00:30:50,240 --> 00:30:55,440
how, you know, that just this lack of system understanding, I think is something that's

364
00:30:55,440 --> 00:31:00,120
a pain when you're looking in sort of the JavaScript ecosystems in comparison to others.

365
00:31:00,120 --> 00:31:06,120
I don't know if you feel or resonate with that, but yeah, I have a lot of thoughts, right?

366
00:31:06,120 --> 00:31:13,280
But it's, there's so many pros and cons to the whole thing. So like, so my degree is,

367
00:31:13,280 --> 00:31:19,720
is I called it technology and communication. As in, I actually invented that title. I actually

368
00:31:19,720 --> 00:31:27,520
mashed up a computer science minor and a communications minor. And because I was really interested.

369
00:31:27,520 --> 00:31:33,640
So, you know, we're in the wayback machine now, like, Netscape was brand new, right?

370
00:31:33,640 --> 00:31:39,000
You know, the World Wide Web was something most people hadn't used yet, right? I'm old.

371
00:31:39,000 --> 00:31:46,240
And, and, but, but like, I love the idea that technology serves a purpose to humanity.

372
00:31:46,240 --> 00:31:49,160
Like, like this is something that changes the way we live.

373
00:31:49,160 --> 00:31:56,280
Yep. Right. And like, one of my absolute best friends in the entire world is the kind of

374
00:31:56,280 --> 00:32:02,280
guy who you can, you know, he likes, he likes, you know, shove him in a closet, give him

375
00:32:02,280 --> 00:32:09,800
a hard project. And once a month, you open the door, rainbows and unicorns come out,

376
00:32:09,800 --> 00:32:13,960
you shove in pizza and Mountain Dew and you shut the door as quick as you can, because,

377
00:32:13,960 --> 00:32:20,160
you know, he melts in sunlight, right? Like he loves the tech for the tech. And that is

378
00:32:20,160 --> 00:32:26,240
so cool, right? But that's not me. I'm more interested in like, what did you do for people?

379
00:32:26,240 --> 00:32:33,120
Out here? Yes. You need both of those. But like, that's where I come from is this sort

380
00:32:33,120 --> 00:32:36,120
of, and that's part of why I gravitate a lot to the business problem is like, what are

381
00:32:36,120 --> 00:32:43,360
we trying to accomplish here? What are we really trying to do for people? And so to me, that's

382
00:32:43,360 --> 00:32:48,960
such a big piece of the whole puzzle that that it kind of influences a lot of what I

383
00:32:48,960 --> 00:32:54,920
do with that. And so when you start talking about kind of getting back to the question

384
00:32:54,920 --> 00:33:00,000
you really asked, like, like, I don't technically I technically have a computer science related

385
00:33:00,000 --> 00:33:08,640
degree. And that's useful. I use bits of that to frame, like what's really going on under

386
00:33:08,640 --> 00:33:12,520
the covers. And I think that's helpful. And I think that the more that people learn about

387
00:33:12,520 --> 00:33:16,560
that stuff, the more it will help their career, it will help them with problem solving, it

388
00:33:16,560 --> 00:33:21,640
will help them think about problems in different ways that can be very useful. But on the flip

389
00:33:21,640 --> 00:33:28,560
side, like, I am so excited about the idea that software engineering has really, at least

390
00:33:28,560 --> 00:33:34,120
as far as the stuff that I do, B2B SAS, you know, stuff like that, it's much more like

391
00:33:34,120 --> 00:33:39,240
a trade than what I would call pure computer science, which is somebody working in algorithms,

392
00:33:39,240 --> 00:33:44,680
like, like not just creating an LLM, but actually like doing the deep, you know, working for

393
00:33:44,680 --> 00:33:49,280
open AI or Google or something like that, right? That's computer science, right, or designing

394
00:33:49,280 --> 00:33:54,360
processes or whatever, right? What I do is really, to a trade. And so I love the idea

395
00:33:54,360 --> 00:34:01,760
that that's becoming more accessible. I love the idea that I can go hire a boot camp grad,

396
00:34:01,760 --> 00:34:06,200
not because they're cheaper, but because they bring life experience from some place that

397
00:34:06,200 --> 00:34:12,840
isn't software, they've actually lived in the real world. And when you give them software

398
00:34:12,840 --> 00:34:19,920
chops, they are able to sort of synthesize those things. They're able to bring in, you

399
00:34:19,920 --> 00:34:24,760
know, information about a problem domain, whether that's finance or customer, you know,

400
00:34:24,760 --> 00:34:29,560
dealing with customers or they were users of the software or whatever. They're not just

401
00:34:29,560 --> 00:34:32,840
somebody who's been writing code since they were five years old. And that's all they do

402
00:34:32,840 --> 00:34:39,080
is they know the code. And I think that you need both. But, you know, they're valuable.

403
00:34:39,080 --> 00:34:43,920
It's really interesting for a lot of business problems. Yeah, I fully agree. Well, that's

404
00:34:43,920 --> 00:34:48,800
actually really, there's a lot of little nuggets you just dropped in there, like a lot. That

405
00:34:48,800 --> 00:34:52,680
was really good. Okay, so before we get too far, the other

406
00:34:52,680 --> 00:34:58,920
thing I love about making it accessible is that it's bringing in not just a diversity

407
00:34:58,920 --> 00:35:05,320
of thought, but experience and, you know, across all the vectors, right? People can

408
00:35:05,320 --> 00:35:10,280
get into this industry. I think, you know, obviously, we're in an industry that is not

409
00:35:10,280 --> 00:35:15,560
particularly diverse, and it's moving in the right direction. But I think making the languages,

410
00:35:15,560 --> 00:35:22,240
the frameworks, concepts like boot camps more accessible is a wonderful sort of shortcut

411
00:35:22,240 --> 00:35:29,000
or hack to adding diversity into the industry so that you don't have to, I mean, my, you

412
00:35:29,000 --> 00:35:34,120
know, six year old girl is, I'm hoping going to be a tech nerd when she grows up. But that's

413
00:35:34,120 --> 00:35:40,720
15 years from now, right? Yeah, like that's a generational shift that takes a long time.

414
00:35:40,720 --> 00:35:47,320
But if we make the technology more accessible, then we can get there sooner. Yep, I fully

415
00:35:47,320 --> 00:35:51,480
agree. I also fully agree with the ability of taking, you know, bringing someone in who's

416
00:35:51,480 --> 00:35:56,440
had a previous career. I came from hospitality and business management and then that that

417
00:35:56,440 --> 00:36:01,280
side of things, right? So customer service was something I focused on heavily, right?

418
00:36:01,280 --> 00:36:04,080
So shifting into tech, I did it because I started having kids and I was like, okay,

419
00:36:04,080 --> 00:36:07,520
I need to learn to code and I didn't want to be, you know, I started having kids very

420
00:36:07,520 --> 00:36:12,960
young. I was only 20, 21, 22. Anyways, and so I just, I didn't want to be out late,

421
00:36:12,960 --> 00:36:15,640
right? And so I'm like, how do I learn a different career? I loved to code, loved to

422
00:36:15,640 --> 00:36:21,000
dive into things. And I really, truly am very thankful for the path that I took, even though

423
00:36:21,000 --> 00:36:23,560
I'm like, oh, I could have been a developer sooner, I could have gone to school for it,

424
00:36:23,560 --> 00:36:27,120
I could have gotten a comp side degree. And I'm like, no, because I wouldn't understand

425
00:36:27,120 --> 00:36:31,440
it. I wouldn't be as capable as I am now because I was the dev that was like, come into the

426
00:36:31,440 --> 00:36:35,280
client meetings, come talk to the client, they want this crazy technical thing. Can

427
00:36:35,280 --> 00:36:39,240
you talk them down, right? Talk to them about what they really need so we can actually come

428
00:36:39,240 --> 00:36:43,360
down to like, what are the features that truly need? And I think that's like, that's a magical

429
00:36:43,360 --> 00:36:48,280
skill that I didn't realize was magical. And I think that I encourage a lot of others

430
00:36:48,280 --> 00:36:52,680
to really try to expand on that on the communications on the ability to talk through those types

431
00:36:52,680 --> 00:36:56,640
of problems with non nerds, even though we love talking to our nerds.

432
00:36:56,640 --> 00:37:02,320
And it's impossible to be good at all the things, right? But that's why I love diverse

433
00:37:02,320 --> 00:37:07,560
teams too, is you've got the person who likes to be shut up in the closet, solve our problem,

434
00:37:07,560 --> 00:37:11,440
right? And then you've got the person you can put in front of a customer and talk them

435
00:37:11,440 --> 00:37:16,800
off a ledge or put in front of the product owner and be like, you know, say in the nicest

436
00:37:16,800 --> 00:37:21,440
way possible that they're crazy, you know, that sort of thing. And I would love that

437
00:37:21,440 --> 00:37:22,440
job.

438
00:37:22,440 --> 00:37:28,480
And they all skills and but they all sort of revolve around this idea of code and building

439
00:37:28,480 --> 00:37:32,600
up building some software that's useful to somebody, but you need all of those things

440
00:37:32,600 --> 00:37:34,880
to have a truly successful team.

441
00:37:34,880 --> 00:37:40,360
Yes, I agree. Okay, so we derailed from all of my questions, which is okay, I think I

442
00:37:40,360 --> 00:37:44,840
may be asked you like, you know, the what's your job title that one. One thing I am really

443
00:37:44,840 --> 00:37:51,960
curious because you are a fractional CTO working in startups. And so if anyone is looking,

444
00:37:51,960 --> 00:37:56,400
I'm a great person to reach out to you, but I'm curious because two of the questions I

445
00:37:56,400 --> 00:38:00,040
ask and they're more towards the end. And it's just to help devs understand where they

446
00:38:00,040 --> 00:38:03,800
should start going to find people like you or to find resources and learn what you've

447
00:38:03,800 --> 00:38:09,160
learned. So two questions. First one, who are I should say, where do you go when you're

448
00:38:09,160 --> 00:38:13,160
stuck, when you're personally stuck in something you can't solve technically or whatever it

449
00:38:13,160 --> 00:38:14,160
might be?

450
00:38:14,160 --> 00:38:21,200
Yeah, so ultimately, I think you need an array of different options, right? Because a lot

451
00:38:21,200 --> 00:38:27,440
of times nothing, you know, one place doesn't work. And that's shifting obviously with AIA

452
00:38:27,440 --> 00:38:32,760
and stuff like that. And so I usually try, I try to get good at solving my own problems

453
00:38:32,760 --> 00:38:37,160
before I consume somebody else's time. So of course, you know, you're Googling your stack

454
00:38:37,160 --> 00:38:42,560
overflow, your GitHub, you know, issues, you're looking for those sorts of things. Now you

455
00:38:42,560 --> 00:38:47,120
can throw co-pilot other AI things like that into I'm starting to use those more. And I

456
00:38:47,120 --> 00:38:55,200
think they're becoming useful. I don't think we're at the, you know, the holy grail yet.

457
00:38:55,200 --> 00:39:00,760
I don't think our jobs are quite in danger yet. But that might happen. But honestly,

458
00:39:00,760 --> 00:39:05,040
you've got to build networks too. You know, if you've got colleagues you're working with,

459
00:39:05,040 --> 00:39:09,160
obviously that's your first stop. That's the best place. You know, I've been doing this

460
00:39:09,160 --> 00:39:15,680
for 25 years and yesterday I had to, you know, ask my fellow coder like, help me, I am so

461
00:39:15,680 --> 00:39:22,360
stuck, you know, and, you know, pairing up when you need to is just a magical thing.

462
00:39:22,360 --> 00:39:28,480
And, you know, and you have to sort of get over your own ego, right? When it comes to

463
00:39:28,480 --> 00:39:32,080
code reviews, when it comes to pairing up, you have to be able to say, I don't know,

464
00:39:32,080 --> 00:39:38,880
I'm stuck. And, you know, can I learn something from somebody else? And then obviously, if

465
00:39:38,880 --> 00:39:44,880
you're in a super hyper small company where you don't have like a panorama of people that

466
00:39:44,880 --> 00:39:50,400
you can, you can talk to, then you got to find another community, right? And so there's

467
00:39:50,400 --> 00:39:54,880
some great Slack communities out there. I imagine I'm not on any of them, but I imagine

468
00:39:54,880 --> 00:39:59,000
there's some great discords and things like that out there for people in whatever stack

469
00:39:59,000 --> 00:40:05,640
that you're playing with. That sort of stuff. But, you know, I think that that's, you got

470
00:40:05,640 --> 00:40:11,080
to find ways to solve your problems, right? And that's what this is all about. And, you

471
00:40:11,080 --> 00:40:16,240
know, figuring out how to connect with people that have similar problems is just the way

472
00:40:16,240 --> 00:40:18,040
that we support each other.

473
00:40:18,040 --> 00:40:23,920
I agree. Build your nerd herd around you, right? Who are you going to go to? Okay, so

474
00:40:23,920 --> 00:40:29,520
very similar question. Somewhat different, though. So if you are looking for, let's say

475
00:40:29,520 --> 00:40:33,360
you need a new tool or a new solution or you're building something and you're just like, Hey,

476
00:40:33,360 --> 00:40:35,680
I know that, you know, maybe you're going to integrate something or you're going to

477
00:40:35,680 --> 00:40:40,000
bring something else in. How do you start to search for those things? Like, you know,

478
00:40:40,000 --> 00:40:44,280
maybe you're, I'm going to leave it at that. Where would you go to go look for something

479
00:40:44,280 --> 00:40:45,280
like that?

480
00:40:45,280 --> 00:40:46,280
Similar question.

481
00:40:46,280 --> 00:40:51,320
That's a tough one for me personally, because I've, I'm usually the, the, the one who's,

482
00:40:51,320 --> 00:40:56,480
you know, especially in a fractional CTO role, I'm usually not absolutely the most technical

483
00:40:56,480 --> 00:41:03,880
person in the room, right? There's almost always somebody else in the room who has ideas

484
00:41:03,880 --> 00:41:10,320
for how to solve it, right? And so whether that's a particular, you know, SAS tool or

485
00:41:10,320 --> 00:41:16,640
a Dev tool or, or something like that, it's usually not me. And, and, and I'm totally

486
00:41:16,640 --> 00:41:20,560
cool with that. And I tend to jump around frameworks and languages and stuff enough that

487
00:41:20,560 --> 00:41:27,600
I'm not deep enough in any one of them at any given time to, to, to be the one with

488
00:41:27,600 --> 00:41:32,920
those answers. And so again, I'm using that same community. I'm still, you know, either,

489
00:41:32,920 --> 00:41:37,360
either talking with the people on my team or I'm talking with, you know, I'm looking

490
00:41:37,360 --> 00:41:41,360
around at, at, I've got some Slack channels that I'm part of and things like that where

491
00:41:41,360 --> 00:41:46,800
I'm always, you know, hearing about new things. And I try and, try and pay attention, but

492
00:41:46,800 --> 00:41:49,880
there's so much going on out there right now.

493
00:41:49,880 --> 00:41:50,880
It's pretty cool.

494
00:41:50,880 --> 00:41:52,040
Tell me about it.

495
00:41:52,040 --> 00:41:53,040
Tell me about it.

496
00:41:53,040 --> 00:41:54,040
It's really cool.

497
00:41:54,040 --> 00:41:59,040
I've been trying to stay up to date and like at least, you know, with it being like my

498
00:41:59,040 --> 00:42:02,760
role, right, is like, I do competitive analysis and market insights and, you know, developer

499
00:42:02,760 --> 00:42:06,240
experience audits of my clients, but then I also compare and contrast them to their

500
00:42:06,240 --> 00:42:10,800
competitors. Where do you, where do you have that edge? Where do they not? And so I've

501
00:42:10,800 --> 00:42:13,680
just been trying to be like, okay, let me just do market research, like just chip away

502
00:42:13,680 --> 00:42:17,840
at it every day. And I'm like, Oh my gosh, the number of tools that are coming out. I'm

503
00:42:17,840 --> 00:42:21,360
like, I'm just going to have to stay with like knowing the hip ones and hope that the

504
00:42:21,360 --> 00:42:25,720
new ones just come in as clients so I can learn them that way.

505
00:42:25,720 --> 00:42:28,680
Good follow up question to what you shared. And I think would be very insightful for our

506
00:42:28,680 --> 00:42:34,320
users and anyone listening, you being in the CTO role, I didn't, I expected that kind of

507
00:42:34,320 --> 00:42:37,920
an answer, right? Because oftentimes it's the users, the developers, the ones who are

508
00:42:37,920 --> 00:42:41,960
going to be in that tool that want to advocate that up to their leadership and say, Hey,

509
00:42:41,960 --> 00:42:42,960
we need this.

510
00:42:42,960 --> 00:42:47,480
So what are some of the things that, you know, if a developer on your team really wants to

511
00:42:47,480 --> 00:42:52,080
use a tool, like how can they come at you in the strong with the strongest argument

512
00:42:52,080 --> 00:42:57,040
or sort of representation for you to be like, Okay, let's try it.

513
00:42:57,040 --> 00:42:59,960
Bring data, bring a story, right?

514
00:42:59,960 --> 00:43:04,920
You know, and data isn't always possible. But can you tell a compelling story about it?

515
00:43:04,920 --> 00:43:11,240
About how this is going to make our life better? What problem is it solving? My favorite sort

516
00:43:11,240 --> 00:43:21,120
of environment in terms of the question you're asking was a company where they had a really,

517
00:43:21,120 --> 00:43:25,200
really amazing, it was a little bit larger company, they had a really, really amazing

518
00:43:25,200 --> 00:43:34,600
infrastructure engineering and SRE team. And it was as a leader there, it made it super

519
00:43:34,600 --> 00:43:39,960
easy for me because we could literally have a policy that said any team, I think we had,

520
00:43:39,960 --> 00:43:48,280
I don't know, eight or 10 teams, it was a little bit larger company. Anybody can do

521
00:43:48,280 --> 00:43:56,360
anything they want. If your team, you know, wants to go do X stack or language or whatever,

522
00:43:56,360 --> 00:44:04,320
you're empowered to do that. However, we have kind of our official, you know, stack. And

523
00:44:04,320 --> 00:44:13,120
if you use that stack, it comes with the observability, the alerting, the monitor, the canary deploys,

524
00:44:13,120 --> 00:44:18,960
the, you know, all of the different things, the backups, the disaster recovery, the auditing,

525
00:44:18,960 --> 00:44:25,200
all of those things, right? So if you want to diverge from our core stack, you go, go

526
00:44:25,200 --> 00:44:33,480
for it. But you need to solve for all of those requirements. There were cases where people

527
00:44:33,480 --> 00:44:38,680
did and it was good because they had a strong need for because of this other problem, this

528
00:44:38,680 --> 00:44:43,160
stack was not a great fit. And so they solved for that. And that became another stack that

529
00:44:43,160 --> 00:44:49,000
we could support. But it's sort of weeded out that because I think it's cool sort of

530
00:44:49,000 --> 00:44:53,440
thing and brought it, yeah, business perspective of, okay, what's the problem I'm trying to

531
00:44:53,440 --> 00:44:57,720
solve? And is this the right solution? And this is a case where it's a little bit more

532
00:44:57,720 --> 00:45:03,000
of a mature company. Okay, so not always applicable to startups. But, but I think it provides

533
00:45:03,000 --> 00:45:10,360
one healthy way to approach that problem, right? Where we could literally say, if you've got

534
00:45:10,360 --> 00:45:16,520
a good idea, let's talk about it, right? Maybe it does solve a great problem. And we're empowered

535
00:45:16,520 --> 00:45:21,880
to go do that. You don't even have to have permission, right? But you have to solve for

536
00:45:21,880 --> 00:45:29,440
these requirements for the business and sustainability, right? And, and, and a lot of times that,

537
00:45:29,440 --> 00:45:35,400
you know, if it was sort of a casual, I think rust is a really cool language, you know,

538
00:45:35,400 --> 00:45:38,520
okay, fine. But, you know, if you don't solve for all these other things, it'd be like,

539
00:45:38,520 --> 00:45:42,600
yeah, I think I'm just going to stick with what I got, you know, and, and, and I don't

540
00:45:42,600 --> 00:45:47,040
like, you know, having people sort of resign to that, like, oh, I guess it's not worth

541
00:45:47,040 --> 00:45:52,080
it, whatever. That's not what I'm going for. But what I'm saying is, is it opened the possibility

542
00:45:52,080 --> 00:45:57,240
to make a business case that we would, that we would go forward with, right? And it's

543
00:45:57,240 --> 00:46:03,000
okay. Yeah, and it's okay if they decide not to, because they've, they've gone through

544
00:46:03,000 --> 00:46:07,760
that checklist and they're like, I don't need it this bad, or I don't want it this bad,

545
00:46:07,760 --> 00:46:12,760
or it isn't, I don't need to chase down all these other things, right? It isn't necessarily

546
00:46:12,760 --> 00:46:16,600
that you're saying, oh, good, you gave up, right? It's more of like, no, you did what

547
00:46:16,600 --> 00:46:21,760
you needed to do. Is the problem worth solving and solving all of these different areas?

548
00:46:21,760 --> 00:46:24,080
Or can you solve it in a different way?

549
00:46:24,080 --> 00:46:30,760
Put a more objective lens on it, right? And it allowed you to really evaluate the, you

550
00:46:30,760 --> 00:46:35,680
know, whatever ROI or whatever you whatever, whatever terms you want to use there, right?

551
00:46:35,680 --> 00:46:40,520
But, but, you know, it, you can get to a point where you're really talking about, is it worth

552
00:46:40,520 --> 00:46:46,680
it? Is it valuable? Is it something we need? And there were cases where it was, right? You

553
00:46:46,680 --> 00:46:52,680
know, the, the, the analytics team, you know, wanted to use Python. And that wasn't part

554
00:46:52,680 --> 00:46:58,200
of our core stack. And, but that's a crazy, crazy powerful language and stack for analytics,

555
00:46:58,200 --> 00:46:59,200
right? Absolutely.

556
00:46:59,200 --> 00:47:03,000
So it made sense. And they did the work. And it was great, right?

557
00:47:03,000 --> 00:47:09,120
Yep. I love that. I think that's, that's a beautiful, a beautiful blend of like sort

558
00:47:09,120 --> 00:47:13,000
of both ends of the, of the spectrum, right? I'm just saying yes to all the things and

559
00:47:13,000 --> 00:47:16,920
ending up with technology, you're trying to update like we talked about, right? JavaScript

560
00:47:16,920 --> 00:47:19,440
frameworks changing every few years, not too long ago.

561
00:47:19,440 --> 00:47:20,440
Right.

562
00:47:20,440 --> 00:47:23,520
I think it's a beautiful answer to that versus like, go do what you want, right? It's not

563
00:47:23,520 --> 00:47:29,200
the wild wild west. We've got some, some, some, what's the things in bowling, the gutters?

564
00:47:29,200 --> 00:47:33,560
Are they, they, what are the things they put? Is that what they call them? Yeah, like those

565
00:47:33,560 --> 00:47:36,360
little bouncy things. Any of that. I was trying to say that smoothly.

566
00:47:36,360 --> 00:47:38,560
Yeah, yeah, yeah. That's when the kids use, right?

567
00:47:38,560 --> 00:47:43,480
The, yes, yes. I can't think of them either way. We know we're envisioning it. You're

568
00:47:43,480 --> 00:47:47,320
stuck in a lane. You can do what you want in your lane, but you can't leave that lane,

569
00:47:47,320 --> 00:47:49,120
which I think is a really safe lane.

570
00:47:49,120 --> 00:47:54,600
If you can do it in a way that's, you know, that, that meets the objectives that meets

571
00:47:54,600 --> 00:47:55,800
the requirements, right?

572
00:47:55,800 --> 00:48:02,440
Yes. Yes. Exactly. Okay. I could honestly talk to you for like hours. You are so interesting

573
00:48:02,440 --> 00:48:06,960
to talk to you. Maybe cause you're a fellow Minnesotan, you know, so we've got that Minnesota

574
00:48:06,960 --> 00:48:07,960
vibe going on.

575
00:48:07,960 --> 00:48:08,960
Got that connection.

576
00:48:08,960 --> 00:48:13,640
Yeah. Where can people find you? Cause I think they're going to be intrigued by a lot of

577
00:48:13,640 --> 00:48:16,560
what you're sharing. And I think obviously you have this beautiful opportunity where

578
00:48:16,560 --> 00:48:20,400
you do fractional CTO and there might be folks looking for your services. So where can, where

579
00:48:20,400 --> 00:48:21,400
can folks find you?

580
00:48:21,400 --> 00:48:27,400
Yeah. I need to do some work on my, on my marketing materials.

581
00:48:27,400 --> 00:48:28,400
I can help you.

582
00:48:28,400 --> 00:48:29,400
The best place to go.

583
00:48:29,400 --> 00:48:30,400
Yeah.

584
00:48:30,400 --> 00:48:36,040
So Neil Topsen was it slash in slash Neil Topsen. And, but yeah, that's, that's, that's

585
00:48:36,040 --> 00:48:39,800
probably the best place for now. And I'm working on, working on getting better at the marketing

586
00:48:39,800 --> 00:48:40,800
stuff.

587
00:48:40,800 --> 00:48:47,800
I literally do marketing for my dev tool clients and my own marketing is complete trash. So

588
00:48:47,800 --> 00:48:48,800
I don't know your website.

589
00:48:48,800 --> 00:48:53,240
It's a work in progress.

590
00:48:53,240 --> 00:48:59,840
All right. Well, this has been absolutely lovely. So great hearing from you and so awesome

591
00:48:59,840 --> 00:49:05,040
to hear about your journey and everything that you've shared. And I hope that you have

592
00:49:05,040 --> 00:49:08,960
a fabulous rest of your day. Give Minnesota a big hug for me.

593
00:49:08,960 --> 00:49:11,320
We'll do, we'll do big cold hug.

594
00:49:11,320 --> 00:49:14,600
Yeah. Cold hug. We need those hugs there, right? It's chilly.

595
00:49:14,600 --> 00:49:15,880
Awesome. Thank you.

596
00:49:15,880 --> 00:49:42,880
All right. Yes. Thank you.

