WEBVTT

1
00:00:07.679 --> 00:00:12.199
Hey everybody, thanks for coming to
another episode of My Angular Story. I'm

2
00:00:12.240 --> 00:00:16.480
the host Aarren Frost, and today
our guest is James James. Can you

3
00:00:17.039 --> 00:00:21.280
introduce yourself to the community so everyone
kind of gets to hear who you are,

4
00:00:21.280 --> 00:00:24.879
where you're from. Absolutely. My
name is James Spivey. I'm the

5
00:00:24.920 --> 00:00:29.839
director of engineering for Shutterstock. I've
been in the industry for about fifteen years.

6
00:00:30.399 --> 00:00:34.560
On Twitter handles my spyby nyspi bey
if you want to find me there.

7
00:00:35.359 --> 00:00:38.799
This episode is sponsored by Century dot
Io. Recently, I came across

8
00:00:38.840 --> 00:00:42.000
a great tool for tracking and monitoring
problems in my apps. Then I asked

9
00:00:42.039 --> 00:00:44.799
them if they wanted to sponsor the
show and allow me to share my experience

10
00:00:44.799 --> 00:00:48.439
with you. Century provides a terrific
interface for keeping track of what's going on

11
00:00:48.520 --> 00:00:51.079
with my app. It also tracks
releases so I can tell if what I

12
00:00:51.119 --> 00:00:54.719
deployed makes things better or worse.
They give full stack traces and as much

13
00:00:54.759 --> 00:00:58.399
information as possible about the situation when
the error occurred to help you track down

14
00:00:58.439 --> 00:01:02.240
the errors. Plus one thing I
up you can customize the context provided by

15
00:01:02.280 --> 00:01:06.000
Century, so if you're looking for
specific information about the request, you can

16
00:01:06.040 --> 00:01:10.280
provide it. It automatically scrubs passwords
and secure information, and you can customize

17
00:01:10.280 --> 00:01:12.840
the scrubbing as well. Finally,
it has a user feedback system built in

18
00:01:12.840 --> 00:01:15.760
that you can use to get information
from your users. Oh and I also

19
00:01:15.879 --> 00:01:19.519
love that they support open source to
the point where they actually open source Centry.

20
00:01:19.560 --> 00:01:23.079
If you want to self host it, use the code dev chat at

21
00:01:23.079 --> 00:01:27.000
centry dot io to get two months
free on Century small plan. That's code

22
00:01:27.040 --> 00:01:34.640
dev chat at century dot io.
Cool. So what's your what's your back

23
00:01:34.200 --> 00:01:38.480
ground with it? Let's hear about
it. We're we're all here too,

24
00:01:38.680 --> 00:01:42.359
regular story, Yeah, yeah,
yeah. So, uh I actually started

25
00:01:42.359 --> 00:01:49.840
programming in cold Fusion and then Adobe
Flex. Yeah, I'm a big Flex

26
00:01:49.920 --> 00:01:53.359
fan, you know. I I
was all about that Adobe Life. Yeah,

27
00:01:53.400 --> 00:01:57.239
and then uh, Apple had a
say or two about where that was

28
00:01:57.280 --> 00:02:02.400
going, and uh so I started
looking around for alternatives, and Angueler just

29
00:02:02.400 --> 00:02:07.120
felt at home as a Flex developer. You know, it's actually developed by

30
00:02:07.280 --> 00:02:10.520
the exact same guy. So it
was a pretty good transition to moving in

31
00:02:10.560 --> 00:02:15.080
the HTML world. And I just
got hooked on one dot. Oh and

32
00:02:15.080 --> 00:02:17.840
I've been pretty much with it ever
since. Cool. So how early and

33
00:02:17.919 --> 00:02:23.759
one dot oh did you start using
it? That's a great question. My

34
00:02:23.759 --> 00:02:28.599
my fading memory does not recall the
exact version. Yeah, it was pretty

35
00:02:28.599 --> 00:02:30.759
early though. I wouldn't say one
dot oh, but it was. It

36
00:02:30.800 --> 00:02:36.240
was pretty early. Yeah, I
started in two thousand and the end of

37
00:02:36.280 --> 00:02:39.560
twenty twelve. I think he was
like dot nine. I don't think it

38
00:02:39.599 --> 00:02:44.520
was one oh yet. I don't
know it was. Why it was it

39
00:02:44.520 --> 00:02:51.120
was pretty early though, Yeah,
pretty close. Yeah, well cool so

40
00:02:52.120 --> 00:02:55.319
director of engineering at Shutterstock. And
for anyone who's like, what's Shutterstock,

41
00:02:55.680 --> 00:03:01.400
it's the people that they have the
watermarks and all the images that you try

42
00:03:01.439 --> 00:03:07.199
and download from Google searches that shutter
stock. Just in case you forgot much

43
00:03:07.240 --> 00:03:10.280
bigger than that. Yeah, we
do stock photography. We are one of

44
00:03:10.319 --> 00:03:15.400
the largest suppliers of stock photography.
But we also do stock videos, okay,

45
00:03:15.840 --> 00:03:19.240
music, okay, editorial work.
So a lot of times when you're

46
00:03:19.240 --> 00:03:27.520
looking at magazines are online reports,
the photos of celebrities, are politicians or

47
00:03:27.560 --> 00:03:30.080
whatever. A lot of that's our
work as well. So, and we

48
00:03:30.120 --> 00:03:34.879
do a lot of branding work too. So if a big company wants to

49
00:03:35.080 --> 00:03:38.639
put together a photo shoot for their
product, we help organize that there's a

50
00:03:38.639 --> 00:03:39.639
bunch more that we do, but
those are sort of the big ones.

51
00:03:42.120 --> 00:03:46.840
But it is generally around media and
having kind of stock bunches of media that

52
00:03:46.879 --> 00:03:51.240
people can can use and purchase for
use. Is that true. That's definitely

53
00:03:51.240 --> 00:03:54.280
our biggest, our biggest segment for
sure. Cool. And then I didn't

54
00:03:54.319 --> 00:03:58.560
know you guys help organize like photo
shoots and stuff too. That's pretty cool

55
00:03:58.840 --> 00:04:01.919
man. Here sneaky tentacles doing all
kinds of crazy things. Yeah. No,

56
00:04:02.039 --> 00:04:05.319
I mean that's the capitalist. The
rule is adapter die right, So

57
00:04:05.360 --> 00:04:10.199
it sounds like you guys have adapted
into a couple of different veins of the

58
00:04:10.240 --> 00:04:16.560
space. So that's cool. So
is Shutterstock doing stuff with Angular. That's

59
00:04:16.600 --> 00:04:19.720
where it gets rough. We don't
touch Angular at all, okay, but

60
00:04:21.120 --> 00:04:25.439
there is some interesting stuff. I
can't go too much into detail because we're

61
00:04:25.439 --> 00:04:30.560
still working on it, but there's
some some Cli type things that might be

62
00:04:30.120 --> 00:04:35.079
wandering their way over to the React
realm. So this is a fairly new

63
00:04:35.160 --> 00:04:40.439
role for me. I've been there
for eight months or so, so before

64
00:04:40.480 --> 00:04:45.040
that, I was the architect for
a number of projects doing all Angular work.

65
00:04:45.160 --> 00:04:46.680
So it's kind of fresh being out
of the Angular world. And I

66
00:04:46.720 --> 00:04:50.240
definitely miss my friends, like good
Frosty here, Yeah, with you all

67
00:04:50.279 --> 00:04:54.199
the time. But the React world
is also fantastic with great people in it

68
00:04:54.240 --> 00:04:59.639
too. Yeah. As we're as
we're recording this, they're recording React cough,

69
00:04:59.720 --> 00:05:01.600
like we could pop up in the
live stream as we're talking. Oh

70
00:05:01.680 --> 00:05:05.879
yeah, they were just doing the
announcements on concurrency. It's super exciting stuff.

71
00:05:06.079 --> 00:05:10.959
I'm really excited to see where that
goes. Yeah. Well cool.

72
00:05:11.480 --> 00:05:15.000
So it sounds like you architect died
quite a bit of Angular, then.

73
00:05:15.519 --> 00:05:19.120
I have done a lot of years
of architecture on Angular from one up for

74
00:05:19.160 --> 00:05:25.600
sure. So what are some of
the I don't know, what are some

75
00:05:25.680 --> 00:05:29.480
of the things that you're like,
I'm James Spiley, I'm good at this

76
00:05:29.600 --> 00:05:31.120
in Angular. What are some of
those things that you're like, Hey,

77
00:05:31.480 --> 00:05:35.480
I learned how to do these things
really well as an architect. I think

78
00:05:35.720 --> 00:05:40.079
for me it was following best practices
and how to really put together a code

79
00:05:40.079 --> 00:05:44.720
base. You know, I've known
a lot of the Angular community that sort

80
00:05:44.759 --> 00:05:48.199
of help put those practices into place
from the early days, John Papa especially,

81
00:05:48.240 --> 00:05:51.160
you know, being the sort of
foundation of the style guide. I'm

82
00:05:51.199 --> 00:05:57.800
a big proponent of the style guide, I generally speak speaking from an enterprise

83
00:05:57.920 --> 00:06:01.399
level, find that even if we
don't all necessarily agree that those are the

84
00:06:01.399 --> 00:06:05.319
best solutions, as long as we
come together and acknowledge that that's the thing

85
00:06:05.360 --> 00:06:08.879
we should follow. Like, the
style Guide's not always going to be perfect,

86
00:06:08.920 --> 00:06:13.560
and certainly we'll make adjustments per company, per project based off of needs,

87
00:06:13.920 --> 00:06:17.319
but having that sort of roadmap really
helps developers a lot in terms of

88
00:06:18.000 --> 00:06:21.519
Okay, I'm going to join a
new company getting up speed fast. If

89
00:06:21.560 --> 00:06:25.240
I already know that style guide,
I can just hit the ground running.

90
00:06:25.519 --> 00:06:28.439
I know a lot of how they
do things. I can sort of match,

91
00:06:28.680 --> 00:06:30.920
you know a lot faster and integrate
a lot quicker. So that was

92
00:06:30.920 --> 00:06:34.839
actually one of my interview questions for
a long time. It wasn't it wasn't

93
00:06:34.839 --> 00:06:38.879
to weed people out. It was
more just to sort of feel what their

94
00:06:38.920 --> 00:06:42.480
familiarity was. So I'd always ask
if they had read the Angular style Guide.

95
00:06:42.680 --> 00:06:46.319
So let's do some interview here,
so let's see if everyone can get

96
00:06:46.319 --> 00:06:53.759
a live glimpse of if a frosty
Q pass the Spivy Angular interview. So

97
00:06:54.279 --> 00:06:57.959
you didn't give me that heads up, because I these days you know,

98
00:06:58.000 --> 00:07:02.040
the being a manager of the the
questions get very different, right Like now

99
00:07:02.160 --> 00:07:06.199
my position is much more about how
they'll fit with the team, the culture

100
00:07:06.240 --> 00:07:10.000
of the personality. So I've had
to adjust my questions a lot. I

101
00:07:10.000 --> 00:07:13.120
don't do the technical ones as much. I could certainly pull them up.

102
00:07:13.879 --> 00:07:16.399
I want to see it. Let's
just do it. It's a good learning

103
00:07:16.399 --> 00:07:19.920
opportunity for the people listening. Put
me on the spot like that. Yeah,

104
00:07:19.959 --> 00:07:24.360
sorry for putting on the spot,
but we got to do something.

105
00:07:24.680 --> 00:07:30.199
We'll do a little segment called Interview
Frosty and see if I can pass your

106
00:07:30.199 --> 00:07:33.720
technically for you. Actually, I
should make that a regular segment. I

107
00:07:33.720 --> 00:07:39.800
bet people would get a kick out
of watching me fail this. Yeah.

108
00:07:40.040 --> 00:07:42.600
Sorry, I'm just goin to pull
these up here in a minute, since

109
00:07:42.600 --> 00:07:45.879
I've even used them. See,
I feel like it's cheating though, because

110
00:07:45.879 --> 00:07:47.279
I already kind of know what you
know, Like we've talked about it a

111
00:07:47.279 --> 00:07:50.560
bunch in person, about the stuff
that you were familiar with. So it's

112
00:07:50.600 --> 00:07:54.439
kind of like I got to ask
you some trick questions. You could trick

113
00:07:54.519 --> 00:07:57.560
me. You should trick me.
I don't know that I know any good

114
00:07:57.600 --> 00:08:00.600
trick questions for you though. I
don't even like trick quest I think it's

115
00:08:00.639 --> 00:08:05.120
unfair in an interview to actually do
trick questions. Uh so let's uh,

116
00:08:05.319 --> 00:08:09.199
you can find them. Sorry,
I tried. You try, you can't

117
00:08:09.199 --> 00:08:11.639
find them. It's all right.
Sorry, we don't have to do it

118
00:08:11.680 --> 00:08:15.680
would have been cool because I just
upgraded to Catalina. I had text Wrangler

119
00:08:15.720 --> 00:08:18.680
is where I had all of them, and now you can't use text Wrangler

120
00:08:18.680 --> 00:08:22.600
on Catalina. Really, the one
that I had it needs a I guess

121
00:08:22.600 --> 00:08:26.720
I gotta find another version that's sixty
four bit compatible or something. Hey folks,

122
00:08:26.800 --> 00:08:31.319
this is Charles Maxwood, and I
just launched my book, The Maxicoder's

123
00:08:31.319 --> 00:08:35.320
Guide Defining Your Dream Developer Job.
It's up on Amazon. We self published

124
00:08:35.360 --> 00:08:37.879
it. I would love your support. If you want to go check it

125
00:08:37.879 --> 00:08:41.240
out. You can find it there, The Maxicoter's Guide Defining Your Dream Developer

126
00:08:41.320 --> 00:08:46.480
Job. Have a good one,
max out. All right, bro,

127
00:08:46.960 --> 00:08:50.399
we we got to make this part
of the podcast not lame. You got

128
00:08:50.440 --> 00:08:54.039
to ask me one question, all
right. If it stumps me, it's

129
00:08:54.159 --> 00:09:01.039
better because then the listeners feel vindicated. All right. Uh yeah, I

130
00:09:01.039 --> 00:09:07.120
feel like I want to go get
away from core. Let's do how do

131
00:09:07.159 --> 00:09:15.320
you do compound selectors in n gr
X Oh geez? Compound selectors? Yeah,

132
00:09:15.399 --> 00:09:18.200
so you just busted me. I
know how to do a selector.

133
00:09:18.919 --> 00:09:26.879
I'm guessing that there's a create selector
function that I can pass multiple selector functions

134
00:09:26.919 --> 00:09:31.960
to, or maybe there's a combined
selector function that I can use to combine

135
00:09:33.000 --> 00:09:37.039
selectors. I would guess that's what
I would guess. I don't know if

136
00:09:37.000 --> 00:09:39.559
the top of my head that seems
like something the front one and you and

137
00:09:39.600 --> 00:09:43.360
you can even you can even question
me on what a compound selector actually means.

138
00:09:43.440 --> 00:09:48.480
Is that just accumulation of two selectors
within the same state or is this

139
00:09:48.519 --> 00:09:52.519
talking about combining selectors from multiple pieces
of state? There? You go,

140
00:09:52.720 --> 00:09:54.720
Yeah, what do you so?
What do you mean by yeah, let's

141
00:09:54.759 --> 00:09:58.559
go, what do you mean by
uh? What did you say complex?

142
00:09:58.600 --> 00:10:01.559
What do you mean by compound selector? Compound? Yeah? And I I

143
00:10:01.720 --> 00:10:07.879
typically would just accept two selectors from
the same state that you you you derive

144
00:10:07.919 --> 00:10:11.679
a third selector that pulls from those
two selectors to create a new value.

145
00:10:11.759 --> 00:10:16.480
Right. And I'm I'm a big
you know, I'm a big proponent too

146
00:10:16.559 --> 00:10:20.279
of understanding selectors, because I think
that's the most critical way to pull data

147
00:10:22.120 --> 00:10:24.320
from in r X. So what
kind of selector did you say? Because

148
00:10:24.320 --> 00:10:31.519
it when you said okay, so
yeah, I would guess that you could

149
00:10:31.799 --> 00:10:35.039
create selector and pass it multiple selector
functions. Is that? Is that what

150
00:10:35.080 --> 00:10:39.159
you're trying to say? Is that
the answer? Yep, that's the answer,

151
00:10:39.480 --> 00:10:41.759
because that sounds like I'm like a
from what I know of the rest

152
00:10:41.799 --> 00:10:46.320
of the API, Brandon and Mike
you've made it's super usable and Rob and

153
00:10:46.600 --> 00:10:48.799
I mean everyone who's been involved,
right, Sorry, I didn't mean to

154
00:10:48.879 --> 00:10:52.600
just put it on them too,
but that seems to make the most sense.

155
00:10:52.639 --> 00:10:54.519
I would just pass you two selector
functions. Well, And I've seen

156
00:10:54.559 --> 00:11:00.279
a lot coming into projects companies,
people don't understand that you can pass selectors

157
00:11:00.320 --> 00:11:05.080
to selectors, and so you'll tend
to see just a giant selection of selectors

158
00:11:05.080 --> 00:11:09.919
and then you'll go into some components
somewhere, and then you'll see them selecting

159
00:11:09.039 --> 00:11:15.480
every one of those and then doing
some combination through RxJS or whatever other approach

160
00:11:15.519 --> 00:11:20.120
that they're choosing. Yeah, which
is wildly inefficient. Right, Like all

161
00:11:20.159 --> 00:11:22.919
of your selectors are always mamoist.
So you're going to get much faster reaction

162
00:11:24.039 --> 00:11:28.000
times and reuse when you do stuff
like compound selectors that select off of other

163
00:11:28.039 --> 00:11:33.000
selectors. Yeah yeah, yeah,
yeah, it is more efficient to use

164
00:11:33.960 --> 00:11:41.240
selectors instead of just doing your own
combined Latest, although depending on your app,

165
00:11:41.960 --> 00:11:46.039
the combind latest is probably just as
efficient. Depending on your app,

166
00:11:46.240 --> 00:11:50.240
everything is dependent, right, Like, there's no one right answer in anything

167
00:11:50.279 --> 00:11:54.120
we do in programming. That's why
when it comes to like code exams or

168
00:11:54.159 --> 00:11:58.000
technical exams, I generally speaking,
you know, I start every interview as

169
00:11:58.000 --> 00:12:00.720
just saying, hey, this is
supposed to be fun, and get nervous.

170
00:12:00.720 --> 00:12:03.919
We're not gonna whiteboard. Whiteboards are
silly, Like this is just a

171
00:12:03.960 --> 00:12:05.960
conversation to see what you think you
know, and then you know, we'll

172
00:12:05.960 --> 00:12:09.519
write a little code, see where
you go from there. Don't even sweat

173
00:12:09.559 --> 00:12:13.559
it, right, Like, this
is a good time. Yeah, take

174
00:12:13.559 --> 00:12:16.000
the stress out of it. So
like wrong answers, you know, I

175
00:12:16.600 --> 00:12:18.600
asked questions sometimes that I don't even
know the answer too. I'm just curious

176
00:12:18.600 --> 00:12:22.200
if they do, you know,
and make me something in an interview.

177
00:12:22.240 --> 00:12:26.639
I was like that approach, you
know, because Google. Google often did

178
00:12:26.639 --> 00:12:28.519
that, right, you know,
in their early days, their CTO,

179
00:12:28.679 --> 00:12:31.240
their founders. They would, you
know, they'd go into a meeting room

180
00:12:31.240 --> 00:12:35.720
and say, teach me something I
don't know and see if you could teach

181
00:12:35.759 --> 00:12:39.840
them a subject matter they didn't have
any familiarity with and get them excited about

182
00:12:39.840 --> 00:12:41.440
it. Right, it's actually in
their book. I thought that was really

183
00:12:41.440 --> 00:12:46.360
interesting, right, Okay, Yeah, I like that. I actually would

184
00:12:46.360 --> 00:12:54.200
be interested to go into an interview
where someone's like, oh, teach me

185
00:12:54.279 --> 00:12:58.000
something I don't know. That would
be that would be intense, right,

186
00:12:58.720 --> 00:13:01.399
It can be interesting. I've been
I've been using that one a little bit

187
00:13:01.840 --> 00:13:03.960
lately, just out of curiosity for
some people who know, especially more senior

188
00:13:05.000 --> 00:13:09.320
engineers that have a breadth of knowledge
that probably my domain doesn't fit within.

189
00:13:09.440 --> 00:13:11.240
You know, everyone knows a little
something different or as a specialist in someone

190
00:13:11.360 --> 00:13:15.360
something different. So I always find
it intriguing to see, you know,

191
00:13:15.399 --> 00:13:16.960
what are they really passionate about,
Where they really want to know, where

192
00:13:18.000 --> 00:13:20.000
they really want me to know,
where they really want to teach me about.

193
00:13:20.000 --> 00:13:24.519
You know, I've I've had a
couple engineers that are super excited about

194
00:13:24.519 --> 00:13:28.159
functional programming and want to just tell
me all about the advantages of functional programming.

195
00:13:28.159 --> 00:13:31.000
And why it's so awesome, and
it's like I always find those really

196
00:13:31.039 --> 00:13:35.840
intriguing. Yeah. Yeah, when
people get passionate, those those that's when

197
00:13:35.879 --> 00:13:39.600
you learn as if you're like,
hey, this person clearly cares about this.

198
00:13:39.360 --> 00:13:43.960
Now it's time to sit down and
get ready to learn. So as

199
00:13:43.000 --> 00:13:46.279
a manager, how long you been
a manager? Now? Did you say?

200
00:13:46.320 --> 00:13:52.399
Director? Yeh? Director of engineering
at Shutterstock. Yeah, I've been

201
00:13:52.399 --> 00:13:56.720
a manager for a fairly decent amount
of time. Now I probably say I've

202
00:13:56.720 --> 00:14:01.080
been doing it for I don't know, six years or so, you know,

203
00:14:01.480 --> 00:14:05.279
between previous jobs. I started a
company, I was a CTO for

204
00:14:05.320 --> 00:14:09.080
a while, did that for a
pretty long time, and then bounced over

205
00:14:09.159 --> 00:14:13.360
to Shutterstock, really enjoying it.
So I'm gonna I'm gonna flip the table

206
00:14:13.399 --> 00:14:18.879
a little bit and put the pressure
on maybe you sure? So I've been

207
00:14:18.919 --> 00:14:24.399
really like I just I just spent
the first half of today at a training

208
00:14:24.519 --> 00:14:30.720
call the including X Project, which
is a training with a company called the

209
00:14:30.720 --> 00:14:35.799
Inclusion pro and the Black Chamber of
Converse here in Utah. It's all about

210
00:14:35.279 --> 00:14:43.879
increasing your awareness and ability to promote
inclusivity in the workplace. It was it

211
00:14:43.960 --> 00:14:48.919
was really good, So let me
ask you as a manager or as a

212
00:14:48.960 --> 00:14:50.639
team as a leader. Let's just
say as a leader, so you don't

213
00:14:50.679 --> 00:14:56.360
have to focus on management because a
lot of the listeners are leaders. As

214
00:14:56.360 --> 00:15:03.759
a leader, how do you help
promote inclusivity at work? And I'm asking

215
00:15:03.759 --> 00:15:09.000
that question supposing me and you have
the same definition of inclusivity, So feel

216
00:15:09.000 --> 00:15:11.639
free to clarify if you're not sure. But I'm supposing we mean the same

217
00:15:11.639 --> 00:15:16.919
thing when we say that, sure, yeah, I mean inclusivity can have

218
00:15:16.120 --> 00:15:20.720
a range of topics. I think
for me, it's making anyone regardless of

219
00:15:22.200 --> 00:15:24.720
race, gender, you know,
orientation, all that sort of stuff,

220
00:15:26.120 --> 00:15:28.799
making them feel welcome in the workplace. You know, I'm feeling a part

221
00:15:28.799 --> 00:15:31.759
of the team, and that's actually
really important to me. One of my

222
00:15:33.039 --> 00:15:35.159
most important hiring rules, one of
the things that will help you get a

223
00:15:35.240 --> 00:15:39.919
job on my team is not having
a coding ego, just thinking you're always

224
00:15:41.000 --> 00:15:43.919
right or that you're the rock star
that fixes everything. I put in all

225
00:15:43.919 --> 00:15:48.440
my job descriptions that we're looking for
team players, not ninjas or rock stars.

226
00:15:48.480 --> 00:15:50.960
I've got a shirt that says I'm
not a ninja. You know,

227
00:15:52.639 --> 00:15:54.960
early in my career I kind of
had that attitude. You know, I

228
00:15:54.240 --> 00:15:58.399
fix all the stuff, I fix
all the problems, and I feel like

229
00:15:58.440 --> 00:16:00.960
it hurt teams more. You know, I thought it at the time it

230
00:16:00.000 --> 00:16:03.000
was you know, we got a
product out and made it better, but

231
00:16:03.080 --> 00:16:07.600
ultimately it just made things more difficult
for everyone involved, right because you're not

232
00:16:07.840 --> 00:16:11.200
you're not being collaborative, you're not
helping grow others. You're just kind of

233
00:16:11.200 --> 00:16:14.480
concerned with yourself. And that was
a wrong view. And you know,

234
00:16:14.480 --> 00:16:15.679
I can't take those things back,
but I can learn from them. And

235
00:16:15.720 --> 00:16:19.440
so a lot of that is,
you know, trying to get a workforce

236
00:16:19.480 --> 00:16:25.080
it's more balanced, has different views
that that feels welcome and comfortable to share

237
00:16:25.120 --> 00:16:27.480
those views, you know, so
that it's not one person that's like,

238
00:16:29.120 --> 00:16:32.600
got these great views but gets drowned
out because they're not a loud voice and

239
00:16:32.639 --> 00:16:34.480
so they don't feel comfortable sharing them. So, you know, trying to

240
00:16:34.519 --> 00:16:38.879
set an environment where that's a that's
an understood that we want to be collaborative,

241
00:16:38.879 --> 00:16:41.960
that we want to help raise each
other up and build a stronger team.

242
00:16:41.960 --> 00:16:47.240
From that, I I've been inspired
by a lot of books that I've

243
00:16:47.240 --> 00:16:55.279
read recently to kind of raise awareness
around inclusivity around making people feel they belong,

244
00:16:56.159 --> 00:17:00.840
you know, and uh, it's
it's hard to it's hard to do,

245
00:17:00.679 --> 00:17:04.480
you know. I think it's one
of the harder aspects of software engineering,

246
00:17:06.480 --> 00:17:08.880
is the communication piece. I mean, I don't think it is.

247
00:17:08.880 --> 00:17:15.240
The harder part of engineering is the
communication side, clearly the harder part and

248
00:17:17.160 --> 00:17:22.799
being inclusive, like inheriting places that
aren't as inclusive they should be, trying

249
00:17:22.880 --> 00:17:26.799
to leave them more inclusive than than
you, you know, than when you

250
00:17:26.839 --> 00:17:32.200
walked in the door. It's important, but it's also difficult and it's also

251
00:17:32.240 --> 00:17:36.559
really scary to talk about loud.
What are some of the wins you've experienced

252
00:17:37.400 --> 00:17:42.079
through your career as far as like
leaving a better legacy of inclusivity. Yeah,

253
00:17:42.160 --> 00:17:45.920
you know, it's one of those
things that you're always going to work

254
00:17:45.960 --> 00:17:48.759
on. Like you said, I
think the first step is talking about having

255
00:17:48.799 --> 00:17:52.000
these types of conversations. You know, we've we've talked about it a bit

256
00:17:52.079 --> 00:17:56.359
on this Dot Labs podcast too,
and it's about, you know, sort

257
00:17:56.359 --> 00:18:00.960
of building those connections for us.
You know, can be anything, right

258
00:18:00.039 --> 00:18:06.720
Like obviously you know, I've I've
worked with and been a friend of Tracy

259
00:18:06.799 --> 00:18:08.960
for a long time. And I
really live by her model of you change

260
00:18:10.000 --> 00:18:14.319
the ratio. I believe heavily in
that. So some of that has come

261
00:18:14.359 --> 00:18:18.000
from hiring, you know, like
getting wins where we get people to stop

262
00:18:18.079 --> 00:18:22.759
just thinking there's one type of coder
that we're looking for, and you can

263
00:18:22.799 --> 00:18:25.559
be small things, you know,
like I'm not going to name names,

264
00:18:25.599 --> 00:18:30.799
but you know, the company had
a problem with ordering just Uni sex you

265
00:18:30.799 --> 00:18:33.160
know, T shirts and it you
know, doesn't fit everyone right, and

266
00:18:33.200 --> 00:18:37.559
so you were like, well,
can we get some female cut you know,

267
00:18:37.640 --> 00:18:40.720
that would be a really big win, and just hammering and hammering and

268
00:18:40.759 --> 00:18:41.960
hammering on that, saying it,
saying it, saying it, you know,

269
00:18:42.000 --> 00:18:47.039
and trying to push for let's let's
have stuff for everybody's body type,

270
00:18:47.079 --> 00:18:48.400
you know, and that was that
We got that, and I was really

271
00:18:48.440 --> 00:18:53.920
happy about that. Adventures and Any
is a dev chat dot tv production made

272
00:18:53.960 --> 00:18:59.400
in partnership with hero Devs. Hero
Devs is a group of Angular experts who

273
00:18:59.400 --> 00:19:03.519
can help your team code like true
developer heroes. If your team needs an

274
00:19:03.559 --> 00:19:07.960
Angular expert, reach out to Aaron
at hero dot dev Today. I think

275
00:19:10.119 --> 00:19:14.319
I think it's a thing that more
leaders in software engineering need to focus on.

276
00:19:14.839 --> 00:19:17.200
I like that you are willing to
talk about it because it can be

277
00:19:17.240 --> 00:19:19.559
scary. I just kind of pulled
it out and put you on the spot

278
00:19:19.599 --> 00:19:25.599
for it. My hope is that
more leaders, regardless of where they're from,

279
00:19:26.400 --> 00:19:29.839
what they look like, act like, where they spend their holidays or

280
00:19:29.880 --> 00:19:33.880
not, any of the diversity backgrounds
that they might have or don't have.

281
00:19:34.519 --> 00:19:40.359
My hope is that leaders can own
it because I think the role of senior

282
00:19:40.359 --> 00:19:45.599
engineer needs to expand to include that, and it needs to expand to include

283
00:19:45.640 --> 00:19:49.759
culture, because culture, you know, once you when you're a junior engineer,

284
00:19:51.920 --> 00:19:55.440
you're kind of drinking out of the
firehouse, right, and you're kind

285
00:19:55.440 --> 00:19:57.799
of barely able to focus on your
own tickets and what you're being assigned,

286
00:19:57.880 --> 00:20:02.799
right, and you don't you're still
learning how how to even talk to the

287
00:20:02.839 --> 00:20:07.240
designer, Like you're still just learning
your job for like largely, right,

288
00:20:07.960 --> 00:20:11.680
And then once you get into it, you're kind of now graduated to mid

289
00:20:11.000 --> 00:20:15.160
and you're able to focus on your
own stuff, and you're also able to

290
00:20:15.160 --> 00:20:18.559
start being aware of other people's stuff
even though you don't affect it as much.

291
00:20:18.839 --> 00:20:22.920
But then when you're senior, you're
you're now you're looking at your own

292
00:20:22.039 --> 00:20:29.039
team and you're kind of focusing on
your whole team. True, yeah,

293
00:20:26.759 --> 00:20:32.359
And I think that that part of
that focus isn't just on the technical side.

294
00:20:32.559 --> 00:20:36.680
We also need to focus on is
if I'm on James's team, is

295
00:20:36.799 --> 00:20:42.440
James welcome here? Is is Jim's
welcoming others here? Right? Like?

296
00:20:42.480 --> 00:20:47.440
Those the both of those aspects,
And so I think I think that the

297
00:20:47.480 --> 00:20:52.599
senior engineer role does need to expand
generally to include these kind of I think

298
00:20:52.680 --> 00:20:55.440
I think brankly, it's every level, right like, Yeah, it starts

299
00:20:55.480 --> 00:21:00.319
at the top leadership, a CEO, a CTO, based at the bar

300
00:21:00.480 --> 00:21:03.759
for what a culture looks like,
and then that trickles down, you know,

301
00:21:03.759 --> 00:21:08.279
and every level can adjust some of
that and try to maybe push back

302
00:21:08.319 --> 00:21:12.119
on it if they want to.
But you know, everyone's responsible for making

303
00:21:12.160 --> 00:21:19.119
an inclusive environment where people feel safe
to challenge ideas and bring new ones and

304
00:21:19.119 --> 00:21:23.279
not scare people out of the industry
or or have too loud a voice.

305
00:21:23.359 --> 00:21:27.400
And that's that's an art form that
all of us could always be better at.

306
00:21:27.519 --> 00:21:32.599
You know. I'm I'm always learning
both from my mistakes, from other

307
00:21:32.640 --> 00:21:36.720
people's mistakes and just in general about
as you said, you know, taking

308
00:21:36.799 --> 00:21:41.799
opportunities to go to conferences or or
workshops and just learn what it means.

309
00:21:41.880 --> 00:21:45.119
And you know, and I don't
think. I don't think I could even

310
00:21:45.160 --> 00:21:48.839
define it really that well because of
the fact that it's constantly evolving in my

311
00:21:48.880 --> 00:21:53.880
head how to be inclusive and think
about being inclusive. Yeah, Like,

312
00:21:53.920 --> 00:21:57.400
if someone's like, hey, bullet
points on how to make things inclusive,

313
00:21:57.519 --> 00:22:03.200
it's tough to make a checklist,
right, you could, I could defind

314
00:22:03.279 --> 00:22:07.599
some things. But inclusivity is it's
just a way of It's just a way.

315
00:22:07.960 --> 00:22:11.880
It's not necessarily a bunch of boxes
you can check. Yep. Not

316
00:22:11.920 --> 00:22:15.079
everyone's going to agree with it,
but you know the fact that we try,

317
00:22:15.160 --> 00:22:18.640
right, Like, I think that's
why so many people really respect the

318
00:22:18.839 --> 00:22:22.119
work you do with Jie comf.
Right is that it's supposed to be a

319
00:22:22.160 --> 00:22:26.079
conference that's truly inclusive. Right,
it's the angular community can feel safe together,

320
00:22:26.240 --> 00:22:30.200
learn together, challenge ideas together,
and grow together, as opposed to

321
00:22:30.240 --> 00:22:33.480
like, this doesn't feel like a
safe place for me to be and I

322
00:22:33.480 --> 00:22:37.119
don't want to be. And you
know, I think Angie comp is well

323
00:22:37.160 --> 00:22:41.359
renowned for being inclusive and wanting people
to be there to learn and share it

324
00:22:41.400 --> 00:22:45.519
in that together, which is always
awesome. You know. I think that's

325
00:22:45.519 --> 00:22:49.079
a really awesome fact of what you
guys do. Yeah, I think it's

326
00:22:49.160 --> 00:22:55.759
cool to go somewhere you've never been
with a group of people you don't know

327
00:22:56.119 --> 00:23:00.240
and feel welcome, right, Like, have an interaction, and by the

328
00:23:00.279 --> 00:23:03.240
time it's the first night's over and
it's dinner time, you're like, Hey,

329
00:23:03.759 --> 00:23:07.079
where are we going for dinner with
your new friends that you you you've

330
00:23:07.079 --> 00:23:11.359
known for less than three hours,
right, I like, I really really

331
00:23:11.440 --> 00:23:15.000
appreciate about a lot of the different
communities I'm the part of, and I

332
00:23:15.200 --> 00:23:17.519
think the angy of the community is
one of them. So yeah, you

333
00:23:17.559 --> 00:23:21.480
know, my first time attending injin
comp, I was still in the one

334
00:23:21.519 --> 00:23:25.039
dot zero self taught days. You
know, I wanted to learn more about

335
00:23:25.039 --> 00:23:29.279
what this you know, two dot
zo thing was, and Dan Wallin and

336
00:23:29.359 --> 00:23:30.759
John were doing their workshop, and
I was like, I'll take that,

337
00:23:32.559 --> 00:23:34.680
you know, and I've I've been
friends with those guys and and you know,

338
00:23:34.759 --> 00:23:38.240
all of you with Angry Angular family
ever since. You know that that

339
00:23:38.359 --> 00:23:42.200
one conference changed a lot about how
I viewed Angular and the people that were

340
00:23:42.200 --> 00:23:45.960
in it, and I made you
know, some lifelong friends out of that.

341
00:23:45.039 --> 00:23:48.400
So it was a really special experience. And conferences in generally, you

342
00:23:48.400 --> 00:23:53.680
know, the in Atlanta is just
such a great, great conference for being

343
00:23:53.680 --> 00:23:59.000
inclusive and talking about it and meeting
new friends and lifetime friends and so many

344
00:23:59.000 --> 00:24:00.880
others. I mean, there's I
could list them for for days probably.

345
00:24:02.319 --> 00:24:07.119
Yeah, well cool, you're in
the Colorado area? Am I right in

346
00:24:07.160 --> 00:24:11.920
the Denver area? Okay? So
if anyone, if anyone in your in

347
00:24:11.039 --> 00:24:14.480
your area wants to kind of reach
out, get in touch with you,

348
00:24:14.599 --> 00:24:18.519
ask for help, ask for advice, or anything else find out about what's

349
00:24:18.519 --> 00:24:22.119
going on a shuldar stock. What's
the best way to get in touch with

350
00:24:22.160 --> 00:24:27.000
you? Twitter? Uh, you
know, I'm happy to contact with you

351
00:24:27.079 --> 00:24:30.240
on Twitter. You can also add
me on LinkedIn. I had a lot

352
00:24:30.240 --> 00:24:33.240
of people on LinkedIn. I love
mentorships, So there's you know a number

353
00:24:33.240 --> 00:24:36.559
of people have reached out to me
to just say, hey, can you

354
00:24:36.640 --> 00:24:38.400
kind of tell me like how you
got there and stuff. I can think

355
00:24:38.400 --> 00:24:41.119
about things I can do, and
you know, I'm happy to do that.

356
00:24:41.160 --> 00:24:44.799
I love doing that, so I
think that would be awesome. So

357
00:24:45.160 --> 00:24:48.799
share your your my Spivey on Twitter. Is that you right? M y

358
00:24:49.240 --> 00:24:53.160
s P I V E y Yep. Can you guess why my handle is

359
00:24:53.200 --> 00:24:57.480
that way? My spiy with my
little eye. I don't know. Yeah,

360
00:24:57.519 --> 00:25:00.799
I have no idea. It's an
old school throwback to the early Windows

361
00:25:00.880 --> 00:25:03.960
days. I couldn't think of a
username, and my last name was taken

362
00:25:04.039 --> 00:25:07.880
and I saw my computer he used
to be Remember, it is all just

363
00:25:07.960 --> 00:25:10.519
my computer on Windows, and so
I changed it to my spiby and that

364
00:25:10.599 --> 00:25:12.960
just kind of stuck and it became
a thing. Yeah, it's largely available.

365
00:25:14.279 --> 00:25:17.720
Yeah, I've never had to compete
for it, thankfully. Yeah,

366
00:25:18.759 --> 00:25:22.079
it's not even get into that always
the whole podcast on competing for my name?

367
00:25:22.119 --> 00:25:26.359
All right, baby, yep,
that's cool. All right, So

368
00:25:26.440 --> 00:25:30.880
anyone questions reach out to James my
Spivey on Twitter. Let's move on to

369
00:25:30.920 --> 00:25:34.079
picks. I have a pick.
It's pretty simple. React Coff we've mentioned

370
00:25:34.160 --> 00:25:41.240
is going on right now and there
is uh the MC. Her name is

371
00:25:41.960 --> 00:25:49.880
Devin Lindsay, Devon Lindsay. Anyway, her suit that she's wearing to MC

372
00:25:51.079 --> 00:25:56.599
and that is my pick. She
has a pretty posh looking suit, but

373
00:25:56.720 --> 00:26:02.720
it's pac Man Maze. Nice Ghosts
and the pac Man. So I'm picking

374
00:26:02.799 --> 00:26:08.359
the Valnz's mc attire for reacting off
That is my pick. Nice. I

375
00:26:08.400 --> 00:26:11.799
will share picks in the show notes
if you want to see. Yeah,

376
00:26:11.880 --> 00:26:17.839
you got to pick anything you could
pick and share with the with the podcast.

377
00:26:18.119 --> 00:26:21.920
I think one of the things I'm
most excited about right now is that

378
00:26:22.000 --> 00:26:25.519
Basil Onondato just got released. I
think that's a big step. You know,

379
00:26:25.680 --> 00:26:29.680
Alex Eagle and everyone at Google that's
been working really hard on that.

380
00:26:29.680 --> 00:26:32.480
That's going to be a super sweet
tool that I think a lot of people

381
00:26:32.480 --> 00:26:34.119
in the industry are really going to
like. You know, I know there's

382
00:26:34.119 --> 00:26:37.559
like Pants and some of the other
ones, but Basil basles my jam.

383
00:26:37.559 --> 00:26:41.680
I'm a Google guy through and through, so I'm excited. Yeah. So

384
00:26:41.720 --> 00:26:45.559
a guy actually on my team Hero
Devs. One of the guys on my

385
00:26:45.599 --> 00:26:49.519
team, you know, Jorge.
I don't think I know him. Awesome,

386
00:26:49.559 --> 00:26:55.240
So yeah, Jorge, he just
finished writing his book on Basil and

387
00:26:55.279 --> 00:26:59.279
we're working at translated into English.
He wrote it in Spanish, so that's

388
00:26:59.279 --> 00:27:02.920
cool. I'm a exvan of Basil
as well. So anyway, James,

389
00:27:03.480 --> 00:27:06.480
appreciate you coming on the show.
Thanks for chatting and sharing some of your

390
00:27:06.519 --> 00:27:11.079
knowledge in the industry. And to
the listeners, I will say thanks for

391
00:27:11.160 --> 00:27:15.480
listening and we'll see you next time, See you later bye. Bandwidth for

392
00:27:15.519 --> 00:27:18.480
this segment is provided by cash fly, the world's fastest CDN. Deliver your

393
00:27:18.519 --> 00:27:22.000
content fast with cash Fly. Visit
c A, C H, E,

394
00:27:22.240 --> 00:27:25.039
F l Y dot com to learn
more

