32-Stéphane-Nicoll.txt

(00:00:00):
Stéphane, Stéphane Nicoll from Belgium.

(00:00:02):
Welcome.

(00:00:02):
Welcome to Duke’s Corner.

(00:00:03):
Thank you for having me.

(00:00:05):
It’s great to meet you.

(00:00:07):
We’re actually meeting for the first time.

(00:00:08):
I’ve been having conversations recently with a lot of people that I’ve met for the first time here.

(00:00:13):
So it’s really kind of cool that I can meet so many people.

(00:00:17):
But I don’t know anything about you.

(00:00:19):
I saw a couple of videos online.

(00:00:21):
You know, when you’re doing presentations that either recently or from years ago.

(00:00:26):
And so I know a little bit about what you do,

(00:00:29):
but why don’t you start off by telling me who you are and what you do?

(00:00:33):
Sure.

(00:00:33):
So I’m a software engineer based in Belgium.

(00:00:37):
I’m on the spring team for almost 10 years now.

(00:00:41):
And before that, I’ve been working in companies in Belgium, usually software vendors.

(00:00:48):
I’ve been on the Spring Framework team and the Spring Boot team for pretty much the whole time.

(00:00:54):
So it’s been an opportunity to meet the community and

(00:00:59):
giving those sessions that you’ve seen on YouTube as the Spring team is fully remote.

(00:01:06):
So we don’t really have a team that’s co-located and conferences is a great way to meet.

(00:01:15):
So the whole team is remote?

(00:01:17):
The old team is remote, yeah.

(00:01:18):
So we do have offices in certain parts of the world.

(00:01:22):
Most of us, we don’t go there.

(00:01:24):
How big is the team?

(00:01:26):
It depends.

(00:01:27):
On the framework team, we’re almost seven or eight, seven, I think.

(00:01:33):
Mostly located in Europe.

(00:01:35):
Actually…

(00:01:36):
Everybody’s located in Europe except Sam.

(00:01:39):
Sam is American but is living in Switzerland.

(00:01:43):
On the Springwood team, we have half of the team in Europe and half of the team in the US, basically.

(00:01:50):
That makes more interesting problems for meeting with time zones and also meeting face-to-face.

(00:01:56):
So I want to talk a little bit about the technology that you’re actually working with.

(00:02:01):
But let’s go back a little bit to talk about how you got into engineering.

(00:02:05):
How and why?

(00:02:05):
I don’t really know, actually.

(00:02:09):
When I was a kid, I wanted to be a doctor.

(00:02:11):
And sure, that’s technical, right?

(00:02:15):
Yeah, different than what I’m doing now, surely.

(00:02:19):
And I was playing with computers quite a bit.

(00:02:23):
And I didn’t want that hobby to become what I’m actually doing daily.

(00:02:28):
I was afraid of that hobby being not fun anymore if it turns out to be a full-time job.

(00:02:35):
That was with my idea of becoming a doctor.

(00:02:39):
There was this session one day at school where the university came to us,

(00:02:45):
several teachers from that university to basically showcase what the university can

(00:02:51):
do and the programs and whatnot.

(00:02:53):
I don’t really know why.

(00:02:55):
I can’t remember now,

(00:02:56):
but I said,

(00:02:56):
okay,

(00:02:57):
let’s go to the computer science room and let’s hear what they have to say.

(00:03:02):
And I went back to my parents’ place and I said, okay, I’m going to do that.

(00:03:05):
So it was really fun.

(00:03:08):
I really liked it because it was in a different city and an opportunity for me to discover new places.

(00:03:15):
Was this in high school or college?

(00:03:16):
uh yeah it’s it it’s a bit different than the us it’s a university so you when you

(00:03:22):
graduate around like 18 then you have to choose what we call higher studies i think

(00:03:29):
in french a university being one of one of the options uh so that’s been five years

(00:03:33):
and i i

(00:03:34):
I graduated when I was like 23, around 2000.

(00:03:38):
And the last year you had to do some studies report and also go to a company to see

(00:03:49):
what it actually means to be an engineer.

(00:03:52):
I was in Alcatel, actually, and working on their intelligent network infrastructure.

(00:03:58):
So that’s the thing that when you call and you have a robot replying to you if you

(00:04:03):
want to buy tickets or if you want to call a voicemail,

(00:04:07):
that kind of stuff.

(00:04:08):
infrastructure behind that.

(00:04:11):
That’s what I was working on.

(00:04:13):
I actually worked on an API.

(00:04:14):
I can’t remember the language now.

(00:04:16):
It’s probably C. But it actually turned out to be Java at the end.

(00:04:20):
Yeah.

(00:04:20):
So they had an API in C, and they were moving everything to Java.

(00:04:23):
So I did the first draft of the Java API for that system.

(00:04:27):
So that’s where I learned, well, first, like practical use of programming in Java and designing APIs.

(00:04:35):
So how did you make that decision, though?

(00:04:38):
I mean, you went to this one seminar and you just said, yeah, this is what I’m going to do.

(00:04:43):
That seems like, I mean, that’s a very good thing in the sense of that’s very clear.

(00:04:48):
You made a very clear decision.

(00:04:49):
That’s really interesting.

(00:04:50):
I’ve never been able to do that, by the way.

(00:04:52):
So I’m interested, what did you see in there that grabbed you?

(00:04:56):
So the teacher was basically explaining the philosophy behind the university with

(00:05:06):
small classes and what we were going to learn the first year.

(00:05:13):
the options because you can you can choose like optional courses and they they

(00:05:17):
explain basically what uh the kind of like options that we would have and they also

(00:05:22):
explain the kind of outcome of the of graduate with a computer science uh course

(00:05:29):
from from that university and it’s it’s been so long it’s like 30 years ago almost

(00:05:35):
so i don’t really remember but

(00:05:37):
It felt like my original assumption that doing a day job on something that was a hobby before was wrong.

(00:05:47):
Not being an hobby anymore, I realized that maybe I can have both.

(00:05:52):
So I went all in for that.

(00:05:54):
And the interesting bit is because I spent three months in Alcatel,

(00:06:01):
during my studies on intelligent network, I got a job in that space as a consultant.

(00:06:07):
So I was really supposed to work on intelligent network, not especially on API design, not at all.

(00:06:13):
It was just like complete coincidence that I was doing that during that time.

(00:06:17):
And when I joined the company, they told me on day one,

(00:06:20):
well, you know, the intelligent network unit, it’s been killed.

(00:06:26):
So you won’t be doing that.

(00:06:27):
And instead, you’re going to join the software development group.

(00:06:31):
So that was fun because I was really supposed to do something completely different.

(00:06:36):
And I actually joined the Java development team at that company.

(00:06:40):
Turned on the company, was not really healthy.

(00:06:42):
So six months later, it completely went bankrupt.

(00:06:46):
And

(00:06:47):
then that’s that’s how i started with like continuing web development with java

(00:06:51):
because actually my first my first job should have stopped that so it’s been a lot

(00:06:55):
of like uh open source contributions so i started to do open source uh

(00:07:01):
contributions really early on i worked on maven one i worked on next doclet then

(00:07:07):
when maven 2 was starting i actually got involved quite quite a bit more

(00:07:13):
I was on the PMC for 15 years,

(00:07:16):
I believe,

(00:07:17):
on the Maven project,

(00:07:18):
which I left relatively recently because it felt to me that I didn’t have the time

(00:07:26):
to actually be a proper PMC member.

(00:07:29):
I mean, you need to vote on things and really watch things carefully.

(00:07:33):
And my job on Spring was actually taking all my free time.

(00:07:38):
So that’s one.

(00:07:38):
And the other one is most of the job I’ve been with before joining the Spring team

(00:07:44):
were around API development or framework.

(00:07:47):
For instance,

(00:07:48):
one software vendor,

(00:07:49):
they had their own framework stack built on top of open source components.

(00:07:53):
And my team was responsible to

(00:07:56):
make it evolve, like fix bugs and implement new features for what they call business developers.

(00:08:02):
So the idea was to make it easy and make it productive to create new business components.

(00:08:10):
So my team was responsible to do the heavy lifting essentially.

(00:08:14):
And that turned out that a big part of that stack,

(00:08:18):
we wanted to replace it by Spring because Spring was doing it better than anything

(00:08:25):
that that small team had built internally.

(00:08:27):
So we started to migrate to Spring and learn about it.

(00:08:31):
And then I started to do some contributions.

(00:08:34):
Because what we had, for instance, what we had is a batch framework.

(00:08:40):
Before Spring Batch ever existed, we had our own version of it, like I’m sure many companies.

(00:08:46):
And so when we started to migrate to Spring Batch,

(00:08:49):
there were some features missing and we decided to contribute them back because we

(00:08:53):
felt that it was a good idea to have the community look at the code and provide feedback.

(00:08:59):
And if the team agrees to support it, that was win-win for us.

(00:09:02):
Now, where are you contributing it back to?

(00:09:04):
Spring batch, that should have been like 2012.

(00:09:08):
What was the open source upstream project?

(00:09:10):
Spring batch.

(00:09:11):
So spring batch is one module of the spring portfolio to abstract a batch job like parallelism,

(00:09:20):
multitasking.

(00:09:21):
at that time like clustering support and we don’t talk about clusters that much

(00:09:25):
anymore but all that stuff was very high on the list at that time and so i joined

(00:09:30):
the team in 2014 because of those contributions gave me an access to some team

(00:09:35):
members and yeah i’m having a lot of fun system since then

(00:09:40):
So you mentioned really contributing to open source early on.

(00:09:45):
I mean, so it seems like you’ve been contributing really almost since you got involved.

(00:09:48):
Was that something that it seems to for a lot of developers just comes naturally?

(00:09:53):
It’s just a part of the culture.

(00:09:54):
Is that something you learned in school when you were?

(00:09:57):
Is that a part of the engineering workflow or culture development process that you learned in school?

(00:10:03):
No, not at all.

(00:10:05):
I felt it was really…

(00:10:07):
I mean,

(00:10:08):
even though I don’t have a huge experience in a lot of languages,

(00:10:12):
it felt to me Java was particularly good at that.

(00:10:17):
Because if you look at the community that built around Java, they’re quite active.

(00:10:23):
And there’s many ways to contribute.

(00:10:26):
Back then, it was like SourceForge and

(00:10:28):
CVS and it wasn’t as fun as GitHub.

(00:10:31):
But it felt to me that it was easier for me to try to contribute something,

(00:10:38):
even if it wasn’t the best possible outcome,

(00:10:42):
and have feedback from the team trying to hack my own solution.

(00:10:47):
Because then I would have to maintain it and think that’s not a good outcome.

(00:10:52):
Right, exactly.

(00:10:56):
Just to answer your question, the university didn’t touch that at all.

(00:11:03):
It was really the early days.

(00:11:05):
I had one course on Java.

(00:11:08):
Like I said, it was even an accident that during my time I spent in Alcatel, I spent some time in Java.

(00:11:15):
It was just because they’re

(00:11:17):
the decision of using it retrospectively was really great.

(00:11:20):
I did that.

(00:11:21):
But the university did not cover that as much as they do now.

(00:11:24):
So what is it about engineering, software engineering, that draws you?

(00:11:28):
I mean, is it the problem solving?

(00:11:30):
Is it the… Because some people create new things.

(00:11:35):
They look at these tools,

(00:11:36):
they look at these languages and they say,

(00:11:38):
I can create something brand new here.

(00:11:40):
And then other people tell me they just love to solve problems.

(00:11:44):
You know, they love math.

(00:11:44):
They love puzzles.

(00:11:45):
They love complex things.

(00:11:47):
They love getting very, very deep into the code in this case or really into any kind of a problem.

(00:11:52):
Is that something you love or is it naturally or is or did you learn that?

(00:11:56):
Is that an acquired taste?

(00:11:59):
I totally learned that.

(00:12:00):
I had no idea before that.

(00:12:03):
But also part of my character of being able to shut down and ignore pretty much

(00:12:09):
everything around me when I’m coding.

(00:12:13):
Also the ability to switch tasks quite rapidly and keeping the context alive.

(00:12:21):
It’s something that

(00:12:23):
uh i wasn’t i was totally unaware i had those abilities and i just discovered them

(00:12:28):
by experience and loving solving problems but also the design of good code and code

(00:12:36):
that’s robust or something that

(00:12:38):
can be extended even though when you’re young or inexperienced,

(00:12:42):
I should say,

(00:12:43):
you have this tendency of overengineering it to be able to be the most extending,

(00:12:50):
something that you can extend as much as possible.

(00:12:53):
And it turns out that the design is really poor if you do that.

(00:12:55):
So I learned quite a lot spending time with core member team on the spring team,

(00:13:01):
learning to say no,

(00:13:03):
learning to not do something unless it’s been asked,

(00:13:07):
which is actually very good advice.

(00:13:10):
Interesting.

(00:13:11):
You mentioned something that I want to follow up on in terms of tasks switching and

(00:13:14):
going deep into something.

(00:13:16):
Every serious developer I’ve ever spoken to has told me in one way or another to

(00:13:21):
solve these problems,

(00:13:22):
they have to get…

(00:13:23):
They essentially need a lot of uninterrupted time.

(00:13:25):
You have to be able to focus.

(00:13:28):
You can’t be having meetings every half an hour kind of thing like marketing people

(00:13:32):
do or product management people do or when you’re organizing a conference or things

(00:13:36):
like this.

(00:13:38):
But the thing you said that…

(00:13:40):
interested me was task switching,

(00:13:41):
because most people don’t realize that there’s this huge residue that takes place

(00:13:46):
when you switch tasks.

(00:13:47):
And I mean,

(00:13:48):
it could be like a half an hour long,

(00:13:50):
if not longer,

(00:13:50):
it depends on what,

(00:13:51):
you know,

(00:13:52):
what the task is,

(00:13:53):
especially if it’s truly unrelated to what you were working on.

(00:13:57):
You said that you had that ability naturally.

(00:14:00):
Well, I learned it.

(00:14:03):
I don’t know if this is by practice.

(00:14:06):
But there is something where if I focus on something too much, too long, it really almost starts to hurt.

(00:14:13):
And I have to,

(00:14:15):
my brain needs to focus on something else because otherwise I’m not going to make

(00:14:19):
any progress.

(00:14:20):
And I know by experience that if I come back like a few hours later,

(00:14:25):
something else will pop up that would not if I kept working on it.

(00:14:29):
It’s interesting to me.

(00:14:30):
This is like a personal thing of mine to be able to increase my ability to focus longer and longer.

(00:14:36):
Because again,

(00:14:37):
when you can focus very deeply for long periods of time,

(00:14:40):
that’s when the most valuable work actually takes place.

(00:14:43):
It’s not that shallow.

(00:14:44):
The work is wrong.

(00:14:45):
It’s just a different type of work.

(00:14:47):
But to generate really innovative, new things that are valuable to the team, a lot of focus is required.

(00:14:55):
And so I just see you mentioned that.

(00:14:58):
And it’s like my personal journey because I’m stuck on the surface of a lot of what I do.

(00:15:04):
So, OK, so you’re contributing to open source here, which is, you know, community involvement.

(00:15:10):
So talk a little bit about your engagements with the community,

(00:15:14):
like presentations,

(00:15:15):
conferences,

(00:15:15):
things like that,

(00:15:16):
because contributions are one thing in terms of code contributions.

(00:15:20):
But there’s also mixing with people in the community themselves, user groups.

(00:15:24):
Is this is this something you enjoy?

(00:15:26):
Is this something you enjoy doing as well?

(00:15:28):
Yeah, I like that.

(00:15:30):
And it became at some point even like almost mandatory when you work remote like that.

(00:15:37):
We’ve seen that with the pandemic where we couldn’t actually do anything.

(00:15:42):
And some conferences, they learn one way or the other how to organize something remotely.

(00:15:49):
And some of them realize that it was way cheaper to keep doing it this way.

(00:15:54):
So we had, even after the pandemic went on,

(00:15:58):
mind.

(00:15:59):
We had too many, in my case, too many conferences online because it’s just the way it was.

(00:16:06):
But I’m a bit of an introvert, actually quite an introvert.

(00:16:11):
But it’s interesting how I behave completely differently when I’m at a conference or with a group.

(00:16:18):
It’s not the person I am at home.

(00:16:20):
I go to people and I talk to people and I like to

(00:16:23):
Make them participate and make sure they’re included by asking questions at the beginning.

(00:16:29):
And to me,

(00:16:30):
the feedback that we get from the community at those events is priceless because we

(00:16:36):
get feedback on things that we don’t know about for a start.

(00:16:40):
I’ve also learned that some people can’t,

(00:16:43):
for some reason,

(00:16:44):
report something legitimate in an issue tracker publicly.

(00:16:47):
They won’t do it.

(00:16:48):
They will say they will do it, but they won’t.

(00:16:50):
It happens so many times.

(00:16:52):
But if you manage to see them and talk to them, then you can go to the meat of it.

(00:17:00):
That’s to me like it can’t be replaced.

(00:17:02):
It can’t be replaced.

(00:17:03):
And it’s very important to be able to talk to them.

(00:17:07):
That’s also why I’m trying to have my contact details as visible as possible.

(00:17:13):
emails and opening DMs on Twitter,

(00:17:17):
making sure that anybody,

(00:17:19):
even if you’re not verified like me,

(00:17:21):
you can DM me because like Twitter changed that recently several times,

(00:17:25):
which really annoyed me.

(00:17:26):
They’ve done a lot of things recently to annoy people.

(00:17:31):
So yeah,

(00:17:32):
I’ve started actually recently to build a small website where I list the

(00:17:39):
conferences where I’ve been.

(00:17:41):
And looking at the list, it’s good memories.

(00:17:44):
And I found that quite useful.

(00:17:47):
Yeah, I do a lot of community development work.

(00:17:50):
So I’m talking about how to build community,

(00:17:52):
why to build community,

(00:17:53):
why contribute,

(00:17:54):
what you as a developer or just a participant can get out of community in terms of

(00:18:00):
what you contribute to the community.

(00:18:01):
It’s a reciprocal relationship.

(00:18:03):
And having these physical events are so critical for building any kind of a relationship.

(00:18:09):
This goes to human nature.

(00:18:11):
I mean, humans gather together.

(00:18:13):
everywhere in the world for the purpose of doing something,

(00:18:17):
to build a house,

(00:18:18):
to build a barn,

(00:18:19):
to clean the streets,

(00:18:21):
to organize,

(00:18:21):
to protest.

(00:18:22):
This concept of getting together physically is innate in all of us.

(00:18:28):
So that’s where the magic happens.

(00:18:30):
You can supplement online,

(00:18:32):
certainly,

(00:18:32):
if we have these great tools,

(00:18:34):
but so much more happens when you’re physical.

(00:18:37):
When you can actually see the person in real life rather than a flat screen.

(00:18:41):
And all the conferences I’ve been to,

(00:18:43):
I see this,

(00:18:45):
you know,

(00:18:45):
I see people see developers in the corner with their computers open,

(00:18:48):
they’re hacking on something,

(00:18:49):
they’re asking questions,

(00:18:51):
and they’re making such progress on things for being immediately there.

(00:18:55):
And so when you’re doing community development work, it’s not like you have to teach this.

(00:18:59):
It’s just innate.

(00:19:00):
You facilitate,

(00:19:02):
you have events and you build websites,

(00:19:06):
you give people ways to contribute,

(00:19:08):
things like this.

(00:19:09):
You’re facilitating,

(00:19:10):
but I’ve never had to actually explain why do this,

(00:19:13):
except maybe to management that actually wants metrics on this stuff.

(00:19:18):
This goes back thousands of years.

(00:19:20):
So it’s really good to hear that you’re contributing to communities and

(00:19:23):
contributing code and presentations and things like this.

(00:19:26):
What about the technology?

(00:19:28):
Why Java?

(00:19:29):
I always ask this question to people and I get a lot of the answers are the same,

(00:19:33):
but a lot of them are different because people use Java for different reasons,

(00:19:37):
different industries and different applications,

(00:19:39):
things like that.

(00:19:40):
So what makes Java special for what you do?

(00:19:43):
it all started for me 20 years ago and it’s just like the the language that i first

(00:19:50):
used because it was so so popular already back then and then i had like the

(00:19:56):
opportunity to move to something different if i wanted to but i was like never

(00:20:03):
really interested to go outside of the jvm at least i did i did a bit of c and c

(00:20:07):
sharp but it was just like because i had to and because i was interested but

(00:20:12):
I also think that once you start building some skill and some knowledge and you’re

(00:20:19):
starting to master an ecosystem,

(00:20:22):
it can be complex if you want to be productive too outside of it.

(00:20:25):
So there is a bit of that.

(00:20:27):
So I have a very limited knowledge about the other ecosystems to have an opinion of

(00:20:34):
whether Java is better than Excel.

(00:20:37):
um whatever other like um differences they may have but what i really like about

(00:20:43):
java is the the community the choice that you have like if you want to build

(00:20:49):
something you don’t have like one way of doing it and you don’t have like one

(00:20:53):
philosophy of doing it.

(00:20:55):
We talk again about the Spring framework.

(00:20:57):
It has an opinionated view on things,

(00:21:00):
but also offers you a lot of different options with a programming model.

(00:21:04):
So if you don’t like the programming model that Spring has to offer, then perhaps it’s not for you.

(00:21:10):
But that’s okay, because then you have a bunch of other options.

(00:21:14):
I’m not sure that all the other ecosystems have that.

(00:21:18):
and the other thing is like strangely enough and that’s that might be because i’ve

(00:21:23):
been on the pmc of maven for so long is like build tools seems to be quite a bit of

(00:21:29):
a mess in other ecosystems that i know of a bit and i i like the the getting

(00:21:35):
started experience that you can build with java and it’s it’s been improving it has

(00:21:40):
been nothing but improving i think that’s great

(00:21:43):
You’ve really noticed an evolution.

(00:21:44):
I mean, 20 years is a long time.

(00:21:46):
And Java is, I mean, I used to work at Sun.

(00:21:49):
So I got a lot of old Java friends that go back 20 years.

(00:21:53):
I mean, that’s almost the beginning, really.

(00:21:55):
I joined Sun in 2000.

(00:21:55):
So it was already going by then, but it was just a baby.

(00:22:00):
So you say things are improving.

(00:22:02):
What other observations do you have in terms of the evolution since you got involved?

(00:22:06):
And also the community as well, because the community and technology are tied here.

(00:22:09):
i mean this this whole evolution has been happening together so it’s the on the jvm

(00:22:14):
itself on the language itself it’s been like quite conservative for a while like

(00:22:22):
making sure like full backward compatibility and being really taking a lot of time

(00:22:27):
to design things in such a way that in it won’t break existing use cases like the

(00:22:32):
the craft that they’ve put in lambdas for instance is

(00:22:35):
really amazing what they’ve done to make sure it stays backward compatible this way.

(00:22:42):
And then let’s say the time, the rate at which we get new releases change drastically in recent years.

(00:22:50):
And with the

(00:22:51):
The preview,

(00:22:52):
the ability to give feedback on preview features and have them change in a

(00:22:57):
non-backward compatible way,

(00:22:59):
but for the purpose of building a strong LTS.

(00:23:03):
Recently,

(00:23:04):
the work on GraalVM,

(00:23:05):
so the ability to run your Java applications as a native image,

(00:23:11):
it’s mind-blowing what they’ve done.

(00:23:13):
I’ve actually spent a lot of time the past three years working on that in the

(00:23:19):
Spring ecosystem together with the GraalVM team.

(00:23:22):
We’re like a small team making sure that Spring apps can be GraalVM compatible, if you will.

(00:23:29):
GraalVM aware is probably a better term for it.

(00:23:32):
So it’s like you get all this knowledge and the basic knowledge about the language

(00:23:37):
and what you can do and you build an app and you run a test and that stuff.

(00:23:42):
And you can see like stuff being added on top of it, which makes sense.

(00:23:46):
It’s not like you need to relearn everything.

(00:23:48):
It’s like something new that builds on top of strong foundations.

(00:23:52):
And I see a bit spring a bit like that,

(00:23:55):
too,

(00:23:55):
where we try to make sure it’s kept consistent as much as we can.

(00:24:00):
and the community grow i mean we could also see that because we we have a way to

(00:24:06):
get started with spring where you go to a website and then you you select the

(00:24:10):
technical stack that you want there’s a bunch of options then you you get a

(00:24:15):
zip file with your favorite build tool and some opinions from the spring team.

(00:24:20):
So it’s a way for you to get started with the best possible getting started project,

(00:24:24):
if you will,

(00:24:25):
or as best as we can.

(00:24:26):
Let’s put it like that.

(00:24:27):
And so we get statistics about how many projects are created and all that stuff.

(00:24:32):
And the growth is really, really phenomenal.

(00:24:35):
Very active ecosystem.

(00:24:36):
And for that alone, it’s worth sticking to it.

(00:24:40):
So it seems like,

(00:24:41):
and this is consistent with other people that told me as well,

(00:24:44):
it seems that getting involved.

(00:24:46):
So if I were young,

(00:24:47):
you know,

(00:24:47):
sort of deciding what I want to do,

(00:24:49):
getting involved,

(00:24:51):
the on-ramp is easier now than it was 20 years ago.

(00:24:54):
Yes, indeed.

(00:24:55):
It definitely is.

(00:24:56):
I mean,

(00:24:57):
SourceForge back then was nothing wrong with SourceForge per se,

(00:25:00):
but it was a bit more confidential.

(00:25:02):
Whereas as a developer,

(00:25:04):
you create a GitHub account and then you have access to those gazillions of tools.

(00:25:09):
And there is this consistency about getting the code and

(00:25:14):
somewhat consistency on building it because you don’t have like an end script with

(00:25:20):
custom tasks where you have to read through the build file to understand what the

(00:25:24):
name of the task you should invoke.

(00:25:25):
There’s some standards now or some standards, I should say, to actually get started.

(00:25:32):
And it goes even further, like where you can

(00:25:35):
directly clone some code directly to your IDE.

(00:25:38):
So in terms of getting started, it’s so much better now.

(00:25:43):
And the other thing is, we’re talking about GitHub, but there are other platforms out there.

(00:25:48):
But again, you don’t have like 30 different platforms.

(00:25:51):
You have the big ones where most open source is operating.

(00:25:55):
And they work really hard to make sure it’s easy to use.

(00:25:59):
And the outcome is that more people can contribute, which is great.

(00:26:02):
We also have something that we’ve put on the Spring team for a while is what we

(00:26:08):
call ideal for contribution.

(00:26:10):
So when we find either when someone reports an issue that we feel is easy enough

(00:26:16):
for a first timer to pick up,

(00:26:18):
or when we find an issue in the code base or in the documentation or whatever,

(00:26:23):
rather than fixing the issue ourselves,

(00:26:26):
we create an issue with a lot of detail about

(00:26:29):
This is where you can find the code.

(00:26:31):
This is how you build it.

(00:26:32):
This is the problem.

(00:26:33):
Here is a solution.

(00:26:34):
So we provide a solution in the issue itself.

(00:26:36):
Usually it’s like in the form of pseudo code.

(00:26:39):
It’s not like you need to add this to that line, but it’s close to it.

(00:26:43):
And we put the idea of contribution label on the issue.

(00:26:47):
And our idea is that you can pick that up on me if you’ve never contributed to open source before.

(00:26:54):
And those who are interested, we help them in the way.

(00:26:57):
Sometimes they have questions because they’ve never used GitHub before.

(00:27:01):
So we do send a link on social media about the issue saying,

(00:27:05):
if you’ve never contributed to open source,

(00:27:07):
please give that a try.

(00:27:09):
And it’s highly popular.

(00:27:10):
Usually by the time it’s posted, within a few minutes, someone is claiming the issue.

(00:27:16):
It’s almost like this sounds like almost like a mentorship program where you

(00:27:20):
basically you’re you’re providing someone,

(00:27:23):
you know,

(00:27:23):
step by step guidance.

(00:27:25):
Obviously,

(00:27:25):
it’s well documented,

(00:27:26):
but it seems like you’re engaging them personally as well in terms of directly

(00:27:30):
engaging them.

(00:27:31):
And they’re going through the process to actually do a contribution.

(00:27:34):
That’s mentorship.

(00:27:35):
That’s incredible.

(00:27:36):
Yeah,

(00:27:36):
because the costs on our side,

(00:27:39):
I’m not talking about cost,

(00:27:40):
but the time we have to spend is relatively low.

(00:27:44):
But the fact of growing our community is super important to us because those new users,

(00:27:50):
they may use the project more,

(00:27:53):
they may find issues and contribute them in the form of an issue report or in the

(00:27:57):
form of a code change.

(00:27:58):
It doesn’t matter.

(00:27:59):
In both cases, it’s important and interesting for us.

(00:28:02):
That’s fascinating.

(00:28:03):
That’s really cool.

(00:28:04):
You mentioned something I want to follow up on in terms of the sort of the ease of

(00:28:08):
use or it’s easier for young developers to get involved now because of all these

(00:28:12):
great tools.

(00:28:13):
And the technology has advanced, obviously, significantly.

(00:28:17):
As a result of that, do developers work differently now than they did when you started?

(00:28:22):
In other words,

(00:28:22):
is it when you’re writing applications or solving problems or is the thinking

(00:28:26):
process changed?

(00:28:28):
Is the workflow changed?

(00:28:30):
Are developers now the younger ones that you see?

(00:28:33):
Are they similar to the ones, say, 20 years ago when you learned?

(00:28:36):
In other words, have the tools changed how you work?

(00:28:39):
Yeah,

(00:28:40):
it’s hard to say because the only opportunity I have to see if someone is young is

(00:28:45):
at the conference.

(00:28:46):
You can’t really spot that.

(00:28:48):
I mean, young or like started working on that subject recently.

(00:28:52):
You can’t really see that through the issue tracker.

(00:28:55):
But the fact that we have more tools like Stack Overflow being one of them, now it’s a GPT.

(00:29:01):
The fact that we have more tools means that there might be less of actually

(00:29:06):
thinking about the problem,

(00:29:07):
but more research for a solution that must be as quick as possible.

(00:29:12):
I remember when I started being stuck for days on whatever the issue was.

(00:29:17):
I can’t remember now.

(00:29:18):
It was related to deploying a WAR file somewhere.

(00:29:21):
I was stuck on it for days and it felt so frustrating.

(00:29:25):
But when I found out the issue, I was really happy about it.

(00:29:28):
And I wonder if we are in the same like those who start now enjoying that as much as I did.

(00:29:35):
Why?

(00:29:35):
Because it’s more readily available now?

(00:29:37):
You know the answers?

(00:29:39):
yeah that and and maybe also easier because back then you didn’t have as many

(00:29:45):
developers going through issues reporting issues and things being improved and also

(00:29:49):
you had a lot of closed source we forget about that but back then you had a lot

(00:29:54):
like server deployment being completely closed source and if you wanted to

(00:29:59):
understand why that server behaved in a certain way the commercial support was

(00:30:03):
pretty much in the only way all debugging things yourself

(00:30:06):
I’m just fascinated by how tools affect behavior.

(00:30:09):
I used to be in the construction business long ago,

(00:30:12):
and it mattered a lot what tool you used and what you could do with that tool.

(00:30:17):
And when I got into software, I immediately saw the parallels to the construction industry.

(00:30:23):
I mean, it’s so clear.

(00:30:25):
Even some of the terminology is the same, for goodness sake.

(00:30:27):
Okay, so where do you go from here?

(00:30:29):
There’s a big conference where you are right now, right?

(00:30:32):
DevOps is going on, I think, this week.

(00:30:35):
Yeah.

(00:30:35):
I’m going there tomorrow.

(00:30:36):
There’s actually a buff session where some members of the Spring team will be around to answer questions.

(00:30:44):
So that’s really great because then you get a room hopefully full of people like

(00:30:50):
asking questions about what we’ve done recently and wondering what’s going to

(00:30:54):
happen next and an opportunity also to get good feedback.

(00:30:58):
Yeah.

(00:30:58):
Great.

(00:30:59):
And also an opportunity to meet some of my team mates.

(00:31:03):
Yeah, some of my teammates will be there, too.

(00:31:05):
I won’t be, but some of my teammates will be there.

(00:31:07):
Yeah, I saw some picture this morning.

(00:31:09):
So say hello to them tomorrow when you actually when you go.

(00:31:12):
OK, so we talked about the community.

(00:31:14):
We talked about the technology.

(00:31:15):
We talked a little bit about you.

(00:31:16):
I’m fascinated by some of the things you’ve said about actually how you work and

(00:31:21):
how you think and how you learn.

(00:31:22):
This is a personal thing of mine because I had lots of learning disabilities when I was younger.

(00:31:26):
So I always seek out people who learn complex things because it’s like, how did you do that?

(00:31:33):
teach me how to do that.

(00:31:34):
I observe these people very carefully, read books on them and everything.

(00:31:37):
Is there anything else that you want to leave us with here to wrap up?

(00:31:40):
Yeah.

(00:31:41):
I mean, it’s been like 10 years on the spring team.

(00:31:44):
10 years is a lot and also not really.

(00:31:48):
I was like,

(00:31:48):
before I joined the team,

(00:31:49):
I was more like,

(00:31:51):
you know,

(00:31:51):
going from job to job every two or three years because I couldn’t find my place or

(00:31:57):
I didn’t like how things were organized or whatever the reason might be.

(00:32:02):
the spring team and I hope it will continue for a long time.

(00:32:06):
That’s great.

(00:32:07):
I think I’m really happy for you.

(00:32:09):
I’m really happy to hear that because it is hard to find a good team.

(00:32:14):
You can go decades with that.

(00:32:16):
It’s this bad team, bad team, bad company.

(00:32:19):
Someone gets bought out, a company crashes, whatever the situation is.

(00:32:23):
I was very lucky.

(00:32:24):
I worked in Solaris for 12 years or something like that.

(00:32:26):
And that was Solaris Engineering.

(00:32:28):
It was my first engineering organization that I worked in.

(00:32:32):
And it set a very high standard.

(00:32:33):
I didn’t know what…

(00:32:35):
It’s not like I worked in four or five engineering organizations before I got to Solaris.

(00:32:39):
I thought Solaris was normal engineering,

(00:32:42):
and I came to find out years later that it was slightly high-end.

(00:32:45):
A lot of the development method,

(00:32:48):
all the code reviews,

(00:32:49):
the meticulous nature with which they evolved that code,

(00:32:53):
not breaking things that go back 20 years,

(00:32:56):
really,

(00:32:56):
really meticulous.

(00:32:57):
And, you know, the Java…

(00:32:58):
engineering organization has a very similar mindset.

(00:33:00):
I just find that fascinating.

(00:33:02):
So, all right.

(00:33:03):
Well, Stefan, it was great talking to you.

(00:33:05):
It was great meeting you.

(00:33:06):
And maybe we will meet at a conference someday.

(00:33:09):
I’ve been to Belgium once.

(00:33:10):
I was there for FOSDEM a couple of years ago, a few years ago, I guess.

(00:33:14):
Great conference, really great atmosphere there.

(00:33:17):
And so maybe I’ll get there again.

(00:33:19):
And if I do, I’ll give you a ping, let you know.

(00:33:22):
Maybe we’ll have a cup of coffee or a beer or two.

(00:33:25):
I hear that’s famous there.

(00:33:26):
Thank you very much for having me.