EW S7E3 Transcript EPISODE 3 [EPISODE] [00:00:07] AH: Welcome to Elixir Wizards, a podcast brought to you by SmartLogic, a custom web and mobile development shop based in Baltimore. My name is Alex Housand and I’ll be your host. I’m joined by my co-host, Eric Oestrich. Hey, Eric. [00:00:19] EO: Hello. [00:00:20] AH: This season's theme is Impact of Elixir, and we're joined today by a special guest, Florian Kraft. Florian, welcome to the podcast. [00:00:28] FK: Hello, hello from Berlin. [00:00:30] AH: Hello, hello. Now, would you do myself and everybody else in favor of correctly pronouncing your name? [00:00:36] FK: Sure, like it's Florian Kraft, if you want to be super correct about the pronunciation in German. Florian or Florian in French is also perfectly fine. [00:00:45] AH: Is there a nickname for Florian? [00:00:47] FK: There is. It’s either Flori which is like the most commonly used one. So, just omitting the A-N at the end, or it's Flo. [00:00:56] AH: Flo. [00:00:57] FK: Flo. I think most people in the English language space would say Flow, like a flow of something. [00:01:04] AH: Like the Progressive Insurance commercial lady. [00:01:08] FK: Yeah, weird like at a type system on top of JavaScript by Facebook, I think, correct? There it is already. [00:01:14] AH: Everybody's homework is to send in an audio recording of them pronouncing your name. I think that would be pretty excellent, Florian. [00:01:23] FK: I would love that. I would make myself like a sound collage and a soundboard at work. So, every time somebody comes in and can't pronounce my name or just like play a random clip and tell them that that is the clip, that is how you pronounce. Everybody could just learn it differently, we could just keep doing it forever and would just be amazing. [00:01:41] AH: Set it to your voicemail message. “Hi everybody, this is Florian Kraft.” [00:01:46] FK: You have reached Florian. Okay. That can work. It can work. Although I do believe, will like we're probably like the last generation that knows how to telephone some person. So, I’m pretty sure I wouldn't get called ever. [00:02:01] AH: Yeah, you might be right. When I call my youngest brother. He's definitely like, “What? Did somebody die? Is everything okay?” [00:02:09] FK: I didn't know this device had to telephoning function. [00:02:13] AH: Yeah, that. That exactly. Thank you for joining us from Berlin by the way. It is, what? Your six hours ahead of us? Seven hours ahead of us? [00:02:23] FK: Depending on where you are, actually, which I don't know where you are in the US. But it's 10 in the evening. [00:02:29] AH: Okay. It's 10 in the evening. Well, yeah, thank you for joining us, because I would probably be in bed right now. So, thank you for joining us. [00:02:34] FK: No problem, pleasure. [00:02:36] AH: I want to like get right into it. Now, that we haven't had a like a rant on name pronunciations. How did you find yourself to be a software engineer? [00:02:45] FK: That's a hard question. So, when do you decide that you are something? I mean, for me, it started when I was 11. My father bought me a telescope. And the telescope was broken. I'm not even kidding. That's the real story. I'm just like, trying to like, put on my dreamy voice. So, the telescope was broken. It was like Christmas and then my father was pretty aggravated about that, and just like took the thing, brought it back to the store and came back with a computer, of all things. That's how it started. I wonder what would have happened if the telescope had worked? [00:03:17] AH: Wow, what a beautiful story. [00:03:19] FK: Isn't it? I think it was a lot more pragmatic and a lot more German. It was just like, “Oh, we need a computer. But tell the boy that this is for his broken telescope or something.” Anyway, 11 years old, first computer and I like normally you would like probably hear a prodigy story at this point, like, “I started immediately, like cracking all the things.” I didn't I used to think to like play computer games mostly. And in general, I didn't know what was going on. We're also one of these families that were too amazed by what was going on in that box. You probably remember like Windows defrag, that was entertainment for the whole family for many an evening. [00:03:55] EO: My goodness, that actually, I don't know how it came up in a SmartLogic meeting recently, but we asked if some people had ever seen that. And they're like, “Uh-uh.” [00:04:04] FK: Now, I feel really old, by the way. [00:04:07] EO: There's a JavaScript or there's a page that pretends to be a defragger and it makes it like noises and everything. It's incredible. I have to find that again. [00:04:19] FK: I mean, in the end, what happened was that in school, we had a lot of like computer science, like introductions and such. In the end, I remember doing like some HTML, and I think like geo cities page in the early ‘90s really bad and at some point, my father decided that we needed internet which was ridiculously expensive at the time. So, I was like first touches and then from there, it just kept going. I remember doing or like reading up in English, which I wasn't good at the time about like Apache server side includes like HTML, all that kind of stuff and I ended up making a homepage for our school, actually. I forgot how I ended up doing that. And it was pretty good. And then in grade 12, which is like the last grade in German High School, we actually partook in an American competition, which some of you might know, which was like the technology Student Association. I'm not sure if it's still around. It's like we have similar competitions for students here in Germany. But we partook as a German team in an American competition. It was a little bit odd, but worth at the time, and I did all of the hours, partook in the competitions around like web design, which was called Cyberspace Pursuit. Oh, God, I said the word cyber on an official podcast. My God. We won that in some year, it was crazy. It was always a good experience to visit all the, like, some bigger American cities. It was when I first went to Denver, visited Chicago. visited Charlotte. It was great. It was just great old time. After school, I just studied computer science and kept on coding. So, at some point – [00:05:58] AH: What a neat story. [00:06:00] FK: It's almost like I like prepared a little bit, right? And I totally didn't. [00:06:04] AH: What the listeners can't see is that you're reading from cue cards behind your computer. Is that right? [00:06:10] FK: No, there's a person standing to the right here handing me the clues. Giving me the talking points. Thank you, by the way. No, you're not needed. Bringing me the next – [00:06:22] AH: Thank you for your service. [00:06:23] FK: Exactly. [00:06:23] AH: That's delightful. That's so cool that you made your school's webpage. That's great. [00:06:30] FK: I think it's what we did in the late ‘90s. [00:06:31] AH: That's fair. [00:06:32] FK: I think is what we all just did. It's actually like, I have to put a disclaimer here, like I did study computer science, but I never finished. I actually had a little bit of a crisis in between and just decided that math isn't my thing, which to this day, is still kind of like, it's not really my thing always. I find it fascinating, but I'm not smart enough to actually get into it. I actually started studying film and animation, and I actually hold a degree in film and animation. And then after that was completed, I decided that, “Okay, you've been coding the whole time anyway. So, make a job out of it.” And this is probably the point like, somewhere in 2010 where I decided that, “Okay, you're probably a software developer. You're not a 3D animation artist. You're not a mathematician, you're not a computer scientist, you're just exactly that. You're a software developer and you like it.” [00:07:18] AH: Fascinating. Did you ever want to like, I don't know, work for Pixar, because I feel like that's the top dream, right? [00:07:27] FK: Oh, I would have loved that. But I can't draw so, I don't have – people always say at this point like, I don't have the talent but the truth of the matter usually is that it's never about talent, it's about the effort you put into something, and this is like the subliminal message here. If you want to become good at something, put the effort into it and don't hide yourself behind the, “Oh, I don't have talent,” thing. I did that way too much with all the film stuff. I still enjoy it and like all the Pixar movies. I like 3D animation in general. I'm still like taken away by how this works whenever I see some cool animation or some cool special effects in movies, but the reality of it is, that there's not a lot of money in it. It turned out to be a little bit profane reason for me, but after my studies were finished, they basically told me like, “Listen, you can either become a teacher or you become like self-employed.” I wanted neither. [00:08:15] AH: Yeah, that's very fair. [00:08:17] EO: I had a friend that did the classics like Latin like stuff or whatever and like all you do is just make more of you. So, you just go be a teacher of the classics and make more people teaching the classics. So, yeah, sounds about the same. [00:08:33] AH: That doesn't sound fun. Bless the people that that's what they want to do with their life, but not for me. [00:08:40] FK: I mean to be fair, I mean you can make an absolute living if you're good at like animation and 3D modeling, all the film related stuff. I would say it's hard in Germany, it's also hard in the US, obviously. You can't just like go to Hollywood after like two years of film school and be like, “Hello, money please.” It also doesn't work. But in the end, same thing. If I put a lot of effort into it, if I had like sit down and really like okay, made a plan. This is what I'm doing. I want to get good at this, put a lot of time, effort and energy in it, then I probably would have succeeded there as well or not. But I found it easier to just keep doing what I was doing, which at the time was doing Macintosh shops and PHP. [00:09:19] AH: PHP. Let's go back. Let's go program with some PHP. Everybody, it’s all good? [00:09:25] FK: I hear it’s pretty nice actually, despite – you have me on tape. We got to cut that out where I say that my PHP is probably really nice these days. I'm not sure how it is in years, but it's really popular actually in Germany. It's like really, really popular. [00:09:40] EO: Yeah, I think as long as you're not doing like WordPress or like you go to a page that loads a dot php file. It's like gotten a lot better. [00:09:50] AH: So yeah, that's super fair. Florian, you're talking about your journey into how you are where you are today. I wrote down for your website, this quote of yours, where you said, “I'm a software developer, that's mostly it. I'm not very good at it. But somehow, I found my way into several companies and dealt with some larger projects. So, I think I might have some experience.” And I feel like that probably speaks to a lot of people. [00:10:19] FK: It's a little bit sarcastic, myself. I have like a little bit of a self-deprecating streak. [00:10:24] AH: You don't say. [00:10:25] FK: Exactly. It's part of the famous German humor, we all have, of course, because we're like the funniest people on the planet. I don't know, I believe strongly that one shouldn't exaggerate their talents unless it's in jest. So, I'm, of course, the most humble person on the planet. But the thing is that I consider myself very much just a software engineer. I'm not a software architect. Even though I held the title at a previous company. I'm not a – I heard this term – like an artisanal code crafter, like the barista edition of the developer. I'm not an artist of some sort. It’s not some — we had the term rock star programmer, I think a couple years back, just nothing of that. I just really like to develop software and I'm not sure if I'm good at it. There's no like formal requirement where you have to, like lay out what you what you can do. So, it's not like structural engineering or anything. We're not building bridges. But yeah, I mean, the message I really want to give to anyone who's kind of like doubting their skills at some point, it's like really the experience coming from projects that you do, and that you take away and that you can also pass on. So, for me even after, like, what is it now like, 14, 15 years of doing this, it's really just software development and I like it. I think I'm somewhat good at it because of the experience, but I'm not innately good at it. Not innately better than anyone else. [00:11:43] AH: Yeah, I like that. It's certainly something that like for me, didn't come necessarily naturally, right? Let's just like, practice, and work. And like mentorship that has made me better at what I do, but not a built-in natural ability or skill. Artisinal code crafting, by the way, is one of the best things I've heard all week. That's really funny. [00:12:07] FK: Can we put like a trademark on that and put that on like a T shirt? [00:12:10] AH: I think we can. I think we can do that. [00:12:15] FK: Royalties. [00:12:17] AH: Maybe it's like the artwork is like latte art. So, it's like latte foam writing on a big cup. [00:12:23] FK: Love it, do it. [00:12:24] AH: I love this. [00:12:27] EO: With 'crafting bespoke code since 2021'. [00:12:35] FK: I would love such a T shirt. [00:12:36] AH: I would wear that T shirt and people would not understand it. But I would wear it. [00:12:40] FK: I mean you have to remember we live in times where like GitHub gets to put out like a thing like co-pilot and everybody gets like a little bit angsty about the AI basically replacing us. And I mean, I will just point them to this T shirt and tell them like, “Listen, you might employ an AI and like the AI would do all the work for free. But I'm doing this by hand, putting my lifeblood in it basically and doing this like in an artisanal fashion that a program could never do.” I think. [00:13:07] AH: Blood, sweat, tears, secret ingredient, love, home roasted code. That doesn't make any sense but – [00:13:15] FK: Maybe you get Vin Diesel to do it like a family kind of thing. [00:13:18] AH: Yeah. Are you a big fan of the Fast and Furious franchise? Just as a little segue, or more of a fan of the memes? [00:13:26] FK: I'm a big fan of Vin Diesel because I know that he's a little bit of a Dungeons and Dragons nerd. [00:13:29] AH: He is a Dungeons and Dragons nerd. [00:13:32] FK: So, I love that such a good looking, powerfully built man. It's just like, a little bit of a nerd down below which is just a nice idea. But I hear he – I forget where I read this. So, this is all 100% authentic information, of course. I think he hosts like really good, like Dungeons and Dragons parties, where he's just a really good Dungeon Master. [00:13:52] AH: What a treat. [00:13:53] FK: I would give one of my hands probably to just attend one of these. It would be awesome. [00:13:57] AH: All right, shout out to Vin Diesel. We would like an invitation to one of your Dungeons and Dragons parties. Thank you. Thank you very much. SmartLogic will host it. Maybe we'll buy everybody pizza. [00:14:10] FK: I think you can't fly me over there though. Because it's still COVID and stuff. [00:14:14] AH: Okay, so post pandemic party. One day when it's all over. I don't know. [00:14:19] FK: But to answer your original question, I have not seen any of the Fast and Furious movies. I'm probably the only German person that you’ll find on the planet that isn't into cars, or into soccer, for that matter. [00:14:30] AH: Cut that. Cut that right out of this episode, you're going to get attacked. [00:14:35] FK: Sorry. It's almost like there's people that like don't fit stereotypes in like, groups of people. It's weird, but apparently, it's true. [00:14:43] AH: Isn’t that too nutty? Speaking of nutty, you recommend checking out Haskell at least once in your life and I feel like I've had a conversation with Eric about reading a Haskell book. [00:14:55] FK: Is it Learn You a Haskell for Great Good because that's amazing. [00:15:00] AH: That’s a big book. [00:15:00] FK: That's a big book, [00:15:01] EO: Big book, tiny print. Also, huge margins for some reason, it's very frustrating. [00:15:08] FK: So, I'm not a Haskell programmer, but I recommend checking it out at least once, mostly because you, as a programmer, can learn the difference between lazy and eager evaluation, which is like really important, to me at least. The realization at some point like years back that not all code that I write immediately gets executed, just because it gets read is really not something that I like, knew intuitively. So, this is really like, important to me. And this is why I would recommend checking it out, just because Haskell is like, lazy all the time. Also, like tying it back to Elixir, it took me a while to really get the difference between like lazy and eager evaluation. Just an example like streaming enum, which is awesome in Elixir and you can just like drop and replace it and just becomes lazy. I’m not going to lie, this took me a while to really grasp how this could be useful ever. Of course, you have to some other languages to like, think of like async generators. What's it? So, this is usually my recommendation. Also, Haskell is the like the token language when you want to seem a little bit esoteric, and probably everyone has heard that one colleague that was always like, “We should read it in Haskell”, and then immediately proceeds to leave the company, leaving you on a pile of code that you can't understand or maintain. [00:16:28] AH: I learned a little bit of Haskell in college in one class. It was specifically a functional and logical programming class, which is I believe, we learned Haskell and Prolog, I think. [00:16:40] EO: We did Prolog too. [00:16:42] AH: Yeah, it was a very – it was a nice like alternative switch to the rest of the program, which was just Java. So, it's a nice way to like just trick your brain kind of into learning something new and totally different. I would like to echo your statement, everybody should go learn them some Haskell. [00:16:59] FK: Plus one. [00:16:59] EO: We have PD days here. So, professional development. And one of the days I spent like eight hours reading that book for eight hours, I don't remember. Anyways, did not get far. It is very dense, and like brain burning. Just be ready for for that as you start your Haskell journey. [00:17:16] FK: I mean, I usually recommend like for people that are interested in these things, I usually recommend the Learn You a Haskell for Great Good. And there's also an erlang version of that, like Learn You Some Erlang for Great Good. These are written a lot more like digestible. To me, like I think the author's intent really is that it comes across a little bit like a children's book. But it's really, really easily accessible. This is like what I recommend, in general, to even more generalize the statement. It always pays off that after like, once you have like understood and grok the language and like really have added to your toolset, learn another, just because like other language ecosystems might do stuff slightly different. And you might in turn, like make your original style better. As an easy example. I mean, my Ruby code is like a million times better now that I did a bunch of Elixir, mostly because of the functional concepts that were foreign to me beforehand. And also, I would say my JavaScript code is a little bit better. [00:18:15] AH: Cool. I had a question that was like an offshoot of that. I do not remember what it was at all. So, I'll just dive right into the question that was after that in my brain, which is you were working at Contentful. Is that correct? [00:18:28] FK: I am still working at Contentful, yes. [00:18:29] AH: So, in Contentful, what languages are you using a Contentful? Elixir, Ruby JavaScript, Haskell? [00:18:37] FK: So, we were speaking about WordPress earlier. So, we're not using PHP. And we're really good alternative if you have an old WordPress laying around, and you want to get rid of that and make it really cool and nice. And to answer the question, of course, we started out using mostly Ruby on Rails, still doing a lot of Ruby also branched out into, like Rails less Ruby. Is that the correct way to say? Just Ruby with no Rails. [00:19:02] EO: I think it's just called Ruby. [00:19:04] FK: Oh, that makes so much sense. We're pretty heavy on the JavaScript part. We have very, very strong JavaScript and TypeScript developers at Contentful. Thankfully, they really know their shit, pardon the French, and they drove like the JavaScript and TypeScript adoption a little bit more. I hear that there was an Elixir service once and I'm kind of like always like in the back, trying to like cheer on the Elixir crowd that would like to do some Elixir, but can’t currently because there's not enough like people that would love to do it. But yeah, it's mostly Ruby and JavaScript these days. If your infrastructure, a lot of gold. [00:19:41] AH: Yeah. How did you find your way to the Elixir community via Ruby or colleagues? [00:19:47] FK: So, the year was 2015 and – [00:19:50] AH: And my father gave me a telescope. [00:19:52] FK: And my father gave me a telescope again, and it was broken again. No, this time around, I worked for this Danish startup called Autobutler. Really cool company, you should check them out a shameless plug, of course. And there was one colleague, 22-year-old like just a little bit younger than me, not that I'm old or anything, but he was never shutting up about that, never. And Casper if you're listening like thank you so much. Thank you, sensei. He was never ever – and I didn't get it. I really didn't get it. I was like hacking Rails away and it was just like Autobutler at the time was a big Rails monolith, I believe. They had tons of problems, because of that, they were in the middle of React migration on the front end. They were like, sort of migrating from like very old like 3.2-ish Rails code to more modern Rails 5 code. It was a little bit of a mess. Startups tend to be and Casper would never shut up about Elixir. Never. It was always like every like sentence was like, “And by the way, this would be 100 million times easier in Elixir”, and I didn't get it. I was just like, “Cool. I don't know. Probably.” We can't rewrite all of this. We can't do it Casper, please just like leave me alone. And by the way, like somebody clean up the kitchen. It took me a while to understand what the proposition of this language even was. It looked like Ruby, kind of like, I had the impression, “Okay, we can just drop this in. What is this Erlang thing? The beam? This sounds a little bit like Java.” For the next year, I will just do a lot of go and just like ignore Elixir completely. I left Autobutler at some point and I haven't met Casper since, actually. I know that he works at a bank now like Solarisbank in Berlin. Again, like super thankful that he introduced me to this even though I didn't like the idea at the time. And my next job rolled around and we searched for a technology that was easily accessible for Ruby developers, but could handle a lot of like synchronization tasks. So, we had basically in – on my blog, there's a long blog post about like what we exactly did, like long story short, we needed a way to easily get data into a Postgres database really quickly on demand, using ideally like some sort of task, some sort of script that could manage all of this in parallel, and just have it real neat and nice and not like broken. We tried it a lot in Ruby and we had a bunch of Rails engineers, and that didn't really work out, made a lot of mistakes. And so, I pull out the old Elixir book and actually finally learned about OTP, which is, I think, a little bit more important than the language itself. We built a really good application out of that. We just build on top of like, not even upon Phoenix, we just build on top of mix, like some simple task formats that we could easily monitor and restart. We did a little bit of dark magic around Postgres, after I got some recommendations from another developer called Avatni Vue. Avatni, if you’re listening. Thank you. That girl really knows her shit. Again, sorry for the French. This is how I got to Elixir and I just started to dig in more and you start digging, you find more gems, no pun intended. I just stuck with it. It makes sense, like to quote another developer from my team, “This erlang ecosystem as a lot of stuff that we really need in the web. And they had it like 30 years ago, like who could have known?” And I'm like, “Yeah, back to work.” [00:23:16] AH: I'll tell you who would have known, Casper. [00:23:18] FK: Casper would have known. Casper got the idea, that crazy Danish man. [00:23:22] AH: Ahead of the curve, Casper. [00:23:24] FK: Way ahead of the curve, like I'm so thankful that he annoyed the crap out of me. But he's just one of the sweetest guys you'll ever meet. If you ever come to Berlin and meet him. He's just really, really sweet. [00:23:35] AH: SmartLogic does Berlin company retreat, 2022. [00:23:38] FK: Really? I mean, if you do, you need to tell me, I show you all the cool bars and stuff. [00:23:44] AH: Let's do it. [00:23:47] EO: We actually had an office in Berlin for a hot minute. [00:23:51] FK: A hot minute, like did you try out and just all the developers went away? [00:23:55] EO: We had a salesperson that lived in Berlin, and then one of the developers was in Baltimore, his wife is a teacher and did a summer thing in Berlin, teaching somebody. And so, he worked there during the time we had an office and then when he moved back, I think it just shut down. [00:24:16] AH: Man, well, that's a shame. [00:24:18] FK: Berlin's awesome. I mean, I can just recommend it. [00:24:21] AH: I would love to live and work in Berlin, that'd be great. [00:24:24] FK: Highly recommend it. I mean, you have to deal with the fact that it gets like dark really early. [00:24:29] AH: Yep. I visited Stockholm once in the summer and was like, “This place is fabulous. I love it here. I want to move here.” And my mom said, “No, you don't. Do you know what happens in the winter here?” She said, “You don't want to move here.” And I was like, “Oh, you're right.” Endless summer is great. Endless nighttime in the winter is not great. [00:24:51] FK: One shall fear the long night. [00:24:53] EO: I just live in a basement at this point. So, it's all official lights anyways. [00:25:00] FK: But still, I mean, the nice thing about Berlin is that if it's summer, and the days are long, it's amazing. So, it's just like May, like start of May, till like end of September, it's just the best. You get like warm evenings you just like sit like the German culture, of course helps like after work, you just go outside, you grab a beer, like everybody's cool with it. And you're just like, you sit next to the river, and you just enjoy yourself. And then start of October, rolls around and like, suddenly everything's dark, and you're left in your room, remembering a warm summer, and it will not get better until like the next May rolls around. [00:25:37] AH: Until the next summer. [00:25:39] FK: Berlin itself, awesome. Like, if you ever come to visit, just let me know on the record. I'll give you a tour. [00:25:47] AH: Yes. On the record, everybody. Hell yeah. Pardon my French, sorry. I had another question again and it just totally disappeared. But I do have a German culture related question and no way related to elixir. A song that I learned in my German class growing up in high school was called [inaudible 00:26:05] and we sang it every Friday. And we had a little dance that went with it. It was so great. I mean, I think it's a song that you would teach your children, younger than high school. I recently went to, you know, an American Oktoberfest celebration, and they played it twice. So, my question is, is have you ever heard [inaudible 00:26:27]? And have I've been told a lie? [00:26:28] FK: I have to confess, I have not. I have not. I mean, I know that it exists, mostly because Google tells me so. So, it really like, I can't stand here and speak for all of German culture. I could try, but I wouldn't get that far. Because I mean, I'm one of 85 million, like there's a lot of regional differences. I didn't learn that particular song, but I'm also East German. So, my childhood was like a little bit different in terms of like, what songs I learned, what books I read. [00:26:58] AH: Fair. I recommend checking it out. It's quite fun. [00:27:01] EO: This says, it was released – Google is saying it was released in 2010, which feels wrong. [00:27:08] AH: That note, I think that's right, because I learned it my senior year of high school and I graduated in the year 2011. So, that feels right. [00:27:15] FK: I have never heard of it. And I also just noticed that I made a complete ass out of myself by like, proposing that it could be in my childhood, because I mean, my childhood was earlier. But I'm blissfully ignorant of like most of like current German culture, mostly because I work in a startup with lots of different like nationalities. And also like my partner's French, so we speak English at home. [00:27:41] AH: I think we talked about this during the Elixir Wizards conference that you also attended, and you said that when she's mad, she yells at you in French or something. And when you're mad, you yell at her in German, and then normally English. [00:27:56] FK: So, because we're on the record, I do not get to yell at her, ever. [00:28:00] AH: You're right. You're right. And she's always right. [00:28:03] FK: Not always, but like let's say most of the time. Is that correct? Okay, that's correct. I get the note from the off that that is correct, in fact. So, our household without going too much into private is a little bit weird because like, she's a French national, I'm German, but we speak English at home, because that's the language we started talking to one another. Because she also like works for an American startup and I work for Contentful, like the default language is English all the time, which is also why our English is probably better than our conversational French or German. [00:28:33] AH: That makes sense. [00:28:35] FK: Yeah, I mean, it's just I do speak German, mostly with my family and some German colleagues we're just like, have a big old fun because we can speak dialectic with one another, with most of them. Language for me is always a little bit chaotic because like the default is mostly English, which is also why I'm mostly ignorant of like German current culture, like German pop culture, just like goes right like past me, that's usually not something I enjoyed. So, you can probably like talk with me longer about like, what Netflix series I enjoy stuff like that. And that's all like original language of course. [00:29:07] AH: What Netflix series are you enjoying right now? [00:29:12] FK: Oh, God, it’s just a part where we need to talk about Squid Game and like – [00:29:13] AH: I haven't seen it. [00:29:14] EO: I haven't seen it either. But have either of you seen the show Oktoberfest about like 1910s or something? Oktoberfest is – [00:29:25] FK: Yes. It's really, really good. It was made by German, like public television, like ARD, it's an ARD production. And if you want to learn that language, it's one of the best showcases for different dialects coming together. [00:29:36] AH: I do love all forms of public television. [00:29:40] FK: This is where we praise PBS. [00:29:42] AH: I love PBS. Love PBS. Shout out to PBS. You’re great. [00:29:46] FK: Taught me more about space than any other channel on the planet. [00:29:50] AH: Exactly. Public Broadcasting System everybody. Support it. We love it. Claps for PBS. Not to be like too lame and get back into technical stuff. How did you enjoy the Elixir Wizards conference this summer? [00:30:04] FK: Awesome. I tend to like, I mean, of course with the pandemic and me being a little bit OCD about like health and stuff. I do enjoy conferences a lot, but I'm more an in-person conference goer, but I think for like a first round of this new conference, it was awesome. It was well organized. We used this tool with the bubbles I forget the name – [00:30:26] AH: Toucan. [00:30:27] FK: Toucan, which was really was really, really well organized in that sense, because you could like jump between the tables, and it felt more natural than just like, “Hey, everybody, here's our Zoom call. Who wants to share first?” [00:30:38] AH: Yeah, it's kind of like shouting over everybody. [00:30:39] FK: Yeah. So, that was really, really nice. I greatly, greatly enjoyed the talks, at least those I could attend to, because I had to, like run out on a second thing. So, yeah, as a first-time attendee, loved it. Also, the swag, amazing, and it just arrived, actually, like it took forever to arrive. Arrived last week or so. [00:31:00] AH: Only a few months late, but like it's fine. Whatever, [00:31:03] FK: German customs, they probably enjoyed the stickers. [00:31:06] AH: I hope they kept some. [00:31:07] FK: I think it was complete, but I really enjoyed like the swag in general, like the stickers with the reflective properties, really nice. [00:31:15] AH: Good. How do you maintain or trying to maintain like an active presence within the Elixir community, as somebody that works at a company that doesn't actively use Elixir? [00:31:27] FK: Well, here's a hard question. So, that's actually really tricky. The short answer is I don't most of the time, like sometimes you can find me on Twitter like retweeting and pretending I'm his like personal friend, but I'm not. I mean, the last time I saw a man I was handing him a giant 3D plastic of the Elixir logo, which we printed on the company 3D printer. It was 16 kilos, which was probably around 800 freedom units. I'm sorry, like somebody convert that. I think it's 30 pounds or something. So, I do struggle to maintain like an active presence or like a mentoring presence. I offered within the company to mentor people in Elixir, but most people were more interested in either like Golang, or architectural topics, which is also fine with me. I do most of my open source work these days in Elixir, and also try to give a little bit back by supporting the local meetup. We have our local Elixir group here. I know the organizer. He worked with my partner in a previous company. As soon as our new office opens, like we also will provide like the venue to do elixir meetup here in Berlin again. [00:32:30] AH: Nice. That's great to hear. It's always nice that there's meetups all over the place. [00:32:35] FK: Well, I mean, who organizes the meetup, who has done a tremendous job. Last time, I met him he was really frustrated that like the in-person meetups were kind of like dissipating due to COVID and he was really adamant and like getting back into like in-person meetings. I'm not sure how it is in the US at the moment. Germany is still kind of in this like state of not really lockdown, we're not locked down. But we're in this like, okay, please wear a mask everybody. Please like be mindful. Please have ideally like a certificate that you got vaccinated. So, it's still a little bit difficult to organize one of these meetups because you would have to adhere to certificate checking or all this good stuff. [00:33:12] AH: Do you think there are any drawbacks to Elixir as a language, anything that you wish it had that it doesn't? [00:33:20] FK: No, it's a perfect language, suits all my needs. Type system, I miss this, and big shout out to [inaudible] here who’s was the creator of Glean, highly productive individual. It's carried. Honestly, sometimes I look at my Twitter feed, and everybody's like, “Oh, like this, I released this over the weekend.” I'm like, “Boy, over the weekend I was sleeping man. I was tired.” So, highly productive individual who kind of also, I think saw it that way. So, he created a language on the beam as well, which is looks a lot like Elixir. But it's actually Typesafe. It's very much like an early alpha state, but it's usable already. Highly recommend checking that out. If you haven't. To me, Elixir is missing some stuff, like mostly a type system, like whenever you have like a large code base, a type system really helps to like refactor it and then be safe about it. I don't want to criticize the compile time, because I know a lot of people in bigger projects do. But for me personally, it was never an issue. And then you have like smaller stuff, I don't know, if you look at the beam is like a closed ecosystem. If you really wanted to – if you worked in a project where you needed to marry something to Java, for some enterprising reason. That would probably a little bit gnarly. [00:34:33] AH: Yeah. What's your favorite thing about Elixir? [00:34:35] FK: Immutability and pattern matching, because it feels the most natural. The pipe operator comes in a close second, because I like me some syntactic sugar, and it makes code a lot more readable. But overall, I think the pattern matching part is what changed my view on how we program things, especially in the web. I had a senior engineer explain the web once to me and I didn't get it at the time, because he was – and this is why we go back to Haskell. He's a Haskell enthusiast, and he explained to me that in the end, it's all just a big pipeline of functions. You send me a request, and I send you a response back, and everything in between is really just a function. I didn't get that. I didn't understand. I was like, “No, but there's like a database in there somewhere”, me being the junior, to a degree, still am. This view, like drastically really changed for me when it came to pattern matching, like, suddenly I was like, “Oh, okay, so I have like, three functions here and they all have the same name, but they match on different things, but they all go in the same pipeline.” So, that made sense. If I send you a JSON that matches like this particular key, or this particular key, or this particular key, or this particular sub key, like de-structuring stuff, crazy good. Having a specific function, and having like a very easy to follow line of functions, very easy pipeline of functions is just marvelous. Because you lose all of this, like, “Oh, this abstract factory created a proxy object class thing that I instantiated over here. Oh, my God, why am I reading this handbook? Please, someone shoot me.” So, not to hate on Java, but like, the bigger and more complex the frameworks get, I find, like debugging and just understanding what's going on really, really hard. I have a lot of note services these days where you get like, everything as a stack trace, but the thing you were actually implementing yourself. [00:36:24] AH: I hate that so much. We've all been there. None of this information is really useful. But thanks. Thanks a lot. [00:36:34] EO: I will say I think I've had that happen a few times in Elixir, but that's because it's like, you do something and some sub process blows up. It's just like library stack trace. It's like, “Oh, man.” [00:36:46] AH: You’re like, “Dang it.” [00:36:47] FK: I mean, you can like create piles of stuff in any language. So, I mean, like Elixir has, it always felt to me, once you get past this initial bar of like, why is everything like a pattern match error? I don't understand this. Why do you give me these, like, “Oh, I tried to match this on this. But here's the arguments, I tried to match them.” Once you get past this, it actually, it becomes quite – to me, it always felt like much more natural. If you have a function, you call it. You have the next function in the pipeline, and so on and so forth. And the stack traces actually, like become quite readable after a while. [00:37:20] AH: Yeah. Not to have a car analogy, because I know you're not into cars. I'm not into cars. I don't really know anything about cars, but like, you could drive a very, very, very nice car. But if you didn't know how to drive, like you would still crash it, right? You can use a really great programming language, and not know what you're doing and just create a pile of garbage. [00:37:39] EO: My uncle got a really, really nice car. At one point, it was like you want to test it out. And I was like driving like 35 miles an hour or whatever, like super boring, he was like, “Get out.” And then we talked and he was like – show me what it could do. [00:38:00] FK: To me, I've experienced this quite a bit because I had the pleasure of introducing a lot of like Ruby developers specifically to Elixir, especially at [inaudible 00:38:09], where we had a lot of like Ruby stars that just like took it upon themselves to learn Elixir, and I saw most of the mistakes like because Elixir has a little bit of a downside. It looks so friendly. It looks like Ruby. It's just Ruby, right? This is Ruby and then there's like a little bit of this process stuff over here. overjet just use Phoenix, it just makes stuff faster for you. See the response times go down and that promise is like very – what's the word – the promise is very promising. C level English everybody. [00:38:38] AH: No, that is A++ level English right there. [00:38:42] FK: The German word is [inaudible 00:38:44]. It’s like seductive. Thank you. Thank you, Florian for remembering that. So, it's very seductive promise to just tell somebody and then they're like, cool, I can do Ruby. So, I can just do Elixir. And this holds up until you get to OTP. At this point, I have to of course recommend Elixir in action where Zurich – I can't pronounce his last name explains how Gen servers come to be. And it's really just like a bunch of functions calling themselves all the time that there's a certain method to the madness. And that's when you then start understanding, “Okay, like the Elixir ecosystem is really nice entry into the world of erlang, which comes with OTP, which is just straight up everything you ever need in the web.” Actually, as at least on the back end, of course, [00:39:28] AH: What Elixir open source projects are you working on right now or have you been working on? [00:39:34] FK: So, I don't want to plug myself, because my stuff is mostly just me hacking away at something. I have to do a big shout out to Paul Gutsy here who's the initiator of the AdoptOSS project, which is written in Elixir. Specifically, it's a Phoenix project. The goal of this project is to help people find co maintainers for their GitHub repositories. So, I mean, we probably –everybody in this podcast room probably has written an issue that says something like, “Is this still maintained? Is the creator still around? Is the maintainer still around, please?” And this project really aims to reduce friction and finding new maintainers and commentators. Incidentally, like I was found through it OSS, as a co-maintainer AdoptOSS. And it's still looking for co-maintainers. I think overall, even if you don't want to contribute using the project to keep your own project alive, looking at you, NPM maintainers that, like have libraries that we all depend on forever, please don't go away ever, or find a co-maintainer. That's a really good project to check out. There is of course, I have to mention Exercism.io which is I think of Ruby project, but we have with really good Elixir track. Actually, Exercism for those who don't know it, is like a learning platform where you can learn different programming languages. In itself, it's open source. It has a great Elixir track maintained by the fabulous Angelika Tyborska, who is just plain amazing. She will even help learn the language, it's great. And finally, like if you want to check out my stuff, I'm currently working on something called Mimicry, which aims to use open API specs to produce mock servers. So, the idea is that you spin up a little server on your machine, you feed it a little open API spec, and it will just pretend that this API is now running on your machine. You can interact with it based on the spec. So, nice little exercise and dynamic supervisors, which is like the Elixir for the earning feature powering it, basically. [00:41:27] AH: That's super neat. Wow, that sounds awesome. [00:41:30] FK: I don't know, it doesn't work yet. It does work for git requests. I would love somebody to help me finish it at some point, [00:41:38] AH: But it will one day. [00:41:39] FK: Maybe. [00:41:39] AH: Maybe Eric will take a peek at it. [00:41:43] FK: Please don’t. It’s still my code. [00:41:46] AH: Don't say that. We need some confidence, glory and confidence. [00:41:51] FK: Always, always. It’s the best code on the planet. Most humblest software developer from Berlin. [00:41:57] AH: That's right. You kind of gave us a plug. But I do have one final question. It's a fun one because I know it's 11 PM your time. On your Twitter bio, you said that you are into video games. So, what video games are you playing right now? And then what's your favorite video game? [00:42:12] FK: Of all time or like of the last years? [00:42:15] AH: Let's say of the past year, let's say your favorite game of the pandemic. [00:42:19] FK: My favorite game of pandemic is probably still The Binding of Isaac. So, I'm a huge nerd for like old Zelda games. In 1993, when my dad bought me a telescope, so in his fifth attempt to buy me a telescope and still getting a broken one, I got a Super Nintendo and I just played like A Link to the Past like to death. I don't know, I played this for years and interests like, and The Binding of Isaac is just a nice like thematic continuation for me. Last year I love Doom Eternal. I’m a huge sucker for Doom, not just for the game, but also for the music. I'm also like a nerd for the engine itself. So, if you haven't read it, the Doom book is amazing. It's basically about the original engine, forgot the name of the author, it doesn't matter. Basically, the book describes on like, how the engine came to be and how it the company making the engine and making Doom initially made it and build. [00:43:12] EO: Is this the masters of Doom? [00:43:15] FK: It's the game engine black book for Doom written by a man, I assume. And then Fabian Sanglard, and it details all the intricacies of the now open source original Doom engine, which is just a fabulous read. If you're a little bit interested in like, cool, nerdy game engine programming. [00:43:33] AH: That's super fascinating. I truly like know nothing and I will not even pretend to say that it is my thing. Or that I want it to be my thing. But I really appreciate how much love people have for video games and how much they care. [00:43:47] FK: I mean, it's a little bit of a hobby. So, I don't know like it brings together like large masses of people. I think there is like I'm not sure how it is in the US these days. But in Germany, we finally arrived at like 1/3 of the population like gaming regularly. I think it's more than France, it's probably even more in the US. [00:44:05] AH: That's a pretty large population. A third is a lot. [00:44:07] FK: It's pretty ubiquitous, and like gamers as a whole are just like this large body of people. [00:44:13] AH: Wow, I'm over here trying to figure out how I can play Donkey Kong, on the Nintendo GameCube which I do not own. But it's a fun game. So, shout out to Donkey Kong, because you'll have fun. [00:44:27] FK: But I mean, I assume you do have hobbies though? [00:44:30] AH: I mean, yes, I do have hobbies. I love to cook and I love to bake. I love to dance, and in a non-pandemic world, I am a competitive karaoke singer. [00:44:40] FK: Competitive karaoke. I mean, you're in the US. So, everything's kind of competitive, right? I assume it’s a cultural thing? [00:44:47] AH: That's true. You might be right. We really do like to like, there's competitive corn hole and competitive ski ball, there's everything. [00:44:56] EO: There’s an article a few years ago about the – it’s like called 'Case for Being Mediocre' or something where it's like, everything has to be either the best or I can turn it into money. It's like, what if I just want to be a crappy painter and I just make crappy paintings because I like making crappy paintings, and I get joy? [00:45:16] AH: It’s all I want to do. I like that. I can't say that as a competitive karaoker, I do get very intense about wanting to win. So, I value somebody saying, “Come back down to earth.” [00:45:28] FK: Am I right in imagining you're doing like death metal pieces? Or like, you're just like – [00:45:33] AH: No, it's a lot of costumes and props. [00:45:37] FK: So, it's like really on the stage and public and you sing? Wow. [00:45:41] AH: It's like a theatre production. Yeah, we did, however, once do a rendition of Let the Bodies Hit the Floor. When we did it, where the singer, my teammates was, Sid from Toy Story, and we were all toys. So, we just kept falling over. It was very funny. [00:46:01] FK: Love it. Love it. [00:46:03] AH: I mean, yeah, you got to have something, right? [00:46:05] FK: In general. I mean, the general advice here is that if it's fun, and nobody gets hurt, you should just continue on doing it. [00:46:11] AH: Exactly. Then that's all you really need. Florian, could you say where to find the things you're working on? Specifically, Mimicry. [00:46:19] FK: Mimicry, you can find on my GitHub profile, which is just github.com/FlorianK. AdoptOSS, you can find it under the handle. So, I actually probably say this wrong, we probably would have to put this somewhere in the description of this podcast. It's like, adopt, and then OSS. But also, stylized as a little octopus. Yeah, Contentful, you can find on contentful.com. I highly recommend you checking it out. I'm also working a little bit on an Elixir SDK for it. So, if you're interested in that, I still need help for that. I also need people who adopt it so I can tell everybody we need Elixir SDK. [00:46:53] AH: Awesome. And big shout out to Casper and the broken telescope, of course, because that's why we're here today. [00:47:02] FK: It’s an awesome pen name, I just realized. [00:47:06] AH: Let's see if I can say it. Florian. [00:47:09] FK: Okay, A+. [00:47:11] AH: We'll leave it at that. I'm not even going to try again. [00:47:13] FK: I'm still following through with the soundboard idea. That's really like if enough people send me soundbites of saying the name and whatever, like pronunciation, they imagine it correctly. I'll just build myself a little soundboard. [00:47:23] AH: I really think we should do it. Everybody. Send it in, please. I think it would be great. Florian, thank you so much for joining us, especially given the fact that it is 11 PM your time. Thank you so much. It was great talking with you. [00:47:37] FK: It was a pleasure, as we say, [inaudible 00:47:38]. If you want me to come over again, like just chat. [00:47:47] AH: Love. Okay, going to put that one in the back of my brain. Well, everybody, that's it for this episode of Elixir wizards. Thank you again, Florian Kraft for joining us today. Elixir Wizards is a smart logic production. Today's hosts include myself, Alex Housand, and my cohost Eric Oestrich. Our producer is Bonnie Lander and our executive producer is Rose Burt. We get production and promotion assistance from Michelle McFadden. Here at SmartLogic, we build custom web and mobile software. We're always looking to take on new projects. We work in Elixir, Rails, and React, Kubernetes and more. If you need a piece of custom software built, hit us up. Don't forget to hit like, subscribe and leave a review. Follow @SmartLogic on Twitter for news and episode announcements. You can also join us on the Elixir Wizards Discord, just head on over to the podcast page to find the link. Don't forget to join us again next week for more on the impact of Elixir, and Florian, since you’re here, I’ll sign off this episode by saying, kudos. [END] © 2021 Elixir Wizards