The Modern .NET Show

S07E08 - Open-Source and Our Digital Legacies with Scott Harden

Sponsors

Support for this episode of The Modern .NET Show comes from the following sponsors. Please take a moment to learn more about their products and services:

Please also see the full sponsor message(s) in the episode transcription for more details of their products and services, and offers exclusive to listeners of The Modern .NET Show.

Thank you to the sponsors for supporting the show.

Embedded Player

S07E08 - Open-Source and Our Digital Legacies with Scott Harden
The Modern .NET Show

S07E08 - Open-Source and Our Digital Legacies with Scott Harden

Supporting The Show

If this episode was interesting or useful to you, please consider supporting the show with one of the above options.

Episode Summary

Scott Harden, a neuroscientist with a diverse career path that includes both dentistry and programming, shares an inspirational journey on the podcast. Scott’s academic background includes neuroscience and dentistry, and in particular at the intersection of biology and computer science, known as bioinformatics. He emphasizes the excitement of using software to analyze complex biological data, fostering a sense of novel discovery.

Despite his success in dental school, Scott felt unfulfilled, yearning for the computational challenges he loved in programming. This led him to a profound realization about career crafting: the idea that individuals can mold their current job to align better with their passions. This prompted Scott to embark on a dual journey—studying for his PhD in neuroscience while simultaneously completing dental school. He successfully graduated from both programs on the same day, highlighting the complexities of balancing such demanding fields. Ultimately, Scott chose to embrace a full-time career in the biotech space, stepping away from dentistry to commit fully to technology and programming.

Scott offers up his advice for the many different ways to monetise open-source projects; from paid support to offering priority features and from GitHub sponsors to including ads in the project’s documentation. The entire conversation was framed in both the .NET and WordPress spheres—the WordPress drama having recently started at the time of recording the episode. Eventually, Scott advocates for checking in with yourself about what you want to achieve with your open-source projects and even offering projects as source available rather than fully open-source.

Scott also invites listeners to think about their digital legacies during a conversation about Abel Wang, Pieter Hintjens, Jeremy Likness and (previous guest of the show) Jon Smith. Scott frames his discussion around the experiences he had when he received a diagnosis of a very rate type of cancer earlier in his career. He advocates for having a document which lists things like you WiFi password, bank account details, and such. Even if you never receive bad news, it’s a good thing to have available.

Scott concludes by teasing some of the content in the third, and final, part in our conversation by hinting at a pull-request that he had submitted to one of Jamie’s open-source NuGet packages. The PR included some of the modern NuGet features that .NET developers should know about. But that’s in the next episode.

Episode Transcription

I don’t want to go into the details right now, but for the listeners, I will say that we are right in the middle of an explosive situation right now with some WordPress drama. WordPress and WP Engine are experiencing a lot of the fallout, kind of related to what we talked about in the last episode, where you start out with some good intentions and then you get in a situation where both sides kind of feel burned. And I’m not going to say that there’s a perfect solution out there, But I do think that this frequent check-ins and asking, you know, "is this good for me and what needs to change for this to be good for my life?" is important.

- Scott Harden

Welcome friends 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. We are the go-to podcast for .NET developers worldwide, and I am not your host: Jamie. I’m Delilah and I will be recording the intro for this episode because Jamie is suffering with a throat infection.

In this episode, Scott Harden joined us to talk more about open-source, software licensing, and a little on some of the most recent NuGet package updates that .NET developers should know about.

It’s important to note, Scott and Jamie talked about the WordPress controversy which was still unfolding as we recorded (which on October 19th, 2024). They brought it up not to make fun of WordPress or to add fuel to the flames, but to talk about the fact that it highlighted Scott’s point about checking in with yourself regularly, as an open-source developer, about whether you’re getting what you want from your public repos.

Whilst talking about open-source development and licensing, Scott brought up a question on our collective and individual digital legacies.

And this is kind of a startling topic to bring up, but what if you just disappeared tomorrow? Because people just leave because they have some medical situation or some life situation, or they die. And this happens. This happens in software. We’ll talk about some specific examples in a minute. But, you know, if you disappear tomorrow, it’s interesting to think about kind of what your digital legacy would be. And, you know, you could have left this thing behind in a way that it could have been used by everyone or anyone.

- Scott Harden

As a form of trigger warning, at around the 58 minute mark Scott talks about how his own journey with cancer brought the idea of his digital legacy to the forefront for him. Both Scott and Jamie also talk about the late Abel Wang and Pieter Hintjens. And they talk about other examples of developers who are very public with their health struggles: Jeremy Likness and (previous guest of the show) Jon Smith, who suffer with Alzheimer’s disease and dementia respectively.

We understand completely if you want to skip this entire section. But we also feel that there are very important points raised whilst talking about these, less cheery, matters. This conversation makes up the bulk for the final 10-15 minutes of the episode. Aside from a teaser for the next part (which is all about NuGet packages), you won’t miss anything .NET specific if you choose to skip this part.

Anyway, without further ado, let’s sit back, open up a terminal, type in dotnet new podcast and we’ll dive into the core of Modern .NET.

My voice was created using Generative AI.

Delilah : [0:00] Before we start, could you introduce yourself Scott?

Scott : [0:48] Sure. Yeah, my name is Scott Harden, and I currently work as a neuroscientist. And if you look at my resume, it is really confusing, because there’s a lot of stuff in there. I’ll walk through it in a minute. But the core thread is that for a really long time, I’ve written software that just solves problems, gets stuff done, and I’ve shared it on the internet. So I’m a little bit older. I’m in my 30s. And I have kept a website and a blog ever since I was really young, like a teenager. And back then, I was really interested in programming

Scott : [1:20] Back then, it was doing stuff that teenagers do, making chatbots and stuff like that. But as I started to enter the workforce and study kind of complex topics, I started to use programming as a way to solve problems and innovate. And I got really captivated by the biotech space. So I went to graduate school studying molecular biology and microbiology, which is like DNA and genetic engineering and that type of thing. In the early 2000s, that was like really, really special. Bioinformatics was really taking off. And it’s kind of the intersection of biology and computer science where some problems and some data sets are just so complicated, you have to write software to analyze it. And that core idea just inspired me so much. The idea that if you can figure out a way to use software to measure something that’s never been measured before, all of a sudden, everything you look at becomes a novel discovery. It was just really, really cool. So I studied molecular biology. And at that time, GitHub wasn’t, I guess, wasn’t a thing in the early 2000s.

Scott : [2:21] Blogs is really where it was at for people sharing code and inspiring others with the code they write. So people would solve challenging problems, and they would write about their solutions on their blog or on a website. And people would read websites, get inspired, make their own code, and share it a similar way. So I kind of cut my teeth in open-source back then, just sharing code online and being interested in what other people are doing. Thank you.

Scott : [2:43] And then I got a little bit distracted career-wise. I ended up going to dental school for a combination of like complicated reasons. And dental school was interesting. It was really cool. Like I am a dentist now. I’m technically a dentist . But when I was in dental school, about halfway through, I realized like, this is cool. I get to do, you know, work with patients, do dentistry, very technical in some senses. But I really was missing that computer programming aspect that I just, I loved so much from my childhood and even in molecular biology, bioinformatics.

Scott : [3:15] And so I started thinking, well, what’s my future going to be? This dental thing is cool, but I miss the programming so much. And I tried to figure out how I could strategize my way into a career that was a little bit better fit and let me use some of those technical interests. So I learned a phrase a few weeks ago called career crafting or job crafting. And now in hindsight, I realize like, oh, that’s such a great word. It’s like you have this job you want to do, but you have the job you have now. And it’s like, how do I transform where I am now so that I can do the thing I want to do with the environment I’m in now? And for some people, that looks like maybe they’re in QA and maybe they’re writing some code to solve some problems or whatever.

Scott : [3:55] But for me, that ended up being… A complicated journey that ended up in me getting a PhD in another subject while in dental school. So I was studying dentistry, but I also studied to get a PhD in neuroscience. And the reason I was interested in neuroscience is because at that time I was really into electrical engineering and computer programming, kind of at the intersection of hardware and software, signal analysis, especially I was really into like radio frequency engineering. And there was this program that would let me get a PhD, and even as a dental student and the intent was, well, you’ll get a PhD in oral biology or something that kind of makes sense for a dentist but I kind of read the fine print and I realized I can get a PhD in anything as long as it’s in the College of Medicine and then I learned about this field called cellular neurophysiology which is an entire branch of science dedicated to studying electrical signals from neurons, and involved with that is a lot of complex hardware, tech, gear. You write a lot of software to do signal analysis. It ended up being this really cool way for me to kind of exercise my passion for computer programming and the technical side of science, but still be in kind of like this biology environment.

Scott : [5:14] So long story short, I ended up getting both those degrees. I graduated dental school the same day I got my PhD in neuroscience. It was a crazy journey. I don’t know if I would do that again. But there’s this day too where I decided like, hey, I could be a dentist or I could work with technology in this biotech space. I could try doing 50-50, but that means I’d always be sacrificing one to do the other. What do I really want to do? And I just leaned in to the biotech 100%. I remember there’s this day, the very last day I practised dentistry, there’s this girl. She was super nice. I did a root canal and she left and she didn’t know, but she was my last patient. And I knew at that time, like, okay, from now on, I’m going all in on this tech stuff.

Scott : [5:55] So maybe that was six or eight years ago. And I’ve been working kind of in that. That space ever since. And at work, I use tech to solve cool problems that touch programming, but it doesn’t necessarily satisfy all the technical interests, especially software architecture, just software development in general. So I get a lot of that out in my free time as an open-source contributor and open-source maintainer.

Jamie : [6:21] So now that everybody knows a little bit more about you, we don’t have to do that bit, right? Because they’ll have heard it last time. So, you know, that’s pretty cool.

Jamie : [6:29] So we’re going to talk a little bit about, we’re going to change direction ever so slightly throughout this one and talk about a few different things. But I was wondering, I know you were interested in giving like a really quick recap. So I wonder if you could start us off with that.

Scott : [6:44] Yeah, absolutely. So again, like Jamie said, if you have the time, you’re interested in the podcast, I I highly recommend going back. Just take a listen to the last episode. We go into a lot more depth about some of the different ways to think about what it might mean to contribute to open-source or be an open-source maintainer.

Scott : [7:02] And I tried to give that collection of thoughts from the perspective of kind of a one-man shop, solo contributor, just putting free stuff out in the world because it makes the world a better place, doing it just for personal enjoyment. I know there are a lot of really large voices in the space that talk about having really large open-source core companies and foundations and all that type of thing. And those interviews and discussions are great, but there’s a little bit of an over-representation of those really large successful project authors. I’m trying to give a voice to kind of the smaller person in open-source and just say, "hey, this has been a really fun ride for me, really satisfying. And I have grown so much as not just a programmer, but as a communicator working with others. It’s been a really positive experience in my life. " So I encourage a lot of people to give it a try. And maybe they might be surprised by some of the positive things that can come out as a result. So that was the gist of the discussion last time.

Scott : [8:00] And again, we went to some details. But one of the threads, Jamie, that you pulled on that we started to go down, but this is near the end of the episode. So we didn’t put much time into it, was the idea of making money in open-source. And, you know, if you ever want to just throw a grenade on Twitter, you can bring up anything relating to profiting from open-source and you’ll get really opinionated people from every side of every opinion just coming out here. Because kind of at its core there could be this perception of a conflict of interest. On one hand, people are putting in a lot of work and they’re giving something away for free, but they might feel like they’re warranted compensation in some form. And maybe the consumer might be an individual and you’re just helping them in their life, and that’s great. But also it might be a corporation that’s consuming the free labour of others and then profiting from it. Maybe they’re giving back, maybe they’re not. and navigating that situation is really, really complicated.

Scott : [9:02] So at the end of the last episode, the question was raised, "like how do you make money in open-source? And should you make money? " And I felt that that conversation was kind of worth bringing into the following episode because there were some topics that we didn’t really get to unpack that much.

Scott : [9:20] And I’d love to share some of my experience because I’ve touched on a few of these myself. And just having the conversation and giving people things to think about, I think can really prepare them for some of the potential pitfalls so that they know what’s coming before they enter this space and then get surprised by it and then maybe get disappointed or resentful or bitter in the process. So yeah, that’s a conversation I’d like to have.

Scott : [9:45] And then also I brought some technical stuff today. I’d really like to do a little bit deeper dive into NuGet packaging. Now in the .NET space, On the last episode, we talked about sharing code in the form of blogs and GitHub repositories and that type of thing. But in the .NET world, NuGet is the primary way that people share code. It’s the primary package manager for .NET projects. And I’d love to talk a little bit about .NET packages at sort of every level of complexity. So for people who have never made a NuGet package, I think that this conversation will be beneficial for them because they’ll hopefully learn what they need to get started. And then I’d also like to talk about some relatively modern features that have been added to NuGet packages that are sort of becoming the new best practices for NuGet applications and NuGet packages. So yeah, that’s the gist of what I’d like to go through today.

Jamie : [10:40] Amazing, amazing.

Jamie : [10:42] No, I really appreciate the, I think it’s my words, not yours. The point that you were, that you’re going to talk about, about sort of setting expectations, I guess, for open-source. Again, that’s my, I feel like that’s my words, not yours. I don’t want people thinking that you’re saying something that you may not have done Because I feel like I see this all the time in open-source, but I also see it in other forms of content creation; so like videos, and podcasts, and blog posts, and stuff like that where people say, "hey i’ve created this thing. It’s existed for the last 30 seconds, right. How do I monetize it right now?" You know, hopefully the listeners and yourself will appreciate that I find myself in some circles with people who are you know, very excited about podcasting, and the first question that you can guarantee someone who is new to it will ask is, "when can I monetize? How can I monetize? And, you know, how do i, like, who do I speak to to monetize it? Right, get me the monetizing manager in And then, you know, my first question to those folks is always, "cool. So, you know, how long have you been around for? What’s your niche? What’s your audience size?" And they’re like, "i haven’t created it yet." And i’m like, "well maybe go do that first, and then perhaps come back."

Jamie : [12:06] But I totally get what you mean about like there is this seeming expectation in, and in my experience, it’s been in certain parts of the open-source community has been like, "I created this thing and loads of people are using it, and now I need to monetize it." And it’s like, "maybe you do need to monetize…" I don’t know whether that’s the correct phrase to use, with the word "need." But like I feel like it should be a thing that people need to set their expectations of, "what can I realistically achieve , right?" I, personally, i’m not trying to throw shade at anyone for doing open-source development, .NET wouldn’t exist without open-source development, right. Even like the .NET Framework wouldn’t exist without open-source development; let’s call a spade a spade, right? It would not have existed back in the day without open-source development.

Jamie : [12:56] Sorry, Scott, I jumped over what you were going to say.

Scott : [12:58] No, it’s okay. I just wanted to say that I do like that idea of setting expectations. I don’t remember if you said it first or I said it first, but it also has a little bit of a negative sound to it because it’s almost like, "oh, set your expectations low." And I don’t want to accidentally convey that negativity because, like we talked about in the last show, I think there’s something really positive that can lift up the entire community, sort of like a rising tide lifts all boats. At some point, everyone who’s probably had just an explosive burnout, resentful, successful open-source project, at one point, they loved it. They loved working on it. They loved contributing it, contributing to it, working on it. Contributors loved providing contributions and users loved using it. When you get it right, it’s positive around the board.

Scott : [13:46] And it can go wrong. And I am of the opinion that it doesn’t have to go wrong. Now, maybe there are some projects that are just naturally set up in a direction that is kind of long-term unsustainable. That’s a little bit of a different topic. But the general idea is that I love the idea of constantly checking in with yourself and self-reflecting and thinking like, "okay, why am I in this? What am I getting from it? Is it still worth it for me? Are the benefits worth the sacrifices of my time?" and that type of thing. "And if that starts to change, what am I going to do about it?" Because if I start to feel like my sacrifice is no longer worth the benefit of being a better programmer and getting more experience, if now my sacrifice demands a monetary contribution from others, or maybe I expect code contributions from others, that’s almost like a change of the terms.

Scott : [14:39] And then those people are kind of encouraged to consider changing the terms of the license to match the changing terms of their emotional state. And I’m not going to say that’s bad. Maybe you self-reflect and you realize, "oh, I actually do need this change for the long-term sustainability of this project." But I just like the idea of at least having that conversation and talking through it so that people aren’t surprised by it and that they see it coming and that they are less likely to take reactionary measures.

Scott : [15:07] I don’t want to go into the details right now, but for the listeners, I will say that we are right in the middle of an explosive situation right now with some WordPress drama. WordPress and WP Engine are experiencing a lot of the fallout, kind of related to what we talked about in the last episode, where you start out with some good intentions and then you get in a situation where both sides kind of feel burned. And I’m not going to say that there’s a perfect solution out there, But I do think that this frequent check-ins and asking, you know, "is this good for me and what needs to change for this to be good for my life?" is important. So…

Jamie : [15:42] So what I think is really interesting, ‘cause obviously you mentioned WordPress and WP engine just real quick. Like you said, we’re not going to go into the drama that is happening with that. ‘Cause it is still, you know, we’re recording October 19th and it is still unfolding today. So we’re not going to go into that. But what I think is really interesting is, like you’d said, we were talking about some stuff in the previous episode, which was recorded towards the end of August about the kinds of things that are… not all of the things, but some of the bits, like you said, about the the expectations and checking in about, "is this working for me? Is this what we want out of this project?" It’s interesting that we were talking about that and then, like a month… less than a less than a month and a half later we’re actually seeing it play out in real time, right. It’s really interesting t o me.

Scott : [16:34] And with hundreds of millions of dollars on the line, just a huge numbers of users. And it’s not just quarrelling maintainers and businesses, the users are getting hit with this, too. So it’s sort of like the opposite of what I said earlier where, "when this goes well a rising tide raises all boats." This is the opposite, everyone is getting hit by this situation, and i’m like, "maybe these are growing pains of just what it means to be a software developer and working on open-source projects in this internet-connected world. " But it’s hard to watch, and I hope this resolves itself in a way that is beneficial for the long-term sustainability of open-source in the internet age.

Jamie : [17:16] Oh, definitely. Definitely. You know, to sort of, we won’t talk about WordPress and WP Engine for too long, but just like one of the things that I saw, and this was a week ago, so we’re talking what, 12th of October. Someone had posted on Reddit, you know, "I’ve just lost $400,000 of contracts because my clients have walked away from WordPress because of the drama." This is not me saying anything disparaging about WordPress, just me saying when this happens it isn’t, like you said, it isn’t just the individuals that made this software that suffer; it’s the businesses, it’s the individuals, it’s the, users it’s everybody, right? So, yeah, be careful.

Scott : [17:57] Yeah and I still think that open-source when it’s done right. it’s sort of like this this badge like, "hey. This is a project that is out in the open," presumably the idea is that if you have open code, you have more eyes looking at it, the better. You can fix things quickly. You have contributions from a lot of people. It’s kind of this positive thing like, "hey, this is an open-source project. " And I just really hope that situations like this don’t become the norm and that this idea of open-source starts to become a negative phrase like, "oh, that project’s an open-source project. " I don’t think we will get there, but trust, you know, it’s gained in drops and lost in buckets and as stewards of this community it’s important for us to make sure that we keep trying to set some guardrails in place to to minimize the likelihood that people are going to have a really negative outcome.

Jamie : [18:48] Yeah. Trust is kind of like fitness, right. It’s really, really difficult to generate but super easy to lose. Because, you know, to become unfit…I am way unfit. I am not even vaguely healthy, but like to become unfit, all you need to do is sit on your couch and effectively inhale pizza, right. But to be fit, you need to be going to the gym every day or, you know, going for a walk or cutting down your calories. You need to do loads of stuff to build that up, but it takes almost no effort to, sort of swipe it out from underneath you. And maybe that’s what’s happened here, you know?

Scott : [19:26] So, okay, so transitioning from that, we will say that I think it’s probably fair to say that the core issue that caused that explosion is just kind of a mismatch of goals and not clear set expectations, perhaps on both sides.

Scott : [19:42] And I’m going to wind back to the original question. It’s like, "okay, what if you want to put a lot of time into making a project that you share online, an open-source project, maybe other people contribute to it, it starts to get some usage. What happens if you aren’t satisfied just learning to be a better programmer or something like that? What if you actually want that beer money or that pizza money or something?" You know, the question you asked earlier about the podcast one is a legitimate question, and it’s not a bad question. And I don’t want to villainize the people who want to use their software project, even if it’s an open-source project, to make money. Because at some point, projects become so large that they can’t really be maintained by a single person after hours any more. You have to kind of figure out, "okay, what’s the long-term goal?" And if the long-term goal is to exceed that kind of natural hobby project, it seems like money has to come from somewhere. because most people have to have a job to live and they can’t give infinite free time to support an open-source project. And there’s a spectrum in the middle. So I kind of want to explore that a little bit about some common ways that people actually do make money with a project that they might have started as an open-source project that gets a little bit successful. So yeah, we’ll go through a list of a few that I thought of. And Jamie, along the way, if you have other ideas, feel free to jump in.

Scott : [21:00] And along the way of this discussion today, we’re also going to talk about some of Jamie’s NuGet packages. Because before the show, I typed into NuGet, Jamie’s GitHub handle, to see what packages are out there. And if you have any personal experience with this type of thing, I’d love to hear it. And I guess before we have the conversation about money, I’ll go ahead and ask you, how many general type of NuGet packages do you have on NuGet and are any of them commercial? Or do you make money from any of them?

Jamie : [21:31] So I have a feeling there’s only like two or three. i’m actually… i’m going to do this live, right. We talked about in our thing earlier on, in our backstage call earlier on about doing it live. So i’m actually just gonna, i’m just gonna search it on NuGet for me and see… Yeah so I have three. I have three NuGet packages: one that has been effectively abandoned, because it was my attempt at making an architecture, like a dotnet new package using the onion architecture; one is for injecting the GNU Terry Pratchett Clacks middleware—that is a very deep cut into the Discworld books and into Terry Pratchett—for ASP .NET Core apps; and the other one is my OWASP Headers.Core middleware, which attempts to inject OWASP recommended HTTP headers into ASP .NET Core applications to boost their security.

Jamie : [22:30] So I only have three. All of them are completely free. They’re all MIT. So you do what you want with the code. I am actually tempted to change one of them to source available, "hey, do what you like and good luck to you," just because effectively i’ve abandoned… I said i’ve abandoned one but I feel like i’ve abandoned two of them. Because the Clacks middleware is complete, it’s never gonna change. Like, it works, it does exactly what it needs to do, the tests prove it, there’s no bugs; so that never needs to change. So maybe i’ll change that to source available, which is maybe something we can cover later on.

Scott : [23:06] Yeah, well, changing the license, we are going to talk about that. Very interesting. And also, to give the listeners a preview, later we’re going to talk about some NuGet best practices. And in the process of looking over these packages for the show, I noticed that some new NuGet features have become available recently that Jamie has not incorporated into their packages. So I made a GitHub pull request to add some of those features. So one of the packages that Jamie just talked about, where we’re going to step through a pull request where I’m proposing some code improvements. And we’ll talk about that a little bit later.

Scott : [23:40] But before we get there, Jamie, actually, I wanted to give you a quick congratulations. I don’t know if you noticed this, but within the last week, so this is recent, within the last week, your OWASP Headers.Core package just passed 1 million installs.

Jamie : [23:54] Oh, wow. I genuinely didn’t know that. That’s awesome.

Scott : [23:58] That’s pretty cool. So yeah, that’s an awesome milestone. I don’t know, a lot of people celebrate their like decade, you know, powers of 10 or whatever, you know, every time it goes up by tenfold. So it might be a while before it gets to 10 million, but definitely celebrate that 1 million. So congratulations, man. That’s awesome.

Jamie : [24:18] Thank you very much. Yeah, that’s awesome. Genuinely didn’t know.

Scott : [24:22] All right. So now you can slap a license on it and make some money. Okay. Well, so we’ll talk about some options.

Scott : [24:29] So one of these, the least, or I guess the most The most innocuous one is one that I have explored. And with some really interesting results. So the first kind of most entry level, least disruptive way that you can make money from an open-source project. Okay, I got to give I got to give like a step zero. Step zero: okay, don’t try to make money like you can. There are paths to make money. They are all hard. They are painful with the if you think about the number of hours you contribute to your project versus how many Dollars or Francs or Pounds you get as a return, you would make so much more money in most cases just working like consumer retail or having just a typical job. A lot of times the amount of money that you can kind of get back from just a small time open-source project, it’s really small. But if you’re motivated enough to try anyway, here are some options.

Scott : [25:23] So the first one was, it’s actually really interesting. And this is the theme we’ll see come up a little bit later, where I try to gamify parts of software development that I don’t really enjoy. Because most programmers, they love slinging code. But a lot of people don’t really love supporting it. They don’t like writing issues or responding to issues. And they definitely don’t like writing documentation. But what if we can gamify this a little bit? And one of the ways that I gamified it for myself was I really wanted to go deep into making really high quality documentation.

Scott : [25:54] And there are two sides to that. One side was just sitting there in Microsoft Word or something is super boring. So I’m not just sitting here typing. I write code to generate my documentation for me and it has been such a fun experience. Essentially, I think I touched on this on the last episode but I’ll go into a little more detail here. I set up an entire .NET project, That’s an nunit test project. So it’s a project that you don’t run it directly, essentially. It’s a unit test project. You run it and it tests all your code. But I have a section that I call the cookbook. So the package that I’m describing is one of the packages I maintain. It’s called ScottPlot, and it’s scottplot.net. And it lets people make graphs of scientific data and that type of thing. And the test project is really great because when you run it, not only does it test the code, but it tests a bunch of individual examples. "Oh, this is how you use the code in this condition, in this condition, in this condition." So it’s like a collection of recipes in a cookbook. So I actually go all the way with that analogy. It is the Scott Plot cookbook and it has a bunch of recipes. And every recipe is like a little demonstration of how to use one particular feature. And it has a title and a description and graphs. And it even has the source code used to generate that graphs.

Scott : [27:14] And the reason it’s so interesting to me is because I don’t have to write any of that as text. All I’m doing is I’m writing c#. And then I wrote a program which reads all of the c# files and generates the documentation from the unit tests. So every unit test essentially becomes its own page of documentation. So as I’m adding hundreds or thousands of unit tests, I’m automatically getting hundreds or thousands of pages of documentation. Full documentation with pictures and code examples. And if I change the API, the documentation automatically changes, because there’s nothing more frustrating than finding a documentation page and following the directions only for the directions to be wrong because the code has changed. So this has been a great format and it also lets other people contribute documentation. But here’s the thing. Here’s the other side of gamifying it is: if I put ads on the documentation page, I get a little bit of financial support any time someone visits that documentation.

Scott : [28:13] So the reason it’s gamified, and it’s kind of a win-win, it’s like the better docs I make, the better user experience the consumer will have, and the more docs they consume, the more financial income I get as a result. And whenever someone asks a question as a GitHub issue, now instead of just replying, "this is how you do the thing," I write a unit test and demonstrate with code, "this is how you do the thing." When it publishes, it goes to the website, becomes a documentation page, and then I make more money on it. So this is, you know, it’s on one hand, it feels kind of icky to run ads on documentation pages. But on the other hand, probably most users are kind of used to ads on the internet. It doesn’t feel that intrusive. So I will mention that as an option.

Scott : [29:03] What’s interesting though is if people go to the scottplot.net website and look at the documentation in the cookbook they’ll actually notice that I don’t run those ads I i don’t do that and i’ll tell you wht. And I don’t hold anything negative against people who do. That’s cool. If I didn’t want ads, I’d use an ad blocker. Like, it’s fine.

Scott : [29:25] However, I was using an ad platform that let me see what type of revenue I would get in different types of ads. And I used this really simple ad system where it’s essentially just some JavaScript you put on the page and you let the ad service just place ads wherever they want. I didn’t say, "put an ad here, put an ad here, put an ad here." It’s just let their AI, whatever, figure out where the ads go. And then I noticed when people are asking questions on Discord, I just wanted to give them a link to one of the documentation pages. Like, "I know the documentation is there. I just want to go in my browser, or Google the thing, or use Bing, and find the page, and then send it to them." And when I would do that, sometimes I would get those full-screen ads.

Scott : [30:10] Oh, my gosh. full-screen ads on a mobile device are so frustrating because you have to close… like on a mobile device they take up the full-screen, and then you have to close it. And the X button is like two pixels big. Half the time I click the ad by accident. It’s so frustrating. And, um, you know, I, I don’t have a massive NuGet project, but the documentation website is definitely used pretty heavily. So I was making probably about a hundred bucks a month just in ads. And then I thought, yeah, so it was, you know, that was great. And in my head, "I’m like, okay, I’m going to cover hosting." And also, in fairness, I ran similar ads on my personal blog website. So, let’s probably split, you know, maybe two-thirds on open-source and one-third on my blog. But, yeah, about $100 a month. And in my head, I’m like, "okay, that goes to hosting costs. You know, this is good. We do more than break even. Maybe I can get that pizza. This is good."

Scott : [31:01] And I got so frustrated by this full-screen ads that I went in and I figured out in the ad settings how to disable just the full-screen ads. So it still ran ads on the sides, ads on top, ads to the bottom, ads in between articles, ads everywhere, just no full-screen ads. And my income went down to like a dollar a month. And then I realised all my revenue is coming from people probably trying to hit that X button to get out of an ad. And just once I realised that was the case, that was the last day. I’m like, "you know what? I’m just going to pull all these ads. I can’t do this. For me in good conscience, I can’t do this. I’m taking it off." So after that day, everything went ad-free. And… And for a while, I felt kind of bad that I’m actually going in the hole over this. Not only am I spending thousands of hours writing projects, serving as a maintainer, helping with issues, looking over pull requests, all that type of thing. But now I’m actually paying to host this website, which has a non-trivial amount of traffic and downloads and all this type of thing. So I came up with an interesting compromise. So here’s another option. And it’s up to the user or the implementer how they want to do this.

Scott : [32:14] But I made it so that if anyone Googles my name or my GitHub name or whatever, and the word "donate", they will find a donation page. And what’s interesting is, over the years, sometimes people would send me an email asking, "hey I’d like to donate to your project or whatever." And I never felt right taking just straight donations because… just for some complicated reasons, we’ll talk about a little bit of those in a minute when we get to GitHub sponsors. But there was just some instances where people really wanted to donate, and it didn’t feel right just telling them, "there’s no way."

Scott : [32:48] And someone a while ago told me that there’s actually this concept of giving someone the gift of giving. Like, someone really wants to give you something, or maybe a gift or something, and you don’t even need that, you don’t want that elaborate gift, but they really enjoy sharing that with you. Kind of give them the gift of letting that happen. So in that spirit, it’s like, okay, So I just put up a donation page, but I don’t link to it anywhere. It’s only if you Google, "how do I donate to this person?" And what’s been interesting is that I just kind of leave it there and I forget about it. And every once in a while, totally random people, sometimes they’ll have a name that I recognise and sometimes they’re just totally random, will gift a little bit of money. And it’s pretty small. It’s probably about on par with what I was getting with the website ads, maybe less.

Scott : [33:35] But it’s it means so much and it is totally enough to cover the hosting costs. And now I don’t feel bad at all for you know running the websites, paying for high quality hosting, and keeping it all ad free. And when people do donate with their email address I always respond and i’m just like, "thank you. Not just for me personally, I really enjoy this. This means a lot. But also you know people like you help keep these projects ad-free." So that’s how I kind of came to that conclusion.

Scott : [34:10] So that brings us. Oh, yeah, go ahead.

Jamie : [34:13] Yeah, I was just going to say that I really like that. There was something that we were talking before we were recorded about how you had recently listened to an interview of mine that was on a show called Coffee and open-source with Isaac Levin. And I remember saying something like, "if there is an open-source package in your life that you really like or you get some great use out of, consider finding the donate button. Just send them a couple of dollars," right? Because for the same reason that you said, right? Sometimes it’s not about receiving the $2, $3. Sometimes it’s about the good feeling, the goodwill that either the donator or the donatee can then feel for that. It’s like, "hey, somebody really appreciates what I’ve created." Or the other side, "hey, I really appreciate that you’ve created this. Thank you ever so much. This is the only way I can think of thanking you," right.

Scott : [35:07] Yeah. And to that point, I remember the very first time somebody did that, totally unexpected. It was many years ago, but maybe a year or two after I started maintaining my first large adopted open-source Python package. Somebody just out of nowhere sent me a Starbucks gift card to my email. And she said, "hey I’m a graduate student," I forgot it was some Ivy League, really prestigious school, "I’m working on my PhD, and your software was instrumental to me finishing up my dissertation," and she gave me a Starbucks gift card. And it was just this amazing overwhelming sense of emotions. First of all it was like, at the time, I was a graduate student too, and it’s like, "we are both poor students. Why are we giving each other money?" But I understood the core of… She was really grateful and just wanted to signal that. And that was just a really special thing. So what you said is definitely true. Sometimes giving a financial contribution is just a way to kind of remind someone like, "hey. You are contributing to this thing that there’s this mass of people using, and most people are silent, but I’m here, and I really want to recognize you."

Scott : [36:20] However, and this sucks, I have to put a however there. However, there is, so what’s that idea? Like cognitive dissonance, where you hold two contradicting ideas in your head at the same time? That’s it, yeah. Yeah, this is what I feel about this. Okay. And this is going to be hard to say, especially because I think we’re probably before the break in the show.. and in the break, I love how you’re like, "Oh, you could tell other people about the show to spread the show around, or you could buy me a coffee." We’re going to talk about buying, buying a coffee. So some people, you know, it’s kind of like your love language. How do you love your open-source maintainer or your content creator? Some people buy a coffee. Some people like giving coffee. Some people like consuming coffee. Just my, and there’s nothing wrong with that, my personal, opinion on that is I’ve decided not to put the coffee button on my website, on my blog, on documentation. And same thing with GitHub sponsors. I’ve just decided not to do it.

Scott : [37:21] And it’s a complicated reason, and I might change my opinion in the future. But as of right now, the reason I don’t do it is because, this is so hard to say, if a business wants to contribute money because, you know, they maybe someone in the business values a product that is supporting their business and they get it passed through fiscal or whatever. Like, OK, that’s cool. But what I imagine a majority, I don’t even want to put the word "majority" there, just what I imagine happens all the time is that a lot of these people buying coffee and GitHub sponsors are actually developers buying other developers stuff or contributing to other developers. And I see this a lot with GitHub Sponsors because you can see who sponsors other people. And you know it’s kind of accidentally can be the situation where it’s a bunch of open-source maintainers giving money to a bunch of other open-source maintainers. So it’s almost like a closed circle. I don’t know if this is actually solving the money and open-source problem it does a really good job at signaling, the, "hey. I appreciate you. I appreciate your work," again that’s why GitHub Sponsors their logo is a heart.

Scott : [38:28] That is the core unit of transmission is kind of, "I really appreciate you," that message. That’s the core unit. I don’t think we’re going to solve the financial support and open-source issue with buying coffee and GitHub sponsors and that type of thing. So again, it’s controversial, maybe a hot take. It’s kind of hard to say because I don’t want to discourage it because there’s so much positivity there. But it’s a complicated topic. And those are some of the things that come across my mind when I see that coffee button or the sponsors button.

Jamie : [38:58] Yeah. No I, kind of, feel the same way. Especially with the sponsors thing, right. Because, like you said, one of the things that i’ve worried about is, like, if there are 20—there’s way more people giving out sponsorship money on GitHub—but like you say it feels like it can just become an exercise of just, I don’t want to say it’s this, but it feels very much like it could become just, "let’s move some money around a little bit," right. Just like, "i’ll pay you 20 bucks in a GitHub sponsorship. And you pay me 20. You’re gonna pay me the same 20 bucks back, right." And it’s like that’s not really, like you said, it’s not solving the problem; it’s just making the problem slightly less visible. Because, "oh cool this project already has, you know, 20 sponsors who are each sharing five to ten dollars," and then you then like yeah you could look into it and it could be that five of those sponsors are the same five people who are you know there’s six of them in a group that are just because none of them want them that perhaps they and I i’m doing loads of loads of uh assumptions here but it could be that some of those people don’t actually want that money they just want to make it look like there’s more sponsors than there are and so like that it’s it’s a whole minefield right like you said it’s it’s for people especially in my position it’s for people way smarter than I am to actually figure out. But yeah, I do worry about that.

Scott : [40:24] Yeah, and I think, I don’t recall for sure, but I think there’s a GitHub badge that you get if you sponsor somebody. So there’s a little bit of gamification there. And the irony is that the only people who really look at GitHub badges are other developers. And it’s just, yeah, it’s complicated. It’s a complicated thing.

Scott : [40:44] So, okay, so yeah, with sponsorship and coffee out of the way, let’s take the next step and talk about another option, which is probably the next least abrasive option. And this doesn’t intrude into the lives of typical users, but it’s a way to kind of get money toward your project in a way that you can have a little bit of control over. So that’s to offer paid support or paid development. And I think we talked about this on the last show briefly, but I do want to just highly encourage people who are really incentivised to make their project pay: if companies are really using your project a lot of times it’s difficult for a company to just donate money from company money to a person.

Scott : [41:33] Like, I don’t know the complexities around companies getting their fiscal department to you know send a bolus of money to someone’s GitHub sponsors page or buy, you know, 100 coffees or whatever. But on the other hand, if you have a support contract that you can sell. Again, I’ll let the lawyers figure this out, but it could be something as simple as, "hey, I will send you an email with a copy of the changelog every time I publish a new version." That’s virtually no effort. But if you charge $100 a month, $1,000 a month, $10,000 a month, whatever you think is reasonable or even have a tier system, maybe your email will have italic and bold at the $10,000 level. Come up with some product that you can sell as a paid support. And then that’s a lot easier to get through your company’s financial system. Because if you say, "oh, we’re just going to contribute to someone’s GitHub sponsor," Fiscal’s like, "what?" But if you say, "oh, here’s a support contract," they’re like, "oh, yeah, that looks official." So that’s something else to consider. I haven’t implemented that myself, but I’ve heard that along the way. And I thought that was a really neat idea, a way to kind of get it up the totem pole through larger corporations.

Scott : [42:42] Again, you face the problem where what if no one of the company wants to donate. Like that’s a different problem, we’ll get there. But this is, you know, in reality, I do think that a lot of open-source contributions come, really, they do come from people working at a corporation or a larger corporation who genuinely want a feature and, you know, maybe someone says, "oh, big company bad." The actual contributor is probably a really cool person. And they have this feature that they want for their job. They know it’ll make their day better. And if they implement it and contribute it back to the original project, it’ll be in the next version. Everybody wins here. And that person at the company might be the one that says, "hey. I want to redirect some funds to this open-source maintainer." And it would really take someone leading that charge to make money flow in that direction. But I wanted to put that out there.

Scott : [43:35] As well as the idea that you can have paid priority features. So again, I’m having trouble to remember what we talked about last time and what we didn’t. But sometimes people will say in an issue that there’s a really complicated feature they want, and I’ll just say, "hey, this isn’t really consistent with the long-term or short-term goals of the project. I like your idea, but I don’t intend to implement it soon." Sometimes if it is a really interesting idea and I think the person’s really serious, I’ll send them a personal email and say, "hey, sometimes I do commissioned priority development. If this would really help you and your company, let me know. Let’s set up a meeting. We can talk about it. And then we can figure out how to make an issue that outlines your requirements. And we can just shoot it to the top of the priority list and get it done." And I don’t do that very often, but I do do it sometimes. And that’s usually kind of a win, win, win. I win because I get some cash. The company wins because they get the feature they want. And the users, like thousands of users win because there’s this new feature in the code base that wasn’t there before. So yeah, that’s another kind of non-toxic way that maintainers might be able to bring some money in working on their projects.

Scott : [44:48] So now we’re getting a little bit more of the thornier ones. So you might notice that with a lot of these, there’s an, "it depends,"kind of like it’s not good. there are some pros, there are some cons. There’s no perfect solution here. So I’m not building up to the perfect solution. It’s only going to get more complicated from here. But yeah, this is the reality.

Scott : [45:11] So one of the other strategies that you mentioned earlier was dual licensing. And for people who might not be familiar: first of all, dual licensing can mean a lot of different things. I’m going to use it to mean, "there’s one license that applies to people who are using it for just individual non-profit use or individual personal use. And if you’re going to use it in a commercial enterprise, this other license applies to you." And then maybe they have to pay to get access to one license or the other. Or maybe the license is in such a way that it says they can’t use it commercially unless they pay a yearly fee and then they have access to a license that lets them use it.

Scott : [45:51] That is a path that a lot of very famous projects have explored, I think that works for some and it’s worth considering. There are two downsides though that I do really want to voice. I guess three. Okay. The first one is when you have a project that a lot of people contribute to over the years and it suddenly switches from going to just free for everyone to now only free for some people, that really feels like a rug pull for a lot of people. That can be jarring, even if it’s warranted. I’m not saying it’s bad. I’m just saying it feels like a rug pull because now we have sudden restrictions and also you never really know what’s coming next when that happens. So there’s a little bit of a rug pull there. The other thing is that maybe these projects were successful because they’ve had large bodies of contributors over the years. I know that’s true for the projects I’ve worked on that have been successful. It’s not just me. It is, in some cases, hundreds of people writing code contributing to make it what it is. And just touching back on WordPress, that’s probably the case too. Like you have these big bodies of people that contribute to it. And it just, it feels some type of way to take all that history of contribution to a free and open-source project and then wrap it up under a license that makes money for a single maintainer or a small group of maintainers.

Scott : [47:14] Again, it’s legal. I’m not even gonna say it’s wrong. I’m just going to say it feels some type of way that would make me really hesitate before I did that in my personal projects.

Scott : [47:24] So that’s one of the potential negatives. And then you can get all – so a possible alternative is we’re like, "okay, well, maybe I’m just not going to sell this to individual companies." Maybe some people kind of win the open-source lottery and they get sponsored by a company where a company essentially hires them either full-time, or part-time, or some contract. The company hires them to maintain their open-source project. And again, that feels really, really great. It’s like, "now we have professional funding. We can really take it the direction we want to go."

Scott : [48:00] I imagine, now I’ve never had this experience happen to me. Corporations never offered to pay my living salary to maintain an open-source. But I would imagine that I would be faced with a dilemma where if now my livelihood is coming from a company paying me to maintain my project, it feels like it’d be a pretty big loss of freedom. Like I can’t just go in whatever direction I want. I have to make sure that the company continues to have the perception that my project and my continued maintenance is of value to them. So, you know, it’s almost a conflict of interests because what if, you know, in my first six months I close all the issues and is the company going to be like, "well, we’re all done now. Like, thank you for your contribution." And so I guess that’s the other side of that too. It’s on one hand, the loss of freedom. You can’t really go in directions just because of the fun of it. You have to do things that you think are delivering value to the company. And the other thing is I imagine you would always fear that rug pull where the company just says, "well, we’re good now. Thank you for your contribution." And then you kind of have to roll back wherever you were in your life and do something else. You know, just typical jobs aren’t guaranteed employment. But I would imagine if you’re being paid to work on an open-source project, you’d kind of couple those uneasy feelings of, "where am I going to get my life employment?" you couple that with, "what’s the future of my beloved project going to be like?"

Scott : [49:30] And then the last thing I thought I’d mention is really interesting. Because I’m not personally in the circle of people who do this, but I know that this is a very popular circle out there where people sometimes will intentionally make a project, typically make it open-source, often get contributions from the community with the goal of maximizing growth and adoption, and then eventually selling it. Selling it to another person who’s going to take it from there or selling it to a company. And that can be a really successful career move.

Scott : [50:06] I don’t have a lot to say about it other than I just wanted to put that on people’s radar because I know people do that. And it must be a very interesting frame of mind where you put so much of your life into a project and then just kind of hand over the keys to somebody. And I guess the counter argument is: you don’t want to be the person who has only one good idea in your life. Ideally, you can just keep having new ideas and keep starting new projects and new companies. And there are some people who are really good at that. But yeah, I wanted to voice that idea that you can build a project with the purpose of selling it to someone else someday.


A Request To You All

If you're enjoying this show, would you mind sharing it with a colleague? Check your podcatcher for a link to show notes, which has an embedded player within it and a transcription and all that stuff, and share that link with them. I'd really appreciate it if you could indeed share the show.

But if you'd like other ways to support it, you could:

  • Leave a rating or review on your podcatcher of choice
  • Consider buying the show a coffee
    • The BuyMeACoffee link is available on each episode's show notes page
    • This is a one-off financial support option
  • Become a patron
    • This is a monthly subscription-based financial support option
    • And a link to that is included on each episode's show notes page as well

I would love it if you would share the show with a friend or colleague or leave a rating or review. The other options are completely up to you, and are not required at all to continue enjoying the show.

Anyway, let's get back to it.


Jamie : [50:42] Yeah. Yeah. There’s loads of different thoughts that I came up with whilst you were saying all of that. So I feel like I’ve… I don’t want to undermine any of what you’ve said. You’re absolutely a hundred percent correct on all of those points. One of the things that I was thinking about when you were saying it about, "some folks can then be employed by a third party to work on their open-source project," right? Let’s say, regardless of whether you close all the issues or not, right? I would say you would need a lawyer involved in that because you need to make sure that, like, does the code still belong to you? Or are they just sort of trying to buy the code from you or get the code out of you by employing you for like six months, right?

Jamie : [51:30] Because that’s their code, right? Because I don’t know how it works in most of the world, but at least in the employment contracts that I’ve been involved with, and the contracting or consulting work that I’ve done, there is usually a clause in there about, you know, "pretty much anything you make whilst we’re paying for your services belongs to us,"you know. I s that defensible in court? I don’t know, i’m not a lawyer, you know. Scott, you’re not a lawyer, so let’s not go down that route.

Jamie : [51:58] But like, if you are paid to work in open-source, when that contract ends who owns that code, right? if it was your code to start with and then that contract ends do you then have to hand over the keys, right? And then, my own personal opinion, I mean you only brought it up as something that you know vaguely about: some people building an open-source project, and building the positive sentiment, and building a community around it to then hand over the keys, perhaps in exchange for some money or because they probably can’t maintain it any longer: if it’s in exchange for some money, I feel like there would be a similar reaction to, "hey. I’ve contributed to this for 10 years, and now you’re charging people for it, and it’s my code that you’re selling? That seems a little unfair." But again, that feels more like it could have the reaction of a rug pull. To me anyway.

Scott : [52:53] Yeah, absolutely. Yeah, something very similar, I think that’s the third time we’ve brought up WordPress now, is that one of the kind of recent demands that’s popping up is this very interesting claim that’s being made on the WordPress side where they wanted more contribution and they kind of pitched it as a negative, like, "hey, you all aren’t giving us money or contribution." And it’s very interesting to me because, you know, if you read the MIT license, like I don’t remember what license WordPress was under when all this started. But if you read the license, it says like, "hey, this is free. There’s not an expectation that you have to give back." And it’s very interesting to me that sometimes the culture kind of builds where, you know, if you look at your own project and you realise that you are expecting people to contribute back if they’re going to use your software, I kind of argue that’s no longer the definition of free. You might not be requiring payment in the form of money, but if you’re requiring people to contribute their time in order to use your software in good standing, that starts to blur the lines a little bit. So that kind of goes in the idea of kind of frequently checking in with yourself and evaluating, "hey, what am I getting from this? Am I being satisfied with the situation? What would I need to make this better?" and trying not to make abrupt changes that could be felt by everybody as a rug pull.

Jamie : [54:17] Totally, totally. And yeah, just to reinforce this, and I’ll put this in the intro that I record later, obviously, we’re recording this October 19th. So this thing is, you know, it’s come up because it is happening right now, but also kind of relevant to the conversation. But between us recording and y’all hearing it, assuming you hear it on release day, there’s a couple of months, right? It could go either way. It could just fizzle out and everybody’s just happy again. I hope that’s the way it goes. Or, you know, it could escalate, we don’t know what’s happening. We’re recording this in the past and y’all are listening to it in the future, which is the present for you. So like, there’s a whole bunch of time that will pass between us saying these words and it going out. So please bear that in mind folks, as you’re listening.

Scott : [55:05] So, okay. So there’s, let’s extend that last topic just a little bit more because this idea of making a project and then selling it to someone else or transferring it to someone else is worth thinking about. Because even if you don’t sell it, I know you’ve talked about this in the show in the past, but I think it was the TZ Linux package. The maintainer transferred it to another maintainer who had been working on the project for years. And it turns out the person wasn’t a genuine person. They were actually a bad actor building up kind of socially manipulating for years trying to get push access to this repository so they could inject malicious code into the package. So whether you’re selling your software or just transferring it to someone, I do want to point out that there is a risk that it could go in a direction that you don’t expect it. Now, on one hand, maybe you’ve just totally let go of the software. You don’t care what happens any more. But I think for a lot of people who are working on passion projects, which is a lot of times how these things start, it would be a really discouraging situation to see your passion project turn into just a pile of garbage because a bad actor got a hold of it.

Scott : [56:14] And so I do want to think a little bit about the idea of project succession. And now we’re kind of leaving the realm of making money, but going into a topic that I think more people should think of, and for a few really complicated reasons. So we talked about what if someone takes it and makes it malicious, and then maybe it can tarnish your name. That would be really disappointing. I’ve personally in my life I have seen, the only—this is so disappointing—the only time I had to get involved with the lawyer was when I had software that someone gave me, it was free software and the software license says I’m allowed to have it and redistribute it, and then they sold the copyright of the software to another person who went all around the internet issuing DMCA takedowns of websites, anyone who distributed that software.

Scott : [57:05] And I didn’t realise how quickly anyone can just remove your website from Google. They don’t have to give you a DMCA because if they did that, I’d pull it up in court and dispute it and all that stuff. They just give a DMCA to Google and then Google just immediately takes your website off. And then I realised, "oh my gosh, it is so easy for just a random person to get your website removed off of Google." That scared me so much because my website and my online presence is a big part of who I am, and ideally how I’d like to be employed in the future. And that really startled me. So there can be bad actors, not just on the malicious code side, but on the malicious copyright side. And that’s the thing is they took the software, they changed the name, or actually they kept the original name even, and they just, they wanted to sell it for profit. And they went around DMCAing any website that carried the original versions. Fascinating situation.

Scott : [57:55] Yeah. So another topic that I wanted to mention is, you mentioned dual licensing. So imagine there’s a situation where you have a license, that says, "okay, this is free to use for personal use, but all of this code I’ve worked on for all these years cannot be used in a corporate setting." And this is kind of a startling topic to bring up, but what if you just disappeared tomorrow? Because people just leave because they have some medical situation or some life situation, or they die. And this happens. This happens in software. We’ll talk about some specific examples in a minute. But, you know, if you disappear tomorrow, it’s interesting to think about kind of what your digital legacy would be. And, you know, you could have left this thing behind in a way that it could have been used by everyone or anyone. And the state that it was left in is one where it’s kind of floating out there, but not free to use into perpetuity, which, again, if people choose to do that, that’s fine. I just think it’s an idea worth thinking about because often people don’t think about what the world is going to be like when they’re gone just ahead of time, if that makes sense.

Jamie : [59:10] Yeah. No you’re absolutely right, Scott. There are actually a bunch of people in the .NET space who have either already done this or have had to do this, right. And it’s an np-hard problem. So for people who didn’t do computer science that means it’s a really tough problem to solve.

Jamie : [59:25] And like The .NET Foundation, which is a 501c created by Microsoft, and they donate their engineers time to it, are trying to figure out ways to, like, how do we hand over packages when they need to be handed over? So there’s a couple of cases that I know of in the .NET space. There’s Jeremy Likness, who works for Microsoft and is very public about his struggles with Parkinson’s disease. There’s Jon Smith, who was on a really early episode of the podcast, episode 35. That was "Entity Framework with Jon Smith." He’s recently had to put out a post on his blog post about, "i have Alzheimer’s so I need to prepare my NuGet packages to be taken over by someone." There’s a Abel Wang… I will say that clearer for the transcription bot: there’s Abel Wang who, you know, if you google the phrase, "don’t accept the defaults," you will get to know everything about Abel Wang. He was a fantastic person. And I know that you have a few examples as well, Scott, and I appreciate for the listeners that we’ve gone in a slightly drastic turn, but this is something we need to be ready for, right?

Scott : [1:00:33] Yeah. So I have a lot of personal interest in this topic. So, you know, we could spend a whole show on this. I’m going to keep this kind of weirdly short, but maybe seven or eight years ago, personally, I went through this. I got a really serious cancer diagnosis. And when I was first diagnosed, they said that my probability of living was just very, very low. I think at one point, the five-year 5% survival rate estimation was low. Less than 5%. Really, really, really, really negative prognosis.

Scott : [1:01:06] And since then, I’ve had some treatment. I’ve had like chemotherapy, radiation. And then I lived in the hospital for like a month for a bone marrow transplant, which is really, really just crazy procedure. The gist is that I had like a blood cancer. I had a type of T cell lymphoma. So instead of making healthy blood, I was making white blood cells that kind of acted like cancer cells. So they needed to kill all my bone marrow with drugs, which they did. But then when you do that, you can’t make blood. And obviously you need blood. So I did not have an immune system. My white blood cell count went to zero, which means I had to live in the hospital in a clean room. It was amazing living on other people’s blood and platelets. So all those people who donate blood, like it’s really easy to just go donate blood and you kind of forget about what happens next. But people like me are here today because of people like that who donate blood. So that’s awesome.

Scott : [1:01:58] So evidenced by the fact that I’m here today, like I made it through. That was a crazy journey, but I had to just have the—and I guess I didn’t have to—but I chose to have the conversation with myself, like, "okay, I’m entering this really scary medical situation and there’s a very realistic chance that I’m just not gonna come out on the other side. How do I want to leave things in the world so that if I’m laying there, not sure if I’m gonna come out of this or not, I feel good about this situation?"

Scott : [1:02:25] And one of the things was just to have like a set of instructions in place. And this is good advice for everybody. A set of instructions just for whoever is in your life who comes after you. Like, "hey, this is the router password. These are my major bank accounts," but also how to do the tech stuff. So many people brag about how complicated their NAS is, their network attack storage. But imagine if you have all your family’s photos on there and then something happens to you, you disappear tomorrow. Can your family even access those any more? So yeah, creating a document that helps just the people that come after you navigate life is a really kind of a classy way to go. I hope no one goes in the short term, but if you do, you’re either going to have something like that or you’re not.

Scott : [1:03:09] And part of that was like, "hey, here’s a person. Here’s my login. Here’s how to log into GitHub. Post a message. Let people know, ‘hey, I’m not here any more.’ Turn all my licenses to MIT if they’re not already. And just lock all the repositories." And that was interesting. I chose not to transfer any of my projects to others. By making everything MIT, it just makes it easy for other people to fork it and take it over. So just go for it. I’m not here any more. I don’t care. I’m not trying to prove to anybody that I have the most downloads or whatever. So just take what you want, leave what you don’t. Just go for it. Make the world a better place.

Scott : [1:03:47] And what was interesting is I was, as I was preparing for that medical procedures, you know, I had a few months to kind of gear up. I actually, okay. In fairness, I had a few years before I actually needed that procedure. So this was always just like floating around in the back of my mind. I listened to a lot of podcasts. So we’ve, we’ve talked about some podcasts that we’ve been on or listened to. And two interviews, especially I wanted to call out one of them, you mentioned Abel Wang. Hugh did an interview on Hanselminutes in 2021. Well, I’m sure we’ll put a link in the show notes. and I think the title was Get Busy with Living. And it was like one of his last interviews and it was actually really, really inspiring for me because I struggled thinking. Okay, I’ll acknowledge we are way off topic, but I struggled thinking like, "okay. If I have weeks to months, how much of my time do I wanna put into maintaining open-source? Like, is it weird that the answer is a number greater than zero? Like, is that okay that I could be spending more time," I’m, you know, obviously kind of say goodbye to everyone that you care about in your life, leave everything in a good place. "But now that I’m here, is it okay that I’m still writing software? Is that weird?" And one of his interviews really spoke to me. It was cool.

Scott : [1:04:58] Because I had seen him before in the Microsoft build, like a YouTube summary. I don’t remember exactly which year it was, but Scott Hanselman was in the front of the stage showing how to do "hello, world" in the cloud. And Abel was in the back row and he had this giant sweater on. It was black and he pulled up a laptop and showed how to do some new features in Visual Studio. And I remember watching that thinking, "okay cool." And it wasn’t until the interview I realised that the reason he had that sweater is because he had a chemo pump under that sweater. He was pumping chemo while he was making that build video. Like he was so just enjoyed working on software that he did it way past the point where he had to, and he was doing it because he wanted to. And I thought that was really, really neat, really inspiring.

Scott : [1:05:45] And it kind of gave me permission to just do what I want as I approached that time in the hospital. And even in the hospital, I didn’t talk about much. Like I, you know, I didn’t say in my issues, like, "hey, I’m pumping chemo right now." But I was definitely flipping tickets in the hospital bed. And it was very interesting, but I just, I really enjoyed it. And it was just a really interesting interview. So yeah, I want to acknowledge that, too.

Jamie : [1:06:10] Oh, absolutely. Yeah. i’ll make sure to have a link to that. Because, like you were saying right, we’re… it may come across as just sort of gushing at this point but Abel Wang was an amazing person; I have to say it, and i’m not trying to to gain some kind of free internet points by saying that. We all, all of us who had experienced his joie de vivre will say that. And no one who says that is trying to get free internet points or free compassion points or whatever; he just was a really cool guy.

Jamie : [1:06:47] There’s stories of other people in other industries who are—just as a small tangent—there are stories of people in other industries who are as driven. There’s a story of actress, she’s now passed of a few weeks back as we’re talking about this, but Dame Maggie Smith, whilst making a number of the Harry Potter movies, was receiving chemo on set and then going and acting, and then coming… like that takes a huge amount of effort.

Scott : [1:07:17] Wow. Yeah I did not know that. That’s pretty cool.

Jamie : [1:07:20] Yeah, yeah. But anyway, well, yes the the point has been made, I guess. What are your other examples there Scott?

Scott : [1:07:27] Alright. Well there’s a list, I guess there’s one more i’d call out. It’s from The Changelog podcast. I just remember it, I haven’t listened to it recently. It’s like a 2016 episode and the title is, "A Protocol For Dying," and it’s kind of a similar idea. It’s like, "hey, what happens if you know the end is coming and you’re in tech? How do you arrange your life?" And I just wanted to point out that there’s some really interesting and thought-provoking conversations out there that are worth thinking about. So I’ll kind of leave this topic here. It’s interesting how we started on, "how to make money with open-source," and then we went to, "what are the implications for transferring your project to someone else?" all the way through, "okay, how to think about what your project is going to do when you’re no longer here." So we’ve kind of done the whole the whole circle on that today.

Jamie : [1:08:11] Yeah. And just to really quickly point out, obviously the, "when you’re no longer here," could also be when you have decided not to work on that project ever again, right. It doesn’t have to be… I know that we’re coming from a personal experience of yours there, Scott and of these other examples that there are on the web. But obviously you could, if you’re an open-source contributor or package creator, you could decide one day, you know, "i’ve kind of had, you know not that i’ve had enough of it, but like I don’t have the personal bandwidth to continue to work on this thing. Can someone please take over it because, you know, I can’t do it any more for reasons that are personal," right?

Scott : [1:08:52] Yeah. And I like the idea of just… it resonates with what we said the very beginning of the show kind of setting expectations it’s sort of like think about what what your values are, and think about what you’d like to do before the situation happens. Because when you’re in the thick of it, it’s going to be complicated. You know, while things are peaceful now, this is the time to kind of have these, explore these ideas in your head.

Jamie : [1:09:14] Yeah, absolutely. Absolutely.

Scott : [1:09:17] All right. Well, hey, we have a little bit of time left. I’d love to switch gears a little bit and narrow in on some more .NET specific stuff. We’ve kind of talked about just .NET culture in general, but I’d love to go a little bit deeper into specifically NuGet packaging and how to share some of that code that you’ve written when you get to the point you’re you’re writing code and ready to share with others. So yeah do you want to talk a little bit about some of the ideas that I brought for the show.

Wrapping Up

Thank you for listening to this episode of The Modern .NET Show with me, Jamie Taylor. I’d like to thank this episode’s guest 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 the interview. The show notes, as always, can be found at the podcast's website, 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—head over to dotnetcore.show/review for ways to do that—reach out via our contact page, or join our discord server at dotnetcore.show/discord—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.

Follow the show

You can find the show on any of these places