From Hardware to Web and the Laravel Community with Johannes Güntner

Mathias Hansen (00:10)
Welcome back to Countdown to Laravel Live Denmark. I'm still your host Matthias Hansen and today I'm here with Johannes Güntner. Johannes, how's it going?

Johannes Güntner (00:20)
doing very wonderful. It's great to be here. How about you?

Mathias Hansen (00:24)
I'm doing great. I mean, I'm totally soaked from the rain, but apart from that, I'm doing great. But you, I love how you, so if you listen to this on the podcast app, you can't see this, but if you see them on YouTube, you can see Johanna has really gotten the mood for today and she's wearing the Level Live Denmark T-shirt, limited edition from last year.

Johannes Güntner (00:28)
Same here.

You

Yep. Thank you very much. Yeah, I even have the Laravel 10 Mark Mark. I drink almost from it every day. Yeah.

Mathias Hansen (00:47)
It looks great on you.

Are

you a coffee or a tea drinker?

Johannes Güntner (00:57)
Very much coffee. I like tea at the evening sometimes, but most of the time coffee, yeah.

Mathias Hansen (01:03)
Same here, same here. I don't know what I would do without coffee.

So Johannes, I want to start as always asking a little bit about how you got into computers. So what are your earliest memories of computers and yeah, just some computers actually. What are your earliest memories?

Johannes Güntner (01:18)
For me it's quite similar to Dan and Rasmus. I was exposed to computers quite early in my life because my dad was a computer engineer. I think the first operating system I've seen was Windows 95 and then pretty fast 98. At some point my dad showed me some visual basics. I don't know if you know about it, but it was like kind of a...

Mathias Hansen (01:34)
Yeah.

Johannes Güntner (01:44)
Windows thing where you can open in Word or Excel sheets where you can program some stuff with Windows forms. It was really fascinating for me. I was doing some video games and I tried to create with sprites. You have these PNG images and you cut them out and you make some animations with it. I tried to make a mini RPG game and it couldn't do a lot.

Mathias Hansen (02:02)
Yeah?

Wow!

Johannes Güntner (02:07)
one of my first experiments I did quite early, think I was like 13 or 15 or something. And because of that, because it really was fascinating for me and I didn't know what to do else, after school I started what we in Germany call an apprenticeship. I don't know if something like that in Denmark exists where you go to school and to work at the same time, kind of like you change it up.

Mathias Hansen (02:36)
Yeah, you get some practical experience, Hands on, yeah.

Johannes Güntner (02:38)
Exactly, yeah.

And it was like kind of an IT school thing and you have to do like kind of internships regularly. And at that time I learned my basics in programming and we even did some basic like web applications. But it wasn't PHP. It was mostly Java. They used Java's surflets. And it was okay. I didn't like it very much.

Mathias Hansen (02:58)
Okay, yeah.

Johannes Güntner (03:04)
I much more like C sharp to be honest at that time. I very got into like the .NET framework and did a lot of native Windows desktop applications. And yeah, I didn't have a plan. Like I finished this apprenticeship and I didn't have a big plan what to do next. So the best way for me just to continue the learning journey, I started studying.

technical computer science, which was kind of a more hardware oriented thing, where you would learn like C and C++ assembler, like a lot of embedded environments, where like most graduates would start at car companies in Germany and stuff like that. yeah, it was quite a popular course at the time. And I really love working on hardware.

Mathias Hansen (03:42)
Yeah, makes sense, yeah.

Johannes Güntner (03:50)
fully understand Dan, that he's super fascinated about this stuff and I really like it. But for me at the time, I wanted to build my own projects and work in client work. I didn't want to work directly at a company. And the problem is there aren't many hardware-oriented projects out there where you can go in there with client work. Most of the stuff is in big companies. So it's rarely done through client work.

Mathias Hansen (04:17)
Yeah

Johannes Güntner (04:20)
So I bounced back to C Sharp and tried to do some projects there. But I wasn't able to live from that really much. So I did some internship. And by chance, an old friend asked me, he started a company and he did some web applications and he asked me if I could work there. And there they did Laravel. And that was like, was 2019, I think.

Mathias Hansen (04:44)
Aha!

Johannes Güntner (04:48)
That was the first time I really got into web programming. Doing web applications and working with Laravel and PHP. It was a really new perspective. Coming from native programming and hardware-oriented programming and getting into web applications. It was a hard time. It took four to five months until I fully grasped how to structure everything.

But I really enjoyed doing it and ever since then I like I work with Laravel. Yeah

Mathias Hansen (05:24)
So you don't regret getting into web development at all.

Johannes Güntner (05:28)
No, all. I still have some C-Shop applications that work, that are still out there. But the problem is that I never fully figured out to structure my C-Shop applications in a way that makes them easily maintainable. I think it's possible. I think it's very much possible. But in my view, as a solo developer or in a small team, it's from my perspective at least.

Mathias Hansen (05:43)
Okay.

Johannes Güntner (05:53)
It's a bit hard to structure and maintain your application in the .NET framework. It's possible, but it's really kind of structured for larger teams. That's kind of my experience I have with it. That's why I really fell in love with Laravel, because as most of you know, Laravel is made in such a way, and like PHP itself, that it's really...

Mathias Hansen (06:05)
I see, yeah.

Johannes Güntner (06:20)
easy to get into it at first. You don't have to think about a lot of things like authentication, routing, simple views, stuff like that. It's really easy to get started and really easy to maintain the stuff if you know what to do. That's really kind of where... Yeah, still to this day I love using Lettable.

Mathias Hansen (06:42)
Well that's great to hear since you're speaking at a level conference so that's a must right?

Johannes Güntner (06:46)
Makes sense.

To be honest, I'm a big Vue fan as well. I really, really like Vue. Vue 2 was already incredibly awesome, but I also love the new structure in Vue 3. And the symbiotic relationship between Laravel and Vue with inertia is my main selling point to this day to use Laravel, to be honest.

Mathias Hansen (07:11)
But I that's also love shared philosophies on documentation and like batteries included and those kinds of things, right? I think that's also why there was a really big layer of adoption right away when Vue came out. That's how it felt at least.

Johannes Güntner (07:19)
Exactly,

That's my experience. At the company where I started, did only Laravel with JavaScript. They did a lot of JavaScript stuff with Blade combined. It worked out quite okay. But I always felt like something was missing. I think View was the final piece in this kind of...

Mathias Hansen (07:31)
Hmm?

Oh yeah, you saw a view and

like, oh my god, where I have to spend my whole life, yeah.

Johannes Güntner (07:47)
Exactly,

very much.

Mathias Hansen (07:50)
That's awesome. So I'm actually curious since you mentioned C sharp. Have you ever done any significant web development with ASP.net and C sharp?

Johannes Güntner (08:00)
Not really, to be honest.

I did some experiments, but I've never got the gist of it. So I always stick to native applications. It's called WPF. Yeah, exactly. That's what I learned in school. That was the only thing where I felt comfortable doing it without...

Mathias Hansen (08:15)
desktop apps or...

Johannes Güntner (08:26)
As soon as I saw web development, saw the potential security risks that can come up and I never felt really comfortable getting into it. And I was really scared of the whole thing because a lot of people, when I said like, okay, I try to get into web development, they said like, yeah, you have to be careful like for different browsers versions and different browsers. And I think back then that was really true. It was difficult to maintain web applications like when you had Chrome and

Firefox and back then even Internet Explorer and it was a scary it was a scary time to be a web developer in a way Not really, but that was what how I felt so I tried some things I did some HTML and CSS and JavaScript all the basics, but I never felt really comfortable using like or doing web applications until I like fell into Laravel Yeah

Mathias Hansen (08:59)
yeah, yeah.

Yeah, I guess a really interesting thing with Laravel is that you get so much, I guess going back to batteries included, but

but from a security point of view too, the fact that, you know, blade per default will escape and prevent, you know, injections in your blade templates, excesses and stuff like that. But also like you kind of have to try hard to, to end up with a SQL injection vulnerability too, because when using eloquent, you know, that's not really, that's not really happening very easily.

Johannes Güntner (09:56)
Yeah, exactly. the community part is also... I think I don't say something new here. I think the community part is a big part of Laravel and PHP also. Because if you reach out online, it doesn't matter if it's on Twitter or if it's on Blue Sky or just going through the docs or LaraCasts, you find a lot of resources and that makes you really comfortable.

working with Laravel, with the environment, with the packages that come with it and all the community packages that are out there. yeah, it really is overwhelming, but in a positive way.

Mathias Hansen (10:31)
yeah, so many!

And I think also goes to show when you go to a conference or a meetup and stuff like that. At least in my experience, people are always very friendly and helpful in general and welcoming, right? Especially welcoming to new people who are curious about Layable, who haven't worked with before. They come on in, join the club, let's work on something together, right?

Johannes Güntner (11:00)
Very much so. mean, the thing is, when I got introduced into Laravel, that was basically more or less the start of COVID. So that was kind of a point where, okay, where is the community? Where can I reach out? So it was only online at the time, which was already enough to get used to it and learn so many new, like meet so many people online. But then I think in 2021, together with the...

Mathias Hansen (11:24)
Yeah.

Johannes Güntner (11:29)
I went to our first LARICON, and it was LARICON EU in Amsterdam. They made it bit smaller because there were still some restrictions and stuff, but it was overwhelming. was like, wow, there so many people out there and they all want to help you somehow. Yeah, it was a really cool experience.

Mathias Hansen (11:36)
Mm-hmm.

Right.

Must have been a

pretty intense experience too with all these people sharing the same interests. That's at least how I remembered it as well. All these other people are interested in the same stuff as I am.

Johannes Güntner (12:04)
Yeah, exactly.

It's really interesting in the same thing because when I spent some time in Tokyo during my studies and I already went to some tech meetups and stuff and the people there were also really awesome. But it was really diverse. It was like JavaScript people, C sharp people, view people, a lot of different...

like groups, they shared the same interest in terms of coding, but there was no cohesive system or cohesive framework or group that come up with it. It was wonderful as well. So I don't say one is better, but it was really overwhelming, as you said, to see so many people that really kind of cheer and work towards the same goal, of, with Laravel.

Mathias Hansen (12:31)
Hmm?

Yeah, yeah,

definitely. So Johannes, do wanna give us a little teaser sneak peek on your talk at the conference?

Johannes Güntner (13:01)
Yeah, I don't want to talk about too much. I think that goes for everyone. I think that to be honest, there isn't a lot of secrets there. I I will talk about minimalism and maintainable code with Laravel. absolutely, it's still me. Even if I'm talking about that, I still struggle to this day.

Mathias Hansen (13:04)
That's Yeah, exactly.

Mm-hmm. We could all use that.

Johannes Güntner (13:29)
to write maintainable code. And I think that comes especially because I'm mostly a solo developer. But for small teams especially, or if you're a solo developer, it's sometimes hard if you have multiple projects to keep everything maintainable. Like you have different customers, like different clients call and they need something very fast. so you have to kind of like, yeah.

Mathias Hansen (13:56)
It's a constant struggle, right? Between doing good work, but also fast, you know. ⁓

Johannes Güntner (13:58)
Exactly.

Yep, exactly.

you always have... It's kind of a catch-up game where you write a quick thing and you forget about it and then a couple of weeks later you change something like, no, what kind of mess have I created? I think that's an experience for everyone. And I tried in the recent months, or let's say in the last two years, I tried to come off...

with a strategy to kind of just logically step by step how can I approach that, especially if I am in kind of a situation where I have to change something quickly, but still have in mind how can I transition this over to something that is still maintainable, even if I don't have a lot of time. And the thing it really is, there are not a lot of secrets. It's just about, I think a lot of people hear this a lot of time, but I...

I repeat it again. Stick to the basics, stick to the framework's rules and don't create a lot of things that you think are good, but you're just trying around. That's kind of the gist of the whole talk, to be honest. But of course there's more.

Mathias Hansen (15:10)
Yeah,

it also sounds like, you know, trying to create a strategy for how to approach this because, you know, many people might consciously know, I, I should be doing it this way, or I should, you know, be writing, you know, maintainable code and things like that. But that's, it's easy to

to know that, but it's hard to actually, how do I do this in practice on a daily basis with a deadline that's looming and things like that, right? Like how do you actually do this, right?

Johannes Güntner (15:40)
Yeah, exactly. also what comes with that is also, I should test. You always hear on conferences, online, in blog posts, everyone is saying you have to test all your stuff. And of course, they say you have to have the time to do that. But sometimes you're really sitting here and you have to ship something today or maybe tomorrow and you really are kind of tired.

It's late in the evening, and you've just finished the feature. Yeah. And you're like...

Mathias Hansen (16:09)
Friday afternoon, yeah.

Johannes Güntner (16:12)
Do I really have to test that? But of course we have to. But how can I approach this to not let it go and not test? But how do I do that? And that's also part of the talk. And to be honest, we all can be extremely thankful for Nuno for creating Pest, which makes it really easy to write maintainable tests.

I think that really isn't a secret. yeah, that's kind of also part of the talk.

Mathias Hansen (16:39)
You

That's awesome. You're have a sponsored link in the beginning, know, sponsored by Pest. Make sure you get the affiliate. No, I'm just kidding. Johannes, I can't help noticing you have the Clean Code book right behind you on your bookshelf. Are you also a big fan of that book and has that inspired any of the ways you're approaching, you know, writing maintainable code?

Johannes Güntner (16:49)
Kind of, yeah.

Yeah, it's...

That's actually not. It's not my book. It's actually Di's book. But it fits.

Mathias Hansen (17:15)
Alright, we'll skip to the next question then. That's funny. We know how it is. We're always on a video call. You have to have a background with something interesting in the background for icebreakers and something to talk about while everybody's getting on the call. So it's nice to have something behind you.

Johannes Güntner (17:18)
Yeah.

That's true. But I'm actually what I'm proud. I'm most proud of is actually this one from the Lara con us. I realized

Mathias Hansen (17:42)
Yeah!

was a limited edition PHP Elephant, yeah.

Johannes Güntner (17:43)
PHP Elephant.

I've seen that, like, we went to Laracon US and because Di was talking, we were checking out the stage before, and I was seeing the elephants, I was like, I have to have one. It looks so cool. Yeah.

Mathias Hansen (18:00)
That's awesome,

so you brought one home in your suitcase? Yeah, definitely.

Johannes Güntner (18:03)
Yeah, think Di had

one as well, but I'm not sure if she... I think she still has one as well.

Mathias Hansen (18:09)
Yeah, yeah, I mean, I've seen some people like my coworker TJ, I think he has a small herd of elephants at this point, you know, collecting them over the over the years slowly. And there's so many additions to I think that's actually a whole website dedicated to all these different peachy elephants. Got to catch them all, right?

Johannes Güntner (18:25)
Yeah, yeah.

It's

kind of crazy, huh?

Mathias Hansen (18:29)
That's really cool. Well, you were of course at Level Live Denmark last year. So do you have any recommendations for anything people should see or do or eat in Copenhagen? Or is anything in particular you like, I want to do that this year.

Johannes Güntner (18:44)
To be honest, D &E, we have booked our hotel after the conference as well. So we will spend some additional time in Copenhagen, because we did that last year and we really enjoyed Copenhagen in general. It's a really relaxing town. And what actually surprised me the most is the metro system, because it reminded me very much of Tokyo.

Mathias Hansen (18:50)
Yeah.

Hmm?

Johannes Güntner (19:08)
I love the Metro system in Tokyo. The Copenhagen Metro system is kind of a mini version from Tokyo. That's how I feel at least. But still, the electronic ticketing system was really easy to use. It was reliable, at least at the time. I'm not sure if it's a general thing, but it was always on time. It looks really cool.

Mathias Hansen (19:10)
Interesting, yeah.

with emphasis on mini.

Johannes Güntner (19:37)
like the above lines where it's really like, it felt like Tokyo a bit. So I...

Mathias Hansen (19:44)
Yeah, and it's

driverless, right, which is pretty rare in Europe, I would say.

Johannes Güntner (19:47)
Exactly. It's

very rare. I've never seen... In Tokyo, are some of those where there's no driver, but most of them still have one. So that was really a unique thing. also the river transfers were extremely cool as well. Like traveling from the...

Mathias Hansen (20:05)
The water bus

or

Johannes Güntner (20:08)
like traveling from the hotel to the conference with the... how do you call it?

Mathias Hansen (20:10)
Yeah.

I we call it like a water bus, like the ferry, right? Yeah. It works like a bus, but on water. Yeah.

Johannes Güntner (20:17)
Waterbrass, yeah, the ferry, exactly, exactly. That was kind of... Exactly.

It was kind of event of its own. I've never seen something like that working so well. I've traveled some ferries over the river and stuff, but it was really cool. And I think it's electric.

Mathias Hansen (20:32)
Yeah, because it's a very short

trip, It's like, what, 10 minutes or something? Yeah.

Johannes Güntner (20:36)
Yeah, it was really

short.

Mathias Hansen (20:39)
So the fun thing about the metro system in Denmark or in Copenhagen, I should say, as well is, because I really love it too. It's a shame it's not, you know, does not love of routes. It's a pretty small system. But the reason why it's so modern and also reason why it's so small is because it's quote unquote brand new. We were like the last major city in Europe to get in a subway system.

that's definitely part of reason too. I mean we have other above ground train options like the S train is usually the one covering everything but yeah it's I enjoy using it too when you have a chance.

Johannes Güntner (21:19)
Okay, didn't know that. Cool.

I'm really looking forward to that again, aside from the conference of course. ⁓ One thing I can recommend, I don't know the name, I should have looked it up. It's not unique to Copenhagen I think, but together with Dian Marcel from Beyond Code and Steven, I think everyone knows him, he's like the security Laravel guy, he spoke at... Exactly!

Mathias Hansen (21:29)
I love that, yeah.

Stephen Reese Carter from Australia, yeah. Yeah, yeah.

Johannes Güntner (21:48)
He spoke at the last conference in Denmark, at La Reva Live. Together we went to a local board game restaurant. That was such a cool experience. Marcel had to go there because he's a board game freak. It was such a cool experience. So many board games. Marcel chose one for us. It was a fun time. It was really fun time.

Mathias Hansen (21:51)
Yeah.

Yeah, yeah.

So it's like a restaurant or cafe and there's just whole bunch of board games and you can like just play them while you have a cup of coffee or whatever. That sounds super fun.

Johannes Güntner (22:21)
Yes, exactly. It was

super fun. I can look up the name, maybe we can put it in the description or something. Yes, of course.

Mathias Hansen (22:29)
Yeah, we can the show notes, that would be awesome. Yeah. Yeah,

I really love the idea of doing that. And I also love the idea of going with someone like Marcel in this case, who like, I know the rules for this game. I can introduce you guys, we can get going. Because sometimes, for me at least, it's intimidating to pick up a board game you haven't played before and try to figure it out with a bunch of other people. Might take a while to get started.

Johannes Güntner (22:48)
Yeah, all the rules, yeah, that's true. That's very true. Yeah, think... Yeah,

very much. But like, they had a lot of board games, but I think Marcel might even have more board games. I'm not sure.

Mathias Hansen (23:01)
Maybe he should start a board game cafe someday.

Johannes Güntner (23:03)
Maybe

he will. That's his thing when he's older.

Mathias Hansen (23:08)
like retirement job yeah I can see that

that would be cool just collect your whole life and then some point you're like I'm done with computers let's let's crack open all those board games and put them to good use yeah I love that

Johannes Güntner (23:21)
Marcel,

if you're hearing this, it's a good idea.

Mathias Hansen (23:24)
It was our idea, We'll have to some royalties for that, no. But that'll be fun. I'll definitely come visit Marcel if you're listening to this. I'll definitely come visit and play. For sure. Cool, well we are basically running out of time here. Trying to keep it short and sweet, of course.

Johannes Güntner (23:26)
Yeah, yeah, basically it was your idea.

Hahaha

Mathias Hansen (23:44)
So it was really nice to talk to you, Hannes. Really looking forward to seeing you at Leavel Live Denmark, but also, of course, listening to your talk. That's going to be really interesting.

Johannes Güntner (23:53)
Yes, I'm really looking forward. It's basically my first tech talk in general. So I'm kind of a bit afraid, but I'm excited in a positive way. And I'm like, I'm mostly looking forward to like talk to all the people, meet new people, meet all the friends I already know, like Marcel, like he's in Germany as well. But like we're so far apart. It's really hard to meet.

Mathias Hansen (24:17)
It's a big country,

people don't realize that, yeah.

Johannes Güntner (24:19)
Yeah, very much. So really looking forward to that. And hopefully some new swag. I'm not sure, but let's see.

Mathias Hansen (24:27)
I can almost guarantee that it be some new swag again. For sure.

Johannes Güntner (24:32)
Okay, perfect. Okay, thank you so much, Matthias.

Mathias Hansen (24:34)
Alright,

thank you Johannes for taking your time, really appreciate it.

Johannes Güntner (24:39)
Nope,

thank you.

Mathias Hansen (24:41)
That was Johannes Günther. If you want to hear more from Johannes and the other speakers, please go ahead and buy a ticket at laravellive.dk and come join us on August 21st and 22nd in Copenhagen.

From Hardware to Web and the Laravel Community with Johannes Güntner
Broadcast by