Magikcraft – Teaching Kids to Program Using Minecraft with Joshua Wulf
Tags: webdev, gamedev, javascript, minecraft
Published: 2021-11-24 14:19:58

[Relicans](https://therelicans.com) host, [Ali Diamond](https://twitter.com/endingwithali) talks to Developer Advocate at [Camunda](https://camunda.com/), [Josh Wulf](https://twitter.com/sitapati), about becoming a self-taught programmer at the age of nine, accidentally finding himself in a mentoring position teaching kids how to program in [Minecraft](https://en.wikipedia.org/wiki/Minecraft), and then creating [Magikcraft](https://www.magikcraft.io/), which allows people to write JavaScript code in your browser and then run the code on a multiplayer server.  

Should you find a burning need to share your thoughts or rants about the show, please spray them at devrel@newrelic.com. While you're going to all the trouble of shipping us some bytes, please consider taking a moment to let us know what you'd like to hear on the show in the future. Despite the all-caps flaming you will receive in response, please know that we are sincerely interested in your feedback; we aim to appease. Follow us on the Twitters: [@PolyglotShow](https://twitter.com/PolyglotShow).

{% podcast https://dev.to/polyglot/magikcraft-teaching-kids-to-program-using-minecraft-with-joshua-wulf %}

Jonan Scheffler: Hello and welcome to [Polyglot](https://twitter.com/polyglot), proudly brought to you by [New Relic's](https://newrelic.com) developer relations team, [The Relicans](https://therelicans.com). Polyglot is about software design. It's about looking beyond languages to the patterns and methods that we as developers use to do our best work. You can join us every week to hear from developers who have stories to share about what has worked for them and may have some opinions about how best to write quality software. We may not always agree, but we are certainly going to have fun, and we will always do our best to level up together. You can find the show notes for this episode and all of The Relicans podcasts on [developer.newrelic.com/podcasts](developer.newrelic.com/podcasts). Thank you so much for joining us. Enjoy the show.

Ali Diamond: Hi, everyone. I'm [Ali](https://twitter.com/endingwithali). I'm [@endingwithali](https://www.google.com/search?q=endingwithali&oq=endingwithali&aqs=chrome.0.69i59j0i10i512j69i60.3085j0j7&sourceid=chrome&ie=UTF-8) on everything, including [Minecraft](https://en.wikipedia.org/wiki/Minecraft), which will be relevant very soon in the conversation. But welcome back to the [Polyglot Podcast](https://twitter.com/PolyglotShow). Today we have a super exciting guest all the way from across the globe from where I am, [Josh Wulf](https://twitter.com/sitapati).  

Joshua Wulf: Hey, Ali. Thanks for having me on the show.

Ali: Yeah, thank you so much for coming on. I do this every time, but you never get a good story unless it's from the person who tells it or who lived the story. So, why don't you tell us a little bit about yourself?

Joshua: Sure. My name is Josh Wulf. I'm [TheLegendaryJoshWulf on Twitch](https://www.twitch.tv/thelegendaryjoshwulf). And I'm in New Zealand, which is a small island nation in the South Pacific. I'm married. I have a 19-year-old son. I'm a Developer Advocate at [Camunda](https://camunda.com/). I program in JavaScript mostly, [TypeScript](​​https://www.typescriptlang.org/). I started programming when I was like nine years old on a programmable calculator. I taught myself to program. So I've been programming now for like 38 years. 

And so, the programming languages that are around now didn't exist, most of them when I started programming. And the languages that I started professionally programming in in my first job pretty much disappeared. My first professional job was programming with [Delphi](https://en.wikipedia.org/wiki/Delphi_(software)), which is still around, but hardly anyone uses it. So I'm all about the technology and the future. I basically am still waiting for the future to arrive. I read heaps of science fiction when I was a kid. I'm all about the apocalypse, battling with robots and aliens. I'm here for it.

Ali: Okay. There is so much to unpack with just that short, little introduction. And I definitely want to dive into this and to what you said. But first, let's just talk about being self-taught at the age of nine. How did you realize that what you were doing was programming? And what was that next step that you took to make yourself even more into the world of programming?

Joshua: So I've met a few people actually because I spent three years as a technical recruiter recruiting developers. And I met this one guy from Ukraine, and he was like me; he started to program without a computer. So back in the mid-80s, when I started, no one had computers and especially not in New Zealand, which is like ten years behind everywhere else. 

There's a joke for people who are from Australia. And there's kind of a rivalry between Australia and New Zealand, maybe a little bit like Canada and the U.S. People come over from Australia, and they're like, "Okay, folks. We've landed in Auckland, New Zealand, so please set your watches back ten years." And so it's like nobody had computers. 

So both this guy in Ukraine and I started programming on paper. So writing out programs on paper, and there was no computer to execute them. So it was an interesting way to learn. And I still do program on paper a lot. If I'm working on something, I'll sit there and write out programs by hand.

Ali: Okay, let's unpack this a little bit more, programming on paper. Because the only programming on paper I've had to do was for my computer science courses in school where they're like, "Write out this program." So you said you started programming on paper. So you didn't have a computer to execute. So what exactly were you building there? What were you writing?

Joshua: I can't remember the first programs that I was writing. But I started programming in [BASIC](​​https://en.wikipedia.org/wiki/BASIC) and then in [Pascal](https://en.wikipedia.org/wiki/Pascal_(programming_language)) on paper. I got books out of the library and read through the books, and then just started writing the programs out. It was epic. This is how I got into the whole [Minecraft Magikcraft](https://www.magikcraft.io/) thing because it's like magic spells. That's what it was like for me. I was into [Dungeons & Dragons](https://en.wikipedia.org/wiki/Dungeons_%26_Dragons), and fantasy, and science fiction. And these two things came together for me.

Ali: Okay, the viewers can't see this, but literally, my jaw is dropping. You were like ten years old writing [BASIC](​​https://en.wikipedia.org/wiki/BASIC) programs on pieces of paper and being like, I don't know how this works, but this is what I have.

Joshua: Yeah, exactly.

Ali: That's so epic on so many scales. That's amazing. And you brought up the [Minecraft](https://en.wikipedia.org/wiki/Minecraft) yourself. You told me before we started that you're really into Apocalypse prepping, which you just said, and [Minecraft](https://en.wikipedia.org/wiki/Minecraft). And I said earlier today I'm [@endingwithali](https://www.google.com/search?q=endingwithali&oq=endingwithali&aqs=chrome.0.69i59j0i10i512j69i60.3085j0j7&sourceid=chrome&ie=UTF-8)) on everything, including [Minecraft](https://en.wikipedia.org/wiki/Minecraft). Let's talk about this [Minecraft](https://en.wikipedia.org/wiki/Minecraft) project that you're working on because I was looking at it. So you're creating the ability for people to program JavaScript in [Minecraft](https://en.wikipedia.org/wiki/Minecraft). Unpack it a little bit for me. 

Joshua: Sure. 

Ali: Also, drop the name. Drop the name for us.

Joshua: [Magikcraft](https://www.magikcraft.io/), it's called. Magik with a K, so it's M-A-G-I-K-C-R-A-F-T. And the website is [magikcraft.io](https://www.magikcraft.io/). So here's what happened. My son's 19 now. He was 14, and I said to him, "Hey, are they teaching you how to program at school?" And he says to me, "I think they're going to do that next year." I was like, "Oh my God, you're almost too old. You're 14. I was programming when I was 9."

Ali: Hey, no one's too old to start learning how to program. 

Joshua: Yeah, exactly. And wait till you hear about what happens when kids' parents come, and they're like, "I don't know anything about programming." I'm like, "That's not a problem. Anyone can learn at any age." So I was working as a technical recruiter. I'm interviewing this guy on the phone, just asking him about what he does. And he says, "I do this thing called [CoderDojo](https://coderdojo.com/)." I'm like, "What's that?" He's like, "Well, on the weekends, I go to the local public library, and we volunteer there, and we teach kids to program. 

So I remembered that, and I thought, I wonder if there's a [CoderDojo](https://coderdojo.com/) in Brisbane, where we were living at the time. So I Google it up, and then I find out there is one. And the details about it there was that it was free to attend. But apparently, it books out super fast because it's free, and everyone wants their kid to learn to program. Spaces are very limited. So the registration drop is at 10:30 on a Wednesday, which is a weird time. And it was right in the middle of a meeting that I had. 

Anyway, I tell them in the meeting like, "I got to go online and book this thing at 10:30." And 10:30 rolls around, and I pull out my phone, and I go to the [Eventbrite](https://www.eventbrite.com/) site. But I can't find the event because the interface is different from my desktop, where I checked it out before. And then they're like, "Hey, are you going to be in this meeting? What's going on?" I'm like, "Just give me a second here." And I find something and I book it. It's done. Then I go back to my desk after the meeting, and it says, "Thanks for signing up for the [CoderDojo](https://coderdojo.com/) Mentors Networking Session." I'm like, oh, I signed up for the wrong one. I go back to the registration for the kids, and it's full. 

Ali: Oh no.

Joshua: So I ring them up. It was run by the council. And I say, "Hey, here's what happened. I wanted my son to learn to code. But I accidentally signed up for the Mentors Networking Session." And then they say, "That's okay. Mentors' kids can always come." So that's how I ended up becoming a mentor. So I was like, okay, I thought I was going to drop my son off on a Saturday, and someone else would teach him to code, and I can read a book or something. 

Anyway, I wind up becoming a mentor. I roll up there, and they say, "We got no curriculum or anything. You just bring whatever you're passionate about, and the kids will catch your passion for technology from you." I'm like, "Okay." So I roll up there, and then there's this room full of kids on a Saturday. And they're all just like, yo, I didn't sign up for another day of school. I want to play games. And then the kids there want to play games together. 

So now I'm trying to teach these kids to program, but I'm competing with their desire to play games and to play with each other. And after a session or two, I'm standing at the front of the room at the end of the session. And I look up the back, and the librarians have put some books there, and one says, Learn to Program With Minecraft: Transform Your World with the Power of Python. And I just think, how hard can it be? I just got to stay one chapter ahead. 

So I say, "Hey, how would you kids like to learn how to program in [Minecraft](https://en.wikipedia.org/wiki/Minecraft)?" And they just went nuts. They went ballistic. And I was like, okay, we're going to do this. So that's how I stumbled into programming in [Minecraft](https://en.wikipedia.org/wiki/Minecraft). It turned out to be more complicated than I thought it would. So fast forward a few years, and I built a system where kids can program in their web browser, and then they can run the code immediately in a [Minecraft](https://en.wikipedia.org/wiki/Minecraft) server. And I went with the metaphor of magic because magic is a power that allows ordinary people to do impossible things by saying special words, which is what computer programming is.

If you think about it, we literally create worlds from nothing by knowing the magic words to say in the spell. And if you get a magic spell wrong, instead of a golden horse coming out of the fire, a demon comes out, or nothing happens. And so programming is a bit like that. And so I was like, there are so many parallels that I can use here. And kids were really into Harry Potter, so it was like, okay, let's make all the API calls like Latin. And then we'll use gamification so the kids can have defensive spells and attacking spells throwing other players in the air. And it just went from there.

Ali: Wow. So when they write the programs, is it learning to program using [Minecraft](https://en.wikipedia.org/wiki/Minecraft), or are they building things in [Minecraft](https://en.wikipedia.org/wiki/Minecraft)?

Joshua: Well, the very first one that we did was we had to develop what we call incidental learning because the kids are like, this is boring, but they like to play [Minecraft](https://en.wikipedia.org/wiki/Minecraft). So we're like, how do we find something that the kids want to accomplish in [Minecraft](https://en.wikipedia.org/wiki/Minecraft), and we put an obstacle in the way so they can't do it, and the only way they can overcome it is magic? So the very first one we did was we created this big room where there are these platforms that you have to jump on to get up the top to get out of the room, like a massive underground. 

And the platforms are too high for the [Minecraft](https://en.wikipedia.org/wiki/Minecraft) player to jump, so they can't jump there. But then they can find this magic spell, which is like a hologram, and it's an API call. And then, when they type it into the chat, it gives them a link. They go to the link, and it takes them to their web browser. And it shows them how to write a simple spell calling this API call, which makes them able to jump massively high. And then they go to cast the spell, and then they can jump to the platforms one to the other to get out of the room. So it's like they want to get out of the room. They don't want to learn to program necessarily, but they learn to program in order to get out of the room. 

Ali: Wow. 

Joshua: We had to link those two things together.

Ali: So it was a combination of coding and actually playing the game.

Joshua: Yeah. And then we were like, well, how do we get the kids to come back week after week? It needs to be like Netflix, like a season with episodes. And if you miss one of the...nobody wants to miss the episode. These days, you can binge-watch. But back in the day, it used to be like every Thursday night; it’s the A-Team or Knight Rider or something. And you wanted to see what would happen next in the story. So we were like, let's make a story and have it episodic so that it links the kids into the narrative. 

And so we made the frame story that Megacorp, the evil Megacorp, has stolen all of the magic in the land. And they've hidden it in different places. And you have to go on the hero's journey, a quest to recover all of the magic and save the land from evil Megacorp. And so, you would go around to these different scenarios and find these magic spells hidden in different places. And we would basically keep inventing the story one step ahead of each of the lessons. 

So one time, we hadn't prepared any additional scenarios for the week. And so the kids, because they had already solved the challenge the week before, they were like, "No, we already did this. We don't want to do it." So I was like, well, here's thinking on my feet. I was like, "Well, you need to be able to do this jumping spell with a variable amount of power. So we're introducing parameters and arguments in order to get to the space station." And they're all like, "What? The space station?" I was like, "Yes, the space station. Do you guys want to go to the space station?" And they’re like, "Yeah, the space station." 

So now they're re-motivated to do exactly the same lesson again, introducing parameters because they want to go to this space station, and it's the idea of the space station. So we finished the lesson. They all learned how to add a parameter so they could have the power argument to their jump function. And then the next week, it was like, "Okay, guys, we need to build a space station this week." So we just went online and found a prebuilt space station and then the next week introduced that.

Ali: Yeah, it seems like you're really great at story crafting, which I imagine ties into your love of [Dungeons & Dragons](https://en.wikipedia.org/wiki/Dungeons_%26_Dragons), correct?

Joshua: Yes. 100%.

Ali: Are you a Dungeon Master?

Joshua: Yes, I am.

Ali: So was this before or after you became a Dungeon Master?

Joshua: This is after. This is like the fulfillment of everything for me. It was so epic. I was in Japan at the [CoderDojo](https://coderdojo.com/) Foundation event there, DojoCon. And so good, I'm wearing a black robe with flames on it and a gold chain around my neck, and this [Magikcraft](https://www.magikcraft.io/) hat that I made. It was like a witch's kind of hat, a wizard's hat. And I put sparkly things on it and bells and stuff. 

And then, I gave this demonstration where I showed them how to make karaage chicken in [Minecraft](https://en.wikipedia.org/wiki/Minecraft). And I did it by spawning 10,000 chickens in this massive column all the way up into the sky and then casting these spells that cause lightning and fireballs to come down and nuke them all. And then, at the end of it, there's like one burning chicken left. And I'm like, and that is how you create chicken karaage in [Minecraft](https://en.wikipedia.org/wiki/Minecraft). And I was just like, I'm living the dream right now. I'm a wizard in Japan.

Ali: That's awesome. That's so cool. So it feels like, yeah, this is like a combination of all your skills. And speaking of your skills, this also super ties into you as a DevRel now and knowing how to teach and communicate efficiently. And I'm super curious to hear because you brought this up a lot earlier as like you were working as a recruiter. And it seems like you've had a lot of different jobs throughout time. And I'm super curious to hear about your path and how you got to where you are now.

Joshua: Well, I've done pretty much the entire stack now. So I went to university to do computer science, and that was like in 1992. So I got there, and I just remember being in this lecture and people in there had never used a computer before. And by that stage, I'd been programming for nine years. I was like, what am I doing here? So I bounced out. 

And I was washing dishes in a cafe. I did a night-time course in microcontroller programming in assembly language that was sick. And I was designing my own single-board computer using a microcontroller on paper. So I'd be washing the dishes in the cafe and then take a break, and I'd be drawing my schematics and stuff. And then a friend of mine who played in a band, because I was in a heavy metal band, he was in another band. And he was like, "Oh, I work at this place. We make computers. We're looking for someone." 

So I rolled up for the interview, took my paper schematics of the thing I'd been designing, and showed it to them, and then they gave me the job. And it was assembling computers. So I had a screwdriver, and I'd get a piece of paper that would say, "A 486DX-33 with four megs of RAM and 120 meg hard drive." And then I would screw all the components together and put it all together and put the cable ties on it, and a guy would test it. And that was my first job, which was hardware assembly. And then that company went bust because it was kind of a consolidation of manufacturers, and it all became like Dell, IBM. People making computers in little shops and stuff went away. 

And I was unemployed for a while. And I was just down at the unemployment office ticking the box of like, I'm looking for a job. And there was a thing on the wall, and it said, "A job for a programmer." They had this thing at the time where if you're on unemployment and you got a job for a small business, they would pay the first six months of your wages or half of it. So it's subsidized to get people off unemployment and into a job. 

And for that one, I had a friend who worked at the computer place who had [Visual Basic](https://docs.microsoft.com/en-us/dotnet/visual-basic/), and I was like, "Give me the [Visual Basic](https://docs.microsoft.com/en-us/dotnet/visual-basic/) disc." And so I loaded that onto my computer and just made a CV as a program in [Visual Basic](https://docs.microsoft.com/en-us/dotnet/visual-basic/), put it on a floppy disk, and then dropped it in the letterbox of this guy who was in his garage. He had a small business, and he needed an extra programmer. And that's how I started my first professional programming job. And I learned [object-oriented programming](https://en.wikipedia.org/wiki/Object-oriented_programming) just on the job out of the manuals. That's how I got started in programming. 

And then, from there, Y2K happened. I was like, this is awesome. It's like the apocalypse. It's here; it’s going to happen. It's the total breakdown of civilization. It's going to be like science fiction meets [Dungeons & Dragons](https://en.wikipedia.org/wiki/Dungeons_%26_Dragons) in real life. And there's this project where we have to get it finished by this drop-dead date. There's no way we can slip the date on this project. And there are a limited number of people in the world. So the only thing that we can play with is the amount of money that we're spending. So they were just basically printing money to pay people to do these contracts. So I was doing Y2K contracts for that year in '99. And it was ridiculous amounts of money for stuff. 

And then, after that, I became [Hare Krishna](https://en.wikipedia.org/wiki/Hare_Krishna_(mantra)) and went to South America and lived there for three years. So I took a break from IT for those three years, learned to speak Spanish, and ran a book publishing company.

Ali: For those who aren't watching, your life story is absolutely fascinating. Because as soon as you're like, "I became a [Hare Krishna](https://en.wikipedia.org/wiki/Hare_Krishna_(mantra))," I was like, that's out of left field. 

Joshua: [laughs] 

Ali: Not out of left field, but it was just unexpected.

Joshua: Obvious next step, right? [laughs]

Ali: Clearly obvious next step. And I want to finish the story. So you're in South America. [speaking Spanish] 

Joshua: [speaking Spanish]

Ali: [speaking Spanish] 

Joshua: So then, after I'd been there for three years, my wife and I went there together. And our son was born in Peru, so he's Peruvian. My wife's from the United States. She's African American. And she's from Washington, D.C. And we got married in New Zealand. We went and lived in South America. Our son was born in Peru. And then it was like; we need to go somewhere where we can bring him up, and it's like a good economy, and a safe, social environment. So we went to Australia.

And I was like; I got to get a job again back in IT. I was working with Microsoft technologies before, but I'm not really into that now. I remember this open-source thing because during the Y2K projects, a lot of it was they had to tick a box with a project, and so they needed people. So sometimes there was no work to do. So I was on [Slashdot](​​https://slashdot.org/) all the time. And I remembered seeing people being like, "KDE is the bomb. I can configure every aspect of my window manager." And I'd played around with [Red Hat Linux](https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux), and then I remembered it. And I was like, open-source, I want to get into that. It's kind of like the Rebel Alliance against the Evil Empire. I want to go and join the Rebel Alliance.

So in Peru, I bought a CD with [Red Hat Linux](https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux) on it and installed it on my computer, and started playing with it. And then when we went to Australia, I got a job at an internet service provider just doing technical support on the phone. And what I would do is I would buy old computers like old Apple Macs and stuff and install Linux on them and get it working just while I was waiting for calls to happen. 

And then one day, I said to my boss, "I need to get another job that pays a bit more money, and that's a bit more challenging." And then he said to me, "How would you like to work at [Red Hat](https://www.redhat.com/)?" Because he'd literally just gotten an email in his inbox saying there was a career fair. So I went to the career fair and got a job at [Red Hat](https://www.redhat.com/). And then, I stayed at [Red Hat](https://www.redhat.com/) for the next ten years, from 2004 to 2014. And that was an amazing time because [Red Hat](https://www.redhat.com/) was expanding massively during that period. 

So I started on technical support at [Red Hat](https://www.redhat.com/), answering the phone supporting North America and Australia. My accent got modified when I was in South America because I had a radio show there. And so I was speaking in Spanish on this radio show. And after about two weeks, I figured I could take live callers. So I got a live caller. This guy calls in and he says, [speaking Spanish] Like, it's great, but we can't understand anything that the gringo says. 

Ali: Oh my God.

Joshua: So my Spanish is pretty good, but my accent was terrible. So I went to a locution academy for Spanish radio and television presenters and got trained. And it changed the way that I think about how I speak. And that started to change my accent. 

Then I started working at [Red Hat](https://www.redhat.com/), and I'm supporting Americans on the phone in the U.S., And I'm like, "Can you press the... " I can't even do a good Kiwi accent anymore. But you know, "Can you press K and then zed?" And the guy's like, "What? What do you want me to press?" I'm like, "Zed." And he's like, "What?" I'm like, "Sorry. Sir, can you please press the zee key on your keyboard?" And he's like, "Oh, why didn't you just say so?" So I ended up having to speak in some kind of American accent for some people in the United States to understand me. 

My wife said the same thing. She said she came to New Zealand, and she was like, "I thought they spoke English here," because the accent was so unfamiliar to her ear that she couldn't understand it. And I get it because I've been to the States. And you watch the news there, and it's like, here's the news from 52 American states. And here's news from the 53rd place in the world, you know, the rest of the world. 

In New Zealand, you hear accents from all over the English-speaking world. In America, you hear accents from all over the U.S, and there's a broad variation there. But you don't hear Scottish, Welsh, UK, South African. Whereas in New Zealand, we hear all that stuff so we can understand a broader range of English accents. 

Ali: Wow. Okay. So you have truly lived many lives, which is so awesome. And I have so many questions about this. But touching on one of the subjects that you talked about and in your progression in life, let's talk about the future and preparing for the future. But not necessarily...we can talk about this from an apocalypse prepper perspective but also from a learning perspective. 

As someone who's lived many lives, took time away from tech, went back into tech, started off in tech, and then left tech, and just kept going back in it, how do you stay on top of what's the future, on what's coming up in the future? Right now, everyone's talking about Web 3.0, and NFTs, and crypto. How do you stay on top of this information? And what do you do to stay motivated to learn these things?

Joshua: So I still read a lot and a lot of science fiction speculative stuff like what is the future going to look like? That kind of stuff. I wrote a book called “Learn to Program: How Your Child Can Become a Millionaire and Change the World.” And at the beginning of the book, I tell the story of how I came back to New Zealand, and I think it was 2017. And flying through the airport, a lot of the roles I noticed that had been done by humans previously had been replaced by automated systems and self-service systems. 

There was no longer a person who would check you in. You check-in at a kiosk. And then there wasn't even someone who weighed your bags. There was like a machine. You weighed it yourself, and then you printed the ticket and put it on, and then stuck it on this conveyor belt. And I was like, automation is removing a lot of these roles in society. Even the checkout, self-checkout at the supermarket, that's all going away. 

So there was a book in the bookstore at the airport, and it was called [“Will Robots Take My Job?”](https://www.amazon.com/Will-Robots-Take-Your-Job/dp/1509509569) And I tweeted out a photo of it, and it was a joke. It was like, why do you need a book that thick to say, yes, will robots take my job? But as some jobs get automated away, other jobs are created. Like, where are all the basket weavers and the blacksmiths? Those entire industries are gone. Holden, which is now gone out of existence, was an Australian car manufacturer. But they started their life making saddles for horses. And then, when cars came in, they started making upholstery and seats for cars. And then they moved into making cars. 

As one industry is taken out of existence by technological progress, new industries are always created. And so, the key skill for the 21st century is continuous learning. Whereas previously, you would learn and master a craft at a certain point in your life, and then you would just practice that craft and refine it even further. And so that period of intense learning and innovation would take place at an early point in your life. Now you got to keep doing that for your entire life, continuous learning and discovery. 

So this is one thing that I noticed when the kids would come to learn to program in [Minecraft](https://en.wikipedia.org/wiki/Minecraft). Their parents would also come along, and they'd be like, "I want my child to learn how to program because that's obviously the future." And if you have 15 or 20 kids in a workshop to program in [Minecraft](https://en.wikipedia.org/wiki/Minecraft), you can't give them all individual attention. So we're like, "Well, you can sit down with your child and help them to learn." And then they would say, "Oh, I don't know anything about computer programming." And I'd be like, "And? Neither does your child. But you expect your child to come here to learn how to program without knowing how to program. But you are exactly the same. You're a person who doesn't know how to program. 

But the difference between your child and you is you've come to some conclusion that that means that you can never program. But imagine if your child was like, "Oh, I don't know how to program, and I can't learn." No, of course, they can, and so can you. For your child to really have powerful access to learning to program, you have to be yourself that I don't know how to program, and I can learn."  Because as a professional software developer over the last 30 years, it is just completely continuous learning, especially JavaScript. 

You go back to a project that you worked on six months to a year ago, and the whole framework has completely been deprecated, or suddenly, they've changed everything in Jest. And you got to rewrite all your tests because they got a new format for them. That's just the way that that is. And then languages go out of existence, and new ones come into existence. So to be a professional software developer is to be a continuous learner, continually learning new things.

Ali: And on the other side of this question, not in tech, let's talk about the future that you want. Because you said earlier, you're still waiting for the future to come. What does that future look like for you?

Joshua: Well, I wrote a bucket list of goals back in 2014. My wife and I did it together. It was like an exercise we did. One of the ones she wrote was win a bikini modeling competition. And that's an interesting story as well. That's how I ended up competing in bodybuilding in 2018 because she was like, "Come and do it with me." I was like, "I'm a programmer. I don't want to do anything like that." That's a digression, though. Let me stick to this one here. 

The future, so I wrote on my one fight in a war against robots and aliens. And I got to a certain point after a while...I think it was once this whole COVID thing kicked off, and they started doing the alien disclosure. I was like, okay, man, they’re going to let the cat out of the bag. They're going to let people know. It's going to be the big reveal. So I updated it because I was like, okay, this one's about to come true. So I changed it to fight in a war against robots and aliens and when because I better put that extra part in there. 

Ali: Oh my God. Yeah, definitely put that part in there. So as someone who is an apocalypse prepper, with COVID here, were you like, "This is it. I'm in my prime." 

Joshua: Yes.

Ali: How did you react? 

Joshua: Oh, I was like...you know, Y2K was like, this is it. They reckon planes are going to fall out of the sky. React is going to meltdown. This is going to be it. So I fully prepped for that. And then 2012 came around, and it was kind of Mayan apocalypse. And that was the least hyped...the movie was pretty good. But the actual apocalypse was a bit of a fizzler. So I was like, this is it. It's finally here. This is the apocalypse we've been promised. This time it's going to happen. So some people say 2021 is the dyslexic Mayan apocalypse, that someone got the numbers round the wrong way. So yeah, this one's looking pretty good.

Ali: And for the COVID apocalypse that happened, what was the one skill that you decided to learn during COVID that you were super excited about?

Joshua: Skills that I started learning during COVID is I went and did a [Historical European Martial Arts](https://en.wikipedia.org/wiki/Historical_European_martial_arts) course in sword fighting. Because in the bodybuilding competition...so my wife was like, "I want to win this bikini modeling competition. Come and do it with me." And I was super resisting. I was like, "Nah, I'm a computer programmer. I don't do that kind of stuff." But in 2018, I went to her and said, "Honey, we've been married for 18 years," or whatever it was at the time, 20 years. "And my New Year's resolution this year is I'm going to do things to make you happy instead of just doing whatever I want and hoping that you're happy with that." And she was really happy about that. 

And then she said, "Okay. Well, come and do this competition with me." And I was like, "Anything but that." [chuckles] Anyway, she said, "You promised." So next minute, I'm down at the gym. She takes me down there. There's this 20-year-old PT sitting there. And she says to me, "So then you shave your legs, and we spray tan you. And then you put your briefs on, and you go on stage and do your posing routine. So would you like to join?" And I'm like, "That's why I'm here. Sign me up." 

Next minute I'm in this bodybuilding competition, and it's like in three months’ time. So I just threw myself right into it. I'm pretty good at studying things. So I'm reading all these articles and stuff and building a training program. And I had a coach. And I went and competed in the competition. But when I got to the competition, I saw this guy win, and he won a sword. And I was like, why did nobody tell me that you can win a sword at this thing? I can now be a dual-class fighter mage. I can have both of them. So I was like, I got to go on a quest to win this sword.

But one thing I noticed was when he got the sword; he was standing on the stage. And he obviously did not know what to do with it. And I was like, this guy hasn't thought this thing all the way through. He didn't think about what am I going to do when I win the sword? So I was like when I win that sword, it is going to look like an outtake from Conan the Barbarian on the stage. It's going to be lit. 

So I went and did a [Historical European Martial Arts](https://en.wikipedia.org/wiki/Historical_European_martial_arts) course in sword fighting, so I got into that. And then I was like, the next level I got to get into archery. So I got myself a bow. And since we've been in lockdown here for the last eight weeks or something, I haven't been able to actually fire it. But every day, I do these drills where it's like drawing the bow back and holding it for like 15 seconds and do that for eight minutes.

Ali: Wow. Wait. Okay, so you really do everything. And something that was super interesting to me that you just said was that you studied and learned everything. You were building your own training plans and things like that. And I want to take this back to coding a little bit. And say you're talking to me here. You are literally talking to me. And right now, I'm trying to dive into [Kubernetes](https://kubernetes.io/). It's very overwhelming, and there's so much to it. So if you were in my shoes, how would you approach this problem? Because when you approach a new subject, new world, there are ways that you approach the problem to learn. So what does your approach generally look like?

Joshua: So, with any kind of technology that I'm trying to learn, I always try to link it to something in my own experience and something that I'm passionate about. So like with the [Minecraft](https://en.wikipedia.org/wiki/Minecraft) thing, the [Minecraft](https://en.wikipedia.org/wiki/Minecraft) infrastructure that I use is all built using [Docker](https://www.docker.com/). And I've worked with other developers on various aspects of it. And sometimes people are like, "Oh, it's super over-engineered." 

The reason why it's over-engineered is because I'm learning a new technology at the same time that I'm working on...I'm going to deliver this cool [Minecraft](https://en.wikipedia.org/wiki/Minecraft) gaming coding experience for these kids in this weekend workshop, and I want to learn [Docker](https://www.docker.com/) at the same time. So when you look at it, they're like, "Oh, it would be so much simpler if you ran it without [Docker](https://www.docker.com/)." Yeah, it would, but I'm also learning [Docker](https://www.docker.com/).

So I would just do the same thing. I'd be like, okay, now I'm going to lift this infrastructure into [Kubernetes](https://kubernetes.io/). And then I would be doing [Kubernetes](https://kubernetes.io/) and whatever else it is that I'm passionate about. Because when you do online labs and stuff and it's like [Kubernetes](https://kubernetes.io/), you're like, oh my goodness, this is so boring. And it's some kind of contrived example where you're like, I don't even care. But you make an example of what you really do care about.

Like if I was going to do it, I'd be like, okay, the apocalyptic war with the robots and the aliens is coming. They're going to reveal that actually there's an underground base with the aliens in it, and they're providing technology to the U.S. government or whatever. And okay, so how do I work [Kubernetes](https://kubernetes.io/) into that? What kind of system can I build that would be...I don't know; maybe there's a website that does UFO sightings or something. 

And then I'd write something that scrapes the website or the API or whatever and builds a map using Google Maps, and then I'd deploy it into [Kubernetes](https://kubernetes.io/). It's like, why would you deploy that into [Kubernetes](https://kubernetes.io/)? Because I want to learn [Kubernetes](https://kubernetes.io/). And if I can link it to the robots and the aliens, then I'm like, yeah, man, I'm all about this. So I can combine things that I'm passionate about with something that I want to learn.

Ali: Wow. So then you come up with these ideas, or you're basing it off of a new idea. Let's just say you're starting from zero. How do you come up with these ideas to start working with?

Joshua: I read a lot. I think exposing yourself to lots of different inputs that's...I think one of my strengths is collecting lots of different inputs and then fusing them all together. So I'll spend a period of time reading about things, and looking into them, and getting a picture of the lay of the land. Like for [Kubernetes](https://kubernetes.io/), I'd be interested in what's the history of [Kubernetes](https://kubernetes.io/)? Where did it come from, and how did it get started? 

So I remember before [Kubernetes](https://kubernetes.io/) came out, there was Google. So it came out of Google, and they were solving a particular problem with it, which was like, if we have all of these containers, how do we schedule them? And when you can understand the original problem that it solved, it makes more sense rather than just like, oh, here's the thing that I have to learn because my job is making me do it. But there's a story, and there's a historical...it fits into the history of computing. And there are different classes of problems that got solved at different times. 

It's one thing if you have one person at a computer solving a problem, which is kind of how computing started. And then it's moved into this like, okay, now we have teams of people that we have solving a problem. But now we have another problem which is how do you coordinate teams of people writing code together? So that's where you get things like [Subversion](https://subversion.apache.org/), [CVS](https://www.nongnu.org/cvs/), and now [Git](https://git-scm.com/), distributed version control. How do you deal with the conflicts between code and merging them and all that kind of stuff? And having that kind of historical perspective helps me be connected with where I fit into history as I'm learning something like [Kubernetes](https://kubernetes.io/) or whatever.

Ali: Well, we're coming to the end of our time. So I'm curious, do you have anything that you want to share with the world, anything you want to plug? Where can people find you online? Any last-minute advice for the listeners?

Joshua: Sure. So I have a blog, which I update every now and then at [joshwulf.com](https://www.joshwulf.com/). Process Automation that's what I ended up getting into now. Open source and process automation I think those are two key technologies for the future, anything to do with automation and open source. Open source has turned out to be the most powerful software development model on the planet because, with open source, you can get an unlimited number of contributors potentially. It's theoretically infinitely scalable. 

And that was one thing at [Red Hat](https://www.redhat.com/) was that we used to say that even these companies, these massive companies at the time, we were like this tiny, upstart kind of company fighting against the Evil Empire. And we were like, they got so much more money and resources than us, but they don't have enough money to pay everybody on the planet. Whereas with open source, potentially, everybody on the planet could be a contributor. Everybody who can program can contribute to it. 

So getting into open source and understanding how open source works and what are the currencies of open source because open source is more about what people are interested in, scratching their own itch. And then getting these intangible results from it like learning outcomes for themselves, experience, the opportunity to work with people that you would never be able to work with otherwise. Because you can join an open-source project and work with the world leaders in a technology whereas to get a job at the company that they work at might be very difficult for you. To become an open-source contributor to a project that they work on, you can get personally mentored by some of the top programmers in the world that way just by showing up and making a contribution.

Ali: Yeah. So I want to say thank you so much for coming through and talking with me on the podcast. I'm [Ali](https://twitter.com/endingwithali), [@endingwithali](https://www.google.com/search?q=endingwithali&oq=endingwith&aqs=chrome.0.69i59j69i57j0i10l5j69i60.2137j0j9&sourceid=chrome&ie=UTF-8) on everything, including [Minecraft](https://en.wikipedia.org/wiki/Minecraft). And we hope to see you on the next episode. Thank you so much for listening.

Jonan: Thank you so much for joining us. We really appreciate it. You can find the show notes for this episode along with all of the rest of The Relicans podcasts on [therelicans.com](https://therelicans.com). In fact, most anything The Relicans get up to online will be on that site. We'll see you next week. Take care.