Today's guest is the host of the Talk Python To Me Podcast, Michael Kennedy. In this part 1 of our two part interview with Michael, we cover how he got started with the Talk Python To Me Podcast and why he started it. Part 2 coming this Wednesday!
Thank you to long time sponsor and friends of the show Linode for sponsoring today's episode!
Simplify your cloud infrastructure with Linode’s Linux virtual machines and develop, deploy, and scale your modern applications faster and easier.
Listeners of Developer Tea can now enjoy $100 in free credit! You can find all the details at linode.com/developertea.
If you enjoyed this episode and would like me to discuss a question that you have on the show, drop it over at: developertea.com.Â
If you're enjoying the show and want to support the content head over to iTunes and leave a review! It helps other developers discover the show and keep us focused on what matters to you.
Hey everyone, welcome to Developer Tea. If you are coming here because you are a listener of Talk Python to Me, then I'd like to welcome you as well because today's guest is the host of that show, his name is Michael Kennedy. And over the next two episodes of Developer Tea, Michael and I discuss all kinds of things from Python to the industry and the low points and high points of Michael's journey so far and some of the insights we both have gotten from running podcasts for five or six years. Thank you so much for listening to this episode. Let's get straight into my interview with Michael Kennedy. Michael, welcome to Developer Tea. Jonathan, it's really great to be here with you. This is a show that I've actually listened to on and off for quite a long time. And... Jonathan, you're doing a great job, so it's an honor to be here. Well, thank you so much. I'm happy to have you here to, I suppose, talk Python with me, right? Isn't that why we're here today? That is the slogan, right? I think this Python thing is starting to catch on in the tech space. People are paying attention to it. So for anyone who isn't acquainted yet with Michael, that was a play on words. That's called a pun. That's because Michael... Michael... That's because Michael is the host of Talk Python with me, right? Am I saying it correctly? Or just Talk Python? Is that how you refer to it? I go a little bit. That's the short version. Talk Python to me is officially... It's iTunes name, I suppose you would say. But yeah, it's all good. Can you tell me a little bit about why you started your podcast? This is always a fun conversation for me to have about Developer Tea, but I want to know more about why you started Talk Python to me. Well, I didn't really want to start. to podcasts per se. I've been a huge fan of podcasts since, I suppose, since before they were called podcasts. There was like RSS and Enclosures. I would download stuff and I'd put them on my little Rio player, you know, and take it and listen. The ability to drop in on these conversations, it adds so much value to technical stuff, I believe. I feel like a lot of the technical things that we encounter, by the time you get to them, they're super sterilized. You know, here are the docs, here's the function, it takes these parameters, maybe here's a tutorial to go along with it. But what you don't get is you don't get why was it created this way and not that way? What is the history of it? Like, where did it come from? What came before and what might come after? And podcasts tell those stories so well, I think. And so why did I create it? Well, when I got into Python six-ish years ago, something like that, I'm like, all right, this is my new place. I've decided I'm going to really just learn this technology and live in this ecosystem. I want the podcast. Like, how do I, you know, where do I go to start listening to them? And there were zero. There had been some before and they'd all shut down. I'm like, there's just no, how can there be one of the most popular programming languages and not a single podcast in that community, right? So I thought, well, I kind of always wanted to start a podcast anyway, but didn't have a topic. I'm somewhat new at this, but I'd don't mind, you know, putting myself out there. And if people don't hate the idea of it, maybe I'll keep doing it. And so I just started it because I wanted to hear the stories told about what amazing things people are doing in programming and specifically in Python. And those stories weren't being told. So I'm like, well, I guess I'll be the first listener. That's good. You just have to participate in order to listen. It's like a higher level of listening. Exactly. It's a little more active. That's right. Yeah. That's good. It's interesting. I think you mentioned something really interesting there that I want to kind of dig in for a second on. And that is the idea that so much of what we interact with, if you are a software engineer or if you're considering it, or even if you're not, you don't even have to be a software engineer to have experienced this, but the idea that these tech products, because in some ways, you know, our languages are products for other engineers and not... Languages, frameworks, whatever. The idea that it's sterile. And I think something I've noticed about that interesting characteristic is that I have the perception that this person was clear-headed about every decision they made and that everything was on purpose. And I'm coming to this, you know, and I'm opening the documentation. I'm reading the life's work of this individual, you know, and that all of these people have all of these, you know, perfectly tuned motivations when they make these products. And I guess the reason for that is because we polish these things, right? And we don't want them to go out looking as if they were haphazard, unless that's, you know, a statement that you're trying to make. Most people don't want to do that. And so they present them as if they are well-intentioned. But have you noticed this kind of weird dynamic of, you know, the... Yeah. Yeah. The perception is very different than, you know, it's how the sausage is made, I guess, right? Yeah, absolutely. You talk to people behind these projects, these libraries and whatnot, that look super polished and they're highly adopted and whatnot. And you learn that it wasn't always crystal clear that there was a lot of trade-offs and decisions. And sometimes they even regret what some of the aspects about it, but it's maybe too late. I think another really interesting angle is, you know, what inspires... Yeah. ...what in open source? There's not, you know, a top-down sort of corporate, you know, we decided this is a web framework and this is how it's going to be. So do that. You know, it's, there's a thousand flowers blooming. Some of them grow, some of them inspire other flowers and then go away. And I think seeing this interplay of there were these three things, they were amazing, but they were separate. So I tried to make what the offspring or the next generation of those flowers were. And I think that's what I'm trying to do. And I think that's all, all those ideas together is, and I think that's brilliant. Yeah. It's so cool. It's, it's so cool to see when I first started as an engineer, there, there weren't a lot of pathways of expression as a software engineer. Like it was, you can either learn this as a hobby or you can be really hardcore and get a job in it, right? Like those are the two, the two routes. And, you know, as far as, as web software goes, you really only have a lot of, you know, a lot of, you know, a lot of, you know, a lot of, you know, front end or backend and that's it. You know, that that's, that's pretty much the full spectrum of a possibility. Yeah. Can you make stuff look good or can you make it talk to a database? Which are you? Right. Yeah. Yeah. Are you, are you interested in bits or are you interested in pixels? And that was kind of the, you know, the, the lay of the land. And it's so quickly has changed that now you have really expansion across the board. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah.. bringing bringingensionensionension! original kind of picture of what it meant to be a software engineer was challenged very quickly and is continuing to be challenged. But I'm curious, you know, in your time in hosting this podcast, what were some of the most unexpected things that you've learned so far, both about engineers, but also maybe about the way that engineers produce work? I guess probably the most interesting and most unexpected thing, certainly I didn't see it coming. I don't know. It's a huge surprise retrospect, but I didn't see it coming, is the distinction that you were touching on there a little bit that, you know, traditionally we think about people becoming software developers and that's the core of what they do and what they are. And there's plenty of those folks and I count myself amongst them. And I think that's great, right? Like, you go to a dinner party, people say, what do you do? I'm a developer. Maybe now these days I say I'm a podcaster or something like that. Then they're like, oh my gosh, what does that mean? Anyway, but typically I would say I'm a developer. But what I've learned is there are so many people who they have something that they're passionate about and it's not software development, not in a negative way, but, you know, they just, maybe they're biologists or they're in finance or they're in climatology or whatever, but they needed just a little bit of programming. And they found a way to learn enough programming that it became a superpower for them. So, you know, if you're a biologist and you're doing research on, I don't know, the population of a bunch of animals or something, you can handle analyzing 500 data points or 500 creatures or whatever by hand or in Excel or MATLAB or however you manage it. If all of a sudden you can completely automate that, right? Maybe you can write like 10 or 20 lines of Python not much more, but now you can handle unlimited amounts of data or you can, what used to take an intern or a grad student a whole day is now the press of a button that just unlocks the ability. And there's so many stories over and over and over of people like that, that I've run into. They would not introduce themselves as developers. Maybe at least coming onto my show, they're a little nervous. They're like, I don't, I don't really belong here. I'm not, I'm not necessarily a programmer. But at the same time, they're doing amazing stuff. And so they've taken the thing they're super passionate about and they've like 10 X'd it not by dropping out and becoming a computer scientist, but by learning partial programming. Today's episode is sponsored by Linode. Whether you're working on a personal project or managing enterprise infrastructure, you deserve simple, affordable, and accessible cloud computing solutions that allow you to take your project to the next level. You can simplify your cloud infrastructure with Linode's Linux virtual machines and develop, deploy and scale your modern applications faster and easier. You can get started on Linode today with $100, $100 in free credit for listeners of this show. You can find all the details at linode.com slash developer team. Linode has 11 global data centers and provides 24 seven, 365 day free credit. So if you're interested in learning more about the technology and the technology that's bringing you evolution, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click here, click instances, you can use your $100 in credit on essentially anything you want to. S3 compatible object storage, managed Kubernetes, and more. Visit linode.com slash developer T and click on the create free account button to get started. That's linode.com slash developer T, all one word. Thanks again to Linode for sponsoring today's episode of Developer T. That's such a cool label for partial programming. Because I've come across the same thing. One of my hobbies is home automation. And I'm very much a hobbyist at this. And there's a project I'm sure, I don't know if you've heard of it or not, there's so many projects out there. But it's called Home Assistant. Home Assistant is fantastic. And I had the guy behind it on my podcast. It's really bringing a lot of stuff together. It's incredible. And I think one of the things that is so interesting about it is these people who, like you said, they're like programmer light. They would never call themselves that. They would never even consider working in that field because they don't think that they have the skills to do it. But they're also like writing Docker images and managing servers inside their house and totally understand all these different protocols and translating from one protocol to another and writing the software to do that. And it's always so interesting to me that they're like, oh, I'm not a software. This is just a hobby to me. You have some skills that people who have jobs, even senior level jobs, aren't carrying these skills around. And it seems, you know, it's interesting. Perhaps the most interesting part of this to me is this seems to be a unique aspect of Python specifically. Yeah, it definitely does. Yeah, I agree. There's other languages. I think JavaScript falls in this realm, but there's certainly ones that don't like C++ and Java and so on. Yeah, and I guess what's interesting to me is like, you're right, JavaScript is one of these languages that's kind of eating everything else and you can start to write JavaScript if you're just, if this, then that, now you can write JavaScript in there and whatever. But there's this interesting I guess crossover in so many different arenas. You know, Python has gone so far beyond being primarily a web language where Ruby has not, right? Or most of these other languages, it's not, doesn't have as broad of a reach in all these different areas. And I'm wondering, why do you think that is? Like, what's going on here? I've formed a theory and I've given it a label. So I'll share it with you and you can tell me what you think about this. So my theory is this is the case partly because Python is what I call a full spectrum language. What I mean by that is like, you know, imagine you're that biologist I described. You can come in and you can, you know, maybe somebody told you there's a library, a package you can go install and it understands this format that comes out of this instrument you had. And then there's this other thing that will analyze population data. So you install that and then there's some graphing stuff or whatnot and you install that and then you write in a file, top to bottom 10 lines of code. Here's the file. Do the analysis. Make me a picture. Done. That could have an awesome output. It could have a really cool picture that is telling a story unlike they were able to tell before. But they might not even know how to create a function. Python will allow you to be quite productive with a very partial understanding of the language. Right? So I think that draws people in. I think that's why people get started from these different areas that are not just a web. Because if you're going to do web, you're kind of, you're all in. You're like, I know CSS. I know HTML. I'm going to do some SQL. I'm going to do some whatever back-end language. Like you're already pretty far down the programming path. But these other people, they kind of get sucked in because like I can do this simple thing I think and pull it off and have a good outcome. But a lot of languages that are that simple to start with, they don't take you all the way to where you might need to go as you advance. Right? Maybe I could build a cool UI, but it only does so much. And then I've got to switch to a grown-up language, a real language. And that's a huge chasm to cross. Whereas with Python, it scales all the way up to building Instagram and YouTube and these other things. And so it has all the advanced computer science things you need. You know, coroutines, classes, generators, like all that stuff that computer scientists might need at the top end. But it has this ability to get started. So it has this, people get drawn into it and they don't ever get ejected to like a real language. And I think that that's fairly unique amongst the Python space. Amongst other languages. Yeah, that is a very interesting factor I think is the idea that you don't have to conform to a paradigm, right? We think of languages as kind of tied to a paradigm. You know, where Java is object-oriented and etc. Right? Oh, it's a functional language. But Python doesn't necessarily, you know, under the hood, it's like, well, it's probably designed to be something like an object-oriented language. But it's not really enforcing it in any regard, right? It's very much so capable of flexing around those different paradigms. And you can kind of practice a different paradigm inside of it. Without any kind of real restriction happening. Yeah, and I think the real interesting difference that I've seen with that and a lot of other languages is it kind of allows you to grow into these more advanced things, right? Like C Sharp or Java. You could probably find a way to just like jam all of your code into static main void. But, you know, you're kind of fighting against the grain. Whereas Python, it doesn't have the grain so much. You kind of, as you need more, as you're like, you know what, this little script that I wrote that did the picture, that's super cool, but how do I reuse that? Could I pass additional information? Like, well, maybe if I learned what a function was, I could do that, right? Like these, you don't ever have to take that step until you're already motivated to. And so I think part of it is a lot of these people come in, they don't consider themselves programmers. They're not keen to go learn the next language. Like I heard about Rust or Go. I'm straight on that, right? They're just like, I just want to get this stuff done and I've found this happy place that lets me just keep going. So there's also not a lot of pressure for them to abandon it. So it just, it seems to be creating this sort of snowball effect of stuff rolling down the hill and people coming from all these different places and having success and adding their own flavor of the world. I just saw this video, a listener of the show, my show, sent in a video of this guy who took a standard table saw and he disassembled this huge table saw and started installing servos and a raspberry pi and a little touch screen on the saw. And he got it going so it's completely programmable. Just starting from a non-mechanical thing. And he said, you could see just the excitement was just beaming in his face. And what he said was, this is the first program I've written. And it's like fully automating like multiple motors and sensors for where the saw is. I'm just like, that is super advanced as a first project. Like, that's insane. You know, and I just think there's a lot of that. But because they're not coming from this traditional CS background, they're like coming from all these random places. And it's just adding a lot of interesting flavor to the world because of it. Yeah. So the first thing that comes to my mind is like, oh, I don't think I, you know, I'm thinking like a software engineer that has a job in engineering and I know that, you know, I'm supposed to break that problem down into some problems and you know, I was supposed to manage the cards and the backlog and do all the professional things. Right. And in my head, I'm like, oh, yeah, that's probably like a year long project to get all that stuff cobbled together. You know, I've got to learn everything about saws first. Right. And there's this kind of traditional I guess it's like a safe approach to building software because we're so used to building it in an enterprise environment. Um, where our approach is so I won't even use the word thorough. I'll say formalized baby. Yeah. Formalized or like a cautious in a way and even bureaucratic even. And I think if you don't have that lens, you approach it from the perspective of like, well, you know, what line of code do I need to write to spin the servo? You know, and it's like it has nothing to do with, uh, what I don't know or like nothing to do with, oh, what what are the limits? Um, I got to make sure that I don't accidentally allow this function to overspend the start, you know, all these things in my head. I'm thinking, oh, there's so many problems to solve and they're like, no, it's like there's four different directions. This thing could go. Let's just write the four and we're done. And I wonder if that's, you know, that kind of mental restriction that we place on ourselves is a bad mental model sometimes for these more innovative or, or, um, I don't know, fast paced iterative projects. And what could we learn from it? Maybe there probably are things to learn from it, right? The sort of move fast and break things mentality is not even breaking anything. That's the funny part, right? If the behavior can work fine forever. Yeah. Yeah. It's there probably are some lessons to be learned. I, I don't know. I definitely have learned painfully the lessons of not adding like the right data validation and the right error checking. And when that stuff bites you, it's super frustrating. You're like, did you really actually get the wrong answer and make like a decision for the company on this bad data I created? Oh my goodness. I'm so sorry. Right. But at the same time, you know, a lot of these people, they just want to, they just want to solve something with computing. And I, you know, sort of one of the interesting angles here is so often you hear politicians saying we have a million unfilled computer science jobs. So what we need is to make a bunch of little computer scientists that are going to grow up into big computer scientists, the fill the jobs. And I think that's completely the wrong way, the wrong mental model for the world that we're heading into the world we're heading into is wouldn't it be great if we had people who cared about all sorts of stuff, you know, engineering, like mechanical engineering, you know, finance, biology, climate, whatever, but they also had this programming power. Right. I think that's a much more useful world than just, you know, 10% of the population can like do a quick sort loop. So we're good. Yeah. I, I couldn't agree more with that. I think very, I don't know what the number would be, but certainly a large number of people who are working as software engineers have zero formal training or, you know, some of them have some formal training. Most of them have, you know, some of them have, you know, some of them have, you know, some of them have, you know, some of them have, you know, some of them have, you know, some of them have, you know, outdated formal training. Right. And so this idea that, you know, there's some fundamental kind of establishment style path that we should be forging, you know, more clearly for software engineers. I don't know that it's necessarily bad, but it certainly is incomplete, right? It could be that it, that it creates more interest more broadly, but I agree with you. I think that you have the, this idea that, Yeah. you know, somebody whose interests are peaked, they're, they're very likely to expand their skill sets on multiple different levels, right? Like rather than thinking about it as a vocation that comes with a specific set of skills, I'd rather think about it as a specific set of skills that can go with any vocation. Yeah, exactly. Or, or, or a broadening set of skills, not even as, I don't know, it's, it's hard to, it's a new thing, right? It's not, we don't have the language to totally, to describe it yet. We don't, but this is definitely the literacy of the future, I think. And I think it's also, this is the way that, you know, machines are not going to take people's jobs, right? If, if you're either on one side where you have no programming capability, and then some sort of automation comes along, you're in a bad place. But on the other hand, also, if you only just do raw programming, and you don't have the technology, you're in a bad place. Right. Right. Right. Right. Right. Right. Right. Right. Right. Right. Right. Right. Right. Right. Right. Right. maybe cloud services and other libraries kind of erase the thing that you were doing. I'm not so sure about that, but I definitely think the combination is where the power is. If you're looking for a job, right? To say, I can do JavaScript or I can do Python. Like, okay, you're now competing against millions of people. If you say, I'm a mechanical engineer, you're competing against millions of people. But if you're saying, I'm a mechanical engineer that also can automate a bunch of our processes and do a bunch of things, you're down to like thousands or hundreds of thousands, not millions, right? Like all of a sudden you become a much more hot commodity. You can adapt. I think it's just, it's great for everybody. Yeah. Yeah. I've had this conversation with a lot of my acquaintances in the industry recently. I don't know that I've talked about it much on the podcast and it's probably because it is very, very much so an opinion and could be very wrong. So that's part of my preface. But it seems that we're moving further and further away from needing titles to explain jobs. It still is a helpful, you know, handle to understand, you know, what does this person do very broadly speaking. But as we continue to abstract technology further and further up the chain, it's still a problem. It seems like these titles are going to become less and less important and the competencies will become more and more important, right? We have all kinds of competencies. And so what are you is not really the question. It's what can you do that strangely arises again, right? Your skill set is actually going to be elevated again versus this, you know, amorphous title that doesn't really mean a lot anymore. Yeah, I see some definite value in that. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. To me, it feels like this has the possibility of leveling out the playing field for the world a little bit, right? Because whether or not you have a certain degree from Harvard or MIT, that's hard to get. Whether or not you've attained some sort of programming skill and you can do some kind of thing, well, both that's easier to do and you can demonstrate it pretty well a lot of times, right? Yeah. So I see that as a positive thing. I agree. I agree. I agree. And I think it's more true to what the demands are on this group of people, group of people being, you know, software engineers and non-software engineers and everything apparently that exists in between that. Yeah. Yeah, yeah. Thanks so much for listening to the first part of my interview with Michael Kennedy. I hope you will tune in to the second part if you don't want to miss out on that second part and you're as forgetful as I am. I hope you will tune in to the second part if you don't want to miss out on that second part and you're as forgetful as I am to go back and listen to podcasts. Go ahead and subscribe in whatever podcasting app you are currently using to listen to this episode. We're so grateful for our sponsors. Today's episode was sponsored by Linode. Linode is providing $100 in free credit for listeners of this show. Head over to linode.com slash developer T. That's linode.com slash developer T, all one word, and hit the create free account button to get started today. This episode and every other episode of Developer T can be found on spec.fm along with the show notes. This episode was produced by Sarah Jackson. My name is Jonathan Cottrell, and until next time, enjoy your tea.