Keynote: Django needs you! (to do code review)
Published June 4, 2025
This video features Sarah Boyce at Django Day Copenhagen 2023 in Copenhagen, Denmark.
"Djangonaut Space - Launch!" by Sarah Boyce at Django Day Copenhagen 2023. Talk description at: https://2023.djangoday.dk/talks/sarah/
Sarah Boyce explains why Djangonaut Space was created to help people begin contributing to Django. Although she became a core contributor without a formal mentorship programme, she had months of uncertainty and benefited from substantial informal encouragement, sponsorship and personal support. Djangonaut Space provides a three-month structure in which navigators mentor participants, captains offer pastoral support, and the programme builds accountability, personal connections and confidence rather than measuring success only by merged commits. The pilot showed that participants became more comfortable taking part in the Django community. Boyce argues that finding a first contribution is often harder than the code itself, and that sustained open-source involvement depends on supportive relationships, meaningful personal motivation and the freedom to pause when life intervenes.
Summarised automatically from the transcript.
Automatically transcribed, so expect mistakes in names and technical terms.
So
Speaker 1: this is exciting. Um Sarah Boyce is uh ready with the talk and um is also kind of our keynote speaker. Um uh Sarah, you've done a tremendous amount of work. Uh some I I I think I heard someone say rising star. So is uh It's it's nice coincidence that uh this is about uh uh Django Not space. Um
Speaker 2: yes.
Speaker 1: So I think that we should all give a really big warm welcome to Sarah. Very excited for this talk.
Speaker 2: All right, so this is my first ever conference talk. So if many things go wrong, please be very supportive. Okay Okay, so hello. Good morning. My name is Sarah. But there are multiple Sarah's in Django and multiple Sarah's here today, so I'm Sarah Boyce. And I'm a Django Core Code contributor. Um yeah, so this is me. Uh I raised my first PR to Django less than 80 months ago. Um and in this time I've become a member of the DSF. I'm now a member of the Review and Triage team. And in the past year, I've become one of the top five code committers to
Speaker 2: Django. So you could probably say I've been fairly successful in a short amount of time. And I did all of this without any form of a formal mentorship program. And yet what I'm here to talk about is the value of providing formal mentorship at Django and that I'm here because I really believe that this can unleash a lot of potential and talent to the for the betterment of Django and the Django community. But isn't that a contradiction? I was saying, you know, I haven't needed it. Why would anyone need it? Um well I did say that I raised
Speaker 2: my first PR uh less than 18 months ago and that's true. But that doesn't mean I had decided to contribute to Django at that point. In fact, I'd made that decision quite a while before then. I had a goal for myself, uh, that contributing to Django was something I really wanted to do. I wrote it down And uh I even opened up track and I wrote like a comment and a ticket saying, oh please can I work on this and all this kind of stuff. But yeah, I hadn't re raised a PR that hadn't got anything substantial to show for my efforts for over nine months, which is quite a significant amount of time.
Speaker 2: So why does it take that long? And uh the reason, or at least I think part of the reason is Uh Django is pretty mature. It's been around for quite a long time. There's over 18 years worth of design decisions. There are tickets which are 10 years old, lots of comments, lots of mailing list discussions. And there's lots of tests And it feels like you can break them all by changing one line of code. And so it's a little bit intimidating. Yeah, and not to mention there are also a lot of tickets to choose from. There's about a thousand open tickets, and so that takes a good amount of time to get accustomed to, to understand what they mean, and then figure out, oh, this is
Speaker 2: completely not for me and then move on to the next and all this kind of stuff. So yeah it's it's a little bit difficult. I'm also I'm not alone in thinking this. So Anvanch, who is a Django knot on our program, he had had quite a similar experience. In fact, he'd been Trying to contribute to Django for about 10 months prior to our program. And he was also going into track and assigning himself to things. But he hadn't raised a pull request, so there was nothing, there was no code for anyone to look at or to give any feedback to any of the efforts that he'd done, he'd done in the dark, and we we don't have any access to that. And so, you know, I wonder how many people have gone, yeah, I can do this, and they've started for some time, and they didn't realize that this is maybe over six months before you're going to get, you know.
Speaker 2: I also said that I haven't received any formal mentorship, and while that's true That doesn't mean I haven't received mentorship. I've received lots and lots and lots of instances of informal mentorship all the time. I really do mean that this community is It's very, very welcoming. I've been you know, I've witnessed so many microvalidations that I belong here, that I'm welcome here, that they're grateful for the work that I've been doing. So many thank yous. There have been times where people have reached out, or quite real instances of sponsorship where my name has been put forward for things. So it's not like there wasn't mentorship. Of course there was
Speaker 2: And really that's the idea behind Django space. So what we want to achieve is a system where we can provide this environment of belonging and support for contributors to join. so that they can feel the community element of what makes contributing a valuable experience and invite them along to be part of it. And it appears to be working. Today is the last day of our pilot program, so we've just completed our first batch. And in this three-month period,
Speaker 2: we had a number of pull requests raised. Some of them were merged, some are still ongoing discussions. Yeah, okay, we hosted some talks between the fellows and and with our people on the program. But the one I really want to draw the most attention to that I'm very proud of is that everybody who participated in the program, they came out feeling more comfortable participating in the Django community after the program. And I think that is really the main thing we're trying to achieve, regardless of how many commits you you get in all something like this. So what is the program?
Speaker 2: How does it work? As I mentioned, it it currently lasts three months. We might change that a little bit. And we have a couple of roles defined. There are Jangonauts. Jangonauts are participants of the program. They are the people who are the mentees. And we have, you may have noticed there's a space theme. We have navigators. They are the coach, the mentors, they are people who've got some context with contributing to Django and they they have weekly catch-ups with Django Notes to engage with them and how they're doing and and talk about any problems
Speaker 2: They might have and keep keep the ball rolling with it all. And then we have another role which are our captains. And they are providing pastoral, extra pastoral support. And they are doing it in more of a one-on-one session. And this is checking in with people, you know, what's going on with them and checking whether they need to take a break for any reason or if there's anything that they felt not comfortable enough to raise in front of a group of other people. And those are kind of the roles that we have There's a little bit of structure, so a navigator will have three or four Django Nauts assigned to them that they look after, and generally we have a group of about
Speaker 2: six to eight in in a program so far. But really at the crux of it all, we're providing three things. And these are what I think adds value with the program And the first one is accountability. So, how many times have you gone, oh yeah, sure, I will do it? And then perhaps you've delayed it. And I think Contributing to Django, the best way I can describe it is it's a marathon and not a sprint. You are going to reap results if you make consistent efforts over a period of time time. It it doesn't move super fast. So you you if you are engaged in in something where you know this is going to take some time you can keep
Speaker 2: Reaping those results. And these weekly touch-ins are ways that you can be like, right, okay, what is some small progress I'm going to do before next week. However, whether that's just starting some kind of new discussion or something. The other thing is around connections. So we are really humanizing the code base. Django is full of real people who have flaws and don't know everything. And by meeting those people and learning a bit more about them, it becomes helps to make it a little bit less intimidating and helps you engage on it in a bit of a different level. And that you can hopefully, you know, enjoy meet uh interacting with those people, make some friends.
Speaker 2: And the final thing is sponsorship. So contributing to open source can really open a lot of doors for you, but only if you know to talk about it, only if you start telling people about it. And what we're doing is we are uh we really celebrate the achievements of the Django Nauts as much as we possibly can. We will use our voice until These individuals feel comfortable enough to use the voice of their own. And we are making connections with other people in the community. Every time we set up a talk we are giving them that network and that possibility to to really you know make a difference there's some fantastic experiences
Speaker 2: people that they can learn a lot from and uh yeah through us bringing them along we we can really share out those those opportunities Okay, so if that sounds interesting to you and you want to learn a bit more about us, uh our website is JangoNot. If you go there that you will find all of the documentation around the program itself, you can read a bit more about what a navigator is exactly. and a captain and all this kind of thing. There is also a sign -up form, and you can sign up to be any one of these roles, whether you're you feel like you can uh Perhaps you want to be a supportive mentor, you want to be a captain, perhaps you want to be a participant or a navigator.
Speaker 2: All of that is very welcome. If you did sign up, we will reach out to you and we will give you um we will organize like a QA session where we can get a bit more context and and all this kind of stuff and answer any questions. The other way you can help out is just talk about us to people that you know. Whether you want to follow us on any of the social media. media, like or share what we're we're talking about and kind of engage in that celebration and that discussion because that would also be very very useful. And then before I open up to questions and stuff like that, what I I want to talk about is um
Speaker 2: Really, why I think it all matters. So I um back when I I there was a slide before where it kind of hinted at this, um, but I really have received a lot of Uh, support and mentorship from this community. And this is my first conference talk. And I'm here today because Mariush Suggested that I should do this talk. In fact, he reached out to Ben and he uh invited me to do this. And he has done this in uh throughout my process. He invited me to be in the DSF and he invited me to be in In the review and triage
Speaker 2: team. And if it isn't if it wasn't without Mariush and people who have specifically reached out to me and let me know that I am I'm welcome here and I'm valued here and that I am seen. Uh I I probably wouldn't still be here. And I am aware that that is me being very lucky because I know that I am not that special. And there are so many people who can add so much value to Django and our contributing community and Django Not Space is about inviting those people in and creating a system of belonging at Django.
Speaker 2: And hopefully we'll go to another conference and not only is there loads more seras than there already is, but there's going to be more Tishars, more Anvanchas, more Yamissis, more Abyamas. and um more Marianas and that is really what I think it's all about. So thank you very much.
Speaker 1: Thank you. And like Nice to celebrate also now that you have done your first talk. Congratulations. The first of uh now it's gonna be a lot easier to do talk.
Speaker 2: Yes, hopefully. Hopefully.
Speaker 1: So uh basically questions from the audience. Yes.
Speaker 3: Thanks. Hi. Great initiative. I think it's brilliant. What I'm wondering is obviously Most of us, I think all of us probably have jobs and probably families and all the other stuff. So and you're talking about you know, weekly catch-ups and touch ins, it's a sounds a little bit agile. I'm wondering about the level level of commitment that you expect for things and what happens is you know when life gets in the way and you know it's okay well I haven't done anything for for weeks so dear I feel a bit bad now. How how are you dealing with that kind of thing?
Speaker 2: From the perspective of the participants or uh any role? People
Speaker 3: trying to contribute so that so that they feel, okay, I'm not uh why am I doing this? I I should step back, I should stop now, you know.
Speaker 2: Uh I agree this is really hard, and a number of people I think have felt this. Uh we do encourage that We appreciate that life happens. And I think this is part of the reason that that we have the role of the captains. So Django has been involved in Google's summer of code for some time now and this is our extra support layer to really figure out what is the reason behind when someone goes a bit quiet. So if someone goes a bit quiet, it could be that uh they're they're just rabbit in the headlights and they they they don't know what is is what to do next. But it can also be that yes, life is just happening. They didn't expect the workload that they've received.
Speaker 2: We've even had a we've had a bereavement. and things that happen and uh all of this and your well-being is way more important than any commit you could ever do. And uh we appreciate that. So The other thing I want to highlight with the participants is that it is just a journey, and what how much you do on the program is kind of irrelevant, and that's really why Uh I focused on whether they feel comfortable participating in the community because uh Django is gonna stick around for a long time. You can uh uh leave it and come back later and it's just whether you feel like you would like to come back later
Speaker 2: is what I think is important because because learning that that level of balance and this healthy habits with open source is important and we want to encourage that. We just want you to feel a little bit of success, realize that even if you move that discussion, you know, a bit further towards a conclusion that is still success, other people will pick things up if you had to put it Down. But yeah, I said that in a very long-winded way. But all these kind of things.
Speaker 4: First of all um congratulations on your uh first uh talk it was uh it was real good. I enjoyed it personally. a lot. What? I have also noticed that people are they have some difficulties in contributing to open source, especially when it is their first time contributing there. So I have actually two questions if that's okay. And the first one is what do you think um what have you noticed is the most difficult Difficult thing to do. Is it difficult for them to find a problem? Is it difficult for them to feel confident to say they will do so? And I mean which One in the pipeline and the other question I have is
Speaker 4: how many of these people and what can be done better so that they continue to be open source contributors? Because it's going from zero to one is the most difficult thing and I agree but I think it's really important continuing to doing so and it's difficult for me as well but I'm trying to Thank you. Thank you very much.
Speaker 2: Thank you. Um so with yes, exactly. When you you you said it yourself, the zero to one element it's It's uh it's really hard. And there's a lot of uh and I remember uh in fact I was having a similar discussion with with Sarah A. earlier, uh about that that feeling when you've raised your first PR and that you you're you're checking whether someone has looked at it yet and there's there's a lot of anticipation and And things around it. With Django, I would say uh different people come to it with different reasons. So if you come to Django with a specific issue that you found and you wanted to solve, you've already come at it
Speaker 2: five or six steps before somebody who is just going, I generally want to contribute to Django because then they need to go into track and they need to figure out a way to make this work for them and to find that first issue. So I would say with Django usually finding the right first ticket can take some time because even though we have a uh I think it's called Easy Pickings Flag. A lot of those tickets get snapped up quite quickly and there aren't that many easy ones. And so you really need to spend extra time and having the motivation to continue to stick with it when you're very much on your own at the start
Speaker 2: is quite difficult. And then you went on to talk about um uh how people stay with open source, right? Okay. Um Why am I staying? Uh 'cause because okay, uh it's true you get diminishing returns the the more that you do. You you bec you don't learn as much as you did when you did your first couple. And it and it will you there's still loads to learn, of course. Um, but it it it does become less and less. And also that kind of like status thing that you get for saying, oh yes, I did a Django code contribution.
Speaker 2: Again, it gets less and less because when you say, well, I did another one, they're like, okay, yeah, whatever now. And all this kind of stuff. And really the reason I'm engaged in it is because uh I'm interacting with really fantastic people and having really interesting discussions. on not only Django itself, but how should Django work? How should we progress? How can we engage with new people? And I think if you find a a a niche of either a way you can add specific value, so maybe you have a mission of something you want to get involved with, then that will help you to uh stick with it for for a longer period of time.
Speaker 2: But it's it's more about finding that that motivator because Um yeah, otherwise it's your free time. You should do something that that adds value to you.
Speaker 1: Do you want another question? I
Speaker 2: I I don't mind.
Speaker 1: Um I I have a question. Um I I I think there is a saying that something with uh came for the code or the knowledge and state for the community. Um can can you talk a little bit about the social aspect of uh Django Not space? For instance, I think when uh when you have a question about Django, it can be a little bit intimidating. Where to ask the question. Like you don't open an issue, then you really get that. But uh it's also hard maybe to go to the forum and make a forum post about the question uh because a a whole forum uh can also seem intimidating. Um then uh IRC channels are obviously uh little bit old fashioned so not so many people know how to go there.
Speaker 1: But I remember also just asking a question in a in a chat room with uh over a hundred people is also intimidating.
Speaker 2: Yes.
Speaker 1: But what what happens in Djangonaut Space for the participants to support each other.
Speaker 2: So currently we have a private Discord server where it's it's only the the people in the program are there and the idea is that gives you that extra safety around that you're not asking a question that you think maybe is a stupid question to in front of that house. people or something stupid. And ideally what we want is that people, you know, after they have had some time with it, that they feel more comfortable that they can say these things. in in more of a public setting because I do appreciate there is value in people going there and saying it because any We don't want any secret knowledge to be hidden away somewhere. Uh
Speaker 2: but this learning in public it's it's terrifying And I also don't enjoy doing it. So I can appreciate why a lot of people would not want to, you know, go on the forum and and ask that, like, oh, I've got this error when I was running the tests, can someone help me? Kind of question. But yeah, so that's that's how we're achieving it because you have uh people that you could talk to directly because you know some people then you can ask them the question or you can post it in something that is a little bit more um private than just everywhere.
Speaker 1: Yeah, I would also say that ask questions in the Django forum. Uh it's not it's not wrong at all. No, no, no. But of course it can feel a bit difficult to ask a question where it's like I did something wrong. And now someone has to figure out what I did wrong and then it'll be there forever on the internet.
Speaker 2: Yeah.
Speaker 1: Um Are there any questions from the internet? Oh, there is a question in the audience. Yes Yes, you do need a microphone.
Speaker 5: Yes, hi. Uh so i if you want to contribute to the Django call, how many years of experience do people generally have in both Python and Django and like what would you recommendation be?
Speaker 2: I don't think there is any specific amount that really matters. I think you need to have an appreciation of tests. Tests are very, very important. Um Django's at the side. There's 16,000 tests. And if there weren't that many, it would fall apart because there are a lot of features and subtleties in there. Um so there's more kind of I'd say certain principles that you should be kind of willing or to even if you don't know them, if someone says you should do it like this and this and this if you could be like, okay, yeah, fine. And then you you you take that on board.
Speaker 2: Um Python, uh yeah, I mean it's all in Python, so maybe you you should have a a a a year or two's experience with Python. With Django itself, actually I don't think you need that much Django experience. Some people started, in fact, David Smith is a contributor to Django, quite a big one, who didn't. wasn't making Django applications himself so much or not working on these kind of projects. Um you you just kind of need a certain attitude and grit, I would say, to keep up with it. Because it helps when you if you want to go in and you want to engage in the discussions of like, does this feel like Django?
Speaker 2: then then extra experience in Django is really useful there. But if someone is saying when I am using this database in this scenario, I have a bug that looks like this. You know, it is just you you need to debug it and and get over that specific problem. Um so it doesn't you don't need to know every feature that there is under the sun to to still add value so um i yeah it depends is this the answer
Speaker 1: We do have a little bit more time if there is a question from the internet. I'd like to get the internet involved, but maybe they're taking a uh long quiet morning out there on the couches. Okay. So uh let's let's celebrate uh Sarah's first talk one more time. Thank you so so much
Django has nearly two decades of design decisions, extensive tests, long-running tickets, and around a thousand open tickets to navigate. New contributors may spend months understanding the codebase and finding a suitable first issue before opening a pull request.
Discussed at 3:09Djangonaut Space is a three-month contributor program with Djangonauts as participants, navigators as weekly mentors, and captains providing additional one-on-one pastoral support. Navigators typically support three or four participants, while cohorts usually contain six to eight people.
Discussed at 7:20The program provides accountability through regular check-ins, connections that make Django’s codebase and community feel more human and approachable, and sponsorship by celebrating participants’ achievements and helping them build a network.
Discussed at 8:53The program accepts that life happens, including heavy workloads, uncertainty, or bereavement, and treats the participant’s well-being as more important than any commit. Participants can make limited progress, pause, leave, and return later without that being considered a failure.
Discussed at 16:14Finding a suitable first ticket can take a long time because easy issues are quickly claimed and there are relatively few genuinely easy ones. Staying motivated while searching and working without support is especially difficult for people who only generally want to contribute and do not arrive with a specific bug or feature in mind.
Discussed at 19:40The initial learning and status benefits diminish over time, so continued participation depends on finding a meaningful motivator, such as interesting discussions, great people, or a niche where the contributor can add specific value.
Discussed at 21:59Participants use a private Discord server where they can ask questions in a safer, less intimidating environment and get help from people they know. The aim is for them to gradually become comfortable asking questions publicly rather than keeping knowledge hidden.
Discussed at 24:06There is no strict experience requirement, but contributors should be comfortable with Python—roughly a year or two may be useful—and be willing to learn Django’s testing and contribution practices. Deep knowledge of every Django feature is unnecessary; persistence, debugging ability, and the willingness to engage with feedback matter more.
Discussed at 26:21Note: 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 October 13, 2024
Published October 13, 2024
Published October 13, 2024
Published October 13, 2024
Published October 13, 2024
Published October 13, 2024