Django Chat

Understand Django - Matt Layman

Episode Summary

Matt Layman is a Senior Staff Software Engineer at Included Health and the author of a recent book, Understand Django. We discuss running a Django monolith at scale in the healthcare space, his weekly live coding series, and more.

Episode Notes

Support the Show

Episode Transcription

Will Vincent 0:06
Hi, welcome to another episode of Django Chat podcast on the Django web framework. I'm Will Vincent joined by Carlton Gibson. Hi, Carlton.

Carlton Gibson 0:12
Hello Will.

Will Vincent 0:14
And we're very pleased to have Matt Layman back on to talk about his new book, Understanding Django. Welcome, Matt.

Matt Layman 0:19
Thank you.

Carlton Gibson 0:19
Thanks for coming on.

Will Vincent 0:22
So a number of things to talk about, but maybe you're one of the more prolific people out there. I'm always impressed by the fact you have a day job. You do the books, you do these video cards every Wednesday night. You had a podcast for a while. How I guess, Howard, how things been the last two years? Are you still doing all those things? We still managing to keep all those all those plates in the air? No, some

Matt Layman 0:43
of those plates have definitely crashed on the ground and broken and yeah, it is. It's tricky. It's keeping up with it. And, you know, burnout is a real thing. Life is a real thing that happens to you. So I've done I've managed to do some of them. But definitely we'll chat about some others that probably have not continued to the level that I will desire to. But it's been been good overall.

Will Vincent 1:07
Okay, well, I do we will talk about the book, but maybe we could start your day job is quite interesting. Like, can you give a quick pitch on what that is? And the challenges you face? Because you're, you're still I believe in the healthcare space, right? That's right.

Matt Layman 1:19
Yeah. So I worked for a company called included health. And last time we were on that company was called Doctor On Demand. We merged with another company named Grand Rounds health. And now we're kind of like the I don't know if the Power Rangers reference of Megazord or Voltron for those of you who might be of a different generation, we've got all the health care pieces bolted together now and do some really super things for people in the US healthcare system, ranging from telemedicine to helping you with billing claims, and finding you the right doctors, if you're dealing with some kind of acute need for medical care. So that's what the company does. And Django is definitely still a big, big piece of all that. Can

Carlton Gibson 2:05
I just started talking about the the sector for a moment, because it seems to be the big thing, my phone company trying to sell me, you know, I simulate not your service, some in Europe, but like, you know, access to a doctor online and these kind of things, it seems like a real growth industry.

Matt Layman 2:23
Yeah, big spikes, certainly, since when we when we hit the COVID period, that was a big jump in access, as you might imagine, because people did did not want to leave their homes or what recommended not to. And so we had some serious scaling discovery issues there, where we're like, oh, geez, the world is on fire. And we need to be there to help. So we did a lot of work to make sure that our Django site was able to handle all that traffic. There's a whole other side of making sure we have enough doctors to meet demand. But that's a different kind of problem to deal with. But yeah, when it did, overtime, it has like, come down a little bit from from that peak, of course, as you might expect, but it's definitely there's a lot of interest in and there's a lot of places in the world that are released in the US that have poor access to health care, where there are no doctors in a town in the middle of nowhere. Because folks can't make that work with the cost of getting that kind of education and then going to a town that doesn't have enough people to support it. So folks are in a tough spot and having access to telemedicine is is a really great, great thing for them that they wouldn't otherwise have access to.

Will Vincent 3:39
Okay,

Carlton Gibson 3:40
I mean, I meant also imagine, though, that in a city environment where you know, people are busy, but also the clinics are busy, and you can't necessarily get an appointment easily. And

Matt Layman 3:48
oh, yeah, sure. Sure. Yeah, it's not, although I did kind of characterize it as being something for folks that don't have access. It's also super useful. Just it's a convenience thing for for life as like, just general access to anybody who needs it, whether you're your kids sick at home, and you just didn't want to go into an urgent care clinic, or you need to, you know, we do stuff like behavioral health visits, and you can meet with a psychologist or psychiatrist if you need to, or just the therapist to get Okay. Talk, talk through your, your, your your mental health as well.

Will Vincent 4:20
Okay, that sounds super, I recall that. Because because we had just sent just into Shelly on back in 2020, who was the original CTO of Dr. On Demand. And I think she had mentioned that there were at the time restrictions around cross state provider and client and I know those were loosened during COVID. But I don't know, are those still loosened? Or is that still a big technical challenge to link up? All that

Matt Layman 4:45
is is one that we have to work through. So the the, I think some of the biggest restrictions around actual telemedicine have been removed. I can't name unfortunately I can't name what those words are. off top my head, I don't know. But one of the challenges that we do have to face is a, you need to be a licensed provider in your state. So we have to, we have this big routing operation where we need to make sure that a California doctor can see a California patient. And you can't have just somebody from Massachusetts talking to somebody from California because of how the legal system work. So we do a lot of work to make sure that our providers are licensed in as many states as possible. That's our solution for dealing with a lot of that, so that they can have access to more patients. And that were more accessible to others. But yeah, that's that's the kind of the more of a clinical team logistical challenge that they face. And at the tech, pure technical level, there's there's not really the restrictions that we might have had in the past.

Carlton Gibson 5:43
The for that problem, though, there's you with a big switchboard and you put a kind of cable in one hole and a cable in the other. And that

Matt Layman 5:50
yeah, we have a whole dedicated subsystem within our Django app called the router. And it's kind of gnarly, because it's, I've, I've described it as just clinicians and their licensure. But there's also other factors about who can see who because of their insurance plans. And it gets really gnarly. I'll

Will Vincent 6:12
leave it at that. Just one big many, too many.

Matt Layman 6:17
It's a big statement.

Carlton Gibson 6:18
Yeah. All right. Good. I love it. You mentioned the big S word you said scaling. I think last time you talked about some really interesting stuff. Can you give a kind of overview of the architecture and how you scale it and, you know, interesting challenges that you might have come? Because I think, you know, a lot of a lot of us don't run that scale very often.

Matt Layman 6:37
Yeah, so as a context, doctrine, demand had a a big, a big Django monolith. And that monolith I checked the lines of Count lines of code count, in the last month or so it's about 500,000. So nothing to sneeze at. And as, as what comes with that is hundreds of REST endpoints, hundreds or 1000s of JSON RPC endpoints, a different protocols style, and the need to serve a high volume of traffic to satisfy not only the our member side, so we have built out in our system, both the electronic health record system, and EHR, that's what the actual doctor uses. So when you go into an office, and they're filling in all of your, your information, they're using an EHR, so we built one in house. And then we built out the actual member applications on the other side, to handle that. So that's kind of, you can think of it like a two sided marketplace. And so that's a scenario where we're working with. And so the Django Monolith is deployed using Kubernetes as to get some the scaling that we need. And we deploy with Docker to put everything into a single single package or container, and put that on on a myriad of pods that are deployed on our infrastructure, which is on US East two in AWS. Like classically, as you know, so many San Francisco based startups are. And there's, there is a thick clients that talk iOS, Android web native stuff that so everything is over, over these API protocols. Mostly, we don't do many server rendered pages, we have some back office functionality, that is still using some server rendered stuff. But that's generally how we achieve the scale that we need is, is using Kubernetes to spin up a bunch of extra pods to get us our throughput. Okay.

Carlton Gibson 8:38
And then I guess the the question that sort of comes to when we talk about running a big monolith like that is do have you thought, have you considered rolled out? Have you thought about spinning off like a smaller thing that might load quicker to be able to spin up more lightweight? Like micro services? Essentially, we thought about spinning bits out? Are you happy with the monolith style or

Matt Layman 8:57
Yeah, so that there's actually like layers of complexity that come in here, because of the the merger, the merger took, like all so our teammates from Grand Rounds health came in with their tech stack was a Ruby on Rails shop. So they have their own monolith. And I say that it's it's now us, but it's been a couple of years. But so we have our secondary monolith. That is the primary functionality of that legacy business, which is in of itself. It's not quite as big as the Python monolith, it's probably in the order of still hundreds of 1000s of lines of code, but it's maybe two thirds the size or something like that, but it's a lot of code still. Plus, they they were farther along on the microservice architecture path. So they had stuff written in Scala and Java and some Python stuff, and there's data science stacks in there. So when we joined together, we suddenly like whoa, okay, there's this whole new polyglot world here, and what are we going to do about that and the business decision was not to create some sort of subsidiary strap by goes an equal merger. And we didn't want to say, okay, you've got your tech stack, and we've got our tech stack. And we're just going to not join them together, like the whole value proposition of the merger was actually to also merge the technology. So we had this extra problem. And on top of just a layer one more thing on there just if it wasn't interesting enough, they they were using primarily Graph QL as their interface

Carlton Gibson 10:24
layer, and you breast and off his JSON API. So

Matt Layman 10:27
we now have three protocols, at least, there's probably some art, I think there were some, some G RPC in there somewhere as well, like five or six languages, and the doctrine demand team was starting to branch out and explore some microservice architecture ourselves. So where we land today is a big hodgepodge of stuff. Still, we probably have half a dozen to a dozen Python services. Most of them are written in Django, there's a couple that are not there were some older legacy stuff. We have lots of NGO services that we have, and all this whole roster that they had as well. And we're doing and because it was two healthcare companies, and we had to monoliths we had, like it was would be one thing if they were just fully independent services. But we have also like overlapping concepts, like we both have modeled a doctor, you know, in some way, and we need to now unify the model. And actually, the modeling merger is probably the harder part of this, then the actual data, you know, tech, merging of individual services on Kubernetes, Kubernetes, can handle a lot of run stuff on a network like that, that problem is, is a I mean, it's hard, but it's a fairly solved problem. But then actually bringing together design is like a whole whole other challenge that we're working with. That's

Carlton Gibson 11:50
fantastic. I love that story. Everything about it. You began before we went down that alley of talking about life and burnout and scars.

Matt Layman 12:00
Yeah, I can imagine if it's your heart, it's a good challenge. I mean, I really enjoy fantastic enjoy the challenge. But it's like, wow, that's just not but I stepped into when I first started with Dr. On Demand. And

Will Vincent 12:10
now you're I believe you're a senior staff, software engineer. So what is your mix of do you get to just do code all day? Are you managing or architecture? What is what does that look like right now for you. My

Matt Layman 12:22
mix these days is mostly architecture. So we're working on some really large projects. So I mentioned we have an in house EHR, that's Electronic Health Record system. And we are trying to switch to a vendor to finally sunset ours, because it's not it got us to where we are now we're really grateful for what it did. But the longer term, we are planning to say, Okay, we'll use one that's a bit more off the shelf and provides the functionality that clinicians still need. But we can focus on other pieces that actually add more value to our ecosystem. So that's a big rewrite, because the the the Health Record system is deeply entwined in our Django monolith and very integral to our member apps. And so it's a it's a really big project to rewrite a lot of stuff and take on a lot of work there. So that's that's the biggest thing that I focus on. And then you know, a lot that you're classic like, I love developers, but they are like herding cats. They're they have their own mind about things and want to do things in certain ways. And getting everybody to actually kind of come to some reasonable consensus like I there's always going to be disagreement, but something that is good enough is the real challenge I want to deal with mostly on day to day stuff. You're

Carlton Gibson 13:41
not one of those mean bosses that asks for, like estimates on how long things might take or anything like that. I

Matt Layman 13:46
No, no, no, i There's a great book. It's I guess it's It's Steve McConnell. It's a called book called Software estimation, or demystifying the black art of software. It's something along those lines, fantastic book on showing how how to actually do estimates, which our industry is horrible at. I'm not the guy that comes back to you and says, I want a single point estimate that needs to be as short as possible. Now, it's a it's very much a dialog of a we've got a certain amount of uncertainty here. What are the ranges that we expect on how long we are going to build these things? And, and, yeah, it's been a useful tool. So if anybody's looking for some light reading software estimation realm, go check out McConnell's book. That's a good one.

Carlton Gibson 14:29
Yeah, it is, um, one thing I want to ask them what you say you're taking on a vendor product. So you know, just sort of generally What's your Can I get your take on kind of using a an off the shelf solution versus building your own? Well, what are the decisions that what are the factors that go into that kind of call? Because obviously you always want to rewrite everything yourself, right? Yeah. This

Matt Layman 14:50
particular decision was a really hard one. Because of how, how much this EHR tool was at the beating heart Like it's how we serve and do telemedicine visits. So it was not taken lightly. We did months of research on this particular one with a fairly sizable team, because we didn't want to make a bad, really bad choice and then like, mess up our whole system to the point where we can't really go back. So there's a lot of analysis that needed to happen by by many teams is not just purely the technical problem, but also is this going to work for our clinical teams is going to work for operations teams, there's there's logistics problems and challenges. There's the financial cost, like when when do we break even on? What do we you know, this is an investment of this certain amount of time, we need to get out this kind of margin gain from not working on some of these features that are required by regulatory problems. And so it is complicated. I think from an engineering perspective, we looked at what we met with our their team extensively the others, when you go into a vendor this this large, you really get into an enterprise sales pipeline. And part of that is working with customer implementation teams that they have. They're there, they're designed to help you onboard and walk through here, all the things that you're going to need to consider. So those teams are, are vital with tools for the size. And we've done a lot of work in negotiation with those teams of, hey, here, your public API's, here's how we think we're going to need to do this. And let's, let's navigate this together. So it's a very big process to go through that. And it just requires a lot of a lot of patience. Because people don't always see eye to eye, there's a lot of I mean, there's some amount of anxiety to it is still a massive change. And we know that like the project we're undertaking is going to be at least a year before we're done and ready to roll out. So in your smaller shop settings that that you folks might be familiar with. And I am familiar with myself for like, a year. And that's like an eternity most big project and product. So those are the challenges we're facing. And

Will Vincent 17:15
I have to ask, because it's timely, but so I haven't heard you say AI, which I'm sure would, you know, increase the company value a little bit. How does that discussion go internally? Because I know it's, you know, it's just like magic dust you sprinkle on things. But yeah,

Matt Layman 17:28
we are see it, our CEO is not immune to the AI bug either. We've actually made good use of it already, which is, so one of the aspects that I mentioned that the business does is we, we have a large care team. So that's the team that like, I don't understand my medical bill, and I need to get some, like something looks funny on this insurance claim that's happening, I need some help. And we can either help you understand that bill or find out actually, you know what, that you're right, that was missed miscoded. And we need to go fix that and like save you potentially 1000s dollars, we have cases where, you know, the kind of things that are in our all hands meetings, we're here have a story of a family that was dealing with, like millions of dollars in medical bills for their young child. And it's all because stuff was miscoded. And we were able to get the the amount down to almost nothing, which is like shocking to me, and is really a statement on the US healthcare system. But also just something encouraging that we're actually able to provide that service. So that to that team, though that care team interacts with a lot of members. And they need to be as efficient as possible, because that's the way that we have some of our margin gains is by being a lean and mean kind of team. And AI was was something that we applied pretty early here of we have a lot of messages that, you know, for all of the unique cases that happen out there, there's plenty of just standard stock cases. And we don't want to give something so canned of like you're clearly dealing with a bot. But we want to make those folks as real flesh and blood people faster at their jobs. So we integrated tools that did learning on our data for the very specific domains that they have, and provides back prompts of almost like a built internal healthcare chat GPT kind of thing. And it will provide back a prompt of here's, here's something that you could probably send to the vendor member we don't send to automatically, we make them the care team member like look at it, and they report back like you know, some something on the terms of 50 or 60% of the times it's good as is and they can just hit the send button and send it out otherwise the other times they have to tweak it and make the modification that will make it even more meaningful message to our member. But it is saved just oodles and oodles of their time. They're They're thrilled to pieces that they have access to some some of these AI tools that that we've built.

Will Vincent 19:46
Yeah, that seems to me to be the hopefully the unlock is Ai plus a human makes the human better at whatever they're doing. Exactly.

Matt Layman 19:56
I don't I don't want I don't want to be dealing with bots all day. I don't know about you, but There's always that uncanny valley aspect of so many of these things. And I'd rather have a human like, Okay, I still believe you, you've passed the Turing test because you are a person. And you're not just a machine.

Will Vincent 20:11
Well, and then there's the we had this discussion with some recent guests like metaphysical when it's like bots, talking to bots, just like if AI writes to the web, and then AI is built on the web, like, where does that lead us?

Matt Layman 20:21
So yeah, it's like the, the other one that I've seen is the email one where it's like, I haven't, I can make my email sound really fancy. So that I look really good. And then the person on the other side is like, summarizes email for me, so I don't have to read it. And like we just bloat on the web. I haven't seen that one side and shrink it on the other.

Will Vincent 20:40
Love it? Was it is there if we switch gears to some of the other projects or anything else around? I mean, obviously, it is how you spend the most of your time is on the day job. And that's, that's, I mean, to me, that's the most interesting space, honestly, in all of tech is the merger with health care, and then you throw the AI piece in there. Yeah,

Matt Layman 20:58
I'm happy to answer any more questions you might have on it. But nothing, nothing's jumping to mind about the healthcare space. I could go on and on forever about it. Because

Will Vincent 21:05
oh, maybe one quick one. I don't know if you've already covered this. But um, so because you're in the healthcare space on the database end, I believe there's specific databases that meet all the regulatory requirements that you have to use, right? Like, is that correct? Like, because I know, there's there's a higher level of? I don't know, it's not, you know, it's the higher standard and we're dealing with healthcare data, as opposed to just consumer stuff.

Matt Layman 21:27
Yeah. So in the US healthcare system, there is a legal set called HIPAA. Yeah,

Will Vincent 21:34
that's what I was gonna reach for is that that's just like the umbrella you just say, oh, HIPAA, and then it's like, yeah,

Matt Layman 21:37
it's all HIPAA stuff. And within HIPAA, they define some of these these rules that you're talking about. We basically, thankfully, we're using a lot of services that are come from AWS and AWS, love them or hate them, they they've done a lot of work to make HIPAA compliant services. Where we have to layer on additional requirements for health care is usually stuff around like data retention with the with the data retention policies, it's I think it's seven years or something like that, that we have to hold on to data we It's no joke, we have to be very careful about storing all this stuff into either s3 or What snowplow and that. Is that the other what's the the long, clunk, oh, glacier, the other

Will Vincent 22:22
Arctic Arctic metaphor? Yeah,

Matt Layman 22:24
yeah. So we have to be careful about that stuff. Our cloud, we have a Cloud Platform team, we have a bunch of platform teams that help us build on these layers. And they think long and hard about making sure that we're compliant with this, these different regulatory stuff. So all of our developers have to be trained on this. But those teams have those extra responsibilities of when it comes to the data and what does it mean to be HIPAA compliant and how to you encrypt in transit, encrypted at rest, and all of these things to protect the data as well. That's where those teams are coming into play. Got

Will Vincent 22:56
it? Well, let's speak about fun stuff where you can just use Heroku. And go so you have this weekly series, building SAS where I've actually watched, I watched a bunch of them. And I really enjoyed I watched the first six of your, your new ones. So you had a homeschooling app you've been building for I think, over two years or so probably. Yeah. And then you just started this journey inbox recreating a service that went down that do you like to use and that's been even for me, like, that's been really fascinating, just to see someone how someone else does it. Because I think we I certainly feel like I can get locked into my little roots. And aside from some monolithic huge thing, not many people with experience are publicly showing how they do things from scratch, I picked up a number of things from you just just seeing how you set things up. I mean, I didn't do it, you know, I probably do 80% of what you do, but I was still like, okay, Matt likes that too. Like that's, that's good to go. So all of that as a preamble to like how's that going? Right I can imagine when your day to day dealing with a one year project and all these things and then you can just fly. Yeah, that must feel good, but it's also but what what are you getting out of that? Because I know like I don't know how you manage there's like a live stream stream or whatever they call it like a chat of people asking questions as you're doing it as you're thinking out loud. I certainly couldn't do that I would need all sorts of notes to do that. But you're able to to kind of just make it seem like you're just out of thin air prototyping these things well

Matt Layman 24:19
I could see that like Like so many things in life is is a skill that is developed over time I mean you can i I've So I've now done almost 200 of these like live streams you go back and look at the first one it is rough man is a super nobody's watching me like you can hear my the the fan of my Mac like just going super loud. It looks awful is so so many bad things about it. So everything is a journey, and including the streaming stuff. I think on this particular project, I also gave myself some some additional constraints, which is I said for this one, I'm not going to do any Any code that is not streamed live. So this is a, like, I'm coupled myself to a couple of hours week to doing the code so that you see the the intent of that is that the whole picture is available. And that means anytime I get stuck anytime, I don't know, like, like, what I'm doing anything, I need to refactor anytime I needed to do dependency upgrades and all of like the nitty gritty, like, I want to put, you know, it's like full open kimono thing because it's the the point of it, from my perspective is not only to build a product that I'm planning to use, I'm just kind of scratching my own itch with this, this journaling thing. But also to show folks what it's like to build a real app. That is, it is not necessarily a glamorous thing. It's not an easy thing. Sometimes it's easy. Sometimes it's not. And sometimes you don't know what you want to achieve. And and seeing that I think is I'm hopeful that that tells a tale of like that being a developer's Is this, like journey and experience thing that that? I think too much gets packaged up with the very nice, I appreciate the very nice tutorials that are out there for learning. But I think that they lose some of the real gritty pneus of life and building apps. There

Carlton Gibson 26:22
must be a kind of courage step, though. Because I've got 20 years of experience, I'm a good developer, but no way would I stream your stream what? You don't want to watch 40 minutes and be browsing the docks or banging stuff out in the terminal to see what happens, you know, wants surely Ah,

Matt Layman 26:44
well, sometimes no one does want to watch it that what's that kind of stuff? Like there are moments where I mean, I'm not doing rocket science kind of work here. This is our pretty standard stock bread and butter, Django apps. And

Will Vincent 26:59
I'm gonna stop you there. You're downplaying a little bit? I mean, I think, honestly, I think it's, I mean, I don't watch them live. Because at that time, he doesn't work for me. But I think, honestly, I think this is invaluable. Just even for people studying computer science to see like, this is a real life. And again, it's not a perfect tutorial, or, or book, which we can talk about. It's like, how is it done? I mean, I think the two things I found most interesting that obviously resonate with me is when you get stuck, how you debug it, because everyone is a little different. You know, it's like, where do where do I look? How do I do that? What do I look up, but also the fact that with this project, you're, you know, certainly the beginning, you're just pulling things from the, the homeschooling app, which is what we all do, like we all have this, like toolbox of projects that we can pull from, and I think that's a big thing that people miss, that I'm really aware of now that I mentor someone on a weekly basis. And it's not that I you know, in the moment, no more, it's just that, you know, you have this toolbox, you've done it once or twice. I'm like, oh, yeah, that kind of fits with this, and I know where to look. And I probably have a version of what I did. So that to me was a you know, I think that's really important for people to see like, how is someone so fast? It's not just that you can whiteboard what I'm going to do and then you do and it's like, how do you do is like well, you're you're quicker at the docks, you have this past projects. And a rare occasion you get stuck, you say like I'm stuck. And then you know, comes to you 20 minutes later when you're working on something else like that's, that's as close to God like as it gets for anyone. So I think it really humanizes the profession to see that.

Matt Layman 28:28
I think maybe one thing that I'll even add, so Carlton, you're chatting about like, how could somebody watch, there are some really dedicated folks who I'm so grateful for. And actually, it turns out of a bear another superpower that gets added to this layering is like, I'll have moments where I'm stuck. And the chat will pop in and be like, hey, what about you miss this thing? Yeah, why don't you just check out like, because one one thing that happens when when I'm streaming anyway, is reading documentation becomes super hard when you're like trying to focus on a camera. And you're, you're paying attention to a chat over here and like, there's just a lot going on in your brain and and so I will I will literally have to read out documentation or I will miss it. And even when I do that I still miss stuff. They're like you met you missed that option like that. You're like looking for this thing. And it's right here dumbing it's right in front of your face, like so. Having kind of mob programming to with a chat that is paying attention to what you're doing, and giving you suggestions. Not always the best suggestions, but suggestions that you can think through is is a really valuable tools. Well, well,

Will Vincent 29:31
I say one more thing. I mean, I'm always impressed. Your stamina. I mean if like because you go to three hours for a lot of these things and I feel like maybe I'll maybe I blame my kids for this but like I don't think I can go three hours anymore on anything. I like the intellect walk around, like, you know, just goes Daydream eyed that's so impressive that you're able to do that. And then as part of that one of the things just one specific thing. I'll let you go Carlton, when you're going through Django all off with your set up. You hadn't seen this before. But it makes sense. You went through the docs, every you know, there's 3040 settings, you went through every single one. And, you know, I think you've included it in the code and commented in or out. But that's even for me, like I've been doing all off for 10 years, like, I've never actually done that. That's like, I was just like, grab the ones I need. And then if something doesn't quite work, I pull another one. But that that was such a good exercise. Like, should I should do it that way, actually, that that makes sense. Because there are a couple of things in there. I was like, oh, yeah, I know. They're probably new in the last five, six years, and I just haven't reached for them before. So that methodical nature of like, yeah, it's reading the docs and deciding in real time. It was great for me to see you. And I'm sure for beginner, it's even more eye opening.

Matt Layman 30:42
That's an aspect of my brain that I guess I love and hate is like a, I'm a systematic kind of person. Like, you know, if we're a tortoise and hare race, I'm absolutely a tortoise like I go slow and methodical. But the tortoise wins, the tortoise wins, though, tortoise does win, which is something I like to keep in the back of my mind. But I do sometimes feel like I'm going way slower than I could or should be. And but it gives me a deep understanding of some of these things, or at least like, oh, yeah, I do remember seeing that option before? Because I wasn't, I did literally see it at some point. Carlton,

Will Vincent 31:18
you, you know, I

Carlton Gibson 31:20
was just thinking, thinking about that. I think the this line about being the tortoise, I think that's dead, right? I've kind of we, as an industry, we kind of sort of glamorized this idea of the FAST program and the fast, it's like, no code slowly, he go really slowly. And just make sure you get it right. And, you know, take whatever time it needs, because you build this one little block, and then you build another little block and you build another and it might have taken an age to get something but good software doesn't just appear. It's it's kind of crafted slowly, I think. And so that methodical approach is good.

Matt Layman 31:55
This is especially important if you're operating your own stuff. That's so the extra layer on on top of my projects here is that the ops guy is me. Yeah, right. So you don't want to dump on some some Pourcel with some bad code. But like when you know that, that Pourcel is absolutely going to be you and you don't want to deal with fires at two in the morning, you take a little bit, you slow down a little bit, you're willing to go a little slower. And right the thing that's going to be as bulletproof as you can make it because I need sleep. You know, I don't have time for

Carlton Gibson 32:30
goes down on a holiday weekend. You can't Oh, excuse me, I'm gonna leave the family dinner now to go and work on my cell phone. No, that's not gonna happen. Very true.

Will Vincent 32:40
Well if we could switch to another, I guess two big topics, the book in the podcast. So I know. So Jenga, this podcast you did you had quite a run there. I know. It's been I guess a year. I'm curious, what a year on? How do you look back on that experience? I mean, I listen to all your episodes, I would imagine doing the podcasts informed the writing on your site, and then the book. But yeah, how are you feeling now about having put all that work into those podcasts and, you know, maybe picking it up again in the future? Yeah,

Matt Layman 33:10
so I did mention early on just plates spinning, this is one of the plates that dropped and, and kind of shattered on the floor. But I think I can piece it back together. It is a it's a project where it's fun. But it takes a lot of work. And like the I know what you guys must do, or at least one of you or both of you. It, it's a lot to get the the editing going and didn't take that takes time. So I built what I could with that and recorded some episodes, but then ran out of gas, frankly, and I left it up. So thankfully, I do have like a Patreon and a small group of people who who send some money my way. And I pour pretty much all of that money back into either the paying for the podcasting or paying for, like equipment that I'm sending out for my streaming setup. And, you know, I I'm not quitting my day job. Let me put it that way. So I'm happy to like leave that content up. But I do plan to return to that. And kind of a question of what do I want it to be in the future? I have a few more content episodes that, that I think wrap up a lot of what what does map to the book that I've written in the series that I've written. And then beyond that, I'll be switching to I think the thing that will follow will likely be an exploration of the third party package base like there's I think something that can use some love is like, what are the core packages that are out there that people really gravitate to? And how do you use them? Why are they interesting? And just is there any kind of spotlight that can be shone upon upon those things? So that's that's the plan for Django rest when I when I do get back to it may not be well, at this rate certainly won't be this year. But sometime next year, I'll pick up the rest of that and keep it going. Yeah,

Will Vincent 35:07
no, I think that's a great. The third party package is definitely an area that needs some love. And I think more. I mean, there are resources like awesome Django and some other ones. Like one of I think one of the more popular posts in the Django forum is one I put up a couple of years ago about, like, what are your top five or 10? You know, if you have to pick and it's not the same for everyone. But but going that extra step, as you were saying of like, how do you actually use it and maybe showing some of that? I think that's the big unlock, right? It's easy to say use use Django all off. But like, Okay, how do you use it? You know, like, right, you could write a book on some of these third party packages. And yet, yeah, I would say there's five or 10, there's probably 10, we could name that, I'd say almost everyone uses. And then there's another 2030 that people choose, you know, you pick and choose, but you like you can't write a Django app without third party applications. And I think, and especially looking at what happened with Flask recently, with the flask login, it makes me feel how stable and mature that Django third party ecosystem actually is in comparison, right?

I think it's easy to appreciate that it's easy to be a little Debbie Downer about it. But it's like, I can't think of a I can't think of one that's been left for a year. Like I mean, Carlton, you know, has picked up a bunch of the people who do that. But that's a real another real strength of gencos. Yeah, there's I don't think any of the core core ones are neglected at this point.

Matt Layman 36:28
Yeah, it's a really great thing about tech community. I'm sure there's a lot of thankless work that goes in there. So for those folks that are out there that might be listening. Thank you. I really appreciate what you've built. But yeah, one of the things I do in my podcast is I don't shy away from actually talking through some code. And I know, I don't know how often how good that comes across in audio, but I make an attempt of we're gonna actually talk about some some code snippets here and there. And I think that does lend itself to giving a demonstration of what some of these packages can do. So that's probably in the plans of, of just showing how do you integrate these things? What is it useful for? What's the main main use case? Can we get an early example of what that might look like to give people a sketch? That then they could go and take it and turn it into something that they could use themselves?

Will Vincent 37:10
Yeah, I think that's helpful. I mean, and that is always, it is helpful to have podcasts like this, where we sort of talking overarching terms about things. But you know, at some point, you do need to see, see and talk about real code. There's interesting, you know, what you were saying about the time it takes to do the podcasts? I mean, when we started this, we did a bunch that were topic specific. So we talked about sort of like how you did you know, about settings, files, or deployment or signals and stuff. And those are all kind of those are a lot more work than having a guest on. I mean, you know, that the feedback I got to Django con was like, You should do more of those episodes like that are deep dives. And it's like, Yeah, but there's so much more work to do. So,

Matt Layman 37:52
the show notes prep, and all that that goes with it to have gotten ready. Yeah, yeah.

Will Vincent 37:56
So it's, you know, I think it's okay to not have lighter ones. But sometimes, conversations like this, right, where there's still value, but it doesn't yet the prep isn't quite as high as it is for just solo talking for 40 minutes. Right topic. Fair enough? Well, maybe the book, we could talk about the book. So you recently published your book, Understanding Django? What was that process? I know, I know, some listeners, I know that I'm guilty of sometimes talking about the book writing process. So I'm not gonna say anything on my end of that it but for you translating from writing the series online to the book, what was that? How many? How long was that in total? Right? Because you were working on that for quite a while. The online series and then now the book? Yeah,

Matt Layman 38:38
so I built this series, if you actually go back and look at the first one, it's I think it started maybe in 2021. So it's been a long time to write the content. And it was as the book is a repackaging of my online understand Django series. And it's, it's a 20 articles that are around 3000 words apiece, so it's a it's a good sizable book, at this point, when you have it printed out, I should have brought my proof copy. But to show it, it's sitting up upstairs my house. And the process was fine for a while. And then I got to the editing process. And I've discovered about myself that I really don't enjoy the editing process. What I did was I like, like, any programmer might, I built a tool chain to help support myself and I wanted to make sure that that the online version of the book, stay true to that and use language about like, make it clear and evident that this is on the internet. And that when you have a print copy, that all of those, you know, switches to from article to chapter and like the link, there are language shifts in there that make it seem like, oh, yeah, this is in fact a book. So that was a challenge in and of itself. But that was actually the fun challenge. The the harder challenge was, I have I have a mailing list and I said, Hey, I'd like to, to gather a group of beta readers. If you would be willing. And I actually got probably 50 or 60 people to respond and say, Yeah, I'll do that. And so I sent them week after week, chapter of the book to edit. And goodness, that was the grueling process of like, and I got some really great feedback. But, man, it is, it is hard work. If you've have an I'm sure dealing with a professional editor or something is it's a very similar experience, where they they will, they will light you up on what you can make better is

Will Vincent 40:28
to question your your soul a little bit. Yeah,

Matt Layman 40:32
totally. So I think I got through that editing process. And then again, frankly, the book was one of those things where I dropped that plate for a while like I was basically had a done manuscript and didn't finish it off. Like I could have been finished with the book probably six months ago and actually had it out for for an available but just just was exhausted, I wasn't ready to publish it yet. So I finally got my act together last couple of months and, and got it out there to the world to you can buy ebooks and paperbacks and I'll also be doing hardbacks and audio recordings of it as well. So it'll be in all the forums to make it as accessible as possible. But it was quite a journey to get all that done.

Will Vincent 41:18
That's interesting. So the audio version are you going to because I've never done that is that you're going to record that yourself. And then just really some audible and all the places. I guess

Matt Layman 41:27
that that is my plan currently. I know that Audible has some weird rules, Amazon being pretty controlling about their ecosystem. So I'll have to see what I can do in terms of making it beyond the the audible store, although I think that accounts for something like 90% of the audiobook market. So it's definitely it would be a shooting myself in the foot to not put it there. But I'll do my best to try and make it available and other stores that were people might want to also consume audiobooks. Yeah.

Will Vincent 41:59
Well, we don't go, we could talk offline about that. It's harder than people think to get outside of the Amazon system. Do you have any thoughts on how you're going to handle the code snippets? Because that's the one thing for audio for me, I'm I'm never quite sure how to, or at least my books have quite a lot of code. And I know you do as well, you know, how do you how do you handle that? Right? If it's like 15 lines of code? Do you read it? And then talk about it? Do you? What are your thoughts on how to tackle that?

Matt Layman 42:27
Yeah, I gotta confess, I haven't fully thought through everything that it will mean, there might be a I have an advantage here that I'm committed to always leaving the content of my book online for free on my website, so if the if I do an okay job, I think at reading code content from from my actual podcast episodes, there's something I've tried to do. And people have commented that they Oh, yeah, they actually understood that. So I'm taking it from an at face value that somebody else has asserted that I'm okay at this. So I'm going to try and read as much of it as I can. But there probably are chunks in there, that will be too too gnarly. And maybe I will, Editor's Note kind of insert, hey, go check out this link and view the view the code snippets here, because this is just too much to really describe well, with audio. So that's that's my plan with the code snippets for audio book format stuff. Yeah.

Will Vincent 43:27
No, I think that's the right way. I don't think you need. I mean, it's also the question of a lot of times your, your your change to three lines, even if it's a 15 line snippet. And so I think you can in audio format, talk to or just speak to let's change. Yeah, it's I haven't, I think that's the answer. If I if I were to do it, too, right. I haven't. Carlton knew the internet is come back online in Spain, apparently.

Carlton Gibson 43:51
So I don't know what happened with my kid. My kids were busy screaming about something. So maybe they broke it, but it looked more serious than they've broken it. Like the router was off and whatnot. Oh, yeah. back. Oh, that was the check.

Will Vincent 44:04
Let's go. We we just we just were talking about the the pod drinkers podcast and Matt's Matt's book that he published, and he's gonna do an audio version. And so we're talking through the logistics of

Carlton Gibson 44:15
that a little bit. So that's why I'm gonna have to listen to the episode.

Will Vincent 44:18
Well, we're coming a little bit up on time. As one question we ask a lot these days is deployment, Matt, and I know that you're, I believe, for personal stuff on the Heroku bandwagon. Is that still the case? Or where do you how do you see the landscape and I'll preface this by saying like I've played around a lot with the various platforms of service providers, and I think I've pretty much come full circle that from my own stuff. Heroku though I heard some rumor, they might change something other databases, which I hope they don't do their managed Postgres works fine for me for solo stuff. But But where do you where do you come out these days on on the deployment topic? Yeah.

Matt Layman 44:57
For personal i Bye. is towards as simple as humanly possible. And that does mean eating some cost. So there's always that cost versus effort trade off that can happen, like you could, no doubt spin up a $5 droplet on, you know, any, any pick any of your preferred vendor for using Cloud Hosting. But get get your machine running, get, do all the work to host your your web app and put it in front of some kind of load balancer and, or nginx, or, you know, choose your tech stack to get that going. And I that along with that comes the risk of well, maybe you got it wrong, maybe it's not secure. Or maybe you didn't optimize it quite right. And it breaks in weird ways that you don't expect. I don't mean to throw throw shade on those things like it is possible, I have done it in the past of having good stable configurations. But as I'm, as I'm getting older, and I know that my time constraints on my personal projects, or X number of hours in the week, I look for simple. So that's that's my personal preference. On the work spectrum, deployment is a whole different beast. If you've got, especially at a certain scale, you reach for different technologies. So I am not honestly I'm not wild about Docker, I, in many senses of the the deployments that started out the deployments or the development and debugging story is I find, I find challenging, I find it that adds an extra layer. And either I don't have my editors configured in the right way to set up debugging and all the ways that are necessary, or it's just, it's just some friction, that that I think slows me down. But overall, having Docker in a stable deployment container is valuable for deployment into the the platforms that our teams build. So there's that there's a cost, but it's a worthwhile cost. So if I'm gonna have a personal project, I'm gonna reach for a Platform as a Service because I want easy mode. And then for business that has higher scale, I'll reach more for Docker. That's my, my take. Yeah,

Will Vincent 47:20
I have to say I, I took from you seeing I think I even messaged you, when you started the the journaling app saying, you know, why aren't you using Docker? And you said some version of that. And I've actually I've a new project I've been working on for a couple of months, I'm just doing it without Docker. Because I take your point, I think it's tricky that in a professional setting, once you once you start collaborating or scaling, I think, you know, Docker is an invaluable tool, but it is faster without it. Like there's a lot, a lot that goes into just Docker rising things. And you know, yeah, when you're in god mode, just solo developing. I mean, Carlton has been preaching this for forever. But, you know, I gradually am coming around to Carlton's point of view on everything, you know, custom user models, Docker, just like, where am I going to be in five years, Carl, the

Carlton Gibson 48:03
phrases for me is that guy always comes up on his horses for courses, right, Matt said it at a certain level of complexity or a certain level of scale, these tools become Yeah, absolutely valuable. But like when you're single develop, or two person teams, even 10 people like, you don't necessarily need all these extra bolts. And when wizards that you need when you're 50, team, team of 50, or you know where you've got, if it's a modulus environment, you don't need necessarily to worry about the dependencies, because they're all the same everywhere. But if you've got like multiple services in multiple languages with multiple dependencies and multiple versions, right, then have everything in your container. That's a lovely thing to have. But

Matt Layman 48:50
I don't know, I do appreciate the platforms that give you an on ramp to those tools. So like, you can start with Heroku. And you can start with just a proc file and the standard Heroku way. But they also give you a path to be like, Okay, you want a container? Yeah, we can do that, too. So that's useful. And I say Heroku. But like, I'm pretty sure that works for fly and like other other systems have different kinds of schemes that allow more for that on ramp path. And that's, that's great. I think that as you go up to those other levels, that's that's very useful as well.

Carlton Gibson 49:23
Yeah. There needs to be an evolution, right. There needs to be a growth path to growth journey from something simpler to something more complex as you need. You know,

Will Vincent 49:33
yeah. Maybe I have one final question for you, Matt. It's something I've been thinking of, which is the need for basically checklists. So like, again, when you were doing your journaling project, you were looking back to your old projects. And I mean, I honestly I do that all the time. I do that. Even like books. I feel like I wonder I increasingly wonder, you know, as people progress from learning how to do things to like needing to get the reps. I'm like, I'm almost thinking with the new update. So my books, should I almost have checklists like versions of like, okay, I showed you how to do credit with auth. Now, here's, here's like, two or three different examples of, you know, of a flashcard app or a recipes app, where I'm going to kind of give you like what I have for myself, which is just like the code snippets, basically, right? Where I can just go boom, boom, boom, boom, boom, boom. I wonder if that resonates for you, like both? We as developers, can we like formalize our own, like toolbox, rather than just like digging around through old code? And then is there a benefit to people progressing beyond that beginners space to at least seeing how other people do it?

Matt Layman 50:36
Yeah, I certainly think I would be a lot more efficient with a checklist. I think about Sam, Sam. And it's, it's just there's so many layers, right? Like building web apps. It's, as much as it's just bits on the internet and some HTML pages like there's there's a lot that actually goes on to make it safe, secure, scalable, all of these these qualities that we look for. And that's a real challenge. I take some, it's not a checklist, but the thing that springs to mind right now is the actually the Django rest framework documentation. And one of the things that I love about that documentation is when you hit the guides, this portion of the docs, there's this big drop down, that shows all of the different kinds of things. And I don't know why. But my brain thinks of that, like a checklist. Oh, yeah, I have to do authentication, through authorization, I have to think about rate limiting, like, is like a perfect list of and that's, that's in the context of building rest API's, of course, but that that kind of list and just seeing that list in that format, is is a reminder that that, oh, yeah, if there was a checklist that I could reach for, that would hit these big categories of topics to make sure I've thought about what kind of URL setup am I going to do? How am I going to configure my user accounts and, and the things that I've now done a couple of times in some of these projects that I've started on my stream? I'm starting to see the same patterns, there's a question I have, like, maybe I'm, maybe I'm being inefficient, and that I should be reaching for some kind of built template like I started, if you go back, and if you've, if you're looking at the journal stream, I still start from stock Django with a manage start project command. And I think that's informative for those that are wanting to to learn and they see, okay, there's, there's no mystery here. All the layers get built up over time. But is that the the right choice that I should be making as a developer? Or should I jump straight to like, I've made these decisions multiple times, I should have my own personal template, when I'm starting a new project. The trade off is is I'm not a consultant. I don't, I'm not in that industry. So I'm not the number of times that I am starting up a new project from scratch. Total in my life for Django so far has been three. So it is, like, is a kind of a once twice, refactor thing is like it maybe because I did it a third time as I'm starting to feel that pressure of, of perhaps I shouldn't do this anymore. And the next time I should do it, I should also build the thing on the side that will help me for project four and five and six. Yeah, that's, that's, that's my thought on it. A checklist would be useful. But could we just skip the checklist altogether? is where I'm going?

Will Vincent 53:27
Yeah, I mean, the question is, how much is could be universal? And how much is? Everyone does it differently, right, because there's no cookie cutter. There's Django X, there's quarry zoo has an SOS Pegasus. IB. I was thinking that I mean, I was watching the first couple episodes of your journaling. I mean, on the one hand, I really liked seeing that on the other hand, it was like even me, even Matt layman, it's ours. Just to like, set things up before you've done anything, you know, anything new, anything interesting. It's still ours. And so there's a tension there. How often do you do it like to keep it up to date? But I mean, I guess I mean, there are there isn't really, there aren't a lot of startup projects out there. Like I mean, pedagogically on the one like I think experienced people maybe would benefit from like, okay Carlton's way of doing it. Like I trust him, he has a quick little Doc's. Fine. Save me the time. But you need to do it a bunch of times to understand that right. Like, that's what I found with cookie cutter is that I couldn't use it before I understood how to do it all from scratch a couple times. So there's, I guess there's a place for both but yeah,

Matt Layman 54:32
that is the really hard problem with templates that I would I would fear like if I picked up somebody else's template, yeah, what do I know that's in here? What don't I know? Especially if again, if I'm gonna be the operator. What the What don't I know is a really big risk of this might blow up my face. And I don't know how to fix it because I didn't write it in the first place. That's it and analogy sort of breaks down a little bit for me. If you think deep enough, like I don't know how to fix The kernel either, but I guess there's also the probability that it breaks is much lower. So there's, there's the, how much of the stack Are you willing to bite off is how I, how I've sometimes thought about it, I've challenged people to, we need to live in our level of abstraction, that we're kind of up here in the stack. And we're not dealing with electrons. And like at the hardware level, we're we're not at the kernel driver level. So you know, it's always about drawing your lines about what you're willing to accept as the complexity you're going to take on. But I do like knowing stuff. And I think that biases me towards taking a little slower, making sure I understand all the pieces and know that what I'm operating from Carlton concluding

Will Vincent 55:43
thoughts? No, I

Carlton Gibson 55:45
would just, I would agree with everything. Matt said that I think the key bit is the the consultant, if you're in a consultancy, and you're turning out project after project after project, and it's you're probably doing it with juniors and mid level and senior developers, you need a standard template that everyone uses. But if you're turning out the odd project every now and again to crank it out by hand, because there's there's value in doing those exercises, doing the reps as you as you said, you know, maybe I don't know, maybe the Django ecosystem is missing something like the templates for the login system so that you, you know, you're not constantly recreating those, where's the one repo that we all go to to get the login templates? Well, okay, that would be something that would speed it up. But you know, yeah, I agree. Kind of like said, I don't know, concluding question, though. For me, I don't it will ask you if you had a magic wand, and hopefully you asked you when it worked. Maybe you had a magic wand that you could change one thing in Django, what would you change?

Matt Layman 56:42
Can I give you two answers?

Carlton Gibson 56:43
Yeah, absolutely.

Matt Layman 56:50
So the first is, is more at an intro audience. So I view sometimes I look at Django has sibling projects in other language ecosystems. So this is your Ruby on Rails in the Ruby ecosystem, your Laravel. Your Phoenix, if you're thinking about elixir, there's a bunch of them that are and the general ethos being, we're building a full stack framework, we're going with the kitchen sink approach, and we're including everything that we think is valuable to actually build a full application. And I try and take some some inspiration from those of what do I think is valuable. So my, the first thing I would I would if I could snap my fingers would be to take some inspiration from Laravel. And if you look at the Laravel page, and you scroll down enough, you get to the section that talks about all of the extras that that they have built in. And I think one thing that we could do better as a Django community is highlight our community packages. And actually, I'm gonna be a little make a statement that's maybe a little aggressive, hopefully not too much, is in our spirit of being a egalitarian, I think that's great about us. Sometimes I think we're afraid to declare winners. And I think that there are some winners for certain categories of packages. Like if I said, what email package are you most likely going to reach for? I'm going to immediately without blinking, say, Jango, and email, it's a pretty clear winner to me. And the folks that have built it have worked their tails off to make it awesome. So I would love to be able to showcase those folks and honor them and say, like, hey, you need some extra email stuff. Pick this one. Don't, don't bother think like, just pick it. Because that's, that's a great tool. And there's probably, you know, a dozen of those packages that we could reach for different categories that we could highlight and say Django has an awesome community. And we could really showcase that by saying this tool will almost certainly meet your needs for auth, you know, all off static white noise, like there's a list you could put together that I think are the clear, most use packages. Now how you do that, and how you'd vote on that, like, I'm not gonna, I'm, again, I'm there's my magic wand, right? So that's one thing that I would suggest or wish was was true. The second thing if I could have a magic one, it relates to I guess it's more of a enterprise. So it's the other end of the scale, you're you're not starting up, but you've now got a huge scale. So this is I'm not wearing my company hat and like what can I do to make my life better? One of our challenges is we would like to have a more microservice architecture, and we'd like to be able to split off pieces to scale them independently, for a variety of reasons that I don't have time to go into. But we have found with our monolith the way it's designed is that those those Django apps that we built are very coupled and they're they're not easy to extract and removed from each other. So if I could snap my fingers I would love like to have a Django app stripped mode or a firewall mode, where there's some kind of extra enforcement of boundaries between the apps. Such that, let's let's pick on the related manager, I love that feature of a foreign key where you have a related manager and you can kind of, you know, my model dot some other thing and access some other models through that, that's great. Except when you have found that you've coupled a bunch of things to one model, and you actually have like six or seven apps interacting with each other, all through the related manager, it's really hard to see that. So if there were a functionality to actually maybe forbid some of those use cases, so that you could create from the get go, an app that is meant to be more independent from each other, then that will give you a fighting chance in the future of actually removing those pieces and maybe having that become its own microservice in the future. So that's my other like, snap my fingers. It'd be awesome if we had these extra controls to enforce harder separations between apps to make it so that you could actually decompose a Django app into something or more manageable if it's grown too large. Yes,

Will Vincent 1:01:08
well, there's a redesign happening for Django project.com. And I, I know some of the people working on that listen to this podcast. So maybe they'll find inspiration, curate curating the third party packages is hard, but isn't. So there's a value in it.

Carlton Gibson 1:01:22
But like, you know, one of the things we always say is Django secret sources or third party packages or third party ecosystems, but then there's like a veil of silence in the Django Doc's as to you know, what, what packages there are, and how do you find them? And do they even exist? And it's like, one of our best features we don't tell anyone about?

Will Vincent 1:01:40
Well, there has been some progress, right? It's now in the polls tutorial, it mentions I think, was a debug toolbar. And

Carlton Gibson 1:01:48
then it mentions Django packages and jazz band as well, which is sort of an opening into some of the the ecosystem. I

Will Vincent 1:01:54
mean, it could be even something for Django packages to have a greatest hits. I mean, curation is hard, because I mean, I can say this, you know, running with Jeff Triplett, he does Django packages, the awesome Django repo. You know, it's it's a little bit of a thankless task, and you don't want to blow it out too much. It's hard to remove things, but at the same time, like, there are, there are these ones, any mail off white noise, like we could probably list 10 or 15. That kind of have one out. So yeah, that that's a very good, two good insights. Thank you, Matt. Yeah, well, we are up on time. We'll have links to everything in the show notes. Everyone should check out. Understand Django book which is available for for paperback or ebook. It's also on your website. And you also Matt lynda.com. You have all the all the links to all your activities that you do, that people should check out.

Matt Layman 1:02:47
There are plenty ways to connect me up there. discords, all sorts of stuff. I got accessible on the internet.

Will Vincent 1:02:53
Carlos and I are too old for discord.

Carlton Gibson 1:02:55
I try. But basically I have to treat it like it's a static page. I have to quickly log in quickly look and then run away again. I can't I can't I don't promise

Matt Layman 1:03:03
to be fast responding things, but they are accessible.

Will Vincent 1:03:08
Great. Well, thank you again, Matt, for making the time. Yeah.

Carlton Gibson 1:03:10
Thanks for coming in. Sorry, I had to I dropped out mid call. I just want to say well done on getting the book out. That's the normal.

Matt Layman 1:03:16
Thank you very much.

Will Vincent 1:03:17
I can tell you it's no small thing. So congratulations. Thanks. All right, everyone. We are at Django chat.com. And we'll see you all next time. Bye. Bye bye.