Django on the Med - Paolo Melchiorre
Published October 20, 2025
This video features Carlton Gibson at DjangoCon Europe 2019 in Copenhagen, Denmark.
The first 3 videos of the conference had audio quality glitches (small sound skips), which were fixed in subsequent talks. We apologise.
https://2019.djangocon.eu/talks/feeding-the-pony-contributing-back-to-django-how-t/
By Carlton Gibson - https://twitter.com/carltongibson
Carlton Gibson argues that contributing to Django is both a way to improve the project and a practical way to learn, build a public record of technical work, and strengthen job prospects. He says companies should fund open source and give developers work time for it, while individual contributors should protect their wellbeing by setting strict limits, focusing on one project, and keeping a simple log of their work. He explains how to get started through Django’s contributing guide and Core Mentorship list, how to choose manageable tickets or third-party packages, and why contributors should seek help rather than be discouraged by code review.
Summarised automatically from the transcript.
Automatically transcribed, so expect mistakes in names and technical terms.
Speaker 1: Hello everyone. That was a great presentation. And now for our first keynote uh speaker. We have a Carlton Gibson. Um Carlton Uh he'll be he's a Jago Fellow and he'll be talking to you about how you can become a more active member of this beautiful community we have here. with uh his presentation called Contributing uh Feeding the Pony, a pony right there, Contributing Back to Django and how to make that work for you So everyone, please, a big round of applause for Carlton.
Speaker 1: He will not be taking any questions after his presentation, but he will be more than happy to answer any questions when you catch him at the breaks or after lunch. So, yep, no questions after the presentation. Thank you.
Speaker 1: Hello?
Speaker 2: Hello? Yeah, right, fine. Hello. Check this. Yep. Yep, okay, right. Hello, thank you. Sorry about that. Um I'm really honored to be here. Thank you for having me. Um Feeding the pony. I'm gonna talk about feeding the pony. Who's the pony? Well down goes the pony. There's the pony. I'm so glad they've made this. This is amazing. Um the idea back in the day was that when you were asking for all these magical features like declarative models where you just, you know sell them out and I don't know automatic form generation and input validation all these things that while you're asking for all these magic features you might as well just ask for a pony as well. Right?
Speaker 2: The thought was that then we needed a mascot and so well the the Django pony was born. Um before I go on, it I kind of think we don't do enough about this you know we should have more t-shirts and more things like that so if you're uh if you're a um a swag making type person let's talk afterwards let's try and make something more happen with the Django pony Anyway, who am I? I'm Carlton Gibson, so I'm a long-term Django Uler. I've got a book on the shelf that says something like updated for 1. 1, so it's around about then. I've been contributing in the Django ecosystem for a number of years. I'm maintaining a Django Rest framework. I helped I help there. Um I maintained Django Filter, Django Crispy Forms, I've helped out on other things. And along with Marius
Speaker 2: For the last year or so I've been the Django Fellow. What's the Django Fellow? Well we're contracted by the Django Software Foundation to do the sort of day-to-day tasks. on Django. We preyage the tickets as they come in. So you go on the issue track, you create a ticket, we try and reproduce it, we make sure it's a valid bug or not. We handle the patch review. So you submit a pull request, we make sure that your pull request gets a review as quickly as we can. We merged most of the pull requests now. We do security work, so there's a security issue reported we help there along with other contributors. We do the releases And it's the kind of stuff that on a project the size of Django, it just wouldn't get done.
Speaker 2: It'd just fall behind. And I guess the point about the Fellowship program, what's really good about it, is it hopefully lets contributors, that's you lot , do the exciting stuff of contributing code while we do the more mundane stuff. to keep the project ticking over. So the talk, um contributing back to Django and how to make that work for you. Why would you do contributing? I'd say well A it's fun. Right. It is fun doing open source. It's fun working on the patches. It's fun l um creating software. We like right creating software. But it's a great learning opportunity as well. It's really it really li upshore ability. It's something that just makes you better.
Speaker 2: Um Sorry. When you take on a ticket that you don't know what it is, you have to work out what the problem is first of all, you don't have to create a pr a test case for it. You create a patch for it. You'll get your patch reviewed by, you know, um big uh uh by contributors to Django, and they'll help you improve your code. So it's a great learning opportunity. And if you do it right, and that's what this talk is about, it helps you it helps you get a job or it helps you get a better job. Right? But but how? And That's what I'm going to talk about today. And the big problem is that Django, well, it eats contributors.
Speaker 2: It used to be called the meat grinder People would say, oh, we need some fresh meat for the meat grinder. I hadn't heard this. Um And why? Well, because expectations Right. There's ex there's bad expectations around open source. Um one of those that comes to funding. So let's just do a streal po straw poll quickly. I don't know if we can do it. Who here uses Django in their work in some way? That's okay, that's most of you. Keep your hands up, keep your hands up. Who keep your hand up if you are in some way senior at your work? Do you have an underling of any kind? Okay, so that's not so many. And keep your hand up if your company contributes to the Django Software and Foundation or Django West
Speaker 2: framework through viring code Well okay, some. Right? Well done those that you do that do. Companies don't fund anger. It's not many, right? So all of you use it. Half of you are senior in some respect and maybe ten percent of funding it. Why don't we fund why don't we fund it? It's tax deductible. Okay? It's one of the best what ways you can do to improve your hiring process. right both in reach to suitable candidates they hear about you because your logo appears in places But also in looking credible. A qualified candidate comes to your interview and you say, oh yeah, and we support the Django Self-Ware Foundation, we support Django S framework. That makes your company much more appealing.
Speaker 2: But the expectation is we won't pay for it. And the expectation almost is that we mustn't pay for it. Um every time a little bit of a New model is tried, there's a kind of outcry, oh this isn't free and open source anymore. So the example that comes to my mind is Redis. Redis have got the core which is BSD license and then they recently introduced this the ability to create mod modules that sort of bolt on extra functions. So Redis Labs, who's the company beh that funds most of Redis development. They created a graph database module and they created a full text um search module and they put those under a license which is for me as a user is totally open source. I can use those in any product. I just can't use them. in if I want to create another database product.
Speaker 2: So they've just tried to protect their position there. And yet there was an outright. There was Linux distribution threatening to stop packaging Redis. Because it wasn't free and open source anymore. And no, I don't the Redis example is just an example. The point is that kind of reaction whenever people try and make any money out of open source or try and find a way of funding it. It's deeply toxic, I think. Um now in the with DSF with Django we're really really lucky. We're in fortunate position. But if you didn't put your hand up or you didn't keep your hand up on the funding, I'd like to think hard about that and whether your company can fund the DSF or Django Rest framework or any other projects that you depend on. But it's not just fun, it's time. Right? There's a kind of expectation that once you start contributing to open source that you somehow owe the community something.
Speaker 2: That when that you have to be there, that you have to turn up, no matter what the cost to you personally, but that you have an o a responsibility, that you're letting people down. Now I I've been somewhat fortunate in that as I was getting involved in open source, I saw people that were massively influential to me And massive have been massively influential to Django. I saw them struggling and I saw their struggle and I was able to um well adjust my own behaviour and not not fall into this this trap. But it's it's really toxic. And again this is where we're lucky to have the fellowship programme in the Django world because Maris and I are able to do the really m the stuff that would that really drives you to burnout, but we're doing it on a paid b basis, so it's not so it's fine.
Speaker 2: And then hopefully then again you can contribute to the good stuff, the writing the code bit, which is you know rewarding and a learning opportunity and helps you you know helps you get more jobs and stuff. So let's look at the state we're in. Let me just have a sip of water. Unpopular opinion tech issue. Contributing to open source is a privilege only few can afford. Meritocracy On a similar thread, open source is the unpert-paid internship of computer programming. Right Here's a graph I showed at DjangoCon last year. It was
Speaker 2: it shows the commits per contributor between um when 2. 1 was released and JaggerCon last year. What matters is the shape of the graph. Because there are four hundred and eighty one commits from 121 separate people, but outside of the core group of the fellows and then half a dozen serious contributors. There's just there there aren't very many people. Now it's okay, it's fine, but the f first problem with it is it's just not enough. We need more contributors. Why? Because there are hundred and well thirteen hundred accepted OPA tickets on Django. Now it's okay, Django's mature, right? It's a state it it's old, but I think w
Speaker 2: well that's a bit too many for me. I think we need to be a bit more dynamic than having look at the this line shows over time, right? You see it never changes. Well, I think we need to be closing some of these and to do that we need more bandwidth. We need more people. We need more contributors to come and join us, right? We we manage to keep Django going. We do well. We add new features. We keep up with all the database updates. But if we had a few more contributors, we could take on that and we could add more features too. But the bigger problem Is that it's just not representative. If you look at across the contributors, well it's quite white and very male. But if you look at that core, well it's all it's very, very white and is all male Right? And that's not representative of the
Speaker 2: the Django community as a whole. Right As I say, it could have been any time. So there's another thing going on with Django, which is about a thing called Django Core. So historically if you contributed to Django and you made major contributions to Django, you'd be invited to a single Django core. And it is a list of people who are in it and it makes it look as if the contributor base is 50 strong. Um, but it's not because most of those people are emeritists, they're retired. They're not real they're not actively contributing to Django. And so it's slightly misleading that this Django core thing exists. And it's still not representative. Because it's all the old white men that have contributed in the past. So there's a Django enhancement proposal to dissolve
Speaker 2: Django Core that will go through this year. That th the governments of Django will probably be replaced by members of the Django Software Foundation who are active on the Django developer list. They will be the people who probably they will be the people who have the voting rights to if an issue comes up on Django. So join the Django Software Foundation and then you can be part of the governance of Django and the running of the technical framework. So that's half the story We're gonna get rid of that um Django core and then how do we want to how do how can we encourage more people to come in? That would be the rest of the story, right? So
Speaker 2: I'm not going to talk about the funding problem. We've got the Django Software Foundation, we've got the Fellowship Programme. That's you know that it's not perfect. There's more to say there, but that's not going to be my topic. I'm going to talk about the time problem Right. So how can you find time to contribute to Django? Well, can your work help? Let's have another straw pot. Who uses Django in their work? Come on. Right, okay. So who, keep your hands up, keep your hands up, keep your hand up if at work you are senior in some way, i. e. you've got an underling
Speaker 2: of any kind That who's got a promotion in the last five minutes? That's more of you. Oh, hang on. Right. So third question, keep your hand up if in your company you encourage and allocate time for working on open source. Okay. Hand went up over there. That's not bad, right? Because that's what you need to be doing. Your programmers, your staff, they will experiment, right? And you can choose. Are they going to experiment on your code base? on your product or are they going to experiment on an open source package which gets community oversight from experienced contributors? You can choose that.
Speaker 2: Right? It's a great learning experience. It makes your your employees better programmers. It allows you to keep up to date. So you've got you've installed a third-party app, a Django third-party app. And it's not compatible with the latest version of Django because it's got some bug in it. So you have an option. You can either get stuck on the on the la out you know, the last long-term risk support that's just about to become end of life and then you're running end of life software and every time you try and recruit a new programmer, what version of Jangu run? Oh we're at 1. 5. Oh Or you can tell your programmers, yeah no, let's fix that bug and let's fix another couple of other issues on that repo. Let's get that third-party package that we depend on compatible with Django 2. 2 and let's update.
Speaker 2: And then all of a sudden you're on the latest major version, then that's a happy place to be. Not only for your existing programmers, but for your hiring too. Yeah, what version of Gang run? Oh yeah, we're on um 2. 2. Yeah, we'll we'll be upgrading to 3. 0 when that's released. Ah, that's an exciting company. I want to work there. Right. It's a virtuous circle. It's a learning opportunity. It makes your code better. You get all new features. You can hire more easily. It becomes a learning opportunity, right? Google supposedly allocates twenty percent time. I don't know if twenty percent time is too much to ask. What about ten percent time? Would one day every two weeks at working on open source while your dependencies on the dependencies you use, would that really kill you?
Speaker 2: If your answer to that is yes, then you've got big problems. So allocate time from your work. But what happens if your work won't help you? Well what about finding time for yourself? Now I know this can be difficult. What do I know? Aren't I exactly the demographic that we've just talked been talking about? Right? So what do I know? Well, I know a thing or two. Because I got four children. Here's my look. I've got a mountain of children. Oh, I know, aren't they? Right? And I've done all my contributing on the side, all of it, around working to support those whilst trying to ensure that I'm a present as a parent. Right? So people have always asked me, well, how do you have time to contribute open source? And the answer I've always given was, well, some people play Fortnite.
Speaker 2: I've updated it since last year. Um I play GitHub. The point here is that I've made a choice. I don't have Netflix. I don't watch the new series on tele television. My wife thinks I don't like novels. I do like novels. I just haven't read one in an aid in the time. Right? It's just that you have to kind of choose what you're bad at. Because you can't be good at everything. So I'm bad at Facebook, I don't have it. I'm bad at Twitter, I do have it, but I'm rubbish at it. I'm bad at so many things I can't make the time for. I can't make the time for because I have four children. Because I want to improve my Spanish and my Catalan. And because I like to cook and I like to spend time doing all those other things.
Speaker 2: And I want to contribute to open source. Right? And it's not much time that I leave. I honestly don't have a lot of time to contribute. From a quick no, for the so I do the fellowship role and I work on Django S framework as well on a paid basis. and then have a little bit of time to do some open source. Okay. But it doesn't matter how little. So you find some time, a little bit of time. Like it'll be half an hour a week. I mean it, that would be enough. An hour a week would be twice as much, right? But enough, right? So find some time and then I want you to immediately limit it. Now I talked about this again last year, but the important thing with contributing to open source is that you don't allow it to eat more time
Speaker 2: than you you have specified. Because it can. And that's what leads to burnout and that's what leads to all the problems with contributing to open source is not limiting the commitment that you give. So take one thing away, take that. Right? Priority number one is still self-care. Okay? You s you have to look after yourself. There is this feeling, oh I must fix that issue that I you know caused an issue by fit merging this bargain that's broken this and if I don't fix it now people won't be able to pip it. People can go into their pip file and they can put two and equals and an inversion number in and pin to whatever version. You don't have to fix it that night. Yeah you
Speaker 2: you can fix it. But look after yourself first Okay. And then the other piece of advice I would give is don't spread yourself too thin. If you've only got a small amount of time, focus on one thing. It's better to focus on one package and do it well than sprinkle your effort everywhere. Okay, so it looks like I do a lot. You know, on paper I'm a Django fellow, I contribute to Django Rest framework, a Django filter. Django Field runs itself. There are virtually no issues and you know a few hours every every major release of Django and it's it's up to date. Okay. The fellow role separate. PayTime and DRF is separate. Okay
Speaker 2: Back in the day, I was working on Django Rest framework in my spare time, in the time that I had. I was doing a little bit. And then Django filter was unmaintained and it when I first started with Django Rest framework it was just Tom and I went and helped him. And but by the time Django Filter needed someone to look after it, there were five people working on Django Rest framework and I wasn't doing very much at all. So I took on Django Filter. And I was doing all my work on Django Filter. I didn't do anything on Django Restrayment for ages because I was busy and I didn't have the time. And then I got Django Filter sort of, yeah, that was fine. And Django Crispy Force was about to fall over. So I took that one and I spent my time fixing that and I was doing that for ages. And then those packages kind of run themselves. Django Crispy Forms. If anybody uses that and uses Bootstrap 4, then please talk to me afterwards because I don't use Bootstrap 4 and there's a few they're not hard bugs.
Speaker 2: but I haven't got the time to resolve them. It just needs help with templates for Bootstrap 4. So if you use Bootstrap and Crispy Forms, please talk to him. You can help me fix those. If you want to And now I've though but those two packages they run themselves and so now I've sort of taken on um to work on channels So Andrew can step back from that. And all I've got is a little bit of time, you know, an hour a week or so to to work on it. And I'm gonna work on it at the sprints and I'm gonna, you know, get fix and bugs that I've been looking at. But on the day to day, all they do is handle the incoming tickets. Is it a new okay is this a new ticket? Is it real one? Most of them aren't. Most of them are usage questions. Right, the key point is that in in my volunteer role, in the bit of
Speaker 2: open source that I do for fun, I've only ever really worked on one thing at a time. Right? And that's you've got to do well you don't have to do that, but y y I see some people contribute and it they're just they're everywhere, but they're not doing anything. And it's like focus anyway Right. And then the third thing is keep a log, right? Because even if it's only half an hour a week, it adds up. I talked about this last year about being prolific, right? It's it's not about being prolific in in this week, it's about being prolific over time. Right? It adds up. So the log is like an objective record of what you've done. And it's something you that you can talk about.
Speaker 2: So getting into open source really changed the dynamic for me when I was trying to get gigs. Because they were always, oh you know, can you give us some card samples? Well, no, because all everything I've W all my work is private, it's ND under NDA. But I open source off. It's like, yeah, well, you know, I do this, I do that, I do the other. And it really changed the dynamic. To keep a log of what you do And then you can use it. And those silly interview questions that you get. Describe time when you've used Pony to solve Press and Gavana problem. Well, okay, it's in my log and I can r fill in that application question. And it i I've got something concrete to say there. Okay. You can link to the actual ticket, right? It's not just that I wrote in in the application that I use Django to solve some problem. Here's the ticket where I did it.
Speaker 2: That's much more impressive than all the other candidates rilling in the same question. So keep the keep a lock And then you can also use it to help get a reference. Come and help me on my package and then over a period of time I'm going to be ecstatic to give you a referral. Especially if you can email me and say, yeah, and can't you remember that I've been contributing? Yeah, I do. Look, here's all the things I've done. On by can have a reference. Right? Of course, of course. Okay. And finally, the reason to keep a right log, and as I get older this matters more and more, is that it's an aid memoir. Okay. So I've solved the problem, I've learned something, but I can never remember it a week later.
Speaker 2: But I can just search for it and up comes the what what I did and the notes I took and then I've got that solution in my pocket for the future. Your log doesn't have to be high tech, it can just be plain tech files in a folder. Your computer can search, right? Don't build a tool yourself. Anyway, what did I say there? I said limit your time. Right? Find some time, then limit it. Focus on don't spread yourself too thin and keep a lock. They're the three sort of tricks. Okay. So actually contributing. I'm going to tell you how to get involved and how to get hold of us when it's not working. The contributing guide.
Speaker 2: You'd like to contribute to Django but you don't know how this document will explain our process how to get involved. Well that sounds promising, right? It's not the solution, it's a starting point. But have a read, there are loads of good stuff. It tells you the co-style, it tells you how to build the docks, it tells you how to Run the test suite. It tells you how to write a a new test. It tells you how to bisect the regression. There's lots of good stuff in it. Do give it a read. It's brilliant. On there it says join Django developers. Okay, well, you're busy. You haven't got time for another mailing list I know. And a lot of it's not relevant to you. But that's fine. Join it anyway. Turn off the notifications. It becomes as you get involved in Django it becomes more relevant. So check it once a week. Go and have a browse and see if there's interesting topics.
Speaker 2: Much more important than joining Django developers is Django Core Mentorship. There's another mailing list. And this is like with this the we need to advertise this more. But it's a place where experienced contributors are signed up to help you get a start contributing. Right, they're ready there, waiting to answer your questions. Don't email with hi , I'm Fred, I'd like to contribute. Hi, I'm Julie, I'd like to contribute. Hi, I've tried to install the the test suite but I can't get it going and here's the error yet. Give people a chance when you um Email the list, but email us. There's people there who are really going to help you get up and money. So join that. Then you need to get set up with the code.
Speaker 2: Now in principle this is easy. Clone the repo. Okay, git clone. Create a virtual env Python. Then VN. You've done this a loads of time. Install the requirements, pip install minus R, right? And run the test. There's run test. Run the run test. Brilliant. That's it. In principle. Right. Sometimes it doesn't work because I don't know you haven't got the right library installed in the right place or something. But if it doesn't work, Django 4 Mentorship I've got this error when I tried to run the test suite. If you can't get it running locally, there's a virtual machine that will run the Django test suite for you with all the different databases. There's a Docker setup now as well. So get the Docker box project, whichever, whatever worked for you, but get the code installed, run the test suite, see what it looks like. Fine.
Speaker 2: Then once you've done that you've got to find a ticket. And this can be hard. Remember, there were 1300 open accepted tickets. Well, where do I where do I begin? The docs, the contributing guide says to look for easy pickings tickets, but this isn't going to cut it because there are thirteen hundred accepted tickets, of which approximately thirteen. A tag easy. Right? Now we're not using this tag right, but it's not binary. It's not like there are 13 easy tickets and 1300 phenomenally hard ones. Most of the tickets are no harder than the problems you already solve every single day in your use of Django.
Speaker 2: Most of them. Yes, they need a bit of time to work out what the issue is. Yes, they need a bit of your love and your effort, but they're not Rocket science generally speaking. Okay? Why haven't they been solved? Well, because there's only half a dozen people regularly contributing on the code base and there's 1300 tickets. So There's a lot of opportunities there, right? Also , if you do start one a ticket. You'll get input. Like the tickets sit there with because there's no activity on them. But if you just pick one and start working on it and comment or put open pull requests or something, then the regular contributors will come in and give you Hell, so just pick one and get started. But you can narrow it down. So by component is one good way. You can go into the track, you can
Speaker 2: look at the view tickets and you can put by component and you can choose. Now you can't see the the numbers here, but the graph is the important thing, right? Most of the issues are in the ORM, then the admin, and then it goes down. But if you you know if you want to focus on error reporting, well there's only ten tickets on error reporting. So if you were to narrow your photo narrow by component, it makes it much more approachable. You're not faced with this wall of tickets, you get half a page. The third biggest area there, this this one, is documentation. There are lots and lots of documentation tickets. These are super if you've you know if you've got strong written English which everybody you know most of you have you can find a documentation ticket and you can work on it and you can learn about Django
Speaker 2: and improve the documentation around Django and really make a difference to the to the to the community because the documentation is one of Django 's biggest assets and it's one of our biggest areas to make improvements. You can also filter tickets by patch needs, patch needs improvement, or patch needs tests, or patch needs documentation. So all the all the open There's lots of tickets that get started, but they never get finished, because Wolfdango's Django's quite good, right? So it can be quite difficult to get a a ticket or a patch to the level where it's ready to be merged because if it hasn't got docs or tests , It can't go in yet. But there is a massive opportunity to find tickets that just need some test cases added.
Speaker 2: And add the test cases and bring it forward and then we can credit you with a co-author And that's you contributing and that's an easy that's a way to find tickets where you don't have to do the whole thing yourself because normally the solution is sort of if there's a pull request open the The solution is half there. We've got to start. The other way is to look at open PRs. So there's like I don't know 180 or 200 open PRs on GitHub. Most of those have been inactive for quite a while because they got opened, they got some reviews, they need improvement and the original author hasn't had the time to finish them. So you can just look through the PRs and sort of go, okay. And you have to read the comments, work out what the review was, but you can contribute. There isn't going to be a single pull request author who doesn't want help with their
Speaker 2: stalled pull request. Right, so don't be shy there. How else might you find something to work on? Well, is there a bit of django that you're using that isn't right? So my first patch to Django was to do with the template um system because there's a piece of code in um Crispy forms. Where it instantiates a um template without specifying a backend. And in 1. 8 that wouldn't work. Because you needed to specify the back end, but I there was only one. So it it's the default Django backend. Say well if there's only one can we just use that? And yes we can and so I made a patch and I fixed it. Why was it my issue? Well because I was the one who had the problem. Okay. The other thing you can get in involved with is are
Speaker 2: are the repos. So third port third-party apps are Django 's secret source. Why learn on Django S framework? And there are lots of people projects out there that are all undermaintained, that all need a bit of help. If you've got time, especially if you use these packages. I mean if you don't use them. Don't help use you know what I want to say. Right? Just get involved and help on a pack, you know, a package that you use And that can be more approachable because the coal code base is smaller. As I said, I I would love some help with boot bootstraps for support on Crispy Forms. If you want to help me with that, you know I'm really I'd be mega grateful. So find a ticket.
Speaker 2: There can you help to triage that ticket? Is it a valid issue? What does triage mean? Well is it a valid issue? Can you reproduce it? Can you come up with a test case that shows the issue in in hand. If you can, that's often that's 90% of the job done. The hardest bit is reproducing it and coming up with a test case. Often. Okay Once you've helped the triage it, well the other thing you do is submit a PR. It looks easy. This takes time, okay? You first of all you've got to do you do the best you can, then you submit it and you get feedback and you'll get lots of feedback. It'll be of the formula, oh can you reformat this here? Oh you've got a blank line here you've got two you've got to rewrap the comments to 79 characters. Loads of comments like that plus
Speaker 2: other co-changes. How about if we restructure it this way? And then you'll go back and you'll make some changes and you'll get more comments. And this happens. Everybody gets the same the same feedback, and it's all about quality, but it can feel hard. Right? But don't take it personally. It's not meant to put you off. It's not meant to be anything other than, hey, let's make this patch really good because that way we keep Django at the standard which you all rely on. Okay. If it gets if you get into problems, reach out. If you need help, reach out. If you're thinking to yourself, oh I've started to pull requests but now I you know can't finish it, reach out Django core mentorship again. Okay? Send an email there.
Speaker 2: On this PR, I've got this review but I don't know how to handle it. Can you have someone advice? Yeah, no problem I'm here to help. I'm Carlton Gibson on GitHub. Just at mention me in a comment, I see it, I'll come and check out. Bam. You can do it, right? You really can You are qualified. If you've looked spent any amount of time looking at an issue, Googling it, looking for solutions, then right then, right there, you know as much about that issue as anybody. Okay You might think you don't know enough. Oh this is this is too hard for me. But nobody knows enough. I'm not qualified for most of the issues that come up I have to open up the code base, read through it, try and understand the issue.
Speaker 2: It's what everybody has to do. Okay So after after the conference come to the sprints and do the practical. So I'm gonna be at the sprints and I'm gonna be trying to work on channels. thing issues there that want to close but whilst I'm doing that I want to be helping you so if you're gonna come to this to the sprints I'll be there and I'm gonna be um just trying to help you get started help find tickets help you do the film Walk you through these steps as much as I can if you need help. So come do that. And then well that's just a start. For me these are exciting times for Django. Django is mature It's stable. It's in a really good place.
Speaker 2: It's the web framework for perfectness with a deadline. It's meant to solve the WebCry problem quickly. And for all its 1300 open and accepted tickets, it does that very well for the vast majority of use cases out there. And the bit it doesn't do, well, we're kind of working on those. We want to get those done Right? We have major releases every nine months. We have fellows. We have conferences in glamorous locations. We have an awesome community that's unlike any other I Nomi Tech. Right? And we have a whole load of new keen contributors who are just about to go and install the code base , run the test, find a ticket and get contributed. We have a real opportunity to craft the future Django
Speaker 2: here. To make it relevant for the next ten years. So, come join us. Come feed the pony. Come code. Thank you. Listen, I said I wasn't going to take questions, but there's like ten minutes left. So does anyone want to ask what I'm happy to. Or no.
Speaker 1: So we have the question microphone right over there. So if anybody has any questions, please line up
Speaker 2: No. Yes. Hey, Daniel. Hey.
Speaker 3: Hey, it's good to see you. Um first of all, great talk. Um there's something that I've always sort of stopped me from uh contributing to Django and it's this notion that Django is feature complete, that it doesn't need my help. How do I how do I get around that? How do I find out You know what needs to be done.
Speaker 2: Okay. So um New good question. New contributors or protective contributors, they often come along to the Django developers mainly say hi I'm you know I'm Elizabeth, I'm new, I want to contribute and I've got this great idea for a brand new feature. It's like, whoa, hang on. Because it's not the Dangless feature complete, but Most features now can be put in third-party apps or if they can't. There's room for features, but it's difficult to find them. But there are loads and loads of bugs to fix, first of all. First what I what I personally would do if I didn't have an issue the best way is if I've got an issue that needs fix it. I personally am hitting this problem But if failing that
Speaker 2: is to filter by component, find a component you like and look through the existing issues and see if you can solve a bug or two. That'll be the first place. And once you've solved a bug or two Then maybe your feature starts to make more sense or maybe you see a different way around it but it doesn't need it or it's not that we're anti-new features. It's not that Django's feature complete, it's just To come from nowhere and say I've got this brand new feature, it's going to be this giant expansion to Django is like ah that never it's never going to work. And that's often what happens So folks on bugs would be my first. And do a couple of smaller patches to get your feet wet and get involved.
Speaker 3: Thank you.
Speaker 2: Okay. I'm gonna I I don't think that's
Speaker 1: a good question. Russell, do we have any questions from the internet? No.
Speaker 2: Fine, okay. It's too early in the morning for the internet. Fine, okay, that's that'll do then. Cool. Thank you very very much everybody.
Speaker 1: Okay.
The speaker says contributing is enjoyable, a strong learning opportunity, and a way to improve your skills. Done well, it can also help you get a job or a better one.
Discussed at 4:36Supporting projects such as Django can improve hiring by helping a company reach suitable candidates and appear more credible to them. Companies can also benefit from allocating work time to open source because employees learn, keep dependencies current, and improve the software they rely on.
Discussed at 6:55Choose what you are willing to spend less time on, even if you can contribute only briefly each week, and put a firm limit on the commitment. Prioritize self-care and focus on one project rather than spreading a small amount of time across many projects.
Discussed at 18:34Keep a searchable log of your contributions, including the tickets and problems you solved. It gives you concrete examples for applications and interviews and can help maintainers provide a reference.
Discussed at 22:31Read Django’s contributing guide, join Django Developers and especially Django Core Mentorship, then clone the repository, create a virtual environment, install requirements, and run the tests. If local setup fails, ask for help or use the available virtual-machine or Docker setup.
Discussed at 25:36Filter the issue tracker by component, or look for tickets needing tests, documentation, or patch improvements. You can also help finish an inactive pull request, work on documentation, or fix a problem in a third-party Django package you use.
Discussed at 27:54Treat the feedback as a normal part of improving the patch rather than taking it personally. Make the requested changes, and ask Django Core Mentorship or a contributor for help if you get stuck or cannot finish.
Discussed at 34:10Start with bugs rather than proposing a large new feature: choose a component you like, inspect its existing issues, and make a couple of smaller patches. That process can reveal whether a proposed feature is actually needed and helps you get familiar with the project.
Discussed at 38:28Note: We understand that names change, people change, and bodies change. We respect each individual's journey and privacy. If you have any concerns about a video or need us to remove content, please don't hesitate to contact us. We will handle your request with care and promptly address any issues.
Published June 13, 2025
Published June 13, 2025
Published June 13, 2025
Published June 13, 2025
Published June 13, 2025
Published June 13, 2025