Duke’s Corner Podcast with François Martin, a full stack developer from Switzerland who loves teaching Java to students and contributing to the Java community. This conversation ranges from teaching students Java from scratch, the value of test driven development, the lessons from NASA's Apollo project, the benefits — and surprises — of contributing to open source projects, and so much more. Even open source marketing and The Cluetrain Manifesto came up! François is passionate about coding in Java and sharing his experiences with other developers at JUG meetings and conferences. Java was the first language he learned and that seems to made all the difference in the world.
Interview Archive
Transcript
Francois, Francois Martin, welcome. Welcome to Duke's Corner. Yeah, welcome, Jim. Thanks a lot for having me here. It's great to meet you. We're actually meeting here for the second time. You and I met virtually, let's see, when was like, I guess it was about a month ago on a community call with Bruno Souza's community in Brazil.
0:18
Exactly, I think one or two months ago, yeah.
0:21
Yeah, I really enjoyed that. That was like almost three hours. I think I wrapped up at three o'clock in the morning my time. But it was great. We had a lot of conversations with the community down there. And you were there, but you're in Switzerland, right? So what's up with that? You joined Bruno's...
0:37
Brazilian call, but you're in Switzerland.
0:40
Well, actually, he has two different calls. And, you know, I joined the one that is in the European time zone and there is another one that is in the Brazilian time zone. So another one in the Brazilian time zone is at 2 a.m. in the morning. So I'm not sure if you participated in both or.
0:54
No, I just did one.
0:55
I just did one.
0:56
Ah, then it was in the European time zone. But there were a lot of Brazilian people as well because, you know, they're really eager to see you. Oh, cool. Yeah, it was great. This was kind of a compliment for you.
1:05
Oh, well, that's very kind. Thank you very much. I mean, I think it was about 20 or so people and I was really happy with it. I was a little nervous, but I'm not used to being asked questions, to be honest, right? So usually I'm on this side. I can present simple things, community things.
1:22
I can present and I can do interviews, but being interviewed is a totally different skill. True.
1:30
I have to say, you didn't seem nervous at all. I have to say, I know what you mean. I've been starting to interview other people as well a little bit, and I know what you mean. I was kind of surprised.
1:40
I was really flattered as I got a lot of compliments by others at how good I was at interviewing others, which I really enjoyed, of course. Good.
1:48
Good, excellent. So you're a full stack developer and you're in Switzerland. So yeah, let's talk about what you do. What's up with full stack development these days in Switzerland?
1:59
I have to say it depends on, you know, I feel like in full stack software engineering, there are quite a lot of different kinds of people. There are those people who... They just do strictly the front-end and the back-end. This is kind of like, I think, what the traditional meaning of it is.
2:13
But in my case, I kind of expanded a little bit further. And to me, it goes towards being interested in a lot of topics that a lot of people may not be as interested in, like testing, performance, security. deployment, monitoring operations, you know, things like this. So in this regard,
2:32
I kind of consider myself to be a full stack dev, you know, really from all kinds of corners, I would say. I don't meet that many people that go that as far as I do, but I would say, you know, it doesn't really matter.
2:45
It's just that I have a lot of interests and this just happens to be why I have so many things that interest me. I kind of like to do a lot of different things and this makes it even more enjoyable for me.
2:56
Cool. Interesting. Well, on that call, on that Brazilian community call, one of the things you said that is that you were a teacher or at least had taught at a certain period of time than university students. And I'm really interested in this. So let's talk for a few minutes about your teaching experience because – I mean,
3:15
I talked to a lot of advanced developers now who might be, say, in their 40s and 50s, and they learned a certain way versus how you would be teaching a 20-year-old today. It's a totally different world. I mean, that's like 40-year difference, right? So talk to me a little bit about teaching Java or teaching computer science or
3:34
whatever it is that you taught, right? What was that experience like?
3:37
Sure. Yeah. So yes, that's correct. So I was teaching university students. I was doing two courses. One of them was I was teaching specifically university students that just started out and we had two variations of the same course. We had one variation where it was for the more advanced students, which I didn't teach, you know,
3:57
for the ones that already programmed before and for the ones that have next to none or no programming experience. Those were the ones that I was teaching. And I have to say it was really, you know, a cool experience. It was the first time I was teaching people from scratch to be able to code.
4:12
And we were also using Java, by the way. So we were teaching them in Java. You know, me having worked with Java almost my entire life or, you know, really for most of it, Java itself wasn't a problem. It was more like getting to know how to teach in the most effective way.
4:29
I feel like I had maybe less of a hard time with that because I was already giving talks at conferences. So this kind of helped me because I had this experience. But still, what it really helped me with as well was, you know, I had a little bit of this stage fright, which probably most of us have,
4:45
I think. But it kind of helped me get rid of that in a way, which was like a nice secondary benefit, I would say, because I was in front of students every week. But it was really interesting and I loved doing it. You know, I feel like as well,
4:59
that's from my perspective and also from what my students told me. I was able to teach Java quite well to people that never coded before, especially because I remember when I was learning to code in the beginning, I was in the same place. I was studying and that is how I learned Java through those courses.
5:19
And I know how it felt to never have programmed before. This was kind of something that I always got told by my students. They were telling me, oh, you know, it's so great that you still have somewhat of an understanding of how it feels to not understand everything instantly. And also I have to say,
5:35
I wasn't the best student back then, especially in the beginning, because I was really struggling. It was very hard for me. And I remember I was, especially in the beginning, I didn't have that good grades. And I always told my students, you know, when they were feeling really let down, I told them,
5:51
you have to realize I back then was just as you. I never coded a single line of code. And I also really struggled, but I persevered through it to see where I am now. And I'm also not shameful for telling them that I really had bad grades. You know, I told them, you know,
6:07
in my first programming course, the one that I'm teaching to you now, I just had a barely passing grade. which kind of is insane to believe if you're looking at it now. But I feel like this kind of really motivated a lot of students to see that, you know,
6:21
even if you are struggling and if you are not the best student, you can still make it through it. And I was especially glad to see that there were students that started out really struggling, but to see how much they worked for it and how much they improved and seeing, you know, I mean,
6:35
there are always those students that are great from the beginning. But I find it even more interesting when I have a student that, for example, struggles a lot in the beginning and they make a huge leap in terms of the grades, for example. Or you notice how, you know, for some people, it just clicks in a way.
6:51
And then it, you know, they start to understand it. And I find this to be a really cool moment. And I also love supporting the students that struggle. And, you know, especially since I was in the same situation before.
7:03
I totally agree. That's really interesting because when I was young, I struggled too. And I remember taking classes. Well, I struggled with everything, but let's just focus on the computer stuff. I took a class in C and I remember I really liked it, but I can do the simple stuff really well. And I liked the conversations.
7:25
I liked working with You know, my peers solving simple problems. But when it gets complex, you know, when the problems got like toward the middle and the end of the year, when the problem sets got to be more complex, I couldn't handle the math. And I was very, very frustrated. But I got through it okay.
7:41
I got to be, I think, in my first C class. And I took some earlier classes as well, you know, Pascal and basic and stuff like that. And then I took C++. And what a nightmare that was. Oh, my God. I just fell on my face. I just could not handle. C++.
7:57
I don't know whether it was the teacher or just the structural language or whatever. So I totally know what you're saying. As a result, I've always been interested in learning technologies, tools. Back then, we had no tools. I was just staring at a SparkSong workstation, just a blank screen with a cursor blanking.
8:17
No IDEs or anything like that. That's a while ago. But I'm always interested in how students learn Java now, you know, in this time period, because it's a very different world. They are already familiar with so much technology. And they have really great tools now.
8:35
On the other hand, there's a lot to learn now as opposed to 20, 30 years ago. So do you think from your experience learning versus how you're teaching, what do you think the delta is? What do you think the difference is between how you learned when you were younger versus how they're learning now?
8:53
I would say it's quite a bit different, but in a good way, I would say. Because I remember when I started out, we were just coding in the IDE and every time we needed a library, we just pulled it in as a jar file that we put into a folder and used it this way. However,
9:11
now that we have already back then you had build tools, but back then they were kind of, at least at our university, they were not really considered to be simple enough to be manageable by the students. So we didn't use them. But of course, you know, we managed through it, right?
9:26
But this is maybe one change I see that now we are using build tools as well. So like Maven and Gradle that you can use and that does make the setup much easier. You know, so students, they can start out really easily. And also we are using Git now, which we haven't been using before.
9:42
Before, we just had our own projects. And when we wanted to get some feedback from the teachers, we had to send it to them by email or something like that with the code. which now is, you know, was much nicer of an experience because they could just, you know, submit, you know,
10:00
push their code and then they could, you know, let me know in a chat, you know, just please have a look at my code. I'm struggling with that and that and whatever. Or, you know, it was much easier for me to get the context this way when somebody had a question.
10:14
which is maybe also another change, I feel like. Back then, the only real way we were interacting with the lecturers was via maybe email, but we weren't really conversing with the lecturers via email. It was mostly official information that was coming from the lecturers. But that also changed more in the way that For example,
10:33
now we embrace more the chat functionality where I feel like it's also for students, they feel less. I feel like for emails, you kind of have to, you know, it feels a bit different than having just a regular chat. If you have an email, you have to, with a chat,
10:46
you have less of a barrier compared to email, I would say. Yeah, yeah. it's much easier for them to reach out. And I feel like they are using it, which I really like because I prefer them reaching out to me. I always told this to my students, you know, I prefer, you know,
11:00
before you waste hours on end, you know, on a simple problem to just message me and I'll get back to you. And, you know, maybe I'll let you know, you know, what, you know, you know, some information that you can make use of to help you out so that I can unblock you in this way,
11:15
because I don't want them to get frustrated, you know, I feel like it was kind of an advantage having been a student back then and having had some of those frustrations and being able to kind of, you know, because I also always thought about things that I could do to make it easier for the students. Like,
11:33
for example, one thing that I suggested to my university already when I was still studying was to maybe try starting with, you know, a build tool. And this is something that they now implemented. I'm not sure if it was due to my feedback, but you know, it's still great to see.
11:48
And also one of them was test-driven development, which we actually kind of are doing now, which is really useful in my opinion. So in the beginning they get some Hello World example, of course we don't, but otherwise it's really useful because when we give them exercises,
12:03
usually we give them a unit test in the beginning and then they can code and then they can run the unit test and they can see if the code works that they have written. I remember in my time, it was a bit more difficult because I mean,
12:16
we did have like a solution that was provided to us by the lecturer for each of the problems. But as the nature of coding, especially if you are in the beginning, you are not really able to tell if your solution is different, which happens very quickly in coding, even if the problems are very simple.
12:32
You're not really able to tell sometimes, at least that's what my experience was, if the solution is correct or not. And then you had to go to the lecture and then maybe they didn't have time for it or whatever. And now I really like this quick feedback loop that they are having,
12:47
which I feel like they also told me that they enjoy. And then by the middle or towards the end of the semester, it kind of changes a bit. We show them how to write the tests themselves. And then they are able to write tests by themselves. And in the live coding,
13:01
we also go by the approach of writing the test first and then writing the code afterwards and so on. And also we started doing exams now, for example, that are on their own laptops as well, which was something that was new. I still had to write my answers with a pencil on just paper. Yeah.
13:22
And now it started to change and there we usually also provide tests to the students, which I feel like is also very useful for the students to see did they already solve the problem in a sufficient way or not, which I feel like is a really cool way for the students to get instant feedback.
13:38
And it makes it, of course, closer to the reality, which I think is also a very important aspect to me. And I'm really grateful that they started implementing those things. And that's also why I definitely did those things. And I think it has really gotten better a lot with all of those aspects.
13:54
That's really cool. I'm really glad you mentioned test-driven development. I was just talking just a few days ago to Venkat Subramaniam, and he talks about test-driven development all the time and how important it is. And I did a whole podcast with Ted M. Young from San Francisco Bay. I think it's in Silicon Valley.
14:13
And he's a Java developer, and he focuses on test-driven development. And I didn't realize that it was the test first and then the writing of the code. So it's a different way of thinking about When I was at Sun years ago, I was on the Open Solaris project, and the team I worked on,
14:30
one of the teams I worked on, was the test team. So I was hanging out with test engineers. These are developers who are building test suites for Solaris.
14:39
Mm-hmm.
14:40
which is a very big piece of software, obviously. And so these tests are very, very sophisticated. And sitting in these meetings, I really became super appreciative of tests. And it makes sense. I mean, this is just basic science here. I mean, you're testing a hypothesis, essentially. I mean, you have something, you're testing it.
15:04
And so you got some code, that's your hypothesis, and you're going to test it. It's a very simple way of thinking. But boy, those meetings went on and on and on. And the sophistication and the ramifications of testing Solaris and Java is no different. I mean, I was talking to some of the test guys in India, actually.
15:21
And it was a similar team that I used to work on. I just really appreciate the mindset of the test engineer. I don't know why. It just really struck me. And so I'm glad you brought test-driven development up. And I think that's very important because it's important.
15:37
Ted was actually talking about that not a lot of kids learn this. So that I think is really good that you were into that and you were suggesting that and you were using it. That's really cool.
15:49
I agree with you. I know what you mean. It's interesting that you mentioned this scientific aspect. I never have seen it that way, which is kind of interesting. The only perspective I was kind of seeing there was that I remember my fiance, she also was interested to get into programming and she was trying to solve my
16:08
materials on her own that I gave her from my classes that I took. And she was really struggling. And I remember at some point I kind of realized she was especially having trouble realizing what am I kind of giving into a method and what do I expect back from it? You know,
16:26
like it wasn't really clear to her how she would need to structure the code, how she should start, you know, kind of she, you know, she stared at her screen and she was not sure how to continue. And I kind of thought, you know, as an experiment, I was like, you know,
16:40
maybe I'll try showing her test-driven development. You know, it was a bit weird at the time because, I mean, they didn't do it at university because they considered it to be too difficult. But from this experience, this was kind of what made me suggest it actually, because she was in the end really successful with that.
16:59
So she, as soon as I've shown her test-driven development, She suddenly started to be able to understand it much better just because before she actually started implementing something, she was able to focus on first thinking about, you know, what do I expect to take in and what do I expect out of it?
17:16
And this really helped her shape the implementation a lot. I was always thinking more about this aspect, which I feel like really also helped me in a way. And you're right, it's really unfortunate that many don't learn this very early on. When I first started studying, I remember there was a class that I had,
17:32
which was called Software Engineering Basics in a way, which wasn't about programming strictly, but about, you know, methodologies and software engineering and so on. And, you know, the last part of the lecture was writing tests. And this was something that really interested me. And they introduced me to test development kind of the first time, but I remember
17:54
They mentioned to us, you know, like, oh, you know, it's fine if you don't understand it from now on. You know, it's fine if you don't code in Testium development style, because I have to say a lot of my peers were really struggling with it. A lot of my peers, you know, were really cursing and saying like,
18:11
oh, you know, I don't understand how to do this. You know, why would anyone want to do it this way? And I think I was the only person in the class that really enjoyed doing it in a way. Yeah, and that kind of also shaped me in that way. But yeah,
18:25
I feel like that's a good point that you brought up about this, you know, thinking about this hypothesis and then proving or disproving it. That's absolutely true.
18:34
Exactly. I mean, if you have, you know, in science, I mean, if you're testing something, if you have a hypothesis and you set up an experiment and stuff, I mean, that's a test, basically, right? And then it'd be great if somebody else could replicate that. and falsify it or confirm it.
18:50
But this whole concept of tests just seems like ramifications. If you're building a website, okay. But if you're building a navigation system for a supertanker, you kind of have to make sure things are right. I also, I don't know if you, like when you look at the NASA videos of the engineers working on the space shuttle
19:12
and the Apollo programs from the 1960s and stuff. You see this constant testing, testing, testing, this whole iterative process where you're building something and it blows up, you know, and then you got to rebuild it. Fascinates me.
19:25
Did you? I'm not sure if that is just a weird coincidence, but did you happen to watch my talk? No, no, I hadn't.
19:32
I just... No, why? So did you actually talk about this?
19:37
Yes.
19:38
Really? No kidding.
19:39
Yes. That's why I'm laughing because... You know, I remember, you know, so I gave a talk, it's called One Small Test for Men, One Giant Leap for, you know, quality.
19:52
Oh my God, that's so funny. I'll find it and I'll link to it. That's great.
19:58
Yeah, because it was, you know, really a great talk and, you know, it's totally described everything you just mentioned, you know, this iterative approach and this focus on testing and so on. You know, there I kind of, you know, looked at the document which came out after the Apollo 11 success of the mission and which was called,
20:14
you know, what made Apollo 11 a success that hardly anyone knows for some reason. I mean, also just came by it just by accident. And I looked at this document and I kind of looked at what made it a success and a lot of those aspects were actually testing, as you mentioned, right?
20:30
And it's so funny, you know, hearing you mentioned that. I'm not sure, have you seen the document yet or have you known about it? What's your talk or the other? No, I mean the document that was called what made Apollo 11 a success.
20:43
Oh, no, no, no, no. I don't think – but I've seen similar types of videos. And there's a whole bunch of books, obviously, about the engineering of these things. Yeah, so I'm sure I'll trip over it because I like these kinds of things. I like how people solve problems. That's why I'm in this business, you know,
21:01
and particularly with software because software is so flexible that – Unlike construction, I used to be in the construction business when I was young. That's also filled with craftsmen, obviously, just like software developers to me are craftsmen, craftspeople, and they're using tools. They're using their head, their hands on a keyboard, but they're interacting with a tool.
21:24
As opposed to a hammer, they have an IDE. I've seen people do some amazing things with a hammer, just a hammer and some scrap material on the construction site because it's in their head. And so I've always been fascinated with this. So that's the kind of content that I consume. So that's why I like developers,
21:43
like people like you, because I get to ask you these types of questions and I get either validation or rolling or rise, you're crazy. But no one's ever said I was crazy yet. But even though I do struggle with complexity, I'm somehow drawn to it. Maybe it's just because when things get really, really complex,
22:02
I wonder to myself, how do these people solve these problems? How do they have the mental capacity to use whatever tool they're using, but how do they have the mental capacity to go very, very deeply into thought? And find a solution and sort of hack their way to a solution. They're doing an iterative process with themselves.
22:22
They try this, try this, try this, try this. So that's what I'm really fascinated with. So for yourself, learning Java, why Java? When did you trip over Java? And then why did you stick with it?
22:38
Java was just the first programming language that we learned at university. It was the first one that you learned, really? Yeah, it was the first one, yeah. I mean, already back then we were learning Java. I mean, it was version 8 and it just came out.
22:51
I remember it was like, you know, one week before it came out. And I was really grateful that, you know, my university really tried to stay up with the trends. And so we were already using Java 8. And of course, in the first class,
23:04
we didn't really use many of Java 8's features because they were not as relevant, of course, because, you know, in the first class where you're starting to learn programming, You're trying to understand, you know, what inheritance is and all of those things. And there are many more, you know,
23:19
language features that are far more important than the ones that are introduced by Java. Not to say that Java didn't introduce any important aspects. It's just those are more advanced concepts that you won't really necessarily need in the first semester, I would say.
23:32
But the cool thing was I remember my lecturer in one of the breaks reading a book about Java 8 and trying to get educated so that in the next semester were the advanced courses that they already could start implementing some of the things and show us some of the things that were added in Java 8.
23:50
Which I really appreciate because that's also something that I often hear from others when I talk to them. They also mention to me that often universities are outdated and the lecturers don't try to keep up with the trends and things like this. So this is kind of how I got into Java, I would say.
24:06
It was difficult, but I don't think it was difficult because of Java itself per se. I feel like it was just because I was starting to learn to program, of course, right? You know, I remember, for example, struggling a lot with the type system in the beginning.
24:20
But again, not because Java has a very complex type system, not at all. I really like it a lot. It's more that I feel like I was struggling because I kind of had to learn all of those concepts first before I could really write a single line of code that made sense in a way.
24:36
And that's still something I feel like that we were discussing among lecturers. Like, do we want to maybe switch to another language that maybe requires less overhead and maybe that you can start out by not programming with types? But I always said that I kind of enjoyed having to get forced into learning them
24:56
because I feel like if I was starting out with just learning a language that doesn't have any types, then I would have trouble getting to learn all of those types because I would feel, oh, you know, are they really that necessary? I was able to get by with them. Without them, fine, right?
25:11
Why should I start to learn them now? And they kind of really forced me to understand a little bit also of how it works in the back, you know, as well, you know, in the, let's say, nitty gritty implementation details that are kind of hidden from you in most languages. Yeah.
25:27
And this was also really interesting to me, you know, to learn those things because I feel like ultimately they made me a better software engineer. Because I remember when we first started learning JavaScript and TypeScript was not really a thing back then. I remember I was kind of struggling in the other way around because JavaScript didn't,
25:47
of course, it has some sort of typing, but it's not as explicit. And sometimes there are really weird gotchas that happen that you don't know about. And I remember when I was implementing a function that incremented a date by just one day, I ended up having the experience that the function didn't work when I tried it out
26:07
in the browser. And I didn't know why, so I logged what the result was of the method and I was a bit confused when I saw that suddenly there was a number like 47,000 something. And I was like, why is there a number here? You know, it doesn't make sense. And then I thought, oh, you know,
26:23
it's like, I think if I remember correctly, the dots that I added in between to format the string into a date, it kind of then with the plus sign didn't interpret it as a concatenation, but instead it interpreted it as just taking the ASCII values and adding them up, which resulted in this huge number.
26:41
which was kind of frustrating. And in Java, this wouldn't have happened because I would have thought, you know, more consciously about the types and had to specify them explicitly. And I would be reminded by the compiler, which is another thing I really enjoyed about Java. You know, before you ran the program in a lot of cases,
26:57
especially in the beginning, of course, you will get notified by the compiler if you make a mistake. And this was also very useful, especially as we were not having any tests back then, or it was more difficult to interact with the lecturers, I would say. This made it a lot easier, especially back then.
27:15
That's really cool. That's really cool. So let's talk about the community for a little bit. Java community, I mean, obviously Java has been around for a long time. It's been constant development for 30 years, 30 years this year. Same thing with the community. Java has always been an open project.
27:31
It's many projects now, but I mean, it's always been open. And so it's always been community driven. I did see on YouTube that you have some sessions. So I have to go back and look at your moon bit. So I assume you're out to conferences and you're doing, you know, obviously you're doing the teaching,
27:48
but you're also doing conferences and interacting with the community. So what's the community like in Switzerland? I'm sure there's a jug there. And, you know, do you interact with that? What do you do with the community?
27:59
Yeah, so there is actually a jog in Switzerland. And as you can imagine, Switzerland is quite small. So in Switzerland, we just have one Swiss jog in a way. But there are two different locations where they do talks. But essentially,
28:11
I feel like the culture in the jogs is not as huge as I've seen in some of the states, for example. Like usually we only meet up for talks and not, you know, just in general, like once per month or something like that. It's really just you come together for talks.
28:26
And I feel like there are also less people that are engaged in JAX compared to the US when I think about it. But still, I feel like every time I interact with them, I always really enjoy it because usually there are people that really share something that I'm very passionate about, which is coding in Java.
28:44
And this is great because you can share it together and talk to each other. And I talk to people from the jugs, from the organizers at many conferences as well, where I have the most contact with them, I would say. But they're all very great people and I always enjoy spending time with them,
29:02
seeing what community efforts they are making. I don't remember exactly what the tool was for, but I remember that Our local job, you know, the one in Switzerland, it started to develop a tool that was also open source to make something easier. I think maybe make something easier to manage something like that. But I mean,
29:22
it doesn't really matter, but I really liked seeing, you know, they mentioned that they were working on this and it was cool. You know, they were really passionate, showing me the tool and then, you know, seeing like what I think about it and, you know, get my feedback and
29:34
I also gave them some ideas with how we could maybe help improve, you know, the community to work together a bit more on this project, for example. I wanted to actually speak at our job already last year, but we didn't manage to get it through, you know, in terms of timing.
29:51
But this year I definitely plan on doing this in one of ProLocation essentially. And it's kind of interesting also to hear because I heard that the communities are also a bit different depending on the location. Like in one of the locations, they are a bit more technical, you know, they're like more seniors, more hardcore, you know,
30:08
people that are like hardcore developers. And in the other, they are more juniors and more beginners as well, which I feel like it's really cool to see that, you know, there are also different dynamics that establish in the different communities, right?
30:21
Yeah, you get the differences in skill levels or, I guess, years of experience, but also difference. You step over the border, you go to different countries, you have different cultures. So it's always fascinating to me. But the jugs are very, very important because that's the first level of the community. Some of the jugs are massive.
30:41
I mean, you go to India, these jugs have thousands of people in them, you know.
30:46
I agree, yeah. And what I kind of like about the jugs in Switzerland actually is that, I don't know if in other countries they have a similar concept, but what I find is cool is that they kind of have like a membership where a company can get a member of a jug. And if they are doing that,
31:01
all of the people that work at the company, they also get free access to everything that the jug provides, right? by the company paying for them essentially which i think makes it a lot more accessible to everyone that wants to become a member i mean even if you don't
31:14
become an individual member i actually recently became like an individual member in addition to being like a member for my company just because i wanted to support them a bit more you know which i felt like was a great way to do this even though it isn't strictly required of course but yeah i agree totally with you
31:30
Yeah, it's a really important point you make about companies because, you know, developers will, you know, open source developers, Java developers will form groups, right? Communities, I mean, community building is inherent. You know, it's in human genes. I mean, we form groups. That's what we do. It's how we evolve. Without that, largely we die.
31:50
We are not isolated individuals. Yeah. And so we form groups, and this is how we collaborate on whatever, hunting, let's say, raising a barn while hacking on code. So this is a very natural experience. Developers will do this naturally. However, it's just smart. It's a good business sense for the company to get involved as well,
32:10
or at least encourage their developers to go form a jug and that kind of thing, spend time doing that sort of thing, because they're training each other. This is free training for the company, right? You go, I'm not so sure how to...
32:23
do this x y and z thing in java so i go to a jug and i i hang out on my own saturday and sunday on my own time right and i'm learning from these people and i'm contributing something they're contributing things and i'm building a network there
32:38
as well that helps the company because you know if the company is contributing something upstream and there's a problem you know the company maybe the managers and the executives you know they don't know who to i mean who to call but you have a relationship in
32:51
the community you know you you might be able to help something upstream i've seen this happen multiple times it's not like i'm making this up you know and so you know the executive will call the director director will call the engineer oh yeah no i can i can handle that upstream no problem
33:05
Because he has the relationship there in the community, right? This is not a secret, right? So this has real business value, especially if the company is involved in the project and contributing upstream or just involved in Java in any way, right? So it's a really, really important thing. And I know from Oracle, I mean,
33:25
I actually did a podcast on this where I was talking to the test team in Bangalore at Oracle, a very large team in India. And they do all the testing on the Oracle product. And so they also contribute to the user group. The engineers on the team go out into the community. They do presentations. They run conferences.
33:50
as well, open source conferences. And they interact with the community in Bangalore and they get critical product information directly. And so this is all very good business. This is the value. These engineers are getting direct information feedback, and in many cases, contributions. Absolute degree. Yeah, it's a big deal. And I've seen it, there's many, many experiences.
34:19
So it's really, it's just a good practice for companies to be involved in open source projects.
34:26
I absolutely agree with you. And I find it quite interesting as well that you mentioned this aspect about this not being a secret, which I totally agree with you. But I'm always a little bit surprised when I talk to certain people how this kind of seems like a secret to them. I know. Even after all these years.
34:44
Yeah, right. I mean, you know, to me, it's not really surprising, but it's always surprising to me how many people they still don't know about them. And I feel like every time I tell them, they really are very interested in it. And this is, I think, a great sign for sure.
34:58
And I feel like it's definitely a great strategy where companies get like a membership at the JAG and then all of the people that work at the company immediately also get the membership in this way and they can participate. Because this way they can also have all of their engineers educate themselves.
35:14
And this also helps the company in turn, not even just for the relationships, but also, of course, I mean, you hear talks there and you talk to people and then maybe exchange ideas on how to solve a problem or You learn some things by talking to other people and then, you know, oh, you know,
35:31
this is a great way I could solve this problem I never thought about. And also maybe you learn about some people that are specialized in a certain field and then, you know, ah, you know, those people, they know this very well. So when I have a problem with that at work, I know who to call, right?
35:46
It's the same thing you mentioned, right? So...
35:48
Absolutely. And you see this in conferences. And a lot of the jugs, particularly in Europe, a lot of the jugs have been around for a long time that they now run annual conferences. Some of the really cool conferences in Europe are run by Java user groups. They were founded, basically, by user groups.
36:05
That's how important user groups are. But you see this in the hallway track all the time. You see people hanging out on the floor, laptops out, talking. And sometimes they're coding together, sometimes just talking through problems. Just that human relationship is very, very important. We can't work – again, we can't work in isolation.
36:26
And a lot of times working behind the firewall is in isolation. You need to get out. You need to get face-to-face interactions with people in the community.
36:35
Totally agree with you. I think technically you could work on your own, but, you know, at least for myself, I wouldn't want to because I just prefer working together with others. I feel like always when I work together with other people, the result has gotten better than what I could achieve on my own.
36:51
And I feel like this is a very important reason why you should do this.
36:54
Yeah, and I also, I mean, I've worked in six different industries. And this is the only one that has at its foundation collaborative development. Even if you're working on, even if you're an engineer in a closed source company, you're working on a product, there is a certain amount of collaboration that comes with just software engineering.
37:13
But open development is a little bit different because it's obviously global and you're scaling across many, many firewalls. True. But not all fields have this. And when I talk to some older friends that I've had from previous industries and I describe what an average software developer is doing in these open communities like Java,
37:35
they just have no idea sometimes. It's really interesting to me because I've been here for so long that I take it for granted. Yeah. I see what you mean. I was watching his presentation once. The video is online. I can't think of the guy who did it, but it's not that old.
37:53
It's about, is software development actually engineering or something like that? I thought it was a really great presentation. He actually brought this issue up of other engineering fields looking at software development. One of the things they're very jealous of is that software developers have Like version control?
38:13
Version control.
38:14
Version control. Which I think is rocket science, by the way. How you manage all those different versions, all those developers. Yeah, they have version control. And other engineering disciplines don't necessarily have that. Unless there's a software component to it, obviously. But I thought that was fascinating.
38:30
But again, I've been here for so long that I don't have the perspective outside here. Maybe I should go into a different field at this point. Yeah.
38:38
Maybe, I don't know. But yeah, I totally see what you mean. I feel like this is what happens with time. And I'm kind of glad that I was still able when I was giving lectures to understand how the students feel, because this is something I kind of feared, you know,
38:53
that maybe I would be too far away from it already, that I would not be able to relate with them enough anymore. But I was kind of glad about this aspect. I feel like it still is just because I came from a different field and changed into IT and I was struggling so much because, of course,
39:10
struggling isn't great in a way. But on the other hand, I kind of liked that I struggled because it was so much more memorable. And for example, this also led me to collaborate with others, to form groups, to learn about different things, to you know, explain to each other different concepts like, you know,
39:29
sometimes maybe I understood something and a colleague of mine understood something else and then I was able to talk to them and then you made also friends this way, which was also a good experience, of course. And I remember there was one time we just started learning streams and lambdas at the university.
39:46
I have to say, I'm not sure, you know, I wouldn't put the blame on the lecturer. I mean, I also just struggled a lot, you know, as I mentioned earlier. But I was really struggling with learning streams and lambdas, and it was really difficult because you couldn't find that many things online.
40:02
Since Java just came out so recently, Java 8, there wasn't that much information on it. But I remember there was a talk that was posted online from Venkat about this, or like two or three talks maybe, and I'm not sure. these were the ones that really helped me out to understand it.
40:17
I remember us sitting in the room, like three people in our small little study group in a way, and we were just listening to his talk and then suddenly it clicked in my head and then I was standing up, I went to the whiteboard,
40:31
I explained to the other students in my group how it worked and this was really a cool moment like this. I'm glad I was able to meet Venkat like two years ago at the workshop days in Switzerland, which is about doing workshops, which he always joins every year.
40:49
And I remember I was really grateful being able to talk to him and just thank him for this because he kind of saved me in a way because I was really struggling so much. And just by watching those talks, it really helped me out a lot,
41:02
which I think is also a reason for why it's important to give talks about things because I also had a discussion with Venkat about that. We were discussing about a talk that I was preparing, which was about micro benchmarking in Java and performance testing and those kinds of things.
41:19
And he said, oh, you know, this is a very interesting topic. Maybe you should write a book about it. And then I was kind of surprised. I was saying like, oh, are you sure? Because I mean, nobody knows me. Why should I write a book about this? You know, and there are already books about this out there.
41:36
And then he mentioned to me this analogy, maybe you've heard about this before, I'm pretty sure, where there is at least one teacher that kind of shaped you as a person in a way in your childhood. And he said, you know, this one teacher doesn't have to be someone who is able to explain something, you know,
41:58
incredibly well or is incredibly famous or whatever, you know, a very high profile person. But it is fine. You know, it doesn't matter because in the end, it just matters that maybe they explain it just in the right way for you. And this could be different for everyone else. Maybe, you know,
42:15
half the class doesn't understand the teacher and half the class, you know, finds the teacher brilliant just because it happens to match in a way. And he told me, you know, it's still valuable for you to write a book about it because maybe your style,
42:29
most likely your style will be different than the style of other people who have written books before on this topic. And maybe it's just this exact book with your style of explaining that is valuable to other people, which I also didn't realize.
42:42
I think those are all of those aspects, which I think is so great about the community. And I don't know, but I especially noticed in the Java community, there's so many great people that I've talked to and made great relationships with, which I'm really thankful for.
42:56
Yeah, I totally agree with you. Just with Venkat specifically, he's a teacher's teacher. I mean, he genuinely believes in the concept of teaching. I mean, yes, he's obviously a professor, but he does lectures and he does workshops and stuff like that. But it goes to his heart, and you can really see that when he's interacting with somebody.
43:15
And what he told you is very real. And it's – when I do this podcast, that's how I feel about this podcast – I don't care necessarily that it's just a little podcast. But if there's one or two people that listen to your story and are turned on by what you say, then that's great.
43:36
We made a connection. It doesn't have to be... Big and grand and have all kinds of sexy things, music and graphics and all the different things that podcasters are doing. That's fine. I'm not criticizing it, but not my style. What I want to do is to have something very simple.
43:53
What I want to do is to have conversations with you, people like you, to get your story. That's all I'm interested in. When I look at how I'm motivated to go learn something, I'm seeking. And there's other people who do that too. And they come trip over this. They hear your story. Oh, I'm in Switzerland too.
44:10
I'm going to go meet this guy. You can be right next door and not even know. And then you've reached one person. That one person could be spectacular. You might have saved that person's life, right? Because in reality, I have spoken to people who have said software has saved their lives. They've actually saved their lives.
44:28
This is a big deal. Communication is a big deal. So that's how I feel about this.
44:34
I totally agree. And maybe just the style of you doing your podcast is also something that one person prefers to others. And maybe at least I prefer this more simple way. I don't like music in the background or something like that. I'm more distracted by it, I feel like. Yeah, it's really different from person to person.
44:52
And that's also the reason why I'm doing so many talks at different conferences, because of this exact thing that you mentioned. You always have some people that come up to you afterwards and tell you how thankful they are that you taught them something.
45:06
And it's especially nice for me to hear when they say something like, oh, you know, you know, on Monday I'm going to straight, going to go and implement this, you know. And this is so cool for me to hear, you know, having this impact on people.
45:20
And also this is what I liked about teaching so much because you have so many students who really appreciate you. And it's always nice getting messages from people and, you know, them telling you that, you know, you really help them out a lot. And And they may not have been, you know, at the point they are,
45:37
if I wasn't, wouldn't have been there, which, you know, is very flattering to hear and makes me very happy to hear that I was able to have such a lasting impact. And I feel like for you, probably with your podcast, it is similar, I could imagine, right?
45:49
Yeah. I'm floored when anybody says that they listen. I go to a conference, somebody comes up to me and they says, oh, I heard your podcast. Really? Somebody listened? Yeah. Because I just can't imagine, to be perfectly honest, I can't imagine anybody listening. But a certain number of people do. So it's just this very humbling.
46:14
And I try not to talk too much because I'm really more interested in hearing about you guys. Sure. All right, Francois, it's been great talking to you. I have a new friend that's great. I need more of those. And I've never been to Switzerland. I've only been to really just a handful of countries in Europe.
46:32
So Switzerland seems like a nice place, famous place to go to if there's a conference or event I can go to at some point. We'll have to get together. Is there anything that we haven't talked about that we should have talked about or anything I forgot to ask you? Anything or any final words?
46:51
You know, I kind of wanted to talk about Java Champions a little bit as well because... Oh, yeah. I remember I went through the list of Java Champions recently, and I kind of was curious to see, of course, who is a new Java Champion. Because it always happens that people already know and appreciate they just happen
47:08
to be Java Champions, and I want to congratulate them, of course, when I hear about it. I remember looking through it, and I was kind of curious. I noticed how many I knew of the list, and then I started counting them, and then I came up to, I think, around 60 people. Oh, wow.
47:23
which seemed crazy to me. I couldn't believe that by, you know, especially most of them I've known through conferences. And it was kind of surprising to me to see how many of those were Java champions. This kind of proved to me as well in a way, you know, how great the Java community is.
47:40
Because, I mean, those 60 people were people that I talked to, that I made a connection with. I mean, sure, I didn't talk to each and every one of them for like, I don't know, for hours, you know, this is for sure not possible. But still, you know, meaningful enough that I would be able to remember them,
47:53
which it's so nice to be able to know so many people. And I have to say every Java Champion that I've met so far was someone who was really passionate. It also shows how many meaningful connections you can build if you go to conferences or participate in communities, of course, in general.
48:10
And it's always great knowing so many people because I remember recently at the conference before the last one that I went to, I met someone who is a maintainer of JMH, which is a Java micro benchmarking framework. And I did a talk on how to use it and so on.
48:27
It was really interesting for me because I never met a maintainer before. And it was really cool because nobody knows the code as well as the maintainer or one of the maintainers of the project. And it was really cool because you noticed as well how passionate he was about what he was doing and so on.
48:44
And it was really cool to talk to someone who has all of this know-how and I took the opportunity to ask him, you know, if you could have a look at my talk and give me some feedback, because of course, you know,
48:54
I want to present the framework in a way that is something that helps them as well, right? Because, you know, this way you kind of help each other out in a way. And since it's like, you know, open source as well, everybody profits essentially, right? Because in the end, by making something better, it improves it for everyone,
49:12
which is something I really enjoy about open source as well in general. I remember I was in a project at the customer and we had a bug that was kind of a blocker because as soon as we deployed the application, every customer that was using the application, when they visited the website, it was simply blank. And,
49:31
you know, we got a lot of support calls from that and they were mad about that, of course, right? I mean, as customers are usually right when it doesn't work, which is definitely understandable, right? Yeah. And I remember when I investigated this a little bit, I found out that we actually or I mean,
49:48
I wasn't yet at the company back then, but they had the same kind of issue already one year ago. And I remember I really remember our project manager really well because I really enjoyed, he was the one that really made, I think he made the right decisions because he told me, you know, this is really embarrassing.
50:07
There are tons of customers that are affected by this. And, you know, the way that they need to fix this, by the way, is by just emptying their cash. But this isn't something that regular people will remember to do, right? I mean, you know, we may do this. But regular people won't do this.
50:23
And he told me, you know, this is embarrassing. This is affecting so many customers. It has happened the second time. So, you know, he said, like, you know, I won't spare any expense for this to get fixed. And it took me eventually a week to fix this, but I was able to fix it.
50:36
And it turned out it was a bug in Angular's CLI, you know, in the open source library. And there were a lot of issues related to that, even some issues where people didn't even realize that it was this exact bug that was affecting them.
50:50
And there were tons of posts and tons of comments in them where people were complaining, you know, oh, this doesn't work, you know, and then over years, like always saying like, oh, you know, this still doesn't work, you know, can somebody fix this, please? And, you know, of course, you know, me being in open source as well,
51:06
every time I hear something like this, I'm thinking, you know, you could fix it yourself. It's open source, right? But I mean, I understand it was a very complex problem in the end, but I was able to solve it and it gave me so much joy seeing that this fix not only
51:19
solved the problem for the customer that I was working for at the moment, but also for so many more people that are using it because, you know, as evidenced by the issues that I've seen, I've seen there are a lot of people that are affected by this and they are probably very, you know,
51:33
happy to see that it is now fixed. And also, you know, it's so nice that by doing something like this, you can have an impact for so many people, which I really enjoy about open source community. I feel like in other industries, there isn't like an equivalent to that as well. You know, you mentioned in the beginning
51:48
You know, that there aren't also some other equivalents in software engineering in general, but I feel like this is another aspect where this kind of open culture is also something that's not really seen in other industries, I would feel like. Or what is your experience there?
52:02
Yeah, exactly. I mean, I sometimes, like in scientific communities, I mean, I've worked at universities where I'm around scientists and PhDs and veterinarians and human physicians in different disciplines, right? And so they definitely have a culture of… collaboration in the scientific community. It's slightly different from how software engineers do it, but there's still a culture there.
52:28
In the construction business, there's a definite collaboration concept there as well. Construction goes back 5,000 years, so there's a long history there of really well-defined ways of doing whatever the discipline is, real meritocracy, which is something I really value. But in other disciplines, no. I don't find that in marketing, to be honest.
52:54
I don't find that in other things. But I will say this. When I was on the Open Solaris project, we open sourced our marketing. So we brought our marketing people, our marketing team into the community, and they functioned just like the engineers did. in an open source way. But those are people working on the open source project.
53:14
So they were doing marketing in the community and they function fantastic. But in general, marketing is more of a non-collaborative sort of a discipline.
53:23
It's true. However, an advantage about open source can be that it can be marketing as well, right? Oh, sure. Because I remember there was one project that I was working on, which was about making sure there would be a secure way to exchange encrypted, anonymized data for science purposes between universities and the people that were doing research.
53:45
And there was no standardized way to do this in Switzerland, which is why they launched a joint project between three different universities. where it was the goal or their idea was that if they find a solution that works for those three major universities, probably it will work for all of them because, you know,
54:03
this was definitely a struggle we had because each of the universities were slightly different and we had to find a solution that would work for all of them, which was, of course, tricky. But I remember, you know, I told them at some point I was kind of advocating for open source. I was telling them, you know,
54:19
I really would suggest you to open source this code because by doing this, you really make it clear that the code is secure because this is a topic that is very critical in terms of security, right? You want to make sure that the material that is encrypted in this way, which is used for science purposes,
54:38
doesn't go to somebody else. I mean, even though it's anonymized still, sometimes you're able to de-anonymize, you know, data. So it's still very relevant. And I said, you know, if you want to really get the trust by, you know, other people, make it open source because people will see that it is open source.
54:54
They can look at the code. They can see for themselves, is it secure or not? And this, you know, also helped because I remember there was a funny thing that happened at some point. Suddenly somebody wrote in the chat, oh, you know, we got a contribution from somebody that never contributed before.
55:11
This was actually after we open sourced it because, you know, they eventually, you know, they agreed with my aspects when I mentioned them previously. So when I mentioned to them that they should open source it, they eventually understood and they were actually thinking it was a great idea.
55:25
And they told me I should do it and then I just put it open source. And we worked on the project from then on. And I remember there was a moment where suddenly we got our first external contribution from somebody who we didn't know.
55:39
And it's funny because one member in our team had the idea of Googling the name of that person. And they found that actually that person was a streamer and they actually stream them using open source projects or contributing to them. And it was so cool seeing that somebody discovered on their own or project that we
56:00
were working on and was submitting a contribution. And it was also really cool because it gave us an opportunity to see how it is for somebody who never interacted with the code base before, how it feels like, because of course we worked with the code base for so long already.
56:16
we were kind of blind in this aspect and it was really nice to see like, you know, what aspects is this person struggling with? How can we make it easier for other collaborators to join in? But of course, I mean, since the streamer has some visibility, this also makes the project more visible,
56:31
which in turn is again valuable, you know, in terms of marketing. So I feel like those are also aspects that are often not talked about of how valuable open source can be in those kinds of ways.
56:42
Absolutely. Everything you said is true. I've lived it my life completely on Open Solaris and Java. And I've worked on the NetBeans project. I've worked on OpenOffice, MySQL, lots of different open source projects. And it is one of the things I tell engineers is that when you do your work in the open,
57:02
you are literally building the community. Most engineers just feel that they're just working on the code. I say, yes, you are. But the fact that you're building infrastructure You're building the code. You're interacting with other engineers. You are literally building that community with your bare hands. Now,
57:20
my job as a community builder is to sort of facilitate that, but you're doing the actual community building. That in and of itself is a marketing function. Have you ever read the Cluechain Manifesto? No, I didn't. That sounds interesting. I need to have a look at that. Clue Train Manifesto is a book written in 2000.
57:37
It's 25 years old. It's written by some Linux guys. It's open source marketing. That's what it is. And it is obviously an old book now, but you read it and you just change the language because the world has changed a little bit. You understand that markets are conversations. It's the open collaboration, right? Yeah.
57:59
And we used it a lot at Sun when we were opening, because Sun was opening all those different projects. Solaris, Java, Linux. Actually, we had a Linux team. We had NetBeams, MySQL, Juxta. What else was Sun? OpenOffice. And piles and piles of other projects as well as Spark.
58:20
So a lot of us, a lot of the marketing teams used it back then. And it seems to have been forgotten now. But you read that book now, it's really thin. And it articulates more or less what you just said, that everybody involved in the project, if you're having the conversation in the open.
58:37
This is where Java is so valuable. OpenJDK is the central platform. There's a canonical project for Java, right? How many million lists are there? They're all active. You can see the code. It's got a governance system. It's an entire community. And so, yeah, absolutely. And that in and of itself helps to build everything.
59:00
So it's the coolest thing in the world. It really is. We're so lucky to be doing this because there's just so many possibilities. And it empowers people. You're not just slogging through pushing paper. I mean, so you've learned language and technology and some tools that can change the world and change your life.
59:24
It's not the same as just clocking in nine to five. It's very different. It's a very different thing, you know.
59:31
True. I mean, I just recently learned about JCP, which I mean, you know, surprisingly enough, I mean, I've been working with Java for so long, but it was very impressive to me to see how the JCP was working and how in the open this also was. Right. And I was very impressed by that. Yeah,
59:49
I'm always surprised about, you know, even, you know, more and more things as much as time goes on, because there's so many of those things that you don't really hear about often, but they are very, you know, interesting in those ways that you mentioned them, right?
1:00:01
Yeah, absolutely. All right, Francois, I'm going to go to bed.
1:00:04
Yeah, sorry for keeping up.
1:00:08
It's almost 2 a.m. and it's been a great conversation. I learned, yeah, I live an alternative lifestyle, can I say? It's fine. But, yeah, no, it's been great chatting with you. I learned a lot, as always. And we talked about test and teaching and community and learning and contributing to open source, contributing to Java, Java user groups.
1:00:32
I mean, really wide variety here. It's really great. I'm glad you pinged me. I'm glad we met at that conference a couple of months ago. And, yeah, we'll see you maybe sometime in Europe at some event someplace.
1:00:46
Totally agreed. Same. Yeah, definitely. I'm also very glad that it happened, you know, and it was really nice chatting to you, too. I also really enjoyed it. And I'm really glad to hear that you learned something. You know, I didn't come into this discussion with the expectation for you to learn anything,
1:01:00
but I'm even more glad to hear that. You know, this makes me really happy. I always learn. I always learn because I'm looking to learn. And so you guys are good teachers. Thank you so much. Yeah, I think that's true. I'm also doing the same. Yeah. I feel like it's also kind of a mindset question, right?
1:01:16
Because if you're not in the mindset to learn something, then you probably won't, right?
1:01:22
Absolutely.
1:01:23
Yeah. But thank you so much for the opportunity as well. I really enjoyed being here with you. Cool. Cheers. Cheers.
This is a public episode. If you'd like to discuss this with other subscribers or get access to bonus episodes, visit jimgrisanzio.substack.com/subscribe