34-Jeanne-Boyarsky.txt

(00:00:00):
Hey, everybody.

(00:00:00):
Welcome back.

(00:00:01):
This is Jim Grisanzio from Oracle Java Developer Relations.

(00:00:04):
And we’re back here on Duke’s Corner, where we chat about Java and the community.

(00:00:09):
And I’m here tonight with Jean Boyarsky from New York.

(00:00:12):
Jean, how are you doing?

(00:00:13):
Hi, Jim.

(00:00:14):
Welcome.

(00:00:15):
Welcome.

(00:00:15):
It’s good to see you.

(00:00:16):
We met for the first time at Java 1 in Las Vegas last year.

(00:00:22):
That was fun.

(00:00:24):
Yeah, it was a great trip.

(00:00:26):
Yeah, exactly.

(00:00:27):
Exactly.

(00:00:28):
I thought it was, you know, it just had a different feel from San Francisco.

(00:00:33):
So, yeah.

(00:00:34):
And so let’s just start with who you are and where you are and what you do.

(00:00:38):
What’s going on?

(00:00:39):
Sure.

(00:00:39):
I live in New York City where it’s morning.

(00:00:41):
I’m just getting started for my day here.

(00:00:44):
I am a Java developer.

(00:00:45):
I’ve been doing that for just over 20 years.

(00:00:48):
I’ve worked on a variety of things like web apps, DevSecOps type automation and things like that.

(00:00:54):
And I am also a published author.

(00:00:56):
I’ve written eight Java certification books ranging from Java 8 to Java 17 and

(00:01:01):
hopefully Java 21 when the cert comes out.

(00:01:03):
Wow, interesting.

(00:01:04):
So 20 years.

(00:01:04):
So you’ve really seen most of the evolution of Java, because Java is, I guess, 28 years old or so now.

(00:01:10):
Yeah, I remember doing a presentation at work on regular expressions, which were introduced in Java 1.4.

(00:01:16):
I will grant you,

(00:01:17):
we were not an early adopter,

(00:01:18):
so I had a little bit of time before I did it,

(00:01:20):
but that was a long time ago.

(00:01:22):
Yeah.

(00:01:23):
Yeah.

(00:01:23):
So how has it evolved?

(00:01:25):
I mean, that’s a long time of evolution for a technology.

(00:01:28):
And, you know, technology has come and go, but Java certainly has stayed and grown.

(00:01:33):
So what’s the evolution been like for you?

(00:01:36):
There’s been a steady stream of new features over the years, and some are more significant than others.

(00:01:40):
So in Java 5, we had for each loop, which is awesome.

(00:01:44):
In Java 8, we had streams.

(00:01:46):
In Java 11, we had more features.

(00:01:48):
Java 21, we have virtual threads coming out.

(00:01:52):
And those big things are sort of like anchor points where you can look at the code

(00:01:56):
and see if it was written before or after that feature.

(00:01:59):
which is pretty cool, but also the ecosystem evolved, right?

(00:02:02):
Spring either wasn’t a thing or wasn’t widely prevalent 20 years ago.

(00:02:06):
And now you could hardly think of not considering it for your application,

(00:02:10):
whether you choose to use it or not.

(00:02:11):
Quarkus wasn’t even a dream then.

(00:02:13):
So it’s really cool seeing the evolution of the language, but also the ecosystem.

(00:02:18):
And then there’s the stuff that people have invented multiple times, right?

(00:02:22):
Like there was EJB1, shiver.

(00:02:25):
There was EJB3, you know, that was fine.

(00:02:27):
Then there was Spring.

(00:02:28):
And it’s nice seeing that that take place over time as well,

(00:02:31):
matching the technology and what’s current and also what’s possible.

(00:02:35):
The hardware of 20 years ago wasn’t capable of doing what the hardware of today does without a thought.

(00:02:40):
Yeah, so hardware, but also the tools you mentioned.

(00:02:42):
I mean, what’s it like being a developer now versus then?

(00:02:45):
I mean, this is a question.

(00:02:46):
Yeah, I remember my first day at work, I had to install IBM VAJ.

(00:02:50):
I had no idea how to use it and it wasn’t intuitive, but that was what everyone was using at the time.

(00:02:56):
And I remember being so excited when we got to use Eclipse because that made sense to me.

(00:03:00):
So has it changed your thinking about how you code now versus then in terms of the tools that you use?

(00:03:07):
The tools, yes.

(00:03:08):
It’s so much easier to refactor.

(00:03:10):
You don’t have to sit there of, well, should I plan to do some refactoring?

(00:03:13):
You can just do it while you’re working.

(00:03:15):
Similarly, TDD wasn’t really a thing 20 years ago.

(00:03:18):
JUnit was, but you had to argue with people to convince them that it was worth doing.

(00:03:22):
At this point, people talk about what their code coverage is, not whether there should be code coverage.

(00:03:28):
And I think seeing the ecosystem mature in that way is helpful as well.

(00:03:32):
And on the Agile front, too, XP was a thing 20 years ago.

(00:03:36):
Now people are doing Scrum and Kanban and other technologies.

(00:03:39):
And there are pieces of it that still stand, right?

(00:03:42):
Pair programming retrospectives have been around as long as I can remember.

(00:03:46):
But there’s other pieces where nobody would use the word product owner 20 years ago.

(00:03:50):
So it’s not just Java.

(00:03:51):
It’s the whole ecosystem we exist in that’s changed a lot over 20 years.

(00:03:55):
Is it something like in terms of learning to be a coder,

(00:03:59):
an engineer,

(00:04:00):
is that something that,

(00:04:02):
well,

(00:04:03):
actually,

(00:04:03):
I guess two questions.

(00:04:04):
Why did you become an engineer?

(00:04:06):
And is it easier now to do that versus then because of the ecosystem has changed so much?

(00:04:13):
I’m going to say yes,

(00:04:14):
definitely easier now because I didn’t have home internet when I was learning how

(00:04:17):
to program,

(00:04:18):
which puts the damper on things.

(00:04:20):
We also didn’t have Stack Overflow, but I have a fun story as to why I’m a programmer.

(00:04:25):
When I was five,

(00:04:26):
we took a trip through Boston and they had a children’s museum and a computer

(00:04:30):
museum in the same building.

(00:04:31):
They had this discount thing where you could get a free ticket to the computer

(00:04:34):
museum if you bought a ticket to the children’s museum.

(00:04:37):
So my parents were like, all right, we’ll do that.

(00:04:39):
We’ll walk through the computer museum briefly and then we’ll go to the children’s museum.

(00:04:43):
And I wouldn’t let them leave.

(00:04:45):
I asked about what every little thing was and I wanted to play with it.

(00:04:48):
And then they had to buy a ticket to the Children’s Museum for a second day because we never got there.

(00:04:52):
And then we went back every year until it closed when I was 13.

(00:04:56):
But I remember asking my mom, what did we do there?

(00:04:59):
Because there’s nothing you can do in that museum without being able to read.

(00:05:02):
And her answer was, you drove us crazy.

(00:05:04):
You asked what every little thing was.

(00:05:06):
You made us read to you and you insisted you were going to do things that were too

(00:05:09):
hard for a kindergartner.

(00:05:10):
Wow.

(00:05:11):
As long as I can remember, computers have been awesome and I wanted to do something in computers.

(00:05:16):
And then when I was 12, I went to computer camp where you could program in C++.

(00:05:20):
It was like a game.

(00:05:21):
You got to solve problems and you got the satisfaction of seeing it working.

(00:05:26):
And that’s when I knew I wanted to be a computer programmer when I grew up.

(00:05:29):
Wow.

(00:05:30):
See, I struggled through my C++ class and you thought it was a game.

(00:05:33):
What a distinction.

(00:05:34):
Wow, that’s amazing.

(00:05:36):
I will grant you what we were writing was a little easier than what we did in

(00:05:38):
college because we were 12.

(00:05:40):
Sure.

(00:05:40):
But struggling through it and getting it to work was so satisfying.

(00:05:44):
Actually, you know, I’m with you on that.

(00:05:46):
It was it was very nice to have it actually run.

(00:05:49):
It was actually work.

(00:05:50):
But my programs were long and convoluted.

(00:05:52):
And my friends sitting next to me, they’re nice and tight.

(00:05:55):
And it just it was a lot better, you know.

(00:05:57):
So that’s really cool.

(00:05:58):
You knew when you were a little kid.

(00:06:00):
That’s amazing.

(00:06:00):
I didn’t know.

(00:06:01):
You know what?

(00:06:02):
I just knew computers were cool and fun and I wanted to do something with them.

(00:06:05):
But when I was five,

(00:06:06):
I wanted to do computers in the sense that people want to be a pilot or a firefighter.

(00:06:10):
Right.

(00:06:11):
It’s not overly fleshed out.

(00:06:13):
Once I was 12, I think I knew this is what I want to do.

(00:06:16):
So you went to college for August.

(00:06:17):
Yeah, I went to college for computer science and I fell into Java and my second internship was in Java.

(00:06:23):
My first job was in Java.

(00:06:24):
And then after that, it just started deepening my skill set.

(00:06:27):
So is that your primary language that you’re programming is in Java?

(00:06:30):
Yes.

(00:06:31):
Okay.

(00:06:31):
So you love computers.

(00:06:33):
What about the concept of solving problems and getting very,

(00:06:38):
very deeply into the math and just the technology itself?

(00:06:44):
Is that something that also came natural to you?

(00:06:46):
Well,

(00:06:47):
I’ve always liked math,

(00:06:48):
but the computer programming that I do for work doesn’t tend to involve a lot of math.

(00:06:53):
Really?

(00:06:53):
Although I volunteer mentoring a high school robotics team, and their programming involves a ton of math.

(00:06:59):
I had to relearn polar coordinates from high school when I started doing that,

(00:07:02):
which was funny because a kid referenced them,

(00:07:04):
and I asked to explain it.

(00:07:05):
And he goes, don’t you know that?

(00:07:06):
You learned it in high school.

(00:07:07):
I’m like, I did.

(00:07:09):
And the last time I touched it was in high school.

(00:07:11):
High school.

(00:07:12):
But now I’ve seen it more regularly, so I haven’t forgotten.

(00:07:15):
So definitely more math there.

(00:07:16):
But I’ve liked math.

(00:07:17):
Math has never been scary.

(00:07:19):
But I like computers.

(00:07:20):
OK.

(00:07:21):
Well,

(00:07:21):
so along with the technology evolving and along with the ecosystem evolving as well,

(00:07:26):
there’s the community.

(00:07:27):
Back when Java started, there was obviously no community.

(00:07:30):
And it grew to something massive now.

(00:07:33):
And you’ve been involved all along the way.

(00:07:35):
So let’s talk a little bit about the community, how you interact with the community.

(00:07:39):
It’s grown.

(00:07:40):
You’re obviously a Java champion, which

(00:07:42):
basically a community within a community.

(00:07:44):
And then there’s user groups all over the world and things like that.

(00:07:47):
The New York user group is one of the oldest ones.

(00:07:50):
So for me, there’s a user group pretty much as long as I can remember.

(00:07:54):
But for other things, I do remember the evolution.

(00:07:57):
I started answering questions in my free time at a website

(00:08:01):
Maybe J. Guru.

(00:08:02):
I don’t remember.

(00:08:02):
It was so long ago.

(00:08:03):
It might have been something else.

(00:08:04):
And then I started on Code Ranch.

(00:08:06):
And I like Code Ranch better because Code Ranch has the byline, a friendly place for Java greenhorns.

(00:08:12):
And I really like that philosophy for the same reason I like writing books and mentoring people.

(00:08:16):
You get to teach and you get to help people through those problems.

(00:08:19):
So Code Ranch has people who are brand new to Java and people who have been doing

(00:08:23):
it a long time all answering questions.

(00:08:25):
But the spirit of the answer is,

(00:08:27):
you know,

(00:08:27):
we’re going to work together and we’re going to help with this.

(00:08:30):
Sometimes on Stack Overflow,

(00:08:32):
there’s unwritten rules and it’s like I said something wrong and I don’t know what

(00:08:36):
it is.

(00:08:36):
And now my thing is downvoted.

(00:08:37):
I don’t know what to make of that.

(00:08:39):
And Code Ranch took the opposite approach.

(00:08:42):
We’re going to coach you on this.

(00:08:43):
We may tell you you have to rewrite your post because it breaks some rule,

(00:08:47):
but you’re going to know what the rule was so that you can fix it.

(00:08:50):
And I spent a lot of time on the Code Ranch forums helping people and answering questions.

(00:08:54):
So there’s definitely community there.

(00:08:56):
And then when I started going speaking to conferences,

(00:08:59):
I met people outside my area,

(00:09:00):
and that was cool as well in terms of community.

(00:09:02):
So when did Code Ranch start?

(00:09:04):
A long time ago.

(00:09:06):
No, it’s probably like 15, 20 years ago.

(00:09:08):
Oh, okay.

(00:09:08):
Okay.

(00:09:09):
I was not involved in it from the beginning.

(00:09:11):
Okay.

(00:09:11):
So I don’t remember how old it is off the top of my head,

(00:09:13):
but I’ve been involved in it for at least 14 years.

(00:09:16):
Okay.

(00:09:16):
So CodeVenture is like, it’s like a stack overflow sort of.

(00:09:19):
It is, but it’s a forum instead of a pure Q&A service.

(00:09:23):
And that’s where the discussions come in.

(00:09:25):
So you do presentations and conferences and things like that?

(00:09:30):
Yeah, I try to present two or three times a year publicly.

(00:09:33):
So what do you primarily present on?

(00:09:35):
What do you focus on in terms of your public presentations in terms of the technology?

(00:09:40):
It’s mainly core Java.

(00:09:42):
So I’ll do things about the certs or Java idioms or do you know.

(00:09:45):
But I have a few others.

(00:09:46):
I did one on regular expressions last year.

(00:09:48):
I did one on continuous integration tools in Docker as a hands-on lab at Oracle Code One many years ago.

(00:09:57):
I would never do that again, expecting people to have stuff installed on their machines.

(00:10:01):
It did not go well.

(00:10:02):
That was a little overwhelming.

(00:10:03):
I’ve presented on Agile, so a number of topics.

(00:10:06):
MARK MANDELMANN- So what about contribute?

(00:10:09):
Well,

(00:10:09):
actually,

(00:10:09):
let’s just go back to the community a little bit in terms of Java Champions,

(00:10:14):
which is a group that I’ve been a little involved in recently through Oracle.

(00:10:19):
Obviously, it’s a, you know, it’s a community of almost, it’s about 400 people right about now.

(00:10:24):
What’s that like?

(00:10:25):
How did you, you know, you had to become nominated and voted upon and things like that.

(00:10:30):
So talk a little bit about the process and about that community specifically.

(00:10:34):
Well, the process is someone nominates you.

(00:10:37):
So you don’t know that much about the process until after you’re a Java champion.

(00:10:41):
But I was nominated by Victor, who’s one of the New York people.

(00:10:44):
And it was interesting because we were at a conference,

(00:10:47):
and he goes to me,

(00:10:48):
why aren’t you a Java champion?

(00:10:49):
I don’t even know the process for becoming a Java champion.

(00:10:53):
And then he actually nominated me.

(00:10:55):
And then you find out later, someone seconds it, and people vote on you, and then you’re in.

(00:10:59):
But what’s really interesting about it is when you become a Java champion and you

(00:11:03):
look at the names on there,

(00:11:04):
it’s like,

(00:11:05):
wow,

(00:11:05):
all of those people are really impressive,

(00:11:07):
and I’m one of them.

(00:11:08):
That’s cool.

(00:11:09):
It was also interesting how I found out, because sometimes you just find out on Twitter.

(00:11:17):
But sometimes the people in your community locally try to make it special if

(00:11:21):
there’s an opportunity to announce it.

(00:11:23):
We’ve announced numerous people at the New York Java User Group.

(00:11:26):
I got announced on the stage at QCon New York.

(00:11:28):
The timing happened to work out for that, and I was a track lead, so I was on the stage anyway.

(00:11:33):
They announced it right before I did my announcements.

(00:11:36):
Luckily,

(00:11:36):
Victor gave me a heads up so that I wasn’t standing there with my head spinning

(00:11:40):
while I was supposed to be announcing my track.

(00:11:42):
But it was really cool having it announced in front of friends and people I knew

(00:11:46):
and have it on the Internet.

(00:11:47):
That’s interesting you say that because I was always wondered because I sort of

(00:11:50):
facilitate the process on email in terms of the voting and everything.

(00:11:53):
I send the emails out and,

(00:11:55):
you know,

(00:11:55):
the applications come in and I just,

(00:11:57):
I wondered,

(00:11:58):
you know,

(00:11:58):
is the person actually aware this is happening?

(00:12:00):
You know, I never asked anybody.

(00:12:02):
There’s nothing to stop someone from telling them,

(00:12:04):
but I get the feeling people generally don’t because if you’re voted down,

(00:12:07):
it’s a little awkward to know you’re considered and didn’t get it.

(00:12:10):
Yeah.

(00:12:11):
I didn’t know until Victor told me they were announcing it tomorrow because the

(00:12:15):
only conversation we had about it is,

(00:12:17):
so why aren’t you a Java champion?

(00:12:18):
I don’t know.

(00:12:19):
That wasn’t particularly memorable.

(00:12:22):
But also you don’t need to tell the person because if you can’t provide enough

(00:12:26):
evidence of what they’re doing in the community without asking them,

(00:12:28):
they’re clearly not ready yet.

(00:12:30):
Yeah.

(00:12:30):
Some of the applications are very impressive.

(00:12:32):
They’ve got like a hundred links in there, you know, to various things that they’ve done.

(00:12:36):
Tutorials, videos, conferences, books, things like that.

(00:12:39):
Yeah.

(00:12:40):
So what’s the community like?

(00:12:41):
So there’s a mailing list.

(00:12:44):
We use it for nominations, but also for things that get discussed.

(00:12:47):
And also when you go to conferences or when you’re on Twitter or Mastodon,

(00:12:51):
you have that connection to,

(00:12:53):
oh,

(00:12:53):
okay,

(00:12:54):
that person isn’t a stranger.

(00:12:55):
They’re a fellow Java champion.

(00:12:56):
Maybe you’ll recognize their name or their picture.

(00:12:58):
And there’s that networking that goes on.

(00:13:01):
And sometimes when people are visiting New York City,

(00:13:03):
they’ll reach out of,

(00:13:04):
oh,

(00:13:04):
I saw that you were in New York City.

(00:13:05):
Do you want to meet up?

(00:13:06):
So in terms of the community dynamic, is that something you, it sounds like something you really enjoy.

(00:13:11):
Obviously you’re out there and stuff,

(00:13:13):
but what’s it like in terms of,

(00:13:14):
you know,

(00:13:15):
the value of interacting with the community?

(00:13:17):
It’s really hard to quantify because a lot of the time it’s not useful and then it’s super useful.

(00:13:23):
And it’s just like, oh, I heard this fact in passing four times and now I need to use it.

(00:13:28):
The most useful time I can think of is when Log4j happened because there was an

(00:13:32):
extremely active discussion about it on the Java champion list.

(00:13:36):
And because Java champions are worldwide,

(00:13:39):
I would wake up and the people in Asia and Europe had summarized the happenings of

(00:13:43):
what I would call the night.

(00:13:44):
So I was able to get moving first thing in the morning rather than have to recreate

(00:13:47):
the research that everybody had been living for the past X hours.

(00:13:51):
That was super helpful.

(00:13:53):
I start work early,

(00:13:54):
but I was able to start work early and start doing things and not start with a

(00:13:57):
research project.

(00:13:58):
And someone was very helpful for those first couple of days,

(00:14:02):
provided a summary right before business hours on the East Coast.

(00:14:05):
It’s like, all right, y’all are awake now.

(00:14:06):
Here’s what you want to know.

(00:14:08):
like that was super cool and super helpful so like would you say the same same

(00:14:12):
dynamic exists with user groups and conferences as well just in terms of the

(00:14:16):
community interactions oh definitely yeah but conferences are localized in time not

(00:14:21):
in space you meet people from all over but they are localized in time right i

(00:14:25):
wouldn’t expect if there is a big security thing to happen tomorrow that i would

(00:14:29):
get a conference networking to help me with it but local community yes and

(00:14:33):
obviously the java champions exist over time

(00:14:36):
So what do you think about this concept of contribution?

(00:14:39):
I mean,

(00:14:40):
I talk a lot about communities and everything from code contributions to just

(00:14:46):
participating in a user group,

(00:14:47):
answering questions,

(00:14:48):
or even just going and being a seat there.

(00:14:51):
having hallway conversations.

(00:14:53):
To me,

(00:14:54):
the most important thing in the community is this concept of contribution,

(00:14:57):
because this is how you can distinguish yourself,

(00:15:00):
if that’s what you’re looking to do,

(00:15:01):
because your contribution is the real value.

(00:15:04):
That’s the signal and the noise.

(00:15:06):
And I find,

(00:15:07):
although communities can be very loud and noisy and maybe appear to be disorganized,

(00:15:12):
I find that the top people are always looking for people who are going to

(00:15:17):
contribute something of value.

(00:15:18):
Yes.

(00:15:19):
Right,

(00:15:19):
because all of these things are unpaid volunteer work,

(00:15:22):
so the people who contribute are how it gets done.

(00:15:24):
So that seems to be thriving in the job community.

(00:15:28):
I mean, it seems that there’s all kinds of contributions that go far beyond code.

(00:15:33):
Yeah, articles too, whether they’re blog posts or articles on a formal site like JobDev.

(00:15:37):
Yeah.

(00:15:38):
And blog posts and even just Twitter and even just,

(00:15:41):
you know,

(00:15:41):
Twitter interactions or X or Macedon or whatever you want or,

(00:15:45):
you know,

(00:15:45):
whatever platform you’re going to be using,

(00:15:46):
you know.

(00:15:47):
Interesting.

(00:15:47):
So what part of the Java technology is something that you value the most or use the

(00:15:55):
most or is the most innovative or.

(00:15:59):
I’m going to say streams.

(00:16:01):
I like streams for the same reason I like regular expressions.

(00:16:04):
You can write code that is concise and expressive.

(00:16:06):
And yes, I know I just said that about regular expressions.

(00:16:09):
I break mine up into variables so it’s English by the time you get to the regex.

(00:16:13):
But it’s the same idea with streams,

(00:16:15):
that you can have less code,

(00:16:17):
but it’s just as clear,

(00:16:18):
or if not more clear,

(00:16:19):
of what you’re doing.

(00:16:20):
And I also like that Streams makes it easy to parallelize.

(00:16:23):
I do a lot of things that involve calling REST APIs on COTS products,

(00:16:27):
and the REST APIs are often super granular,

(00:16:30):
which means your machine is sitting around waiting for I.O.

(00:16:32):
and network a lot,

(00:16:34):
which means parallelization helps because if I have to make 10 network calls and

(00:16:37):
I’m waiting on something to happen,

(00:16:39):
great.

(00:16:40):
And Streams makes that trivial.

(00:16:41):
You get it to work and then you change stream to parallel stream and all of a

(00:16:45):
sudden it’s multiple times faster.

(00:16:46):
In fact, I did that this morning.

(00:16:48):
And it happens often enough that I really appreciate the ease of doing that.

(00:16:52):
You do have to remember while you’re writing the code that you might make it

(00:16:54):
parallel later so that you don’t write a thread safety bug.

(00:16:58):
But knowing that and keeping it in mind makes it easy to do.

(00:17:01):
And I remember having to do that manually with executors before that and threads before that.

(00:17:05):
And those were both a lot of work.

(00:17:07):
So you were thinking about how to do the mechanics of it instead of what you were trying to accomplish.

(00:17:12):
With streams, you get to focus on what you’re trying to accomplish.

(00:17:15):
I also, in terms of newer features, I really, really, really, really like TextFox.

(00:17:19):
Explain that.

(00:17:20):
I like TextFox because you can keep your code together.

(00:17:24):
If you have a SQL statement or a little XML thing or an expected value in a JUnit test,

(00:17:29):
you can have it with the rest of the code and have it still be readable.

(00:17:33):
And I look at my older code and I see the SQL.

(00:17:36):
It’s like,

(00:17:36):
all right,

(00:17:37):
well,

(00:17:37):
the SQL is in a property file because I couldn’t put in the Java code because it

(00:17:40):
would be unreadable.

(00:17:41):
So now I look at the Java code.

(00:17:44):
Then I have to go on a treasure hunt to find the sequel.

(00:17:46):
And I read the sequel.

(00:17:46):
Then I go back to my other tab and forget what I was doing.

(00:17:49):
And that’s a lot of back and forth for no good reason.

(00:17:52):
I like that TextBlocks let me embed the code without having the formatting issues or the escaping issues.

(00:17:57):
And that allows it to happen.

(00:17:59):
So it seems like just listening to you talk about

(00:18:03):
not only how you became an engineer,

(00:18:06):
you were interested,

(00:18:07):
you know,

(00:18:07):
actually when you were a kid,

(00:18:09):
went to school and some of the things you like in Java and some of the things that

(00:18:13):
you appreciate it.

(00:18:14):
And I’m trying to get a sense of what it takes to or how engineers think,

(00:18:20):
you know,

(00:18:20):
how they think about,

(00:18:21):
you know,

(00:18:22):
complex things,

(00:18:22):
because writing code is not,

(00:18:24):
you know,

(00:18:25):
it’s not a non-trivial thing.

(00:18:26):
And so it seems that you really value the quality of something, you know, the organization of something.

(00:18:33):
I think that’s because I like to compartmentalize.

(00:18:35):
Whether it’s time management or Java coding, you can only think of so many things at the same time.

(00:18:40):
So if I can minimize the number of things that I have to think about while doing something,

(00:18:44):
I can accomplish more.

(00:18:46):
And that’s why I like not having the SQL in a separate file.

(00:18:49):
It’s one less thing I need to think about.

(00:18:51):
And there’s never going to be a small number of things to think about.

(00:18:54):
As you mentioned, this is not a trivial thing.

(00:18:56):
We’re working on things that are inherently complex.

(00:18:58):
But there are pieces of them that don’t have to be complex.

(00:19:02):
And having those pieces be better makes it easier.

(00:19:05):
I see that sometimes I’ll get a new person and they’ll write code and the variable

(00:19:09):
names are terrible and it’s all one large method.

(00:19:11):
And when I ask about it, it’s like, well, it doesn’t matter, it works.

(00:19:13):
And then I then I watch them debug it and they spend hours trying to figure out how

(00:19:17):
this thing works because,

(00:19:19):
you know,

(00:19:20):
it does.

(00:19:20):
Well, it used to work right now that you have a problem.

(00:19:22):
It doesn’t work anymore.

(00:19:23):
But not realizing that pain wastes so much time.

(00:19:26):
That’s what I’m getting at.

(00:19:27):
I’ve always been interested in process improvement,

(00:19:29):
so I’ve always been looking for ways to optimize that sort of thing.

(00:19:32):
Yeah.

(00:19:33):
And I hear that from from almost every engineer I talk to.

(00:19:36):
And it’s just been it’s been something of a journey for me, too, because I’m just attracted to that.

(00:19:40):
You know,

(00:19:41):
I used to be in the construction business and engineers make sense to me,

(00:19:45):
even though the complexity is a bit beyond me.

(00:19:47):
You know, construction is a it’s a similar mindset, actually.

(00:19:51):
And so when I talk to engineers, they just make sense.

(00:19:54):
And this this seeking of organization to simplify the complexity because things are very, very complex.

(00:20:00):
And as you said, you can only keep so much in mind.

(00:20:03):
And also knowing what tools are available to you.

(00:20:05):
Like with my whole regular expression example,

(00:20:08):
when regular expressions were fairly new,

(00:20:09):
it was JavaScript for this.

(00:20:11):
But someone on my team shows me this, like, page and a half of validation code in JavaScript.

(00:20:17):
It wasn’t working.

(00:20:18):
It wasn’t really clear what it was supposed to do.

(00:20:19):
And she asks if I compare with her to help with it.

(00:20:22):
Okay.

(00:20:22):
What is it supposed to do?

(00:20:23):
And she tells me.

(00:20:24):
And

(00:20:25):
It was three lines.

(00:20:26):
It was three lines of a clear, regular expression.

(00:20:29):
So I rewrote it that way, and it works, and I get up because I think we’re done.

(00:20:32):
And she’s like, well, can you help me get my original working?

(00:20:34):
No, no.

(00:20:36):
The new one is fine.

(00:20:37):
We can add comments to it.

(00:20:38):
We can make it clearer to you, but no.

(00:20:41):
And she’s like, well, I don’t like regular expressions.

(00:20:43):
They’re hard to understand.

(00:20:44):
It’s like, we can add comments.

(00:20:45):
We can make it more readable,

(00:20:47):
but I’m not debugging this page and a half of code that doesn’t work for something

(00:20:50):
that could have been three lines.

(00:20:51):
Wow.

(00:20:52):
And it wasn’t three lines of Perl type code.

(00:20:54):
It was a really, really short, simple, regular expression.

(00:20:57):
So,

(00:20:57):
you know,

(00:20:58):
the fear of learning something new or the fear of the technology doesn’t always

(00:21:02):
help people because now they don’t know what they don’t know and they’re happy to

(00:21:05):
do things the old way and just suck up time.

(00:21:07):
So do you think that has to come naturally to people or is it easily learnable?

(00:21:12):
I think it’s interest and desire to learn.

(00:21:15):
You get some people who go to Java user groups and they’re reading the blog posts

(00:21:18):
and they’re reading the social media and they’re reading books or videos or however

(00:21:22):
they want to learn.

(00:21:22):
And those people don’t have that problem because they’re continually exposed to new ideas.

(00:21:27):
And then you have people who are in the field because they heard it paid well or

(00:21:31):
it’s a job and I learned everything I needed to in school and why should I ever

(00:21:35):
have to learn something again?

(00:21:36):
That’s not the way our industry works.

(00:21:38):
You heard the long list of things that happened over the last 20 years.

(00:21:41):
So if you’re relying on what you learned in school a long time ago, it’s stale and it’s inefficient.

(00:21:46):
And I think that’s some of how we get into this boat.

(00:21:49):
So how do you keep up with it all?

(00:21:51):
Some of it is helping other people.

(00:21:53):
When I’m answering questions on Code Ranch, I’m exposed to new ideas, but I do read regularly.

(00:21:57):
I make sure to read 10 technical books every year.

(00:21:59):
I read social media.

(00:22:01):
I interact with people at conferences.

(00:22:03):
So I am continually learning things.

(00:22:05):
And, you know, it’s interesting.

(00:22:07):
I want to.

(00:22:08):
But it’s not just the Java stuff.

(00:22:10):
When I volunteered at the high school, I learned the things that younger people are doing.

(00:22:13):
That’s how I learned about Slack.

(00:22:15):
It wasn’t until a few years after that that grownups were using Slack for things.

(00:22:19):
But when they said they were going to use Slack, I’m like, cool, what’s Slack?

(00:22:22):
And it was the same thing for Discord.

(00:22:24):
The first time I ever used Discord was for a robotics meeting.

(00:22:27):
And you hear the slang.

(00:22:29):
A lot of kids will use the phrase search it up, which I didn’t know what that meant the first time.

(00:22:33):
And then,

(00:22:34):
you know,

(00:22:34):
after a few years had passed,

(00:22:35):
I started hearing the younger people in the workplace doing the same thing.

(00:22:38):
So it’s kind of like early adopter for cultural stuff by working with the high schoolers.

(00:22:44):
Interesting.

(00:22:45):
So the young kids really actually affect you.

(00:22:47):
They actually influence you.

(00:22:48):
Yeah, learning definitely happens both ways.

(00:22:51):
I love how you said that because I’ve always said that, but no one’s ever repeated it.

(00:22:56):
And I said it unprompted.

(00:22:57):
How cool is that?

(00:22:58):
Yes, you did.

(00:22:58):
Absolutely.

(00:22:59):
Yeah,

(00:23:00):
because,

(00:23:00):
I mean,

(00:23:00):
I’ve always been fascinated with,

(00:23:03):
which is another reason why I’m interested in engineers and scientists in general,

(00:23:07):
basically,

(00:23:08):
is the learning process.

(00:23:09):
Because I always struggled when I was a kid learning.

(00:23:11):
I mentioned the C++ stuff, but, I mean, I struggled through math and chemistry and stuff like that.

(00:23:16):
But I actually was attracted to those subjects for some bizarre reason,

(00:23:20):
even though I struggled through them.

(00:23:22):
And now,

(00:23:23):
you know,

(00:23:23):
all these years later,

(00:23:24):
I’m fascinated with the concept of how humans learn things and how they go very,

(00:23:29):
very deeply into complex subjects and master them.

(00:23:33):
I’m interested in this concept of mastery, basically.

(00:23:36):
And engineers, you know, in general, master really, really hard things, to me, anyway.

(00:23:41):
Something I find really interesting with the learning is the younger kids,

(00:23:45):
the high schoolers,

(00:23:46):
and the entry-level people are often able to learn,

(00:23:49):
not always,

(00:23:49):
but often able to learn stuff way faster than people who have been doing it for a while.

(00:23:53):
But we who have been doing it for a while have things to anchor on,

(00:23:57):
so we have less things to learn because you can relate it to something you already know.

(00:24:02):
And those sort of cancel each other out that you get to the same end state of

(00:24:05):
knowledge at basically the same point.

(00:24:08):
But they went faster and did more brute force learning.

(00:24:11):
And we did, oh, that’s things like this other thing, except for these six things that are different.

(00:24:15):
I’m good.

(00:24:15):
And like I saw that early in my career with the people who are more experienced

(00:24:18):
than me,

(00:24:19):
but I didn’t realize what was happening.

(00:24:20):
I just noticed that they were taking all these illogical shortcuts and I had no

(00:24:23):
idea how they made those deductions.

(00:24:25):
And then when it started happening to me, it’s like, OK, I get this now.

(00:24:28):
We’re learning in a different way.

(00:24:30):
Is that learning in a different way inherent simply because of the age and the experience level?

(00:24:34):
I don’t think it’s age.

(00:24:35):
I think it’s experience.

(00:24:36):
Experience.

(00:24:37):
Okay.

(00:24:37):
Because I’ve worked with some career changers and they learn a lot more like the entry level folks do.

(00:24:43):
Interesting.

(00:24:43):
I’m just learning everything brute force because I don’t have those connections to make it.

(00:24:47):
There was one guy recently who was a little older than me and he was definitely

(00:24:51):
learning the same way the high schoolers and college students do.

(00:24:54):
Fascinating.

(00:24:55):
Yeah, I hadn’t thought about that.

(00:24:56):
Well, it seems like you’re interested in learning as well.

(00:24:59):
And that goes way back.

(00:25:01):
Yeah, I tutored when I was in high school.

(00:25:03):
I’ve always been interested in teaching people.

(00:25:06):
So you find that teaching actually helps you to learn as well?

(00:25:09):
Yes.

(00:25:10):
And it gives you the enjoyment of seeing other people learn.

(00:25:12):
That’s one of the reasons I always wanted to write a book, because it was like teaching at scale.

(00:25:16):
Oh, okay.

(00:25:17):
Yeah.

(00:25:18):
And what was that like writing a book?

(00:25:19):
I mean, that is at scale for certain.

(00:25:21):
I mean, how long did it take you to write?

(00:25:22):
Writing a book is a lot of work.

(00:25:24):
I knew that.

(00:25:24):
So I danced around it a long time.

(00:25:26):
I wrote reviews.

(00:25:27):
I contributed to someone else’s book.

(00:25:28):
And then when I had the opportunity,

(00:25:30):
I asked my friend Scott to co-author with me because I knew how much work we were

(00:25:33):
getting into.

(00:25:34):
And that definitely made it easier.

(00:25:36):
We balance each other really well.

(00:25:37):
We have different, you know, we have some strengths in common.

(00:25:39):
We both have developers, but we have a lot of different strengths.

(00:25:42):
And that definitely helps with the process.

(00:25:44):
My favorite is that Scott is really good at images.

(00:25:47):
The first book,

(00:25:47):
I would draw an image in PowerPoint or Visio,

(00:25:50):
and he would basically rewrite it because it wasn’t as good as he could make it.

(00:25:53):
And then I go, could I just give it to you like a paper drawing and take a picture?

(00:25:57):
Yeah, that’s fine.

(00:25:57):
Because if he’s remaking it anyway, there’s really no reason for me to make it.

(00:26:01):
And it’s easier for me to do it as a napkin drawing of like, all right, here’s what I want to look like.

(00:26:05):
Can you make this look nice?

(00:26:06):
And I’m very big on like the detail logistical stuff.

(00:26:09):
But it’s good that we have that because we both get to do the activities that we

(00:26:13):
like and the other person gets to do the activities we don’t like.

(00:26:16):
And the same thing happened on the book.

(00:26:18):
When we’re dividing up chapters,

(00:26:20):
we start out with,

(00:26:21):
are there any chapters you really,

(00:26:22):
really,

(00:26:23):
really want to do?

(00:26:24):
Or are there any chapters you really, really want the other person to do?

(00:26:27):
And we’ve both picked chapters on our really want to do list that were on the other

(00:26:30):
person’s I would really wish you would do this list.

(00:26:34):
That’s awesome.

(00:26:34):
You have to take the cert and you do have to know about these topics.

(00:26:38):
But for the writing part,

(00:26:39):
it’s good because you get to write about the parts you’re passionate about and the

(00:26:42):
other part just gets written.

(00:26:43):
It’s pretty cool.

(00:26:45):
Okay.

(00:26:45):
So is there anything that I haven’t asked you that I should have asked you?

(00:26:49):
Is there anything that we left out here?

(00:26:51):
Not really, although I would like to say something about open source.

(00:26:54):
Yeah.

(00:26:55):
I don’t contribute much to open source, but I have a tiny bit.

(00:26:58):
I’ve done some bug fixes over the years,

(00:27:00):
but I’ve also done documentation fixes and I want to encourage people to do those.

(00:27:04):
When you’re working on something, you’re reading docs online and then you notice a typo in it, right?

(00:27:09):
You could move on with your life or you could create a PR.

(00:27:12):
And it’s really nice to create the PR.

(00:27:14):
The people working on it appreciate it,

(00:27:15):
and it gets accepted really easily,

(00:27:17):
and you’ve made the thing better for other people.

(00:27:19):
Sometimes it’s English typos,

(00:27:21):
but sometimes it’s variable names,

(00:27:23):
or they put the wrong port number or whatever.

(00:27:24):
And I really like those because they’re easy to do.

(00:27:28):
I don’t do them during work because it’s not my job to create PRs for things,

(00:27:31):
but I’ll send myself a link at home and then that night I’ll create the PR.

(00:27:35):
And what’s awesome is documentation PRs are super easy because you don’t even have to pull the projects.

(00:27:40):
It’s a one file.

(00:27:41):
You get to just do it in the branch and directly create the PR.

(00:27:43):
So it winds up being five, 10 minutes of effort and making something better.

(00:27:47):
And you’re still contributing.

(00:27:48):
It’s in a minor way, but it’s easy and it benefits people.

(00:27:51):
Yeah, and it’s a part of the whole concept of community too, that contribution, you know.

(00:27:56):
Okay, so you’re really into learning.

(00:27:57):
You have contributed.

(00:27:58):
You’re obviously contributing to the community.

(00:28:01):
Is this field today something that you would recommend college kids get into?

(00:28:06):
Oh, absolutely.

(00:28:07):
Technology keeps changing.

(00:28:09):
We’ve been hearing about the so-called death of Java for 20 years.

(00:28:12):
Java is clearly alive and one of the most popular languages.

(00:28:15):
And we’ve also been hearing about the computer is going to generate all the code for over 20 years.

(00:28:21):
And I say over because I heard about it in 2019.

(00:28:26):
1999 when I was graduating high school, and I can’t imagine that was the first iteration of it.

(00:28:31):
But for a couple of years,

(00:28:32):
there’s a,

(00:28:33):
oh,

(00:28:33):
there’s this technology advance and the business people are going to generate the

(00:28:36):
code and we won’t need programmers anymore.

(00:28:38):
And, you know, here I sit with 21 years of experience.

(00:28:40):
And the reason that AI and Cogen and all of that aren’t going to replace the

(00:28:45):
programmers is the same reason that you have business analysts.

(00:28:48):
The business has not been able to write 100% non-ambiguous requirements since the dawn of time.

(00:28:54):
And I don’t see why we expect with AI that they’re suddenly going to have that skill.

(00:28:58):
And it’s hard.

(00:28:59):
It’s a different skill than the business.

(00:29:01):
It’s a skill we have as programmers that being super detailed and finding the edge

(00:29:04):
cases and saying,

(00:29:06):
you know,

(00:29:06):
I know you said X,

(00:29:07):
but you really want Y.

(00:29:08):
Is that right?

(00:29:09):
And the business is like, yes, I do.

(00:29:11):
Right.

(00:29:12):
There’s no way you’re going to get artificial intelligence or co-agents deal with that.

(00:29:15):
It’s going to give you what you asked for, whether you want it or not.

(00:29:18):
And it’s not going to realize that you omitted some information, right?

(00:29:21):
Like, oh, you know, years of 365 days.

(00:29:24):
Cool.

(00:29:25):
Well, what do you want to do for leap year?

(00:29:27):
Oh, right.

(00:29:28):
I need to have a requirement for that.

(00:29:29):
The computer is just going to do something and it probably isn’t going to be what you want.

(00:29:33):
So I definitely think people should get into technology, recognizing that it changes.

(00:29:38):
Right.

(00:29:38):
It’s changed over the last 20 years.

(00:29:40):
It’s going to change over the next 20 years.

(00:29:42):
And that’s OK.

(00:29:43):
Right.

(00:29:43):
We have more data science stuff now.

(00:29:45):
We have more stuff.

(00:29:46):
There’s going to be something else 20 years from now.

(00:29:48):
Who knows what it will be?

(00:29:50):
And as long as you like learning and change, this is totally fine.

(00:29:53):
OK,

(00:29:53):
so I asked the question in the context of a kid getting into computers or software

(00:29:58):
or whatever in college.

(00:30:00):
What about older people?

(00:30:02):
Older people?

(00:30:02):
Well, like, for instance, like exactly.

(00:30:05):
It’s like, you know, like you have like it’s a career change.

(00:30:07):
You know,

(00:30:08):
you’ve so you’ve had one or two different industries that you’ve been into and you

(00:30:12):
get laid off and,

(00:30:13):
you know,

(00:30:13):
you got a little money.

(00:30:14):
You can take a year off and you, you know, you’re going to retool yourself.

(00:30:18):
You’re 40, you’re 50, you know.

(00:30:18):
Yeah.

(00:30:21):
I think it’s definitely possible.

(00:30:22):
It’s harder for career changers.

(00:30:24):
I have less exposure to them, so I have less opinions on it.

(00:30:27):
But there’s definitely the whole,

(00:30:29):
well,

(00:30:29):
you’re competing with high school and college students that learn really fast.

(00:30:32):
And if you’re not going to be able to keep up, it’s going to be hard.

(00:30:35):
But the other thing is you do have experiences in something, right?

(00:30:39):
You can’t get to the age of 40 or 50 without knowing something.

(00:30:42):
So finding opportunities to link those things works.

(00:30:46):
If you can find a programming job in the domain you know a lot about,

(00:30:49):
those questions that I just asked,

(00:30:50):
you’re going to have them on day one.

(00:30:52):
You’re not going to have to wait until you have years of experience as a programmer to know what to ask.

(00:30:57):
So I think that’s the way to get into it, to take the things that you do know and add technology to them.

(00:31:02):
I mean,

(00:31:02):
it’s sort of what I was thinking in the sense of if you’re 50,

(00:31:05):
you’ve got 50 years of life experience,

(00:31:07):
you know,

(00:31:08):
certainly say 30 years of work experience,

(00:31:10):
you know,

(00:31:10):
that you’re bringing to the technology.

(00:31:12):
The technology might be brand new to you, but your thinking is different.

(00:31:15):
You’re not 20 or 18.

(00:31:16):
And that’s the making connections thing I was talking about earlier.

(00:31:19):
If you can finagle a way for you to be able to make connections with what you know,

(00:31:23):
you’re going to be successful.

(00:31:24):
In these conversations,

(00:31:25):
I’m always asking these questions primarily for me because I’m always thinking

(00:31:28):
about what I’m doing.

(00:31:32):
I mean, everything’s personal to me.

(00:31:33):
I’ve had 400 of these conversations.

(00:31:35):
I’ve done 400 interviews at Oracle since 2018 or so.

(00:31:39):
which is a bizarre thing for me to say,

(00:31:41):
because I mean,

(00:31:42):
I had a profound stutter up until I was like age 35 or so.

(00:31:46):
So like when I was younger,

(00:31:48):
this conversation could not have taken place,

(00:31:50):
because I would go into 40 different seizures.

(00:31:53):
And so that’s,

(00:31:53):
you know,

(00:31:53):
it gets back into like all my learning issues when I was younger,

(00:31:57):
you know,

(00:31:58):
that’s how I fell behind a lot.

(00:31:59):
So I was always sort of retooling myself.

(00:32:02):
And that, you know, stems from my interest in learning and changing.

(00:32:05):
I’ve worked in six different industries.

(00:32:08):
So I know what it’s like to jump.

(00:32:10):
I know what it’s like to go into a space,

(00:32:13):
be much older than everybody in there and have to work your way up.

(00:32:17):
I’ve done that multiple times.

(00:32:19):
But learning more coding is absolutely an avenue for someone like me.

(00:32:24):
Since I’ve already been in the business, I joined Sun and actually I joined 3Com in 98.

(00:32:29):
So I’ve been around for a while.

(00:32:31):
So that’s a little bit background on why I’ve asked you these types of questions.

(00:32:35):
And that’s why I enjoy having these conversations.

(00:32:37):
So it’s been a pleasure.

(00:32:39):
I’ve really had a good time.

(00:32:40):
Thank you very much.

(00:32:41):
If I’ve left anything else out, now is your opportunity.

(00:32:44):
Shoot it at me.

(00:32:45):
I think we’re good.

(00:32:46):
Okay, cool.

(00:32:47):
Jean, it was cool.

(00:32:48):
Talk to you soon.

(00:32:48):
Thanks.