Pybites Podcast

#198: Tim Hopper on UV and smarter Python development

Julian Sequeira & Bob Belderbos Episode 198

Python development has changed a lot over the years, and Tim Hopper has been right there with it. In this episode, we chat about the tools that are shaping modern Python workflows—like UV, a fast package manager aiming to improve the developer experience. 

Tim also tells us about creating the Python Developer Tooling Handbook, a practical resource full of short, easy-to-follow guides for developers at any level. We dig into his open source contributions, the ups and downs of job searching in tech, and the small tooling choices that can have a big impact on how we write code. 

Whether you’re just getting started or well into your Python journey, there’s plenty to take away from this conversation. 

Get in touch:

Tim's Website: https://tdhopper.com/

LinkedIn: https://www.linkedin.com/in/tdhopper/

X: https://x.com/tdhopper

GitHub: https://github.com/tdhopper

___

💡🧑‍💻Level up your Python skills in just 6 weeks with our hands-on, mentor-led cohort program. Build and ship real apps while gaining confidence and accountability in a supportive community. Join a Pybites Developer Cohort today! 🌟✅

___

If you found this podcast helpful, please consider following us!

Start Here with Pybites: https://pybit.es

Developer Mindset Newsletter: https://pybit.es/newsletter 💡

Pybites Books: https://pybitesbooks.com/

Bob LinkedIn: https://www.linkedin.com/in/bbelderbos/

Julian LinkedIn: https://www.linkedin.com/in/juliansequeira/

Twitter: https://x.com/pybites

Apple Podcasts: https://podcasts.apple.com/us/podcast/pybites-podcast/id1545551340

Spotify: https://open.spotify.com/show/1sJnriPKKVgPIX7UU9PIN1

Tim:

One of my most popular pages right now is how to use UV and PyTest together Two great tools, and that's something Astral totally could write about and maybe they will in the future, but that's not in the core of their documentation and that's the kind of thing that I want to help people be able to do.

Julian:

Hello and welcome to the PyBytes podcast, where we talk about Python career and mindset. We're your hosts.

Bob:

I'm Julian Sequeira 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. Welcome back, everybody. This is Bob Beldebos. Welcome back to the PyBytes podcast. I'm here with Tim Hopper for this very special episode. Tim, how are you doing? I'm doing well. Thanks for having me.

Bob:

Yeah, our pleasure. Thanks for hopping on the show. I invited you. Well, I recently learned about you and because of your awesome work with the Python Dev Tooling Handbook, so I wanted to talk about that, but also about your experience and career. I mean, you have been contributing to quite some important libraries and some other things. But before we dive in, you want to quickly introduce yourself to the audience, to the PyBytes audience.

Tim:

Sure, yeah, tim Hopper. I'm in North Carolina. I'm currently a machine learning engineer at Spotify Carolina. I'm currently a machine learning engineer at Spotify. I've been doing Python since 2011. So it'll be 15 years this January that I first started picking up Python, which I remember when I first was getting into Python talking to someone who had done Python for seven years and I was like, wow, that is just incredible. And now I'm closing in on 15 years. It's really made my career and, yeah, I try to publish things online when I'm closing in on 15 years. It's really made my career and, yeah, I try to publish things online when I'm able. And my recent endeavor over the last year and a half has been the Python Developer Tooling Handbook, which we're going to talk a bit about today, which is trying to be a unified and somewhat opinionated source on Python developer tools, which has especially been UV recently, but formatters, packaging, linters, potentially in the future, editors. I haven't really gone down that route yet, but just things around the Python developer experience.

Bob:

Yeah, let's dive straight into that. So what made you write the guide? Dive straight into that.

Tim:

So what made you write the guide? So for the last 10 years, since 2015, I've just really been interested in kind of thinking proactively about Python developer tooling, and, in large part because of work, just seeing Python developers without really um, a clear story on how to use their tooling and um, even within companies and teams just a lot of inconsistency, and then also seeing things that are just set up poorly, um, and so this kind of became a joke with, uh, you know, friends of you know they'd asked these questions. I'd say, oh, you should read my book on this Um, and for years, literally years and years of always joke, oh, you should read my book on Python developer tooling that I always wanted to do, um, and then really it, it finally got off the ground last year. I had to have back surgery and I was sitting in my recliner for three weeks not working and I was able to start putting it together in a more serious way Um, and then, through 2014, really, uh, working on it and then came out with a full launch this past March. Uh, interestingly, uh, you know, folks who have been paying attention realize that also coincided with the uh I launched right before UV was announced by Charlie Marsh, which has revolutionized a lot of this stuff and it's kind of interesting.

Tim:

A lot of the reason I wanted to write the handbook was to help people wade through the mess. That was necessary kind of pre-UV, like you know. I had in mind I was going to write all these deep comparisons of like here's poetry versus PDM and here's, you know, packaging management versus project management and all these different things. That has really shifted now largely to saying hey, go use UV and here's the best way to do it, which is not at all what I intended. But I'm actually not mad about that at all because it's a much happier place to be and you know things like tutorials. Running your first Python project, instead of being, you know, 11 steps long, is now literally run this one command to run UV and then run the second command to execute your program. Okay, that's easy.

Tim:

Yeah, we'll link a nice meme about that, like seven steps to uh one uv command, basically yeah which is is beautiful and my you know I have had a little um second guessing is a tool like this and my tool, my handbook, doesn't just cover packaging and dependency type things, um, but that's a big part of it.

Tim:

And is that still necessary in the age of UV? And my current conclusion is where we're going to be and I think hopefully where we already are is not just the same Python user base now using UV, but UV is going to introduce a whole new swath of users who are able to pick up Python. Because of UV and then because of LLMs, I think we're going to just have more demand than ever for this kind of help. So I'm glad I'm not going to go into writing a lot of technical guides on, you know, setting up PyMV and then comparing PyMV to to pip M and all these different things that I had in mind, uh, but instead can uh on the on the kind of UV side, I really see it as supplementing what the astral team is doing in their own documentation. I'm not trying to replace that, but I think there's a lot of things they're not going to necessarily do or not do anytime soon that I'm able to supplement.

Bob:

Yeah, so did your page count go drastically down then when you came out, or were you just lucky that it came out before you were going to write all these other things?

Tim:

Yeah, I can't remember the exact timeline, but I launched a blog first and that was within uh weeks, I think of of Charlie first announcing um, uv.

Tim:

So I don't think I had any page count really prior to that, uh, but no, I was. You know, in those early days I was looking at rye, uh, which you know. Now nobody's talking about rye, but a year and a half ago rye was like, oh, maybe this is the future, um, and so my early poster about Rye, uh. But then very quickly it was like, oh, uv is something and you know, as you know, that developed over the last year and a half from a pip replacement to now this very full feature tool. So I've been trying to keep up with that, you know, follow the announcements and then, like I said, supplement a lot of what Astral is doing with. You know, for example, my one of my most popular pages right now is how to use UV and and pie tests together, two great tools, and that's something Astral totally could write about and maybe they will in the future, but that's not in the core of their documentation and that's the kind of thing that I want to help people be able to do.

Bob:

Yeah, I mean, their docs are great, but they're also extensive, right. So, again, great docs, but doesn't mean that people easily pick it up. What I really like about your handbook is that it's very short, like bite-sized, like we as PyBytes, right, like these short nuggets, because I was like, oh, another handbook. The first time I heard about you, you had another book to read and then I actually started reading it. Oh, I can actually go through this pretty fast because it's very, very short articles, and I also like how you keep it up to date very well, like, the other day, I learned that uv now is its own build system, thanks to your handbook. I didn't even know that, right. So, um, yeah, that's awesome, and I think the bite-sized um makes a nice reference. You don't have to sit hours there to read this thing. You can just go um, go there, take what you need and come back just bookmark it, uh. But, um, yeah, yeah, it was interesting.

Bob:

It was not in the prep, but, uh, I heard about it on the python bytes podcast. I heard one of the coaches share it. You share on linkedin. How did it, uh, get such attraction? It was just uh. I guess you post a lot about it as well. Um, obviously it's good. Great, yeah, what helped you? Uh, marketing, marketing.

Tim:

So far the traction has really been through my own uh social media, um, primarily, um, I know the python bytes guys a little bit um, from just the internet and pycon um, but I've got, um, I've been on on twitter for 15 years and it was very active in the early days of kind of the data science community on Twitter and and just know a lot of people through that. Um, charlie Marsh followed me and he he'll often retweet my stuff, which helps a lot on Twitter. And then, um, I I really tried to make LinkedIn a platform. Um, you know, I've worked a number of places, just have a lot of connections on LinkedIn uh, of people who are interested in this kind of thing, and so, um, yeah, for now I'm really going through kind of the viral um, the viral marketing stuff has been my, my goal. Um, I've not been able to make much headway other places actually, yet I've been trying on Reddit and hacker news, without any success yet, uh, but hacker news seems to love UV these days, so I'm hopeful one day something will end up there.

Tim:

Yeah, to jump back quickly to what you're saying the bite, the bite size thing that's really the goal of this is not to be, um, a book that you read cover to cover. Uh, so you know if I think I probably could get something like this published, um, but it's not something to sit down and read, it's a reference guide and also it's something, as you're saying, keeping it up to date. It's something that's just changing all the time, uh, as different tools develop, different tools come out, um, and so the I think the internet's a great place for it, and then being able to just share these one-off things on social media, which has really been my goal so far, each of them really do stand alone. So that is very much the goal and I'm glad that you've appreciated it in that way, what I've wanted to do with it.

Tim:

There's been a lot of good content on the internet, especially around kind of the packaging and dependency management stuff, a lot of good blog posts over the years, but they've never been all in one place and the the you know, style and level of detail has always been different. So what I've wanted to do is just be able to consolidate all that kind of information in one place so you can just go read one article, but then I also have a lot of deep linking in it. So within the articles I try to link to other relevant content that I have, and then external content, and then every page also has backlinks, so you can see what links back to this page as well, to try to make it something that people can explore if they want. But I think for most people I'm totally happy with it. They just dip in, find one article from, you know, google or social media, and then and move on and that's I'm happy to provide that nice, and what do you use for to build it?

Tim:

What's this tech? It's built on Hugo, which is a static site generator written in Go that I do a lot of my sites in, and it just runs on Netlify, which is a static site service and then I use. There's a tool called Decap CMS where you can have a content management platform on top of a static site. So it actually my analytics I pay for, but the rest of it all just runs for free at the moment.

Bob:

Yeah, yeah, and will it only be written, or are you planning to do some videos as well? Or is it just written?

Tim:

That's a great question. I would love to do videos. I just don't have the time at the moment and I am fearful about spending time on things that are then going to be out of date in three months. But that is very much on my mind and if I ever have unexpected free time, it's something I would like to dip into.

Julian:

A quick break from the episode to talk about a product that we've had going for years now. This is the PyBytes platform. Bob, what's it all about?

Bob:

Now with AI, I think there's a bit of a sentiment that we're eroding our skills because AI writes so much code for us. But actually I went back to the platform the other day, solved 10 bytes and I'm still secure of my skills because it's good to be limited in your resources. You really have to write the code. It really makes you think about the code. It's really helpful.

Julian:

Definitely helpful, as long as you don't use AI to solve the problems. If you do, you're just cheating, but in reality, this is an amazing tool to help you keep fresh with Python, keep your skills strong, keep you sharp so that when you are on a live stream, like Bob over here, you can solve exercises live with however many people watching you code at the exact same time. So please check out pybytesplatformcom. It is the coding platform that beats all other coding platforms and will keep you sharper than you could ever have imagined. Check it out now, pybytesplatformcom. And back to the episode.

Bob:

And so UV seems a bit of a panacea. It solves many problems. Are there still gaps that need solving? And, yeah, is the handbook kind of done in the structure, or are there still major things you want to tackle? For example, now we have TY for the type checking yeah, another amazing effort by Astro. But I think you mentioned editors. Maybe is there other other tooling you want to?

Tim:

yeah, so I think there are a number of things potentially to tackle um. You know brian ocken um from the python bytes podcast. Um you know as a testing guy he also has the uh test and code podcast um. He's encouraged me to do more testing stuff and that one is a little tricky for me because I am very much wanting to stay at the level of developer tooling. I say right in the introduction this is not a book about writing Python code um, and and testing kind of walks the line there a little bit Um. So I'm not sure what direction to go there.

Tim:

I think editors is one thing, you know. I would love to do some deeper dives into comparing different editors, the experience of using VS Code versus PyCharm. Also, you could think about things like configuring Vim for Python development. There's just a lot that could do there that I um don't uh. I I'm pretty set in my own ways as far as editors go, so I don't have a lot of experience with it. It just takes some, some work Um, and I think there are things like um. Going into CI stuff like um. The astral uh UV documentation has some some nice stuff actually of using UV in your CI, but I think running Python in your CI, I guess, was overlapping with testing there. So there certainly are some more areas to explore Topically, as it's based on something that I've really come to love called the Diataxis framework for documentation, where you have four types of documentation explanations, reference pages, how to, guides and tutorials and so the book is structured in that way, and so then I can really just drop in content in those different sections without needing to say, oh, I'm adding a whole new section about editors, for example, if I could just go add a how-to guide to configure Vim for Python development, I can do that whenever I want and may do that, and then the topical structure comes more through the deep linking that's there.

Tim:

So that organization is something that I've thought about and is hopefully going to be useful to folks. But then that's also easier for me to not have to just add, you know, say, oh, I have to add a chapter about editors. That's just not how I'm working on it.

Bob:

Yeah, cool. Well, I'm definitely happy to share my Vim config or experience.

Tim:

Do you accept any?

Bob:

contributions, or is this a solo effort?

Tim:

Um, so right now I the the whole thing is, um, a solo effort. I do have on every single page is a feedback form. Um, and I've not gotten a lot of feedback, but, as people, if they see mistakes or things they would do differently, I'm very open to the feedback and usually mistakes I can fix. Um, and I've not gotten a lot of feedback, but, as people, if they see mistakes or things they would do differently, I'm very open to the feedback and usually mistakes I can fix right away. Um, but for now, um, I'm really just trying to execute on my vision of it. Um, yeah, if somebody is really dying to help I, I'd be more than happy to talk to you about it. But, uh, this is kind, is kind of my baby at the moment.

Bob:

Yeah, good to know, Because I do know a lot of people that want to get into content creation and be always highly encouraged to do that as a Python developer, Because ultimately, this is not only about coding but also about communication and transferring skills. So for newer Python developers out there, yeah, what do you recommend? What are some of the lessons learned? Maybe about writing? Maybe also like the imposter syndrome of getting out there right and sharing your stuff, because that took me a while, right To have enough confidence to go out there and tell my story right, and why I think the collections module is awesome. I don't know, you know things like that. So, yeah, maybe just one piece of advice or two for beginner Python content creators that want to do something like this.

Tim:

Yeah, I mean, my advice is simple, which is just put things out there. This is something I I really made an intentional decision about. Um, when I was in grad school and data science was really taking off. Um, there was some data science bloggers out there who were doing really interesting things and then blogging about it and getting a lot of attention on social media. And I realized, oh, I'm doing interesting things, just nobody knows about them because I'm sitting here in my little grad school office by myself in North Carolina. But I could go start sharing those things. And so I started a blog in grad school and tried to share those things.

Tim:

But I think it's valuable to just go start writing and and sharing those things. Um, and you know, you, you promote them as best you can, but you just don't. Uh, in starting something like that, you can't count on having an audience. You just have to really be happy doing it for yourself, uh, to start with, and then hope have to really be happy doing it for yourself to start with and then hope over time that people are interested. And yeah, I mean, you can also delete things in the future. If you look back and are embarrassed about something you did, just go back and delete it.

Tim:

But I think going out and just putting things out there is one of the best things that folks can do, and writing and and just putting things out there, uh is, is one of the best things that that folks can do. And writing and code and all this just work on stuff and, and the internet makes it easier than ever to to to publish those things, and then if you're lucky and and uh, you get an audience and you were wrong or bad about something, they're going to tell you about it and then that's an opportunity for you to learn Right. So it's, it's just a win-win, I think. Um, so yeah, I don't, I guess, just just do it as the the advice there.

Bob:

Yeah Well, it doesn't kill you, make you stronger, something like that I like. I like the idea that it's all editable, right, you might make mistakes and then you fix them. Nobody's going to learn without mistakes.

Tim:

Yeah, I mean, once in a while I make changes to 15-year-old blog posts, I'll go back and look at them or delete things. There are things that I liked at the time and now I'm like, oh, I don't need that out there.

Bob:

I probably should do that as well, yeah, but I still have my 2010 post out there.

Tim:

Maybe also I just leave them there, just to yeah, I think I suck that software development right, the reality is most people care about you a lot less than you think, yeah, but also a lot of people really like to see the development of your thought over time, right? So, like um, I'm I'm kind of notorious on twitter for like retweeting myself, for like old, old tweets. Um, you know, I have I have tweets from when I was trying to learn Python in 2011 that um artists really fun to go back and see and think about how far I've come and nobody cares about. Like you know, people just enjoy seeing that people learn. So I don't know, I, I unless you're just going out and just like publishing something really heinous or, you know, mean or something like if you're just learning, nobody's gonna begrudge you for that exactly, yeah, so you retreat your old stuff and then with new, new views, like yeah, it's just kind of been.

Tim:

Uh, I mean, I I've just had a lot of like one liners and things over the year that still amuse me, so I go back and retweet them or, like, maybe add commentary to something from years ago. Yeah, yeah.

Bob:

Awesome. So, on the mindset of it, you also wrote about being turned down for data science jobs. What mindset or practices helped you stay resilient? Sorry, and it's something that engineers are going through these days as well, because the job market is incredibly difficult now. So, yeah, I was definitely curious about that.

Tim:

Yeah, something I blogged about and talked about. Um, it's kind of getting rejected from from jobs and, um, I, I, I like to be as transparent with that as I can, because I think you look around and see, see the selection bias of, oh, the people, they have all these great jobs, but you, you don't necessarily know the jobs that they haven't gotten. Have all these great jobs, but you, you don't necessarily know the jobs that they haven't gotten. Um, uh, I got rejected from my current employer three years before I got an offer from my current employer. So, um, yeah, I and I encourage people to go read that that post. It's linked right on the top of my website, tdhoppercom.

Tim:

But in terms of staying resilient, I think at this point in my life it's easy. I have four kids, so I have a lot of mouths to feed. That makes you resilient. But I think earlier one of the realizations I had was sometimes you can just interview poorly that's 100% true but also you just don't know what's going on inside the company that you interviewed at, and a lot of this you learn through being in a company and being in the hiring process. But you can get turned down for something for any number of reasons that are completely unrelated to how well you interviewed Um, and so I think that's helpful to keep in mind, and not that you don't personally want to get better.

Tim:

Uh, I know that there are certain weaknesses I have in interviewing Um, but um, it's, it's very possibly just not a personal thing at all. Like there there could be internal conflict at the company. Maybe they already were interviewing somebody else that they hired, maybe they lost funding for reasons outside of the control of that department. They're just like so many reasons, um, so you just have to keep at it and keep your head up, even when it's uh discouraging. Um, but yeah, that's a. That's a tough topic. Uh, something enjoyable. It's also linked somewhere on my blog, but some friends and I um, on a an old podcast called adversarial learning podcast, talked about um bad job interviewing experiences on a podcast maybe six or seven years ago. Um, and it's, it's. It's quite uh humbling and uh, I don't know it's, I feel for anyone looking for jobs. It's just a. It's a difficult thing to do and you just have to grind through it um yeah, and I like this advice.

Bob:

So basically, look at the bigger picture and don't take it personal, right, like there's probably more. It's very easy to to think you did a bad job or it's all you. No, no, there can be a million things right Going on their side. They might not tell you, right? Yeah, I think it's difficult not to take it personally, yeah.

Julian:

Yeah.

Bob:

Okay, yeah, that's extremely tough and we'll link these posts because I think it will help people, especially in these tough times. Yeah, all right, I got a couple more questions before we come up on time. But, uh, open source so you have contributed to see python, pandas, other major libraries, and how has that shaped your approach to building tools?

Tim:

and yeah, let's start there uh, yeah, I um, I don't totally know how it's shaped my approach to building tools other than um. I've never been like a serious maintainer on an open source project. Most of my contributions have been, you know, small and focused things that I need to go out and fix, and I think in a lot of ways that's just how I do. Things is like, here's a problem, go out and find a solution to it, and sometimes that means making a contribution, sometimes that means making an issue, and I guess I try to have a similar mindset in my own. You know I've done a lot of internal tool development and just seeing things.

Tim:

As you know, I've I've done a lot of internal tool development and, uh, just seeing things. As you know, everything can be improved and then also seeing uh, or setting things up in a way that others can improve. So if you're like building internal tools at a company, um, you could build your repo in such a way that you're the only one who understands it and knows how to modify it, or you can set things up like a lot of the. You know, c Python's a big, complicated project, um, and it's not trivial to get started to make contributions Um, but they actually do want you to be able to bring contributions and they have documentation and things set up to help you do that. And I think a lot of that can be applied, especially on internal tools.

Tim:

I guess any kind of open source tools is building things in such a way that you invite contributions, and a lot of my open source work has come through not just my own development but then some hand-holding from more core developers on the thing, and I've been very thankful for that. Um, certainly, when I I made a this has probably been almost 10 years ago I made a pandas contribution and I was just helped a lot through that. But they didn't just say like, oh, you know, didn't just turn me away just cause I was new, but they were wanting to help me make a contribution and I try to offer that same thing to others as well.

Bob:

Right, no, awesome. And any additional tips for devs making their first kind of similar to the content question? Right, like, there are developers that might not have ever done open source contributions and it's scary. And now actually we learned that, yeah, they could have turned your way and usually that's not the case, because they do welcome the help, because they usually are overworked and they need all the help they can get right. Um, so again, that's a bit of that imposter syndrome there. Um, anyway, let's leave it open. So what, what is? Um, what is one tip you would give beginning open source contributor?

Tim:

and yeah, I think, yeah, I think yeah, just I mean, it's the same thing. Look for something small and whether it's something you identified or you know, a lot of the bigger projects will tag tickets as, like you know, good for beginners or something like that. Look for something small and then just start to work your way through it and ask the questions you need to ask, and if it becomes apparent that you're not getting the help you need or you're not going to be able to do it, it's okay to walk away from it. But yeah, I think it's, it's a really good.

Tim:

I've friends who I really respect in the industry have never made any kind of open source contribution and I think I can think of very few cases where, like, somebody just didn't really seem to want contributions at all. And if you go into it carefully and you know you're not, you know I think there's a problem right now of just kind of AI slop type contributions. Don't, don't do that and don't get in over your head and write you know, don't submit a thousand line PR that you don't even understand and expect somebody to make sense of it, but look for something you can do in 30 lines and then work your way through that. That's, I think, probably my Python and Pandas contributions maybe, aside from testing, are just a few lines, but very worthwhile experience for me.

Bob:

Yeah, I think so much comes together right, because it's understanding a code base, collaborating, making changes that don't break anything, adding tests, et cetera, et cetera, yep. So do you want to highlight one of these contributions, panda CPython, which is one of those?

Tim:

My CPython contribution. I kind of like. I mean, I am proud to have made a change to it, but I was literally was doing something for a colleague and you can configure PDB, the Python debugger, with a config file, with a config file. And there was something with how it. It looked for a config file in your home directory that, uh, relied on a certain way of look, looking for the home. You know there are different ways of looking at a home directory and so, um, we were trying to do something where he was like calling PDB from inside IPython or something, and basically we just needed another colleague and I worked on it together and went in to change, to generalize how it looked for your home directory, so that this certain very nuanced thing we were doing would actually work.

Tim:

And it was a good improvement, but it wasn't something that most people would ever work. Um, and it was a good improvement, but it wasn't something that most people would ever. I, I didn't even know there was a way to configure PDB um prior to this Um, but yeah, it was a pretty, uh, pretty subtle change within PDB Um. But again, through that I got to learn how to build Python and run the test suite, interact with the developers and just see how that process worked. Uh, and it was a hundred percent worthwhile and I would love to do more. It just hasn't been a priority.

Bob:

Yeah, yeah, cool story. Yeah oh, let's leave the coding a bit. So you're also into, uh, photography, right, um, wildlife photography, yeah.

Tim:

These days I mostly photograph my kids, but, uh, I but I love wildlife photography. Around where I live birds are kind of the big wildlife to do, but I guess it was before COVID Now 2019, I was able to go out to Yellowstone National Park and do a wildlife tour and a lot of photography out there. But yeah, that's kind of one of my uh main hobbies that I really enjoy doing.

Bob:

Yeah, nice and uh, do you see any uh parallels between uh that and programming in terms of uh focus, iteration, storytelling?

Tim:

I honestly, I think a lot of it is the exact same stuff we've been talking about, which is like photography and programming, the. The thing you need to be doing is just like practice, practice, practice. And digital photography is made that essentially free. Once you have some equipment, I mean, and most people, if nothing else, you can start with a phone. But also, I think in both it's okay to make things that you throw away, like we were talking about earlier. It's okay to make something you're proud of now and then, a few years from now, you look back and say, uh, maybe it wasn't that great, but uh, that's just your step along the way.

Tim:

I think there's a lot of parallels there. Um and I, I think also, interestingly, both are um easier now than ever, in that the tools are so accessible um to people. Uh, you know I'm old enough that I never had to buy a compiler, but when I was in high school trying to teach myself some programming, that's, you know, when people were still buying compilers, um, and learning to program, even on the internet, this was would have been, you know, 25 years ago was very difficult Um, and now we just have so many resources of programming. But the same goes with photography. I mean, youtube has just revolutionized learning photography, where you can literally watch the photographers go out and do an HDMI capture of what they're seeing through their viewfinder on their camera and you can see exactly what they're seeing, see what their settings are, um, and so both of those things are easier than than ever and and folks can go out and start picking those up and and just do it and then see where it goes um. I think that's a I really need opportunity that, um.

Bob:

I would have loved earlier times in life to have all the resources available today yeah, we're spoiled in a sense, but that also brings like there's, there's too much, and how do you choose the right ones? Yep, that is a challenge, and nothing beats hands on the keyboard or hands on the camera in this case. Right like yep, you need to do it.

Tim:

So I, I think the big, big uh point there is. You just do it, do it, do it with both things, um, and be bad until you're a little better than a little better and a little better uh, deliver, deliver, practice, yeah, cool.

Bob:

So, yeah, thanks for sharing all this. Uh definitely enjoyed it. Um, two more questions. Um, yeah, what's next? What are you learning? What are you excited about now in the industry? I mean, obviously, keep doing the handbook and that's thanks again for that. That's amazing, uh. Any any other stuff you're planning to learn or develop or whatever?

Tim:

yeah, I'm trying to get better at pie torch for work. It's something I've kind of dabbled in over the years but doing a lot of now. And I think kind of a less interesting answer is I'm just really excited to see what UV is going to continue to bring in terms of accessibility. Um, and I think, um, we're going to continue to see a lot of of impact made by that of it's becoming so easy to to get started with Python, where there were barriers before Um, and then, I think, at the same time, seeing that happen with LLMs which are both running Python but then also helping people write Python. Uh, it's just going to be very, very interesting. So, um, you know, I think that there's a bright future for code still and for people to know about code, and I think, um, python is obviously going to play a huge role in that Um. So, yeah, I'm hopefully, hopefully going to play my own part in helping people in that direction, but I'm just really excited to see what that's going to bring.

Julian:

Hey everyone, a quick break from the episode to introduce you to our brand new coaching program, the PyBytes Developer Cohorts. Now, these are cohort programs typical of a bootcamp style interface, of working together with a group of other people, except it's got that unique PyBytes twist on it where you are going to be building all day, every day. There is very little material that you will be consuming, so you won't be stuck in that tutorial paralysis. The point here is that you will be building from day one and alongside other people also building the same app in their own repositories. You can all talk, you can all share, you can all grow together and, of course, you'll have a pie bites coach supporting you the whole way. So if you are interested, just check it out, click the link below. It is piebytescoachingcom and we will see you in the next cohort.

Bob:

And last question what are you reading currently, or what have you read? What's the book recommendation?

Tim:

Yeah, I just started picking up the PyTorch Pocket reference. I'm just trying to understand kind of the mechanics and semantics of PyTorch better. I don't really a lot of the PyTorch books are like kind of deep into modeling things that I don't. I like know the modeling, but I'm just trying to understand how to use PyTorch better. And then, somewhat unrelated, just started actually listening to the audio book but a book called Last Call, the Rise and Fall of Prohibition, where a hundred years ago alcohol was outlawed in the US, and that's been very fascinating us, um, and that's been very fascinating. I. I'm a kind of a history buff and it's I'm only a few chapters in but it's shaping up to be one of my favorite history books I've ever read. Uh, really just amazing history and well, really well told story. So, uh, oh, wow, that's kind of my, uh, my other interests outside of photography and programming, is history.

Bob:

Nice, well, we'll link that. Yeah, any, I like history as well. Any any other resources you use for history?

Tim:

Uh no, I I mostly uh I listened to a lot, a lot of my history on audio books, um, and uh, mostly American history, um, but yeah, I just kind of pick and choose. I don't have any uh huge goals there necessarily, just find things that are interesting to me and, uh, spotify to make a plug for, at least for American users, spotify, uh listeners get access to audio about catalog now, which has been really nice. It's allowed me to um, kind of dip into things and then give up if, if I'm not that interested, which I guess can be bad too, but I've really enjoyed that for just exploring the breadth of audiobooks more.

Bob:

Yeah, nice, I like these extra hobbies and interests. Right, like coding, you can get sucked into. But it's also good to have different things. I have that with literature, for example. I really like the classics, and then it's also good to have different things I have that with literature. For example, I really liked the classics and then good for balance. Yeah, anyway, Cool, uh, any. Any final shout out um or piece of advice before we wrap up?

Tim:

Yeah, and only shout out is I love a fall on social media. You can find find me on LinkedIn. I don't accept just like every connection on LinkedIn, but you can at least follow me and see my posts. And if you're on Twitter or X, I'm TD Hopper on there. I'm still trying to be active on there as well, but love to connect with people and learn from others and hopefully have folks learn from me as well.

Bob:

Yeah, we do. Thanks for hopping on today and sharing and thanks for the amazing work, and I hope many more people check out your DevTooling handbook because it's super useful and yeah.

Tim:

Thank you, Bob.

Bob:

Cheers.

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.