Django Chat

Kenneth Love

Episode Summary

Kenneth Love is a longtime Django developer, teacher (at Treehouse), and dev lead at O’Reilly. We discuss how to onboard new team members, burnout, remote work, and his advice for Django newcomers.

Episode Notes

Episode Transcription

Will Vincent  0:06  

Hello, and welcome to another episode of Django chat weekly podcast on the Django web framework. I'm Will Vincent joined as always by Carlton Gibson. Hi, Carlton. Hi. Well, this week we have a very special guest, Kenneth love. Hi, Kenneth.

 

Kenneth Love  0:17  

Hi. I'm glad to be here.

 

Will Vincent  0:19  

Yeah, we're thrilled to have you on. You're on the shortlist of people I wanted to have on the podcast when we were thinking about it way back when. So perhaps you you could tell the folks out there. Who are you and why are you such a big name in the Django worlds? I will

 

Kenneth Love  0:36  

I can definitely do

 

Will Vincent  0:36  

more. I can do it for you if you want.

 

Kenneth Love  0:39  

I'll give it a try. And then you can fill in anything you think I missed. Um, so yeah, I have. I've been involved in the Python and Django worlds for about about a decade now. I guess quite a while. I'm, I'm an open source contributor. I speak at conferences a lot or did I was chair of Django con us for 2018, which was really fun. And I, what else I used to, I used to teach Python online. A lot of people watched that. And I've done some technical editing, namely a Python Crash Course by Eric Mathis, which is an amazing book. If you haven't read it.

 

Will Vincent  1:24  

I got treated a bunch of a lot of people have. A lot of people have read that one. Let's start off with something. So I think I first came across you partly from treehouse, but before that you had done I believe Django braces? Hmm. Right. And that has since been, I wonder if we could talk about that, because that has since been rolled into Django. So kind of what was that process of coming up with your own Django things and then rolling that in? I think that might be interesting for folks to understand how new features are rolled into Django itself. Sure.

 

Unknown Speaker  1:55  

Yeah. So quite a while ago, when called Based views first came into Django. So that was, I don't know what like 1.4 or something like that. It was a long time ago. Um, they, they honestly kind of sucked when they first came in, they were very difficult. It was a great idea. They were a wonderful game changing idea, but they were just kind of hard to use, mainly because you had to go and recreate a lot of stuff yourself every time you use them. Even though they were class based views, there wasn't a lot of really nice features for like, using them, like there were with the function based views that have been around for, you know, five, six years by that time. So a lot of people really kind of hated class based views. I gave a talk at Django con about them, because I thought they were awesome and nifty, and try to get people excited about them, people seem to like them. And around that same time. My friend Chris Jones and I were working as contractors. We were using a lot of classes. Face views, and we were finding a lot of the pain points. And so we just started writing mix ins for the class based views to make them easier for us to use in our job like in our our day to day work. And that's what became Django braces, the names a joke on a couple of different levels. It's got really weird and meta. So like, I don't even try to explain it anymore, but it's just called braces. And so it's a whole bunch of makes sense that make class B's easier to use. So you can make it to where your view requires that the user is authenticated, that they're part of a certain group, that they're a super user, that they pass some arbitrary test. And then we got a bit further in making it to where like, you could use class attributes to specify the fields used for a select related or a prefetch related so just stuff like that make class based use just nicer to use where you don't have to write all that stuff yourself constantly.

 

Carlton Gibson  3:56  

Back in the day, this was one of my main packages. I you Whenever I started the Django projects, install Django install Django braces install, there was another one I used to cook model utils. And these are like, you know, these would thank you retrospectively that you use very well. I used it many times.

 

Will Vincent  4:15  

Well, so And actually, I don't know this. I could look it up, but how are they brought into Django itself? Did you work on that Kevin? Oh, did others bring the code in? Because I know, login required mixing. I mean, most of these are now part of Django itself.

 

Unknown Speaker  4:28  

Yeah, the ones that deal with authentication. So like the author, authentication required, or login required, super user and group I think are all added in and those are all built on top of a common class that's like, what it's I think it's access mixin name. Yeah,

 

Will Vincent  4:49  

that brings me It's

 

Unknown Speaker  4:49  

the one that just controls access.

 

Unknown Speaker  4:54  

We name things as obviously as we can. So around see what was It was it was Jango birthday, so it would have been 2015. Yeah, Django birthday was like right when it happened. So around Django birthday braces had gotten enough steam or class based views themselves. I've gotten enough steam that people were really invested in using them. And I cannot remember the name I can. I will put the commit into the show notes if I can find it. Okay. Somebody was working on effectively Django braces for Django as an actual patch to Django. And there was a lot of back and forth like dev chatter. And, uh, oh, man, you're gonna see how bad my memory is for people's names. Mark something he was a

 

Kenneth Love  5:47  

core committer probably

 

Carlton Gibson  5:48  

still is 10 anyway, Tamblyn.

 

Yeah, I think so he did the post Postgres country posting your stuff

 

later.

 

Unknown Speaker  5:56  

I think it was him. Okay. I think it was him. I don't remember certain I'm sorry, whoever it was, I'm terribly sorry, forgot her name. Anyway, they reached out to me and Chris, because we'd written Django braces. And they went, Hey, is this a good approach? And the code they had was was fine. It was good. But there was a couple of race conditions in it to where we're not racing this but a couple of conditions, then it to where you couldn't necessarily override things cleanly. In like multiple steps, or multiple places, mainly around like the access or trying to access the Django has the thing that's user passes test. Yeah, which is all built into the old login required. And it's a class based view, or mixin. Now, basically, the idea is you can pass a lambda to this thing. And if your user object passes that lambda, then the user is considered good. The way they built it, and you'll have to forgive me This is five, four or five years ago. I don't remember what they wrote. But the way they wrote it made it to where it would prevent having like multiple checks on users. Passing tests because the user can only pass one test at a time. The way they'd written it, you couldn't have multiple tests. So we were like, why don't you just use what we wrote in Django races like it's BSD or MIT, it's open source, like you can just merge it in. Just take what you want. And that's basically what they did. So that's how those three or four make sense got into Django. It was, I don't know, it was basically it's just going here. We did the work, take it, and then they took it.

 

Carlton Gibson  7:27  

But that's a great story. Because like very often, a user will come to Django developers and say, I've got an idea for a feature and this happens on Django also happens on rest framework a lot. But it's like, it's a good idea for a feature it's like well, great, can you put that in a third party package, and then you know, that third party package gets take up well then we can look at bringing into court. And the great thing about this is it gives you a playground in which to test it and if there's bugs and issues and they can get worked out and I end up and then we can really see you know, is this useful and that it then it can be bought into So this happened with sounds like it's most sort of famously the migrations framework that became Django is migrations, I mean, you know, with a rewrite. Yeah.

 

Unknown Speaker  8:08  

Yeah, there's not the underlying code. There's a huge difference between South and Django.

 

Carlton Gibson  8:12  

Right. But lessons were drastically improved.

 

Unknown Speaker  8:14  

But the idea is exactly the same. Like it doesn't do much that's special compared to south.

 

Will Vincent  8:22  

So I know these days, you're working for O'Reilly right on their platform. And I saw, I think you tweeted about this a while back that you had one of the projects you've done is new onboarding. is curious. That's Yeah, that's like that's a an important thing that isn't well served in tech in general. So I was curious kind of what you learned and where that was at, because I know of almost no cases where people say, Oh, yeah, my onboarding was a great experience.

 

Unknown Speaker  8:50  

Yeah. Um, so I joined O'Reilly just about two years ago, and I feel like my onboarding was was pretty typical for a lot of things. Companies, you show but you show up at the office for where a remote company to a very large degree. So you show up at the office for like a week. And you know, you're going to meet with your manager. And we have a thing called an onboarding, buddy or had. And the idea is like, you know, say I'm getting hired. And we'll you're already established, maybe you're on the team that I'm going to be joining. You'd be my onboarding, buddy, I'd spent a week basically, you know, connected at the hip to you, right? And we'd go to stand up and you'd show me around all the code and you know, we'd work on a ticket or two together. And so then I'm like, I'm good to go, right. And I can join my own team or your team or as a team, I'm joining whatever my thing is, and I'm ready. And that's okay. It works. Like we've all been through something similar to that. It works okay, but it's not great. Usually, you know, you end up spending two or three days with like HR and it getting being set up. In my case, my buddy, and dude's great like no, no, no shade towards them at all. But I arrived right when like a major fire broke out on the platform. And he spent four out of the five days fighting that, because it was in the section that he was working on. And so while I figured out what was where at O'Reilly and got everything sorted, it wasn't the illuminating educational week that I think everyone had hoped for. So a month or two later, six months later on a while later, speak to my manager, and I was like, you know, our onboarding is kind of messy. I mean, like, so the onboarding buddy thing. That's a really great idea, but that buddy ends up spending half or more of their time working with the new hire instead of doing sprint work, which they were calculated to do a certain amount of sprint work. And often you as a new hire or on a team That you're not actually going to be part of. So you spend a lot of time kind of sort of trying to fit in. But you know, you're only going to be talking to that team for a week or two. So you're not able to make like a good like friendships or really get to know a particular person or whatever, you'll still work with them even print out on the team, but it's not you know, that closeness? So my idea was like, Well, why don't we have a team where all the new hires go to, and they all exist, they all live on this team. We're not taking time away from existing sprint work. And while they're on that team, they're doing tickets from the backlogs of all the other teams, the stuff that the team wants to do, but never like never finds time to do, right the the little cleanup stuff, the improving test coverage stuff, make the deploy process better, just whatever.

 

Carlton Gibson  11:50  

But those little tasks, they're really important because you've got a you want to be actually touched a code base, but without really touching it.

 

Unknown Speaker  11:58  

Right. Yeah, I can go Fix dogs all day long. I can improve code test coverage all day long without worrying that I'm going to break. But it still shows me the codebase. And it teaches me how to project a touch project B. And both of them feed into project c somehow right? Now I get a bigger idea that Yeah, you still have to get your development, environment running, and all of those things which, right, and not only get your development, environment running, running, and at this time, we were still somewhat messy on that you have to get multiple development environments running because you have to have each project set up, right, we're doing microservices, you've got right

 

Will Vincent  12:35  

permissions,

 

Unknown Speaker  12:38  

you'd get a permission and you'd get to get, you know, everything talking to each other and Docker, like, all of that. And often that's a big mess. You're gonna be faster at it, the more times you do it, and you're going to get to do it a whole lot while you're on the onboarding team, because that's all you're doing is working on other random projects. And you have to go talk to those teams, and deal with prs and all that stuff because you Gotta make prs to all of their projects. And it's worked out as like a really great way for a new engineer to come into O'Reilly. They're not pressured on time, they're not pressured on points. There's no like velocity tracking, there's nothing like that. It's just here's a bunch of tickets, find one that you find interesting. And I or someone else will help you get in touch with the right people will review the prs. We'll try to help you get it merged and deployed. Whatever we have to do. We'll work on all of that. With you, as someone who's dedicated just for onboarding, you're not taking me away from other work. I've got nothing to do but help you. And it's worked out really well. We've had a 20 ish people go through it. We really only use it when we have like a lot of hires. If it's like we hired one person in the last three months, we don't really bother with it. But if we've got five new hires coming in, then we spin the team backup and and do onboarding for a month or so.

 

Carlton Gibson  14:00  

So spin.

 

Will Vincent  14:00  

Yeah, that stuff's really important. I mean, I'm remembering when I was at Quizlet, we, our goal was to have the first day soldiers there, they committed code. So I was sort of a good litmus test. So like I would had a routine because we were hiring at the time. And I would swing by before work the Apple Store, get my corporate, you know, corporate card, corporate account, get the laptop, run all these commands, get them set up, poke someone on the shoulder to get permissions. And even Yeah, even that was sort of the the goal and it just really helps with, we always thought it was you only have someone feel comfortable. They're going to be there for the first three weeks, three months, excuse me. So you're still kind of selling them. I mean, this is San Francisco this a number of years back, but the idea was, you know, you can't just take them for granted just because they're there and plop them down. Like, you know, just sure as small as it sounds like coming in and being like, what did I do today? Like, oh, I, I committed a little bit of code and this is all pre Docker to so A lot harder to do that. But yeah, that sounds great. Yeah, it's an important thing. And that's also the cultural stuff. Right? It's just like your first reference point. You're so wide eyed and yeah. impressionable about the organization you're going to work on.

 

Unknown Speaker  15:15  

Yeah. And I mean, if we, I didn't do this part at all, but HR, interviewed everyone that went through the program, the onboarding afterwards and ask them like, you know, how, how it was it was it, was it positive, was it negative, did it make you feel more comfortable whatever and like, everyone so far has been really positive about it. they've they've enjoyed their time that they spent on the onboarding team. They've often said they haven't had an onboarding like that anywhere else which will be true believe because I haven't heard of many people doing that. But they also also that they ended up being much more comfortable when they got on their final team. They they felt like they were already good with like, how our whole system works together and they kind of knew like, Okay, if I have a question about this aspect I go to this Slack channel and ask or I ping this one person. And they weren't, you know, they you lose that shyness you have at the beginning of a new job, you lose that awkwardness that's there. Right? So because you're, you've already talked to all these people, you've already met a bunch of these people. You've been there for months. Yeah. And you've been there a month without having to do anything. That's like super stressful. If you, you know, it's not a one size fits all. We don't say like, everybody stays there for a month or two weeks or whatever. It's when you feel like you're ready to go. Cool. You can go join your team, and we're good. So yeah, everybody kind of has their own time on that too. We let people be comfortable. That sounds good. Can

 

Carlton Gibson  16:41  

I ask is so is the O'Reilly platform is that largely built on Django? A bit built in Django not built on Django at all.

 

Unknown Speaker  16:47  

Um, so you let's say it used to be called Safari. Yeah. So by the by the O'Reilly platform, just for anybody who's not familiar with it, because it's a little pricey. Um, it's basically a way for you to come and you can read books from O'Reilly and a bunch of other publishers like Pearson And Manning and stuff like that. And then you can also watch conference videos from the early conferences. And we do like some live online training stuff like that. So that is built. I don't have an exact number four you like, there's, it's 75% or better Python and Django. Cool. Um, obviously, there's a lot of like SQL, we have some stuff that's in Ruby some stuff that's in go,

 

Carlton Gibson  17:30  

but like, anything big sketch.

 

Unknown Speaker  17:34  

Yeah, almost everything you touch is Python and JavaScript. Yeah.

 

Will Vincent  17:38  

Can I ask what version of Python you're on?

 

Unknown Speaker  17:41  

Um, almost everything is on 3.7. Yeah. Wow. Good for you all. We do still have a couple of things that are on two points.

 

Will Vincent  17:50  

Right? Well, just because we just did an interview with actually the folks at edX, just speaking of education platforms, and and More generally here at Django, Boston, there's some talks on migrating from two to three, because 2020 is approaching and there's about three, there's gonna be, I think, January and February, there's gonna be a lot of renewed interest in this.

 

Unknown Speaker  18:13  

Yeah, there's gonna be a lot of panic. Um, we have a really handy tool that we built internally, we call it the chassis that is kind of like cookie cutter on steroids. Basically, you can you can run a start command and tell it what kind of project you have. It's such an NGO project, JavaScript project, you know, whatever. And it will set up all of your Docker stuff for you. It will set up all your Kubernetes stuff for you, it will install the pendant like it'll do, basically. Wow. And so because of that, we can push out like, Hey, everybody, the chassis now has the newest version of Django and Python 3.7 point, whatever, right? And all that the engineers have to do. Anyway, you know, one of them per project They go in, they basically run a Docker compose build poll to pull down the newest version of the chassis image. They run like a region, which regenerates their Docker compose files and Kubernetes files that needs to be, and they deploy. And that's it. And now they're on the newest version. So like, it's 10 minutes from us putting out a new version of the chassis to literally every team, assuming their application

 

Carlton Gibson  19:25  

code is compatible, right? There's that one little demo? Yeah,

 

Unknown Speaker  19:29  

they have to run and all that stuff. But most of our apps are stock Django and Django rest framework kind of stuff if they're not super complex or fragile. So most of the time it gets by just fine. We've actually had more we've had more things fail with PI test upgrades then we have Django upgrades

 

Will Vincent  19:49  

Yeah, very go very

 

Carlton Gibson  19:52  

well, no but pi test have been quite aggressive in breaking stuff. So we all for the progress but you know, know all the you know,

 

Unknown Speaker  20:00  

Yeah, no shade towards it at all, but like, you will get a point release of pi test that has like eight new features and suddenly a fixture doesn't work anymore. And good luck finding that one in you know, less than a

 

Carlton Gibson  20:12  

couple like we've had builds on say Django, crispy porn, Django, crispy forms as mature as you want and stable. Good. You know, there'll be a new report released before before 3.0 and you know, it's just ticking away and there's like one release per major version of Django and, and like all of a sudden appeal come in and it's broken. Why pi test upgraded Okay, let's fix that.

 

Kenneth Love  20:32  

So, yeah, yeah, yeah, I love five tests, but sometimes there's updates,

 

Carlton Gibson  20:38  

but that's super I was gonna say on the Django thing if you've not if you haven't gone right down into custom modern fields and using internal API's aren't really documented that that that upgrade process now it's just, you know, there's no reason not to keep up. As I say every week on this Yeah,

 

Will Vincent  20:52  

yes, Carlton I internally channel. David had Mr. Hansen came on recently and we talked about this at length, you know, in the rails world. In the Django world, and he, what was it? What was his saying, Carlton? radio? Yeah, I think yes. So we're in our head. We're always thinking about that. So

 

Kenneth Love  21:13  

yeah, you should you should.

 

Will Vincent  21:16  

I also want to ask, so Riley's a teaching platform. And you had spent, I think, a couple years at treehouse and maybe some other areas. So I'm wondering, what was it like? What's it like for you going from, you know, teaching full time to engineering? Is that something because obviously, I think about this, is that something that you see is a back and forth or what are your thoughts on that? Because that's the challenge with teaching this stuff as it changes all the time. It's not math. So, you know, every time you spend teaching, in a way you're kind of getting stale and Rusty on not working on bleeding edge stuff.

 

Unknown Speaker  21:48  

Yeah, I it was definitely not totally weird, but it was it was very, I felt very new. Going back to being an engineer. I spent about three and a half years at treehouse, And I spent about a half a year doing corporate training before that. Okay. So I had about four years of not really writing code other than as, I mean, well, you've written several books, you know, you know how it is when you write code, but it's it's illustrative code, right? It's it's some small project. It feels like toy apps for forever, and everything is clean, because you control everything. And there's nothing.

 

Will Vincent  22:25  

It feels like

 

it's not real to worry about. Yeah,

 

it doesn't feel real.

 

Unknown Speaker  22:28  

Yeah. Yeah. No matter how complete the thing you build is, it always feels not real because you can see to the entire thing from beginning to end and you built the entire thing from beginning to end, in a process that's replicable. And it's like gonna

 

Will Vincent  22:41  

write a teaching session first. Yeah, idea with the code. Yeah.

 

Unknown Speaker  22:44  

Yeah. So going back to Dev, where it's messy. Real Yeah. I felt very new. to engineer. I can obviously read and write the code, no problem, but like dealing with The scope of things was often a little strange.

 

Will Vincent  23:06  

But it's also nice in a way that you can also just focus on one area and go deep because you have to because it's blocking something. I mean, that's, you know, I feel like I miss having to go deep on stuff because I have to maintain all these other things. And, you know, so it's all trade offs. But these are some of these trade offs I hadn't anticipated. But you've you're further along in this journey than I am. So

 

Unknown Speaker  23:27  

yeah, it's I mean, it's also been strange, because like, being back at O'Reilly, being back as an engineer, I'm obviously doing more engineering, but being, you know, older and ideally wiser. But having done this for so long, I'm starting to find like the things that I like to do the things I don't like to do, you know, if I have my choice between teaching and programming, I'm going to choose teaching every single time. But as an engineer, that's not a question I really get. So that's led to like the onboarding group, too. You know, considering going into management, trying to do other things to scratch that teaching itch. But he has made it to where like, going back into engineering is great. I've enjoyed writing code again. But I've come to realize it's not the thing I want to do all the time. Right? Which is a weird thing for a lot of younger programmers, because you kind of get taught that like, well, you should be eating and sleeping and breathing code, like all day long. Surely you have 18 side projects going on. And you know, what do you mean you're dating someone? How do you have time for dating? You should be writing code like

 

Unknown Speaker  24:37  

you can pay a programmer, right?

 

Will Vincent  24:39  

Yeah, well, we'll link in the show notes, Carlton, actually we Carlton I first connected because he gave a talk, I think just last year at Django con Europe before it was in

 

Carlton Gibson  24:50  

Heidelberg. 2017 2017.

 

Will Vincent  24:52  

Okay. Anyways, I'm being you know, programmer of a certain age. And when I think of that in the context of curious what what you both think, in that there's this idea that in any area of expertise, somewhere around five years plus or minus, you've, you know, you haven't gotten your 10,000 hours, but you've, the newness has worn off You, you, you kind of understand how hard things are to do, and you sort of need to redefine why you're doing it, find new reasons to do it. I see that a lot with programmers too. I mean, I'm probably in that boat a little bit, too, you know, if I was going to write just code, eight hours a day? I don't know, you know, it's not quite, you know, when I was starting out, I was fantastic, do more and more. But now, I don't know if it's, I'm interested in deeper questions, or I see the limits of my own ability. But, you know, I think I think it's extremely common and just people don't really talk about it. But you know, 510 15 years in, I think the things you're interested in, have to do change.

 

Carlton Gibson  25:52  

And it's not for everyone just to have pure code, in part because if you work on organizations, you see that code is often not where the problem is. Yeah, no, man, it's onboarding, it's all these soft things. But you have to be hearing from an engineering point of view. It's not, it's not just code. It's about the design of the software that you're building. And it's about it making sure that it meets the actual needs that really are rather than something you came up with in your head. And they are Junior, yet brilliant, sticking with the keyboard, getting banging it out. But more experienced engineers are there in meeting designing the software and coming up with coming up with how it's gonna work. And that's part that's just as part as just as much of the software crafting process, actually, you know, opening up the editor and writing some code.

 

Will Vincent  26:40  

I think it's the burden of knowledge in a way because when you're starting out, or you're newer, you just fix what's in front of you. And you don't even know about these larger concerns where you know, that's why I love you, I'm sure you've had this, you know, with beginners, they'll email me or talk to me and say, Oh, I want to build this thing. And they'll just list all these things. And in my head, I'm just calculating how painful it's going to be all these third party apps. I'm so excited. But like, that's great. Like, I'm just I've got scar tissue around it right? So I have to balance my knowledge with like, well, maybe it's doable. Maybe it's exciting, instead of thinking about, Oh, God, like, how hard it's gonna be. That's a little bit, I think, at least. So I'm kind of, at that point where I'm like, Yeah, I could do basically anything, but I kind of know how hard a lot of that is. And so it makes it maybe a little bit less exciting than it would be if I didn't know more of how the sausage is made.

 

Unknown Speaker  27:28  

Yeah, it's been an interesting thing. I have a couple of fairly Junior programmers that I mentor, just completely, like outside of work, just divorce from anything. And with one of them, especially the idea of like, you need to sit down and plan your software before you start building it is like this horrible thorn in their side and this thing that they just cannot deal with doing. Like they'll do it obviously because you know, like, it's a good idea. You You're supposed to do it and I, you know, I'm helping them and walking them through and stuff. But like, that idea didn't really enter their mind. Right? Like they gave themselves like a bullet list and then that was kind of it. And it's like, well, that's cool. That's great for like your script like your, your, your first rough pass through version. But when you want to build something that's like, you know, a SaaS product or some other kind of like thing actually being used by humans for money, you generally have to go a little further than a bullet list. And so like sitting down with them and thinking through like, Okay, how are you? How is this part going to work? How can I get from A to B, and still get the thing I want done? Was I felt like it was fairly eye opening for them. I mean, and for me as well with like, you're saying, like, the junior programmers don't they don't have the sausage is made. They don't. They're just excited to build something. They just want to make something.

 

Will Vincent  28:51  

Yeah, they're like driving a car at night with head beams. And, you know, yeah, that's exciting. Stay on the road, but so I yeah, and I wonder how much of that is Is it an attitude shift? Or is it just a knowledge thing where it just doesn't even? It doesn't even occur to

 

Carlton Gibson  29:04  

them to ask these questions. What? It's What could possibly go wrong? What could possibly go wrong? I'm just writing software. Yeah, go to logic puzzles. Yeah. What could possibly go wrong? Oh, my. You fall off the cliff.

 

Will Vincent  29:16  

Well, yeah. And then,

 

Carlton Gibson  29:18  

like everybody who's been doing it a while has been on these projects, which have just yeah, exploded. But they didn't know that before. They were like, yeah, we're gonna build this thing. And it's gonna be amazing, right? Yeah.

 

Unknown Speaker  29:30  

Oh, my word.

 

Unknown Speaker  29:32  

You get better at seeing that everybody. The longer you've been doing it, like in the beginning and everything's foggy. There's no cliffs. there's ever been a cliff, what's a cliff? And then you do it for 510 years and you're like, Oh, my God, you're going to die on any step.

 

Will Vincent  29:48  

Right, right. Not right. Why do I

 

Carlton Gibson  29:51  

do this? Then you just sit in silence like a sort of, you know, enlightened lotus position. Yeah. Why don't you programming Yeah.

 

Kenneth Love  29:59  

What do you Thinking about the horrible thing?

 

Will Vincent  30:05  

Well, I mean, so you you have a newsletter which will link to

 

Kenneth Love  30:09  

one episode or one issue.

 

Will Vincent  30:12  

You know what? It's Uh oh, everyone's gone.

 

Kenneth Love  30:14  

Right? I watch Carlton stock right? He blogs once a year. I think it's

 

the same thing from Yeah, yeah. Yeah, exactly. Exactly the way to sell it. Wait a minute. Well,

 

Will Vincent  30:23  

to sell that newsletter,

 

Kenneth Love  30:24  

under promise over deliver.

 

Carlton Gibson  30:29  

It's a good it's a good issue.

 

Will Vincent  30:32  

Yeah, well, I was gonna I was gonna say, though, I feel like, in many ways, I'm the inverse of most developers and yourself included where I started off, not in tech, and then I was in business. And then I was in management. And I'm sliding backwards into, you know, developer on teams and now solo developer. So I find this it's interesting to me that you think management might sound interesting to say that but i think that's because I have all the scar tissue from it where I I see the needs Then I just go, you know, sometimes I'm fighting with code and I'm like, Well, at least it's not just on its own like, yeah, yeah. Well, yeah, we are all of us have kids, you know, I have kids, it's like, I don't need more work kids to deal with. Sure. You know, you need parents, but um, I guess it's like anything, right? Like, when you have experience doing it, you realize how important it is, but also how much work it is to do. And it's, and I would say, you know, and probably this is the teacher in me, which you can relate to, I mean, managing someone, and a group to get somewhere is more rewarding than doing it myself. But it is harder. Yeah, right. Like, I you can't control people's code. You can control code like that's, as I get older, I'm like, well, code kind of works. Like there is an answer out there. But these real questions are just like, Who knows? Like, yeah, so I guess I'm just I'm just speaking out loud. But I I mean, encouraged that you're going the opposite track as I've gone, because I'm like, What are you doing? doing?

 

Kenneth Love  32:00  

Yeah, I mean, it's

 

Unknown Speaker  32:03  

I've been reading as I'm getting more interested in management. And actually yesterday I got it was official, I've been promoted to a dev lead team lead. Nice. That's I've had like four different names for what this title is. So I don't even know how to describe it. Basically, I'm in promotions of promotion, I'm in charge of the care and feeding of a group of developers. But I'm not their manager, which is important.

 

Will Vincent  32:27  

Well, well played

 

Unknown Speaker  32:29  

anyway, as I move into this, and I read more about it, investigate more into it. Um, yeah, there really is this kind of dichotomy kind of thing, where it's like, you have the engineers that that want to go into management like myself, and then you have the engineers that are like, I would never be caught dead in management. I know a lot of those, like, there's tons of those people. Right? I don't know, I don't I don't know why. It's like oh, I want to do management. I think it's just that it's it's much closer to my Deal of being this teacher he kind of thing, but still working in like corporate America. Because I can't get a position as just like you're gonna teach stuff to people we've hired.

 

Kenneth Love  33:17  

I know it exists, I assume it's assuming

 

Will Vincent  33:19  

that assuming that's the case. Yeah. Well, I think I mean, just as we were, you know, we were saying about losing your skills when you're teaching. That's the, that's the problem with management is you go manage for you know, sure. And then you have to manage and code and then you know, in two years, you have to go to another job and you're like, What, are you going to hire me for engineering manager? Great, okay, pass all these coding tests. You're like, Well, I haven't actually coded much in last two years, like, Yeah, but you still need to pass the test. So there is this like fear that like, once you switch over, you can't go back? Yeah, and I don't think that's true, because I think you forget how much you actually know. But that's definitely the The problem is people become a manager but then also have to do coding, and then they're doing two jobs, and then they get burned out. And I've had friends who were I mean, we got there. I went to them a Quizlet when they were in college, and now they're like 27, and managers at stripe and stuff. And they've already gone through this process of being promoted up to managers, and then burning out, and then going into a new company as an independent solo contributor for a year, and now they're in management again, but I almost think that maybe maybe that's the natural way to do it is to have that flow. Because when they're managing, they're just working crazy hours when their developer, you know, they can work a lot less and get paid more and feels better. So yeah, I don't know, it's not a static thing, I guess, even for people who I consider to be really good managers. And that's partly what makes them good managers is that they, they haven't spent 10 years you know, running sprints. They're they're still doing the sausage themselves.

 

Unknown Speaker  34:51  

Yeah, I don't know. I mean, I think there's a lot to be said for the managers that have that recent relevant experience. And I think there's, I have been reading a book called the managers path. Camera if it's manager path managers path by I think it's a Camille fornia, something like that really, really good book, awesome book. I've been reading it stupidly slowly. Because everyone's Well, I have time to read. But a really good book so far and she talks about how I think it was her. It may have been charity majors on Twitter. It's one of those two, we can talk about how like you shouldn't really be a manager for more than two years. And after two years, you should go back to being an independent contributor, so that you keep your coding chops, right, you you keep up to date with stuff. Right? I don't think that's a bad approach. I think that makes a lot of sense of having this, like, management's that thing you do for a few years and then you go back and then maybe go back to management. That's cool, because you're Ideally, still a good manager, but you're able to dip back in and get that relevant real experience in your company. I think it also would help if we didn't do tech management, like we do tech employment, which is badly. Because we have an industry that burns people out really, really fast and really, really hard. And those need to be fixed. We, we shouldn't be burning people out like that. It's honestly one of the things I love the best about O'Reilly, we have people that retire every year at like 30 years of being at O'Reilly. We have engineering managers and engineers that have been there for a decade or better. That's insane in modern tech companies, right? Like, what's the longest tenure at you know, like Twitter, five, six years, other than, you know, CEO, what's the vesting schedule? Well, yeah, it's probably whatever the vesting schedule is, right. So because you hit that vet, you hit that cliff and then you're gonna

 

Will Vincent  36:57  

you're gonna go one startup plan. I think I heard is something like, it's under two years, the average, I think, for some scoping months. Yeah. Yeah. But But I mean, but part of this is even I was, I have a friend who works, he works at a hospital on the business side. And part of it is, companies don't promote internally. So he's worked at this same big place here in Boston for 10 years. He works two years, he leaves and does something else for a year and comes back. And that way he gets bumped up 15% every time. Otherwise, he'd be stuck at 2% a year. And same thing with startups. You know, it's an I've because I've managed people and been like, Hey, we need to pay this person more. It's like, nope, don't have money for them. So we lose them. And then someone else comes in and we can jack that person up. It's like only when you're hired, can you actually get paid what you're worth? And so, aside from the culture, just the pay is a problem where most companies don't pay people what they're worth and undervalue how much it costs to lose someone and train someone and you know, and for me personally, being a manager of me Managing sounds good, but hiring I did that for two years at Quizlet. I don't want to do that again. That's so much work and so soul sucking and not soul sucking. It's just so much work to do. And then you know, that I think I when I think of manager, I think of hiring and that's

 

Unknown Speaker  38:19  

hard. I have not had to do manage hiring yet. I obviously we've done interviewing things like that, but I haven't done hiring or firing. So I can imagine that that's pretty stressful and a lot to deal with.

 

Kenneth Love  38:35  

I can't say though, at the moment.

 

Unknown Speaker  38:38  

I'll come back once I've done some hiring and firing and we'll talk about it then and find out what's happened.

 

Will Vincent  38:44  

I also wanted to mention for listeners so both you and Carlton work out of a home office though I think Carlson you're in your home and you're in a brand new place, which last time I spoke with you last fall was clean and now you have accumulated stuff There's things that you have a dedicated place though, right?

 

Unknown Speaker  39:03  

Yeah. We, when we bought our house we had like a garage attached to it. And we never really used it. We we park our one vehicle outside and the garage was kind of just a junk collection area. And then I've got two kids and we only have three bedrooms and I was using one bedroom as an office. Mm hmm. That's not enough rooms for people. So we converted about three quarters of our garage into new living space. So we've got like a laundry area. My wife has an area for crafting and then I have a dedicated, fairly soundproofed office. My plan is to use it for filming video courses myself, but that has not happened at all yet. So it's just my office and yeah, it's kind of a mess right now. There's like, I got a poster on the wall, which I don't think you can see in the current video. Now we can see there you go. There's a poster. There is a cutout of me on the wall for placement of a camera later this year, there's board games, there's keyboards, there's just stuff. It's a mess. It's a giant mess. Yeah,

 

Will Vincent  40:18  

that's like it. I find it interesting how people get their best work done. And it varies for everyone. And I think also, again, when you've been doing it, as long as all three of us have, you sort of find out what works for you. And you know, like, I mean, for myself. Yeah, I think I've, I haven't taken advantage of the flexibility that I have. So partly, like, working from home sounds good if I could, like take breaks all the time, but having little kids they don't respect my boundaries. So

 

Carlton Gibson  40:47  

but they go to school, right? Your children go to school. Yeah, but so so when they're at school, you work so my kids leave eight o'clock in the morning. So five plus eight. I'm at the computer. I'm there till you know, gone to Well, that's solid That's my time. That's my like call, you know, and it's silent. There's nobody here and but you know, every hour my computer tells me to stand up so I can, you know, hang up the washing put make some bread, you know have a coffee, whatever I've got all that time and all that flexibility but I've got that solid block of you know really concentrated work much more so than ever had the few times I've worked in an office where everyone's like,

 

Oh, you know they want a coffee want to chat? Like No, I don't want to chat I want

 

to work. Why? Because I want to stop Why do I want to work? Because I want to stop thinking when the time comes and I want to go and live my life. I don't want to be stuck here till 10 o'clock at night because I messed around the water. You know, I play Starcraft

 

Will Vincent  41:41  

after work. No.

 

Carlton Gibson  41:45  

We're just gonna start I want to spend time with my family. Angry engineers

 

Will Vincent  41:50  

podcast. It's not it's not angry. Wisdom. No,

 

Carlton Gibson  41:54  

but this is this is you know, but this is the thing right? You talked about the industry and the way we employ people and the way it goes. People but like we have this culture where they have, you know, you remote works not allowed, you have to come into this office. And this office is like a, I want to say a boiler room of strengths and you know, a new commitment. And they're like, Well, why don't you socialize with your work people after work? No. Why don't you go home and socialize with your friends and family? And then when you come to work, you can be at work? Like, why don't we have that set healthy separation?

 

Will Vincent  42:22  

Well, yeah, I'm curious, as a manager, what you think I mean, my observation is that from a distance code is as close as you'll get to being able to tell what work is because you can just read the commits. But it's still the case that attitude and button seat is the easiest proxy for hard worker, even with code because if you're managing a bunch of people, you can't you probably not doing code reviews of all their code. So it's like a, it's just, it's just hard to manage people. I think it's hard to know what someone's actually doing even with code from my experience.

 

Unknown Speaker  42:56  

I mean, I know your thoughts are I don't really feel like code is the work of programming code is the artifact of programming. The work of programming is thinking, that doesn't require my blood to be in any particular place. Just requires me to think. Because I mean, that's that's programming is problem solving, right? Like, that's all it is. It's It's literally I have these inputs, and I need to make that output. How do I do that? And I connect dots in the middle somewhere, right? So programming is thinking programming isn't writing code programming isn't drawing UML diagrams or anything like that programming is thinking, right? Maybe it's notes on paper, or maybe you write down your notes in a text editor, maybe you blather to a friend as a rubber, duck, whatever. You think, eventually you create some sort of artifact, which is probably code but may or may not be maybe it's a Google Doc, maybe it's a readme, maybe it's an API blueprint. I don't know whatever.

 

Will Vincent  43:54  

So like, I don't feel like butts need to be in seats for that. I feel like if there's any job that can be 100 Remote is definitely programming because it requires nothing. It requires an internet connection on a laptop. That's basically it right? Um, well, maybe, maybe we'll talk about this in a year or two. I mean, just from my experience even managing a small team of a half dozen people, even then it is hard to separate the work from but you know, these more intrinsic indicators I would say.

 

Unknown Speaker  44:22  

I think a lot of it comes down to to culture of the companies because like, O'Reilly has been pretty good about this treehouse was really good about this of if you're going to be a remote company, it's remote first. Everything is done remote. There are no in offices in office meetings that don't include a video call of some kind. No notes get taken anywhere, but like Google Docs, right? conversations happen on slack and you pay for slack so that history persist. Those kinds of things. You do everything remote, you do everything a sync. And that way you've built up this trust in your employees and in and them in Like their managers or just management in general, that everything is in the open, they can see what's going on. They may not have, you know, the latest budget numbers, but they understand that this decision got made. And here's what was made. And here are the arguments and the questions before. And this is what we're going to do. Because there's a link to this library or there's a Google Doc about it, or the code has been written and they just have to look at a PR. So I think that I think that adds a whole lot to the business working well with remote.

 

Will Vincent  45:30  

Yeah, I think it's hard to not be remote. First.

 

Unknown Speaker  45:32  

I've known several places that tacked on remote and they all just it was horrible. Every one of them never works. Yeah,

 

Will Vincent  45:37  

it never works. So as a teacher, how do you wreck what would you recommend to someone who's new to web development or Django? What kind of approach would you recommend given that you've taught and you mentor people now? Um, where to start? Yeah, so I think it went up. So how much Python Do you need before you dive into Django?

 

Unknown Speaker  45:58  

Um, you should Have, you should be comfortable with like importing, you should, you should be able to understand how imports work where the thing is coming from, I think you should be comfortable with classes, at least that they exist. And like the difference between different kinds of attributes and methods. Not as much. Now I used to say you need to be able to read regex, even if you can't write them. But with the right stuff that we have now for URLs, it's much less of a problem. And so long as you know what like the different basic datatypes are and functions are like you kind of don't really need anything else for Django. Django knows Django is large, but Django is fairly simple once you get under the hood. And it's just Python. There's nothing. Now that admin has been made fairly sane Python. There's nothing magical inside Django anymore. admin for a long time was the one last magical spot, but I think most of that's gone now. Right Carlin It's still,

 

Carlton Gibson  47:01  

you know, it's, it's amazingly powerful. And so because it's powerful, it takes a lot, quite a lot of effort to work through. But, you know, if you're just if you're just using the army, I mean, you know, there's a difference between the, the surface area where you have to go and look up the options versus digging inside.

 

Unknown Speaker  47:17  

Yeah. But yeah, I don't I don't think you have to know a huge amount of Python. For Django, I think you can start off pretty simple. I think the one learning thing I have that's weird to a lot of people is I don't think Python or whatever should be the first language you learn. I think the first programming language you learn should be SQL. Because Yeah, we are used to SQL right you you go to a restaurant and you order something off a menu and you tell the waiter what to bring you. Which is exactly how SQL works as opposed to programming languages where you tell the waiter how to make your meal, no

 

Carlton Gibson  47:49  

SQL, you just say I want this thing Give it to me and the waiter also as well with jack, that's a great suggestion actually, because with the Django ORM like the basic filters, you can get those without SQL but then There's more expressions and more newer features that have come on like window functions and expressions API and the key if you know how they map down to the underlying SQL, which if you learn SQL from from a newish book, you will learn all that stuff, then it makes much more sense. And then you can really get the power out of the ORM. You know, the ORM is super sophisticated and lots of people aren't getting the full out of it because they don't know the underlying sequel, I guess.

 

Will Vincent  48:26  

Yeah, one you can learn the basics of SQL and a day, certainly a week or two. Yeah,

 

Carlton Gibson  48:31  

this is a PG exercises thing. Which is great. Yeah.

 

Will Vincent  48:38  

Well, I guess I'd be go out what so what resources do you recommend for learning SQL? Cuz there's a million book, books and things but I don't know if there's that many great ones for my experience.

 

Kenneth Love  48:47  

Um, it has been quite a while since I was

 

Will Vincent  48:53  

there I was. I sorry. I was just gonna say there's a site I run is a JavaScript implementations SQL JS org. So you can play around without having to worry about loading up a database in SQL, which a lot of times that's the biggest hurdle for folks. There's other Yeah, JavaScript emulators. But I'll link to that in the show notes. But if you just want to you can import a file and you can do it just in the browser. There's a super site called PG exercises, PostgreSQL exercises.com, PG. x.com, which talks you through, you know, getting started with Postgres and SQL with Postgres. So I recommend that it's good. Good. I don't know about that one.

 

Kenneth Love  49:32  

Yeah, I don't have any SQL specific ones. Unfortunately.

 

You should learn SQL first, but we don't know how to learn it. Oh, yeah.

 

Unknown Speaker  49:44  

There are a lot of like, if you go look a lot of the like data science oriented, like boot camps or training sites like, like data camp or data quest, things like that. A lot of them often have really good sequel guides as well. I often am More at getting data analysis out of SQL than just like querying for records. But you'll still learn how to query for records because you have to be able to query to get data out.

 

Carlton Gibson  50:12  

And that was an amazing thing as well, which came up today. So I've got to check this out the term there was a detective story based on a okay sequel lite database. So you you have to solve the crime by querying the database and then Simon Wilson's wrapped it up in debt in data sets. So you can browse data set or find browser in use data set, enter the thing and you solve the crime. I saw that template that will put that in the show yesterday. Yeah, that looks amazing. We've got a

 

Will Vincent  50:41  

sequel murder mystery and data set. Oh, yeah, I saw that. Oh, what a fantastic idea.

 

Carlton Gibson  50:46  

Yeah, let's put that in the show notes. Because that's that's that looks just awesome.

 

Kenneth Love  50:51  

That is an excellent

 

Carlton Gibson  50:52  

idea. Occasionally Simon has a good ideas occasionally like about four times a day anyway,

 

Will Vincent  51:00  

Well, Kenny, thank you so much for taking the time to come on. I think it'll be. I've learned some stuff. I think it'll help others to just hear about what it's like to be an experienced dev to be a teacher and working in a place like O'Reilly that seems to get a lot of this stuff, right.

 

Kenneth Love  51:13  

Yeah, I am very glad to be here and to share what I can. Thanks for coming. Thanks,

 

Will Vincent  51:19  

Fred. All right. We'll see everyone next time. Bye. Bye.

 

Kenneth Love  51:23  

Bye bye.