WEBVTT

1
00:00:07.639 --> 00:00:11.080
Hey, everybody, thanks for coming
to another episode of My year story.

2
00:00:11.119 --> 00:00:14.919
Today as our guest, we have
one of my friends, Thomas Burls and

3
00:00:14.960 --> 00:00:18.440
Thomas, can you introduce yourself?
For those who don't know you, Hi,

4
00:00:18.519 --> 00:00:23.679
everybody, my name is Thomas Berlson. I've been involved with software development

5
00:00:23.719 --> 00:00:27.960
for longer than I care to admit. I had a pleasure to meet Frosty.

6
00:00:28.120 --> 00:00:30.440
What Frosty, what has have been
now? Almost eight years ago?

7
00:00:31.079 --> 00:00:35.119
Eight years ago at least, And
that's part of the story that we'll talk

8
00:00:35.159 --> 00:00:40.600
about today. But it was the
start of a really great friendship and someone

9
00:00:40.640 --> 00:00:44.000
who's in my life that I very
much value, and so frost asked me

10
00:00:44.039 --> 00:00:48.359
to come here today and just chat. This episode is sponsored by Century dot

11
00:00:48.359 --> 00:00:52.159
Io. Recently I came across a
great tool for tracking and monitoring problems in

12
00:00:52.200 --> 00:00:54.759
my apps. Then I asked them
if they wanted to sponsor the show and

13
00:00:54.799 --> 00:00:58.560
allow me to share my experience with
you. Century provides a terrific interface for

14
00:00:58.640 --> 00:01:00.479
keeping track of what's going on with
my app. It also tracks releases so

15
00:01:00.520 --> 00:01:03.680
I can tell if what I deployed
makes things better or worse. They give

16
00:01:03.760 --> 00:01:07.159
full stack traces and as much information
as possible about the situation when the error

17
00:01:07.159 --> 00:01:11.439
occurred to help you track down the
errors. Plus one thing I love,

18
00:01:11.640 --> 00:01:15.640
you can customize the context provided by
Century, so if you're looking for specific

19
00:01:15.640 --> 00:01:19.920
information about the request, you can
provide it. It automatically scrubs passwords and

20
00:01:19.959 --> 00:01:23.480
secure information, and you can customize
the scrubbing as well. Finally, it

21
00:01:23.519 --> 00:01:26.439
has a user feedback system built in
that you can use to get information from

22
00:01:26.439 --> 00:01:29.560
your users. Oh and I also
love that they support open source to the

23
00:01:29.599 --> 00:01:32.879
point where they actually open source Centry. If you want to self host it,

24
00:01:33.000 --> 00:01:36.599
use the code dev chat at Century
dot io to get two months free

25
00:01:36.680 --> 00:01:42.000
on Century small plan. That's code
dev chat at century dot io. So

26
00:01:42.120 --> 00:01:48.519
you're you're one of our guests that
most people will know, and so we're

27
00:01:48.519 --> 00:01:51.599
going to spend some time just kind
of talking about your background just so that

28
00:01:51.640 --> 00:01:55.079
they can know you more. Some
of our guests are like, I don't

29
00:01:55.079 --> 00:01:59.120
know this person, but I'm I
mean, maybe I'm biased or I believe,

30
00:01:59.319 --> 00:02:02.280
but I'm guessing most people know you. So you have a long history

31
00:02:02.319 --> 00:02:07.400
in coding, how did what?
What's your windy path that ends in use

32
00:02:07.560 --> 00:02:13.919
using Angular? So my path I
would not actually recommend to anyone. Okay,

33
00:02:14.280 --> 00:02:16.520
if you did it the hard way, if you could choose a hard

34
00:02:16.520 --> 00:02:21.879
path, it was probably would match
mine. You know, you meet a

35
00:02:21.879 --> 00:02:24.840
lot of developers these days who talk
about they got into software development because they

36
00:02:24.879 --> 00:02:30.479
had an idea and they started young, fifteen or sixteen or eighteen. Yeah,

37
00:02:30.719 --> 00:02:36.159
yell those people. I wish I
was they, And they think in

38
00:02:36.240 --> 00:02:38.280
code, right, it just comes
natural to them, and and for me

39
00:02:38.840 --> 00:02:44.120
that wasn't the case. Right.
And in college I took a programming class

40
00:02:44.199 --> 00:02:46.439
and I flunked it so bad on
the first test that I dropped out of

41
00:02:46.520 --> 00:02:51.360
the programming class. Is it age? What age is this? When you

42
00:02:51.400 --> 00:02:53.680
had to happen? This was I
think I was nineteen or twenty, but

43
00:02:53.759 --> 00:02:57.879
it was, And I thought I
knew it locked in, right. I

44
00:02:57.919 --> 00:03:01.759
was arrogant and young, and so
I put it aside, and I thought,

45
00:03:01.759 --> 00:03:05.360
ah, and I was getting a
degree in applied physics, right,

46
00:03:05.400 --> 00:03:10.639
I was building trenode lab detector systems
and all sorts of things. But I

47
00:03:10.639 --> 00:03:16.319
couldn't program right. And this was
back obviously in the days to sort of

48
00:03:16.360 --> 00:03:20.319
date myself a bit, This is
back in the days of vac's mainframes,

49
00:03:20.400 --> 00:03:24.719
right, So there weren't personal really
personal computers at the time, so I

50
00:03:24.759 --> 00:03:28.800
put it aside and I went to
graduate school. And I decided to go

51
00:03:28.879 --> 00:03:32.800
to graduate school to learn to get
a degree in applied laser optics, so

52
00:03:34.000 --> 00:03:38.919
laser guidance systems and satellite systems and
fiber optics and things like that. And

53
00:03:39.400 --> 00:03:45.159
while I was and I got a
research assistant position freak of luck. And

54
00:03:45.199 --> 00:03:49.560
that's a separate story which is really
funny. But I had a professor who

55
00:03:49.599 --> 00:03:53.120
believed in me hired me as a
research assistant, and I was helping him

56
00:03:53.159 --> 00:04:03.439
put together proposals for SDI Satellite Desfense
Initiative so way back then, and for

57
00:04:03.520 --> 00:04:08.680
black projects for the military, and
we were winning contracts right and left,

58
00:04:08.840 --> 00:04:12.759
and we were winning them because I
was helping him write killer proposals with great

59
00:04:13.159 --> 00:04:18.399
graphics and illustrations and diagrams and taking
very technical thoughts and making them presenting them

60
00:04:18.399 --> 00:04:23.360
in a simple, intuitive fashion.
You're good. Is that I know that

61
00:04:23.399 --> 00:04:26.920
about you? That is one of
my life that for a long time.

62
00:04:26.959 --> 00:04:30.360
Then, yeah, I think it's
maybe one of my few strengths. Okay,

63
00:04:30.199 --> 00:04:33.120
So but I started doing that on
a Mac right and I was using

64
00:04:33.160 --> 00:04:39.000
MacDraw and I was using canvas and
and one day I thought, how does

65
00:04:39.040 --> 00:04:42.240
that? How does that work?
How does the mouse when I move it

66
00:04:42.279 --> 00:04:45.319
on the desk? How does it
move it on the screen and draw these

67
00:04:45.360 --> 00:04:48.199
rectangles with these and these circles and
these layers, and how does it color

68
00:04:48.240 --> 00:04:51.639
it? And I thought, I
want to know how to write a program

69
00:04:51.639 --> 00:04:57.079
to do that. And that literally
was the start of my software to career.

70
00:04:57.639 --> 00:05:00.399
I wanted to learn how to do
what I saw another program doing.

71
00:05:01.079 --> 00:05:04.079
Sounds like you're still pretty young,
though at this point I was young,

72
00:05:04.199 --> 00:05:08.839
and I didn't have anyone else to
bounce ideas off. This was back in

73
00:05:08.839 --> 00:05:13.399
the days of bulletan board systems.
Yeah, there's no stack overflow. There

74
00:05:13.439 --> 00:05:16.439
was no Google, no stack overflow, there's no blogs, nothing, nothing,

75
00:05:16.519 --> 00:05:19.920
right, And if you wanted to
ask even one of the vendors,

76
00:05:19.959 --> 00:05:23.360
hey, how do you do this? What's wrong with your tool? You

77
00:05:23.360 --> 00:05:27.399
had to pay two hundred dollars an
hour and wait on for a text phone

78
00:05:27.439 --> 00:05:30.680
call, right, So there weren't
even video calls, nothing. And so

79
00:05:30.759 --> 00:05:35.399
I started teaching myself and it was
a long road, right, and truth

80
00:05:35.439 --> 00:05:39.600
be told, I oversowed my skills
a couple of times, like I was

81
00:05:39.720 --> 00:05:45.360
way underqualified for the job I got, but my attitude was get in.

82
00:05:46.120 --> 00:05:48.279
I never tried to hire myself as
a senior person, but I would try

83
00:05:48.319 --> 00:05:51.120
to say I can do this,
and then I just had confidence that I

84
00:05:51.160 --> 00:05:56.319
would figure it out on the fly
because you had a history of doing that.

85
00:05:56.639 --> 00:05:59.360
I had a history. You knew
you'd done it before. So you're

86
00:05:59.399 --> 00:06:01.279
like, I could I could figure
it out even if I don't know it.

87
00:06:01.560 --> 00:06:03.480
I knew that I could figure it
out. I might not have had

88
00:06:03.480 --> 00:06:08.759
a history of being successful, you
know, and writing software before, but

89
00:06:08.879 --> 00:06:13.040
I just had I had a confidence, right, and I had a willingness

90
00:06:13.079 --> 00:06:16.839
to invest the time. And you
know, nowadays, as a slight digression,

91
00:06:17.120 --> 00:06:18.959
when you and I talk and people
say, oh, I wish I

92
00:06:18.959 --> 00:06:23.480
could be a developer, right,
I wish I could work remote and travel

93
00:06:23.480 --> 00:06:26.000
around the world and all that,
you know, Or I wish I could

94
00:06:26.079 --> 00:06:31.160
make really good money that seems like
contractors make and which isn't necessarily the case.

95
00:06:31.680 --> 00:06:34.399
And my number one response is what
can you sit in front of a

96
00:06:34.399 --> 00:06:40.040
computer for ten to twelve hours a
day? Because if you can't, then

97
00:06:40.360 --> 00:06:44.560
don't try to become a software development
And that's the number one thing. You

98
00:06:44.680 --> 00:06:46.759
have to be willing to put in
the time, right. So I didn't

99
00:06:46.759 --> 00:06:49.839
know much, but I was willing
to put in the time. I was

100
00:06:49.839 --> 00:06:57.279
willing to bang my head. And
so I got a job in actually working

101
00:06:57.279 --> 00:07:00.519
on one of the first email programs
out on the market. So this is

102
00:07:00.680 --> 00:07:05.000
way back before Outlook, way back
way before Gmail and all that. In

103
00:07:05.040 --> 00:07:09.439
fact, I was actually working on
another product called Visual source Safe before it

104
00:07:09.480 --> 00:07:14.720
was acquired by Microsoft. Visual Source
Safe was the precursor to SVC and get

105
00:07:15.120 --> 00:07:18.639
oh wow. So I was working
in an email program and I was also

106
00:07:18.680 --> 00:07:24.519
working on Visual source Safe and I
could write help them write software, but

107
00:07:24.560 --> 00:07:27.800
I still didn't have the light bulb
go on. And then I came to

108
00:07:28.040 --> 00:07:31.040
Iowa and I was working for a
company, and I was paired with you

109
00:07:31.439 --> 00:07:33.800
live in Iowa? True? Do
I do? I live in Iowa.

110
00:07:34.199 --> 00:07:39.560
So I was paired with a developer, a manic Russian developer. I love

111
00:07:39.639 --> 00:07:44.959
Russian developers, They're awesome, who
was just passionate about C plus plus right,

112
00:07:45.639 --> 00:07:48.480
And I didn't know what C plus
plus was and I didn't know what

113
00:07:48.519 --> 00:07:54.120
objecorated programming was, and so he
started mentoring me. But it wasn't so

114
00:07:54.199 --> 00:07:58.160
much a mentor as just sort of
paired peer type work. One day the

115
00:07:58.240 --> 00:08:01.160
light bulb went on. I was
like, oh my god, I really

116
00:08:01.240 --> 00:08:07.040
get it polymorphism and inheritance and subclassing
and method overloading, and I totally get

117
00:08:07.079 --> 00:08:11.680
it. And it was one of
those epiphanies, right. I think that

118
00:08:11.839 --> 00:08:16.079
was a switching point for me where
I had a moment where I thought,

119
00:08:16.079 --> 00:08:24.560
Okay, I can actually I can
absorb complicated ideas and turn them around and

120
00:08:24.600 --> 00:08:28.399
reuse them apply them. But that
was also one of the jobs where I

121
00:08:28.439 --> 00:08:33.240
had one of my boss at the
time pulled me aside. And I've had

122
00:08:33.240 --> 00:08:35.879
this happen two or three times in
my life where someone has approached me and

123
00:08:35.879 --> 00:08:39.559
said, I think you need to
choose a different career. You're never going

124
00:08:39.600 --> 00:08:46.039
to be successful at software development.
Right. Often, No, honestly,

125
00:08:46.120 --> 00:08:48.159
and not just once, two or
three times, dude, right. And

126
00:08:48.399 --> 00:08:54.639
each time I was willing to admit
that I had some gaps, I had

127
00:08:54.639 --> 00:08:58.039
some faults I needed to correct,
write things to work on. But I

128
00:08:58.159 --> 00:09:03.279
was also unwilling to accept someone's bigoted
opinion to say that I couldn't be couldn't

129
00:09:03.279 --> 00:09:07.600
do it. Yeah, it was
almost as if they challenged me right,

130
00:09:07.080 --> 00:09:09.879
and of course I refused to have
them as a boss after that, and

131
00:09:11.039 --> 00:09:16.200
I would move to someone else.
And then one day I so I was

132
00:09:16.240 --> 00:09:20.600
doing C plus plus for a while
that I was doing Visual Basic. Then

133
00:09:20.600 --> 00:09:26.200
I was doing Python, and then
Turbo Pascal and Delphi and Winnows Foundation class.

134
00:09:26.519 --> 00:09:30.039
Now we're up into the nineties,
late nineties. Yeah, yeah,

135
00:09:30.080 --> 00:09:31.759
you can sort of hear where this
is going, right, And then one

136
00:09:31.840 --> 00:09:39.200
day I heard an ad about Adobe. They were going to show not from

137
00:09:39.240 --> 00:09:41.879
Adobe at the time, it was
Macromedia. They were going to show the

138
00:09:41.000 --> 00:09:46.320
Flash and next studio Wow. And
it was a seminar up in Minneapolis,

139
00:09:46.320 --> 00:09:50.600
and I had to drive four hours
and so at the time I said to

140
00:09:50.679 --> 00:09:52.879
my I think she was my girlfriend
at the time. I'd have been my

141
00:09:52.919 --> 00:09:56.879
wife at the time, but I
said, I'm going to drive up to

142
00:09:56.919 --> 00:10:01.159
there and attend this seminar. It's
all weekend. And at the end of

143
00:10:01.200 --> 00:10:05.600
the Saturday and Sunday seminar, I
called my girlfriend my wife, and I

144
00:10:05.639 --> 00:10:09.480
said, I found what I want
to do. I want to write rich

145
00:10:09.879 --> 00:10:13.840
Internet applications. I want to write
rich front ends. I want to write

146
00:10:13.960 --> 00:10:20.919
applications that do amazing create amazing user
experiences. So obviously at the time that

147
00:10:20.039 --> 00:10:24.799
was flash. Well, Flash sucks
for developing apps, always did, right.

148
00:10:24.960 --> 00:10:28.399
Flash was great for eye candy and
morphine, but for developing apps it

149
00:10:28.480 --> 00:10:35.039
was just the pit. Six months
after that, Flex came out and ColdFusion

150
00:10:35.080 --> 00:10:39.080
also, and that was sort of
a marriage made in heaven. Flex came

151
00:10:39.080 --> 00:10:45.200
out and I've got a job with
a company, a consulting firm, as

152
00:10:45.240 --> 00:10:48.799
one of their primary architects. It
was a four man company. That company

153
00:10:48.840 --> 00:10:52.679
grew to be forty five people and
I for four years, I was one

154
00:10:52.720 --> 00:10:56.960
of their top three principal architects.
And for the next eight years I developed

155
00:10:58.000 --> 00:11:05.279
Flex applications for many like Vimeo and
a whole bunch of other groups, and

156
00:11:05.879 --> 00:11:11.879
started with Micromedia was acquired by Adobe, and that was my forte right,

157
00:11:13.159 --> 00:11:18.559
going into small companies or even enterprise
companies and training their developers, teaching them

158
00:11:18.759 --> 00:11:26.320
how to develop real deployable production applications, web apps with Flash or excuse me,

159
00:11:26.360 --> 00:11:30.879
with the flash player. Then Steve
Jobs came out and said, hey,

160
00:11:31.000 --> 00:11:35.399
wow, flash player will never be
on the iOS. Well, I'm

161
00:11:35.399 --> 00:11:37.799
sorry, that was that was like
an ax blow to the head, right,

162
00:11:39.639 --> 00:11:43.879
there. I knew then that as
much as I'd love that environment,

163
00:11:45.840 --> 00:11:50.519
I needed to make a change.
And so I decided I needed to move

164
00:11:50.559 --> 00:11:52.600
over, and what was I going
to do next? Right, Because when

165
00:11:52.639 --> 00:11:56.799
you have to make a fundamental paradigm
change and what you love doing, it's

166
00:11:56.840 --> 00:12:01.240
actually creates a lot of angst.
It creates a lot of mental pressure because

167
00:12:01.480 --> 00:12:03.320
there are a lot of decisions that
you can make, but which is the

168
00:12:03.399 --> 00:12:09.159
right one? Which direction is the
right one? Right? And what you

169
00:12:09.200 --> 00:12:13.320
don't want to do is choose it
for money. You don't want to choose

170
00:12:13.320 --> 00:12:16.639
it for secure Like I can also
tell developers, don't choose the direction you

171
00:12:16.679 --> 00:12:20.840
want to go because it's safe.
Absolutely don't do that. That's sort of

172
00:12:20.840 --> 00:12:24.399
like saying you're in a prison and
I'm going to open the door, but

173
00:12:24.480 --> 00:12:28.360
you'll never leave the prison cell because
it's comfortable safe in the prison cell.

174
00:12:28.919 --> 00:12:33.080
Think about all the other opportunities you
might regret it if you never explored.

175
00:12:33.279 --> 00:12:37.440
Right. So I decided, well, I still love doing a front end

176
00:12:37.559 --> 00:12:43.679
applications and I had a full stack
experience right that I was helping developers develop

177
00:12:45.440 --> 00:12:50.759
enterprise applications in Java, so I
was working on rest applications. I was

178
00:12:50.799 --> 00:12:54.360
doing cold fusion for a CMS and
very complicated things, but I wanted to

179
00:12:54.399 --> 00:12:58.399
stay in the front tier, the
client tier, so I started looking and

180
00:12:58.440 --> 00:13:03.759
at that time it was JavaScript and
knockout and Cencha. Oh my god.

181
00:13:03.840 --> 00:13:09.600
I hated Censha. I didn't love
it, but it was better than what

182
00:13:09.639 --> 00:13:13.720
I'd done before Cenha. Well,
got to remember when I came from flex

183
00:13:15.279 --> 00:13:20.320
was I came from an environment that's
eerily like I mention something in a minute.

184
00:13:20.320 --> 00:13:24.600
But it had dependency injection, like
I said swizz, It had metadata,

185
00:13:26.080 --> 00:13:31.679
it had decorators, it had co
generation at a rich API for drawing

186
00:13:31.759 --> 00:13:37.480
and data binding, everything you wanted. And Censha was not dependency injection at

187
00:13:37.480 --> 00:13:41.480
all. It was just horrible in
my opinion. Yeah, lo and behold.

188
00:13:41.559 --> 00:13:43.840
Right about that time, Angler zero
dot nine was out on the market.

189
00:13:45.639 --> 00:13:48.519
What year is this? Wow?
Was that twenty fourteen or twelve?

190
00:13:50.919 --> 00:13:54.000
That was twelve? I think was
it twelve, because I think I walk

191
00:13:54.080 --> 00:13:56.840
into the scene and I was doing
center right before that. Uh huh?

192
00:13:58.399 --> 00:14:01.200
Was FD right about that time?
I think you and I got into the

193
00:14:01.240 --> 00:14:03.639
market right about the same time,
and it was even before the one dot

194
00:14:05.039 --> 00:14:09.759
and it was before they had documented
what the Angular jass modules were about.

195
00:14:09.799 --> 00:14:13.919
And there was no documentation, and
the only to learn way to learn how

196
00:14:13.960 --> 00:14:16.759
the system worked was to dive into
the source code. And if you haven't

197
00:14:16.840 --> 00:14:20.480
looked at and I know Frosty you
have, But if the people listening haven't

198
00:14:20.519 --> 00:14:24.200
ever looked at a really cool code, go take a look at the Angler.

199
00:14:24.440 --> 00:14:28.559
Not the Angular code, because that's
actually almost too complicated to look at.

200
00:14:28.759 --> 00:14:33.360
Take a look at the Angular js
core code that was very functional like,

201
00:14:33.519 --> 00:14:37.120
and it was really really I learned
a lot of things, right,

202
00:14:37.519 --> 00:14:45.639
Yeah, So I got involved and
I started helping a client develop an Angular

203
00:14:45.720 --> 00:14:50.120
Jass application, and I also just
started teaching myself and trying to write a

204
00:14:50.120 --> 00:14:54.000
blog about it, and just spent
Basically, when I did the paradigm change,

205
00:14:54.039 --> 00:14:58.720
I think I spent four or five
months with no income, right,

206
00:14:58.759 --> 00:15:01.039
I just wanted to learn it and
get really good at it. And then

207
00:15:01.120 --> 00:15:03.840
once you have a basis, you
really need to have a project that you

208
00:15:03.879 --> 00:15:07.320
want to apply it to. Because
it just learning for the sake of learning,

209
00:15:07.639 --> 00:15:09.919
you don't learn well. In my
opinion, No, you know,

210
00:15:11.000 --> 00:15:16.720
I'm the same that I really my
aha moment that you're talking about happened because

211
00:15:16.759 --> 00:15:20.799
I was emotionally invested in what was
happens. Right, It wasn't it wasn't

212
00:15:20.840 --> 00:15:24.799
a homework assignment which I wasn't emotionally
invested in, or it wasn't something that

213
00:15:26.480 --> 00:15:30.799
someone a nabor asked me to.
It was like I was emotionally triggered and

214
00:15:31.039 --> 00:15:35.440
boom, it was off to the
races at that point. Yeah, so

215
00:15:35.639 --> 00:15:37.559
we're slowly building up to the path
where I met you frosting. But there's

216
00:15:37.600 --> 00:15:41.000
a couple other things. I think
the audience went like to hear, so

217
00:15:41.159 --> 00:15:43.840
I'll tell some of that. Yeah, yeah, of course. So I

218
00:15:43.960 --> 00:15:48.879
presented at I think the first Energy
CoV Yeah you were there. I presented

219
00:15:50.279 --> 00:15:54.840
why require js and Angular js are
a match made in heaven, right,

220
00:15:54.879 --> 00:15:56.080
because a lot of people were saying, oh, you don't need require,

221
00:15:56.480 --> 00:16:00.639
yes, and you know what's the
difference between the two, and I presented

222
00:16:00.679 --> 00:16:04.960
on this. And this is back
in the day where you've got either grunt

223
00:16:06.360 --> 00:16:08.759
or require those are your well or
you could just add script tags to a

224
00:16:08.759 --> 00:16:11.759
page, which means that you're insane. So if you want an actual build

225
00:16:11.759 --> 00:16:15.519
system, you've got require or grunt. Back in that day, there was

226
00:16:15.679 --> 00:16:18.919
no gold. Yet there was no
brother, there was no goal. But

227
00:16:18.960 --> 00:16:23.039
even with grunt, the problem was, back then there weren't modules. There

228
00:16:23.080 --> 00:16:27.279
weren't e s six modules. So
how did you take code that was in

229
00:16:27.519 --> 00:16:33.320
multiple files and keep them self contained
so they didn't pollute each other overright,

230
00:16:33.559 --> 00:16:37.480
So you'd have to wrap it in
a require a require wrapper essentially, right,

231
00:16:40.240 --> 00:16:44.440
yeah, right, And then you
had Angular JS modules, which is

232
00:16:44.480 --> 00:16:48.039
not a file module, it's not
a file container. It's really a di

233
00:16:48.200 --> 00:16:53.440
I registration system. But the two
were beautiful. So I presented on it,

234
00:16:53.480 --> 00:16:57.480
and then afterwards I was walking in
the ng Salt Lake City ng KMF

235
00:16:57.639 --> 00:17:03.600
halls and I saw Mischkoh and Brad
Green and I think even Igor was there,

236
00:17:03.600 --> 00:17:03.920
and I went up to him.
I said, you know, I

237
00:17:03.960 --> 00:17:07.920
said, I just love Angular JS. I said it was Angular at the

238
00:17:07.920 --> 00:17:11.359
time. Yeah, yeah, back
then we just called the Angular exactly right.

239
00:17:11.359 --> 00:17:15.839
They had a name change, which
I think was probably not a good

240
00:17:15.880 --> 00:17:19.640
idea, but they were married to
the idea of Angular, and so I

241
00:17:19.680 --> 00:17:23.240
went up to them and I just
told him how much I love the work

242
00:17:23.279 --> 00:17:29.519
they were doing and how excited I
was about all the features and the thought

243
00:17:29.559 --> 00:17:33.440
that went into Angular at the time, and I remember Brad said it looks

244
00:17:33.440 --> 00:17:36.160
at me and goes, well,
why don't you come work for us at

245
00:17:36.160 --> 00:17:40.559
Google? And I know he was
saying it casually, like you basically you'd

246
00:17:40.599 --> 00:17:42.279
have to go through the interview process
and all that, so it wasn't a

247
00:17:42.319 --> 00:17:45.160
secret door. Yeah, And I
looked at him and I said, you

248
00:17:45.200 --> 00:17:49.519
know, my wife is a partner
and a practice in Des Moines. I

249
00:17:49.519 --> 00:17:52.960
said, we're not moving. I
said, I would love to work for

250
00:17:52.000 --> 00:17:55.799
you guys, but to work for
you guys, I have to relocate.

251
00:17:55.839 --> 00:17:57.880
And Brad goes yes, I said, I'm not moving, so sorry,

252
00:17:57.880 --> 00:18:03.039
I can't do it. Well.
About two months later, I get an

253
00:18:03.079 --> 00:18:06.559
email from Brad Green. He says, Hey, we have this interesting project

254
00:18:06.599 --> 00:18:10.240
going on. I want to see
if you might be interested in talking about

255
00:18:10.279 --> 00:18:11.519
it. I said, well,
Brad, I said, I'm going to

256
00:18:11.599 --> 00:18:18.359
be working with a client in San
Francisco and down at the what's that military

257
00:18:18.400 --> 00:18:22.720
base there in San fran the Presidio? Is that right, the Presidio?

258
00:18:22.799 --> 00:18:26.480
I don't know. I don't know. So they had a little startup there

259
00:18:26.599 --> 00:18:30.440
and I was working with them for
about two weeks and I said, on

260
00:18:30.519 --> 00:18:34.039
that Friday, Wat's come down to
Mountain View and we can talk. And

261
00:18:34.039 --> 00:18:36.920
Brad said, no, you don't
have to do that. I said,

262
00:18:36.920 --> 00:18:38.480
no, I really want to.
I wanted to see Google. Right.

263
00:18:40.920 --> 00:18:45.720
So Friday comes along and the week
had been hell right. It was just

264
00:18:47.000 --> 00:18:51.480
I was so brain dead, no
energy, and I came within a fingers

265
00:18:51.799 --> 00:18:56.039
with of making a decision of going, you know what, I'll just tell

266
00:18:56.039 --> 00:18:59.880
Brad I can't make it. And
then I thought, I said I would

267
00:19:00.039 --> 00:19:03.200
do something. I need to follow
through. And that's another thing that I

268
00:19:03.200 --> 00:19:07.079
have to tell people here in the
audience. That's another thing I would recommend

269
00:19:07.640 --> 00:19:11.160
if a few things that you could
focus on is if you say you're going

270
00:19:11.200 --> 00:19:17.079
to do something, then either do
it or communicate ahead of time why that

271
00:19:17.119 --> 00:19:18.920
there's an issue. That's all right, But if you say you're going to

272
00:19:19.000 --> 00:19:22.839
do it, then don't not do
it, or don't bail out at the

273
00:19:22.880 --> 00:19:27.960
last minute. So I drove down
to Mountain View and I didn't know where

274
00:19:29.079 --> 00:19:32.440
that was, right. I didn't
realize it was a two with traffic.

275
00:19:32.559 --> 00:19:34.400
It was almost a two hour drive. Oh yeah, that's a hike to

276
00:19:34.440 --> 00:19:40.000
get all the way down there.
Yeah, from the Goldigate Bridge all the

277
00:19:40.039 --> 00:19:41.920
way down was it was a pain, right, So I get down and

278
00:19:41.960 --> 00:19:47.039
I then trying to find where they
are, trying to find the check in

279
00:19:47.079 --> 00:19:49.400
desk and all that, and Brad
shows up like it finally comes around the

280
00:19:49.400 --> 00:19:52.799
corner and I never I haven't seen
Brad in a while. And for those

281
00:19:52.799 --> 00:19:56.920
of you have never met Brad,
Brad's are very charismatic individual. It's probably

282
00:19:56.960 --> 00:20:02.279
what six three six' four yeah, tall, bright smile, comes up,

283
00:20:02.400 --> 00:20:04.039
gives me a handshake and says,
hey, come on. It leads

284
00:20:04.079 --> 00:20:08.119
me through a maze of buildings and
doors and all at a conference room,

285
00:20:08.359 --> 00:20:11.680
sits down. I said, so, so tell me about this project of

286
00:20:11.720 --> 00:20:15.920
yours. He goes, well,
he goes, you know we have Angular

287
00:20:15.400 --> 00:20:21.279
and material design is we had this
speck coming out called the Material Design Specification.

288
00:20:22.079 --> 00:20:23.839
He goes, have you heard of
that? I said no, And

289
00:20:23.880 --> 00:20:27.240
he said, well, we have
this UI specification, but there isn't a

290
00:20:27.359 --> 00:20:32.200
UI library and Angular and I shook
my head yes, I said, yeah,

291
00:20:32.240 --> 00:20:34.039
I know. It's it's sort of
a glaring omission. He goes,

292
00:20:36.160 --> 00:20:41.079
it was brutal. He goes,
well, I think we need to I'm

293
00:20:41.119 --> 00:20:47.640
forming it. I want to form
a little team to build an Angular Material

294
00:20:47.680 --> 00:20:52.400
Library. I said okay. He
goes, are you interested? I said,

295
00:20:52.440 --> 00:20:56.960
well, I said, I'm interested, but who are the people that

296
00:20:56.000 --> 00:21:00.279
are going to be involved? And
so, and it turns out the people

297
00:21:00.319 --> 00:21:06.119
that were involved were Adam and Max
from the Ionic team right from Max is

298
00:21:06.160 --> 00:21:11.400
now the CEO of A Yeah,
and Adam Flatter I always pronounced his name

299
00:21:11.440 --> 00:21:19.000
wrong. Flater Flatter was also he
was He's an amazing individual also. So

300
00:21:19.079 --> 00:21:23.640
I was working with those two and
there were a couple other people and I

301
00:21:23.680 --> 00:21:26.440
said, okay, well when's the
project going to start? And he goes,

302
00:21:26.680 --> 00:21:30.720
I don't know, maybe eight or
six or eight weeks. And I

303
00:21:30.720 --> 00:21:33.400
said, well, how long is
the project going to be? And he

304
00:21:33.720 --> 00:21:38.640
goes, I don't know, maybe
three or six months. And I said,

305
00:21:38.640 --> 00:21:41.799
well, and how many do you
have a vision of what you how

306
00:21:41.839 --> 00:21:45.279
you wanted this to be created and
what you wanted to be delivered. He

307
00:21:45.319 --> 00:21:47.880
goes no, heause, I think
I'm going to leave that up to you

308
00:21:47.920 --> 00:21:51.000
guys to figure that out. And
I looked at him and I said,

309
00:21:51.039 --> 00:21:52.079
well, I said, I'm interested, but you know, I need to

310
00:21:52.119 --> 00:21:56.519
talk to my wife. So we
talked a few more minutes later, and

311
00:21:57.559 --> 00:22:00.720
he gave me some other offers and
I said, okay, I said,

312
00:22:00.200 --> 00:22:03.279
I said, now I can't resist. I said, I'll accept the offer,

313
00:22:03.319 --> 00:22:07.319
but I'm still going to confirm it
with my wife Brad. Yeah.

314
00:22:07.359 --> 00:22:12.119
And that project went from this abstract
of maybe three to six months, it

315
00:22:12.160 --> 00:22:15.279
turned into a two and a half
year project. Yeah, and a four

316
00:22:15.400 --> 00:22:22.279
year engagement with me with with the
Angular Google team. Wow. Hey folks,

317
00:22:22.319 --> 00:22:25.839
this is Charles max Wood and I
just launched my book, The Maxicoter's

318
00:22:25.839 --> 00:22:29.839
Guide Defining Your Dream Developer Job.
It's up on Amazon. We self published

319
00:22:29.839 --> 00:22:32.359
it. I would love your support. If you want to go check it

320
00:22:32.400 --> 00:22:34.759
out, you can find it there, The Maxicoter's Guide Defining Your Dream Developer

321
00:22:34.839 --> 00:22:40.799
Job. Have a good one,
Max out. We went from and Max

322
00:22:40.880 --> 00:22:44.119
and Adam short within six months they
had to spin off. I think it

323
00:22:44.160 --> 00:22:48.279
was six months. I had to
spin off because Ionic was getting real traction

324
00:22:48.599 --> 00:22:52.799
and Max just he was made a
very wise decision. I can't do both

325
00:22:52.839 --> 00:22:56.279
and do well at both. I
need to focus on the company and the

326
00:22:56.319 --> 00:23:00.200
ionics, you know, the framework
and their business. So that left me

327
00:23:02.240 --> 00:23:07.440
pretty much as the technical lead.
And at one point we had ten developers.

328
00:23:07.799 --> 00:23:11.559
Now all these developers were working remote
just on the material stuff. Tend

329
00:23:11.599 --> 00:23:15.480
to just on angular jass material because
it was all from scratch. And for

330
00:23:15.559 --> 00:23:19.000
those of you who have never seen
it, let me let me see if

331
00:23:19.000 --> 00:23:23.799
I can pull up the just tell
everyone with the r LS material dot angular

332
00:23:26.000 --> 00:23:30.559
jsp Yeah, material dot angular jas
dot org. So not only did we

333
00:23:30.599 --> 00:23:34.319
need to create this library, but
we needed to create documentation for it,

334
00:23:36.039 --> 00:23:38.359
and we needed to have demos.
Yeah, we did have an API set,

335
00:23:38.920 --> 00:23:44.839
and we needed to have documentation that
was synced with the specific version that

336
00:23:44.880 --> 00:23:47.839
you were using, so you could
go to any version and see the docs

337
00:23:47.839 --> 00:23:49.440
for that version, for that version, so that you can you could be

338
00:23:49.519 --> 00:23:53.680
pinned to an older version still have
the doc version correct. So we knew

339
00:23:53.720 --> 00:24:00.240
this right, and the dot the
demos had to be a reasonable enough the

340
00:24:00.279 --> 00:24:03.160
similar type of things that you might
have in the real world, right,

341
00:24:03.519 --> 00:24:06.279
and we wanted to have a way
that you could link from the demos to

342
00:24:06.319 --> 00:24:10.200
online to get this sort of This
was before sack Blitz, right, so

343
00:24:10.400 --> 00:24:14.400
we figured out how to do it
with codepen So it was all cutting edge,

344
00:24:14.480 --> 00:24:17.200
right. How are we going to
do dialogues? How are we going

345
00:24:17.240 --> 00:24:19.799
to do pop ups? How did
we do the select menu and all and

346
00:24:19.880 --> 00:24:22.640
all of this had to be tied
into how we were going to do builds

347
00:24:22.680 --> 00:24:27.920
and the build tools within an angular
Jazz framework before ES six and type scripts.

348
00:24:29.000 --> 00:24:34.359
So it was really quite the task. So at one point, we're

349
00:24:34.400 --> 00:24:38.880
turning along and I'll tell two funny
stories because and Froster, you've heard of

350
00:24:38.880 --> 00:24:41.160
this these before, but I'll tell
them for the sake of the audience.

351
00:24:42.559 --> 00:24:48.359
We're turning along, and there were
and all of our people. After the

352
00:24:48.400 --> 00:24:52.799
first four developers, almost everyone else
came on board the team based on open

353
00:24:52.799 --> 00:24:59.920
source contributions they were involved in on
the gethab rebo. They were submitting issues,

354
00:25:00.039 --> 00:25:03.200
they were they were having, they
were helping support other issues by adding

355
00:25:03.559 --> 00:25:08.880
reasonable comments and suggestions, they were
submitting prs, and there was one individual

356
00:25:10.839 --> 00:25:15.519
that sort of stood out. So
I reached out to Naomi. Naomi Black

357
00:25:15.759 --> 00:25:21.599
was the PM for on that project, and she was just fantastic and just

358
00:25:21.680 --> 00:25:25.960
loved Naomi, and I said,
Naomi, this guy is doing He's been

359
00:25:26.160 --> 00:25:30.839
so prolific in supporting and getting involved. I think we should get him on

360
00:25:30.880 --> 00:25:34.160
the team. And so Naomi said, do it. So I reached out

361
00:25:34.160 --> 00:25:38.960
to this gentleman and it turns out
that his name was Elad Bezalon, and

362
00:25:40.039 --> 00:25:45.240
Alad was a soldier in the Israeli
Army working at night, contributing all the

363
00:25:45.279 --> 00:25:51.000
way across the war. Oh yeah, and he was he was present every

364
00:25:51.079 --> 00:25:53.319
day and he was working, and
I mean, he was really contributing good

365
00:25:53.359 --> 00:25:56.279
stuff, right. So I reached
out to him. And at the time,

366
00:25:56.359 --> 00:26:00.799
his English wasn't that great. As
I recall, if it was great,

367
00:26:00.839 --> 00:26:03.680
I apologize, but I, as
my memory says, it wasn't that

368
00:26:03.799 --> 00:26:07.720
great. And I said, and
a lot of I now are really close

369
00:26:07.759 --> 00:26:11.039
friends. In fact, I consider
him part of the family. He's so

370
00:26:11.079 --> 00:26:17.519
awesome. He is awesome, right, So I all right, how did

371
00:26:17.559 --> 00:26:19.039
I? So I reached out to
a lot and I said, hey,

372
00:26:19.160 --> 00:26:22.720
I said, we want to see
if you'd like to join. And we

373
00:26:22.720 --> 00:26:25.400
got on a conference call and I
said, like, if you'd like to

374
00:26:25.440 --> 00:26:27.839
join the Angular Jams material And it
was almost like he dropped the mic.

375
00:26:27.839 --> 00:26:30.920
He's running. You could hear him
run around the back of the room and

376
00:26:30.079 --> 00:26:33.160
going oh my god, oh my
god, oh my god, right and

377
00:26:33.279 --> 00:26:37.319
screaming. He finally comes out and
he goes, yeah, yeah, I'd

378
00:26:37.359 --> 00:26:40.480
love to And I said, and
I said of course, we're gonna have

379
00:26:40.519 --> 00:26:42.279
to pay you. Drops the mic
again. Oh my god, oh my

380
00:26:42.400 --> 00:26:47.359
god, running around you know,
just right right right. He was going

381
00:26:47.400 --> 00:26:48.920
to do it for free. I
was like, no, no, no,

382
00:26:48.960 --> 00:26:51.960
we're going to pay your right.
You're part of the team. We're

383
00:26:51.960 --> 00:26:56.000
gonna pay you, right. And
so he joined. And there was also

384
00:26:56.119 --> 00:27:00.960
you know, Robert Messer Lee and
Ryan Schmacher and a few others. And

385
00:27:00.039 --> 00:27:03.559
he was great. And then we
had one other one was we had another

386
00:27:03.559 --> 00:27:07.039
individual that was drowning us in prs, Like, wasn't just giving us one

387
00:27:07.119 --> 00:27:11.480
or two, was giving us like
four to ten a week. It just

388
00:27:11.559 --> 00:27:15.799
killing us. And he was did
you have to all this and not only

389
00:27:15.839 --> 00:27:18.680
review it? Some of them we
were already doing these features in our own

390
00:27:18.720 --> 00:27:22.000
pipeline. So he was replicating and
he wasn't communicating with us, and and

391
00:27:22.079 --> 00:27:26.279
he was he was all over the
place, right And and so before you

392
00:27:26.400 --> 00:27:30.400
join the team, we would test
you. So we had a test.

393
00:27:30.440 --> 00:27:33.400
We'd say, all right, find
some prs this person was involved in,

394
00:27:33.880 --> 00:27:37.519
asked going to make changes, See
how they communicate, see how they respond.

395
00:27:37.759 --> 00:27:41.319
Are they being a jerk? Because
that they are, they automatically excluded

396
00:27:41.359 --> 00:27:45.599
themselves right. So there was no
written policy about how you get on the

397
00:27:45.640 --> 00:27:48.240
team. It was all like the
secret process, right. Yeah. And

398
00:27:48.640 --> 00:27:55.160
so this individual, he had some
good prs, he had others that were

399
00:27:55.240 --> 00:27:56.799
reasonable, but they weren't in the
direction we wanted to go. So I

400
00:27:56.839 --> 00:27:59.680
remember reaching out to a lot.
I said, a lot, this,

401
00:27:59.680 --> 00:28:02.079
this guy is out of control.
Reached out to him and try to get

402
00:28:02.119 --> 00:28:06.400
him to collaborate better. A lot
couldn't couldn't get him to coordinate. So

403
00:28:06.599 --> 00:28:08.079
I went back to know him,
Naomi, he said, Naomi said,

404
00:28:08.240 --> 00:28:11.279
I think we the best thing we
can do is hire this one to get

405
00:28:11.319 --> 00:28:18.000
him on the team. So reached
out to this individual. And this individual

406
00:28:18.079 --> 00:28:22.920
his name was Paul gash Fender.
It was now also on the Angler Material

407
00:28:22.960 --> 00:28:26.720
team, but he was a kid
back then. Yeah, you hit it

408
00:28:26.720 --> 00:28:30.480
on the head. So it turns
out Paul, who could hardly he could

409
00:28:30.480 --> 00:28:36.240
speak English a little bit, was
fifteen in high school again at night,

410
00:28:36.440 --> 00:28:40.240
right. But because he was young, we couldn't pay him, and so

411
00:28:40.400 --> 00:28:44.240
I asked him if he wanted to
be involved, and he said absolutely,

412
00:28:44.400 --> 00:28:47.079
And then I said, all right, well then we'll figure out how to

413
00:28:47.079 --> 00:28:52.240
bring you and your parents to Angular
connect he'd never been to a conference before.

414
00:28:52.640 --> 00:28:56.200
He's just young, but he was
a prodigy, right, I mean,

415
00:28:56.240 --> 00:29:03.039
he was just amazing, And so
he joined the team and his focus

416
00:29:03.359 --> 00:29:07.759
like he could just breathe code.
I mean I still to this day,

417
00:29:07.880 --> 00:29:11.720
but back then, even when he
was fifteen or sixteen, I'd get stuck

418
00:29:11.759 --> 00:29:14.480
on something. I'd reach out to
Paul or a lot or anyone on the

419
00:29:14.480 --> 00:29:18.400
team. But you know, I
remember several instances work with Paul. Paul,

420
00:29:18.680 --> 00:29:21.920
I'm stuck here. Can you get
on a call with me and look

421
00:29:21.960 --> 00:29:25.599
at some code? And half the
time it was me explaining it to him

422
00:29:25.599 --> 00:29:30.200
and I solved it. The other
half of the time you just rebroduct it

423
00:29:30.240 --> 00:29:33.359
to him and figure right out,
got it? Yep, thank you because

424
00:29:33.359 --> 00:29:36.759
I always forget that term, right, what is rubber ducking? And the

425
00:29:36.839 --> 00:29:40.400
other half of the time he solved
it. And there was no like,

426
00:29:40.480 --> 00:29:42.720
hey I'm older, you're younger,
none of that crap. It was more

427
00:29:42.759 --> 00:29:47.119
of I love the way you think. I love the solutions, I love

428
00:29:47.160 --> 00:29:48.880
what you're doing. I love the
way you collaborate. And it was two

429
00:29:48.920 --> 00:29:55.680
way. I think that was the
secret to our success on the Angular Jance

430
00:29:55.759 --> 00:30:03.319
Material team was that we respected each
other. We were willing to uh,

431
00:30:03.960 --> 00:30:07.799
we were willing willing to rubber duck
with each other, We were willing to

432
00:30:07.880 --> 00:30:11.519
learn from each other. Right,
there were in everyone and the team,

433
00:30:12.359 --> 00:30:18.759
and so that project went on and
I think we released one oh and then

434
00:30:18.799 --> 00:30:23.359
one dot one and then I actually
moved on from there to oh. Right

435
00:30:23.400 --> 00:30:26.480
about then, Frosty, was when
you and I met. Yeah, because

436
00:30:26.880 --> 00:30:32.160
right at the end, I was
thinking, well, we need something,

437
00:30:32.200 --> 00:30:34.359
so Frosty, why don't you tell
us tell that part about how we because

438
00:30:34.359 --> 00:30:37.480
you reached out to me, sir. Yeah. Yeah, so me and

439
00:30:37.519 --> 00:30:41.480
you knew of each other to say
we were friends. Were genuous though,

440
00:30:41.640 --> 00:30:47.720
right, like we weren't each other
no, yeah, and we never worked

441
00:30:47.759 --> 00:30:51.039
together before. We just knew each
other on the professional, on the in

442
00:30:51.079 --> 00:30:56.440
the community. Yeah definitely. And
Egghead was like, hey, come up

443
00:30:56.440 --> 00:31:00.599
with some more courses, and I
was like, why I don't. I

444
00:31:00.599 --> 00:31:06.640
don't know what course I could do, Like I suppose it might be cool

445
00:31:06.720 --> 00:31:12.440
to do a course on a material
like a lot of people should be using

446
00:31:12.480 --> 00:31:15.000
that because I knew how hard it
was to build my own components, like

447
00:31:15.039 --> 00:31:18.799
I had building my entire component library
at work. Me and my coworkers and

448
00:31:18.880 --> 00:31:22.759
it was a pain. It was
a pain. So it's like, maybe

449
00:31:22.759 --> 00:31:25.759
we could do an angular material one. And so I pined you and was

450
00:31:25.799 --> 00:31:33.359
like, oh, what do you
think collaborate and you were like, yeah,

451
00:31:33.519 --> 00:31:36.359
yeah, definitely, I'll come to
Utah. And I wasn't expecting you

452
00:31:36.400 --> 00:31:38.759
to be so like lean in so
hard. Like I was like, I

453
00:31:38.799 --> 00:31:41.880
hope you leaned in, but you
leaned in hard. You're like, no,

454
00:31:41.960 --> 00:31:42.400
I'll come to use it. I
was like, oh, okay,

455
00:31:42.519 --> 00:31:48.519
yeah, then I guess we're definitely
doing it. So yeah, and you

456
00:31:48.599 --> 00:31:56.079
booked an airbnb and we spent a
weekend and then dude, we didn't spend

457
00:31:56.119 --> 00:32:00.000
a weekend. You took off a
week. We spent eight hours a day

458
00:32:00.720 --> 00:32:05.799
in this airbnb building. It was
the videos for at least five days.

459
00:32:05.880 --> 00:32:09.440
It was. I was so amazed
with you and your passion and your willingness

460
00:32:09.480 --> 00:32:13.720
to do this, and it was
so much fun. I was the same.

461
00:32:13.759 --> 00:32:20.559
I was like, Thomas, Thomas's
is crazy dedicated to this project,

462
00:32:20.599 --> 00:32:25.680
Like he's flying to so like paying
his own airbnb costs. I felt so

463
00:32:25.880 --> 00:32:28.440
on the hook. I was like, all right, I'm on the hook.

464
00:32:28.480 --> 00:32:30.119
I gotta get this done. Like
I gotta I gotta meet him fifty

465
00:32:30.200 --> 00:32:34.680
fifty and he can all way in, so I gotta lean in the heart.

466
00:32:34.759 --> 00:32:36.759
So yeah, I was, I
was. I was. Like Likewise,

467
00:32:36.799 --> 00:32:40.240
the admiration was like, Okay,
Thomas is committed way more than I

468
00:32:40.279 --> 00:32:44.880
am, so I got to step
up my commitment level. Like that's right.

469
00:32:45.240 --> 00:32:47.440
It was like this weird thing.
And you were working at Domo at

470
00:32:47.440 --> 00:32:51.680
the time, and I knew that
you were involved in the community, but

471
00:32:52.000 --> 00:32:55.400
I had no sense of how much
of an architect you were yourself, right,

472
00:32:55.440 --> 00:32:59.960
And so that week together it was
like, holy hell, here's what

473
00:33:00.039 --> 00:33:05.440
person. He's like a total hidden
gem and both from a person perspective and

474
00:33:05.559 --> 00:33:08.079
from a skill perspective, right,
And it was just it was And to

475
00:33:08.119 --> 00:33:12.720
be clear to the audience, Google
wasn't paying for this trip, you know,

476
00:33:12.920 --> 00:33:15.400
as you said, Frosty, it
was out of my own pot because

477
00:33:15.680 --> 00:33:17.559
if we were going to have it
on Egghead and then Egghead was going to

478
00:33:17.640 --> 00:33:22.039
charge money for it, No way
we were going to make checks and Google

479
00:33:22.039 --> 00:33:23.359
couldn't pay for it. They weren't
going to pay for that, right,

480
00:33:23.400 --> 00:33:29.480
Even though Naomi was endorsing me being
away saying yes, go do this because

481
00:33:29.480 --> 00:33:34.359
she, you know, her opinion
about Angular and the way she involved the

482
00:33:34.359 --> 00:33:38.880
community was the secret to his success, right, getting the community intimately involved

483
00:33:38.920 --> 00:33:45.039
in the process and the features and
the feedback and all that was. So

484
00:33:45.079 --> 00:33:50.400
then you and I that's when we
did the videos, and that was you

485
00:33:50.440 --> 00:33:53.599
know, it was like the start
of a really good friendship. And then

486
00:33:53.599 --> 00:33:59.079
from there as we started to continue
that journey. Then I went into Angular

487
00:33:59.079 --> 00:34:01.640
flex Lamp. Yeah, I remember, you know, I had this ideas

488
00:34:01.720 --> 00:34:05.880
well, No, even before that. That's how I got involved with thought

489
00:34:05.920 --> 00:34:09.800
Ram. So I met Christoph and
Pascal at Energie COMF and actually I met

490
00:34:09.840 --> 00:34:14.559
them before that, but I started
talking to them at Energie comp about their

491
00:34:14.599 --> 00:34:19.199
training that they were doing and I
really liked them, and I really liked

492
00:34:19.239 --> 00:34:21.679
the way they did their Angular masterclass, and I said, I want to

493
00:34:21.679 --> 00:34:23.039
be one. I want to be
involved with you guys in doing training.

494
00:34:23.760 --> 00:34:28.079
So I started doing that and traveling
around the world with them, you know,

495
00:34:29.320 --> 00:34:35.719
Ireland and England and Australia and New
Zealand and the United State. We

496
00:34:35.760 --> 00:34:37.480
didn't do any yeah, even in
the United States. We did some work

497
00:34:38.000 --> 00:34:43.360
and teaching this to hundreds of developers. We had Craig Spence on here a

498
00:34:43.440 --> 00:34:45.760
few weeks ago, well maybe a
few months ago, and we talked about

499
00:34:45.840 --> 00:34:51.119
your travels around the world, specifically
work with him and his team. So,

500
00:34:51.199 --> 00:34:54.480
yeah, you traveled, you know. Craig is he cracks me up.

501
00:34:54.519 --> 00:34:58.559
Craig is also someone I hold dear
to my heart. When I first

502
00:34:58.599 --> 00:35:01.599
met Craig, he came. He
never walks around without his laptop and he's

503
00:35:01.639 --> 00:35:06.199
always like coding while he's walking,
right, because he's just this. But

504
00:35:06.239 --> 00:35:08.760
when I met him at his laptop
open walking to a meeting, and I

505
00:35:08.800 --> 00:35:14.719
think he had pink fuzzy bunny slippers
on or something like that, and he's

506
00:35:14.760 --> 00:35:21.719
just so eccentric and so intelligent and
so himself that I just love, you

507
00:35:21.719 --> 00:35:23.440
know. It was like, dude, you're awesome. He is awesome.

508
00:35:24.199 --> 00:35:29.360
So so yeah, it's funny how
as you get involved in the community and

509
00:35:29.400 --> 00:35:34.599
you start For me, it was
not only a team lead on material JS

510
00:35:35.079 --> 00:35:37.800
and working as the architect on angular
flex layout, and then working with you

511
00:35:37.880 --> 00:35:42.159
on the Egghead videos and working with
thought Ram on the training. I've met

512
00:35:42.239 --> 00:35:45.880
so many amazing people. And that's
the thing that I keep trying to leave

513
00:35:46.159 --> 00:35:52.360
as an important message to everyone is. It's not the goal that's so important.

514
00:35:52.159 --> 00:35:55.920
It's the journey, it's the legacy, it's the relationships you build from

515
00:35:55.960 --> 00:36:05.559
project to project, right, and
and then from there from angular flex layout.

516
00:36:05.679 --> 00:36:08.360
Then I started working with Narwal.
You know, I had met I

517
00:36:08.440 --> 00:36:13.639
knew Jeff Cross informally while I Google, but I didn't really get to know

518
00:36:13.719 --> 00:36:16.519
them until I said that. He
and Victor spun off and I had a

519
00:36:16.599 --> 00:36:22.960
chance to work with them for almost
a year at Narwal and amazing two individuals.

520
00:36:23.079 --> 00:36:29.280
Amazing. I met some amazing people
there at Narwal, and they're amazing

521
00:36:29.280 --> 00:36:32.239
developers. Victor is a is a
force under himself, or not under himself,

522
00:36:32.239 --> 00:36:36.440
but under the in the industry.
Right. He's really he makes me

523
00:36:36.559 --> 00:36:42.880
laugh because he's so cynical and so
passionate, and he and so insightful.

524
00:36:44.119 --> 00:36:45.360
And then from there I went.
I went back off on my own as

525
00:36:45.480 --> 00:36:51.400
as more as an independent contractor and
you know my but never along the way

526
00:36:51.599 --> 00:36:54.800
have I stopped believing in myself.
But it's never been easy, right,

527
00:36:54.880 --> 00:37:00.079
It's there have been moments where it's
been one has to step back and go,

528
00:37:00.599 --> 00:37:05.960
Okay, I gotta you can burn
out so easily, especially as a

529
00:37:05.960 --> 00:37:08.960
as a developer, and or you
can be pulled in one direction and realize

530
00:37:08.960 --> 00:37:12.760
it's a dead end. So what
do you do when you're being pulled in

531
00:37:12.800 --> 00:37:15.039
one direction and you feel your careers
in a dead end? What do you

532
00:37:15.119 --> 00:37:20.599
do? You have to step back
and go what is it you love and

533
00:37:20.760 --> 00:37:22.239
what is it you feel you want
to learn next? And then maybe you

534
00:37:22.280 --> 00:37:27.360
start teaching yourself this on the weekends
of the night instead of watching TV and

535
00:37:28.239 --> 00:37:32.800
sitcoms at night. Maybe spend two
or three nights a week teaching yourself something

536
00:37:32.880 --> 00:37:39.719
right and between front end Masters and
egghead and YouTube. You want to learn

537
00:37:39.800 --> 00:37:43.360
graft QL, you want to learn
about r XCHS. You want to learn

538
00:37:43.360 --> 00:37:45.000
about ngr X, you want to
learn about react, you want to learn

539
00:37:45.000 --> 00:37:50.159
about Angular, you want to learn
how to do rest service, whatever it's.

540
00:37:50.239 --> 00:37:57.440
There's opportunities now. And the thing
that's really cool, Frosty is angler

541
00:37:57.559 --> 00:38:01.880
Jass prove this. You don't have
to interview to knock on a door to

542
00:38:01.880 --> 00:38:06.920
get invited in. If you just
especially with open source, if you just

543
00:38:06.920 --> 00:38:13.239
start contributing some of these projects,
if you're contributing in a in a worthwhile

544
00:38:13.280 --> 00:38:16.039
way and in a meaningful way,
they're going to exec they'll reach out to

545
00:38:16.079 --> 00:38:22.159
you. Now, it's not guaranteed, right, So there's you. I

546
00:38:22.159 --> 00:38:28.320
can't tell you how to pick one
or not. And but the opportunities can

547
00:38:28.320 --> 00:38:30.559
happen. And I think the way
they happen is just if you're passionate and

548
00:38:30.599 --> 00:38:37.199
you want to write software and you
want to collaborate. Yeah, I So

549
00:38:37.400 --> 00:38:38.960
I have a question for you.
I want to see what your thoughts are.

550
00:38:40.119 --> 00:38:45.199
So you're ready for you're ready for
a change, Maybe you're maybe you're

551
00:38:45.320 --> 00:38:49.599
you just describe, Hey, you're
at a point where you're you're meeting or

552
00:38:49.639 --> 00:38:52.119
resistance or a ceiling, or you're
you're you're saying, hey, I'm at

553
00:38:52.159 --> 00:38:55.840
a dead end. I want to
change. You're saying right, And you're

554
00:38:55.880 --> 00:39:02.599
saying, hey, do there's so
many resources do instead of watching TV?

555
00:39:02.920 --> 00:39:07.440
Do these do one of a million
things? Right? And I totally agree

556
00:39:07.440 --> 00:39:10.639
with that. I'm going to ask
you a different question. What if you're

557
00:39:10.679 --> 00:39:16.920
in quicksand and if you don't like
if you do anything besides everything you're doing,

558
00:39:17.840 --> 00:39:22.079
If you do anything, if you
if you try and do the things

559
00:39:22.119 --> 00:39:24.039
you just said, you're gonna drop
some other balls that you can't drop,

560
00:39:24.119 --> 00:39:29.159
right, how do I get out
of What do you think, Thomas,

561
00:39:29.239 --> 00:39:31.920
how do you get out of that
scenario, like the quicksand scenario where you're

562
00:39:31.920 --> 00:39:35.639
in the middle, so it's hard
to see what people on the outside see

563
00:39:35.679 --> 00:39:38.800
and you're just struggling from the inside. What do you do? What do

564
00:39:38.840 --> 00:39:43.199
you recommend someone who's in quicksand right
now? Because there are some people that

565
00:39:43.239 --> 00:39:46.360
are at that spot right now,
some people listening. Well, there's a

566
00:39:46.400 --> 00:39:51.000
whole bunch of reasons why you can
be in quicksand. Yeah. Some of

567
00:39:51.039 --> 00:39:53.920
them can be because you have a
sociopathic boss. Some of them can be

568
00:39:53.920 --> 00:39:58.480
because you are in a death march
of a project. Some of them can

569
00:39:58.519 --> 00:40:02.679
be because you're just simply in such
deep water that and you don't have a

570
00:40:02.719 --> 00:40:07.079
mentor right or you're on a team
that's really not trying to help you and

571
00:40:07.119 --> 00:40:10.840
you're not at their level. Doesn't
mean you can't be, but currently you're

572
00:40:10.880 --> 00:40:15.760
not there, Leble. So there
are a whole bunch of reasons and it's

573
00:40:15.119 --> 00:40:22.480
and each of those reasons has actually
subtly different answers. But I think the

574
00:40:22.599 --> 00:40:27.800
number one thing I could say is
the thing to remember is career as a

575
00:40:27.800 --> 00:40:31.679
software developer it's not a sprint,
it's a marathon. You have to pace

576
00:40:31.719 --> 00:40:36.639
yourself. And so if you feel
like you're in quicksand or you're being asked

577
00:40:36.639 --> 00:40:39.039
to do more and more and more, and no matter how much you deliver,

578
00:40:39.119 --> 00:40:44.360
if people want more from you,
remember one thing. If you burn

579
00:40:44.400 --> 00:40:47.800
out, whether you're a contractor or
an employee, if you burn out and

580
00:40:47.840 --> 00:40:52.440
you go I can't do this anymore, they may be sad, but they

581
00:40:52.440 --> 00:40:57.559
will replace you. Yeah. Really, and and that's a harsh, hard

582
00:40:57.639 --> 00:41:00.639
reality, right that. Wait a
minute, you mean I'm not unique?

583
00:41:01.239 --> 00:41:05.880
Well, you are unique in the
way you present and all that, but

584
00:41:05.920 --> 00:41:09.280
you're not unique to You're not irreplaceable. Ever, you're the only person that

585
00:41:09.360 --> 00:41:15.880
can feel that this role at this
company. Correct. Yeah, well,

586
00:41:15.920 --> 00:41:21.280
you're unique as you, but you're
not irreplaceable on let's sale project right now.

587
00:41:21.400 --> 00:41:25.039
Your absence may cause a lot of
problems, but you're not irreplaceable.

588
00:41:25.800 --> 00:41:30.599
If you remember that, then you
start going Okay, Well, then if

589
00:41:30.880 --> 00:41:34.119
if I could burn out and I'm
in a marathon, the only person that

590
00:41:34.199 --> 00:41:37.960
can teach me to pace myself as
me. Now, that doesn't mean to

591
00:41:37.960 --> 00:41:39.880
slack off, but what it does
mean that if you think about that,

592
00:41:39.920 --> 00:41:43.440
and you go, Okay, I'm
in it for the long haul, and

593
00:41:44.000 --> 00:41:46.719
there can be sometimes where I need
to work some long hours, right or

594
00:41:46.920 --> 00:41:51.320
I have to work extra hard.
Believe me, I'm an advocate of hard

595
00:41:51.320 --> 00:41:57.440
work, and I'm also an advocate
of sometimes it requires extra hours. But

596
00:41:57.480 --> 00:42:02.800
I'm also an advocate of quality of
life. And so if you have to

597
00:42:02.840 --> 00:42:06.760
step back and go, what's really
important? Why am I in quicksand if

598
00:42:06.800 --> 00:42:10.000
you're in quicksand because you have a
boss who's not acknowledging you and who is

599
00:42:10.039 --> 00:42:17.679
not enabling your success and giving shout
outs to you, and his actions match

600
00:42:17.880 --> 00:42:22.880
his or her words, right,
Because I'm not trying to be sexist here,

601
00:42:22.880 --> 00:42:24.719
it could be a hym or her
if you're if you're working for a

602
00:42:24.760 --> 00:42:28.519
boss who doesn't do any of that, then there's only one thing you can

603
00:42:28.559 --> 00:42:32.840
do. You have to find a
different project. Yeah. Adventures in Angular

604
00:42:34.000 --> 00:42:37.159
is a dev chat dot tv production
made in partnership with hero Devs. Hero

605
00:42:37.280 --> 00:42:42.440
Devs is a group of Angular experts
who can help your team code like true

606
00:42:42.440 --> 00:42:45.519
developer heroes. If your team needs
an Angular expert, reach out to Aaron

607
00:42:45.639 --> 00:42:51.760
at hero dot dev today. I
now go ahead, you know, keep

608
00:42:51.760 --> 00:42:53.880
going, keep going. So now
if that's not the case, if you

609
00:42:54.280 --> 00:43:00.199
are, if you feel like you're
sinking because there's just too much to do,

610
00:43:00.880 --> 00:43:04.599
well, there's always going to be
too much to do. There's always

611
00:43:04.679 --> 00:43:07.840
going to be more and more work. So just pick ones that are the

612
00:43:07.840 --> 00:43:14.199
most important ones to work on.
Figure out a pace that seems reasonable for

613
00:43:14.280 --> 00:43:16.440
you that you can sort of manage
long term, and then you work to

614
00:43:16.519 --> 00:43:21.199
that. You and you just communicate
and you you learn to start pushing back

615
00:43:21.239 --> 00:43:23.119
going. I can't deliver that on
that time. It's there's not enough time

616
00:43:23.159 --> 00:43:28.400
to do that, or or I
need more people, or I'm blocked on

617
00:43:28.440 --> 00:43:31.280
this area. Right, So,
you can't be a miracle worker on you

618
00:43:31.360 --> 00:43:35.599
by yourself if people aren't going to
if you're on a team and they just

619
00:43:35.639 --> 00:43:38.519
expect you to pull a rabbit out
or that was a mixed set of metaphors.

620
00:43:38.679 --> 00:43:42.239
No, it's good. Yeah,
that's the other one. You can't

621
00:43:42.280 --> 00:43:50.519
be the sharpest monkey in the draw
on balance, just kid. Yeah,

622
00:43:50.639 --> 00:43:52.920
I was wonder where you were going. It was like he's pulling a Thomas.

623
00:43:52.920 --> 00:43:58.599
And then the other one is the
other one is what if you just

624
00:43:59.039 --> 00:44:02.159
you have the passion the pace isn't
too bad, but you just feel lost.

625
00:44:02.800 --> 00:44:06.639
Yeah, so there's two other snars
now this one you feel lost,

626
00:44:06.840 --> 00:44:09.400
Well, then find a mentor.
That mentor could be on your team,

627
00:44:09.480 --> 00:44:14.360
could be someone outside your team.
And if they're outside your team, finding

628
00:44:14.400 --> 00:44:16.599
a mentor is a little bit harder
because a mentor means that someone has to

629
00:44:16.639 --> 00:44:21.920
be willing to invest their own time
in helping, which means that you have

630
00:44:21.960 --> 00:44:24.199
to engage them on something. We
should always for mentors everyone. That's like

631
00:44:24.280 --> 00:44:29.519
one of the best pieces of advice
I would give is if you see someone,

632
00:44:29.840 --> 00:44:34.800
ask them will you help me?
They'll always say yes. And it's

633
00:44:35.079 --> 00:44:37.400
always really important to have a mentor. But to always thank your mentors and

634
00:44:37.519 --> 00:44:42.519
like to remember, hey, I'm
here because I'm a product of a system

635
00:44:42.599 --> 00:44:45.119
built by these mentors. So yeah, always always always look for new mentors.

636
00:44:46.079 --> 00:44:49.719
Well, and I'll give you a
good example. Someone reached out to

637
00:44:49.719 --> 00:44:52.559
me the other day and so they
had a problem with our xchs and didn't

638
00:44:52.599 --> 00:44:57.039
know the person just totally reached out
on random and I said, well,

639
00:44:57.079 --> 00:44:59.199
it was describing the problem. And
I said, well, I'm going to

640
00:44:59.239 --> 00:45:01.719
need a stack blitz before I can
really help you with this, and he

641
00:45:01.800 --> 00:45:07.400
provided stack blitz, and his directions
they were taking were not going to be

642
00:45:07.599 --> 00:45:12.159
productive. So I said, hang
on, I'll work on the weekend and

643
00:45:12.199 --> 00:45:14.400
I'll come up with stack blitz.
I think I have took like four or

644
00:45:14.440 --> 00:45:19.719
five hours created a stack blitz that
showed a lot of these practices and principles.

645
00:45:19.800 --> 00:45:22.480
And then and I said, just
compare yours to mine, study the

646
00:45:22.519 --> 00:45:27.199
differences, and here are some key
points that you should think about. And

647
00:45:27.239 --> 00:45:30.679
so that was a form of mentorship. But I didn't have time, and

648
00:45:30.719 --> 00:45:34.960
I refuse to give time to say
I'm going to and I don't mean this

649
00:45:35.039 --> 00:45:37.760
to meaning, but where I'm going
to sit and almost hold your hand and

650
00:45:37.760 --> 00:45:40.760
guide you through it right this.
I'll do that on projects, but just

651
00:45:40.960 --> 00:45:45.800
randomly out I just like you,
we don't have time to do that.

652
00:45:45.840 --> 00:45:49.559
We also have to manage as mentors
where we're going to focus our attention are

653
00:45:49.599 --> 00:45:53.679
in, especially if we have families. Right agree. So that's what I

654
00:45:53.760 --> 00:45:58.920
meant is sometimes finding a mentor to
be hard, because you might find someone

655
00:45:58.960 --> 00:46:01.880
who give you a quick life one
sentence answer that's not a mentor. You

656
00:46:01.960 --> 00:46:06.840
might find someone who will or a
group that will respond On Twitter with some

657
00:46:06.880 --> 00:46:09.280
feedback. That's not a mentor.
You might find someone who even gives you

658
00:46:09.320 --> 00:46:14.360
a stack blitz that's also not a
mentor. A mentor is someone who's going

659
00:46:14.440 --> 00:46:16.760
to be that you can bounce questions
off over a period of time. And

660
00:46:16.800 --> 00:46:21.000
it doesn't mean by the way that
a mentor holds your hand doesn't mean that

661
00:46:21.039 --> 00:46:24.480
you you as the student, don't
have to study a lot and learn and

662
00:46:24.559 --> 00:46:29.920
be clear on what your questions are. Right, So there's there's lots of

663
00:46:30.000 --> 00:46:36.719
nuances about that. Yeah, I
agree. I would always look, you

664
00:46:36.719 --> 00:46:40.440
can never have one mentor, right
Thomas, Like you have several and well,

665
00:46:40.480 --> 00:46:44.599
yeah, not at the same time. I'd say one at a time

666
00:46:44.960 --> 00:46:47.920
so you can focus because otherwise it's
add Yeah, like I have, I

667
00:46:47.960 --> 00:46:52.039
have several people like business mentors.
Okay, I think I'd even come at

668
00:46:52.039 --> 00:46:55.639
you with business questions before, just
because I don't want to tire I don't

669
00:46:55.639 --> 00:47:01.000
want to tire a specific mentor out, so ill Okay, that's fair.

670
00:47:01.159 --> 00:47:06.440
Yeah, then in that case I
would agree with what you're saying. If

671
00:47:06.440 --> 00:47:12.480
someone's really burnt out, I'll my
take is kind of what you said at

672
00:47:12.519 --> 00:47:16.039
the beginning, try and step back, figure out why you're in quicksand.

673
00:47:16.519 --> 00:47:21.239
Is it your team? Is it
your boss? Is it the project?

674
00:47:21.400 --> 00:47:24.719
Isn't something that you're you're clicking,
you're not understanding the project? Or is

675
00:47:24.760 --> 00:47:30.559
it? Because it's also could be
you. And the reason I say step

676
00:47:30.559 --> 00:47:35.599
back and look at that is because
until you can answer that, leaving might

677
00:47:35.639 --> 00:47:39.480
not help you. Might you might
end up at a new place, your

678
00:47:39.519 --> 00:47:44.239
hat hung on a new door where
you call home with the exact same problem.

679
00:47:44.360 --> 00:47:49.239
And so I would recommend figuring out
a way. Even though I know

680
00:47:49.400 --> 00:47:53.000
you're in quicksand and it's the worst
and you can barely keep your head up,

681
00:47:53.880 --> 00:47:58.639
you gotta figure out a way,
even if it's take tours like you

682
00:47:58.719 --> 00:48:02.679
gotta. You have to you and
your family figure out how to step back

683
00:48:02.679 --> 00:48:07.119
and figure out what is the source
of the disparity and be honest with yourself

684
00:48:07.119 --> 00:48:10.280
about it. Yeah, And if
it's you, and if you can't see

685
00:48:10.320 --> 00:48:14.599
one, it might be you,
and it might be time to do some

686
00:48:14.639 --> 00:48:17.199
self help and look at some stuff. And that that's the most important one.

687
00:48:17.199 --> 00:48:20.719
If it's someone else, I want
you to solve that, But that's

688
00:48:20.760 --> 00:48:23.639
not the one I'm really concerned about. If it's you, it's me toms.

689
00:48:24.599 --> 00:48:28.559
I need to know that because that's
the that's the only one I can

690
00:48:28.599 --> 00:48:32.519
fix. I can't fix a broken
boss necessarily. I can't fix a broken

691
00:48:34.199 --> 00:48:37.519
PM team like that, that's that's
out of control. I can't fix a

692
00:48:37.559 --> 00:48:40.920
slave drive scenario where you're just death
marching on a project. But I can't

693
00:48:40.920 --> 00:48:44.840
fix myself and I can work on
me, and so try and focus on

694
00:48:44.880 --> 00:48:46.039
those if you're if you're in one
of those scenarios, I would just say,

695
00:48:46.079 --> 00:48:50.800
hey, focus on yourself and see
you see if it is you see

696
00:48:50.800 --> 00:48:53.480
if it is something you can fix, and if not, then it is

697
00:48:53.559 --> 00:48:57.880
time to look for a new place
to hear your hat. And you know

698
00:48:57.920 --> 00:49:02.599
what it's also, sometimes that quick
sam feeling is just because you're burned out.

699
00:49:02.800 --> 00:49:07.039
Sometimes you might need to be able
to say I need a month or

700
00:49:07.079 --> 00:49:12.719
two or three months off to do
something totally not related to my passion.

701
00:49:13.719 --> 00:49:15.079
And I'll give you an example.
A couple of times I've taken a month

702
00:49:15.159 --> 00:49:22.679
or two months off, worked on
my house, or started focusing more on

703
00:49:22.400 --> 00:49:28.639
workouts and being healthy. Right and
recently, I'll give you a great example.

704
00:49:28.679 --> 00:49:31.920
After eight years an angular, I
got burned out. An angular I

705
00:49:32.199 --> 00:49:37.920
love Yeah, I love Angular,
right, but I got burned out for

706
00:49:37.039 --> 00:49:44.199
a whole bunch of reasons, but
mostly I just realized it needed to do

707
00:49:44.280 --> 00:49:47.239
something different. Like I felt like, I love the DEA system, love

708
00:49:47.280 --> 00:49:51.679
a lot of the things that were
there. Some of the things going on

709
00:49:52.199 --> 00:49:54.920
at Google have sort of burned me
out, some of the politics of that

710
00:49:55.000 --> 00:49:59.719
have been going on. And you
know what I did, I stepped back

711
00:49:59.719 --> 00:50:02.480
in my So, what is something
that would challenge me and make me feel

712
00:50:02.800 --> 00:50:07.119
like an area that I really don't
know? And what I didn't know was

713
00:50:07.159 --> 00:50:09.519
React, and so I started looking
at it. I was like, wow,

714
00:50:09.679 --> 00:50:13.639
I don't know. I didn't really
know about fibers. How does you

715
00:50:13.679 --> 00:50:19.519
know change reconciliation work? And how
does the custom hooks work? And yes,

716
00:50:19.760 --> 00:50:23.239
JSX and TSX, you know,
the templating stuff is a little weird

717
00:50:23.320 --> 00:50:28.639
to an Angular developer. That I'll
tell you what. An Angular developer going

718
00:50:28.679 --> 00:50:32.280
to React is infinitely more easier than
a React developer going to Angular. There's

719
00:50:32.280 --> 00:50:36.320
so much more you have to know
to go to Angular. The patterns an

720
00:50:36.320 --> 00:50:42.320
Angular pretty much Apply and React just
in their different ways, right, different

721
00:50:42.800 --> 00:50:49.719
syntax. And so now I have
found, for example that I'm really enjoying

722
00:50:49.800 --> 00:50:53.920
learning about React, and I'm enjoying
learning. I mentioned one to you earlier.

723
00:50:54.440 --> 00:51:00.000
I want to figure out how mob
x works, like really interesting statement

724
00:51:00.000 --> 00:51:06.920
management and approach that's extreme, like
hardly any crud to it at all.

725
00:51:07.400 --> 00:51:08.920
Yeah, it's a little bit of
a bit of black magic, to be

726
00:51:08.960 --> 00:51:13.599
quite honest. So I want to
learn how that works. Yeah, it's

727
00:51:13.599 --> 00:51:15.800
based on observables, but in a
different way than our X yes does it,

728
00:51:15.840 --> 00:51:21.920
and it's using proxies, and it's
tied somehow into the rendering mechanism of

729
00:51:22.000 --> 00:51:24.159
component. But more than that,
I'll have to get back with you on

730
00:51:24.199 --> 00:51:27.639
it. But it's but that's that
sort of thing that all of a sudden

731
00:51:27.960 --> 00:51:30.559
and so I started like, how
did I get into that? Well,

732
00:51:30.639 --> 00:51:32.599
guess what. I signed up for
fun end Masters for forty bucks a month,

733
00:51:34.159 --> 00:51:38.360
has went through two React courses and
got the basics to go, Okay,

734
00:51:38.360 --> 00:51:42.800
I'm no longer afraid of it,
and wow, this starts to make

735
00:51:42.880 --> 00:51:45.760
sense. And then I started applying
the patterns I knew in Angular, thinking

736
00:51:45.760 --> 00:51:50.119
about how I can make it better
and what I take the React stuff and

737
00:51:50.159 --> 00:51:52.320
make it even better, And guess
what, I have a whole new area

738
00:51:52.599 --> 00:51:55.480
that I'm excited about. So that's
the other thing I would say is if

739
00:51:55.480 --> 00:52:00.000
you're burned out on a tech stack, finds another one that you you could

740
00:52:00.079 --> 00:52:02.519
be equally as excited about. Yeah, I agree with that. I agree

741
00:52:02.559 --> 00:52:06.960
with that. That's good advice.
All Right, we're way over on time.

742
00:52:07.079 --> 00:52:10.599
Literally, this has like been a
whole regular podcast and it's supposed to

743
00:52:10.639 --> 00:52:14.800
be a miniature podcast. Sorry,
no, I feel bad. I I

744
00:52:15.079 --> 00:52:17.320
want to make sure I'm respect to
your time. So I'm going to cut.

745
00:52:17.480 --> 00:52:21.800
If anyone wants to reach out to
you and they want to contact you,

746
00:52:22.000 --> 00:52:28.559
questions, consulting, any other reason. What I think we you broke

747
00:52:28.599 --> 00:52:30.360
up? Did you say that last
question? Just what's the best way to

748
00:52:30.360 --> 00:52:36.880
get in touch with you? Ah? Best way is email Tom I'm must

749
00:52:36.920 --> 00:52:40.039
Burlson at gmail dot com, or
our drink message to me on Twitter.

750
00:52:40.400 --> 00:52:45.119
I respond to almost every direct message. Where my passion is these days for

751
00:52:45.159 --> 00:52:51.320
the audience is mentoring teams and helping. For example, I'm helping one group

752
00:52:51.360 --> 00:52:54.119
right now fix their get processes and
how they do deployment and how they develop

753
00:52:54.239 --> 00:53:00.760
software. And it could be in
reactor angular right, And these are things

754
00:53:00.760 --> 00:53:07.760
that are really cool. So I
love helping developers be better at what they

755
00:53:07.760 --> 00:53:13.280
do and discovering how writing software can
not only be productive but really fun.

756
00:53:13.840 --> 00:53:16.880
Yeah. Cool, all right,
I'm gonna move on to the uh,

757
00:53:17.440 --> 00:53:22.760
move on to the section of this
podcast. Okay, so I'm hoping you

758
00:53:22.800 --> 00:53:25.679
have a pick. I'll go ahead
and start. There's a medium blog it's

759
00:53:25.719 --> 00:53:32.239
called Angular versus React Change Detection and
it's by Anshaw Kapor, and she talks

760
00:53:32.280 --> 00:53:38.880
about the differences between the Angular and
the React change detection strategies and uh,

761
00:53:39.760 --> 00:53:45.039
she does a good job of breaking
it down, and I learned something I

762
00:53:45.440 --> 00:53:49.559
always try to under I read these
kind of articles because I want to understand

763
00:53:49.559 --> 00:53:53.119
the similarities between a you and React. I want to understand where, like

764
00:53:53.480 --> 00:53:58.119
how they're the same. I'm not
as concerned where they different. I want

765
00:53:58.159 --> 00:54:00.480
to always stay to data as how
they're were similar, just just because it

766
00:54:00.480 --> 00:54:02.760
helps you talk about them, you
know what I'm saying. It helps you

767
00:54:02.800 --> 00:54:08.639
have intelligent conversations. So you're not
going, well they either is better without

768
00:54:08.679 --> 00:54:12.679
any or you know what I'm saying, or why I gave you either more

769
00:54:13.119 --> 00:54:16.679
without having a reason to like it, with only having an emotional backing,

770
00:54:16.719 --> 00:54:21.039
not an actual factual backing. So
yeah, it's a good article. I'll

771
00:54:21.039 --> 00:54:22.760
share it. We show notes if
heyone wants to come out and read it.

772
00:54:22.960 --> 00:54:28.760
So Tomas, you got to you
gotta pick. I do. My

773
00:54:28.880 --> 00:54:32.000
number one pick is something I've been
playing with a lot these days and actually

774
00:54:32.039 --> 00:54:37.440
using on some projects. And it's
called well I pronounce it immer js or

775
00:54:37.559 --> 00:54:45.719
i'mor i am m e er js. And it's really a set of functions

776
00:54:45.880 --> 00:54:53.599
and some a library that you can
use not only to create and manage immutable

777
00:54:53.679 --> 00:54:58.079
data. But the biggest problem,
so when we mean my immutable data,

778
00:54:58.159 --> 00:55:00.039
is that if you're going to make
changes to to the data, then you

779
00:55:00.079 --> 00:55:04.519
have to create a new instance of
it. Right, That's totally yeah,

780
00:55:04.639 --> 00:55:09.159
And the reason for that is that's
because it optimizes change section in many scenarios.

781
00:55:09.400 --> 00:55:13.599
Yeah, you can do a reference
check versus erect is it the same

782
00:55:13.639 --> 00:55:15.880
object or not? If it's a
different object, where then you should do

783
00:55:15.920 --> 00:55:20.639
something with it. Right. So
the other approach you can do for immutable

784
00:55:20.719 --> 00:55:23.840
data though, to ensure that is
to also make everything read only. Right,

785
00:55:23.920 --> 00:55:28.039
you can lock it down so no
one can make change to the data

786
00:55:28.280 --> 00:55:31.599
except for maybe a central area.
But the problem with that then is when

787
00:55:31.639 --> 00:55:37.360
you want to make changes to fields
that you can use the spread operator and

788
00:55:37.360 --> 00:55:42.000
do other things to merge properties in
and create a whole new instance. But

789
00:55:42.159 --> 00:55:46.239
for more complicated objects, it's really
easy to make mistakes. And the really

790
00:55:46.239 --> 00:55:50.440
cool thing about immer is it allows
you to say, here's a function,

791
00:55:51.119 --> 00:55:53.840
and the function is going to take
a draft of my state or my object

792
00:55:53.880 --> 00:55:58.960
that my data model that I'm managing, and the outside world. It's completely

793
00:55:58.960 --> 00:56:01.440
read only. It's lockdown. In
the function, I get a draft which

794
00:56:01.480 --> 00:56:07.199
is totally modifiable, and I can
modify like any other any property I want

795
00:56:07.239 --> 00:56:10.599
at any level with just dot notations. Dot property x is equal to value

796
00:56:10.760 --> 00:56:16.440
x, dot property y is equal
of value y. And after the function

797
00:56:16.519 --> 00:56:22.440
exits, immerge takes care of creative
reconciling the changes and creating a whole new

798
00:56:22.440 --> 00:56:30.400
immutable instance and then propagating that around. It's super cool and it makes your

799
00:56:30.440 --> 00:56:35.760
code so much cleaner. So it's
useful in RxJS scenarios, very useful in

800
00:56:36.280 --> 00:56:40.199
NGRX, especially with NGRX eight and
the creator functions, especially in the reducers

801
00:56:40.239 --> 00:56:45.920
and things like that. It's very
useful in React. So I highly recommend

802
00:56:46.000 --> 00:56:50.320
people take a look at emmer js. Yeah. I mean it won the

803
00:56:50.320 --> 00:56:53.679
Breakthrough of the Year React Open Source
Award. Dude, it's amazing. Four

804
00:56:54.400 --> 00:57:00.000
stars on. Here's the funny thing
is, so I tend you know,

805
00:57:00.119 --> 00:57:04.400
we all after we're doing something,
we can get a little bit of Hubris.

806
00:57:04.480 --> 00:57:07.519
We can go Yeah, I know, my shit, I'm pretty good,

807
00:57:07.599 --> 00:57:10.480
right, I feel confident. Well, guess what. I started looking

808
00:57:10.480 --> 00:57:13.760
at the source code for this,
and I think it's a little bit like

809
00:57:13.800 --> 00:57:17.119
mob X. Yeah. Both of
that source code makes a step back and

810
00:57:17.119 --> 00:57:21.760
go, man, I don't know
anything. I don't know anything right,

811
00:57:21.800 --> 00:57:25.199
Like, there's so much to learn. This thing has almost two point four

812
00:57:27.039 --> 00:57:35.840
million weekly downloads in the last year. It's more than twenty x it's downloads.

813
00:57:35.599 --> 00:57:39.119
It's an amazing library. And it's
platform agnostic, I mean our tech

814
00:57:39.159 --> 00:57:43.760
stack agnostic. Yeah, and it
is soa and it's done in typescript,

815
00:57:44.199 --> 00:57:49.159
so it's and if you look at
the way he uses types and unions and

816
00:57:49.199 --> 00:57:53.960
all these like and generics, it
blows me away. Yeah, this looks

817
00:57:53.960 --> 00:57:57.639
like a solid project. Cool.
Well, I put it in the show

818
00:57:57.679 --> 00:58:01.039
notes if anyone's to go check it
out. Emmerjs. It seems pretty legit

819
00:58:02.039 --> 00:58:06.960
as far as it's down with that's
that's more downloads than Angular to be honest,

820
00:58:07.039 --> 00:58:09.599
like that's the lot of weekly downloads
it And then I should give a

821
00:58:09.599 --> 00:58:13.880
shout out to who do I think
has been so by the way, right

822
00:58:14.039 --> 00:58:17.679
these days dev dot two is being
used a lot. Let me give a

823
00:58:17.679 --> 00:58:23.119
negative shout out dev dot two people, fixture Ui, it's but ugly Medium

824
00:58:23.159 --> 00:58:29.239
people. Fix your paywall issue.
You're driving away great authors and readers away

825
00:58:29.239 --> 00:58:32.000
from Medium and I love Medium,
right, but fix that. And then

826
00:58:32.039 --> 00:58:36.599
finally, in terms of authors,
I got to give a shout out to

827
00:58:36.639 --> 00:58:42.079
netanel Nettan now I think I'm pronouncing
his name right, has Ben and as

828
00:58:42.239 --> 00:58:50.840
Maximum Maxine Maxine wizardeah Ngie Wizard.
Those two guys. I just love your

829
00:58:50.880 --> 00:58:54.480
articles. You guys are totally rock. If you had a Patreon site,

830
00:58:54.480 --> 00:58:59.880
I would actually contribute just as a
reader because I love the material you push

831
00:59:00.039 --> 00:59:05.480
out and the audience should check out
the articles that are continually coming from these

832
00:59:05.480 --> 00:59:14.559
two authors. Yeah, I agree
with everything you just said. All right,

833
00:59:14.639 --> 00:59:16.800
give me another shout out Frosty one
more then, and then I won't

834
00:59:16.840 --> 00:59:21.199
take your time up another shout out. You want me to do someone a

835
00:59:21.199 --> 00:59:25.440
shout out another pick or another shout
out for me, Yes from you to

836
00:59:25.800 --> 00:59:35.119
whoever you want. I'm going to
do a pick of someone who I don't

837
00:59:35.159 --> 00:59:38.039
know if I've ever picked this person
before, but it's someone who in the

838
00:59:38.119 --> 00:59:45.559
last year a year ago, I
didn't know them. Now I implicitly trust

839
00:59:45.639 --> 00:59:49.880
their opinion and their friendship. I
think they're great. So I'm going to

840
00:59:49.920 --> 00:59:57.199
do a shout out to Jennifer Wyela. She's She's a huge community person.

841
00:59:57.400 --> 01:00:04.239
She's a humongous personality. I know
few people with a personality this size,

842
01:00:04.719 --> 01:00:07.000
and I love her. So I'm
gonna give a shout out to Jennifer Woodella

843
01:00:07.280 --> 01:00:12.840
that I'll pick her as well.
She's fantastic. Is she developer and or

844
01:00:12.960 --> 01:00:16.599
is she's Yeah, she's like she's
an architect of principle wanted to and she's

845
01:00:16.599 --> 01:00:22.039
a consultant full time, so she
kind of runs in the same circles as

846
01:00:22.079 --> 01:00:27.039
you, right, and then she
organizes forty million communities. I don't know,

847
01:00:27.079 --> 01:00:30.079
it's a lot like have I met
this this woman? I don't know.

848
01:00:30.159 --> 01:00:32.119
She was at the last thing she
comp but I don't think you were

849
01:00:32.119 --> 01:00:37.840
there. I was. I tend
to be a hermit these days. Yeah,

850
01:00:37.960 --> 01:00:39.559
yeah, I find you put a
linked in or a link to her.

851
01:00:39.639 --> 01:00:44.159
I'd love to just say hi,
yeah, it seems awesome. She

852
01:00:44.400 --> 01:00:51.079
is fantastic and she's she's a good
person to to have as a friend.

853
01:00:51.239 --> 01:00:53.760
She gives great advice, and I
just like we commiserate over a lot of

854
01:00:53.760 --> 01:00:59.000
the same things. So you know
how some days Twitter has a moment and

855
01:00:59.039 --> 01:01:04.039
Twitter's like shut the tab because it's
on fire. Uh huh. Her and

856
01:01:04.119 --> 01:01:07.199
I it's it's whenever I get like
a random d M from her, I

857
01:01:07.280 --> 01:01:10.400
know that something's going on, and
we we commiserate and agree on most of

858
01:01:10.440 --> 01:01:15.159
it. So it's pretty good.
I will tell I will tell the audience

859
01:01:15.199 --> 01:01:19.320
not the details, but I will
say that frosting you with the roles that

860
01:01:19.360 --> 01:01:22.760
you've played, have I had to
deal with behind the scenes stuff more than

861
01:01:22.840 --> 01:01:28.840
most people would ever want to deal
with and uh pressures, and I've always

862
01:01:28.880 --> 01:01:35.320
been impressed and proud of how you've
responded to these. Thanks man. I

863
01:01:35.440 --> 01:01:38.960
Uh, it's hard to be to
put yourself out there. You know,

864
01:01:39.039 --> 01:01:44.079
anyone who's been a speaker or teacher
knows this. It's hard to it's hard

865
01:01:44.119 --> 01:01:46.519
to put yourself out there. And
when you do you're you have to take

866
01:01:46.559 --> 01:01:51.679
on the responsibility of right and your
wrongs. It's scary, but when you

867
01:01:51.719 --> 01:01:53.840
have friends like you, you have
friends like Jennifer, it is easier because

868
01:01:53.960 --> 01:01:59.920
people you safe learning spaces right like
you've You've afforded me some of the past

869
01:02:00.039 --> 01:02:04.800
Jennifer's has people. People afford me
a lot of opportunities to fix my mistakes.

870
01:02:05.599 --> 01:02:08.039
I was referring referring to your mistakes, Frosty. I was referring to,

871
01:02:08.480 --> 01:02:12.559
for example, you're you're as one
of the founders of engine comps,

872
01:02:12.599 --> 01:02:15.880
some of the things that you've had
to address in the way you've addressed these

873
01:02:15.960 --> 01:02:20.519
right, and so you miss misunderstood
because not only do I think you,

874
01:02:20.840 --> 01:02:22.440
if you have any mistakes, that
you've owned up to them in a real

875
01:02:24.239 --> 01:02:30.280
in uh, in a great way. In fact, sometimes I think you've

876
01:02:30.360 --> 01:02:34.440
over owned up to them, if
you want to know the truth. I

877
01:02:34.519 --> 01:02:37.840
think we've gotten into a society where
people are a little bit like the old

878
01:02:37.920 --> 01:02:40.920
Japanese Kai bat sues, where someone
the executive gets on and he starts crying

879
01:02:42.000 --> 01:02:46.880
and and and uh uh, begging
forgiveness for his management sins. Right.

880
01:02:46.960 --> 01:02:51.320
I think we that's become sort of
a cultural norm here in the US now

881
01:02:51.360 --> 01:02:54.880
where people get attacked and then they
get publicly they start apologizing, and I

882
01:02:55.280 --> 01:03:00.199
don't like that, right, So
that's what I meant by when people I'm

883
01:03:00.199 --> 01:03:02.360
themselves having to apologize, it's like, no, the only thing I want

884
01:03:02.440 --> 01:03:07.360
is just correct and move on.
Like so I wasn't referring to you,

885
01:03:07.440 --> 01:03:08.679
I was referring to things in general. So I went off on a rant.

886
01:03:09.039 --> 01:03:13.960
No, you're good. I uh
people are just getting extra podcast today

887
01:03:13.960 --> 01:03:19.079
for free. By the way,
I I over I overdo it because there's

888
01:03:19.159 --> 01:03:24.679
no shortage of like fake apologies,
but not my fake sorry underdone. Let's

889
01:03:24.719 --> 01:03:29.239
just say rare, like medium rare. It's not all the way cooked the

890
01:03:29.320 --> 01:03:35.239
apology yet. And I don't ever
want to come across as that way that

891
01:03:35.280 --> 01:03:39.840
I see these these not well done
apologies happen. So yeah, that's all

892
01:03:39.840 --> 01:03:45.239
I'll say. I just need to
make sure people know this isn't uh,

893
01:03:45.639 --> 01:03:49.159
well, I'm sorry you're mad that
I said that, Like, I apologize

894
01:03:49.159 --> 01:03:52.280
because I legit. I am not
going to sleep if people, like,

895
01:03:52.320 --> 01:03:54.320
if I ruined someone else's day,
that's gonna mess me up big times.

896
01:03:54.360 --> 01:03:59.639
So I don't know frustratf for knowing
you all these years. I have never

897
01:03:59.760 --> 01:04:04.880
felt that you had a non positive
thought or a bone in your whole body.

898
01:04:05.880 --> 01:04:10.840
You know what, man, I'm
good at. I think I'm pretty

899
01:04:10.880 --> 01:04:15.960
good at owning my mistakes. The
thing I'm bad at is stopping making them.

900
01:04:15.280 --> 01:04:18.360
So guess what, I think that's
called the human condition. I know,

901
01:04:18.519 --> 01:04:21.320
I know that's why I don't meat
myself up as much as I could.

902
01:04:21.639 --> 01:04:25.480
Totally. I know we're pretty I
know it's pretty part of the course.

903
01:04:26.719 --> 01:04:30.239
No, I mean that's now we're
getting this whole idea of gratitude and

904
01:04:30.280 --> 01:04:35.920
compassion and consideration, right. But
I if I think we should be willing

905
01:04:35.960 --> 01:04:40.920
to accept that we're going to make
mistakes as long as we don't deliberately hurt

906
01:04:40.920 --> 01:04:45.199
someone, and we try to become
aware of them as soon as possible and

907
01:04:45.239 --> 01:04:48.159
then try to recover and not do
them again. I think that's that's a

908
01:04:48.199 --> 01:04:51.920
beautiful path. Yeah, I agree, we should. We should do another

909
01:04:51.960 --> 01:04:57.119
podcast where we just talk about owning
your faste. I think you would have

910
01:04:57.159 --> 01:05:00.960
a I think you would heal that
podcast. I think maybe we'll invite you.

911
01:05:00.000 --> 01:05:04.079
I'll invite you and Jennifer and we'll
do a podcast. Actually, you

912
01:05:04.119 --> 01:05:06.960
know what we should do. I'd
love that. Here's why. Lately I've

913
01:05:06.960 --> 01:05:12.480
been thinking about what I go back
in time and do things different, and

914
01:05:12.719 --> 01:05:15.440
what things would I do different,
like who would I apologize to? Who

915
01:05:15.440 --> 01:05:19.719
would I say I'm sorry? And
why. I think that's a fascinating topic.

916
01:05:21.559 --> 01:05:25.320
And I think the older you get, the more you start thinking about

917
01:05:25.320 --> 01:05:29.960
those, right, and at least
or the more you slow down, you

918
01:05:30.000 --> 01:05:33.960
start thinking about those. Yeah,
I agree, that would be that would

919
01:05:33.960 --> 01:05:38.400
be an interesting podcast. Huh.
All right, I'm going to send an

920
01:05:38.400 --> 01:05:42.119
invite to you. All right,
man, Thank you to everyone listening to

921
01:05:42.199 --> 01:05:44.280
you, all say thanks for coming
on, and to all the listeners I'll

922
01:05:44.320 --> 01:05:46.239
say thanks and we'll see you next
time. All right, bye. Bye.

923
01:05:46.599 --> 01:05:50.280
Bandwidth for this segment is provided by
cash fly, the world's fastest CDN.

924
01:05:50.599 --> 01:05:55.320
Deliver your content fast with cash Fly. Visit c A, C H,

925
01:05:55.440 --> 01:05:57.760
E, F l Y dot com
to learn more

