Episode Transcript
Transcripts are displayed as originally observed. Some content, including advertisements may have changed.
Use Ctrl + F to search
0:04
Welcome to Fall Through, your source
0:07
for deep conversations about technology, software,
0:09
and computing. I'm your host, Chris
0:11
Brando, also known as scriptible, and
0:13
on today's episode, we are talking
0:15
with the one and only gopher
0:17
man himself, Bill Kennedy. We talk
0:19
about courses, teaching, what even is
0:21
a senior and staff engineer, and
0:23
so much more. This episode has
0:25
an hour of bonus content. So
0:27
if you want to hear more
0:29
in-depth conversations with Bill, head on
0:31
over to fall through dot f
0:33
n slash subscribe to sign up today.
0:35
And as always, if you're not already, please
0:37
give us a follow on social media. And
0:40
if you want to see our lovely faces
0:42
instead of just hearing our lovely voices, head
0:44
on over to YouTube and smash a subscribe
0:46
button and ring that notification bell so you
0:48
can find out exactly when we drop all
0:51
of our video episodes. And with that, let's
0:53
getting into the the show. Welcome
1:11
back to Fall Through. In this
1:13
episode, it's going to be myself,
1:15
Matthew Snaabria and Chris Brando. How
1:17
are you doing here, Chris? I'm
1:19
doing great. It's a really sunny
1:21
day out. So it's nice. I
1:23
like the sun. It was raining
1:25
yesterday. So yeah, it is nice.
1:27
And it reminded me that I
1:29
have to go tend to my
1:31
grass. It needs some raking and
1:33
loving for the spring season. And
1:35
we're joined with a very special
1:38
guest. Probably. No, I'm, you know,
1:40
I want some of that rain, Chris. We're
1:42
on a severe drought in Miami, and
1:44
everything around me is dying, and I
1:46
have to be out there with the hose
1:48
every other day to keep my
1:51
investment in flowers and plants and
1:53
trees. So I'm jealous that you said
1:55
it was raining. Yeah. I mean, it's nice
1:57
what it rains like for a little
1:59
bit. then we have my sunny day,
2:01
so I don't mind that. Certainly I don't
2:04
want another drought. You're entering the rainy
2:06
season in Florida though, right? Dude, I
2:08
think we've had less than a half an inch
2:10
of rain since October. Oh no. Yeah, that's not
2:12
good. I know, usually in the summer, like... No,
2:14
yeah, I know, but if it doesn't start
2:17
raining soon, we're gonna have a lot of restrictions.
2:19
Yeah, that's bad. When I was living down there
2:21
every day in the summer, like two o' in
2:23
the summer, like two o' o' o' o' o'
2:25
o' o' o' o' o' o'clock in the afternoon.
2:28
nice downpour. You'd get that like like clockwork.
2:30
And it's good. Goes away if your
2:32
plants are watered and you move on.
2:34
Yeah, it's just true. It's funny. I,
2:37
my wife obviously knows who you are,
2:39
right? Like I've, you know, I think
2:41
you probably met her, I don't even
2:44
remember, but she knows who you are
2:46
because of the hat, right? So she
2:48
says, oh, that's Mr. Gopher man. That's
2:51
how she refers to. She calls you
2:53
Mr. Mr. Mr. Gopher. Gopherman. stickers that
2:55
are modeled after you or the gophers
2:58
with the little hat so for anyone
3:00
that's listening we are interviewing the the
3:02
mister gopher man himself but find me
3:05
out of conference you can get some
3:07
of those stickers yeah yeah no in
3:09
this episode we're gonna chat all things
3:11
you know go art and labs training
3:13
education hiring senior engineers we're gonna chat
3:16
about a bunch of this stuff in
3:18
this episode so Why don't you start
3:20
us off, Bill, with a brief introduction
3:22
of who you are, what you're what
3:24
you've been up to? Name's Bill Kennedy.
3:27
I have a small company in Miami
3:29
named Arden Labs, where we primarily do
3:31
consulting, staff, all training, all that good
3:34
stuff. Check out the website. You can
3:36
also check out Arden Labs.a. I've been
3:38
spending the last six months building AI
3:41
demos. There's really some cool fun stuff
3:43
out there as well. We're going to
3:45
client projects. clients. I try to choose
3:48
one project every year and right now
3:50
I'm doing work with prediction guard, which
3:52
is Daniel Whiteknacks Company, and they're basically
3:55
a AI platform that gives you that
3:57
security and all that stuff you need
3:59
to actually run. AI apps that aren't
4:01
being consumed by open AI and
4:03
Google and God knows what they do
4:05
with your data, right? All that good
4:07
stuff. Yeah, I guess still going to
4:10
conferences, doing workshops, did a
4:12
meet up yesterday and yeah, you
4:14
know, try to keep my favorite thing
4:16
now for the last three months
4:18
is ultimate or ultimate software design
4:21
live. So every twice a week,
4:23
I'm online for two hours and
4:25
we're hanging. building out code with one
4:27
of my junior engineers and I was working with
4:29
him a lot. I'm trying to get him up
4:32
to speed and I started realizing all the conversations
4:34
that I was having with him should be recorded
4:36
somewhere. So then I said why don't we just
4:38
start building something online that everybody can see and
4:41
I can have these conversations not just for you
4:43
but everyone else. That's been a lot of fun.
4:45
Nice. I love how you like you just hit
4:47
all the topics right off the gate, AI hiring,
4:50
education, all need-ups. We're gonna get to all of
4:52
that stuff too, which is great, which is great,
4:54
which is great, which is great. Well, we'll get
4:56
there slowly. I remember, I think the
4:58
first time I met you was when
5:00
I think I took your ultimate go
5:03
course way back in Florida. I went
5:05
to the physical location and did that.
5:07
And it was life changing. It was
5:09
really, really fun for me. And I
5:11
remember taking the course when I was
5:13
newer to go and I didn't understand
5:15
everything that you were talking about at
5:17
the time because I was still new
5:19
to it. It really did change my perspective.
5:21
Is Ultimate Go still like your primary
5:23
thing? Or I guess you said you
5:26
switched to like, you know, now you
5:28
have the live stream. Is that kind
5:30
of the bread and butter now for you?
5:32
So what I did, you know, I taught
5:34
the original class for a good five years
5:36
straight, and I was about to be
5:39
put into an insane asylum if I
5:41
had to say those words one more
5:43
time. Like at some point, I don't
5:45
know how musicians sing the same song
5:47
every night for... Three like I did it
5:49
for three years. So imagine me having to
5:51
sing the same song every night for like
5:53
I couldn't do it Yeah, so I had
5:55
to come up with a new class which was
5:57
the ended up being the ultimate service class
6:00
But everybody thinks they know
6:02
how to build a service. Nobody wanted
6:04
to take that class. So eventually
6:06
I retrofitted the class around some
6:08
Kubernetes and software design, which is
6:10
really what I was teaching. And
6:12
so that class gained a lot of
6:15
popularity, and I love that class
6:17
because it's a more practical class.
6:19
If you remember my first class, it's
6:21
great, right? If performance matters, these
6:23
things, and this is how goes
6:25
giving you performance. And we don't
6:27
go into some. deep level semantics.
6:30
But what I always hated about
6:32
that class was that at the
6:34
end of it, you weren't necessarily
6:36
any more prepared to go off
6:38
and start building product. From the
6:40
ultimate go class, you mean? Yeah,
6:42
right? Like you had an amazing
6:44
wealth of knowledge now, but you
6:46
didn't really now, it wasn't set
6:48
to start building something. So the
6:51
ultimate software design class is the
6:53
complete opposite. At the end of that,
6:55
you're ready to start building, and you
6:57
have a bunch of code. You've just
6:59
added to your toolbox to do that.
7:01
So what I've been doing is sneaking
7:03
in the important parts of Ultimate Go
7:05
into Ultimate Software Design. So you
7:07
essentially get both classes sort of mixed
7:10
in one, and then you're able to,
7:12
it's a much more practical sort of
7:14
class, so you can start building things
7:17
sort of out of out of the
7:19
gate. And that's kind of what
7:21
the Ultimate Software Design Live is.
7:23
We started building a, I had a
7:25
list of projects, like you should
7:27
build, if you're learning a new
7:29
programming language, build this list of projects,
7:32
right? Like the first one was a
7:34
crud. Well, that's the ultimate software
7:36
design, right? We built Crud there. But
7:38
the next one was a chat system.
7:40
So I said, Kevin, we're gonna build
7:43
a chat system, right? But we're gonna
7:45
do things in a way that
7:47
anybody that's watching should be
7:49
able to just clone and run, and
7:51
they don't need anything. Actually, it
7:53
is pretty cool. We've built,
7:55
I mean, it is decentralized.
7:57
I'm going to cheat a little bit.
8:00
I used gnats for the basically the
8:02
back plane fabric. So we built chat
8:04
server connects to gnats. So chat servers
8:06
can talk to each other. And then
8:09
we built a client and go that
8:11
connects to your little chat server. And
8:13
we have a pretty distributed system at
8:15
this point, right? Because anybody can start
8:18
a gnats for gnats system and gnats
8:20
can be sort of plugged together. And
8:22
yeah. And we just did. We just
8:24
did what I'm called decentralized identification this
8:27
week, basically using the same Web 3
8:29
technology. Ethereum does with ECDSA keys, so
8:31
you get your own ID. And you
8:33
sign the data, and then the system
8:36
knows that this was signed by you
8:38
because you're the only one that could
8:40
sign it. And now nobody can pretend
8:42
they're you anymore. So we keep adding
8:45
this sort of stuff. So now the
8:47
next thing is going to be some
8:49
levels of encryption. And eventually. When we're
8:51
completely done, we'll have an AI. You
8:54
can turn your chat app into an
8:56
AI spot, and hopefully nobody even knows,
8:58
either talk, or they're talking to you
9:01
or the AI at that point, right?
9:03
That's awesome. Yeah. So we've got a
9:05
few more months of work. Nice. I
9:07
caught a few of the early streams,
9:10
and this was before I had to
9:12
go, my little conference tour that I
9:14
did, like last week and the week
9:16
and the week before. But I caught
9:19
a few of the streams stream, really
9:21
nice. It's really nice. to this as
9:23
well or? There's no, I didn't, you
9:25
don't need Kubernetes for this. So you
9:28
literally could go to the repo which
9:30
is Arden Live/USDL, Ultimate Software Design Live.
9:32
You can bring down that repo. You
9:34
literally could start chatting with somebody today
9:37
right now with that. Nice. If you
9:39
know their their ID, so you know,
9:41
it's just like anything. I need to
9:43
know your phone number to send you
9:46
a message. Here's my. right? My 20-byte
9:48
ID based on a private key that
9:50
we just gave you and you could
9:52
have a communication right now today talking
9:55
so much. See,
10:01
there is a group of people
10:03
on the internet whose daily
10:05
life is all about negativity and
10:07
I don't understand it. Like,
10:10
you took 10 minutes out of
10:12
your life that you're not going to
10:14
get back to say this to me. Like,
10:16
even the book reviews, I go on
10:18
Amazon sometimes and I read some of
10:20
the book reviews and I laugh. If
10:22
they're really bad, I'll publish them on
10:25
Twitter because it's just so. And the
10:27
only thought in my head is that's
10:29
fair if you feel that way, but
10:31
you could have done a
10:33
thousand other things in that
10:35
10 minutes than than what you
10:37
did. And I and that's just not my
10:39
person. Like, I don't understand it. Yeah,
10:41
it's it's tough, right? You're a very well
10:43
-known person in the go community. I'm sure
10:45
you've had your fair share of people
10:48
saying things to you on the internet. And
10:50
I often find that this this industry,
10:52
the tech industry specifically has a very weird
10:55
relationship with feedback. It's it's like
10:57
this industry is afraid to to give
10:59
feedback to others. And dare I
11:01
say, criticize others, right? There's like a
11:03
there's a weird paradigm here that
11:05
if I criticize your work bill, right?
11:07
And I say, hey, like, what
11:09
do you why you return that error
11:11
there? What's going on? Or why are you
11:13
panicking there? And some people take that as
11:16
a personal attack, whereas some other people say,
11:18
oh, yeah, Matt, you that. Why am I
11:20
panicking there? And they have they take it
11:22
as a learning opportunity and they can have
11:24
the discussion back and forth. And I often
11:26
find with a lot of these people that
11:28
publish the bad book reviews or some weird
11:30
slack comment or some, you know, post on
11:32
social media. When you ask them the direct
11:34
question back, like, hey, what? What have
11:37
I done to you? Or like, what's wrong? They
11:40
fold and they don't answer. And it makes
11:42
me think that maybe you didn't have anything
11:44
there to begin with. You just wanted to
11:46
complain for the sake of complaining. It's
11:49
interesting. Very interesting behavior out
11:51
there. When I started blogging
11:53
back in 2013, it
11:56
was horrific. One, I didn't know nearly
11:58
what I knew now. and
12:00
I was publishing stuff and it was
12:02
not all of it was as
12:04
accurate as I wish it had
12:06
been in the beginning because I
12:08
was learning to in some cases
12:11
I was throwing stuff out there
12:13
just so somebody would correct it
12:15
at some point right because especially
12:17
back then I couldn't get the
12:19
go team to talk to me right
12:21
and there was a high-end click of
12:24
people back then that it was a
12:26
hard sort of group to to crack.
12:28
And so if I asked for help,
12:30
I never got anything. But if I
12:32
put a bad thought or idea or
12:34
anything out there, it would get corrected,
12:37
right? Yeah. But at the same time,
12:39
not only is it getting corrected, but
12:41
you're getting beat up because I'm
12:43
supposed to be even early on,
12:45
I'm training people. So imagine this
12:47
elite group of engineers who have
12:50
more experience than I do, went
12:52
to better schools than I do.
12:54
Know this stuff already. I'm just
12:56
learning it. and they're beating me
12:59
up left. It was hard. I
13:01
wouldn't even, at a conference, I
13:03
would almost stay away from everybody
13:05
because it was a horrible sort
13:07
of, so my skin has gotten
13:09
really thick over the years because
13:11
of that. But the other thing is,
13:14
why don't you just quit and give
13:16
up? Because at the time I had
13:18
five kids, it wasn't an option to
13:20
not take the beating. Right? I could
13:22
have easily just not taken the beating
13:25
and not grown my company the way
13:27
I did, but it wasn't an option.
13:29
Every time I wanted to quit, I
13:31
would just go, you can't quit. It
13:33
doesn't matter, just take the beating.
13:35
And then eventually I got to
13:37
a point where the material got
13:39
really sound because I worked at
13:42
getting there. And then the complete
13:44
opposite sort of happened. Then I
13:46
was kind of ignored. It was
13:48
like no feedback at all from
13:50
anybody anymore. And that was kind of
13:52
like a weird point in time too,
13:55
right? That you sort of get this
13:57
transition from getting beat up severely to
13:59
such... Generally, either people thought, well, it's
14:01
Kennedy, so it must be right, which
14:04
wasn't necessarily. Or the people that were
14:06
beating me up were just finally tired
14:08
of beating me up. I don't know,
14:10
dude. Yeah, yeah. Everybody found somebody knew
14:12
to beat up. Maybe, yeah. But I
14:15
don't leave comments on the blog. I
14:17
don't, I don't do that. I have
14:19
comments on the videos, but again, they're,
14:21
they're all super, you know. Dude, I'll
14:23
be doing a live stream stream and
14:26
somebody will ask a question. I'm like,
14:28
dude. Read the room, buddy. Like, read
14:30
the room. Yeah. Like, and I'm in
14:32
the middle of coding and I see
14:34
it. And my brain's just like, really,
14:37
this is what we're doing. Like, you
14:39
came, again, you spent five minutes your
14:41
life on that message today on this,
14:43
on this stream. On the Lord's Day,
14:45
you did this. Yeah. I don't know.
14:48
I don't know. Look, I always say
14:50
there's gonna be a moment where I'm
14:52
laying on my deathbed, hopefully, and I'm
14:54
thinking about all the time I wasted,
14:56
right? And there's plenty of it. But
14:59
I won't be any of that stuff.
15:01
I won't be leaving a bad review
15:03
because I had nothing else to do
15:05
for that. Like, you know, I don't
15:07
do. But it comes with the territory.
15:10
If you're gonna put yourself out there.
15:12
This is true. If you're going to
15:14
put yourself out there, if you're going
15:16
to make content, if you're going to
15:18
do things, you do open yourself up
15:21
to criticism and good, bad, everything in
15:23
between, and it's true. I just wish
15:25
the industry itself embraced it a little
15:27
more and discussed it rather than like
15:29
either throwing the ban hammer around real
15:32
quick or saying, well, actually I'm leaving,
15:34
or I just wish people discussed it
15:36
more rather than just making a blanket
15:38
statement and walking out, you know. The
15:40
more you say, the more you speak,
15:43
you're going to make a mistake. When
15:45
I would do a 20-hour training, there
15:47
is no way on God's Green Earth.
15:49
I wasn't going to say two things
15:51
that week that I wish I hadn't
15:54
come out of my mouth. Right. The
15:56
probability of it happening is just high.
15:58
Right? You just hope to... survive it,
16:00
what it does. Right. People
16:08
have changed, like, I can't say in a
16:11
class anymore, we're going to take a
16:13
walk because people get offended, like,
16:16
there's a bunch of jokes. There are
16:18
a bunch of jokes and stories I
16:20
used to tell in training that over
16:22
the years I had to stop, somebody
16:25
would get offended in the class and then
16:27
I'd hear it. And I got to the
16:29
point where I almost had to just be
16:31
completely and I have jokes that
16:33
I know land and suddenly over
16:35
time they stopped landing that it
16:38
was wild to me too, right? And
16:40
so that's the other problem when you're
16:42
speaking as much as, let's say, I
16:45
do and you're trying to tell a
16:47
joke and it doesn't land that day
16:49
because there's somebody in that classroom that took
16:51
a fence to it for whatever reason. It
16:53
doesn't even matter why, but they did. And
16:55
now you're right. Now you got
16:58
that going on too, which is funny
17:00
because these same people will go and turn on
17:02
like kitchen nightmares with Gordon Ramsay and love the
17:04
fact that he takes the chefs into the back
17:06
to like yell at them or scold them. And
17:08
it's like you love it in that context. But
17:10
then when you're the one when you're the chef
17:12
getting told like, hey, I'm the come outside. I
17:14
want to talk to you for a second. Now
17:17
you're offended. Like what? How
17:19
does that make sense? It's very weird to
17:21
me. And I don't I don't I don't
17:23
get it either. It's I don't know. It's
17:26
interesting. There's a part of it too, where
17:28
I think it's those same people that I
17:30
mean, you know, Matt, you and I have
17:32
talked about this. That'll like go out there
17:34
and champion. Like when we talked about not
17:36
on the podcast, we talked about like the
17:38
whole thing a few years ago where everybody
17:40
had this crusade against certain words that we
17:42
were using like Blacklist and Master Slave and
17:44
all of this and a giant crusade about
17:47
it. And I remember so many conversations with
17:49
people and they're like, well, we have to
17:51
do this because these words, they're offensive. They're
17:53
harmful to people like you. And I'm like,
17:55
I've not talked to a single Black person
17:57
that has had a problem with any of
17:59
these. But I will tell you, here's
18:01
the long list of things that have
18:03
been problems. Can we work on these?
18:05
And people come back and say, and then
18:08
they want to change it to me
18:10
and it's so much easier. How dare
18:12
I do it? And I'm like, okay, well,
18:14
there's this balance that we got a, I
18:16
think we have, it's off balance at the
18:18
moment, right? Like I think we're, we're being
18:20
a little too, we're aiming for the easy
18:22
stuff to try and. fix, but when the
18:24
hard stuff comes, we don't want to do
18:26
it. And I think part of it too
18:28
is like, we have ascribed to this idea
18:31
that everybody should be comfortable all of the
18:33
time. And I feel like that plays into
18:35
this a little bit, where it's like, there's
18:37
a lot of places and a lot of
18:39
things where you're just not going to be
18:41
comfortable. And we have to accept that. Like
18:43
learning is an uncomfortable thing. That's the point
18:45
of it. You're moving yourself out of your
18:47
comfort zone to absorb some new knowledge. We
18:49
wound up in this really weird spot
18:51
where, like, okay, well, yes, you're in
18:53
this space to be uncomfortable, but you
18:55
can only be uncomfortable in certain ways.
18:57
And if someone makes you uncomfortable in
18:59
a different way, then we have to
19:01
remedy that, like, immediately, or that, like,
19:03
we have to find a way to
19:05
make it so that you get back
19:07
to feeling comfortable again. And it does
19:09
feel like it's gone, like, in a
19:11
very excessive direction at this point. And
19:14
I know we've spent a number of
19:16
episodes. communities in general, but I think
19:18
the go community too when it comes
19:20
to a lot of the stuff. And
19:22
I think we've seen over time kind
19:24
of what happens when when you overemphasize
19:26
uncomfortable too much, you wind up with
19:28
communities kind of being a
19:30
bit bleh, where you can't have conversations
19:33
or you can't focus on the right
19:35
parts of a conversation because somebody has
19:37
been very like, oh, like you said
19:39
that thing and I'm offended by the
19:41
thing and now we've got to talk
19:44
about that. So here's my two cents.
19:46
I'm a kid from the 70s, okay?
19:48
So, you know, and things, some
19:50
language had to change.
19:53
I'm not saying it didn't.
19:55
But for me, if I say
19:57
something that affends you.
20:00
And it's not readily in my
20:02
brain that I've done that, because
20:04
it's possible, because the way I
20:06
grew up and where I grew
20:08
up and all that stuff. If
20:10
you tell me straight up, Bill,
20:12
that upset me, I would say
20:14
thank you, I will never say
20:16
it again, because I didn't know.
20:18
I will never say it again,
20:20
because I didn't know. There has
20:22
to be a teaching moment. What
20:24
drives me crazy is when I
20:26
say, oh my God, I didn't
20:28
know that, I'm sorry, and that's
20:30
not taken at face value. It's
20:32
like, you should have known. Well,
20:34
slow down, slow down, right? Like,
20:36
you might think I should have
20:38
known, but I didn't, I'm telling
20:40
you, I'm apologizing, right, and move
20:42
on. And do, when I started
20:44
Gopridge, okay, I had to start
20:46
working with a lot of women.
20:48
And I had three women that
20:50
taught me so much in the
20:52
first year. All the mistakes I
20:54
was making with just seeing a
20:56
woman in a classroom that wasn't
20:58
smiling and ask her why she
21:00
wasn't smiling. And I would ask
21:02
one of the women I was
21:04
working with. You know, I said
21:06
this today and things really went
21:08
backwards and they'd be like, no,
21:10
you didn't. And I'm like, yeah,
21:12
no, Bill, you can't do that.
21:14
I had a year of Bill,
21:16
you can't do that. great enough
21:18
to sort of deal with that
21:20
and teach me and after a
21:22
year I stopped making all these
21:24
mistakes. I didn't know, right? And
21:26
so I just wish that I'm
21:28
okay with you saying what I
21:30
just said offended you. I'm okay
21:32
with that. I'm okay with you
21:35
saying what I just said offended
21:37
you. I'm okay with that. I
21:39
don't have to agree. So if
21:41
you said you offended me and
21:43
I said it again, like, come
21:45
on. Right, but I just want,
21:47
I just want the chance to
21:49
have the opportunity to learn and
21:51
let's say be forgiven at that
21:53
point. Agreed. I think you hit
21:55
it on the head when you
21:57
said earlier that there's just some
21:59
people out. that thrive in that
22:01
negativity, they want that negativity.
22:03
And there's a difference between
22:05
saying something in passing one time
22:07
and then apologizing for it if
22:09
you didn't know, versus consistently having
22:12
that behavior. Like you said, that
22:14
does make you think soul, right?
22:16
If you have that behavior consistently.
22:18
And it's just, it's interesting that
22:20
this permeates in the learning space,
22:22
because like you said, Chris, when you're
22:24
in the learning space, you have to
22:26
there's a there is a sense of
22:28
discomfort there right you you're not in
22:30
your comfort zone the whole purpose of
22:32
you in there to learn is to
22:34
be uncomfortable to stretch your mind to
22:36
observe absorb that new knowledge as you
22:38
said and I I can readily think
22:40
of times where I was either disciplined
22:43
by my parents or in a learning
22:45
situation in karate where I was learning
22:47
new like moves or whatever or where
22:49
I was like getting a pull request
22:51
reviewed and I was uncomfortable
22:53
And I was like, wow, I'm stretching
22:55
out here. When I walked away from
22:57
that, I grew, right? In all of those aspects,
22:59
I grew, I learned the thing that
23:02
I was being disciplined on, I learned,
23:04
you know, how to better do this
23:06
in Karate. My code got better because
23:08
the reviewer actually, like, gave it to
23:11
me rather than coddled me. And I
23:13
walked away from those, all of those
23:15
things, stronger and better. And I
23:17
think that concept has fell off
23:19
a little bit. We've... over index
23:21
on the coddling aspect. And
23:24
like you said to yourself, Bill, you
23:26
stop making some of those jokes,
23:28
you stop bringing some of this
23:30
stuff to your course, to your
23:32
classroom. And we can argue whether
23:35
that's for good or for bad,
23:37
but in a part of that, you left
23:39
part of yourself on the
23:41
sideline while you're teaching your
23:43
class. And there has to be some
23:46
like. Negative thing that comes out of
23:48
that, right? Because you're not bringing your full genuine
23:50
self to the class anymore, because you have to
23:52
tiptoe a little bit. And does that affect the
23:54
learning? Maybe, right? Yes, no, I don't know. Depends
23:56
in the audience, I guess. Depends in the content.
23:59
It's just, it's sad. talking from a point
24:01
where you appreciated the little jokes and
24:03
yeah we're gonna take a walk and
24:05
you knew it was a joke where
24:07
somebody else I guess had some experience
24:09
where maybe that happened to them and
24:11
now there's trauma around it right right
24:13
and again I don't want to bring
24:15
up trauma so if you tell me
24:17
that's upsetting you I won't say it
24:19
again when I'm in my third class
24:21
and I'm starting to see the same
24:23
pattern like mhm-hmm okay I guess
24:25
for whatever's happened in society for the
24:27
last end number of months, this is
24:29
no longer anything I can say, right?
24:32
Like, I have to gauge it too.
24:34
I mean, I'll stop getting work if
24:36
everybody's like, you can't bring Kennedy in
24:38
a classroom. You're friends, everybody. You know,
24:40
there's, but you know, I tell my
24:43
kids this, I didn't make this up,
24:45
but you learn more from your mistakes
24:47
than your successes, right? And it's easy
24:49
to beat yourself up every time you
24:52
make a mistake. I make 100 mistakes
24:54
a day, I make one really bad
24:56
mistake a week. That's what it is.
24:58
I lie in bed every night thinking
25:01
about, all the mistakes you made today,
25:03
right? We're going to do better tomorrow.
25:05
And the next time I'm like, well I
25:07
didn't do better today. But you're learning
25:10
more from the mistakes than you
25:12
are the successes. You need successes
25:14
to keep your positivity go. Can't
25:16
be like, right? And I try
25:18
to tell the kids that. My daughter just
25:20
made a mistake last week, it costs
25:22
you're like five grand. And I said
25:24
to her, this isn't, and she's 29,
25:26
I said, this isn't gonna be the
25:29
most expensive mistake you ever make in
25:31
your life. I hope it is, but
25:33
I promise you it's not going to
25:35
be. So now you've learned, now we
25:37
move on, right? And it's hard, man.
25:39
It's hard not to beat yourself up,
25:42
but I had seen an interview with
25:44
an astronaut. I can't tell you which
25:46
one was. And they said when they're
25:48
up in space and they make a
25:50
mistake. They're told they have
25:53
30 seconds to beat themselves up
25:55
and then they have to move on because
25:57
they don't have time not to up in
25:59
space That's it. So you get
26:01
30 seconds, everybody looks at you,
26:03
start your 30 seconds, beat
26:06
yourself up, and then you move
26:08
on. And I loved that
26:10
because I don't, I need more
26:12
than 30 seconds still. But,
26:14
you know, I'm, I probably, depending
26:16
on the mistake, have got
26:18
it under an hour at least
26:20
where I can finally just let
26:22
it go. Right. I think that's
26:24
a skill that you need to develop. You
26:26
need to recognize you're beating yourself up. You need
26:28
to recognize there's nothing more you can do about
26:31
that. Forgive yourself and move on. The faster you
26:33
can do that, the better your life's going to
26:35
be. Yeah.
26:37
I think there's, at the end the day, there's
26:39
a lot of, it comes down to having a
26:41
lot of nuance when you approach all of this.
26:44
It's like there's no, like, right or wrong way to
26:46
handle a particular situation. You've just got to handle
26:48
it the best that you can and learn from
26:50
that. And if you see that happen again in
26:52
the future, adjust accordingly. Kind of like what you
26:54
just said, Bill. Where it's like, yeah, if you
26:56
keep seeing people that are feeling a little bit
26:58
uncomfortable in the class because you told that joke,
27:00
like you got to weigh it. Like, is this
27:02
joke integral to the course? Or can I just
27:04
throw it out and not have any problem? And
27:06
if you throw it out have any problem, well,
27:08
that's an easy decision. Like, okay, well then, that's
27:10
not. Sometimes I need to tell the jokes to
27:12
wake everybody up. I don't even know if they're
27:14
paying attention. So sometimes you might say something just
27:16
to see who's, whoa, like who's,
27:18
who's still involved after four
27:20
hours, right? Again, nothing horrible, but
27:22
enough to just go off
27:25
the beating path a little bit,
27:27
you know, I don't
27:29
know. It can help with attention too. But
27:31
yes, I mean, I don't know. I've been
27:33
navigating it for almost 10 years now. I've
27:37
seen shifts of people in the
27:39
classroom. And I don't want to say
27:41
it's generational because I don't think
27:43
it's generational. But at the same time,
27:45
I ain't getting any younger, right?
27:47
I got, I'm 55 and I've got
27:49
young 20 year olds in the
27:51
classroom. Some level, you got to stay
27:53
hip too. Can't be the old
27:55
man in there either, right? Yeah. So,
27:57
so that's the other thing too,
27:59
right? I'm all over the planet. You have
28:01
to know where you are too sometimes because
28:04
things land. I had to learn the hard
28:06
way. I had to learn the hard way
28:08
on some of that too, right? Right. Yeah,
28:10
things always land correctly, depending on your audience
28:12
and culture. You're going to make, at the
28:15
end of the day, the point is, if
28:17
you're out there publishing, speaking, doing something,
28:19
the more you do, the probability of
28:21
making mistake is high, own it, apologize,
28:23
move on, don't do it again. Right. I
28:25
want to change topic slightly to the
28:27
overall like learning landscape, right? We talked
28:30
about, you know, the feedback and the
28:32
criticism stuff, but I want to talk
28:34
about the overall programming learning landscape. What
28:36
have you, what are you seeing in
28:38
the industry, right? What, what programming skills
28:40
are in demand? What have, what skills
28:43
have fallen off in recent years? Anything
28:45
about your curriculum that you've kind of
28:47
pivoted and changed on? I want to
28:49
talk about that stuff. I'm not the...
28:51
If you want a highly customized sort
28:53
of training, I'm not your person because
28:55
I know what you need. I know
28:57
this class is what you need. And
28:59
every time I got to get into
29:02
a meeting with a company saying they
29:04
want this, this, and that. I'm saying
29:06
you don't really want that, you need
29:08
this. And then I do the class.
29:10
They're like, Bill, this is exactly what
29:12
we needed. I know what you guys
29:14
need. I'm dealing with a day in
29:17
and a day out. What I'm
29:19
seeing a little bit more of
29:21
recently, five plus years old that
29:23
have been architected with a level
29:25
of complexity that nobody wishes was
29:27
there, but it happened. And as
29:29
people leave these companies, as these
29:31
engineers leave and they got to
29:34
hire new engineers, what they're looking
29:36
for are resumes that show enough
29:38
well-rounded experience where they feel that
29:40
they could bring this person in
29:42
and they can handle the complexity
29:45
without having to bother them too
29:47
much. Like learn the complexity of
29:49
the system. They're not even
29:51
testing for programming skills anymore
29:54
so much as, okay, they've
29:56
worked with enough different databases
29:58
and enough messaging systems. at least
30:00
it says on the resume, and enough of this,
30:02
and enough of that, I feel comfortable that I
30:04
can bring them into this chaos, and they can
30:06
be productive within a certain amount of time. That's
30:08
sort of what I'm seeing. Now, let me
30:10
tell you what I'm seeing that's making me
30:13
cry, because I'm doing a lot of
30:15
interviews for the last month, okay? A lot
30:17
of interviews with people that have anywhere from
30:19
three to 15 years of experience of experience
30:22
on the resume. And the more experience
30:24
you have on the resume, the resume, the
30:26
skater I get-der I get-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a I have found
30:28
a few number of people
30:30
who can actually take direction
30:32
and write an algorithm at
30:34
this point. I'm not going to tell
30:36
you what the algorithm is because
30:39
then everybody's going to
30:41
study it and then they're going
30:43
to come to Arden. But things
30:46
like iterations and math, people
30:48
have a big problem with
30:50
doing this. And I think
30:52
what's happening is everybody's at
30:54
work copying and pasting code.
30:57
writing web APIs, finding code,
30:59
copying it, hey it works,
31:01
moving on, and people have
31:03
gotten very very good at
31:06
finding some code that works,
31:08
patching it somewhere and getting
31:10
things, but not really understanding
31:12
what the code is doing, how that
31:14
code, why the code even works,
31:17
and it's scaring the bottom of
31:19
me. It's scaring that. When you
31:21
say, when you say iteration and
31:23
math, do you mean iteration as
31:25
in like iterators or do you
31:28
just mean the concept of small
31:30
changes over time? Like here's construct
31:32
a slice with something in it.
31:34
It could be an unlimited number
31:36
of these things in it. Now
31:39
iterate over that and do something
31:41
every nth item, right? Gotcha. So
31:43
you do mean the iteration aspect
31:46
of iterate over this? Do something
31:48
and every time, every four or
31:50
five iterations, do this other thing.
31:53
They can't, nobody can code
31:55
it. Nobody can code it. Nobody
31:57
can code it. Nobody can code
31:59
it. I had a guy that couldn't
32:01
code this little algorithm, but I kept
32:04
looking at his resume. I helped him
32:06
through it. So after about 10 minutes
32:08
with helping him, he got it working.
32:10
And I don't need you to be
32:12
able to just do it completely. I
32:14
just want to see how you interact
32:16
with me and how you get through
32:19
it. So he got through it. With
32:21
his resume, my brain said he should
32:23
have... done better, but I gave them
32:25
the next challenge that I have, which
32:27
is a concurrency problem. I give them
32:29
a function that runs serially, right? Again,
32:31
another sort of iteration that does things,
32:34
and I say, I want you to
32:36
throw a go routine at every one
32:38
of these items in the collection. Don't
32:40
do it one at a time on
32:42
one go routine. Like a fan-out pattern,
32:44
right? Code that for me. And this
32:47
guy coded that easier than he did.
32:49
the other algorithm that I asked him
32:51
to code. And then my light bulbs
32:53
really went on, right? Because he had
32:55
some experience already with some concurrency patterns.
32:57
And again, I had to help him
32:59
a little bit. I didn't care about
33:02
that, right? But he did a 10
33:04
times better job with what I would
33:06
have considered more complex than the simple
33:08
little algorithm. And then the light bulb
33:10
went on. I think people have almost
33:12
forgotten how to program in a traditional
33:15
sense, at least the way I was
33:17
taught. And now it's again all patterns,
33:19
and I let people keep the AI
33:21
on. I go, if this is how
33:23
you work every day, then interview that
33:25
way. Right? I mean, I don't really
33:27
care. Sometimes the AI helps you. Sometimes
33:30
it doesn't. I've seen the AI helping
33:32
people and they're ignoring it. And I'm
33:34
like, the AI just gave you the
33:36
answer, man, and you just like completely
33:38
threw that away. Right? It's scary, man.
33:40
It's scary. And I find the kids,
33:43
I'm gonna say kids, the people that
33:45
are out of school a year or
33:47
two. Do better on my interviews than
33:49
the ones that have more experience. That's
33:51
mind blowing to me. A lot of
33:53
the recent college graduates often over index
33:55
on algorithm study. So it would make
33:58
sense that they would like probably perform
34:00
better in that aspect versus people that
34:02
have been in the industry. And I
34:04
know there's probably listeners listening to this
34:06
right now that are like, well, the
34:08
algorithm stuff, leacote, sucks, this and that.
34:11
And yeah, you're right. Like that's not
34:13
a great way to interview. But also
34:15
when you have to work through some
34:17
problems, you do need to have like
34:19
algorithmic thinking. You need to you need
34:21
to describe what it is you're going
34:23
to do with this code in plain
34:26
language in an algorithm before you actually
34:28
just go hack at the code. And
34:30
then a lot of people's responses to
34:32
that are like, oh, well, I prototype
34:34
better with my my programming language. It's
34:36
like, but then how are you going
34:39
to tell the next person? You know,
34:41
you're going to tell them to read
34:43
your, your, code that nobody can read
34:45
because you're too clever. If you can't
34:47
explain to me the algorithm in plain
34:49
language, how are you going to fix
34:51
it or troubleshoot it when things go
34:54
wrong? That scares me too. It reminds
34:56
me of one of the things that
34:58
Leslie Lamport has said a lot, where
35:00
it's like, he draws this distinction between
35:02
programming and coding. And he's like, people
35:04
today. tend to be able to code.
35:07
Like you take the language, you can
35:09
produce some software with it, but that's
35:11
different from programming, which is this broader
35:13
thing of like actually designing software, designing
35:15
algorithms, designing all the pieces that come
35:17
together, and then coding is a thing
35:19
you do after you figured out all
35:22
of that stuff. And I think a
35:24
lot of people push back against some
35:26
of his ideas like, you know, using
35:28
TLA Plus or. just writing things down
35:30
because that's more programmer and less coding
35:32
and people want to be in the
35:35
coding they want to be in their
35:37
programming language because that's where they feel
35:39
the most comfortable that's where they feel
35:41
like they can be the most productive
35:43
but it does lead to people not
35:45
being able to conceptualize what it is
35:47
that they're kind of building in the
35:50
macro sense which I also think is
35:52
is troubling for businesses right because businesses
35:54
for the most part don't care about
35:56
the code at the end of the
35:58
day. They care if you've programmed it.
36:00
They care if the problem they have,
36:03
you've created a solution for, which you
36:05
don't have to do by writing some
36:07
code. You have to do that by
36:09
sitting down and figuring out what are
36:11
the parameters of this, how do I
36:13
build a solution? And then you can
36:15
go, and as people say, maybe not
36:18
reinvent the wheel, and go and find
36:20
a solution and say, hey, the solution
36:22
fits my problem. I can just use
36:24
this or I can use half of
36:26
this and half of this other thing
36:28
and bring those two things together. But
36:31
I think people want to jump into
36:33
the code a little too quickly. I
36:35
think we're starting to see the repercussions
36:37
of that and the repercussions of people
36:39
just not. wanting to go lower level
36:41
on things and not understand how things
36:43
work. Like a lot of people don't
36:46
understand how garbage collectors work. They don't
36:48
understand how their memory model works. So
36:50
like my program is slow and it's
36:52
like your program's slow and they're like
36:54
it's the garbage collector. It's because I'm
36:56
writing a garbage language and it's like
36:59
no your program is slow because you
37:01
have a garbage problem because you... allocated
37:03
a bunch of memory, then dropped it
37:05
on the floor, and of course it's
37:07
going to be slow, no matter the
37:09
memory model that you're using. But that's
37:11
not something that people are studying as
37:14
much and learning as much, because they
37:16
don't think they need to, because, oh,
37:18
the runtime and the garbage factor will
37:20
do all of this for me. So
37:22
here's something interesting today's show. We started
37:24
using a 20-byte array, which is a
37:27
common address in Ethereum for your ID.
37:29
a 20 byte array fixed no matter
37:31
what, right? And you can produce a
37:33
string from that, which ends up being
37:35
about 40 characters long, okay? So somebody
37:37
was like, Bill, why are you using
37:39
the common address? Why don't you just
37:42
use a string? Won't it be smaller
37:44
and more efficient? And immediately my brain
37:46
went, well, we're dealing with a 20
37:48
byte array. That 20 byte array doesn't
37:50
need anything on the heap. It's 20
37:52
bytes, right. We put that in a
37:54
struck. There's never anything going to be
37:57
on the heap unless the struct itself
37:59
ends up on the heap. But if
38:01
I start working with a string, the
38:03
string value will stay in the struct,
38:05
but the backing array of these bites
38:07
have to be on the heap. So
38:10
when you start thinking about all that
38:12
stuff, right, switching from a string to
38:14
a 25, I mean a 20 bite
38:16
erase, starts, I didn't even think about
38:18
it at the time, right? Plus you
38:20
get the type safetyness of a type
38:22
that isn't string, right? And you start
38:25
sharing all this stuff online and I'm
38:27
starting to realize again, just like you
38:29
said, right? Nobody really understands the, readability
38:31
is about understanding the cost of that
38:33
code, right? And engineering is having an
38:35
understanding of the cost of your decisions.
38:38
But I also always teach that there's
38:40
two modes you're in. You're in programming
38:42
mode and engineering mode. And programming mode
38:44
is find me the 20 lines of
38:46
code for the happy path that makes
38:48
this work. And then engineering is. How
38:50
do I put this in the product
38:53
in a way that's fault tolerant and
38:55
I deal with all the things that
38:57
are about to happen to me, right?
38:59
And to be able to maintain mental
39:01
models of the code base. So when
39:03
things start breaking, I know where to
39:06
go to sort of fix it. These
39:08
are the two things. And I think
39:10
college teaches you how to do some
39:12
programming, which is great, which is why
39:14
I have Kevin on the show, because
39:16
he's taught how to program. He's never
39:18
been taught how to engineer. There's no
39:21
time for it in university in university.
39:23
Right. And that's a little bit more
39:25
also kind of what we see. I
39:27
want to ask a question on the
39:29
learning landscape real quick. You mentioned earlier
39:31
that you see companies coming to you
39:34
with legacy Go code bases, right? Five,
39:36
maybe, five years old, maybe. What really
39:38
makes some legacy? Is it just the
39:40
age? Is it the version of Go?
39:42
Like what, what is actually the finding
39:44
legacy here for you? Legacy means that
39:46
you have a code base where the
39:49
breadth of knowledge about that code base,
39:51
the mental models of this code base
39:53
have almost gone completely lost. Where you've
39:55
had also so much turnover that there
39:57
wasn't even somebody there to teach the
39:59
mental models of the code base. has
40:02
intimate knowledge over code based on ever
40:04
mental model ever. What does that mean?
40:06
That means if they see something in
40:08
the logs, they know where to go.
40:10
You always know where that code is
40:12
at some level. You know how the
40:14
code works, you know where it is.
40:17
And it's not line by line, but
40:19
it's enough of a mental model to
40:21
know where to start. See, the moment
40:23
that's lost, now you're in trouble. And
40:25
God forbid, you don't have enough tests.
40:27
Because at that point, you don't know
40:30
what you're breaking breaking. Right? And I
40:32
don't use tests as a criteria for
40:34
legacy. But the older a code base
40:36
gets and the newer the people are
40:38
on it and the lack of mental
40:40
models, now you get into a very
40:42
scary situation about how do you update
40:45
it? I walked into a client that
40:47
had a code base. It worked. It
40:49
was a mess. They hired me to
40:51
build a version two that we could
40:53
build mental models around, right? I got
40:55
hired to do that. And we did
40:58
it, but the problem was they had
41:00
no tests. The first month was, and
41:02
luckily this was just like a web,
41:04
it was an API, a web API.
41:06
For the first month, all we did
41:08
was write tests on all the end
41:10
points to make sure that we understood
41:13
everything going in. and what we expected
41:15
going out, including all the error messages.
41:17
Once I had the tests, we could
41:19
start rewriting the API. This wasn't simple
41:21
APIs either. There were complex data structures
41:23
going in and out. But now we've
41:26
got a new version of the service
41:28
where there's at least two of us
41:30
that have a full mental model of
41:32
the code base, how to add stuff,
41:34
how to debug stuff, how to do
41:36
that. If I leave and the other
41:38
guy leaves and somebody new has to
41:41
come in, it doesn't matter that I
41:43
feel like this has been architected really
41:45
well. They have no mental model of
41:47
the code base. They're going to start
41:49
hacking on it. They're going to put
41:51
code in the wrong place, even though
41:54
it's going to work, because every time
41:56
I have another person start doing stuff,
41:58
my code reviews are usually, you can't
42:00
put that there. looked good and I
42:02
know it's working but you don't want
42:04
to put that there we got to
42:06
put it over here right and so
42:09
now that becomes a real mess because
42:11
now you're back to the point where
42:13
you can't make a change at all
42:15
because right the whole thing just now
42:17
become and it's not even because the
42:19
initial architecture was bad it's because the
42:22
next person coming in didn't know how
42:24
to maintain that architecture nor adapt as
42:26
things adapted. So that to me is
42:28
sort of legacy. So if you hire
42:30
me right now, and I don't know
42:32
your code base, it's legacy to me,
42:34
until I gain a mental model of
42:37
it, and I feel very comfortable that
42:39
I can run tests, and I can
42:41
make changes, and I know if it
42:43
broke stuff. Hmm. I feel like that's
42:45
one of the best definitions of legacy
42:47
that I've come across. So I feel
42:50
like it is, it puts it in
42:52
the context of not... the code as
42:54
like an objective thing of legacy or
42:56
not, but the subjective view of who
42:58
has to work with it that determines
43:00
whether it's legacy, which I think puts
43:02
more of the onus on us to
43:05
make sure that we do the knowledge
43:07
transfer or even better, actually archiving and
43:09
putting that knowledge into a place where
43:11
people can access it later. Because right,
43:13
if you wrote that code base, but
43:15
you also wrote, you know, we call
43:17
it documentation, but if you also write
43:20
down all of the information about it,
43:22
then somebody who needs to approach that
43:24
can go first, study what you've written
43:26
about it and like, oh, these things
43:28
go here and this is how we
43:30
architected it. This is how it did
43:33
everything. And now they have that mental
43:35
model. So now something that might have
43:37
been legacy before is no longer legacy
43:39
because now someone understands it so they
43:41
can work on it. Right. So it
43:43
also takes it away from a time-based
43:45
thing. Because people tend to think about
43:48
legacy in terms of time, right? Oh,
43:50
it's like, and you kind of. flip
43:52
that definition almost and you say it's
43:54
not legacy because it's old, it's legacy
43:56
because I'm new to the code base,
43:58
right, or I'm not, I, and not
44:01
just new, I'm knowledgeable to the code
44:03
base. I like that definition of legacy
44:05
as well, and that's a good point.
44:07
So then it begs the next question
44:09
of like, what about it is, like
44:11
what are they calling you for then,
44:13
right? Like what do you find yourself
44:16
fixing in these code bases then, normally?
44:18
Most of the time, if I'm in
44:20
those situations, it's really about rewriting it
44:22
to a new architecture. that I know,
44:24
that people that Arden know, and making
44:26
sure that every service that we're now
44:29
building in that company uses the same
44:31
sort of architecture and project structure, same
44:33
design philosophies and guidelines. That way, somebody
44:35
working on this service could jump easily
44:37
on this service, even if they don't
44:39
know the full understanding of what it
44:41
does, they'll know where everything is. Because
44:44
we build the same. the package is
44:46
the same way and we organize things
44:48
the same way. So I'm doing that.
44:50
Now sometimes I get hired to just
44:52
do code reviews and I always ask
44:54
this question first and it always pauses
44:57
everybody. What is your objective of me
44:59
coming in and doing a code review?
45:01
Like what's your objective? Is your objective
45:03
that I'm just going to make you
45:05
feel good that I think you're doing
45:07
things right? Is your objective that you're
45:09
going to feel like at the end
45:12
of this because I'm telling you that
45:14
I don't like what you're doing? start
45:16
rewriting things like what is your objective
45:18
and the funny thing is most people
45:20
don't know what their objective is in
45:22
in say one of these external code
45:25
reviews that's going on and I have
45:27
a client now that they'll reach out
45:29
to me for two hours and I
45:31
end up helping them redesign a package
45:33
that they've been sort of designing right
45:35
right where they're maybe not working with
45:37
concurrency as well as they could or
45:40
and so a lot of times I'd
45:42
like to do it. you know, packaging
45:44
is a brilliant thing in Go, right?
45:46
It's our unit of code. And so
45:48
a lot of times if you're going
45:50
to start trying to clean up a
45:53
code base, there's two things you're going
45:55
to need to clean up. One is
45:57
your project structure and how packages are
45:59
laid out, right? And I teach that
46:01
stuff with layering and domains and things
46:03
like that. in different ways you can
46:05
be successful with architecture and domains and
46:08
layering. These things have to exist. I
46:10
call them firewalls to be honest with
46:12
you, right? Yeah, I remember you talk
46:14
about that. So packaging is a way
46:16
to create firewalls between the most unit,
46:18
right? Discreet parts of your program. You
46:21
want to define layers that define firewalls
46:23
within the scope of data flowing up
46:25
and down. And then you want to
46:27
define domains, which we use microservices a
46:29
lot for. Right? You think about when
46:31
we went microservice crazy. Really what you
46:33
were doing is defining domains of functionality
46:36
at a process level. I'm trying to
46:38
teach domains in proc. How can you
46:40
create those vertical firewalls within the scope
46:42
of your project so you don't need
46:44
the microservice to sort of do the
46:46
domain? And I don't care what your
46:49
architecture is. It's at least from a
46:51
go perspective. You need these three things.
46:53
Good package design for that level of
46:55
firewall, layering. I do application layers, business
46:57
layers, whatever. I don't care what they
46:59
are for you. And then the domains,
47:01
right? These sort of vertical, sort of,
47:04
and if you think in terms of
47:06
firewall, then, right, and if you could
47:08
portray that in your project, where somebody
47:10
can look at it and say, where
47:12
are the layers? Okay, these are the
47:14
domains. If somebody within five minutes can
47:17
have a light bulb. that turns on
47:19
on a project and see the layers
47:21
and see the domains, you're already 50%
47:23
there in terms of... where they should
47:25
go. You can define what the roles
47:27
and responsibilities are for a layer. The
47:29
domain is always a domain of functionality,
47:32
whatever that is, right? And then good
47:34
package design is critical. That's where you're
47:36
going to make all your mistakes in
47:38
the first couple of years, right? We
47:40
talk about all that. And so if
47:42
I come into a project and I
47:45
look at it and I look at
47:47
how much code is there, if there
47:49
isn't a large amount of code, let's
47:51
say 5,000 lines or less. start from
47:53
scratch. Let's move those packages over one
47:55
at a time, put them in the
47:57
new place, and let's... fix those package
48:00
APIs, and we have time to do
48:02
that. We can project of that size.
48:04
We should be able to move over
48:06
in a month or less, depending
48:08
on the tests that we need. If
48:10
it's much bigger, then what we're gonna
48:12
do is you have two choices. You
48:14
start with all the existing packages you
48:16
have, but you come up with the
48:18
new layers. So you come up with
48:20
the new project structure and take all
48:22
the existing packages you have and try
48:24
to organize them in the right place
48:26
to the extent you can, right? because
48:28
that might be really hard to break
48:30
out. But you could always move a
48:32
package somewhere, right? We all agree. A
48:35
package that's here could be moved here.
48:37
We just got to change some imports.
48:39
And so if you get it. If
48:41
you could reorganize the packages you have,
48:43
you start to also understand, you know,
48:45
are these packages really the best ones
48:47
we need it? Are they doing too
48:49
much? And then you can start reworking
48:51
a package at a time and at
48:53
least get to better package design and
48:55
layering, you know, structural layering design. After
48:57
that, you could choose whether or not
48:59
you want to, you know, break it into
49:01
domains. You find that to be a
49:04
hard sell though? Like, a lot of
49:06
people would consider it wasted, right. I
49:08
know, I mean, in your case, you're
49:10
hired to come in, right? I get
49:12
that. They're hiring me because they already
49:14
feel it. Right. In the case of
49:16
maybe the listener or people listening to
49:18
this or even ourselves, when you're trying
49:20
to propose some of this design from
49:22
the inside, do you people come to
49:25
you and say like that's a hard
49:27
sell? Like I'm creating pull requests that
49:29
need three reviews that are just renames
49:31
and moves and people are mad at
49:33
me? Like, do you find that sort
49:35
of pushback? to agree that this has
49:37
to be done. And it's either one
49:40
of two reasons, right? It's the velocity
49:42
of the team is now completely lost.
49:44
They're just not moving fast enough.
49:46
And they're all complaining about the
49:48
same things, right? We don't understand
49:50
the code. We don't put things
49:52
with breaking stuff. And you've got
49:54
to solve that problem. So Bill,
49:56
I can help you with that, right? We
49:58
can figure that out. Sometimes what happens,
50:00
and this is happening more and more,
50:03
some company that wrote these Go services
50:05
just got sold to Company A, they
50:07
bought it, right? And now some brand
50:10
new team of Java developers who want
50:12
to learn Go, and are really strong
50:14
developers, by the way, want to learn
50:17
Go, are told you now have to
50:19
maintain this. Right. So now you're coming
50:21
in. to help them start to understand
50:24
the code, the packages, maybe the decisions
50:26
that they, the old product made, they're
50:28
responsible for maintaining it. And I've never
50:31
met a group of non-go developers in
50:33
that situation where they came from Java,
50:35
C-sharp, that couldn't come in and do
50:38
that work. Like, they don't need syntax
50:40
training, the syntax is there, right? It's
50:42
all more about, but I don't understand
50:45
packaging, yeah, well, it took me five
50:47
years to understand it too, so. Stop
50:49
beating yourself up, right? And then taking
50:52
opportunities. Like on that particular say client,
50:54
all we're doing at that point first
50:56
is trying to get a mental model
50:59
of where everything is and fixing one
51:01
package at a time. After that, then
51:03
you can start talking about restructuring the
51:05
project from some better mental models. But
51:08
at that point, they might feel comfortable
51:10
enough. But they're like, you know what?
51:12
We have the mental models. This isn't
51:15
that bad. The fact that we've just
51:17
cleaned up the packaging and start up
51:19
and config and that's enough. I want
51:22
to move a little bit away from
51:24
the general landscape of learning and package
51:26
stuff. I want to talk more about
51:29
your journey at Art and Labs. I
51:31
want to talk about specifically, you have
51:33
ultimate go, ultimate service, ultimate software design.
51:36
But I saw that you also have
51:38
more, right? You have docory of Kubernetes,
51:40
and more recently now you have rust
51:43
courses. And I found it interesting because
51:45
you are the gopher man, right? Mr.
51:47
Gopher man, as my wife says. And
51:50
Arden Labs has pivoted, I don't want
51:52
to say pivot, maybe pivot is the
51:54
wrong word, maybe expanded, you've expanded to
51:57
rust. Can you talk to us about
51:59
that decision? Dude,
52:01
if you're gonna stay in business for
52:03
a long time, you can't put all
52:05
your eggs in one basket. You have
52:07
to diversify, right? So to diversify from
52:09
an Arden Labs perspective means you can't
52:11
just be about go. Every year I
52:13
would wake up and say, this is
52:15
gonna be the last year for go.
52:17
This is gonna be the last year
52:19
for go. Nobody else's. At some point
52:21
it was for Ruby. Do we all
52:23
agree? Early
52:25
on in Ruby, there were Arden Lab
52:27
companies. There were companies like Arden
52:30
Labs going into corporate environments, training people
52:32
in Ruby, doing Ruby consulting, right?
52:34
And after maybe 20, 25 years, that
52:36
all ended because nobody needed it.
52:38
And every year I'm always like, you
52:40
know what, it's gonna be the
52:43
last year for go because no companies
52:45
are gonna need training. And corporate
52:47
training's come down a lot. Don't get
52:49
me wrong, right? It has. From
52:51
pre -COVID, I was living on an
52:53
airplane. COVID changed a lot of stuff.
52:56
So who knows if they would
52:58
have died a little earlier. But
53:00
corporate training is, right? That demand is
53:02
way down. So how do we
53:04
pivot? We pivot by video, right? COVID
53:06
made us pivot on video. So
53:08
now we have more companies that are
53:11
buying video training than wanting to
53:13
put me in a classroom. Again, nobody's
53:15
going back to work just yet
53:17
too. So, right? So it's, if you're
53:19
running your own company, and I
53:22
say this is the job of the
53:24
CTO, but it's the job of
53:26
the CEO and the CTO from a
53:28
tax perspective, to be constantly looking
53:30
out and saying, where are things changing?
53:32
Where do we have to be
53:35
in six months in order to stay
53:37
where we're at today? Because the
53:39
world is changing all the time. So
53:41
two years ago, I started to
53:43
see that Rust was gonna be here
53:45
to stay. It's not being used
53:48
the way it is now, but I
53:50
saw very clearly the writing on
53:52
the wall that a lot of really
53:54
strong go devs were looking at
53:56
it and playing with it. And a
53:58
few important projects started coming. up where it
54:01
was all going to be rust. So I told
54:03
Miguel at the time, I said, we
54:05
need to find somebody in rust. Somebody's
54:07
written some books. It's just a marathon,
54:09
not a sprint. And so we've
54:12
got to do this for the next
54:14
two years to get to a point
54:16
where if rust does hit, I think
54:18
it will, we're right there in the
54:20
middle of it. And sure enough, I
54:22
mean, Microsoft just announced what? No more
54:24
C code in their operating system. It's
54:26
all rust, right. And so. That was
54:28
several years ago, where we brought
54:30
in Herbert and work with Herbert
54:32
on the training. And there's still
54:35
more go activity at Arden
54:37
than rust activity. But we're
54:39
seeing it now. We're starting
54:41
to get some rust consulting.
54:43
We're probably doing more rust
54:45
corporate training than go corporate
54:48
training. And that makes me really
54:50
happy, Matthew, because at some point...
54:52
this company needs to be able
54:54
to run at a high level
54:56
without me being on the road.
54:58
Right. And it's a major reason
55:00
why I chose not to learn
55:03
rust at any level. Because one,
55:05
Herbert's great at it. He's
55:07
doing great. He's a good trainer.
55:09
And it gives me the opportunity
55:11
at some point when there's more
55:13
rust going on than go to
55:16
be able to, you know. After 10
55:18
12 years relax a little bit
55:20
and go okay. I know we're
55:22
we're there. So Rust was a
55:24
big thing that I saw coming
55:26
and again if you're trying now
55:28
if you try now as a
55:30
consulting company to get into rust
55:32
You're two years late because you
55:34
need a couple years to build
55:36
a reputation and anything. We're at
55:38
all the rest conferences now, right?
55:40
We've got the books where we're
55:42
like but that's two years of
55:44
work. So the next thing I'm
55:46
looking at and I haven't
55:48
pulled the trigger on it,
55:50
is Zig, right? I have
55:53
to ask the question, amazing.
55:55
If you'd asked me a
55:57
year ago, I would have
55:59
said. start learning Zig. If you're
56:01
asking me now, I think Russ
56:03
did a really good job over
56:05
the last year of kind of
56:08
putting Zig in the in the
56:10
background and I think what's also
56:12
happened is thanks to generics and
56:14
some other things the Go team
56:16
has done. More and more enterprises
56:18
are using Go. So a year
56:20
ago I thought Zig was going
56:22
to be the next thing and
56:24
Rust and Zig we're going to...
56:26
I don't think so anymore. It
56:29
doesn't mean I'm not keeping my
56:31
eye on it, because the moment
56:33
I think that, here's the thing,
56:35
every 20 years a new language
56:37
comes out, every 20 years, right?
56:39
C-sharp came out in 2000, then
56:41
what, 2000, say, 2010, it's kind
56:43
of go, but it doesn't really
56:45
get mainstream until maybe what, 2020?
56:47
You see what I'm saying? And
56:50
so, so if you look at
56:52
that, in 2030. Let's say in
56:54
five years from now, I have
56:56
to imagine that there's going to
56:58
be another language that's starting to
57:00
pop up and be the next
57:02
thing. Now, maybe it's still rust,
57:04
because rust is, I think this
57:06
is the year for rust. I
57:08
think with the Microsoft announcement, and
57:11
Linux using it now in the
57:13
OS and these types of things.
57:15
I think this could be the
57:17
year for now. I also think
57:19
that people that went to Russ
57:21
to build web services and stuff
57:23
have come back to go. Okay.
57:25
Yeah. I've seen some of that.
57:27
But I think Russ is now
57:29
is Russ that next language. I
57:32
don't know. I think there's another
57:34
one on the horizon. The only
57:36
one I've seen is ZIG, but
57:38
it hasn't gained that traction it.
57:40
This is what you're looking for.
57:42
Okay, the moment, look at jobs,
57:44
look at jobs, right? There was
57:46
a company or two last year
57:48
looking for ZIG developers. That's where
57:50
my brain, whoa, whoa, whoa, whoa,
57:53
whoa, right? I haven't. I've seen
57:55
it again. And so look to
57:57
see if companies are looking to
57:59
hire anybody in that tech at
58:01
all, even if it's somewhat experimental.
58:03
That will start to give you
58:05
an idea of at least developers
58:07
in house starting to play with
58:09
stuff. Right. Are the people working
58:11
with you for the rust stuff?
58:14
Are they asking the same questions
58:16
about, or are they approaching you
58:18
for the same reasons that they
58:20
were for go? I have some
58:22
legacy code or I have some
58:24
design patterns that I'm not really
58:26
fond of, or is it just
58:28
I want to learn rust? Like
58:30
what's the kind of paradigm there?
58:32
The paid work, which is why
58:35
we've shifted some of our workshops
58:37
now, a lot of the paid
58:39
work is I want to convert
58:41
this C code base to rust.
58:43
That's what we're seeing right now.
58:45
Okay. Okay. And so if you
58:47
look at the workshops we're giving
58:49
like we gave this year already
58:51
at Rust Nation It's essentially workshops
58:53
about how to port C to
58:56
rust at this point And we
58:58
have experience doing that I Herbert's
59:00
got huge experience doing that right?
59:02
So that's sort of what we're
59:04
seeing I expect to see more
59:06
of that as the industry who's
59:08
writing C code wants the benefits
59:10
of what Russ gives you. We
59:12
know what that is, right? The
59:14
type safety and all the other
59:17
stuff that you're not necessarily getting
59:19
from C. So I expect to
59:21
see a lot of that this
59:23
year. We'll see more of that
59:25
next year. And then as these
59:27
code bases are ported, now you're
59:29
going to do the next level,
59:31
which, okay, let's clean this up.
59:33
We'll need more practical classes around
59:35
that. And then we'll see where
59:38
it goes. Here's
59:43
the problem. Here's the problem. Here's
59:46
the problem. They are a very
59:48
small team in Google. Tiniest team,
59:51
right? Who has to constantly justify
59:53
their existence related to cloud revenue.
59:55
Which is very hard when you're
59:58
working on a programming. And so
1:00:00
I have appreciated maybe more than
1:00:02
most their core focus over the
1:00:05
last several years on the enterprise.
1:00:07
My business, right, my ability
1:00:09
to write go code isn't necessarily
1:00:12
going to come from manufacturing
1:00:14
or wasm in the browser. It's
1:00:16
going to come from more and
1:00:19
more companies moving off of whatever
1:00:21
programming languages there are today. Maybe
1:00:23
the two major ones C sharp
1:00:25
in Java and sort of switching
1:00:27
to go, right? And so for
1:00:29
me, having that have been their
1:00:32
focus for the last several years
1:00:34
and being very successful in it.
1:00:36
If you have a small team
1:00:38
of people, what would you rather
1:00:40
than working on? Right? If you're
1:00:42
me and you want to write go
1:00:44
code and you want to make money
1:00:46
on go code, then I want more
1:00:49
people using it than not, right?
1:00:51
So nobody realizes how small
1:00:53
the go team is. Nobody realizes
1:00:55
how like... Small budget it is
1:00:57
in compares to all Google and
1:00:59
nobody knows the pressure that every
1:01:01
developer on the go team is
1:01:03
under in terms of proving their
1:01:05
existence at the end of the
1:01:07
year Which has to be measured
1:01:09
around cloud? It is really hard.
1:01:11
I've tried to do things on
1:01:13
Gobridge to help certain members that
1:01:16
we're helping with education and things
1:01:18
like that when I could but
1:01:20
it's it's really even like Robert
1:01:22
Grissomer and Ian who work on
1:01:24
that lower level language stuff. Sometimes
1:01:26
when I see a proposal come
1:01:28
out like this new one on
1:01:31
air handling, which I'm not a
1:01:33
fan of by any stretch of
1:01:35
the imagination, but I look at
1:01:37
it now as Robert has to
1:01:40
prove that he's doing something here
1:01:42
that's valuable that's going
1:01:44
to help move go deeper into
1:01:46
the enterprise. And so I could
1:01:48
sit here and get on that
1:01:51
issue and fight to the nail
1:01:53
against it. But if I do that,
1:01:55
I'm kind of, what are they cutting
1:01:57
my nose to spite my face? Because
1:01:59
in. reality, if they can come
1:02:01
out with a syntax that's going
1:02:03
to make a whole, another million
1:02:05
developers decide that I don't have
1:02:07
to write if there are not
1:02:09
equals no, which I love writing
1:02:11
and Copilot does it for me
1:02:13
anyway now. But if you're telling
1:02:15
me that if he figures that
1:02:18
out and another million developers in
1:02:20
another thousand companies are going to
1:02:22
switch to go, I'd be an
1:02:24
idiot. to stop it from happening
1:02:26
whether I like it or not.
1:02:28
There. That's actually a good point.
1:02:30
Yeah. I do think I wish
1:02:32
that we could leverage the community
1:02:34
more in these things too. I
1:02:36
think they do to some degree,
1:02:38
but I think that's why, you
1:02:40
know, I like that Tiny Go
1:02:42
is doing the Wasm stuff and
1:02:44
that's a bit separate since it
1:02:46
is the type of thing where
1:02:48
it's like, yeah, it'd be kind
1:02:50
of hard for the Go team
1:02:52
to incorporate that, especially all the
1:02:54
microcontroller stuff that people work so
1:02:56
hard on. going to be a
1:02:58
moneymaker I think for Google in
1:03:00
the long run unless there's a
1:03:02
big a big pivot in what
1:03:04
they care about. But I also
1:03:07
think that it's like maybe the
1:03:09
community needs to push on Google
1:03:11
a bit to be like you
1:03:13
know it's care about this more
1:03:15
yeah worth it to care more
1:03:17
about these future things because that's
1:03:19
also what I push it's not
1:03:21
Google it's every company that's using
1:03:23
this open source project in production
1:03:25
and not paying for it's not
1:03:27
Google. If you're telling me. that
1:03:29
company ABC is using this and
1:03:31
they're making money, then they should
1:03:33
be giving Tiny Go money to
1:03:35
survive for another year. Right. And
1:03:37
or, which is fine enough for
1:03:39
me too, take an employee and
1:03:41
dedicate their existence to the project.
1:03:43
To me, both works. Right. What's
1:03:45
brilliant about AK is that. I
1:03:47
can give them $25,000 and they
1:03:49
can live on that comfortably with
1:03:51
the way they've sort of set
1:03:53
up their lifestyle. They are an
1:03:55
amazing human being that just cares
1:03:58
about this tech and doesn't need
1:04:00
to be driving a Mercedes. And
1:04:02
so 25,000 a year, which is
1:04:04
mind-blowing to me, is they're happy.
1:04:06
Let me just put it that
1:04:08
way, right? I'm sure if we
1:04:10
could get them 50, it'd be
1:04:12
happier, but they're happy at 25.
1:04:14
And so as long as Go
1:04:16
Bridge can continue to fund Tiny
1:04:18
Go and... Google continued to fund
1:04:20
Go Bridge, right, which is the
1:04:22
fastest way to do that because
1:04:24
I don't need Google lawyers and
1:04:26
all the other stuff, right? I'm
1:04:28
good, but company ABC could be
1:04:30
giving them 10 grand and or
1:04:32
an engineer at 100,000 a year.
1:04:34
You see what I'm saying? Yeah,
1:04:36
and this is the same problem
1:04:38
with open source everywhere. Right, and
1:04:40
we can have a whole entire
1:04:42
show. I mean, Felipe, Felipe, has
1:04:44
tried to solve this problem and
1:04:46
he's done some amazing thing. Get
1:04:49
Felipe on the show, have him
1:04:51
talk about what he's done over
1:04:53
the last two years, because he's
1:04:55
one of the few non-googlers right
1:04:57
now, working on the cryptography packages.
1:04:59
He probably has more commits than
1:05:01
anyone on that project right now.
1:05:03
He doesn't work for Google. But
1:05:05
that's not because Google's paying them.
1:05:07
That's because he was able to
1:05:09
able to able to. And it
1:05:11
took him a while. He was
1:05:13
able to find, I don't even
1:05:15
know what it is, 8, 10
1:05:17
companies to write a check. And
1:05:19
if you go to his page,
1:05:21
you'll see who those companies are.
1:05:23
I wish I could, I always
1:05:25
like to shout them out right
1:05:27
now. But get him on the
1:05:29
show. Let him talk about what
1:05:31
he's done, because he's trying to
1:05:33
solve this problem, not just for
1:05:35
himself, but for others. And it's
1:05:38
a big problem. But if you
1:05:40
could sleep at night, knowing. that
1:05:42
you're using something for free that
1:05:44
you're now making money on that's
1:05:46
on you do that's that's your
1:05:48
conscience I have no problem with
1:05:50
hey it's free let's try it
1:05:52
out and if we can get
1:05:54
it to work then we'll pay
1:05:56
for it sure but pay for
1:05:58
it yeah pretty the money back
1:06:00
I think is important us, but
1:06:02
yeah, I think maybe we do
1:06:04
put too much on Google for
1:06:06
being the creators of the language
1:06:08
where it's like it can be,
1:06:10
it is a bigger and broader
1:06:12
thing. I mean, it's been for
1:06:14
years now, it's been more than
1:06:16
50% or around 50% of the
1:06:18
commits come from non- Google people
1:06:20
that go into the language and
1:06:22
the tool chain and the compiler. So
1:06:25
there's no reason why we can't be
1:06:27
like, hey, When you get, when you
1:06:29
have that, you can also work, have
1:06:31
them work on things that will make
1:06:33
you more. It's like, it could actually
1:06:35
be like a net zero for you
1:06:37
if you're people working on a language,
1:06:39
work on something that makes it so
1:06:41
your developers get more efficient, and then
1:06:43
you've basically paid for, you know, your
1:06:45
cost investment and how the community has
1:06:47
something that's better. So I think there's
1:06:49
some good arguments here. It's the same
1:06:51
thing with Caddy. Matt Holt, you know.
1:06:53
Caddy's being used more and more and
1:06:56
I don't think everybody thinks about engine X
1:06:58
right But there are a ton of companies
1:07:00
in Caddy because it's just easier and simpler
1:07:02
and it just works And they're not paying
1:07:05
paying Matt either right Matt right Matt? Matt
1:07:07
right Matt gets by every year and he's
1:07:09
and he loves this thing and that's what
1:07:11
he wants to work on and so He's
1:07:14
like okay in that sense right and at
1:07:16
Arden we did everything we could to help
1:07:18
Matt be able to sustain that to the
1:07:21
extent that we could right now there are
1:07:23
other companies that are helping them but
1:07:25
catty to me is no different than
1:07:27
tiny go right you're using it using
1:07:29
a production and you're not paying for
1:07:31
it like shame on you yeah that
1:07:33
brings a really good point I I was
1:07:35
at cockroach lives before this and I was
1:07:37
a hash corp before that and they used
1:07:39
to be sponsors of like go-for-con or whatever
1:07:42
they used to send money to these things
1:07:44
and now I don't see them on the
1:07:46
sponsor of this for Go for Con. I'm
1:07:48
not, I have no idea if they're, if
1:07:50
they're sending money to like the Go project
1:07:52
or to Tiny Go or to any other
1:07:54
things. But you are right, like these companies
1:07:56
make revenue off of this program
1:07:58
language and what? you just sponsored it
1:08:01
for a year and then you that's
1:08:03
it you left it high and dry
1:08:05
what's what's going on you know I'd
1:08:07
like to see I would like to
1:08:09
see those companies come back and give
1:08:11
money to the go community again to
1:08:13
some degree those companies also faced the
1:08:15
same problem though where like both of
1:08:17
those went through license changes because they're
1:08:19
like hey y'all are using this thing
1:08:21
for free and not giving money back
1:08:23
to us so I feel like it's
1:08:25
like everybody we all need to start
1:08:27
giving back to the things that were
1:08:29
basing the existence of companies off of,
1:08:31
right? There's so much, like everybody loves
1:08:33
to talk about open source, but then
1:08:35
every time you start talking about sustainability,
1:08:37
everybody's like, gee whiz, I don't know
1:08:39
how we're gonna do this. And it's
1:08:41
like, you know, lunchtime, I should get
1:08:43
out of here. It doesn't even have
1:08:45
to be a ton of money, right?
1:08:47
If a large number of people start
1:08:49
giving back money. then you can also
1:08:51
solve this problem. It's not have to
1:08:53
be everybody giving a whole developer. It
1:08:55
could be, you know, you know, $100,000
1:08:57
if a thousand, if a, well, yeah,
1:08:59
a thousand companies give a thousand dollars,
1:09:01
there you go. There's a hundred, I've
1:09:03
been giving Dominic $250 a month, for
1:09:05
God knows how many years for static
1:09:07
check. And at some point, GitHub was
1:09:09
matching it. Right. I've been doing that
1:09:11
for years, because I used that tool.
1:09:13
And I want him to continue to
1:09:15
continue to work on it. Right. What
1:09:17
kills me the most is developers cheating
1:09:19
other developers out of like, I could
1:09:21
see some, some, some higher up who's
1:09:23
not a developer, who's a bean counter
1:09:25
going, why am I going to pay
1:09:27
for that? I'm getting it for free.
1:09:29
But developers, cheating out, you want to
1:09:31
get paid for your work, don't you?
1:09:33
But they don't deserve to get paid?
1:09:35
Like, how do you sleep at night?
1:09:37
So like, you know, I've been funding
1:09:39
static check for, I don't know how
1:09:41
long it is. It's $250 a month,
1:09:44
dude. It's not like breaking my bank,
1:09:46
but that $250 goes a long way
1:09:48
to allow him to work on that.
1:09:50
And obviously, I imagine, he's got others,
1:09:52
but it's... just like you said Chris,
1:09:54
you got enough people giving you 200
1:09:56
bucks a month, you have what you
1:09:58
need to survive and everybody wins. I
1:10:00
think there might be a point to
1:10:02
it as well of like the. I
1:10:04
mean, I'm not going to say open
1:10:06
source should just go away, but I
1:10:08
think, you know, everybody wants to be
1:10:10
like, oh, these companies changing their licenses
1:10:12
so that they're not, you know, quote,
1:10:14
quote, quote, open source as it's defined
1:10:16
by the OSF, is like a really
1:10:18
bad thing. But I also think there's
1:10:20
an element of this that's like, maybe
1:10:22
we need to evolve how we view
1:10:24
all of this, maybe we to add
1:10:26
more nuanced and that needs to come
1:10:28
out in our in our licenseses to
1:10:30
come out in our licenses of like,
1:10:32
like, like, on the show who's a
1:10:34
program return lawyer, we talked a bit
1:10:36
about this idea of like, you know,
1:10:38
Open source licenses have always been kind
1:10:40
of a mess. These new licenses are
1:10:42
also kind of messy But we're like
1:10:44
working our way through them and we
1:10:46
kind of need to have like a
1:10:48
standardized model to like get it in
1:10:50
like for example The llama model from
1:10:52
or the llama, you know weights from
1:10:54
Facebook They say you can use this
1:10:56
for free up until you have 700
1:10:58
million users. Can't use this if you
1:11:00
have less than that great. And I
1:11:02
feel like if we had more space
1:11:04
for people to be like Well, how
1:11:06
successful are you actually being with this
1:11:08
thing? Or like, you know, maybe if
1:11:10
you are someone that just has a
1:11:12
little service, I'm fine for using for
1:11:14
free, but if you're bringing in like
1:11:16
a million plus dollars a year, then
1:11:18
no, you need to, you need to
1:11:20
give back of it. This is clearly
1:11:22
something that you're depending on. And while
1:11:24
the old model of like, okay, we'll
1:11:26
sell you a support contract or something
1:11:28
like that doesn't work for the smaller
1:11:30
developers. So I think we do need
1:11:32
to. be more inclusive of these other
1:11:34
licenses that do really have like a,
1:11:36
okay, no, it's not just a, you
1:11:38
get bad vibes from the community, but
1:11:40
like, no, your legal department's now gonna
1:11:42
have to get involved if you use
1:11:45
this wrong and someone finds out. And
1:11:47
I think that might start pushing people
1:11:49
and companies to start actually contributing back
1:11:51
a bit more because the legal department
1:11:53
is gonna tell you, like, oh, there's
1:11:55
a possibility of a lawsuit, how much
1:11:57
does this thing cost? it's going to
1:11:59
be $1,000 a month. No, go pay
1:12:01
for that thing. Like, I don't, we're not going to deal with
1:12:03
this because it's going to, it's going to cost us that if we
1:12:05
just get the lawsuit. Even if we can win it, we're going to
1:12:07
have to pay so much on legal fees that it's not going to
1:12:09
be worth it. That's not what's going to happen, Chris. It's going to
1:12:11
wait until we get a letter. Just keep using it until we get
1:12:13
a letter. We'll ask for forgiveness and we'll ask for forgiveness
1:12:15
and we'll ask for forgiveness and we'll write a check and we'll write
1:12:17
a check and we'll write a check and we'll write a check and
1:12:20
we'll write a check and we'll write a check and we'll write
1:12:22
a check. It could also happen that way.
1:12:24
Depends on the company. Depends on the people
1:12:26
in the company. But either way, at least
1:12:28
you have some recourse. You could send a
1:12:30
letter. And then it's like, OK, well, fine.
1:12:33
Here you go. We'll production. We give you
1:12:35
money. But I think it's like a thing
1:12:37
to shift the ethos. Because right now, the
1:12:39
ethos, I think, truly is. Oh, this is
1:12:42
free. I can just consume this. And there's
1:12:44
not even a. I don't even have to
1:12:46
think about giving this person any money. Right.
1:12:48
I think that's where so many developers, so
1:12:51
many companies go in of like, I just
1:12:53
got this thing off the street. I don't
1:12:55
have to think about giving them. But as
1:12:57
soon as it's like a, have to start thinking
1:12:59
about it. Doesn't matter. How do
1:13:01
you even know I'm using it? Right. Yeah,
1:13:03
they came on. At home at home. Like,
1:13:06
this is so complicated. But you should have
1:13:08
this conversation with Felico. We'll
1:13:10
talk so. I think
1:13:12
it's in the works.
1:13:14
I think our excellent
1:13:16
producer, Angelica, is working
1:13:18
on getting Filippo on
1:13:21
the show. And Ron, actually,
1:13:23
too. So I think both
1:13:25
of those covered. Clearly,
1:13:28
there has to be
1:13:30
a baton passing, which
1:13:32
we spoke about with
1:13:34
Kelsey High Tower previously.
1:13:36
So. One of the things that come to
1:13:38
mind when you're talking about you know handing
1:13:40
off to next generation or that baton passing
1:13:42
is How the heck do you get someone
1:13:45
up leveled enough to where they are a
1:13:47
senior engineer and ready to take the baton?
1:13:49
Because right now the industry has this problem
1:13:51
where? Companies are hiring people for the senior
1:13:53
level only and I put that in air
1:13:55
quotes because I don't even know what senior
1:13:58
even means anymore and we find the entry
1:14:00
level people coming to the market stuck,
1:14:02
you know, it's stuck in the entry
1:14:04
level and unable to achieve that senior
1:14:07
status. So I kind of want to
1:14:09
hear your thoughts on this matter. An
1:14:11
impossible situation. I have clients that would
1:14:14
love to hire some junior people, but
1:14:16
like I said, they feel like they've
1:14:18
got too much complexity in the environment
1:14:20
and they don't have enough time to
1:14:23
walk. this person. It's not that they
1:14:25
couldn't technically do it. I'm finding people
1:14:27
with less experience that I think are
1:14:30
better software developers than the ones with
1:14:32
experience, but they're feeling it's too much
1:14:34
risk because I'm going to put them
1:14:37
in a complex environment and these people
1:14:39
have never seen this level of complexity
1:14:41
before in architecture, design, and systems. And
1:14:43
I just don't have the time. So
1:14:46
it's almost like I don't care if
1:14:48
they know how to code and go
1:14:50
as much as Have they seen these
1:14:53
types of systems before and these types
1:14:55
of integrations? So I can plop them
1:14:57
in a chair and they already have
1:14:59
a mental model of some of the
1:15:02
chaos and they'll learn the programming language
1:15:04
faster than I can teach somebody else
1:15:06
the architectures and designs. And this comes
1:15:09
back to the idea that you've got
1:15:11
code bases that are five plus years
1:15:13
old now where people are moving on.
1:15:16
Nobody stays anywhere for more than two
1:15:18
years anymore anyway. We can have a
1:15:20
whole conversation about that. I used to
1:15:22
be anti that. I'm not anymore. It's
1:15:25
the only way you're going to get
1:15:27
a raise. You got a bounce. If
1:15:29
you, even if you're there three months,
1:15:32
if somebody's going to throw another $25,000
1:15:34
at you, you almost have a responsibility
1:15:36
if you have a family to take
1:15:38
that one. No, for sure. Yeah. As
1:15:41
long as the work is, it's work
1:15:43
that you're interested in and stuff, right?
1:15:45
And so when I'm doing an interview.
1:15:48
You bounced, you bounced, you bounced, you
1:15:50
bounced. And they say, more money, more
1:15:52
money, more money. Well, OK, that's fair.
1:15:55
I don't know how to solve that
1:15:57
problem, Matthew, because there aren't a. a
1:15:59
lot of projects that are starting with
1:16:01
new development where you can sort of
1:16:04
take on the risk and with the
1:16:06
job market so flooded with these engineers.
1:16:08
You said that companies are looking for
1:16:11
the kind of the experience engineers that
1:16:13
have seen it before, not necessarily like
1:16:15
can code in the language or whatever,
1:16:17
but have seen the systems, the architecture.
1:16:20
Do you define that as well as
1:16:22
being a senior? Is that what you
1:16:24
look for when you look for a
1:16:27
senior? I
1:16:29
hate these words. Senior, I hate them
1:16:31
too. I'm not gonna like you. I
1:16:33
really do hate them. You know how
1:16:35
many resumes I've seen when the person
1:16:37
said senior and I would barely even,
1:16:40
I wouldn't use the word at all.
1:16:42
Like I don't care that you have
1:16:44
15 years of experience, right? A senior
1:16:46
person to me is somebody that within
1:16:48
a month from my perspective, okay? If
1:16:51
I'm hiring for my own project, this
1:16:53
is somebody that's going to do two
1:16:55
things with me. One, I know within
1:16:57
a month they're going to need very
1:16:59
little of my time because they will
1:17:02
have understood the mental models that I
1:17:04
was teaching and the coding standards. And
1:17:06
that they are going to debate the
1:17:08
coding standards and debate the architecture and
1:17:10
come to me with these sort of
1:17:12
thoughts and ideas. I love debating software
1:17:15
design. I love debating these sorts of
1:17:17
things. If you're not capable of engaging
1:17:19
in these conversations when something comes up,
1:17:21
you're not senior to me. You'd be
1:17:23
a mid-level and maybe every once in
1:17:26
a while you ask the interesting question,
1:17:28
but I would expect over six months
1:17:30
that you're fully participating in debate as
1:17:32
much as, right? And debate is hard
1:17:34
for people because when you're in that
1:17:36
kind of- We just spent 30 minutes
1:17:39
in the beginning of the episode talking
1:17:41
about that concept. Debate requires strong personalities
1:17:43
with convictions that are willing to shut
1:17:45
up at times and listen. and reevaluate
1:17:47
what's going on. But if you're a
1:17:50
timid person, you don't feel like you
1:17:52
have enough, then you're not engaging in
1:17:54
that. And I've met guys that I've
1:17:56
been on my team where after they
1:17:58
tell me something and I'd be like,
1:18:00
why didn't you say that during the
1:18:03
meeting? That was interesting. That would have
1:18:05
added value, but they were afraid, right?
1:18:07
Because you got Alpha Bill and Alpha
1:18:09
Powell, growing at it like this, because...
1:18:11
And at the end of the day,
1:18:14
what we're really trying to do is
1:18:16
figure out what's the best solution. And
1:18:18
all my teams know this. If you
1:18:20
ask me to do something that I
1:18:22
can't teach or put back into the
1:18:25
service project, we can't do it here.
1:18:27
We're not going to do it. That's
1:18:29
the measuring stick. If I don't feel
1:18:31
comfortable teaching this, how the heck can
1:18:33
we do it at all? We can't,
1:18:35
right? That's the measuring stick. There have
1:18:38
been times where we've debated something. not
1:18:40
full two or three days, but an
1:18:42
hour here or there. And finally, I
1:18:44
have to make a decision, like, no,
1:18:46
this is what we're going to do.
1:18:49
But to me, that's the senior person.
1:18:51
They can come in, they understand the
1:18:53
architecture design, they understand the business problem,
1:18:55
they understand the problem that's in front
1:18:57
of us, and they can think out
1:18:59
solutions that maintain the architecture, maintain the
1:19:02
coding standards, maintain these things, and be
1:19:04
in debate listening. but also somewhat forcefully
1:19:06
sharing ideas because their opinions and they
1:19:08
have to be strong at the same
1:19:10
time you have to know how to
1:19:13
back off. There aren't a lot of
1:19:15
people that can do that. That to
1:19:17
me is the senior person. And I
1:19:19
have people around me, a guy named
1:19:21
Pavel, Florin. I love these people. I
1:19:23
love when there's a debate going on.
1:19:26
I think I spoke to Pavel before.
1:19:28
Yeah. Like sometimes I'm like, Powell, I'm
1:19:30
too tired right now, dude. I can't
1:19:32
do this. He's like, oh, we got
1:19:34
to talk about it. I do, let's
1:19:37
talk about tomorrow, man. I'm tired, like,
1:19:39
you know. But if you can't do
1:19:41
that, you're not senior. It's not your
1:19:43
coding skill. It's not anything else other
1:19:45
than mental models. You understand the arc.
1:19:48
texture, you see it, you understand the
1:19:50
problem, you understand why we have the
1:19:52
problem, and you've got some thoughts about
1:19:54
solutions, but we're willing to trade those
1:19:56
ideas back and forth. Like, I don't
1:19:58
know what the industry means by a
1:20:01
staff engineer, to be honest with you.
1:20:03
Like, I don't understand the industry term,
1:20:05
because I'm not in that section of
1:20:07
the industry, but I imagine a staff
1:20:09
engineer is similar to what I'm sort
1:20:12
of describing, right? They can, they understand
1:20:14
architecture and design. They know that if
1:20:16
you touch this, that is going to
1:20:18
break over there. And so we really
1:20:20
can't do that unless, right? Yeah. They
1:20:22
see the holistic view of the systems.
1:20:25
Yeah. I've seen like Staff Plus as
1:20:27
the people that can not only just
1:20:29
like know the multiple systems either from
1:20:31
being there a long time, but can
1:20:33
also just kind of enter a space.
1:20:36
and figure out those dynamics really quickly,
1:20:38
and then be able to be able
1:20:40
to like, okay, yeah, like I understand
1:20:42
now if you touch this, this is
1:20:44
things going to blow up, but be
1:20:46
able to do that in like a
1:20:49
matter of weeks, whereas I don't think
1:20:51
you can really expect a senior engineer
1:20:53
to be able to do that. Maybe
1:20:55
for like a single project, but if
1:20:57
we're talking about like a whole, yeah,
1:21:00
for a whole system, I think that's
1:21:02
more of like the staff, senior staff
1:21:04
principle. That's when you expect those people
1:21:06
to be able to be able to
1:21:08
be able to be able to be
1:21:11
able to be able to be able
1:21:13
to be able to be able to
1:21:15
walk in and do that sort of
1:21:17
stuff. But that also requires like a
1:21:19
completely different mindset of how you like
1:21:21
look at and evaluate a system and
1:21:24
then at that point really is not
1:21:26
about code at all It's about like
1:21:28
what is this thing doing and where
1:21:30
are all the parts of it and
1:21:32
I that scares me Chris because How
1:21:35
if you're not engineering from the from
1:21:37
the beginning thinking about these things then
1:21:39
you're not getting there ever right like
1:21:41
yeah I tell Kevin all the time
1:21:43
I'm playing chess all day long on
1:21:45
this code base all day long I'm
1:21:48
trying to think what's going to break,
1:21:50
what's going to break, what's... You're worried
1:21:52
about this. I'm already four moves ahead,
1:21:54
right? All day long. But that comes
1:21:56
with time and practice and putting bad
1:21:59
things in production. So I
1:22:01
don't know how you get to that level
1:22:03
you're talking about, either at a project level
1:22:05
or above, until you've walked that engineering journey
1:22:07
and made all those mistakes to know that's
1:22:09
going to be a problem. Like I don't
1:22:12
know how you can not have been a
1:22:14
developer and get there. I'm not saying that
1:22:16
maybe you haven't coded for 10 years and
1:22:18
you don't know go and that's fine. Right.
1:22:20
I think that's interesting right because I when
1:22:22
I look at my my own career and
1:22:25
I've said this in multiple different ways but
1:22:27
it's like I don't there wasn't a point
1:22:29
where I was like a junior mostly because
1:22:31
of circumstance like every job that I had
1:22:33
probably every job I've ever had in the
1:22:35
in the software community I've been the most
1:22:38
knowledgeable on whatever technology we're using or one
1:22:40
of the most knowledgeable. Like, even for my
1:22:42
very first job when I was a droopal
1:22:44
developer, I walked into a space and it
1:22:46
was like, I was there to fix the
1:22:48
problems because nobody else understood the technology we
1:22:51
were using. So there wasn't anybody I could
1:22:53
be like, help me along. This is when
1:22:55
you got to sit down, you got to
1:22:57
understand all of this. And like, once again,
1:22:59
I didn't enter this from someone that, from
1:23:01
being someone with a CS degree or anything
1:23:04
like this degree or anything like that. Try
1:23:06
to figure out, like, how do you replicate
1:23:08
that with other people? And I'm not really
1:23:10
sure. I think part of it comes from
1:23:12
the fact I have a writing degree. and
1:23:14
when you are a writer, when you are
1:23:17
a storyteller, you have to, you can't just
1:23:19
sit down and write, you have to take
1:23:21
the broader picture and understand where you're going,
1:23:23
what your story universe is, all of that,
1:23:25
and then you can get into everything. And
1:23:27
I think that applies to this as well.
1:23:30
Like if I go out and get another
1:23:32
job, I'm gonna sit down and start looking
1:23:34
at all of the stuff. and then I
1:23:36
can go down and look at that one
1:23:38
code base. And I think that's not the
1:23:40
approach that we give people when they enter
1:23:43
the industry. I think I had a very
1:23:45
unique experience, but I think what most people
1:23:47
get is the. Well, we'll give you this
1:23:49
one section of this one could basically begin
1:23:51
with and then we'll slowly level you up
1:23:53
to the point where now you have a
1:23:56
whole project or now you have multiple projects.
1:23:58
But I think by the time that someone
1:24:00
gets to that point where you're giving them
1:24:02
a whole project, it's been so many years
1:24:04
that they're just used to that other way
1:24:06
of working of that. Here's the box. Like
1:24:09
I've seen this in some engineers I've worked
1:24:11
with where it's like, well, this is my
1:24:13
box. I don't, I don't really know what's
1:24:15
going on any of what's going on any
1:24:17
of what's going on any other surfaces as
1:24:19
well in the, oh, I don't want to
1:24:22
have to talk to that other team about
1:24:24
their stuff to integrate. Can we just do
1:24:26
this in our box instead? So I think
1:24:28
like the way that we've traditionally trained software
1:24:30
engineers has hindered our ability to really get
1:24:32
the number of senior and staffless engineers that
1:24:35
we need because we tell them this is
1:24:37
your box, please stay in your box. And
1:24:39
sometimes the politics of companies also force you
1:24:41
to kind of stay in your box. And
1:24:43
that's just, I don't think that that that's
1:24:46
a path toward being able to being able
1:24:48
to being able to being able to learn
1:24:50
to think from the completely other direction at
1:24:52
the completely other direction at the other direction
1:24:54
at the end of the end of the
1:24:56
end of the end of the end of
1:24:59
the end of the end of the end
1:25:01
of the end of the day. So I
1:25:03
have the luxury with Kevin where I don't
1:25:05
code anything without him. I pair on everything.
1:25:07
Sometimes I drive because I need to move
1:25:09
a little faster that day. Other times I
1:25:12
have him drive. He drives me crazy because
1:25:14
he uses the mouse too much. I'm trying
1:25:16
to get him to learn the keyboard and
1:25:18
there are days where I have patience for
1:25:20
it and there are days that I don't
1:25:22
and that's on me to have more patience.
1:25:25
Okay. For me, the only way I have
1:25:27
found to be able to get Kevin up
1:25:29
to speed at the level I want to
1:25:31
get him, at some point, I want Kevin
1:25:33
to be able to work at a client,
1:25:35
right? I feel comfortable doing that. Is to
1:25:38
pair with him on just about everything that
1:25:40
I'm doing. So I can dump my brain
1:25:42
on him. This is what I'm thinking about.
1:25:44
This is what I'm concerned about, right? I
1:25:46
don't know what the answer is here because
1:25:48
I don't know enough yet, but... I don't
1:25:51
know how else you get that without some
1:25:53
level of pairing. Now I'm saying you should
1:25:55
be pairing. Several years ago, Volkswagen had a
1:25:57
team in Berlin. That team did only pair
1:25:59
programming. So every two, and
1:26:02
it was different developers,
1:26:04
but you weren't allowed to sit
1:26:06
down and code unless you were
1:26:08
pairing with somebody else. Now,
1:26:11
it was an interesting idea.
1:26:13
I think they went too
1:26:15
extreme because nobody was allowed
1:26:17
to touch code at all
1:26:19
without it. Now, what I
1:26:21
would have liked to see is
1:26:23
a mix of, I want a number
1:26:25
of hours a week where you're pairing.
1:26:28
and then where you're sort of working
1:26:30
solo and then come back to do
1:26:32
the review as a pair instead of
1:26:34
that dang PR thing. I hate those
1:26:36
freaking PRs. I can't read them. That
1:26:38
to me is the final sort of
1:26:41
step there, right? Even with anybody I'm
1:26:43
managing and even on client work, it's,
1:26:45
let's sit down and look at the
1:26:47
changes together, not at the PR level.
1:26:49
And here's another thing I do, which
1:26:52
is crazy, with my seniors. I tell
1:26:54
them, if you see a piece of
1:26:56
code. that we're working on and it's
1:26:58
not right. I don't want to comment,
1:27:00
fix it. I don't want to
1:27:02
comment, fix it. What are we doing?
1:27:05
I don't own that code anymore
1:27:07
than you own that code. I
1:27:09
have time for that. Fix it.
1:27:11
Now for the other developers who
1:27:13
haven't earned that yet, then I tell
1:27:15
them we're going to sit together and
1:27:18
look at it. If you see something
1:27:20
you don't like, change it, but that
1:27:22
has to stay. in the PR, that
1:27:24
can't go to Maine without me,
1:27:27
right? On the other developers, that
1:27:29
stuff can go to Maine all
1:27:31
day. Like, let's not slow it
1:27:34
out. You, your stuff can't
1:27:36
go into Maine. Fix it,
1:27:38
and then we'll review it
1:27:40
before anything gets. I don't
1:27:42
know how any other way to maintain
1:27:45
velocity and then get
1:27:47
up speed without some
1:27:49
level of pairing. Yeah, I think,
1:27:51
I think. some degree of it. It's not
1:27:53
pairing in the same way, but I've been a big
1:27:56
proponent. I've been talking so much about this that some
1:27:58
people are like, shut up, but I'm like... You
1:28:00
know, the whole idea of writing more stuff
1:28:02
down and archiving things and really being able
1:28:04
to be like, here's a manual, and not
1:28:06
just like throwing a manual, someone. I think
1:28:08
that is completely useless as an idea. But
1:28:11
give people the, spend the time teaching people,
1:28:13
here's how to, if you have a question
1:28:15
about something, if you're trying to learn something,
1:28:17
if you want to learn a piece of
1:28:19
the code base. This is where you go
1:28:21
in this manual. Like I think of how
1:28:23
it works for like I have seen myself,
1:28:26
the Chicago Manuel style, or any style manual,
1:28:28
and these things are like, you know, Chicago
1:28:30
manual style is like a thousand pages long,
1:28:32
but any publishing house says they're manual of
1:28:34
style. And if you want to write a
1:28:36
piece of writing for them, you got to
1:28:38
write it in that way, but they're also
1:28:40
structured so that if you just know how
1:28:43
manuals of style work, you can sit down
1:28:45
and be like, oh. I need to know
1:28:47
how to do, like, cite this in one
1:28:49
way or how to do this quoting or
1:28:51
this thing. You know where to look in
1:28:53
the manual to find that information so you
1:28:55
can do it in the right way. And
1:28:58
I feel like we as an industry are
1:29:00
missing all of that stuff. And I feel
1:29:02
like when we try to make it, it
1:29:04
usually comes in the form of like, here's
1:29:06
a file you can put so your editor
1:29:08
will force you into doing these things. And
1:29:10
I feel like your approach where you're like,
1:29:12
okay, I want to sit down and pair
1:29:15
with someone, I want to connect on a
1:29:17
human level and do this knowledge transfer, like
1:29:19
being able to do that, but also being
1:29:21
on the other end to scale it up
1:29:23
with. Now I've sat with you a little
1:29:25
bit, maybe for a few weeks or a
1:29:27
month, now you have the knowledge you need
1:29:30
to be able to be able to be
1:29:32
able to be able to be able to
1:29:34
be able to be able to be able
1:29:36
to be able to be able to go.
1:29:38
use that manual to learn more, to do
1:29:40
more, to do things in the way that
1:29:42
we do them here and whatnot. I feel
1:29:45
like that would be a better balanced approach
1:29:47
than what we've been doing. I have tried
1:29:49
to write style guides. I've tried to do
1:29:51
this. It is so tedious. It's not easy,
1:29:53
man. And I gave up. I kudos to
1:29:55
you for being able to do it. I
1:29:57
gave up. And that's why I went with
1:29:59
the pairing approach. So anybody working on the
1:30:02
code bases that I'm working on. You pair
1:30:04
with me until we get to a point
1:30:06
where I can trust that you don't need
1:30:08
the pairing. And even sometimes... something really complex.
1:30:10
Florn and I was working on something complex
1:30:12
last week. I'm like, dude, we need to
1:30:14
work on this together. And I'll be honest
1:30:17
with you, I know I couldn't have solved
1:30:19
it alone and I know he couldn't have
1:30:21
solved it alone. Yeah. So I'm a, I
1:30:23
love, you know, what would be my favorite
1:30:25
job if I can ever retire from Arden?
1:30:27
And retiring might be selling or just handing
1:30:29
over the range to some other people and
1:30:32
I don't have to deal with it day
1:30:34
and day and day out. I would love
1:30:36
a job. There's just no way to, there's
1:30:38
just no way to. There's no I would
1:30:40
be fired at the end of every year
1:30:42
because my performance review I'd have nothing for
1:30:44
performance review. Okay, but at least for a
1:30:46
year this would be fun I'm gonna go
1:30:49
to a company and every week pair with
1:30:51
a different team My job on every day
1:30:53
is to sit next to somebody and help
1:30:55
them code whatever it is they're working on
1:30:57
I get no credit for it because all
1:30:59
the commits are in their name And after
1:31:01
a few days with this person, I'll go
1:31:04
to another person and maybe stay with a
1:31:06
team for a month and get them all
1:31:08
up to speed on everything that we've talked
1:31:10
about and then move on to the next
1:31:12
company, move on to the next team. See,
1:31:14
the problem is when the code of you,
1:31:16
when the... performance review comes up and they
1:31:19
say, what did you do? You're like, well,
1:31:21
I didn't really do anything. Look, I got
1:31:23
no commits. Like, I have no responsibility. That's
1:31:25
the best part, right? The things breaking at
1:31:27
three in the morning ain't calling me. But
1:31:29
I would love that job. I would love
1:31:31
somebody just pay me to come to work
1:31:33
every day and pair with somebody and just
1:31:36
depart all my thoughts and what I'm thinking
1:31:38
about and get up to speed. I mean,
1:31:40
companies hire me to do that remotely. Right,
1:31:42
and I do some of that already, but
1:31:44
that to me would be the most amazing
1:31:46
job. Yeah, I mean, I feel like that's
1:31:48
a thing that companies need more than they
1:31:51
think they need. I feel it's a failing
1:31:53
of, definitely our performance review or like, how
1:31:55
we see value in what software insurers do
1:31:57
is that we don't understand that as just
1:31:59
like, no, what is very helpful to have.
1:32:01
someone that's just going around a company and
1:32:03
spreading ideas and spreading knowledge around. And I
1:32:06
think to your point that you said about
1:32:08
like the difficulty in writing a style guide,
1:32:10
I think for where we are as an
1:32:12
industry, like we are in the like Not
1:32:14
even punch card era, but the like
1:32:16
manually configuring dials on a mainframe
1:32:18
era of putting these types of
1:32:20
things together, right? Like we just
1:32:22
don't have the tooling that we
1:32:24
need to make something like this
1:32:26
valuable, right? Like you need to
1:32:28
have much better systems of cataloging
1:32:30
and organizing information than accessing it
1:32:32
before you can really scale something
1:32:34
like a manual style. I wonder
1:32:36
if I can use an LLC
1:32:38
to write a style guide. I used
1:32:40
an LLM to take my
1:32:43
notebook. So in a couple
1:32:45
weeks, we're announcing Arden certifications
1:32:47
and both go and rest.
1:32:49
Arden certification. So you'll have
1:32:51
Arden Labs dot training. And
1:32:53
in there, I think it's
1:32:55
100 bucks, and you answer
1:32:57
100 questions, and if you
1:32:59
get 80%, right, you'll get
1:33:01
an Arden certification certificate, the
1:33:03
whole nine yards, right? But I
1:33:05
had to come up with like 500
1:33:07
questions for both go and rest. I
1:33:09
was like, how am I going to come
1:33:12
up with 600 questions? I took my go
1:33:14
notebook, ran it into the LLLM, and
1:33:16
said, give me questions on this chapter.
1:33:18
Give me questions on that chapter. And
1:33:20
I had to clean up the questions.
1:33:23
And there's still a dozen questions
1:33:25
that I need to clean up
1:33:27
a little bit. But it got
1:33:29
me where I needed to go
1:33:31
in terms of, and I call
1:33:33
this an ardent certification and go,
1:33:36
because it's. the things that I'm
1:33:38
teaching, right? For whatever that's worth,
1:33:40
an aren't certification,
1:33:43
but a proctored exam.
1:33:45
So we've got a
1:33:48
company that we pay,
1:33:50
I don't know, some fee,
1:33:52
they have a proctored exam
1:33:55
site, and we've got it
1:33:57
all set up. It's nice.
1:34:00
we're also susceptible to this AI hype
1:34:02
is because tech is like a hype
1:34:04
driven industry like I was talking about
1:34:06
the article like the Market for Lemons
1:34:08
and how so much of front end
1:34:10
has become just marketing hype without anything
1:34:12
underneath it like completely ignoring data completely
1:34:15
ignoring the facts and everybody being like
1:34:17
yeah let's do it let's go let's
1:34:19
go and I feel like that's just
1:34:21
spread to everything within tech whereas as
1:34:23
soon as something It gets a little
1:34:25
bit exciting. I mean we've talked about
1:34:27
on the podcast a bunch, whether it
1:34:30
was big data or web 2.0 or
1:34:32
blockchain and crypto or now AI, it's
1:34:34
like everybody gets super excited and there's
1:34:36
some very good use cases, but those
1:34:38
aren't the use cases people are talking
1:34:40
about. People are talking about the crazy
1:34:43
stuff, right? It wasn't that long though
1:34:45
that people were just talking about, oh
1:34:47
yeah, yeah, Bitcoin's gonna replace all the
1:34:49
fee out currencies in the world and
1:34:51
we're doing everything in Bitcoin and Bitcoin
1:34:53
and it's useless. And it's useless. And
1:34:55
it's useless. I'm not saying that. There
1:34:58
are some useful things about cryptocurrencies and
1:35:00
especially the underlying technology, but like, it's
1:35:02
not replacing the Fiat currencies. And I
1:35:04
think AI is going to fall into
1:35:06
the same thing, where we're all in
1:35:08
the hype cycle right now. We're seeing
1:35:11
these things, it's doing, that's cool. But
1:35:13
I think when you asked those tough
1:35:15
questions, like you did Bill, of, okay,
1:35:17
you built me this app, but now
1:35:19
there's a bug in it, can you
1:35:21
fix that bug? Can you fix that
1:35:23
bug? the fact that the thing that
1:35:26
differentiates a bug from a feature is
1:35:28
whether you meant to put it there
1:35:30
in the first place. Right? Like, this
1:35:32
is what happens. So it's like, is
1:35:34
that a feature or a bug? Like
1:35:36
the famous X to CD comic where
1:35:38
you hit the space bar and it
1:35:41
heats up your CPU and someone's like,
1:35:43
I was using that for something, right?
1:35:45
It was a feature to someone even
1:35:47
though you considered a bug. So and
1:35:49
now you're like, the AI is going
1:35:51
to do it all for me. Then
1:35:54
what are your features? What are your
1:35:56
features? I don't remember, this was late
1:35:58
90s or early 2000s. All software engineering
1:36:00
went offshore from the US. Right? Because
1:36:02
everything was going to be cheaper. And
1:36:04
those countries started hiring everybody out of
1:36:06
union. and everyone they could and they
1:36:09
had essentially these really large shops of
1:36:11
developers and you were paying what 10
1:36:13
bucks an hour for them and everybody
1:36:15
tried to use these shops for two
1:36:17
or three years and ended up not
1:36:19
being able to get projects done or
1:36:22
having reliability in product and it wasn't
1:36:24
for any other reason then these people
1:36:26
just didn't have enough experience though it
1:36:28
was cheaper whatever was promised. I'm wondering
1:36:30
if we're gonna see something similar with
1:36:32
AI. Where industry is going to attempt
1:36:34
to use it because it's going to
1:36:37
be cheaper and two or three years
1:36:39
later We're going to find out whether
1:36:41
or not it actually worked Yeah, and
1:36:43
if it doesn't you go back I
1:36:45
think one of the chapter titles in
1:36:47
the episode with Kelsey was Like AI
1:36:49
is the new offshoring because I think
1:36:52
I think that is a very very
1:36:54
comparative thing of like it's basically the
1:36:56
same argument of like oh you'll just
1:36:58
be able to export all of this
1:37:00
knowledge work to this other place and
1:37:02
it's definitely gonna work out and you
1:37:05
go get there and you're like actually
1:37:07
it's not and now I got to
1:37:09
go pay the people that actually know
1:37:11
things which is also what Kelsey brought
1:37:13
up of like now I got to
1:37:15
go pay these people some exorbitant amount
1:37:17
of money because they're like you could
1:37:20
have just in In today's world, that's
1:37:22
gone because you've missed it. In today's
1:37:24
world, back then, maybe a thousand companies
1:37:26
got into the game. If you're not,
1:37:28
probably less, maybe 200 companies got into
1:37:30
the game. Today, 5,000 companies are getting
1:37:33
into the game. And it's the same
1:37:35
thing I was sharing with you with
1:37:37
Rust. The companies that are having a
1:37:39
lot of success right now have been
1:37:41
around for three years. They saw this
1:37:43
three years ago and they started devving.
1:37:45
amazing polished projects, right, and products. And
1:37:48
everybody jumping in now is rushing to
1:37:50
that. But I think before you could
1:37:52
pay. Now today, unless it's internal development,
1:37:54
you're done, dude. You lost time. Times
1:37:56
against you. saying is like those companies
1:37:58
that build things are going to have
1:38:00
to pay the people you were just
1:38:03
talking about the people that are prepared
1:38:05
already that are like oh yeah no
1:38:07
this isn't going to be as a
1:38:09
20 buck per month subscription this is
1:38:11
going to be measured in many many
1:38:13
thousands of dollars you got to survive
1:38:16
long enough that's what I like I
1:38:18
survived covert last year was bad for
1:38:20
my business nobody was spending money
1:38:22
last year I think mainly because
1:38:24
of the election wanting to see what was
1:38:26
going to happen and We survived, we
1:38:28
didn't necessarily grow, we didn't lose.
1:38:31
A lot of companies went
1:38:33
out of business last year. Yeah, they
1:38:35
did. Right? The companies that. were me.
1:38:37
And so it's this, can you survive
1:38:39
it long enough to reap the
1:38:41
benefit of that outcome? Right. In
1:38:43
two years. It's stuff, I mean,
1:38:45
when we had a recruiter on
1:38:47
the show, Chris Aller, he was
1:38:49
talking about, you know, just how
1:38:51
many companies have gotten themselves in
1:38:53
a position where it's like, you've
1:38:55
completely hosed your ability to hire
1:38:58
people, that's going to have really
1:39:00
long and bad repercussions for you
1:39:02
in the next few years. And
1:39:04
even... Even the fang companies doing
1:39:06
all of these layoffs, and now
1:39:08
they're like, oh no, we got to hire
1:39:10
again. And everybody's like, do I want
1:39:12
to go work for you? If I am, you're
1:39:14
going to have to pay me more money
1:39:16
now. They don't trust you anymore. Did you
1:39:18
actually save money in the long run by
1:39:20
doing all this? You know what they're going
1:39:22
to say, I can't work with this, we
1:39:24
got to write it over. Right. Right. It's
1:39:26
just like we're stuck in the same cycles,
1:39:29
it's like, it's like the lack of long-term
1:39:31
thinking, I think, is what keeps getting us.
1:39:33
And I'm like, yeah, no, sitting down and
1:39:35
doing long-term thinking is what gives you success.
1:39:37
Don't look at all the short-term stuff, because
1:39:39
that short-term stuff, it is not paying out
1:39:41
in the long run, like over and over
1:39:43
and over, we keep seeing that. But it
1:39:45
doesn't sound good, that's what it comes down
1:39:47
to, doesn't sound fun on paper, fun on
1:39:50
paper, people like that, people like that. I
1:39:52
made a hackie game with AI, it made
1:39:54
me 60K, or whatever, you know, like, yeah,
1:39:56
but you don't know how to game, you
1:39:58
don't know how to do it. you're
1:40:00
just you're just scamming people
1:40:02
out of their money like sure you can
1:40:04
get by with that and make some money
1:40:07
off of it and walk away but what
1:40:09
are you really doing for yourself and for
1:40:11
the world like it's just it gets to
1:40:13
be it gets to be sad at a
1:40:15
certain point in my opinion I can't sleep
1:40:17
at night like that it sounds like you can't
1:40:20
either but there are a lot of people
1:40:22
who can yeah so there you
1:40:24
are well yeah this is true
1:40:26
I I look further and I
1:40:28
see like, okay, a lot of
1:40:30
these people that are doing that,
1:40:32
they're okay with that. They don't
1:40:34
have any moral or ethical, you
1:40:36
know, repercussion for that. And also,
1:40:38
I believe in other areas. I
1:40:41
believe in Carmen, man. If you
1:40:43
live long enough, it catches up
1:40:45
with you. Agreed. One way or
1:40:47
another. I really believe in it.
1:40:56
I think a lot of our thinking has
1:40:58
been foregone conclusioning, and I think that puts
1:41:01
a lot of fear into people about things
1:41:03
that are not necessarily likely to happen at
1:41:05
this point. And we also waste a whole
1:41:07
bunch of time screaming about that stuff instead
1:41:09
of screaming about, well, if we do get
1:41:12
there, what are we going to do about
1:41:14
it? Like, I think, like, what was it
1:41:16
last year, the year before, what is time
1:41:18
anymore, when there were all those letters from
1:41:20
people about we need to put a pause
1:41:23
on AI development because it's getting scary. And
1:41:25
I'm like, instead of saying that, how about
1:41:27
we start just working on the
1:41:29
regulation that we need to have?
1:41:31
How will we start working on
1:41:34
ethics around this and all like,
1:41:36
work on that stuff? So if
1:41:38
it does get here. Okay, but
1:41:40
Chris, who works on that? Because
1:41:43
not a single senator or Congress
1:41:45
person has the education to work
1:41:47
on that. That's the education to
1:41:49
work. have the right background in
1:41:52
education to do it. So now what
1:41:54
industry experts do you want to see at
1:41:56
that table? I don't know enough to tell
1:41:58
you that this this this. And why would
1:42:00
they do that? They're busy running their
1:42:03
multi-billion dollar companies, right? And the last
1:42:05
thing they want to do is put
1:42:07
handcuffs on them. This to me is
1:42:09
one of these sort of lose-lose, Chris,
1:42:11
we need you to become a Congress
1:42:13
person or a senator so you could
1:42:16
basically chair this committee and spend your
1:42:18
first term, right, heads down doing that
1:42:20
work. That's what it's going to take.
1:42:22
Right. You and then recruiting the right
1:42:24
people and using whatever budget you have.
1:42:26
to sort of do that. I don't
1:42:29
know how else it happens. Right. Yeah,
1:42:31
I think it's, it is, is the
1:42:33
thing that we more broadly, I feel
1:42:35
like a lot of this goes off
1:42:37
of like the broader pressure of society.
1:42:39
I think right now that has been
1:42:42
out of whack for quite a while
1:42:44
of just like people aren't pushing back
1:42:46
strong enough on things, but a lot
1:42:48
of it's because people don't know. Right?
1:42:50
Like people, they see chat, they see
1:42:52
chat, they're like, this thing is amazing.
1:42:55
They don't know about all of the
1:42:57
dark stuff that made that happen. Same
1:42:59
thing with social media. Same thing with
1:43:01
so many of the things that we
1:43:03
have. It's like, yeah, but we have
1:43:05
to collectively decide what it is that
1:43:08
we want and what it is we
1:43:10
don't want. And I don't think if
1:43:12
people understood what these costs are kind
1:43:14
of wind up being, they would choose
1:43:16
to go down the path that path
1:43:18
that we're going on. Here's. Look at
1:43:21
somebody like myself who knows what's going
1:43:23
on and sees things every day that
1:43:25
bothers the heck out of me. Okay?
1:43:27
But I'm busy. I can get on
1:43:29
an airplane and go into Washington DC
1:43:31
and screaming and yelling. I don't have
1:43:34
time. But I actually asked myself the
1:43:36
question this weekend with everything that I'm
1:43:38
seeing. At some point, right? I don't
1:43:40
know what that point is. But at
1:43:42
some point, I imagine, like, what is
1:43:44
the point where Bill Kennedy says, Bill
1:43:47
Kennedy says enough is enough? Because right
1:43:49
now I'm trusting that there are people
1:43:51
that I don't know fighting this out
1:43:53
already in courts, fighting this out in
1:43:55
legislation, fighting this out in, like, that's.
1:43:57
my brain is. There are people smarter
1:44:00
than me right now taking up this
1:44:02
cause. I don't have to do anything.
1:44:04
I'm going to sit back and, but
1:44:06
my brain said at some point, or
1:44:08
what is the tipping point where you
1:44:10
feel like you got to get involved?
1:44:13
Like I don't know what that is,
1:44:15
right? But that's the problem, right? Because
1:44:17
there are more people like, there are
1:44:19
people who are bored and have nothing
1:44:21
to do and have nothing to do.
1:44:23
Then there are people like us that
1:44:26
are working day in and day out
1:44:28
and we don't really have time We
1:44:30
catch up an hour a day and
1:44:32
we're smart enough to have these thoughts
1:44:34
and we know enough to have these
1:44:36
thoughts, right? But we're still relying on
1:44:39
everybody else that's involved in the government
1:44:41
involved in this interest groups and stuff
1:44:43
to do that work and so My
1:44:45
question is what is it going to
1:44:47
take for Chris to jump on the
1:44:49
plane? and go wherever we have to
1:44:52
go. What does it take Matthew to
1:44:54
finally say I have to get on
1:44:56
a plane? I don't know what the
1:44:58
answer is, but it's the first time
1:45:00
in my life, and I'm 55 years
1:45:02
old, where I felt like I'm close
1:45:05
to getting on a plane. Right? I
1:45:07
don't know where I'm flying just yet,
1:45:09
but I'm close to feeling like if
1:45:11
I'm not out doing the ethical thing.
1:45:13
Whether it's on this topic or other
1:45:15
things, it's the first time in my
1:45:18
life I've ever felt like I'm close
1:45:20
to getting on an airplane. Yeah. Yeah,
1:45:22
good point. I myself don't think I'd
1:45:24
be so cordial with it because I
1:45:26
have thoughts on these matters and then
1:45:28
I just get myself in trouble if
1:45:31
I say these thoughts, so. Don't share
1:45:33
opinions, that's not what I did, right?
1:45:35
All I'm saying to you is, you
1:45:37
haven't gotten on a plane yet. Let's
1:45:39
just talk about the high legislation and
1:45:41
laws, right? You haven't made a call
1:45:44
to a congressman or a senator yet.
1:45:46
You haven't made a call to a
1:45:48
group. There are organizations out there that
1:45:50
work on this stuff every day. I
1:45:52
can't remember the name of the organization.
1:45:54
There's an organization that has for the
1:45:57
last decade, if not more, put plans
1:45:59
together on how to get rid of
1:46:01
the deficit. Like they have literally studied
1:46:03
this problem for the last 10 plus
1:46:05
years. They have plans. I don't, I've
1:46:07
never read the plans. I don't know
1:46:10
if they're going to work. But they've
1:46:12
worked on it for 10 years, right?
1:46:14
Like if I was worried about the
1:46:16
deficit and had enough as enough, this
1:46:18
is the group I would go to
1:46:20
and say how can I help. Right
1:46:23
I don't think going to the White
1:46:25
House and holding up a sign and
1:46:27
screaming is going to help But yeah
1:46:29
agreed, but this is how I would
1:46:31
help how can I help you get
1:46:33
this plan in front of the people
1:46:36
that need? Obviously, I'd read it first
1:46:38
assuming that I like it So my
1:46:40
point is I am sure there's some
1:46:42
group working on this AI thing right?
1:46:44
Right if you found that group and
1:46:46
maybe there's ten of them and you
1:46:49
read one of them and you're like
1:46:51
this resonates with me. I believe in
1:46:53
this Right. I'm at a point now
1:46:55
where I feel I have to spend
1:46:57
some time on this. That's the plane
1:46:59
I'm getting on, right, for that. And
1:47:02
if that doesn't exist, which I'd be
1:47:04
shocked, because we're never really the first
1:47:06
ones to have a unique thought somehow,
1:47:08
right? Then that's what you should start.
1:47:10
Let's start that organization nonprofit that's going
1:47:12
to study this for the next five
1:47:15
years and have a plan ready when
1:47:17
when the time... comes, right? But at
1:47:19
least that's action. You're not just screaming
1:47:21
in front of the white house. Yeah,
1:47:23
you're not just screaming to the void
1:47:25
of... I don't know how that helps
1:47:28
with anything. I know it helps at
1:47:30
some level, right? Because it helps it
1:47:32
into the conversation. Yeah, helps the awareness.
1:47:34
It maybe even helps you pat yourself
1:47:36
in the back that you did something.
1:47:38
But it doesn't actually move the needle
1:47:41
forward. Sometimes it's just like the small
1:47:43
things. Like, you know, I don't think
1:47:45
I've... I've talked about some of... I'll
1:47:47
talk about America because that's why I
1:47:49
live, but like I think we've lost
1:47:51
the ability to do like collective suffering
1:47:54
a little bit and that's how you
1:47:56
would usually do a lot of collective
1:47:58
action. So that's like, for instance, how
1:48:00
like the Montgomery bus boycotts worked is
1:48:02
that everybody had to say, my life
1:48:04
is going to be a little bit
1:48:07
worth right now. So in the long
1:48:09
run, we can all do better. And I
1:48:11
feel like people's ability to do that
1:48:13
has decreased a bit. And I feel like
1:48:15
that's the thing that is starting to build
1:48:17
up a little bit more. I think from
1:48:19
whatever perspective run, I think there's a lot
1:48:22
of people that are starting to be like.
1:48:24
We all need to suffer a little bit more
1:48:26
for our causes that we have so we
1:48:28
can effectuate the future we want to have.
1:48:30
And I think like, you know, we're starting
1:48:32
to see that, right? Like with the, you
1:48:35
know, what, at the end of February that
1:48:37
was, there was like the Don't Spend Money
1:48:39
Day. I mean, there's a lot of people
1:48:41
that did that or with certain retailers that
1:48:43
have made certain decisions where people are like,
1:48:45
We're not going to shop there anymore. We're
1:48:47
going to shop somewhere else. So I do
1:48:49
think there's also a lot of value in
1:48:51
that little action that people can take. Sometimes
1:48:53
individualized actions will make a difference if you
1:48:56
can get a collective enough people to
1:48:58
actually participate in them. So I think
1:49:00
it's both angles. I think we need, you
1:49:02
know, everybody needs to know their point
1:49:04
where, yeah, you are going to get
1:49:06
on a plane to go do something.
1:49:08
But I also think there's the understanding,
1:49:10
what's the little things that you can
1:49:12
give up. Send a small little signal
1:49:14
that if enough of us send small
1:49:16
signals, we'll get the result that we
1:49:18
want. Think both things are important. So
1:49:20
it's very much a yes and instead of
1:49:22
a no but sort of situation. Yeah,
1:49:24
I'll just, you're not allowed to
1:49:26
come to me and complain unless you
1:49:28
have some thoughts on a solution. Unless
1:49:31
you come to me and say, I
1:49:33
just need to vet. And that's fair.
1:49:35
Just say you need to vent. Just say
1:49:37
you need to vent. Because then I'll just
1:49:39
keep my mouth shut. And that's fair. I'll
1:49:41
say this any. I'm just looking event,
1:49:44
blah, blah, blah. But if you come and
1:49:46
complain to me and then you don't offer
1:49:48
any even remote thought or idea of, and it
1:49:50
would have to be a complete solution, but even
1:49:52
a 10,000 foot view of a solution, why did
1:49:54
you come to me? You know, and so it's
1:49:56
the same thing for me. I'm not going to
1:49:58
get on a plane unless... I feel like
1:50:00
there's something I can contribute somewhere beyond
1:50:03
just venting. Yeah. Agreed. Dude, we've been,
1:50:05
we've been at the close two hours
1:50:07
a day. I know, I was going
1:50:09
to say, I was waiting for you
1:50:11
all to finish up your AI chat.
1:50:14
Yeah. Well, thank you. I mean, there's
1:50:16
not much else to say except for
1:50:18
thank you, right? I mean, what else?
1:50:20
What else can I even, couldn't say?
1:50:22
Thanks for coming on. Thanks for chatting
1:50:24
for chatting for chatting. Yeah. No, no,
1:50:27
it was all good. Crystal do his
1:50:29
chop and editing work and get it
1:50:31
all done. My storyline weaving, narrative weaving.
1:50:33
Yes, yeah. So when we're at Gopher
1:50:35
Khan US, we'll go grab some whiskey
1:50:38
and continue our conversation. Yes, please do.
1:50:40
We're both attending. We're both attending. It's
1:50:42
going to be in New York, so
1:50:44
it's super easy for batting me. Yeah.
1:50:46
I'll be there. I already have my
1:50:49
ticket. I just waiting on the hotel
1:50:51
blocks to drop. So the hard part
1:50:53
is getting from the airport into the
1:50:55
city. I always wanted to try those
1:50:57
helicopters. Maybe I'll do a helicopter this
1:50:59
time. I've always wanted to try it.
1:51:02
Oh, you know what? That'd be cool.
1:51:04
I've never tried that either. That'd be
1:51:06
fun to do. There is a, uh,
1:51:08
there is a blade helicopter, uh, heliport
1:51:10
on the west side park. That is,
1:51:13
uh, it's not that far from the
1:51:15
Javits and the hotels. So, so could
1:51:17
be very viable. I think, I don't
1:51:19
know if alleys as well. Even the
1:51:21
ferry is nice, but you know, there's
1:51:23
that. I've never thought about the ferry.
1:51:26
You can take a ferry from one
1:51:28
of the airports? Not from the airport,
1:51:30
no. From the airport, no. From the
1:51:32
airport. Yeah, you had to pick a
1:51:34
bus or a train to the ferry.
1:51:37
But yeah, depending on the ferry, because
1:51:39
if we're coming from New York, you
1:51:41
can do it, but. One time I
1:51:43
took a bus. to get on the
1:51:45
subway, you know, but, um, I'm doing
1:51:47
a helicopter man, that's it. I'm gonna
1:51:50
try that. I used to try, yeah,
1:51:52
I used to try it, especially, uh...
1:51:54
in the airport in
1:51:56
late be be beautiful.
1:51:58
So so yeah I mean it's
1:52:01
gonna be hot I mean it's gonna
1:52:03
it would be I
1:52:05
and beautiful be bright and
1:52:07
beautiful always say it
1:52:09
and I don't
1:52:12
do it I always say it
1:52:14
and I don't do it I
1:52:16
right, do it all right great see
1:52:18
you one. next one thanks for
1:52:20
coming by thank you thank you Thank
1:52:26
you once again to Bill
1:52:29
Kennedy for joining us for
1:52:31
this episode this next On episode
1:52:33
we're talking with with Jamie Tana about API
1:52:35
Design. It's a really fun episode
1:52:37
and we think you're going
1:52:39
to love it going to love
1:52:41
episode of all through was
1:52:43
hosted by hosted by Matthew Sinabria with co-host
1:52:45
and Brando and Kennedy Bill Kennedy. Author is
1:52:48
through is produced by Chris and
1:52:50
Angelica Hill and our beats by Breakmaster Cylinder. It's
1:53:08
the the Y'all need to 'all need to
1:53:11
go to therapy I I can't English
1:53:13
today Somebody that I to to go
1:53:15
I'd go anywhere, right? Everybody's going right?
1:53:18
going back to Java. That's what I'm seeing.
Podchaser is the ultimate destination for podcast data, search, and discovery. Learn More