---
title: "S09E02 - It's Still Your Code: AI Contributions to Open Source, Live at Codegarden"
url: https://dotnetcore.show/season-9/its-still-your-code-ai-contributions-to-open-source-live-at-codegarden/
date: 2026-09-25
author: "Jamie Taylor"
summary: "A live panel from the Codegarden stage, recorded with the Candid Contributions podcast: Emma Burstow, Lotte Pitcher and Carole Rennie Logan on whether open source should accept AI-assisted contributions, and who is responsible for the code once it lands."
audio: "https://traffic.libsyn.com/thedotnetcorepodcast/S09E02-CandidContributions-CodeGarden.mp3"
episode_id: 198
duration: "PT44M24S"
---

# S09E02 - It's Still Your Code: AI Contributions to Open Source, Live at Codegarden


## Episode Summary

This episode was recorded live on one of the stages at Codegarden, Umbraco's annual conference, where Jamie was invited by the team behind the [Candid Contributions](https://candidcontributions.com/) podcast to record a collaboration episode in front of an audience. Joining him were Emma Burstow and Lotte Pitcher of Umbraco, and Carole Rennie Logan of Equator — three of the four Candid Contributions hosts, with Laura Weatherhead absent but very much thanked for the digital signage that made the venue look as good as it did.

The question on the table is one that Emma admits Umbraco had barely asked itself internally: how should an open source project feel about pull requests written with the help of an LLM? Her answer comes back to contributor trust. Umbraco is an ecosystem built on the assumption that people contribute responsibly, and the guardrails that catch a bad contribution — pull request review, a growing test suite, maintainers who ask *why* — are the same guardrails that were already there. Lotte adds the practical argument: it would be hypocritical to reject AI-assisted contributions when Umbraco's own product and engineering teams use those tools productively every day. Umbraco has no AI contribution guidelines yet, and would much rather react to a problem than put contributors off before one exists.

Carole draws the line where she thinks it has always been. Whether the code came from an agent, from the documentation, or from a stranger on Stack Overflow, the moment you commit it, it is yours and you are responsible for explaining it. Jamie reaches for ReSharper as the precedent — nobody ever wrote "I used ReSharper to turn this into LINQ" in a pull request description — and Emma points out the natural consequence: if you can't read it and understand it, you can't claim it, and if you can't claim it, you have no business pushing it into someone else's codebase.

From there the conversation widens. The panel looks at the projects that have banned AI contributions outright, at the pile-on aimed at rsync's maintainer for using an agent to re-learn code he hadn't touched in five years, and at whether Hacktoberfest-style drive-by pull requests are a problem Umbraco has been spared largely because it gives out so little swag. On the more hopeful side, Lotte and Emma talk about agentic tooling as an empowerment tool for people who raise issues but never felt able to fix them, and about the hackathons that used to be spent entirely on getting a development environment working. Two audience members make the case better than anyone on stage: Justin describes shipping his first Umbraco package, something he says would have stayed an idea that went nowhere, and Sebastian describes finally renaming *master* templates to *layouts* across the codebase — screenshots in the documentation included, via Playwright — a job he had put off for years.

The recording ends on the part Jamie and Emma genuinely disagree about. Emma wishes she were a junior developer today, with a tool she can query in the way her brain actually wants to receive information. Jamie, who works with local colleges, worries that juniors are being handed the tools without any way to earn the experience needed to judge the output, and Carole wonders aloud whether the battle scars from two days of banging your head against a production bug are something we're about to stop acquiring. Audience member Mike offers a third way — that AI can be a curiosity enhancer, if you are the sort of person who asks it to explain the F# pattern you just found in a C# codebase. And then Jamie closes with the spicy opinion he warns you about in the introduction: that the age of the incurious nine-to-five developer is, in his personal view, coming to an end.

Whether you maintain an open source project and are wondering whether you need an AI contribution policy, you contribute in your own free time and want that time to go further, or you are simply curious how a room full of experienced developers actually feels about all of this, this is a candid, unscripted conversation with a live audience and no shortage of disagreement.

## Episode Transcription

Hey everyone, and welcome back to The Modern .NET Show; the premier .NET podcast, focusing entirely on the knowledge, tools, and frameworks that all .NET developers should have in their toolbox. I'm your host Jamie Taylor, bringing you conversations with the brightest minds in the .NET ecosystem.

Today's episode was recorded shortly before the annual mid-year hiatus, and was recorded live at [Codegarden](https://codegarden.umbraco.com/program/). Codegarden is Umbraco's main conference, and I was invited by the folks over at [Candid Contributions](https://candidcontributions.com/) to record a collaboration episode on one of the stages.

We sat down to discuss the topic of AI-based contributions to open source, the opinions of everyone present, what the Umbraco leadership team (which Emma is a part of) throught of them, and the (then) recent news that rsync's developer had come under fire for using AI. Along the way, we took questions from the audience and the recording ends with a rather spicy opinion from me; so keep an ear open for that.

I'm very grateful to Emma, Lotte, Carole, and Laura for asking me to collaborte with them on this episode. I'd also like to thank everyone on the Umbraco team for organising everything and allowing me to be part of Codegarden.

One thing to note is that Carole's mic wasn't working in the openning minutes. Podcast editor superstar Matt has done what he can to clean the audio up, and Carole's mic got replaced at the three minute mark, but it's worth knowing that going in.

Before we jump in, a quick reminder: if The Modern .NET Show has become part of your learning journey, please consider supporting us through [Patreon](https://www.patreon.com/bePatron?u=13876270) or [Buy Me A Coffee](https://www.buymeacoffee.com/dotnetcoreshow). Every contribution helps us continue bringing you these in-depth conversations with industry experts. You'll find all the links in the show notes.

So let's sit back, open up a terminal, type in `dotnet new podcast` and we'll dive into the core of Modern .NET.

**Emma** (Emma Burstow): Thanks for that.


**Jamie** (Jamie Taylor): Oh my goodness. Wow. Just, wow. Look at where we are.


**Emma** (Emma Burstow): I know.


**Jamie** (Jamie Taylor): Before we get started with anything, I want to personally sit here and thank everyone on the stage for inviting me to come along to this, everyone at Umbraco for making all of this happen, and all of you — both the online people, the people listening, and the people in the room. Without any of you, I wouldn't be sitting here.

I'm going through this thing at the minute where every time I feel imposter syndrome, I reframe it from "I shouldn't be here" to "look what I get to do!" Look what you all get to do. Look where you all get to be, right? It's just amazing.


**Emma** (Emma Burstow): It's a privilege to have you, Jamie.


**Jamie** (Jamie Taylor): Thank you so much.


**Emma** (Emma Burstow): It's a privilege to have you. I like starting off with a bit of gratitude. That's a really good... well, we were talking earlier — this is our tenth year. We met at Codegarden ten years ago. We've hit double figures, and it's very much about "look what we get to do".


**Carole** (Carole Rennie Logan): Imagine telling little us...


**Emma** (Emma Burstow): Little us... God, we've said that for years, haven't we? Little Carole, that she'll be on stage. Little Emma — sorry, I know you were around before us.


**Lotte** (Lotte Pitcher): No, no, no, I was just thinking, "Candid Contributions has been going for ten years?" But no, you meant your friendship. Pay attention, Lotte.


**Carole** (Carole Rennie Logan): Are you new? I'm new. Okay, but it's friends.


**Emma** (Emma Burstow): Yeah, we're new, so now we know each other. Yeah?


**Jamie** (Jamie Taylor): I do like that. "You're new, I'm new, let's be friends." That's like when you're at school.


**Emma** (Emma Burstow): It worked back then.


**Jamie** (Jamie Taylor): Yeah, and it works now.


**Emma** (Emma Burstow): You're new this year.


**Jamie** (Jamie Taylor): I'm new this year, first time.


**Emma** (Emma Burstow): So you've got to make friends with him, people.


**Jamie** (Jamie Taylor): Please make friends with me. I hear I'm very nice.


**Emma** (Emma Burstow): He is very nice.


**Jamie** (Jamie Taylor): So what the heck are we doing?


**Emma** (Emma Burstow): Great question.


**Lotte** (Lotte Pitcher): I think we should first of all ask our audience to give us a big woo, because I like asking Umbraco people to do things. So, audience, will you give us a big woo? And an even bigger woo. Oh, fun.


**Emma** (Emma Burstow): Pushing it.


**Lotte** (Lotte Pitcher): Fun goes to my head.


**Jamie** (Jamie Taylor): She really knows how to work a crowd.


**Emma** (Emma Burstow): She does, yeah.


**Jamie** (Jamie Taylor): If I ever need a hype person, I'm going to Lotte.


**Emma** (Emma Burstow): Yeah, yeah, she's hype.


**Lotte** (Lotte Pitcher): I'm quite expensive, but yeah.


**Jamie** (Jamie Taylor): Worth every penny.


**Lotte** (Lotte Pitcher): Thank you, Jamie.


**Jamie** (Jamie Taylor): So what are we doing?


**Carole** (Carole Rennie Logan): We wanted to have a conversation. It's something we've been chatting about earlier, but we also want to include all of you. There are some mics, so don't wait for us to say, "hey, any questions?" Put your hand up if you've got something to say.


**Emma** (Emma Burstow): I think you're not on.


**Lotte** (Lotte Pitcher): I think you're not on. Ironically, as you are talking about microphones, Carole, I don't think your microphone was on. But this is the level that we aim for: natural.


**Jamie** (Jamie Taylor): Professionalism.


**Emma** (Emma Burstow): We won't edit this out.


**Carole** (Carole Rennie Logan): Oh, that's fine. You can carry on talking without me.


**Lotte** (Lotte Pitcher): I was going to do a really bad swear word just to make sure we did edit it out. But I stopped, because I've grown up.


**Emma** (Emma Burstow): That's how we always do it.


**Carole** (Carole Rennie Logan): You work here now, Lotte, you don't get to do that.


**Jamie** (Jamie Taylor): You're not allowed to swear.


**Lotte** (Lotte Pitcher): Very grown-up organisers. And the Scottish lady especially.


**Jamie** (Jamie Taylor): So, we were talking earlier on. There's lots of talk here at Codegarden about AI: Umbraco in AI, AI in Umbraco — which are two separate things — and lots of the different ways that we can collaborate with each other using AI, or help our friends who are editors of content with AI.

But I'm really interested in the way that the tech community has reacted to agentic development and AI: Claude Code, GitHub Copilot, all of that. Over the last couple — and this will probably show more about where I hang out online — but over the last couple of weeks and months on LinkedIn, Bluesky and Hacker News, I've seen a real divide. Almost 50-50. The problem is, only a Sith deals in absolutes, and I've just given you an absolute, so maybe I am evil. But it's almost a 50-50 split between "this is the worst thing ever, it only ever produces nonsense, and, we should never use it for anything in production" and "this is the greatest thing ever, it is the best thing, and we should all be using it for everything."

It goes as far as some really key open source projects that, whether we know it or not, we all rely on. They've either outright banned the use of AI — things like cURL, so that's C-U-R-L if you want to spell it out, and the Ladybird browser project. If you're not an active contributor already, they will not let you contribute, because they have no idea whether you used an LLM and whether your contributions are safe.

There's a thing called rsync. If you're a macOS or a Linux user and you've moved files over the internet or over a network, you've probably used rsync. And for the transcription bots, that's the letter R and the word sync, as in synchronise, because my accent's really weird and I really want to see what that's going to tell me.


**Emma** (Emma Burstow): Yeah, we're thinking we're not going to touch that one.


**Jamie** (Jamie Taylor): Over the last couple of weeks there have been contributions to rsync — we were talking about this earlier. My understanding is that the main contributor to it hadn't touched it for five years, and they needed Claude to remind themselves of how it all worked. They wanted to make some changes, and then the GitHub community reacted with, "please don't f this up, I rely on this for my production workflow, you've broken it because you've used Claude." Unfortunately, that contributor has had to step forward and say, "no, this is why I did what I did, this is how it all works, please don't threaten me anymore, otherwise I'll stop working on it."

So I'm interested in everyone's perspective — our colleagues up here, and everyone in the room. I'm interested in your thoughts about using LLMs and agentic coding for open source. Because as soon as you stop prompting, that code is yours, whether you wrote it or not. We're not really in the industry of manufacturing code, and we never were. We manufactured code to solve problems, right?

But with Umbraco being such an open platform — and I've been speaking for about five hours by this point, so I'm going to shut up in a minute — I can make a contribution using an agent to help me. That code is then mine, and I'm giving it to Umbraco saying, "I am representing the quality of this, because I've reviewed it, I've checked it, all of that." But then there's this nebulous thing where I give it to Umbraco, I give it to the community, and I don't ever really need to touch that code again. It's now someone else's problem.

So I guess there are multiple layers to this. How does the community side of Umbraco feel about people using agentic workflows to build features, fix bugs, do that sort of low-hanging fruit that was mentioned in the keynote this morning? And how do people outside of Umbraco in the community feel about, "can I use an agent to make a contribution and build a package?" What does that look like?


**Emma** (Emma Burstow): I'm really glad that you raised this, because we were speaking a little earlier about this and I thought, "we haven't had many of these conversations internally." And why? Is it because we're missing something? Is there something that we haven't seen?

I think ultimately it comes back to the notion of contributor trust. We're an ecosystem built on trust. We've always had really good processes in place around pull request review and tests — we've got better tests than ever, thanks to Uncle Claude, and so on. But we've always had this approach where we think people are going to contribute responsibly. And by and large they do. Very few bad actors take the time to try and contribute irresponsibly, and because there's no cash reward — there's not even a swag reward, really, there's bragging rights if you contribute to the Umbraco codebase — we don't see an awful lot of people contributing for the sake of it.

So people are very proud of their work. They work hard to make sure it's in a good state before it reaches us. Often it doesn't even reach us, because they're not sure it's in a good enough state. And so it's never really been a question of whether we should dictate how people write the code, because we know that once it reaches us they've probably handled it very, very responsibly. And if not, we should be in a position to be the judge, I guess.

I think there's been a stigma around it. I know experienced developers being like, "me and Claude made this." Soon we'll drop that, I think. We'll just be like, "I made this using a suite of tools, one of which is Claude or Cursor or something like that." But I think we're still very much at the stage of saying, "just so you know, I didn't take a tablet and a chisel and write the code myself, I had help."

But aside from the stigma, I think people are using it very, very responsibly. We've never had reason to do otherwise.


**Lotte** (Lotte Pitcher): It'd be quite hypocritical if we didn't accept pull requests that had used AI agents, because our product and engineering team use it very productively. So why would we exclude people from doing what we're doing every day?

I think Umbraco is lucky that we haven't been a target, as Emma was saying, of bad actors. I know that quite a lot of open source projects do have AI contribution guidelines making it very clear about their willingness to accept contributions from people who've used AI. The controversial one is when there's no person involved and it's just an AI agent that's been set running. Luckily that's usually in the Python world, and so we in the .NET world aren't such a target.

We don't have any AI contribution guidelines yet, because we haven't needed to — and I'm not sitting anywhere near any wood, but long may that be the case. Our contributions are generally what we appreciate, and I'm sure it will change one day.


**Emma** (Emma Burstow): Yeah.


**Lotte** (Lotte Pitcher): When we have to. But we'd much rather react than put people off, and see what the changes are in the contributions.


**Carole** (Carole Rennie Logan): But you have the guardrails, in that you raise pull requests, they get code reviewed. There are people that review that in the community and internally, and it only gets merged once it's been reviewed, validated, and then ultimately, hopefully, tested. So you still have those guardrails. It's not saying, "oh, we'll allow AI contributions and we're opening up the codebase to anyone to push to."

It's the same — I don't work at an open source company, but it's the same as our rules. We still treat it as that developer's code once they work on it with Claude or otherwise and they commit it. That's their code. They take responsibility for it, the same way.

Not to be too simple about it, but we always Googled, we always went somewhere, we went to the docs, we copied, we pasted, we altered it. It was never that we rewrote every single line of code. It's just the new way of getting there. And I think you're right, we're a bit more old school. I still say, "I've done this with Claude," just so you know. But we never went, "oh, I got it from the docs and changed it," or, "I Googled it." Sometimes we would say it, but...

So I think it will get to the point where we need to justify it a wee bit less, and it becomes the norm, but it's still your code, you're still committing it. We could never before get away with going, "oh yeah, it was just off a stranger on Stack Overflow." So we still shouldn't be able to get away with saying, "oh yeah, that wasn't me, that was Claude." As soon as you take on that code and you commit it, then you're responsible for it, whether that's a PR to an open source project or a client's project.


**Jamie** (Jamie Taylor): Yeah, totally. Do I need to say ReSharper? How many times have any of us written a multi-level foreach statement — maybe it's just me — a multi-level foreach statement and then gone, "hey, ReSharper, turn that into LINQ for me"? We don't have to say in the PR, "oh, I used ReSharper to make this LINQ statement." We can just say, "yeah, I wrote it out, I tested it, I've done my engineering practice, I'm happy with it, I'm happy that it's got my name rubber-stamped against it. I'll be the one in trouble if it's not what it's supposed to be," and then hand it over, right? We still have that.


**Emma** (Emma Burstow): It's still you explaining what it does. It's good that you mentioned ReSharper, because I was thinking about all the times that I'd be like, "refactor with ReSharper... now I can't read it and I don't understand it. So, undo." Because if you can't read it and understand it, you can't claim it's your code. And if you can't claim it's your code, why on earth would you push it to another codebase to then take responsibility for it?

So I think we should probably give devs — especially in the open source world, who are used to being, or who are interested in being, community contributors — a bit more credit. Because quite often we do feel a strong sense of ownership around what we've created, however it is we've created it, and we do want to be able to defend it. We do want to be able to explain it. So whether we've handwritten it or otherwise, I think it's likely that we're submitting stuff we know.


**Carole** (Carole Rennie Logan): Did you see, with Hacktoberfest last year, did you get more pull requests in general, or did you get more blatantly AI-produced ones?


**Emma** (Emma Burstow): Did we do [Hacktoberfest] last year?


**Lotte** (Lotte Pitcher): We weren't officially part of Hacktoberfest, because we like contributions all year, not just for Christmas/October. So I don't know that we noticed anything there, to be honest.

The thing I really like the idea of is people feeling way more empowered at being able to solve the issues that they raise themselves. Usually, especially if it was a front-end bug, I would raise it and then I'd go nowhere near even trying to fix it, because where would I go in the codebase? It would take me a long time, or need a lot of help, to find it. Whereas of course now AI is a really good empowerment tool. It will help you navigate the codebase that is not very familiar to you and help you find it.

Let's all remember the joy of fixing the bugs we find. That's why we all got into open source, probably, in the early days. So I hope that it means that more people will be able to work on the codebase without having to have invested the many, many hours that you're used to in the olden times — i.e. last year — in order to really navigate your way through. The Umbraco codebase is complicated.


**Emma** (Emma Burstow): Yeah. Actually, show of hands: who came to a hackathon before AI? Anyone here? Okay. Who spent an entire hackathon trying to get your development environment set up?


**Carole** (Carole Rennie Logan): I was literally just about to say that. Thank you.


**Emma** (Emma Burstow): Yeah. But there were also — sorry, there were a lot of hands up in the room — we're really experienced developers, right? And it could go that way at any hackathon.


**Carole** (Carole Rennie Logan): I was just going to say, Lotte, do you remember that first London hackathon that I came to and spent the whole time with your moral support trying to get set up? And then trying to — why did I pick a front-end bug to try and be my first one to add?


**Lotte** (Lotte Pitcher): We've come a long way since then.


**Carole** (Carole Rennie Logan): Yeah. So, all the hard work that you all have done means that you can get started quickly, but also you can then use AI to help point you in the right place based on what bug you find.


**Emma** (Emma Burstow): Oh, goodness me.


**Carole** (Carole Rennie Logan): Hackathons must be so productive now.


**Emma** (Emma Burstow): We'd tell people that they'd done a good day's work at the end. They'd be like, "but all I got was [my environment] ready," and we'd say, "and that's a win!" Now, use this for a few months, come back in three, and we'll apologise again. But even still. Not anymore.


**Lotte** (Lotte Pitcher): I have heard, though, from a community member who writes quite a lot of packages, some very well maintained packages, and he's thinking at the moment that he probably would rather he fixes the issues himself. Raise good issues, and then him and his AI will be more efficient in fixing it in the way that they would like it fixed, than someone else doing it for you.

Because dealing with people's pull requests can be a real — I'm going to say time investment, not time sink. But it's a real investment in that human, in terms of working through it with them and helping them, because you don't want to put them off. They're trying, they're giving their time for free. And if you are a package maintainer and you've just got a couple of hours on a Saturday evening perhaps to make progress, then actually the return on investment of dealing with a pull request that's perhaps not done in the way that you want... But hopefully that person will explain that in their README and their contribution guidelines so that everyone's expectations are met.


**Emma** (Emma Burstow): Yeah, there's a real danger in not wanting to work with people anymore. Which means we're out of a job any minute if that carries on. Machines are easier to prompt than people.

I think that's the thing that people forget about open source. We're all behind computers and we're contributing usually in an asynchronous manner. So if you've got a contributor on the other side of the world, it doesn't matter if you've all got the best of intentions, there's going to be a massive delay. So yeah, you would sit there and just think, "well, I've got a couple of hours, I can fix this with my tool."


**Carole** (Carole Rennie Logan): Yeah, absolutely. What I found really interesting was the keynote, when you mentioned that there's a lot more output from the hackathons and otherwise of people building tools — for AI, with AI — a lot more marketplace packages and everything, utilising AI. One, because people are excited about it and need the things, but I do think AI has definitely enabled more of that to happen.


**Emma** (Emma Burstow): Massively. Because when you're trying to build something in the Umbraco codebase — I remember going in and being like, "okay, so I'm a back-end developer, so I know back-end. Does this touch front-end stuff? Does it touch...?" There are all these other places where I could fix it if I could invest the time and the learning. And then I would quickly forget the things, because they're not really useful skills for me in my day job. Now all of those moments, all of those cracks, you can just paste over and get on with the thing you want to do. It's a lot more satisfying.


**Carole** (Carole Rennie Logan): Beyond Umbraco land — because we're slightly nearer to Umbraco — what are you seeing in .NET land and beyond?


**Jamie** (Jamie Taylor): What I'm seeing in the .NET repo specifically is that they're all in. When I went — okay, I'm just checking with my brain to see whether this is NDA — when I was at MVP Summit over in Seattle.


**Lotte** (Lotte Pitcher): The Microsoft one, not the Umbraco one, just to be clear.


**Jamie** (Jamie Taylor): The Microsoft MVP Summit, not the Umbraco MVP Summit. I was talking to some of the .NET engineers there and they said, "yeah, I'll sit and I'll talk to my LLM, my agent, for several hours, get it to understand the thing that I want to fix, the thing that I want to implement, and then I'll get it to write it down, clear context, and tell it to do it."

I don't know whether the folks who are using the tools and then saying you shouldn't be using AI realise that the tools they're using are built with AI, right? There's a level of irony there about, "don't build this higher-level thing, don't build that with AI, but I'm perfectly happy with the lower-level thing that I interact with being built with AI." There's a weird dichotomy there, I guess.

But I'm all about using agentic tooling to help me with whatever I'm doing, for the same reasons that you've all just said. If I've only got two hours to solve a bug or implement a feature, well, I'll talk with an agent for two hours and then I will tell it to build the code and I'll walk away. I don't just commit the code, as we've all said. I give it a review myself — and, okay, I need to do my best BBC bit here, there are other agents of course — but if you use Claude you can do forward slash code review, and it will review its own code by spinning up several different agents and poking around in the code, and it finds stuff that I'm happy to say I wouldn't have spotted. Then I'll give it a review afterwards. I feel like that's good enough. Then I hand it off to the maintainers and say, "hey, I've created this thing, I'm totally happy to stick around and make more changes if needed, just let me know."

Specifically in the .NET space, I feel like it's become "everybody can use it". But looking into what you were saying, Lotte, it feels like perhaps in the Hacktoberfest times there's more Python — I hate to use the phrase — drive-by PRs, where somebody's gone, "hey, I want to be internet famous and I want my t-shirt. Go create five low-value..." — we probably shouldn't say low-value — "go create five different pull requests and just do it, because I've got the GitHub CLI installed. Just do it, it's fine. Then I'll walk away and I get my t-shirt." Because the PRs never used to have to be closed, but now they have to be closed.


**Emma** (Emma Burstow): Yeah.


**Jamie** (Jamie Taylor): So I'm seeing it in other languages and other frameworks, but in the .NET space it seems like everybody's just like, "it's a tool, we can use it if we want."

Maybe the other language and framework ecosystems should just go, "it's a tool, and if folks want to use it, great." But I also fully understand that it is a time investment when someone raises a PR and then disappears. What do you do then? Do you have someone — Seb is in the room — do we have Seb take over on a PR, because this person has raised the PR and run away?


**Emma** (Emma Burstow): For us, it will just sit there forever until we close it, because it's not done, I guess. And then things move on and things change, and then it's even harder to do anything about.

But I think, by and large, our contributors to Umbraco, the reason they contribute is because they want to make the product better, they want to build something with purpose, they want to solve their own problems. We've been very bad at incentivising pull requests, I think. We don't do much for people that contribute. We give them a home, we give them a community, and we ask them to be curious and to explore and to collaborate, and that is the reward. You might get a t-shirt.


**Carole** (Carole Rennie Logan): You hosted an MVP Summit this week for the people that are prolific contributors.


**Emma** (Emma Burstow): We do, but one of the things that I ask people at that summit is, how many of us are here because we contribute code? Almost everyone had, but they were there for a different reason. So I think if we got to a point where we had the money to throw t-shirts at people, we should think twice, because we want people who are contributing because they want to be a part of something. And when you want to be a part of something, you're tenacious and you're fastidious. You come back to your code and you look at it, you answer when somebody says, "why did you do...?"

I think that's a thing, but maybe we've been not so vulnerable to the drive-by pull request submitters because we just don't give out enough swag.


**Jamie** (Jamie Taylor): Maybe that's it. Maybe because Hacktoberfest becomes a thing every year, and there are certain rules — you have to submit some PRs and you have to hit this milestone, they all have to be [valid], and then you get a free thing. Go to the website, put your thing in, and then we'll give you a free thing.

Maybe that's it. Because I do remember, five or six years ago, definitely BC — before COVID — I do remember people reaching out to me on LinkedIn and, at the time, Twitter — I won't call it by its new name, because it's not the same product — asking me, "how do I get a free t-shirt?" And I'm like, "if all you want's a t-shirt, go to the store and buy one."


**Emma** (Emma Burstow): Yeah, because your time is worth more.


**Carole** (Carole Rennie Logan): So, we've got the audience and we've got mics, so please put your hand up and someone can run around and give you a mic. But how has AI changed how people contribute? A lot of people here, I know for a fact, contribute — not just code, but... We were chatting earlier, actually: I personally feel like the blog ecosystem's changed a wee bit. Are people still blogging quite the same? I'm not sure. I know I'm not. Has anyone got any thoughts on how folks are contributing, whether it's talks, code, other ways?


**Emma** (Emma Burstow): Actually, I've got a suggestion of someone to speak to. Andy — sorry, Justin — created his first package. Could you just say a couple of words about that? How did that help you?

Justin
Yeah, so I used AI to create the package. I wasn't that great on the new back office, so it helped me create something that was working, that did what I wanted it to do. I fed the instructions into AI, used Claude Code to do that. It had some issues, obviously, bouncing backwards and forwards a few times to resolve those. It would have taken me a lot longer to do it myself than to get AI to do it for me. It's a tool, and I use AI as a tool. I don't think I would have been able to do that without AI. I would have struggled. Probably it would have gone so far and then... or not even have started. It would have just been an idea that never went anywhere.

I also use AI when I'm writing my blog posts. I use AI to generate the blog post — I obviously feed it the information. I'm a bit of a perfectionist, so if I was writing it by hand, I would never get it done, because I'd keep reviewing it and going back over it, over and over.

I'm also using AI to help out on the forum. I'm not just copying and pasting AI responses into the forum, but I'm using it to validate things, I'm using it to research issues, and then going back to the forums and helping people. So I'm using it in lots of different ways. But I'm still trying to do traditional coding as well. I don't want to lose that ability.


**Lotte** (Lotte Pitcher): I do wonder, as the end of subsidised tokens is in our future, whether we're going to start acknowledging the amount of tokens that people have spent as a contribution, rather than just, "minutes, or an hour" — "this many tokens spent."


**Emma** (Emma Burstow): Thank you Justin. Sorry for picking on you. Another hand up over there, and a new MVP. Oh, we can't hear you.

Seb
Is this on? Yes, it's on. Hi. Sebastian.

Similar to Justin — basically, I just want to brag. I finally contributed something to Umbraco, for the first time in months, maybe a year, that got accepted. It was a pull request to finally remove the wording "master" from templates and call them layouts, which is what they should have been called for the past nine years, maybe.

This took me so long because I didn't want to dig into, "did I get all the masters, and did I get all the correct masters?" Because there also used to be master servers and blah, blah, blah. It was just so easy to get Claude to help me do all the things. Then I told it to do it as minimally as possible: I don't want anything breaking. We had to break something, but okay, fine. I was really closely guarding what I was doing, and actually reviewing along the way, and I threw it away twice and said, "nope, it's not good enough, let's start over." But I finally got it done, and all of the things got replaced where they needed to be replaced. I still wouldn't have finished it if it wasn't for a bit of AI helping me make sure that I caught everything that I needed to catch.

Now, I don't think Sophie's in the room, but Sophie wasn't very happy, because all of the documentation needed to be changed. That's fine. But all of the screenshots in the documentation also needed to be changed. And guess what? Running an AI with Playwright is actually quite easy. It's got the new rounded corners in the Umbraco 18 back office as well. Very happy with it.


**Emma** (Emma Burstow): Amazing. Thank you, Seb.


**Jamie** (Jamie Taylor): I think all of that raised — please correct me if I'm wrong, I love to do this: what did I hear? Because I may not have been paying attention? What I heard is that it's helping to democratise ideation, to democratise getting rid of toil, which I feel like is the whole point of both agentic workflows, AI, and automation.

It's, "this is a thing that would have taken me hours to research and to perform" — in both aspects, creating a package and replacing all of these strings across an entire codebase. That would have taken hours to make sure that I did it properly, but I have an agent that can [do it], and this is why we call them agents: they work on our behalf, like a travel agent, right? So maybe that's what I'm hearing: it democratises everything, makes it a little easier to work with.


**Carole** (Carole Rennie Logan): And when it's in our free time, contributing to open source — maybe slightly different for yourself, Seb, because you do it for your job, but fine, time is money.


**Emma** (Emma Burstow): I'm sure that was at a weekend, that's not his job.


**Carole** (Carole Rennie Logan): But when it's in your own time, that's the most precious thing, right? So if it can mean that you can still contribute, still fix the thing you want to fix for the product you use, still get the little adrenaline rush of contributing, but you've saved time, or you've asked it to go and do a thing and then you've gone and made dinner or looked after your kid or whatever and come back and it's done, or partially done — that's even more powerful for open source, because it's in our free time.


**Emma** (Emma Burstow): I think some of these tasks are not making us smarter. Going through and finding all the strings, that's not making him any smarter. It's not making him any better at his job. It needs to be done, but we're not really learning from it.

On the flip side, some of these things are making us smarter, because now Justin has a living, breathing package to maintain and build, and to understand how it got from here to here to here. So we've got these great opportunities for learning, and great opportunities for just removing friction and doing the crap work we don't want to be doing. I think if we use it responsibly, it's so exciting. I wish I was a junior developer now.


**Carole** (Carole Rennie Logan): what would Little Emma say?


**Emma** (Emma Burstow): Little Emma would love this.


**Jamie** (Jamie Taylor): So you see, whereas I don't... If I can just jump in, because we've got another question in the room: I am really worried for junior developers.


**Carole** (Carole Rennie Logan): Yes.


**Jamie** (Jamie Taylor): I've discussed this with several people in the room already. I do work with colleges in my area to try and help boost what they can teach. I'll go in with bits of hardware, or go in with access to models, LLMs, agentic, whatever, because the colleges can't, because of budgetary reasons — or because to run one, you need a powerful graphics card, and if you give a seventeen-year-old a powerful graphics card, they're not going to do any work, they're going to play games. So I'm trying my best to introduce them to these tools.

But there's also no experience. We all have the experience. All of us in the room have the experience to be able to go, "actually, what you've produced there is not great, let me guide you and help you to produce better code for this particular situation." Or, "I know, for instance, that this particular thing is not going to work in this instance, because we've tried it before."

Whereas a junior — maybe they are vibe coding, maybe they're just following whatever practices. They don't have that experience. And they can't get that experience, because they're being given the tools and told, "you will use agentic coding to build the thing." I would hate to be in that position: I can't learn and I don't have the knowledge. What am I going to do? So I think we're on opposite ends of the spectrum there.


**Emma** (Emma Burstow): It totally depends who you work with and where you work. Inside of a community like this one you're probably pretty safe, because you've got people around providing the social guardrails: "that's great that you built that. How did you build it?" Let's ask the question.

When I think about when I entered the industry, people were worried about everyone being a copy-and-paste developer, living off Stack Overflow. That stuff never really worked in the wild. But this stuff does. So I was always beaten back and forced to go and learn, because stuff didn't work that I would copy and paste, and then I had to know why. Whereas with agentic coding you don't necessarily have that nudge. So I see where you're coming from.

But I'm also really hopeful, because I think very few people get into writing code for the money, or just because "I need a job." Quite often we're problem solvers and we really want to learn how to solve a problem. So the right people, the right juniors — and there's always been all kinds of juniors; I've been a junior, there's always been all kinds of juniors — will be asking the right questions, but they'll be empowered to ask in the way they want.

I'm neurodiverse, so if you hand me documentation, nope. And don't give me a video. I still have not watched a safety briefing video for Codegarden.


**Lotte** (Lotte Pitcher): It's a bit late.


**Emma** (Emma Burstow): Because that's not how I'm going to be able to work. But I access information in a way that suits me. Now I've got a large language model in front of it and I can query it when I want to and how I want to. I can put it in the language I want. The Reddit thread I loved for tech was Explain Like I'm Five. I lived on that, because I needed to enter it that way, and then I could watch the video. So I can see both sides. But Jamie, I'm not out there with the young people and you are. So maybe I'm living in... yeah.


**Carole** (Carole Rennie Logan): The bit I worry about is when they have to troubleshoot on production. There are those things where a junior asks you and you come straight away and you're like, "oh, have you tried that?" And they're like, "how did you know?" And you're like, "because I have the battle scars, I've done it."

But if you've not been through sitting and banging your head against the desk trying to fix something for two days, because AI just does it for you... I worry about not having those battle scars. Or maybe they're not needed. Maybe agentic has got them now, and we don't... I don't know, maybe I'm being protective of my own experience of how I got to where I am. But it'd be interesting to hear what other folks think. But Mike had a question.

Mike
Is it on? There we go. Ah, now it's on.

Interesting, around the experience of learning with AI. Very recently I was picking up a project and saw a bit of code in there — I feel like I'm a fairly decent developer, I can understand most code — and I kind of got it, but it was very weird. It was not something I'd seen in C# very commonly. So I put it into AI and I was like, "is this... am I just not good anymore? Has something changed?" And it came back saying, "oh, this is an F# pattern." Someone had written this who was obviously a functional programmer and done it in C#, and it still worked.

It was fascinating, because it opened up a different level of curiosity and learning. I learned something new, unexpectedly. Previously I probably would have looked at that and gone, "I get it, I don't know if it needs to change or not. I might rewrite it so it's more readable." But I went, "no, this is actually fine." I understand it now far quicker than I would have before.

On the back of that idea of how it's going to affect education: the way that we're all having to change the way that we work, there's also a case of having to change the way that we learn. It could be a real curiosity enhancer, to go, "okay, we've just found out something new that we didn't expect, a solution to a problem, and we can now ask it what it's done." I don't know if that step is happening as much, because we see it, we test it, it works. As experienced developers we might go, "that's fine, we can understand it." But someone who is junior should be encouraged to go, "okay, it built something and it seems to be working. Can you get it to help you understand?" And also, "right, the AI's given you an answer, but you're allowed to scrutinise that answer and go off and do your own research and validate whether it's correct" — because it isn't, but it'll think it is.


**Jamie** (Jamie Taylor): Trust and verify, yeah.

I need to be very cautious with the words I'm about to say, and I also know we're running out of time. I think everyone in this room, everyone watching live, everybody listening back to the podcast audio, we're slightly different to the majority of the people in our industry, for the same reason you just pointed out: "I found this code, I don't know what it does, I'm curious, I'm going to go and learn." I posit 75% of the people in our industry would go, "that's weird," and scroll.


**Emma** (Emma Burstow): Yeah.


**Jamie** (Jamie Taylor): Right? Because they are nine-to-five developers. There is room in our industry for the nine-to-five developer, and I've always said this. I genuinely believe there is room for someone who switches off at five o'clock, goes home, doesn't learn anything new, is happy with what they're doing. But not anymore.

It's my personal opinion — it's not the opinion of anyone else in this room, anyone in this recording. My personal opinion is that the age of the nine-to-five developer, the person who's not curious, the opposite of what you're talking about, the person who's just going to go, "yeah, cool, whatever," and scroll, or "yep, accept, accept, accept" — that person is going to be slowly pushed out of the industry, I think. Because we're going to be asked, as we've all said, "yeah, you wrote it like that, but why?" "Oh, well, because the AI did it." "I'm sorry, there's the door."


**Emma** (Emma Burstow): Yeah.


**Jamie** (Jamie Taylor): It's not going to be like that immediately, but I think over the next maybe five years it's going to be: if you can't explain to me why you contributed... It manufactured — that's why I'm saying "manufacturing the code" — the actual typing, or the speaking into it, that's not what we get paid to do. We get paid to solve problems. If you can't explain the solution to the problem, then you're cooked. And if you're not happy looking at something and going, "I don't understand that"... I think, for me, the most important thing about an engineer — software engineer, physical engineer, whatever, because I come from a long line of engineers — the most important thing is curiosity. Being able to go, "well, that's weird, why did that happen? That's weird, I've never seen that before. What does that mean?"


**Emma** (Emma Burstow): Yep.


**Jamie** (Jamie Taylor): I think that agentic tooling, AI, LLMs, whatever we're going to call it, helps that kind of person, exactly in your instance there of, "this is weird code, I've never seen this pattern before, my brain doesn't work when I look at this. Hey AI, help me out with this."

But genuinely, how many people have you ever interacted with in the industry — not just Umbraco people, not just people listening to the podcast, not just people who come to conferences, because we're a special breed. We're interested in what's happening, right? By being in this room, by listening to this recording, you're interested in what's happening now. Well, depending on when we get this out, a few weeks ago.


**Emma** (Emma Burstow): You're right about that, yeah.


**Jamie** (Jamie Taylor): But most of the people I interact with outside, in the real world in the industry, aren't interested. "I've learned what I need to learn. I'm going to continue to use that. And then if something comes along that I don't understand, I'm just going to throw my hands up and say, I don't understand that," or walk away.

I feel like it's great for boosting that curiosity if you have the curiosity in you. And this is tarring a lot of people with the same brush, but sixteen-, seventeen-, eighteen-, nineteen-year-olds, most of them when they're in education: "I just want to pass the course, I want to pass the exam, I'll do maybe the minimum amount of effort and a little bit more just so I can get my passing grade, and then I can go off, because I've been told if I pass this I get a really good job." That's my goal over there: get a really good job. Not to pass this exam.

So when the curiosity hits, the other people in the room who've got that curiosity will probably go, "oh, this is awesome." I've actually seen it when I've given talks at colleges. I'll have four people come up to me afterwards and be like, "that was awesome, can I learn about this? Can I learn about that?" And I'll have a twenty-five-minute conversation with a student about, "oh, and then..." and then I move on to talking about Wi-Fi Pineapples and talking about Bluetooth and talking about all of this kind of stuff, because they're super curious. But the rest of the room, they've already left.


**Emma** (Emma Burstow): Yeah, but they've got other stuff to do. The problem is education. The education system: this is where this could all start. By the time they get to that age, they have lost so much curiosity, because we have schooled it out of them. We have taught them how not to read whole books, how not to investigate, to stay on task or you will not pass your exams. So, obviously, we destroy the school system, capitalism ends, and so on and so on, and then people can be curious as much as they like.

But you're right, because people need to earn a buck. So why would they be working after work? It's already a punishing and demoralising thing to have to do a nine till five. I did it for years. And school disincentivises curiosity. So we are up against all of that.

We are in a bubble. We're in a really nice bubble. And it's nice that we started with gratitude and we can end with that too, because you reminded us that the people in this room and the people that are listening are the ones that care.


**Lotte** (Lotte Pitcher): Can I share something else I'm grateful for? We forgot — sorry, Laura — to mention that you weren't with us. Laura, the fourth Candid Contributions person. Everyone has been appreciating the beautiful digital signage that is around the event, because Laura built that. Then we discovered the resolution of the screens yesterday, so Laura fixed it very quickly, with some very fast deployment. So Laura, thank you for making Codegarden look beautiful, and we're sorry you're not with us. And Jamie was your replacement — we hope you approve.


**Emma** (Emma Burstow): Solid replacement, though. If I was Laura, I'd be happy with a Jamie. We didn't tell you that you were a Laura replacement. Sorry.


**Jamie** (Jamie Taylor): The substitute teacher. Do I need the leather patches on my elbows?


**Emma** (Emma Burstow): But we'll be kind to you anyway.


**Jamie** (Jamie Taylor): Well, let's give a round of applause for...


**Lotte** (Lotte Pitcher): For Laura, for fixing it. Ooh, are we at the clapping stage, my favourite stage, where we clap each other?


**Emma** (Emma Burstow): Jamie, you've been a blooming fantastic addition to the podcast.


**Lotte** (Lotte Pitcher): Blooming addition... blooming Laura? No. Yes, sorry, continue.


**Emma** (Emma Burstow): Blooming wonderful addition to the podcast.


**Carole** (Carole Rennie Logan): It was lovely to hear your thoughts. It was. And thank you, everyone, for giving up... I know the five o'clock slot is rough, man. So thank you, everyone, for coming along and sitting in this warm room. You could definitely be at the bar. So thank you so much, everyone, for coming. If there's anything you wanted to continue the chat about, just come up and grab any of us after dinner.


**Jamie** (Jamie Taylor): Yeah, absolutely. And if you're listening in on the recording: come to Codegarden. I'm not just saying that because they brought me here, but it is the conversations I've had with people just walking around. It's amazing. And then there's the talks and everything.


**Emma** (Emma Burstow): Still a day to go.


**Jamie** (Jamie Taylor): We're already on the end of day one.


**Lotte** (Lotte Pitcher): I'm exhausted. Yeah, we are the friendly CMS, and it's not a lie, we are a friendly bunch. So thank you, everyone. Give yourselves a round of applause for being excellent with us.


## Wrapping Up

Thank you for listening to this episode of The Modern .NET Show with me, Jamie Taylor. I'd like to thank everyone involved with this producing this episode for graciously sharing their time, expertise, and knowledge.

Be sure to check out the show notes for a bunch of links to some of the stuff that we covered, and full transcription of this episode. The show notes, as always, can be found at [the podcast&apos;s website](https://dotnetcore.show/), and there will be a link directly to them in your podcatcher.

And don't forget to spread the word, leave a rating or review on your podcatcher of choice&mdash;head over to [dotnetcore.show/review](https://dotnetcore.show/review) for ways to do that&mdash;reach out via our [contact page](https://dotnetcore.show/contact), or join our discord server at [dotnetcore.show/discord](https://dotnetcore.show/discord)&mdash;all of which are linked in the show notes.

But above all, I hope you have a fantastic rest of your day, and I hope that I'll see you again, next time for more .NET goodness.

I will see you again real soon. See you later folks.

## Useful Links

- Codegarden and Candid Contributions
  - [Codegarden programme](https://codegarden.umbraco.com/program/)
  - [Candid Contributions](https://candidcontributions.com/)
- Umbraco
  - [Umbraco homepage](https://umbraco.com)
  - [Umbraco Community](https://community.umbraco.com)
  - [Getting involved with the Umbraco community](https://community.umbraco.com/get-involved/)
  - [Umbraco on LinkedIn](https://www.linkedin.com/company/umbraco)
  - [Emma on LinkedIn](https://linkedin.com/in/emma-burstow)
- Companion episode
  - [S08E01 - Umbraco Unplugged: Emma Burstow &amp; Mats Persson on Umbraco Being The Friendly, Truly Open-Source, CMS](https://dotnetcore.show/season-8/umbraco-unplugged-emma-burstow-mats-persson-on-umbraco-the-friendly-cms/)
- Open source projects discussed
  - [curl](https://curl.se/)
  - [The Ladybird browser project](https://ladybird.org/)
  - [rsync on GitHub](https://github.com/RsyncProject/rsync)
  - [Hacktoberfest](https://hacktoberfest.com/)
- Tools mentioned
  - [Claude Code](https://claude.com/product/claude-code)
  - [GitHub Copilot](https://github.com/features/copilot)
  - [Cursor](https://cursor.com/)
  - [JetBrains ReSharper](https://www.jetbrains.com/resharper/)
  - [Playwright](https://playwright.dev/)
  - [GitHub CLI](https://cli.github.com/)
- Also mentioned
  - [Microsoft MVP Program](https://mvp.microsoft.com/)
  - [Stack Overflow](https://stackoverflow.com/)
  - [Explain Like I&apos;m Five on Reddit](https://www.reddit.com/r/explainlikeimfive/)
  - [Hacker News](https://news.ycombinator.com/)
  - [Bluesky](https://bsky.app/)
- Supporting the show:
  - [Leave a rating or review](https://dotnetcore.show/review/)
  - [Buy the show a coffee](https://www.buymeacoffee.com/dotnetcoreshow)
  - [Become a patron](https://www.patreon.com/bePatron?u=13876270)
- Getting in touch:
  - [via the contact page](https://dotnetcore.show/contact)
  - [joining the Discord](https://dotnetcore.show/discord)
- Podcast editing services provided by [Matthew Bliss](https://mbpod.com/)
- Music created by [Mono Memory Music](https://monomemory.bandcamp.com/), licensed to RJJ Software for use in The Modern .NET Show
- Editing and post-production services for this episode were provided by [MB Podcast Services](https://www.mbpod.com/?utm_source=mdns&utm_medium=podcast&utm_campaign=MDNS-s09e02)

