Skip to content
GitHub Copilot is now available for free. Learn more

THE README PODCAST // EPISODE 3

Taking Das Blog into the future

Maintainers Scott Hanselman and Mark Downie on breathing new life into old software.

Elapsed time: 00:00 / Total time: 00:00
Subscribe:
Scott Hanselman and Mark Downie

The ReadME Project amplifies the voices of the open source community: the maintainers, developers, and teams whose contributions move the world forward every day.

Scott Hanselman and Mark Downie // @poppastring/dasblog-core

In this episode, we sit down with Scott Hanselman and Mark Downie, maintainers of Das Blog. Developed in the C# programming language, Das Blog is a robust blogging application that supports languages across the globe and doesn’t require a database. Scott and Mark share how they met, and how they’re ushering 20 years of code into the future. We’ll dig into their partnership, the responsibility of taking over heritage code, and the value of blogging. Hear it all, now on The ReadME Podcast.

Scott: I looked at the open source community as being a library of sorts, kind of like having the set of the Encyclopedia Britannica on your shelf. It’s a sense of power that I can always turn behind me and go to my shelf and have all this wonderful open source resource or reference material that I could call upon.

Mark: What I think you look for when you come into an open source project is somebody who’s inviting, who hears you out, who encourages you and says, “Yeah, that makes sense, that doesn’t make sense. Here’s what we’ve done in the past. Here’s why we did it this way. Having someone who is comfortable making other people feel comfortable is important.”

Brian: That’s Scott Hanselman and Mark Downie, maintainers of DasBlog and this is The ReadME Podcast, a GitHub podcast that takes a peek behind the curtain at some of the most impactful open source projects and the developers who make them happen. I am bdougie aka Brian Douglas…

Kathy: And I am Kathy Korevek.

Brian: In every episode, Kathy and I invite a maintainer or open source developer into our studio to explore their work, their story, and where the two meet.

Kathy: In this episode, we speak with Scott Hanselman and Mark Downie, maintainers of DasBlog, a blogging application that doesn’t require a database, supports languages across the globe and is developed in C#. Theirs is a quintessential GitHub story: Scott was maintaining DasBlog and Mark discovered ways to improve upon it, so he reached out to Scott. Scott is from Portland, OR and Mark is from the Midlands in England. The Open Source community gave them the opportunity to connect and a collaboration was born. Since then, DasBlog has continued to grow and develop.

Speaking with Scott and Mark, you can see their camaraderie and their belief in the power of Open Source. When Scott started maintaining DasBlog, he inherited nearly twenty years of code and Mark brought that code into the future. In this conversation, we learn about how computers and coding came into Scott and Mark’s lives, the responsibility one feels when taking over heritage code and the value of blogging.

Scott: When I was twelve, I got to use an Apple II, and it wasn’t the school computer or the classroom computer. It was the only computer. It was the only computer within fifty miles. It was the one Apple II that was assigned to my middle school, and we all had time on it. And I happened to just have a knack for some reason. And I was also causing trouble and maybe getting involved in things I shouldn’t be getting involved in. So I was encouraged to spend time on the computer so that I wouldn’t be in the streets, beating up small children and knocking down old ladies. And in the process, my fifth grade teacher, Mrs. Marian Hill said, “Why don’t we let Scott have more time on the computer?”

And using that computer was my privilege because she allowed us to steal a $2,000 Apple. On Friday nights, my dad would back his pickup truck to the side of the school. We would sneak the computer out of the school. And as long as we had it back by Sunday afternoon, the principal would look the other way. And rather than causing trouble on the weekends, I spent time with that computer in my parents’ basement. Then, one day I came home and our van was gone, the van that was parked outside of our house. A lot of families in the community that I grew up in, when I think of vehicles in your neighborhood, vehicles that you own, as a sign of wealth. We had this car and the car was gone.

And I found out that my Dad had sold it for $400 and bought a Commodore 64, and then I got to spend time with that. So we were one of the first families to have a computer inside the house, which was really just extraordinary. The idea that I had access to a machine. But in order to do that, my dad had given up the car, which was really, really special. Thirty-five years later, I can say that if that had not happened, I don’t know what I would’ve done. So it is truly extraordinary, and I recognize that privilege every day.

Brian: Excellent. And can you just set more of the stage for, where’s your small town that you’re from, and I guess you already gave us a number as far as age goes so we can sort of do some backwards math.

Scott: I grew up in Northeast Portland in a very lower middle-class blue collar community. My dad was the first one to graduate from college in my family. My dad was a firefighter and my mom was a zookeeper and they didn’t know anything about computers at all, other than that you could go to Sears and buy one if you had the money. So it wasn’t a small town, it was in Northeast Portland, but we’ve been Portlanders since day one. But there wasn’t a computer. There wasn’t a library to go to find a computer. It was the ’80s.

When the school got the money to buy the Apple II, that was an event for us all to be excited. And I have since had my dad on my podcast and I’ve written blog posts and talked about the formalness of giving someone access like that, so early. It was very much appreciated. And I don’t know if I’ve never said this publicly, but when I get a raise at work, I call my dad and I tell him, “I just got a raise, and I can put it back to that day when you sold the van.”

Brian: Wow. That’s tear jerking.

Scott: Well what’s important about that, is that now that I have these conversations with him, with my parents, my mom and my dad regularly, it is beholden to me to send the ladder back down. I have spent my entire career all day, every day to tell people, “Let’s get you access. Let’s figure out how you can do this. Open source is for everyone.” So I am going to knock down gates and prevent gatekeeping at all costs. And just because I got a computer at twelve and you got one at twenty-two, doesn’t mean that you, whoever you are, can’t do open source as well.

Kathy: When you call your dad and tell him, “I got a raise, then I can point back to that day you sold the van,” what does he say?

Scott: You’d have to kind of know my dad, but he’s like, “you know, if you were digging ditches, we’d just want you to be happy.” His whole thing, everything in the ’80s, was “don’t do drugs.” So what my dad says is like, “Hey, you’re not doing drugs. So we’re just happy that you’re happy. I don’t have a Tweeter, but I’m glad that you can tweet.” That’s kind of my dad. He’s just, “I’m glad that you’re happy. It was a small thing.” Of course, you do whatever you can for your kids. But this is somebody who was a firefighter who then when he wasn’t a firefighter, he was driving an oil truck, he was doing construction and carpentry on the side. I mean, just filling his days with things that he could do with his hands. And my brother turned out to be a firefighter as well.

So really, I’m the only one that does a thing that no one understands. They just like, they call me when they need to reboot the router, but it is absolutely my privilege every single day to go down there and reboot the router. So every time my parents call me for tech support, rather than being annoyed, I say, “this is a gift.” And I go down there and I reboot that freaking router and they just go, “That’s our son! He works for Microsoft.”

Kathy: That’s awesome. So, Mark, I’m wondering for you too, what’s your first experience with the computer?

Mark: Mine goes back to when I was about twelve or thirteen years old. In England, if you were lucky enough (and I wasn’t at first), you could get a Zedex Spectrum for really cheap, around about when I was thirteen years old. Zedex Spectrums were the way everybody got into gaming when I was younger. But by the time I could afford one, people moved on to Amigas and the other kinds of versions of PCs that had come about. But when I got mine, I had this one management game that I realized, if you did a particular keystroke, you could get in and edit the basic code that was running the game in the background. So you’d load it via tape, you’d hit a particular key sequence, and you’d be dropped into lines of code.

It was a soccer management game, a football management game. And I found out really quickly that I could adjust my budget for my team by getting in on that basic code. So for me, I was realizing that the magic behind this was accessible. And that was the kind of like my first realization that it’s magic, but you can get to know what the magic is if you’ve got the right tools. And so that Zedex Spectrum really became my understanding that there’s something below the veneer of computing that I should know about. And my brother was kind enough, he was somewhat older than me, he was like ten years older than me, he had been working for a while. And personal computers, 386 was the thing at that time. And he purchased the computer for the family, for himself, and for me, and he introduced me. That was my opportunity to get into computers. And so that was really where it all started.

Brian: Every person seems to have their own story of when the computer first came into their lives, especially when computers weren’t so ubiquitous. Knowing the roots of something allows you to appreciate how far it’s come. This is not only true with hardware but software as well.

Scott: One of the privileges of being an older person in software is the historical context of things. And I think that sometimes when old people reminisce, they reminisce about, “back when we had AOL and back before AOL,” and, you know, “did you know what we did before the internet?”-type stories. But those are really interesting, and really, “why was this built this way?” And you know, “why was Mark’s football management game written that way?” Because that was the Basic of the time. And how did that Basic beget the next? We got Visual Basic. And, what you were saying, that one of your first entrees was maybe Visual Basic? I wrote some of the early tests to become certified in Visual Basic. That was a small thing that I was able to do thirty years ago to get more people excited about programming.

I’m trying to remember when I started thinking about coding though. Unfortunately it was C, and it was Pointers that almost broke me. And I think about that sometimes, because when I learned Pointers, I was in a class at Portland Community College and the young person next to me understood Pointers, and I didn’t. And it was kind of the calculus of coding, and I was about ready to just give up. And they sat with me and they made me understand Pointers. And I’m now, even this moment as I’m sitting here telling this to you, I’m realizing that could have been the thing that made me give up and I did not. But at the same time, I don’t think I’ve thought deeply about Pointers since then, as I am fortunate to work in a reference and a language like C# or a language like JavaScript. I don’t think about Pointers. It makes me wonder how many different little hurdles we put in front of people that may have made us lose them in technology completely.

Brian: I’m curious of how have you taken those opportunities of your struggle with Pointers and your struggle with selling the family minivan? What are some things that sort of been the gates that you’ve had to continue to remove for other people, but also for yourself?

Scott: One of my good friends, and I’m both a mentor for her and she is a mentor for me, Grace Mack Jones said, “we need to normalize normal people coding.” And I really love that. When she said that, it just clicked with me. So now I’ve made that my whole jam and the idea that you have to be an expert at math and go to a fancy school to be a coder really resonated because I went to Portland Community College, and that was how I got my thing, I didn’t go to MIT or Stanford or one of those things. And I also love, that in modern days, in the 2020s here, we see people excited about Star Wars and code, that’s fine, that’s a stereotype, but hip hop and code, or me with Beyonce and code or whatever, like you don’t just seem to be excited about code and code.

And when I started a TikTok, the number one question I get is, “I want to be a programmer, but I’m bad at math. So clearly I can’t be a programmer.” And I just need them to stop. Like, why is calculus, while a great thing to learn, why does calculus help you put text boxes over data better? There’s not a lot of calculus in Angular and Vue.js. So I really want people to know that I got a C in calculus and, and that’s okay, and I’m still able to hit the rent every month.

Kathy: I’m terrible at math too. Absolutely. I don’t even remember taking calculus. That’s how bad at math I am. But I just like building things. So when people say that to you, “I’m bad at math, therefore I can’t be a programmer,” what’s your advice to them?

Scott: Well, there’s two things there. First, there is, you may be in a program that requires it. And if you’re in the four year school, you need to get through it. I got a C, I got straight C’s all the way through my math classes. I was an A student up to geometry and then it just all fell apart. Persevere. If there is a program by which you can avoid it, maybe you get a BA in computer science rather than a BS, a Bachelor of Arts rather than a Bachelor of Science, if there’s a way that you can get around it. While math is valuable, if you’re doing 3D graphics and stuff like that, for the average Joe or Jane, who’s getting data out of a database, it’s really not necessary. But I’m afraid that until we change curriculum to change the relationship that we have with math to code, which are different things, I don’t have a good answer, I’m afraid.

Brian: I would love to know Mark’s answer of what he got in calculus. But I am more curious about normalizing code for normal people. How did Mark’s introduction to the football (AKA soccer) app correlate to his interest in programming, code and wanting to continue down this path?

Mark: I just kind of like the process of discovery. And with programming, there is always something new, there is always. And so for me, once I’d kind of… I didn’t really master Basic, it kind of like… My programming language lineage went from Basic, and then I took a hiatus and went to college. We did Assembler, Turbo Pascal (really aging myself here), C, C++. And then we moved into VB 6.0, C#. I think I’m covering some… overlapping with other people’s lineage as well. But that kind of slow progression, it was really a professional level where I started to think about my process for learning new ideas. And then that led to me wanting to kind of have a process for learning and observing these new things. And so that kind of led to me really wanting to start blogging and talking about what I was learning, because that was the best way for me to learn.

I realized that if I blogged about this, and tried to explain it to somebody else, I really got it, like I absorbed it. If I had the chance to go back and look at that, what I just read a week ago, and it still kind of made sense, I realized I probably got the gist of that thing. So the learning aspect for me really wasn’t connected to that initial thing, but it was connected to this kind of constant process of absorbing something, trying to explain it to my future version of myself and then rinse and repeat.

Brian: Yeah. And I love that, being able to remind yourself of what you learned by using blogging and keeping… that is a great way to keep yourself interested, but also keep yourself reminding of where you came from as well. And I did it all the time for my personal writing, as well as things like podcasting. I always love going back and listening to how I sounded six years ago, because I sounded a lot younger for some reason. I’m not sure why; I think it’s the microphone. But also, just want to point out Mark, you never told us the calculus grades. So we still have plenty of time.

Mark: I was really good. I want to be honest. I was great at math. I’m going to be honest. I killed it. I was top of the class. I’m going to be honest. Sorry to disappoint, but I was really good.

Scott: Do you use it every day at work?

Mark: No, not once. Not even a little bit.

Scott: Okay.

Mark: It’s like all those grades wasted.

Brian: I will also echo Mark. I did get A in calculus, so—

Scott: Oh man.

Brian: As I told Mark and Scott, I was actually really good at calculus and while I may not use it in my everyday, it has taught me a great deal about problem solving. But when I learned how to code, I was able to meet the people that built the things I learned from and that had me hooked on open source. It seemed like the ideal problem solving tool. I wondered what intrigued Scott to explore open source.

Scott: The idea that you could download a zip file and build the thing that you’re also using. So it’s kind of like Mark’s story, except with the football management application, there was a hotkey, and then you could get into the code and with this one, you’re running some application and you can go up and find the zip file of the source. And that was the hot key. And I was like, “Oh, wait a second, I can change this? I can build it and then make it different?” That was really interesting. So then when I went to work, I looked at the open source community as being a library of sorts, kind of like having the set of the Encyclopedia Britannica on your shelf. It’s a sense of power that I can always turn behind me and go to my shelf and have all this wonderful open source resource or reference material that I could call upon.

Brian: Awesome. How about you Mark?

Mark: With open source? It was actually more recently I’ve gotten into the open source contributions. I was taking advantage of open source software for a while, as I said with blogging. I got into an interesting scenario, where I had relied on Live Spaces, a kind of old blogging engine, to do my blogging, and then it kind of went away. It was kind of getting dismantled. And so I needed to find something that I could reliably blog on that I could myself decide how long it was going to be around, I could maintain it myself, and that led me to DasBlog. If I’m… Honestly, this was for me the first time I’d really thought about what it would mean to contribute to something or what it would mean to maintain something if there was a problem.

And so I just was… As a consumer of open source, I started taking that software and hosting my own blog. It just so happened at that time, I was transitioning my career from being a mostly desktop developer to being a mostly web developer, and so then I started using it. It was an opportunity to learn exactly the kind of details behind the career I wanted to go into. I’d been doing VB 6.0 and C++ at that point. And now I had the chance to do ASP.NET, which takes us roundabout into 2003, I think, sometime in that area, and DasBlog was it.

Kathy: DasBlog is the project Scott and Mark maintained and they connected in the most casual of ways. Mark had ideas about how it could be more streamlined and reached out to Scott. From that email, a collaboration was born. So what is DasBlog?

Mark: DasBlog is a blogging engine. It’s actually one of the oldest open source projects for .NET around. And it’s a really rich blogging engine. And, like I said, I was just trying to find a great engine to start using for my own blogging. And so I started pulling in DasBlog and started to actually start to contribute to it and started my own platform and started making a few adjustments that other people found helpful.

I reached out actually to Scott really quickly because I realized his blog was kind of powered by DasBlog and I realized that some of the changes I made could be kind of used by what he was doing and vice versa. So, I reached out and proposed a few minor fixes that would be helpful. And then after a while he had kind of planted the seeds of the idea that we might want to — what do we want to do going into the future with this?

So the community just between us, was creating energy for what was really an open source project that had been, I think, generously, we can describe it as “feature complete,” and it got to a natural end. And us kind of discussing it, made us realize there was things that we still wanted, there was ideas that we still wanted to explore. So for me, that was the moment where I realized open source is powerful not just as an idea to get something from, but it’s something I can contribute to and lend energy to.

Scott: Yeah, DasBlog, which is German by the way, for “the blog”… This is true. Clemens Vasters is a German with a sense of humor. And when he made DasBlog, he worked for a company called Newtelligence and made the DasBlog community edition. It’s almost a twenty-year-old blog. I have been blogging now for nineteen years and it was exclusively .NET, exclusively Windows, and it ran on old Windows servers, and it was quite a burgeoning community.

We had hundreds and hundreds of thousands of registered DasBlog users, and then it just contracted as Google Reader went away and blogging went away, and Ghost and Node blogs came out and people started going to Medium. But my blog remains one of the oldest and biggest, but it wasn’t doing the things I wanted it to do, but I’ve always loved Mark’s blog and how he was saying before that he likes to explain things so that he might better understand them.

He and I found each other, and our friendship is based on our collaboration around making DasBlog better. Honestly, I would say (and maybe Mark can agree with me or disagree), selfishly for ourselves. And then we find the others that are using our blogging engine as well. So Clemens, the original creator, came and went, and then Omar Shaheen came and went, and now Mark and myself.

I think our big push recently was switching from closed… Not closed source, but a closed environment on Windows to being open and running in containers and running in Linux and running in any cloud, that’s when our energy became renewed. And that’s when Mark took the liberty and the onus to make a really big push and refactor DasBlog for the future.

Brian: I was actually intrigued when Scott was talking about the story of the original creator of DasBlog sort of coming and going. It’s kind of a cycle with open source. People create a thing, the community takes it over because the maintainers got what they needed out of having the project, and now the community just takes the torch and continues it.

And it sounds like Mark is actually taking the torch and continuing it as well. What was the path for Mark to bring this to modern web development?

Mark: The main driver was, again, just me wanting to learn something about .NET core and ASP.NET core more specifically. So Microsoft itself was making a rather big shift from Windows based platforms in the form of full .NET framework, to going multi-platform Linux, just embracing everything and everyone in an open source way.

And in the same way with my desire to just again, just to understand something, to make sure I’m understanding it thoroughly. I realized that there was an opportunity for me to kind of serve two purposes, for me to kind of contribute to a community out there that has been shrinking and that I actually need to continue my blogging efforts. But also an ability to learn.

So I literally was creating blog post after blog post about this burgeoning new kind of .NET core platform, while creating on .NET core platforms. So it was kind of like a righteous circle where I’m able to learn right and just keep repeating that.

Scott: Piggybacking on what he just said, I really found the idea of the impossibility of a thing that was made before another thing running on that thing. So for example, I brought up DasBlog and a Raspberry PI recently. Raspberry PIs didn’t exist. And now this thing that’s twenty years old runs on that thing. I find that fascinating.

I really love that .NET, a platform that some people may have written off, is now this rich open source community and when Mark said, “Hey, I think I have a prototype that’s going to allow this to run on Linux,” I was like, come on. Honestly, I was a little bit incredulous about it and I was like, “I mean, maybe.”

I could see where this part would work and he was like, “No, I have an architecture.” And he showed me the architecture and I was like, “By God’s he’s done it.” And it was like a moment. I don’t know if you remember that Mark, when you showed me the way you put razor pages.

And I was like, “And this built?” And he’s like, “No, it isn’t just built, I’m running it live in production right now.” And I was like, “Oh my goodness, we have to hang out. I want to see where you’re going to go with this.” Is that a fair statement? I see you blushing Mark, I’m not sure if that’s correct or not.

Brian: Mark and Scott aligned in their interests immediately, and their aspirations. When it comes to a heritage code, this is significant because you’re carrying on the aspirations and intentions of something that has already established a fair amount of traction.

Mark: What was interesting to me was that there was so much code. I think we abandon ideas really, really quickly in computer science. We kind of jump around with ideas. And what I saw with DasBlog is that it was at least very, very consistent, very well-written. So you could separate the concerns.

So for example, DasBlog primarily uses XML files and all of that just continues to work. It’s almost unchanged code. It’s literally thousands of lines that I haven’t changed since 2005, or whatever. But just with a little bit of thought you could essentially make something like ASP.NET core and remove all of the Windows dependencies.

There was so much that was built into DasBlog that essentially didn’t exist until the last five or ten years. So it was a case of, let’s keep what we can use, let’s use the community to build this into a more robust platform, and let’s keep the parts that are still good.

So it was able to kind of architect this new version of DasBlog that kind of took advantage of all that.

Brian: It sounds like the fuel, the fire that comes from the community was able to not only revive the project, but also just bring it into the next generation. I use that term but also I think it’s actually relevant to the analogy where Star Trek was not a thing that was around when I was a kid, but the next generation was.

So even though I wasn’t even aware of Basic, and I knew about VB, now all these new programmers can not be aware of how to get .NET powered blogs using the DasBlog architecture onto Raspberry PIs, which is kind of mind blowing. I wanted to go back real quick and say, just kind of go full circle real quick.

You both mentioned really old architectures for computers like the Commodore 64 and the Apple II. How have you seen the sort of renaissance of what is old is now cool and in vogue? I know I’ve got a niece that walks around with a tape player because she thinks she’s cool.

But now you can get a Raspberry PI running and playing the games in the programs that you were using as a kid. What are your thoughts, and also do you nerd out about being able to relive that experience?

Scott: Yeah. That’s kind of like my whole jam. I’ve got a half dozen Raspberry PIs within arm’s distance and that’s not a joke. I’ve actually got about thirteen of them. And, being able to make something with your hands that’s small and lets you relive your childhood is exciting.

Actually, remember Mark, when we were planning to move over from me running on a physical machine to the cloud? We decided to do what’s called a scream test, where you turn it off and you see if anyone screams, right? And that’s a classic ops thing. I don’t know whether you were nervous, but when we moved my blog over… when you moved your blog over, did you have any concerns that maybe people would notice?

Mark: I didn’t have any concerns from my blog, I had concerns for your blog. I was like, “Oh my, if I’m down for a few weeks who really cares?” Yours, I was genuinely concerned when you said, “I’m just going to move over this afternoon.” I’m like, “What? Wait, I need to take time off. I need to support this.” But apparently it wasn’t quite the disaster I assumed it would be.

Mark: One of my chief concerns when I moved from life spaces was that I wanted a format that essentially I could move anywhere and do anything I want with. The reason why I picked DasBlog was because it had made a really bold statement to say, “Instead of using a database or instead of using some kind of custom formatted file, I’m going to use XML and it’s going to be text and you could essentially open and close this anywhere you want.” Which for me was the best way of saying you own the data as best you can.

And so the essence of DasBlog was to maintain the idea that this is all XML based. So essentially you could literally pick up the content of your twenty-year-old blog, drag and drop it into DasBlog Core, which is the new name, and you’re up and running.

Kathy: When it comes to refining code, it’s all about simplicity. When you’re working on something that has an older code base and you’re working to update it, you have to pay attention to the things that aren’t as sexy. Given that, where do Mark and Scott find their inspiration? What keeps them excited to work on DasBlog?

Scott: While it does require a certain amount of history to appreciate how far it’s come, I am still excited by the idea of it running anywhere. Running in Docker, running in Linux, running in the cloud. Right now I’ve moved it over to Azure and it’s running in a tiny little Linux container and it works great.

I’m excited about exploring ways to take all those XML files and put them on S3 or put them in Azure storage and have them exist in cloud storage. And we’ve found a way to actually lie to DasBlog, where it’s still writing to what it thinks is a folder, but it’s a mount point that points off into the cloud, which is really, really exciting.

I think that there’s always a new markup format for Twitter or Open Graph or whatever that would allow you to see that differently. I think with the death of Google Reader, there’s still exciting ways to… Should we plug into Substack? Could I make it so a blog in DasBlog turns into a Substack post and that turns into an email?

We haven’t explored that. There’s always a new way to push strings around on the internet as a way of getting our message out. And I still think we have some pretty cool bugs that we’re slowly looking to fix as well.

Brian: If Mark didn’t come along and say, “Hey, I’ve got this blog and I think we can probably move this over to modern hosting and to cloud and to Raspberry PIs.” Do you think you’d still be using DasBlog?

Scott: Oh, man. That is a really great question. Where would I be without Mark? I would probably have a far less superior instance of DasBlog cobbled together, running quite poorly on some form of Linux. But I can truly say that the inspiration he had for layering the web part with the backend part, I would not have done that by myself.

Probably, I would have made a static site generator and I would have written something that’s spun over the XML files and made static sites and hosted them in GitHub Pages somewhere. But I am extremely happy with the way that we did what we did because the layering that he made allowed me to reuse my theme, almost unchanged in the new Razor Pages, ASP.NET Razor Pages format. So yeah, I would be a shadow of myself.

Brian: I guess I would pose the question to you Mark, just in a different way. I know that Scott, he’s got the moniker of Mr. Rogers of Tech. So I’m curious if you had a different maintainer to approach, that wasn’t always about… like, Scott, he prides himself on being able to remove gates and open the doors for a lot of people.

Looking back, would you have continued down this process, if you didn’t have such an inviting and excited maintainer to bring you into the core team and into the flow of things?

Mark: That would have been difficult. I’m going to be honest, that would have been really difficult. Because ultimately you’re looking for somebody to generate energy with and if it’s not welcoming, that ruins the energy that you get. And so, what I think you look for when you come into an open source project is somebody who’s inviting, who hears you out, who encourages you and says, “Yeah, that makes sense, that doesn’t make sense. Here’s what we’ve done in the past. Here’s why we did it this way.”

That was one of the other big things as well about maintainers is that, you can kind of set the atmosphere for your project by the way you interact with people who kind of submit issues and talk to you online. And Scott was really comfortable in sharing the reasons why things were the way they were.

And the why was really important about why I try to keep as much as I could and having a reason for that was important. So yeah, I think having somebody who is comfortable making other people feel comfortable is really, really important.

Kathy: Like any community, there are certain codes of conduct that need to be in place to allow community members to thrive. In the context of GitHub and the coders that populate it, giving each other a sense of support and comfort is hugely important. How has the Mister Rogers of the open source community made people feel welcome?

Scott: So it’s open source, which means that it has to be open egos, and decisions that Clemens made twenty years ago and decisions that Omar made and decisions that I made and others that participated, made sense at the time. And Mark would say, “Well, why is this like this” And I’d say, “Well, this is what I remember and here’s what the email said, but what do you think we should do?” And he would share his ideas.

I would have to say very quickly the roles switched. I was maintainer and steward, and then it became clear that Mark had a vision that was superior to mine. So then we swapped roles. I remember when we switched the URL in GitHub from Hanselman DasBlog to Poppastring DasBlog, and then we said, “All right, Mark, you’re the definitive and I’m the fork”

That was an important time, because then I became the customer and his ability to have empathy for my different features was really, really important. And I was like, “Hey, I kind of need this feature. I kind of would like it to go in this direction.” And he’s like, “Well, let’s make a feature flag because I use it differently on my blog.”

So we have a lot of feature flags. His blog is different than mine. It looks different. Its URLs are different. Its experience is different. You wouldn’t be able to tell he and I run the same blog engine, but his empathy for me enables my blog to still live on.

Kathy: Yeah. I think it’s really amazing. You said open egos and talked about the respect you have for each other and when you made that switch. I can imagine you would have to have kind of a very open ego. But I wonder, did that do anything for the community? Did they notice that? Did they comment about it? What did they think of your relationship?

Scott: People just put the pull request to Mark. I think that doesn’t matter. The project can’t be the person. I know that there are people-driven projects, there are ego-driven projects. There’s so-and-so that made the project X. DasBlog was never just Clemens or just Scott, and it’s not even just Mark right now. It’s just the URL that it lives in. Is that a fair statement, Mark?

Mark: Yeah, I think so. I think what I’m most proud of with DasBlog is that people contribute meaningful things from people who are obviously first time to GitHub, frankly. I’m seeing that it’s their first pull request, which really makes me the most happy. And then folks who have been on GitHub for a while.

So that really makes me happy that people are comfortable enough. I really go out of my way to make sure that folks feel real, real comfortable submitting something. We’ll talk about it. I’m happy to email folks. I’m happy to sit with folks as they figure out how to build for the first time.

So the contributions are really just incredibly important from the community. And as Scott alluded to before, making folks feel comfortable, I think is one of the biggest responsibilities you have as an open source community leader. If you can’t do that, it’s going to be really difficult to kind of have the success you want.

Kathy: So what’s more important, the code or the community?

Scott: I would say the community and the functionality. I don’t care about the code. If they type a URL and they hit enter and it shows them what they want to see, then DasBlog did its job.

Mark: I was going to just simply say that I am not so concerned that things don’t look the way I personally want them to look. I really am concerned with, “does it work in the way that we all assume it should work?” I always think about code, that “we can change this later.” Does it work first of all? Is there some reasonable consistency to it?

And if that’s the case, I think it’s most important to me that folks submit, they feel comfortable doing so and comfortable making mistakes too. And I think we can make room for folks who are at various stages of their programming career.

Kathy: Mistakes are one of the best ways we learn and grow. Setting realistic expectations is also part of that process. As we know from speaking with different maintainers, they’re often surprised by how much they have to step away from actually coding. it can be hard to do the things you really want to do when you’re busy taking care of all the issues that may arise. If he had the time, what would Scott do with it?

Scott: I wish I had more time for one-on-one sitting with someone, but I also respect that I don’t think that that scales and then that informs my content creation. Tell me if this sounds egotistical. I don’t have time nor do I think it is a good use of my time to sit down with a stranger and teach them Git for an hour.

I think it is a good use of my time to make a video on Git for an hour and send them a YouTube link to that and then ask them if they have questions. So if Mark and I were going to do something cool, like make a new feature, I think that we might talk ahead of time and maybe live stream it, so that an artifact of our collaboration is made.

Because I think a lot of open source contributors spend a lot of time playing whack-a-mole with this problem or this issue or that issue — when time could be made just simply recording a video or dictating a memo or updating their read-me.

Mark: I think the read-me is a great introduction for making sure that people know they’re welcome. So at first, when I started, I was not prepared with that particular part of the project. I didn’t know how important that was.

And so I would get a lot of the same questions and that really informed me to say, “Hey, the introduction of how people can just simply get started, what are we doing here and why? And what’s the most important thing?” That kind of read-me helped me define kind of the rules of engagement and how we can make each other’s lives much easier. So I spent a lot of time making sure that that was clear and helpful.

Brian: I really like that statement. It’s almost like we should have a podcast called the ReadMe Podcast. I think that’s a good knowledge point for maintainers to live stream or create a video that’s shareable or a blog post.

Kathy: I’ve become fascinated with internet archival systems recently. And just the whole concept of when GeoCities was being shut down, all of the servers were being destroyed and these guys found it and they were like, “Okay, well, we’re going to save this.” And now GeoCities is archived and it’s something that is near and dear to me in my childhood. So I love that it was saved.

Is that something that you guys think about, when people approach you and they’re like, “Oh, I found my old blog and I want to read through these zip files?”

Mark: Definitely from my perspective and think about that as well. I do think about the idea that the things we write are worth saving, that the web is worth preserving in its form. I do think about the fact that, as I said and kind of alluded to earlier, I like the period of hip hop where they used James Brown to kind of define a whole new subgenre of music. Right?

They kind of used the beats to kind of define something brand new. So I always think about how people are kind of remixing their lives to create new things. When folks tell me that they’ve got this blog that I believed was used back in 2005 and it’s got two years worth of data and they just want to make sure it’s out there. I think that’s fantastic. I just love the idea of preserving our identities on the web.

Kathy: I love that.

Scott: Yeah. I’ve gone so far as to make a digital will, with a digital power of attorney and a friend of mine will keep the blog running if I pass. And we actually had a friend pass recently and their blog is maintained by another friend just because permalinks matter, URLs matter.

Brian: Wow. That’s pretty deep and it’s something you don’t really think about when you’re just using the Node servers or the Reacts or the Angulars. You’re just trying to chase the resume-driven development. But, I think it’s so honorable to actually keep the lights on regardless of how big the community is or how many people are using it. Because the web, it kind of seems circular. A lot of times you see some things that we learned from Java or C applied into modern languages, and I use “modern” as air quotes. But we’re re-learning stuff. And we’re using the same thing that we already learned forty years ago today.

Scott: One of my most popular blog posts that I use every day is, your words are wasted if you’re pouring them into a walled garden and a URL that you do not own. And I think Mark and I share the opinion that owning your own URL gives you a power.

So when young people say, “I want to start a Medium, I want to start a GitHub Pages, I want to start a WIX site,” I encourage them to think about, maybe register your domain. It’s like ten bucks. We can register a domain for you right now. So whatever blogging engine you choose, you own that URL.

Don’t change your phone number if you can, don’t change your email if you can, don’t change your URL, it’s your identity. I think that’s super important. And the other thing I want to say is that a lot of people say, “Well, I don’t want to start a blog because I don’t have anything to talk about. I’m not going to have a million people visit my blog. Blah, blah, blah.”

All you need is one reader and you’ve doubled the power of your keystrokes. One additional reader. And even if no one reads your blog, I think Mark and I both have this amazing feeling when we Google something and we find ourselves in the past and we don’t even recognize the writer, but they have the answer.

And we’re like, “Oh, that Hanselman guy, he wrote a thing about that back in 2005.” “Oh look at that. Mark Downie wrote all about this.” Finding blogs about our own blog, fifteen years ago, solving a problem is a pretty awesome feeling. So that’s why blogging is an online diary and everybody should blog.

Kathy: Well, you’ve kind of both talked about this, how it helps you… Like just the craft of blogging, the craft of talking about code, of live streaming your work environments, helps you learn. And so even if you’re the only one who is reading your own blog, you’re accomplishing that goal.

Speaking of the old and the little mix of the new, and we keep talking about the young people and what would they blog on? You both have a wealth of knowledge of just existing and working on the internet for a long time.

I’m curious as we move towards serverless, we’re moving towards a lot more frontend architecture for blogging specifically. Why do we need more people like you in tech?

Scott: I would generally say that this could be a whole other podcast here because here’s… When I say the young people, I simply mean new in tech. I want to encourage people that are career changers and anyone who’s early in their career regardless of age. But serverless is a lie, right?

Serverless just means that we talk about servers less. They still exist. They’re still computers. I think the more interesting thing is the Angular view, Blazer, JavaScript, heavy frontend thing that you’re using, producing something that a web crawler can see?

I don’t care what your website’s written in. I would encourage you to be excited about whatever religion makes you happy. But when you Google for Mark or Brian or Kathy, do you find yourself and can Google and Bing see it, can DuckDuckGo send us to your URL? Is it visible on a cheap Android phone that’s on the other side of the world from you?

One of the things that Mark and I got to do was think about, what does DasBlog look like if it’s hosted in Chicago, but someone in India visits it or an Indonesian looks at it on a cheap Android phone? Should we squish the images? Should we squish the URL? Should we use AMP? Should we put it on a CDN? Should we make it so it exists in two places? Should it be scalable?

These are really cool, interesting questions, but they’re all rooted in fundamental customer empathy. Someone’s going to visit that in a taxi and they’re Googling for help on a problem. They find Mark’s blog. Did it look good? I don’t care what it’s written in.

So it’s not about, “do we need more people that are Mark and my generation?” (Or my generation; Mark is much younger), or are they using accessible technologies that are allowing them to get that information? That’s the really interesting thing. It’s about customer empathy. It’s not about technology.

Brian: And I completely agree and that’s one of the things I love about GitHub. It’s not only about the code, it’s about the relationship between the coders that makes the magic. Speaking with Scott Hanselman and Mark Downie was a true pleasure.

I am Brian Douglas, and I am a developer advocate here at GitHub.

Kathy: And I am Kathy Korevek, I work in product at GitHub. The ReadME Podcast is a GitHub podcast that dives into the challenges our guests faced and how they overcame those hurdles. In sharing these stories, we hope to provide a spotlight on what you don’t always see in the lines of code, and what it took to build the technology that inspires us all.

Brian: It’s been really great spending time with you. The ReadME Podcast is part of the ReadME Project at GitHub, a space that amplifies the voices of the developer community: The maintainers, leaders, and teams whose contributions move the world forward every day. Visit GitHub.com/readme to learn more.

Our theme music has been produced on GitHub by Dan Gorelick with Tidal Cycles. Additional music from Rhae Royal and Blue Dot Sessions.

The ReadME Podcast is produced by Sound Made Public for GitHub.

Please subscribe, share, and follow GitHub on Twitter for updates on this podcast and all-things GitHub. Thanks for listening!

Meet the hosts

Kathy Korevec

Originally from Alaska, Kathy’s journey into tech didn’t start out like most. Her first tech job was redoing her college’s library website, and she later helped a car dealership put their inventory online. There was also a brief stint as a pastry chef in Tennessee. But she ended up at Google in San Francisco, which put her on her path as a product manager. At GitHub, she managed the Documentation team, working to make it easier for developers to learn about products and unlock solutions to their challenges. Now at Vercel, Kathy firmly believes that great products start with good conversation, and should be built on data driven design, business goals, and, above all, put the user first.

Brian Douglas

Brian grew up in Florida, and was in full-time sales before the birth of his son inspired him to build an app—and he saw an opportunity for a new career. He taught himself how to code, and started blogging. His content caught the eye of a San Francisco tech company, and he never looked back. Now living in Oakland with his family, Brian is a developer advocate at GitHub, where he creates space for other developers to find their voice. He’s passionate about open source and loves mentoring new contributors. He’s also the host of the Jamstack Radio podcast and created the Open Sauced community.

More stories

Co-maintaining openness

Peter Strömberg and Brandon Ringe

About The
ReadME Project

Coding is usually seen as a solitary activity, but it’s actually the world’s largest community effort led by open source maintainers, contributors, and teams. These unsung heroes put in long hours to build software, fix issues, field questions, and manage communities.

The ReadME Project is part of GitHub’s ongoing effort to amplify the voices of the developer community. It’s an evolving space to engage with the community and explore the stories, challenges, technology, and culture that surround the world of open source.

Follow us:

Nominate a developer

Nominate inspiring developers and projects you think we should feature in The ReadME Project.

Support the community

Recognize developers working behind the scenes and help open source projects get the resources they need.

Thank you! for subscribing