Gabriel Nelle is living in South Germany near Baden-Baden. He’s sharing the apartment with his girlfriend and two cats. He studied to be a teacher for mathematics and German at university in Siegen which he finished in 2008
Jonathan: Well, hi everyone. My name is Jonathan. It's a pleasure to be your host this evening. I have a guest that I'm very privileged to have on today's show. I'd like to introduce you to Gabriel Nelle. Gabriel is one of our core contributors at Exercism. He's been involved very much in the Go Track specifically, but I'll let him introduce himself in more detail shortly. But just to say, Gabriel, it's great to have you. Thank you for joining us and we hope that you have just as much fun as all the listeners on today's show. So, Gabriel, why don't you take it away. Tell me a little bit where you are from and how did you end up where you are currently?
Gabriel: Yeah. Hi. I'm Gabriel. Thank you for having me. So I'm from South Germany, that's where I grew up, and that's where I'm now, not the same place, but still South Germany. Yeah, I grew up in, so I, let's start I'm an early eighties person, so I grew up, I was born in 81. And I think where I'm coming from is around the late eighties when my father brought home his first computer. So I think that's where the story begins. At least the text story.
Jonathan: Yeah.
Gabriel: It had MSOs on, I'm not sure exactly what version it was. I think it was an older version also because, If I remember correctly, my father brought it home because it was basically thrown out at this company and they got new computers, so he took, he was able to take that one home and yeah that was my first impression of computers. MS. It Is interesting and strange.
Jonathan: the, the lines, the colored lines on the black screen? Was that pretty
Gabriel: Yeah, it was just white on black. Yeah, basically. And you could basically, mostly it was just the command line, which I got to know first. And then I will later with my father, basically in eight, in 90, around 1991, my father taught us our first for loops in Q basic. I was 10 around the time, and then there was also learning vocabulary. So my father bought a program for learning vocabularies and it waso based and I think you had a mouse to click, but I'm not a hundred percent sure. Maybe it was later. So it was definitely those times when I first started to do computer stuff and I broke it a few times. My father had to fix it a few times. So I was definitely interested in learning about this. Not really in a way that I sat down, said to myself, I need to learn about this. I was really interested in and understanding what you could do with it Intrigued me.
Jonathan: And, and was your, was your father, did he work in computers specifically or was he just in, in business it happened to bring a computer home, or was there a specific reason that he brought it home? Computer reasons or technical reasons.
Gabriel: Yeah, he actually, he's an electrician by trade, what he learned. But he was working at Bosch at the time and he was working in the electronics department where the development of new chips or new stuff for cars. And there they were, of course, outside computers and he was actually responsible pretty early for everything around computers, network printers and all that kind of, So that's basically he got into it. He was basically the one who did everything around to make things work there. And because he didn't have a doctor's degree as most of the others in his department. So he was basically taking care of these kinds of things and he learned he learned a lot about these things, about computers. Yeah.
Jonathan: Yeah. Okay, cool. Sorry, I just jumped, jumped in there. So you were saying then you were playing around you broke it a few times that Of your introduction to. to computers and hardware and all of that kind of stuff. Then what? What happened then from that point onwards? What was the progression?
Gabriel: So I think the next big step was I got my own computer that was, I would say maybe five or six days later when I was young. Adults. And I was interested in computers more and also had some parts in school. I started to write my homework on computers and all that kinda stuff. And that's already when those times Word and Ms. Word and those ages and I would say it started one day, my compu, my father was always doing some literature work for our church. So we grew up in a very small church and we had this literature which we were basically using, and my father was digitizing or helping digitize that literature. The beginning was a side project and data on it. It became actually my first full-time job and working for. For the let me, could you look at that? Working for the publisher in the US who was responsible for that literature.
Jonathan: Mm.
Gabriel: Basically my father asked me, Yeah, I have all these macros. I have written them in a Euro script that was basically based on a version of Word you could say. Pre-word and I want to switch to Word now and I need all my macros on Word. And I kinda said, Okay. Okay. And that's for how I started programming a word. So visual basics for application, you could record the micros first. You could look at the code and you could see what it's doing and you could improve it and basically improve the micro so much that they were able to basic. Before it was like you put the cursor here and then you press a key and then it does something like in the next few lines. And in the end it was like, it would process the entire Word document from top to bottom, completely automated. And basically that was the entrance to a lot of macros I wrote for that cause of the. Created some big waves and the person, the people that gave my father this kinda task to do in his free time, they said, Whoa, this is great. Let's do more and automate this more and more. Yeah. So that's how I got into,
Jonathan: him, you saved your dad a lot of time
Gabriel: Yeah.
Jonathan: in that sense, young age,
Gabriel: I could say that. And so macro writing in Word later in Ex Excel, I wrote an Ex Excel based for what do you shop system for a small shop. So it was a small shop for organic foods and so on, and basically they wrote down all the prices and then they calculated them in their head or on paper. And that's how that worked in the beginning. And I wrote a system for that with barcode scanning and with a scale where you could put a. Weigh something and you could get the receipt and then scan that when you go to the for to pay and all that kind of, So basically all around that it was Excel based. So it was, Yeah, I would definitely do it differently though. Excel was the database at the same time as also the printing machine. So I would format everything in Excel, in an Excel sheet, and then it would be printed on the receipt printer, all those kinds of things. Of course yeah, I thought that was the beginning of my career, so to say.
Jonathan: were you when you, when you did all of that and, and, and what then led from, from there? Was it before university, sort of during high school and then kind of did that inform your career path, so to speak? Quite significantly.
Gabriel: Yeah, that was all before university. So the system for the shop force when I was around 2021, I did my civil service around that time.
Jonathan: Huh?
Gabriel: The macro writing was when I was like 16. In between, I also wrote some access based system for printing labels for letters so you, they could be sent out. So address, addresses and so on. And then came studying and surprise, I did not study informatics.
Jonathan: Okay.
Gabriel: I actually studied to be a mathematics and German teacher for ages. Let me calculate that. Ages 10 to 20 and 19. So those are the ages. So fifth
Jonathan: so you
Gabriel: to 13th grade.
Jonathan: career path was your, was started heading and and what was that, what was that decision based on sort of like,
Gabriel: Actually I probably would've gone down the road maybe often of programming. But during my civil service I learnt a lot more than just technical stuff, I would say that so I. Responsible or was in a small team that was responsible for an elderly home. You could say there were like 5, 5, 6 rooms in there. And there were different people and I was responsible mostly for one. She was maybe 55, 60 and she had Alzheimer's. And that had a big impression on me because If you're confronted at that age with that kind of it, you could say, yeah, she was 60 and it sounded old for a 20 year old, but it was still clear to me that this could happen to, to anyone and it could also happen to me. And that made me much more interested in the social areas of life and
Jonathan: Fascinating.
Gabriel: social career paths. And that's where actually. That's basically the reason why I chose to be a teacher at the time. So I wanted to code, I was very good at teaching or helping my co students, especially at school. And mathematics. Mathematics was my strongest area and I always liked it. Yeah, I always liked it, to help others. To improve their skills or I always loved it when they suddenly understood it. When I saw the ice. Now they got it. Yeah. And so I, I actually became a teacher.
Jonathan: Oh, that's cool. And just tell me, like you mentioned this thing like civil, your civil service, so to speak. In Germany, which is a mandatory that every student or child needs to do before they go to university? How do, how does that all fit in German culture?
Gabriel: It was back then alternative and alternative to going to the military. So either you did nine miles, nine miles military, or you did 11 months civil service. That was the requirement.
Jonathan: Okay.
Gabriel: For men, not for women.
Jonathan: Is that still the case, in Germany?
Gabriel: No that's not the case anymore. No. No.
Jonathan: Okay. I know it is in Switzerland, which is where my wife is. Comes from. So it was just That setup is still prevalent. Okay. So now you, you did math and you studied to be a teacher, and obviously programming played a part in your life in quite a significant way. When did it kind of, so did you have a moment where you like, actually I'm, I'm in teaching. I'm enjoying this, but I'm not, but there's still this programming piece that. Active and, and engaged. Like how did, how did those two things balance out the teaching and the programming?
Gabriel: How did I get back to programming? Yeah.
Jonathan: Yeah
Gabriel: yes. So during my time during my time when I was studying, there were basically two things I did at side jobs. The one was teaching. I was teaching at. Tutoring agency. I was teaching at uni at the university, at the younger, so in mathematics, mostly in the first and second semesters. And at the same time I had a job at a tech company. They were mostly so it was mostly access based.
Jonathan: mm.
Gabriel: So was a company that did hardware and software for car sharing and companies who had a lot of cars that they would rent to their employees. And yeah, there I basically started as a document writer first, and then they figured out I can program two. So I quickly moved into the programming area. Yeah. And then I would say things changed mostly when during the last parts of the, which were parts of the study that you had to go, you were required to have six weeks on the school and what, and once four weeks and so on. And I think. Became clear and dear to me, also by talking to very experienced and very very teachers that were really dedicated, very dedicated teachers. That basically the times have changed a lot. The students have changed a lot. One teacher, she said to me, she was always teaching fifth and sixth grade, and she was basically telling me five years ago I had one. Student in my class was a problem child in the sense that the school was not complete, that there was divorce or there were problems at home, and so on. And now she has more than 50%,
Jonathan: Sure.
Gabriel: And that was 10 or 15 years ago. 2000. Six or seven that must have been so 15 years ago. And that showed how much things have changed. And it was also very clear to me that many students nowadays, they just don't want to learn anymore. And the teacher is always the, basically the teachers always the last. The tail of the whole Yeah. The parents and the headmaster and the students. They're basically all the masters of the teacher. Yeah. The teacher is always the, one of the last straw you could say, or not sure how you would express it in English. He is always the one that has to pass all the responsibility but has no rights basically.
Jonathan: authority to yeah. To act. Yeah.
Gabriel: Yeah.
Jonathan: So did your decision? Well, sorry, I'm interrupting you. Keep, keep
Gabriel: That kind of, at least it got me thinking a lot and. After I was done with university, I just slipped back into programming because a friend of mine, he was the one who gave my father this literature work. He basically asked me if I could help him with a project. And that project, which first was considered to be like a four or six weeks project, turned into a two and a half or three and a half years. Or three and a half years. Project
Jonathan: to scope creep. The scope creep was real
Gabriel: Yeah. First he asked me to help him with something. And then he was always in contact with a person from this publisher in the. And the publisher always said, I want a public homepage for this with literature. I want people to read the entire books online.
Jonathan: Oh wow.
Gabriel: I said at one point I just said to my friend, he was talking to him on the phone and he said I could imagine doing that. I don't really have anything to do right now. And he said, Oh, Gabriel does it. And that was how it started. So
Jonathan: Wow.
Gabriel: I had a project yeah, and then I worked three and a half years for that project. Bringing thousands of books online, the entire Content library
Jonathan: Wow.
Gabriel: index. Different languages are connected to each other. Yeah, the website is still online. It's e g e gw writings.org. So if anyone is interested in looking at it, it has a new design. Now, I saw around December last year, they switched to the sign, but the code underneath is.
Jonathan: All the same.
Gabriel: Mostly mine because I can see, because it was mostly JavaScript based.
Jonathan: Yeah.
Gabriel: The code looks very much, it's organized differently to files and all different styles are still the same.
Jonathan: You'll have to send me the link and we'll, we'll post it in the show notes at, at the right time. But so now you, you did three and a half years, what, three years of this project. You've put, you've indexed all of this stuff. Were you using JavaScript as your main language at that point? What was your, was your sort of technical setup? You could say what were you focusing on?
Gabriel: So that was basically the big step from switching away from Windows based software, which was before Visual Basic and Visual Basic net. And now it was only a J query JavaScript and PHP in the background.
Jonathan: Okay.
Gabriel: We also had an agreement that whenever I did research, I had a lower hourly rate,
Jonathan: Mm-hmm.
Gabriel: was a third of when I was actually doing programming. And yeah, that gave me the freedom to basically learn on the job. Yeah.
Jonathan: cool. then where, where. Exercism. And now you, you do a lot of things. Am I right in saying like Go is kind of a main feature of what you do. You mentor a lot and you've been, well, you've been involved in Exercism in, in Go and kind of helping that side of things. When, when did that start coming into the picture and, and why was it of interest to you? Go for it.
Gabriel: Yeah, in 2016, that was my first job after that big project. Actually towards the end of that, I started to switch to go. I did some PHP and Python at that job mostly. And that became very quickly my favorite language, my favorite language because it has that simplicity. It's basically trying to. From that crazy world of more and more features and languages and making them more and more complex and complicated and a lot more overhead for the developer, cuz he has to choose. Which way to do it. And he has to also understand all the other ways other people do it. So all this overhead and goal suddenly just brought in this quietness and this. To simplify again. And that very quickly became my number one thing, which was building a prototype in that company like half a year before I left. Because they wanted to switch to go and At the beginning, of course, there were these initial things where you stumble over things which you can't do in the language, and then you understand why it doesn't make sense to do it that way, or why it's better to do it. That I was really interested in learning how to do these things. And that's how I started to listen to the Go Time podcast. That's from Change Log.
Jonathan: Okay.
Gabriel: And Ka Katrina Owen was on that podcast I think twice. At least twice I heard from her, I think. Yeah. And that's how I started to look into it. I think in 2017 I registered to exercise. I'm percent sure I would've to look it up and.
Jonathan: I imagine. Would that be fair?
Gabriel: Yeah, I think it might have even been the version one still, because in the beginning there was no there was I didn't get really I didn't get any feedback. I did a few exercises, but I never got feedback and I was able to give others feedback, and I did. And, but I never got feedback. So there was no, no process in place to really get some feedback. And it was if you want to and if you don't, just leave it. So to say. Yeah. I think that was version one, right?
Jonathan: I imagine so. I mean, I think Been quite a lot of shifts from version one to version three.
Gabriel: Yeah. Yeah.
Jonathan: one was little feedback. Version two was extreme amounts of feedback required, and then version three has kind of sat somewhere. In the middle a little bit maybe on the, on the lesser side of things, but no. And, and did you, did you in, were you involved in building out version three and how did, how did you kind of Yeah. What was your involvement there? I mean, I'm not fully clear on that, but would love to understand.
Gabriel: Maybe one, one step back if I may. So basically I came back after the second interview. I heard from Katrina on Exercism,
Jonathan: Okay.
Gabriel: That's when version two existed. And when there was a lot of work and there was this, lots of feedback needed. I jumped into that and I really liked giving that feedback. And,
Jonathan: Mm-hmm.
Gabriel: Basically, I started to think about how I could make this faster. Yeah. Because I realized quickly that, especially on the first exercises, it was clear that I would give the same answer again and again and again.
Jonathan: Yeah.
Gabriel: And on the other hand, of course, sometimes, These two issues and sometimes there was this issue and another one. So I basically started to optimize this. I started to write a low Bo GO program, which uses static analysis because I wanted to get into the analysis. I hadn't done that before. I wanted to get to know this. So I was interested in trying it anyway and that seemed like a good idea. Because it was still code that was very common or very similar all the time. The solutions on an exercise, especially the first ones, are very similar. So that's how I got into static analysis and I just looked for different patterns and the code and then automatically added answer blocks or predefined blocks to the answer and. Basically I started that locally and that's how I was able to do around 100 a week, 102 drinks a week. And I wasn't even doing anything full time. It was beside my job. And yeah. And then it started to, to Pitfield I think was the first one. John Arun, I think is his real name. He was like the first one saying, Whoa, this is great. This is super. And so that's how it's basically started to get known the work I did and with the static analysis. And I think that was a big part of the version free cause. We started to think about how we can basically reduce the work of a tutor by having these tools, this automatic, this a static analysis or the tools that basically check the code automatically and give feedback automatically. Even completely automatically without a mentor even being involved or having to be involved. And because the mentors, it was quite clear that we have mentors and they're not enough for the work. We had the inversion tool and we also saw that many mentors were burning out, they disappeared and yeah, it was just too much. Too much on, on many mentors. Yeah. The work was something with strikes, they had 500 or more solutions to be mentored or, and sometimes there were like wait times for one month or more. And of course those were conditions where also the students would just leave at some point. Yeah.
Jonathan: Hmm. It's funny because I think Jeremy was saying the other day that out of all, of all of the solutions that get submitted, something like 75% of them are fully unique, which is, which I also find fascinating. I mean, you go to like a Hello World's exercise, obviously it's very simple. Surely that's got to be a standard pattern that gets implemented regularly, And he was like, It's people trying all sorts of different, different things. And it's funny how you know that that crossover because as coding becomes more popular and as more people take up developing and programming you, you kind of wonder, well, where's that automation gonna start? Nullifying the role of the developer. I, I wonder, I, I don't, I don't know if it will. I think there's still too much required, but in terms of, know, I don't know what your thoughts are around that, but it does feel like with Exercism lately, there's a huge push for mentoring that is really fascinating because it, like you said, it, it. Takes all of those re repetitive, lessons that you have to keep having to give and, and puts them in a way that is manageable for people to kind of manage. at the same time, does it cross over into being actually you need the, a human interaction, a human to really with the content. So I dunno if you have any ideas around that, but I find that's an interesting space at this point.
Gabriel: Yeah, I don't think that developers will be replaced very soon. That will be quite a long time still. In development, applications in general, in mentoring, I think. I think the aesthetic analysis and also the automated mentoring and automated mentoring in general on exes can be a big help. But mentors are needed for real mentoring, I would say. Yeah. For example, I have someone I'm mentoring like every two or three months we have a call sometimes more. And I'm mentoring them in their career, so to say. Yeah. And also technically very deeply technical, but it's a completely different way of mentoring than just looking at the solution and telling you what you can improve. And I think that's what the mentors that exist are still needed for and I definitely will be needed for and I think that's something we can focus on. On the other hand I think I think we can't replace the mentors completely on, on the solutions, and I don't think we should. We can automate a lot of things but still a mentor is someone who can point the direction. Now they can see the problems you're struggling with and they can tell you. Understand this and this, not just, you need to improve your code in this way.
Jonathan: Yeah. Yeah.
Gabriel: And to be honest, I would like to have more mentoring back on exercise. So I'm wondering if we should
Jonathan: to face interaction, you mean?
Gabriel: Yeah. I'm wondering if we should, So we had this pathway before 10 exercises and at least it was 10. Which you had to go through and you could only proceed when it was mentored.
Jonathan: Yeah.
Gabriel: And I think with the automation we have in place now, we could actually switch that back on again. Or maybe not now, but in the future. And I think I would like that.
Jonathan: we could definitely, we should bring up in a, in a community call, cuz I think that would be that would be cool to sort of bring, bring that back into, into, into focus. So Gabriel, one of the questions that we often ask and, and this is not the one that I talked to you earlier, but I. One of the questions I, I, I enjoy asking cuz it's always very interesting and different is did programming kind of click for you? People would say that there was an experience of suddenly everything made sense. So I used the story often for me. I give an example of school when I was learning chemistry and in the UK where I was at school. You have these exams at. And so everything leads up to those exams for three years prior to those exams. So you have three years of study and that culminates in your final exam. And that's across all of the subjects. And one of the topics obviously was chemistry. And I spent about three years not having a clue about chemistry. I just couldn't, It, couldn't it. I couldn't understand it, then a week before the exam, it was like the penny just dropped the expression of like, the thing just made sense. And I was like, Oh my word. I can get everything from the periodic table. If I know the numbers on the periodic table, I can understand this, that and that. And the things became really simple and it was like Did you have a moment like that for programming or was it something that just kind of. You found it naturally made sense to you, and when was that moment, if that's relevant?
Gabriel: I'm not sure if I have that definite moment. So I think it helped a lot to have that macro recording and just looking at the code very early with visual basic application. I'm not sure if that's still some, if still something like that is around today. I think you still can. Word and do that. But it's not very often that you have something like this, where you can record and then look at the code and learn that way. I think that made it a lot easier for me because I was struggling a lot in the beginning. I think one, one kind of moment where I would say, okay not that I understood things, but that I realized Basical. If I'm actually doing things right or wrong was when I joined that company, when I was a student, was basically the first time that I worked. I worked together with other developers. Before that, I was always just on my own and I had to basically do everything. And it was always a big question. Do you usually do it that way? It feels strange. It feels complicated. It feels like it works, but is it correct? I. And that kind of got answered when I joined that company and started to go there and. Definitely there was a lot I needed to learn and I did learn a lot, For example, excess record sets. I never really understood them before. I worked with them, but
Jonathan: Mm.
Gabriel: yeah, it worked
Jonathan: Yeah. Something
Gabriel: Then I really understood, started to understand them. So that was maybe something that it clicked for me because I had a coworker and she explained it to me, and it was really it clicked someday I underst. How they're working and
Jonathan: Mm-hmm.
Gabriel: how they're meant to work and how to use them correctly and so on. So yeah, maybe that was one of those points. But I think you, those points they come in our jobs very often. I don't think there's that one point, maybe that's one that one initial point. But also for gold, there are so many places where it may click for me, where I underst. Why something is that way and how it's supposed to be used. And, for example, context. . Yeah. For example, Context.
Jonathan: Yeah.
Gabriel: Yeah. The, for example, the context single they were added in, I'm not sure, one or six or seven maybe. Around that time, I didn't. Look at them. To be honest, I didn't really need them in the beginning. And then I got one to one. It was like a meetup and somebody presented about the context, how you used them, how you, and so on. And that thought
Jonathan: Hmm.
Gabriel: should look at. But it still took a few months until I really looked at them and I understood why they're there. And for example the close channel, I'm not sure if you're aware of many people who still propose on the internet that you close a girl team of a close channel and you shouldn. That's what the context is for. Yeah. You use a context, you cancel the context, and then you can close the go routine with that. If you use a closed channel, it's basically you're doing manually what a context does internally, and there's so many foot counts to avoid, so many problems. To avoid that, usually people do it wrong.
Jonathan: I'm sure you had a live, you did a live stream and you mentioned something about that. I, I do, I think I do recall where you mentioned you know, just use context because
Gabriel: Yeah.
Jonathan: a lot of sense.
Gabriel: Remember I mentioned that bit.
Jonathan: Yeah. But no, so, so in terms then of like, when you've mentored people in the past, like what are some of the, Can you identify. Actions or behaviors or things that the people who grasp stuff and quickly, can you like what they do that allows them to kind of position themselves to learn quickly or more effectively? Or is it a lot of the mentors that, or people that you've mentored, they kind of just naturally are engaged in that way? Or are there people that you are like, Wow, they do stuff, They do things that allows 'em to accelerate their.
Gabriel: I'm not sure if I can say that about other people. I can definitely say it about myself. I learned, I think , from my parents. They taught themselves a lot of things and that's what I also learned from them to teach myself things. So I learned programming. Completely on my own. There was my father in the beginning. There were some things in school. Most of the time, in the later classes in school, I was actually, or we were, almost all of us were better than the teacher anyway, So there was not really learning. There was some kind of learning from each other more. But
Jonathan: Yeah.
Gabriel: In general, I learned everything by myself. And that is something I think you need in programming. Cause you constantly need to dig into things you have not seen before. You don't know about them, you need to read up on them. So what's the word? This. Ability. Yeah. This ability to be able to dig into something and learn it by yourself, I think that's key in programming for learning. And of course you can learn a lot faster if you find someone that tells you about that. So I don't want to say that you shouldn't look for a mentor, you shouldn't go to exercise, and so on. That helps you to grow a lot faster, but still that is. That's what I would say.
Jonathan: me that your learning came through practically trying to solve problems. So whether it was making macros to make or you were doing more efficiently or it strikes me that that was like a core theme that has repeated in, in, in your life in terms of, learning, which I think is probably aligns a lot. Generally what Exercism is also trying to do in terms of helping people practically do stuff
Gabriel: Yep. To travel it.
Jonathan: So yeah. That's really cool. So, Gabriel, we, we haven't got too much longer left, but I have two final Well, not questions for you. One is a question and, I'm gonna ask you to share an opinion of yours and then the other one will be, well, it's kind of an opinion you could. I'm gonna ask you to give a recommendation to the community for something they need to try this week. But the first thing is that we've spoken to a lot of our Previous people that we've interviewed, and if you've listened to this podcast or this live stream for any length of time, you'll know that we ask one big question normally towards the end of, of, of our live stream. And the question is, what is the hill that you would die on in tech? So what is the one opinion that you hold very firmly, that you would like to stand and, and. Bear in mind, you have to give a good reason for this. You can't just be like, This is my opinion and that's it. You have to be able to, to defend yourself in that sense. But what would be that opinion if, And it can be as, as, as full on or as intense or as trivial as as you like. So what would that be?
Gabriel: I'd say it was a proverb. We have a goal or somebody has said in the go community, and that is boring Code is better than clever code.
Jonathan: I like that. What does that mean?
Gabriel: What does that mean? Yeah, basically it's it's, it summarizes a big part of ghost philosophy around simplicity readability. So if in go code and you think, Whoa, that's clever, that's actually bad code. Even if the coor who did that was very intelligent and did it in a very clever way. And sometimes I feel like if you really follow the simplicity and the idioms of go you don't really have code in your entire code base, which you want to point to or you can point to. Look at that code, how good it is, because all your code is actually boring and very simple, and everybody who will look at your code will say, What's so special about it? Yeah, but the point is you got to the simplicity because you're a good programmer and it's an iteration process and complicated code writing complicated code is very easy writing. Simple code is. Because you still, you first need to make the problem simple in your mind, and then you need to write the code correctly, and then you need to iterate it and make it simple. And that is a much longer process and needs a lot better developers than just writing complicated code, which when you look at it, it's hard to understand. It's hard to read and it's hard to maintain, and it's hard to change.
Jonathan: It's the, it's this constant thing of trade offs, isn't it? So I'm, I'm fairly young in the tech space, three years, and I haven't come from a developing perspective. I've come from a product more like the product side of things. The more the business perspective on that. And if you could, you could say, And one of the things that was really interesting was it became more and more apparent that it's all about trade offs. So you say, it's like the trade off is simple code versus complicated code, whereas complicated code might just be more cumbersome and tricky down the line. Simple code might take longer and require more energy and effort up front. And that's the trade off that is constantly being made. So that was one of the, I dunno if what, what your thoughts are on that, but it does strike me that, that really like that simplicity side of things cuz I remember mom had a, had a friend at university and he only ever wrote an essay for his assignments that were two pages. Because he was able to condense everything into two pages, and he got top marks for it. So I think it, it, it lines up with the whole concept of, of simplicity, which I think is really hard to write simple code because it requires clear, clear thinking not just just coding. So think that's a, that's a worthy hill, and I think you've iterated that. You've, you've spoken on that really well. Cool. So Gabriel, final question of this week. And now you get to give a bit of advice to the Exercism community. And it can be anything. It can be health advice, dietary advice. It is your opportunity to share a piece of advice that you would give to the community and it can be anything that you want. So what would be your recommendation to the Exercism community this week? What one thing do they need to try or do, from your per.
Gabriel: Oh, that's a hard one. Okay, now that you say it can be anything may I give you two things?
Jonathan: I'll let you, I'll let you do two
Gabriel: Okay. One, one recommendation. So I'm actually a vegetarian. I grew up vegetarian. I've never eaten meat, and I actually grew up vegan, most of the, most of my childhood and youth. So try one week without any dairy projects. And so that would be one. So we. And another recommendation would be that's, I'm not sure if you can do it in one week, but if you are a good developer, you can, very interesting and very worthwhile to try to build shared memory, shared between multiple services, same service, shared memory. Try to implement a shared memory using raft protocol. You can use a library. You don't need to implement raft itself, but
Jonathan: raft You'll need to give me, you'll need to send me the link so I can post that down. So that's Gabriel's ch Well, maybe we should call it Gabriel's challenge for the week. Maybe not so much recommendation. Maybe we need
Gabriel: Yeah. It's more like something to try.
Jonathan: You send, you send out a challenge. That could be, that could be good fun, but Cool. So week of no meat products at all. See how that goes and build a shared memory server. What would you say? Service, shared
Gabriel: Yeah, you could call it the in memory key value
Jonathan: Okay.
Gabriel: So multiple services, one database or one service. Yeah.
Jonathan: Cool. That's
Gabriel: Because it teaches you a lot about how databases work. Yeah. Underneath. So especially the model ones which are shared like yeah, not sure. Yeah. Cassandra slash Skylar, I'm not sure if you have Skylar. It's kind of Cassandra, but in c plus and they're switching to the rough protocol now. Or It is a key value database. A shared one is a dase, no, it's not a database. It's return management. Yeah, Be degraff from Degraf Beja. So that one, I think it'll also use a raft under the hood to, to distribute the data. I can't say for sure, I would have to look it up again. But there are many databases that we use it on. Distributed system. So the distributed system is basically a big challenge, I would say, of our modern times. We are in the process of solving that, but there's still many challenges to overcome and yeah, it's always good to be able to think in that regard, because if you can, then it opens a lot of possibilities.
Jonathan: Hmm.
Gabriel: If you need any. In my last company I was actually going down that road, having a shared memory between multiple services at the same time. Yeah.
Jonathan: May, maybe we need to line this up as a master class. We'll give people a couple of weeks to give it a go. then Gabriel,
Gabriel: that's that's the master
Jonathan: Yeah,
Gabriel: you're done with excesses and you have done all the exercises done,
Jonathan: That's the big one. The big one. It ties it all, It ties everything all together. Gabriel, thank you very much for your time. It's been a real pleasure to chat to you this evening. If you want to just stay on after the, after we finish recording, just quickly, but just wanted to say a huge thank you and really appreciate all that you put into Exercism and not just for us, but all the mentoring that you do out further afield and helping people write better code. I'm sure it is hugely appreciated everywhere So thank you for your time and. Reach out to Gabriel. If you're on Exercism, drop him a message, request some mentoring and I'm sure you will have a good time with Gabriel. Cool.
Gabriel: Thank you very much.
Jonathan: finish the recording. Yeah, No, thanks for, thanks for joining us and we'll be seeing you soon on some form of platform somewhere
Gabriel: Thank you.
Listen, learn and be inspired by our community members.