
Pybites Podcast
The Pybites Podcast is a podcast about Python Development, Career and Mindset skills.
Hosted by the Co-Founders, Bob Belderbos and Julian Sequeira, this podcast is for anyone interested in Python and looking for tips, tricks and concepts related to Career + Mindset.
For more information on Pybites, visit us at https://pybit.es and connect with us on LinkedIn:
Julian: https://www.linkedin.com/in/juliansequeira/
Bob: https://www.linkedin.com/in/bbelderbos/
Pybites Podcast
#186: Rethinking the art of coding
Rye Whalen sees profound connections between nature and software development that many developers miss. With expertise in hardware, software, and teaching cybersecurity, they uncover how natural systems can inspire better software-building strategies.
Rye explains how they approach algorithmic thinking by focusing on foundational base cases and how they encourage their students to visualise problems before writing code. This teaching strategy bridges abstract concepts with practical understanding by tapping into natural visual processing abilities and familiar patterns from the world around us.
Beyond technical skills, Rye emphasises the value of creativity and balance. They explain how engaging in activities like photography and music can nurture problem-solving skills and significantly enhance our ability as developers.
___
Contact Rye on our Circle Community: https://pybites.circle.so/u/5eb35e0b
Rye Whalen - https://wentcloud.com/
___
If you found this podcast helpful, please consider following us!
For more Pybites:
Pybites Books: https://pybitesbooks.com/
Developer Mindset Newsletter: https://pybit.es/newsletter 💡
Bob LinkedIn: https://www.linkedin.com/in/bbelderbos/
Julian LinkedIn: https://www.linkedin.com/in/juliansequeira/
Bob BlueSky: https://bsky.app/profile/bbelderbos.bsky.social
Julian BlueSky: https://bsky.app/profile/juliansequeira.bsky.social
Instagram: https://www.instagram.com/pybites/
Twitter: https://x.com/pybites
Apple Podcasts: https://podcasts.apple.com/us/podcast/pybites-podcast/id1545551340
Spotify: https://open.spotify.com/show/1sJnriPKKVgPIX7UU9PIN1
I've got some little succulents, but what had happened is they were all growing one direction. They were starting to get a lean and the plant was turning. It was actually changing its cell structure and starting to look different. I was like I don't want it to look like that, so I turned them 180 degrees and then they were leaning the wrong way. Two days every one of those plants moved their cell structure. And that goes back to the software part and writing. And what has made me better at writing software is little iterations over time.
Julian:Hello and welcome to the PyBytes podcast, where we talk about Python career and mindset. We're your hosts. I'm Julian Sequeira.
Bob:And I am Bob Beldebos. If you're looking to improve your Python, your career and learn the mindset for success, this is the podcast for you. Let's get started. Hello and welcome back everybody to the PyBytes podcast. I'm Bob Beldebos and I'm here with Rai Whalen Rai. Welcome to the show. How are you doing?
Rye:Yeah, doing great. Thanks Bob.
Bob:Yeah, glad to have you finally on, because we have been talking forever and you're pretty prolific and active in the community. Uh, you've been pdm, uh, you do interesting algorithm stuff and, um, yeah, you even link it to nature. So I have a lot of uh questions for you and I think, uh, it's going to be a fun um little chat we will have this week. So, but for starters, for people don't know you yet, do you want to quickly introduce yourself to our audience? Uh?
Rye:sure. So I'm rye whalen and, um, I, I have a background in both hardware and software. In a previous life I used to do embedded systems, so a lot of that was like compiler and stuff that's close to the processor. And um, what started me is I. I ended up meeting you on the internet at some point and I said I want to learn more and um, and we sort of had a discussion like what would be a good fit, right, like starting with python or doing pdm and and in that process I got to learn more about myself, more about writing code, more about software and then also being involved in a community that's supportive and has those meetings, and I think that that's an important part To anybody who's on a journey. You can go far by yourself, or you can go fast by yourself, but you can't go far, and when you have that community where you can ask those questions, like what happens in PyBite, that makes such a big difference.
Bob:Cool. So how far were you with your Python journey when we met and when you decided to sign up for PDM? Because you had quite a background already, right?
Rye:Yeah, you know I had mostly used Python to write scripts because that was mostly what I needed, right, so I'd use it in infrastructure or like here's a little script to get this, get this data. And I didn't realize when I started how much more you could do with it and how there's a whole ecosystem behind it. So my exploration was a bunch of iterations on different ideas to sort of validate and have somebody to give feedback on, like yes, you structured that right or you're here and you should have thought about this problem differently.
Bob:Yeah, I think you worked with Ryan and I remember those initial app ideas were pretty advanced. You had already put quite some thought in. Do you want to share a couple of things you developed with us?
Rye:Yeah, so part of my journey, I took my background in forensic knowledge and brought that forward to doing really comprehensive structure in the code I wrote. And it was a challenge because you sort of have to think about what you're structuring and why you're-depth. But if you're trying to pass a nested dictionary, that's also important because you need to make sure you get the depth of those aliases and that takes some thinking. But I wrote a couple different tools and I use those tools because I teach at the college and I teach people who are learning and specifically I teach them cybersecurity. So we're learning a little bit different because we're learning about sort of a full spectrum of operation. So the users who are there are thinking, you know, before an attack and all the way through after. So the tools I built convey some of that underlying architecture that you may not see or may not always be present without having a big background in it cool.
Bob:So what are some of the the lessons you're still applying to this day from what you learned in pdm?
Rye:um, you know, but the one thing that I learned is is how to make a virtual environment and separate concerns into those virtual environments, and it's by far the most important thing that I learned, and it took me probably a week to really get my head around it. You know, it's sort of a weird concept because previously I had just done everything in my regular path, when I hadn't made environments, and when I got to managing packages and having conflicts between different packages, that's when I the most important thing is understanding how to set up a virtual environment. My favorite thing is UV. It's really simple. I'm very happy with it and it has worked on everything that I've written so far, so I'm happy with that.
Bob:Yeah, uv is awesome, I feel like. Replaces so many tools and ambiguity, right Like there's no, just the set of Python says one obvious way it's finally true, it's something.
Rye:Yeah, and I just I enjoy it for the ease and simplicity and I also just install a fresh version of Python with everything that I do now. So I sort of have pushed that concern to a different setup. It takes time to understand why you would do that.
Bob:Yeah, and I think it also shows that building software is so much more than just Python, because the Python you had complex app ideas and complexity in your apps is clearly there. You had a bit of a gap with the tooling right, and it just goes to show that if you want to really succeed in this field, it's way more than just Python or algorithm thinking for that matter. There's a lot of tools you have to learn right.
Rye:Yeah, and then you get into manage DNS, like how are you going to deploy this?
Rye:My favorite is to self-host with Proxmox, but that still adds, you know, a layer of time and effort because it's infrastructure and you've got, you know, a router and a reverse proxy and a firewall. So I'm actually tooling around with something right now where I'm setting up a new app and I'm trying to pass a firewall rule and I had some trouble last night, you know. The other thing I learned is it's also okay to take a break and like that's a big part, like hey, you know what? And I think that that's something that happened in in my PDM sometimes we would have work where we're reviewing my code, and other times I would ask Ryanyan questions like I need to know how to think about this, or what should I read, or how do I understand this. And I think that's the other important part to when you study right, like get that mentor that you can ask questions to and say, hey, I just I don't understand, or why am I doing this, or what will it be when I'm there?
Bob:that makes all the difference if you can have a partner that you can bounce off ideas right and just get the help in your individual situation right. Yeah, exactly, that's funny. You mentioned DevOps. I was working this week with somebody on DigitalOcean because normally we use Heroku Fly for simple shared hosting, but this solution actually required some more DevOps work and all of a sudden you're like having to run fast API at startup, so you're using system CTL. Oh, how do I get the logs journal CTL? And I was learning all these kinds of DevOps stuff and I'm a developer, right, so it's funny you mentioned that.
Rye:I also really like DigitalOcean for the ease and simplicity of what you get. And great thing is they give you an unlock code too if you lock yourself out of that system, which it was funny. I built an app and I deployed it and I forgot to permit SSH, so I locked myself out. And you know, sometimes you run into those things and you're like, oh, everything's great. And then there's that DevOps sysadmin where you're like, oh, I didn't open this port and now I can't get into the machine.
Bob:I locked myself out of the Internet this morning because I configured wrongly when the Internet should shut off and I had to connect to my router through Ethernet and luckily I had still those Sun Microsystems troubleshooting skills. So yeah, talking about wide skill range, so you're teaching. You mentioned cybersecurity, but you're also big on algorithms and algorithmic thinking, so you run your tech programming workshops right. So can you tell me a bit more about that? What format do you use? How do you approach teaching algorithms, which can be challenging for people, and how do you make it easier for them to learn them?
Rye:Yeah, so the most important thing before you can get to algorithmic thinking is understanding your base case. And there's a level of when we structure our thought around the problem. And my favorite example to share with people, because it's pretty easy, is a palindrome. And the first there's two rules that sort of establish the base case here. We know that palindromes read forward and backwards the same way, so zero, no value, would be a palindrome, because it would read the same and one would be a palindrome, right. And what we're doing is what's the next item in the list? Is it the same as the last one? And and that's that's how you start to write an algorithm. Right, you have, but you really have to understand what the problem is and how you're counting it. And that's the part that gets hard.
Rye:And I think what we do in all our classes. I have people draw what they're thinking and I know that sounds kind of weird because we're like, oh, we want to put code on the terminal, but because humans get a lot from visual stimuli stimuli, right, like we, traffic lights work the same all over the world. The red one means you're going to stop, the green one means you go. When you structure your problem in a way that when somebody looks at it they can say I understand right. Um, that helps you actually write code where you know what type of input that you're going to pass, that right, and and when you have a good problem and you have a good base case, you can write a really good test and um.
Rye:I'll highlight another part. I recently started on the novice level of of um, pybytes, because I I wanted to explore some knowledge and it's it's made me a better programmer because I'm thinking in tests and I'm thinking I'm. It has also improved my typing skills. I have become, I don't want to say, pedantic, but I'm really paying attention to, like where should a period go, and those little details. And sometimes it feels hard in the beginning because you're like, oh, it failed, it failed. But you're looking for the details because that's the stuff that's actually going to matter in these systems.
Bob:Yeah, there's no AI there yet, right, so you really have to type the things correctly. But I'll say, yeah, I can think we'll really mess with more beginners. It's like, oh, all these errors, right, but yeah, in practice we will be seeing a lot of errors when we're programming. Um. So yeah, if you have to code towards a test and you constantly see how the pi test is validating your code and how it's it's failing, I think that that's really useful. Yeah, but at a base case, and it sounds a lot like recursion, right exactly, and and um sounds a lot like recursion, right, exactly, and and um.
Rye:when we think about math and counting, a problem, there's sort of these problems that can get wider, right, and there's these problems that can get taller and um. I know that sounds abstract, but when you look at the math, the, your problem will go one of those two directions and that will take time to compute, that will take time to process, that will take time to come up with something. And you don't have to get into needing a super processor or a big nvidia card, right, you can do this stuff with just a regular computer, um, but also understanding what you're doing and why you're doing it, and in those the simplest form. And the other thing that has really helped and one of my favorite things is like I look at them like text files.
Rye:Besides Terminal, my other favorite editor is Idle, because it takes away some of the layers of complexity in other IDs and you're really just focused on what's happening. And because it's syntax, it gives you the syntax you can sort of see does your problem, does your problem make sense? And that's that's part I like about Emacs, because Emacs, uh, drives your typing to fit a structure of a body, like after you write a function and hit colon. You're inside the body and you're not on a new line, but those details and those nuance are so hard to understand. If you're a novice. You're like I don't know why this is happening, which is where the algorithmic thinking comes in, because it's operators and operands and those things are together. And when you start to draw that picture out, you're like I've got an item in this circle, you know how to handle that. And then you get into the one-off and that goes into the nature part, right, like we had discussed.
Bob:Yeah, let's go there Before doing that. So wrapping up what you're really doing your workshops then is, um, have people think about the base case, have them draw the problem, kind of break it down into smaller pieces. I guess, um, and keep it simple with the tooling, right, like, use a simple editor and not introducing all that overheads just to focus on on the problem, right?
Rye:is that, is that correct? Overheads? Just to focus on on the problem is that, is that correct? That's correct. Um emacs for doing the text, because you get the syntax and um idle when you're actually testing your code.
Bob:The debug is really helpful, um, and all the tools in there are pythonic in nature, so you, you aren't changing your thought process, um, so, yeah, definitely oh, so you mentioned, uh, nature and, um, yeah, you uh documented or told me about some parallels you see between natural systems like seeds and ecosystems and how we build our design software. So where do you see those links? And, uh, yeah, enlighten us so.
Rye:so one thing that I um built is I have a client who has a ranch and they have cows and we needed to know where the cows were going, how much water they were drinking and you know a variety of problems, and there's a lot of engineering that went into that consideration. But really we're. We want to understand the health of the cow and where they're going and spending that time out there. I started to see these parallels. Right, you know, you go out in spring and then you've got all these flowers blooming, but nobody set an instruction to tell the flowers to bloom, right, but it happened. And that also gives you an indicator that, like something else is going to happen, like summer is going to come, the flowers are going to go away, it's going to be hot, then the rains will come and then it'll be cool. When you think about those flowers, they've got little seeds which are sort of like a package. That seed has a series of instructions and it's going to do what it does. You can see sometimes, hey, this one didn't go the right way, or this one didn't flower, or this one flowered a lot, and those are really good examples, because when you also look at the plant and you think about branching right, look at a plant and they've got lots of branches. They've got one main, then they've got these other ones that are like hey and um, the.
Rye:Where else you can see this about like changing to environments is I have a couple of plants that I start in kitchen window because it gets just enough sun in the morning and no sun in the afternoon so it's not hot on them. And um, I've got some little succulents and they are temperamental. They they thrive until they don't, so they're sort of like doing really well. But what had happened is they were all growing one direction. They were starting to get a lean and the plant was turning. It was actually changing its cell structure and starting to look different. I was like I don't want it to look like that, so I turned them 180 degrees and then they were leaning the wrong way. Two days every one of those plants moved their cell structure.
Rye:Um, but also like it takes that takes time, and we have to sometimes say like, hey, we're gonna get to the outcome, but we can't get there tomorrow, we can't get, it'll be a week right and um, that goes back to the software part and writing and what has made me better at writing software is little iterations over time and, um, like I said, I start everything almost as a text file in jinja. In most cases I've just wanted the template. Do I have good use cases around it? And then I iterate. I come back tomorrow and I say, oh, can I add one more thing, or it would be nice, or will it work? And then I I do that one thing and I move on and I think you can see that with the plants right, they're going to spend their time to move, they're going to follow this set of instructions and if it changes, they're going to spend their time to adapt that's fascinating.
Bob:So how did this, uh, interest came about like was this just thinking about it reading, or just that's? That's a. I have not heard this connection before. It's.
Rye:It's fascinating, yeah um, well, I live in the desert and and the desert that we have here we have, if you didn't know, there there's four different types. It goes from very arid to tropical deserts and we have all four types of those biomes. And I think when you can get in your car and drive for 40 minutes and be in a new biome where you're like, wait, there's oak trees in the desert. You don't think about that. There's no West.
Bob:Coast, but arid.
Rye:Yeah, and I think that all of those things put together right, you start to, because I I love to be outside right, like I ride my mountain bike, I go on hikes, and I think those things are what sort of drew me to like well, what? Else is going on in the world. Um, because also when I grew up like computers, you had to you'd have a modem, you had to have an external modem and like plug it into the wall um it's funny.
Bob:Funny sounds and stuff. Right, you have to connect to the internet. Now we're always connected, yeah, yeah.
Rye:so I think I think part of it is just a curiosity about plants and um, and you know what? What do plants have that can help us understand more about ourselves? Right, we eat them. I love to eat them. I grew some corn this summer and it was good. It could have been better, but you know, we didn't get a bunch of rain. So that's just that's what happens when you don't have all your resources, and I think that's also a good parallel, right? How, how well can you write code if you don't feel nourished, if you don't feel mentally competent, because so much in software is about solving problems that you don't understand? Um, you know, yeah, push it, push it out to some infrastructure that you don't know, and you're like wait, what's happening? What's this? What's this code being?
Bob:yeah, there's some interesting things. So yeah, I like the whole nature thing again. I think wasn't da vinci, who also was looking at the birds, right to come up with flying machines and and so that we can learn from from nature?
Rye:um and then, yeah, it's crazy to think now, right, like I have a drone, it's 24.
Bob:Imagine, imagine if you could have gone back to like DaVinci and like you want a helicopter people get overwhelmed, like they want to build the whole solution, which you can't, or they don't ship anything because it has to be perfect but that doesn't exist. I like the whole idea with change a template or just a text file or just a scriptpy, and just start writing code and then do the core feature and then launch it as if it's a solution for somebody, get it out there as quick as possible and get the feedback and then make many, many, many small changes. That's really how software works. It's never done.
Rye:Yeah, and speaking on that, I have an app that I wrote for myself. And I have an app that I wrote for myself and it's something that I iterate on just a few times a week I'm like, oh well, I would like this one other feature and it doesn't drain me because, again, I spent my time thinking about it and I also read other code. How does somebody else maybe handle this problem? And I also read other code. Right, how does somebody else maybe handle this problem? And that those are I think you had told me early on, right, like, go read good code, try to spend part of your day reading somebody else's code, and that's something I have taken to and it's made me better because I spend time, you know, reading and thinking and there's that time for our brains to connect, right. The other thing I like to do is play music oh, yeah, yeah.
Bob:I remember um one of the teachers said like you should really in my case in high school, like do arts, like the whole creative creativity part, will nurture or will make you better, even in the technical things? Right, like it's?
Rye:um, it's good to work on these different parts of your brain and and something that I see is when I in the courses I teach at the college or the workshops I host and get people to draw, is they increase their understanding so much more. Um, and it's just amazing to sort of see that because they start to put things together that they didn't or you know, and they say, wait, does this fit? And I was like, well, you know why don't you try? We'll find out together if it fits. And that gets back to like the protocol thinking, which can be hard if you don't understand it right, like why are we worried about a get or a post, or you know a put? And those are some interesting low-level functions that are important and they're easy to abuse if you structure it the wrong way.
Bob:Yeah, so do you think AI is a big threat to this?
Rye:I think more of AI threatens people's ability to think about what they're writing and like in my use case, my favorite thing if I ever use it is an Olamo model and I have it write doc strings for me, because sometimes you come up with a problem and you're like I don't want to write the doc string to this. But really I think that a lot of the components of AI just get oversaturated and there's interesting verticals. I don't remember if you remember in the early 2000s, but like computer vision was supposed to change everything and in a way it did right.
Rye:Like you can point your phone at things and find out what type of leaf is in front of you. That's amazing. But I think the idea around sort of this like Markov chain of like can it average text, Like I could do that in Spacy, I could do that with NLTK, so that part I don't really see a utility. It'd be neat but I don't see it. There's machine learning models that are interesting when you're talking about data in a database and relationships to it, but I think that your average developer crew I don't see a utility for it, and that's a personal opinion. Others might disagree.
Bob:Yeah, we are coming to the end. Two more questions. So we mentioned AI, right, but apart from that, what are you excited about the tech industry and Python and what's going on and what's coming?
Rye:You know I'm excited for interesting uses of web technology and I think that some interesting stuff at least I've found is how quickly you can build something in flask, and when I first started I was like, oh, I need a big web framework to do these things. And I think I think the exciting thing are little things that work everywhere, um, and that's that's what's fun to do, at least for me, and I try to focus on, like, what does good structural css look like and does it sort of have a failover that it'll work on? You know, an old opera browser? Um, because I I also really like, uh, retro computing. I think it's fun, I think it's interesting. I've got a couple raspberry pies running, some interesting little parts on there and it's it's fun to try new things and it's also fun to see when you can make css fail gracefully. I'm not going to show you all of these boxes, but I am going to show you what the intent was. Right, this color on this background in this space yeah, so mostly web web development, web technologies.
Rye:Yeah, I think there's still some really interesting utility in just micro indie web and that part's fun.
Bob:Cool, Nice. And the last question is, of course, always the books. What you're reading.
Rye:I brought one. You can see it, it's called the Photo Book and it's just really interesting because sometimes it lets you think, right, like here's a picture of Salvador Dali and he's got a chair and he's wearing a mustache and there's like a cat flying. You know, the other part is like I've been going to school. So the other books I'm reading are like statistics books and books about research and things to school. So the other books I'm reading are like statistics books and books about research and things for school. So I try to find things that are fun. And the photo book is always nice because you get something and you're like, wow, I didn't think about that or what was you know. So I really like inspirational pictures, not quite like the cat, that's like you can have your dreams that you know what I'm talking about. Um, there's like a kitten holding on to something like dream. Anyway, I like the photo nice.
Bob:Yeah, I agree you need to read very, I guess. Yeah, all the tech and statistical stuff.
Rye:I do it mostly novels yeah, and, and then I like to read with my kids. We've got a. We've got a book called they Threw Us Away and it's about some. It's about teddy bears who are in a landfill. Then they realize they become sentient in the landfill and it's, it's a fun story.
Bob:Yeah, I think it's super important to read it to kids. You know I don't have them read, but more fun to read together. Yeah, yeah, exactly. And in terms of, uh, critical thinking, um, because that's now a big deal right, like you said, like really understanding your problem. Is there any book you can recommend for that, especially in these times?
Rye:um you know, there there's a. There's a book that I read about um statistics, and and I'll send you a note about it. What I like about that is it really structures the problem in a digestible way and it feels like a topic that's out of reach for a lot of people. But I like it because it sort of gives you the how are you going to use this and how are you going to use this? Does this element matter in the structure and like that gets to systems thinking um, which again is why I like the, the art or the creative books, because that sort of breaks your mind in that way. Oh, let me look, wow, how did you do that? Right, and when you? My favorite thing is to look at what did people do in the 50s or 60s when they didn't have. If they didn't have all the tools right, you couldn't take a thousand pictures on your device. You could take one or two, and I know how did they solve that and could you do it today?
Bob:that's. That's awesome. I think that's a great reminder to a read something in the creative department. But also be and I think you also said that in your environment, where you have that kind of lack of resources, even if it's self-imposed. Um, then you become creative, right, like these days. It's so easy, right, you have a supercomputer in your pocket, you have ai and and, but it does make you lazy, right?
Rye:so, uh, introducing that deliberate uh scarcity is actually good for your brain and your problems on the skills, yeah, and yeah, and to your point right, like I had started and I was using all the tools, I was using um, visual studio code and I had all these plugins and I eventually got to a point where I was like I'm so overwhelmed because there's all this is flashing and this box is down here and I don't know what this does, um, and it's got bugs going on and I was like I just want to know the code. I just want to know, like where I am in the problem and when I, when I decoupled right and I really separated concerns for my developer environment, I got better at writing things that I was confident in and that other people understood without having me to explain it Awesome.
Bob:Cool. Well, we're coming to an end. So thanks, rai, for hopping on. Also, big thanks for your active role in the community. You're posting a lot and you did a code clinic the other day, so I will ask people to reach out to you on our Circleo community. And again, thanks for hopping on today and sharing all these insights and, yeah, great time. Thanks for your time, bob.
Julian:Hey everyone. Thanks for tuning into the PyBytes podcast. I really hope you enjoyed it. A quick message from me and Bob before you go To get the most out of your experience with PyBytes including learning more Python, engaging with other developers, learning about our guests, discussing these podcast episodes, and much, much more please join our community at pybytescircleso. The link is on the screen if you're watching this on YouTube and it's in the show notes for everyone else. When you join, make sure you introduce yourself, engage with myself and Bob and the many other developers in the community. It's one of the greatest things you can do to expand your knowledge and reach and network as a Python developer. We'll see you in the next episode and we will see you in the community.