The Stack Overflow Podcast

An oral history of Stack Overflow - told by its founding team

Episode Summary

Our 400th episode! Stack Overflow founders Jeff Atwood and Joel Spolsky talk about how, in 2008, they started this very podcast by recording their weekly calls about a little product they wanted to build. Their conversations, which soon included Geoff Dalgas and Jarrod Dixon, are now an audit trail for the creation of Stack Overflow, a resource that’s almost as essential to programmers as the keyboard (we admit, we’re biased). To mark the 400th episode of the Stack Overflow podcast, Jeff, Joel, Geoff, and Jarrod take us back to where it all began.

Episode Notes

Find Joel Spolsky on Twitter here.

Jeff Atwood is on Twitter here.

Geoff Dalgas is on Twitter here.

Follow Jarrod Dixon on Twitter here.

Episode Transcription

Joel Spolsky I remember saying, *''We've just changed the world for programmers, like every programmer in the world is gonna use Stack Overflow now.'' Like, that's just gonna be a thing, like your compiler or your editor and Stack Overflow. And like a keyboard and a mouse and pretty much that's about it that everybody every programmer uses. I don't think you guys believe me. But anyway, that was--

Jeff Atwood No I remember that story. Like any Joel story, I've heard this story like three times.

[intro music]

Ben Popper Stack Overflow is supported by CircleCI. Now that every company is a software company, getting code to market quickly and securely matters. Learn why developers rely on CircleCI to manage their continuous integration and delivery pipelines at circleci.com/stack overflow. 

BP Hello, everybody. Welcome to the Stack Overflow Podcast episode 400. I am Ben Popper, the Director of cCntent and today we have a special treat for you. We have four guests who will be our hosts, you'll be hearing from the co-founders and earliest employees of Stack Overflow. Some of the stories about how this incredible platform got built, what it was like to build it and what some of those folks are working on now. So without further ado, I'll pass it off to them. Enjoy the episode!

[music]

JS How's everybody doing? We have here Stack Overflow special guest stars Jeff Atwood.

JA It's me. Hello.

JS Coming to you from California. I'm Joel. I'm in New York. Jeff valgus. 

Geoff Dalgas Hello!

JS And Jared Dixon. 

Jarrod Dixon Hi. 

JS And for those of you that don't know us, we are the crew that brought you Stack Overflow.

JA Just to give people some context and history. We started in 2008, and it was just me and Joel sort of exchanging ideas over the phone. 

JS In this format, you can listen to this podcast, you can download them now.

JA And this was your idea, Joel, was to turn these weekly calls that you and I had into a podcast. I would say there's only about maybe one or two months where we weren't capturing sort of what we were thinking. So if you want to delve into the creation of a product, and, you know, how people are thinking about it, then there's this really great audit trail of these calls that Joel and I did where we discussed, you know, what is Stack Overflow, what is it gonna be and I brought in, also on the call, obviously, it was me and Joel. And then I brought in Jared and I brought in Jeff. And those were the only people working at the company, these four people for six months, eight months? I don't know. It was a while. Yeah, this was the entire company. This was Stack Overflow. It was me, Joel, Jarrod, Geoff.

JS It was a while because we didn't actually like raise money for a couple of years. And that's when we really started hiring people.

JA Honestly, it was a little surprised because when I came in, I was like, oh, Joel have money and he'll decide to fund this thing. And Joel was like nope, no money. We're rebuilding offices. We just got to go on a limited budget here. That's what you said. But that's okay. Because we didn't actually need a lot of money at that time. And luckily, you know, again, this is the great thing about having Geoff and Jarrod is that I had these close friends that I knew were incredibly talented and kind of underemployed. And they were sort of available to work on this project for basically almost nothing. 

JD Yeah, I moved back home and lived in my parents bonus room. So yeah,

GD I was contracting at the time. But I enjoyed all the hardware that Jeff sent us as a result of payment. That was his payment. It was an Xbox and a chair. [Jeff laughs]

JS It was an Xbox and a chair?

JA Yeah, we were kind of paying people sort of as we could. It was very experimental. Gosh, today, you would come in and get like $10 million dollars for a seed idea like this, like easily. 

JS Okay. So I want to tell a story about Stack Overflow, which you'll remember I told the story a bunch of times, kind of the way I remember it is that Jeff, you started working on this. And I think we started talking a little bit before, but I think you started working on it, like in April or something. And you said six to eight weeks. And I know that we launched in August, which was 20 weeks. So that was actually not really terrible. And at the time you launched it, I tried it out and the first thing that I tried was I still remember this exact question that I had. And I was like, okay, I was just working on this problem. I want to solve it. And the problem is, you have some plain text that somebody typed, and you want to search through it for URLs, and you want to make it so that you click on any of the URLs. It's obviously like a regular expression with like HTTP, and asks and a question mark, and then it starts to get kind of questionable. From there, what you do, and the problem is that if somebody puts a URL at the end of the sentence, there's a period right after the URL, and I try to make that clickable there, the period joins the URL because periods are legal anywhere else, when you really want to kind of exclude the period, but only if it's at the end. So that was my regular expression question that I went to ask. And somebody can probably find the answer that I found, but I started typing, like literally just the title of the question. And we already had this feature, which had we dreamed about and I thought was sort of way down the line. Like do a quick search as you type the title to see if other titles are likely to match. And we were probably within the first 24 hours of launching and that question, somebody had already asked was already there. And I was like, oh, this is good. I don't have to ask it again. And I clicked on it, there were already four answers. And there had already been some votes. And the best answer had already been voted to the top. So I was able to sort of see within, you know, like, really like a day of the site launching that all these sort of advanced aspects that we had sort of imagined were going to work. And that was really, really cool. And I don't, I just don't remember that blow by blow of like, what happened over the next few days. But I think the four of us got on a call, like right after the launch and did a podcast then, which I'd have to dig up. Maybe if somebody remembers that details, interrupt me, but I remember saying, we've just changed the world for programmers, like every programmer in the world is gonna have, is gonna use Stack Overflow. Like, that's just gonna be a thing, like your compiler, or your editor and Stack Overflow. And like a keyboard and a mouse. And pretty much that's about it that every programmer uses. I don't think you guys believe me. But anyway, that was--

JA No, I remember that story. Like any Joel story, I've heard this story like three times. But it is a good story. And it's a good illustration of the practical nature of what we were building. You had an actual problem that you're facing, it wasn't the logo turtle thing, which we shall not speak of. It was an actual problem that you had, right. And it was there. So I remember this and you're right, it was a classic example of a very pragmatic problem you would face as a programmer, and he had really good answers. And those answers could be edited and kept up to date and curated and everything was basically working the way it was supposed to work and working really, really well. That's a great one actually. You know, I'm always happy to be associated with Stack Overflow, because, you know, I think we avoided the trap of becoming, you know, Joel and Jeff's house of stuff. It's not, it doesn't really belong to us, but it always belonged to the community really, right. Like we were there to sort of help guide and inform and say, okay, maybe try to think really long term. And the way we do elections, nobody does this, you know, still. I'm really proud of what we accomplished. And it feels like something that you can really be a part of, you could just be a random coder, and really participate on Stack Overflow. And really help a lot of people learn a lot in the process. The best way to learn something is to teach it to someone else. And I love also that Prosus is a company with an education background, because at its core Stack Overflow is a classroom, like I don't really have an opinion about, you know, what should have been on the site, what shouldn't have been on the site. But I do understand that one of the benefits is you're saying, look, this is about work. It's about getting stuff done. It's about programming, within those boundaries, let's have a conversation. And that is hugely helpful. And I want there to be lots of sites on the internet that you go to. I think Facebook has its place, you know, the one central place that everybody's connected. But I want there to be, you know, that's why I started discourse, in a way it was I wanted there to be 1000s of really great communities, millions of great communities that were a little more niche, a little more narrow, a little more specific, like that was the internet that I remembered and loved was just, you know, all these wonderful communities of people. And Stack Overflow isn't a community people, Of programmers that love the craft of programming. They love learning. They love getting better at programming. They love sharing their knowledge, right? And those are all great and wonderful things. Jarrod and Geoff, just share anything that comes to mind. I mean, I don't want to put you on the spot. But just anything.

GD I guess one question whenever I meet people, and they would find out that I worked for Stack Overflow, they're like, wow, when did you know that it was going to be like a success? When did you know it was going to work? And it goes back to what Joel was saying earlier. It was like within the first week or two of us being indexed by Google and having content searchable. I was getting Google results for Stack Overflow. And using the site to build a site. At that point, I was like, this is going to be gangbusters. No problems.

JS Yeah, it's really like seeing your own questions that you already asked and just seeing Stack Overflow start to jump Oo top of that. We were definitely, I remember the numbers from the first few days because I knew that a Joel on Software article was about half a million page views. But on average Joel on Software is about 30,000 page views a day. And I think we started stack overflow with 30,000 page views from the Joel on Software mentioned, you know, and from Jason from a few other places, but it sort of went up by 30,000 a day. So then it was 60,000, 90 000, 100 000. At some point, you know, really within just a few days, and that part of it was just Google. It was way beyond anything that I had ever seen before in terms of traffic on a website.

GD Yeah, I think a lot of us forget what the days were like before we helped build this thing. And Jeff had a quote, I remember, of getting information on the internet felt kind of like you're going to a back alley somewhere you're like I don't know if this information even good. Says who's This person, do they have any credibility? Does the stuff work? I have no idea. So the state of software development at the time was very much an ad hoc, where can I get my information? So having this resource that we helped build this, you know, it was phenomenal game changer as well, for developers everywhere, for myself, personally, same as Jarrod. I want to say thanks to both Joel Jeff for for getting me on board and being able to be part of this mission, because it's been amazing. The whole thing, all 13 years of it. The longest career thing I've ever done. So it's great.

JA Yeah. And you bring up a good point about sustainability, because I always wondered, like, are these systems gonna work for the next 10 years, the next 15 years, the next 20 years? Like we were trying to build in, almost like governmental systems of rule, you know, like, where the community has a say in what's happening. You know, you have elected community moderators that work in tandem with the the people that are actually employed by Stack Overflow.

JS So the last thing I was gonna ask because I wanted to kind of go around the room and have everybody say, what, what would you do differently? If you went back to the beginning, you could change kind of one thing about Stack Overflow, there's sort of a famous story from Unix, where they asked Ken Thompson, who is one of the designers of Unix, what he would have done differently if he could design Unix today. But so Jeff, would that be your thing is like, help better educate people as to the sort of the need for strictness?

JA If I could go back and do one thing differently. Gosh, I guess maybe that maybe a little bit more focus on I think I got spoiled by there were a lot of programmers that really got it, like oh, I see what you're doing here. This makes sense. But then as the as the company got bigger as the audience got bigger, not as many people really understood, like, Oh, I just, this is tech support, like I type in a box and people give me tech support. That's how this works. Right? We didn't teach people. No, that's not really what we're doing here. It's a little more nuanced than that. And so my one regret is where the Ask page didn't really change sufficiently. But it has I mean, it's gotten better sense. So you know, yeah, I would rate that as maybe my one big thing that we could have done a better job with, is explaining what the goal is and why it's so strict.

JA Jarrod, do you have--

JD Yes. So it deals around like closure. We much better handling for duplicates. But really, as it's like, that's the entire, you know, corpus of questions and answers age, it's like, we need some better ways of referring to newer, this is a this question has a newer answer or has newer framework, you know, you should go look at this. So somehow incorporating newer content in to the older, highly voted and indexed content. 

JS That's a good point. And there's, there's multiple categories of that one is just when the most voted answer ceases to be the most modern way to solve that problem. And it's very hard for the new answers to kind of make headway against that. And I do know that the team is working on stuff in that area. And just the other is, as stuff gets out to lead and just gets, you know, highly duplicated. And I think we kind of, unfortunately, I think Google works against us, because they see something that's been there for 10 years. And they're like, oh, this is a classic, you're gonna like this one. Everybody should read this question. And the technology's, so you see it, you see it more now. And when we started, this wasn't visible at all. But now you see these technologies like React, that when you know, when they introduced hooks, I guess everything changed, like the way to do things became completely different. And that's not really reflected. Geoff, do you have one?

GD Comes from the back in the olden days, where I actually had thought Stack Overflow would be the only site. And so we kind of thought about this and built it in a way that was like, Okay, this, we're building Stack Overflow. But then when Jeff came with this idea, well, now we wanted to go from Stack Overflow to other audiences as superusers, the serverfault, meta. And then our idea for how does that work, technically, was literally compile and make another copy of the site, bring it up that way. And so, you know, technically, that's how we did it. So without foresight of how maybe we had more than one, we would have done multi tenancy or something like that, sooner than we had. But we got there. And eventually, things worked at a network wide level. So that was kind of fun to work through. And, you know, the design decisions we made back then, and apply.

JS I think you probably spent a disproportionate amount of your career at Stack Overflow and the number of just years of coding, working around that. The initial table design, I guess, we could call it.

GD And then the Costanza wallet, solve everything, you know, your identity that would be in one place, and you'll be able to log into any of our sites.

JS Everybody does that now, right? Every site has a good standard wallet in some format. But we did sort of recover from that one. But that was like, you can't even log on to Stack Overflow, unless you have an open ID, go get one.

JD Yeah, we don't bring up open ID. I try not to.

JA Well, I think the philosophy was correct. Like login using stuff that was out there. It was just a question of, you know, what's the path? I think we're basically there now. I have nothing to complain about, honestly. 

JS Yeah, no, everybody's there now. Right? Every site has that plug in with Google login with Facebook. And it's actually, it's, I think it's well understood by people. I think we're just maybe like, a couple years too early, because we had to, we had to send people to this my Open ID goofy thing, which lo and behold, went away. 

GD Jeff, whenever you flew me out to your place in San Francisco, whenever we first were gonna start working on the code. Now sitting in your office behind you. And I was, you know, getting ready to write like a email password. And you're like, Hey, look at somebody just ping me about Open ID. Like, we should take a look at this. I was like, Okay, let's, let's take a look. And it was like so much technical hassle over the next decade from that one change. And we just had so many problems with our login and supporting all the different variants. So yeah, I agree, Joel, that if we could have postponed adopting once it was more standard.

JA Yeah, it was okay. We never had to do our own auth, I guess. I mean, eventually, we had our own Open ID provider. But that was just, I think we wrote that right. We just took some open source thing. My thing that I always tell people is, I would have made the comments transient. Like the comment, like every comment in the comment section would disappear after seven days or 14 days on

GD On the questions and answers?

JS Yeah.

GD That would probably work. 

JS Yeah. Because the comments, I don't think we had them when we launched. 

GD We added them really quickly after.

JS Yeah, like, within days, because we realized that people would use, there was a need to have meta conversation. It's like the talk page on Wikipedia. I don't understand your question, which compiler are you using, could you please provide some sample code? And there had to be like a little bit of oh, did you try this? There had to be a little discussion.

JA Let me ask you this, Joel, why couldn't somebody come in today and say, hey, you know, what, we've decided that all comments, by default, unless they have a certain number of high up votes are gonna be automatically removed, because comments are meant to be transient. Like why couldn't somebody today come in and make that product decision?

JS I think Stack Overflow could. Especially when you mentioned if they have enough votes, one of the things that happened, which is why I would have wanted the constant disappears. In some tags, something like 10% of the answers were in the comments. Just depending on who there was. I remember, I don't remember the guy's name, but there was a guy that just like to type comment they answered. And for us, to tell him to stop doing that. And he was like that, like he didn't feel secure enough in his answers, to actually answer using an answer. But for a while, I tried to chase him around and cut and paste his answer from the comment into an answer. And I would get the rap because he was always right. And I thought that would actually teach him a lesson. And eventually, I realized, as we went through the summer of love, and all the problems with people not being nice, that the vast majority of it is happening in the comments. We built a whole live chat system sort of to get you out of the comments. But the comments were essential, and they make sense. But I would have everybody sort of, I think the change that they have made a couple of changes over the years where they made them not appear by default. So they may be there. But you might, after a while you kind of have to dig to get them. They don't just actually show up. So the likelihood that you'll see any, like nastiness from five years ago, on a page that you land on from Google is now near zero.

JA The example you bring up of, hey, I had an idea of what if all comments self destruct after seven days, I'm like, That's great. Like, I think you should basically institute that tomorrow, like all new comments, had that rule, they just self destruct after seven days. And then you clean up the old stuff. And that's the new policy going forward. Right? If your comment has value, then take it from the post-it note that's stuck at the bottom and move it into the question or move it into the answer by editing. That's what you're supposed to do. So I think that's a great idea. And my hope for Stack Overflow is that they keep you know, evolving, and, you know, coming up with better ways to do things. And there's just so much to learn over time. And I also want to give a quick shout out to anyone listening this, because I know the people listening this are probably like the hardcore Stack Overflow fans who probably listen to the podcast. And, you know, I want to thank all those people for being along with us on this journey, you know, and I wasn't even there from 2012 Onward. But, you know, they were, you were, you know, Geoff and Jarrod were and, you know, this is how we got where we are, and I appreciate everyone's support. And, you know, understanding that the goal is to raise the level of knowledge and computing, and that's a great and honorable thing. I'm happy to be part of it. 

JS Yeah, I think you're right. That's a nice note to sign off on. It's that we really, you know, we'd like to come here and brag about how we changed the world or whatever, but really, we did so little lifting. I mean, that's the thing that makes a startup possible and successful is that you find a hack, where you just say, oh, wait a minute, I can just do one thing. It's like six to eight weeks. And then everybody else can, that will enable everybody else to contribute. Like if we can just get everybody to agree to do all their discussion on Stack Overflow about programming questions, instead of on 800 little cute little websites, some of them were good. Some of them were dumb. I don't know how many experts exchange and Java brand dressing and footwear, all those websites were just there was there was one for every technology and and they were all running this obsolete software that was just emulating Usenet. Because that's all they knew, or Usenet was just emulating mailing groups, because that's what it was built on. And the whole thing was a mess. And if we could just get everybody to exert the same effort, but put it in sort of one centralized location and give them the benefit for doing that, that was sort of, that gave us that lever of moving the world with such a small number of people. And I think there's still loads of opportunities out there for for you, our listeners who want to help and everybody that's on this podcast today is no longer with Stack Overflow, the company is in very good hands. I still meet with Prashanth monthly and talk to him. And you know, one of the things that I think I probably say, literally, every time I see him is, you know, make sure you don't fall into the trap of the founders and not here. And therefore, we can't make that change. Or we can't improve that. Or we can never change, that it's got to be etched in stone. That said, I've also been very strict about making sure that everybody knows the history of why things got to be the way they are. One of the things that is nice, partially because this podcast, I remember when Jay Hamlin was in charge of all these features for several years. Before he even started, he went and listened to every single podcast beforehand. He was good. He was like a historian at that point of why things are the way they are and how that makes them work, or whether that's even necessary. So anyway, in conclusion, I do want to thank this crew, these are the people that took my really dumb idea. The original idea that I had, it was not going to be just for programmers, actually. Although I'm glad that was sort of one of the first things we did is you narrowed it down to programming questions. And that really is what made it work. But I was imagining friggin Yahoo! Answers, you know? What were the some of these questions on Yahoo! Anwers? When I eat too much salt? Narrowing it to programmers really made it work and and made it successful. So thank you, Geoff and Jarrod. Thanks to the huge team that followed on and all the people that have come through the company over the years, and mostly thanks to the Stack Overflow users, which is still on the order. I mean, it has never gone down. But I think it's on the order of hundreds of 1000s of people every month. I don't have that number at hand because I no longer have access to the stats there probably somewhere there. But the number of people that actually type a full answer every month is enormous across the entire Stack Exchange Network. And just really anybody that comes in upvotes something that they know to be right or downvote something that they know to be wrong, is making an incremental improvement. And that adds up to millions and millions of people and like, you know, one of the greatest research compendiums that has ever been created.

JA Two things. One is, I still remember, I'll go to Stack Overflow and up on a Stack Exchange site, and I get that little banner that pops up at the top says, oh, while you're here, don't forget to upvote this question and the answers right, like and I remember implementing that feature. It's just a reminder, like, you know, even for us like, oh, wow, this question was helpful. Make sure I upvote it. Let me make sure I upvote the answers. Like it's fun to see, like your good product decisions live on forever. And I just want to add also that in addition to what Joel was saying, in terms of the community providing all the work is all the content is Creative Commons. Right? And we were very strict about that. And did all the relicensing that I know was a pain in the butt to get to the latest version of the Creative Commons license. So all that data, you can download it anytime. You can have a local copy of StackOverflow just like you could have a local copy of Wikipedia. So yeah.

JS Yeah, the stuffs so out there and that was from the very, very beginning. And that was a part of our design to make sure that this was a sort of a permanent resource for the people that have created it and couldn't be sort of stolen and gatekeepers erected and a fee charged to read your own answers, which happened on expert exchange.

JA Yeah, exactly.

GD So thanks for listening. My name is Geoff Dalgas again. Employee number three, Jarrod stole the number two spot. You can find me on Twitter. Superdalgas is my alias. Jeff Atwood gave me that name a long time ago. I won't plug anything particularly. But I really want to encourage people to continue to contribute features on Meta, continue to be part of the community because it really is the lifeblood of the site. And it always has been from day one. So keep helping every developer you can come across and help people get good information to their problems. I appreciate it. And everyone else does as well, I'm sure.

JD And I'm Jarrod Dixon, and you can find me on Twitter. If I ever use it much anymore, I'm not really doing much right now, taking some time off. So looking for what's next.

JA Well, I'm Jeff, you can follow me @codinghorror on Twitter. I also have a blog that I updated once pre-pandemic, hopefully one day, I'll update it again. My current project is discourse. If you like StackOverflow, you'll definitely be interested in Discourse. It's an open source, essentially, forum or teamwork tool. It's kind of evolving in terms of what it's for, but works the end of the paragraph and lets you create your own communities has a lot of built in tooling to sort of remind people to be their better selves online, and create sustainable communities. So yeah, Discourse.

JS Cool. And I'm Joel Spolsky, aka Joel on Software, you can follow me at my blog, which is updated just all the time, at least once every three years. Current project is hash.ai, go check that out and see if that looks like something interesting. Otherwise, you can find me building large assemblages of individually pixel controlled LEDs in the desert.

[music]

BP Alright, everybody. Hope you enjoyed the episode. It is that time of the show. Usually I shout out the winner of a lifeboat badge. But today we will be reading a question asked 12 years and five months ago by none other than Joel Spolsky. How do I move the turtle in logo? Difficult to tell what's being asked here. The question is ambiguous, vague, incomplete, overly broad or rhetorical. But it was asked, it was answered. And we have it for you in the show notes. Thanks for listening. And if you enjoy the show, you can always email us podcast@StackOverflow. You can leave us a rating and a review. And there will be one more episode next week on the 21st and then we'll be taking a break for the holidays and we will be back January 4th 2022 with some new hosts and some new guests and lots of exciting stuff. So I hope you tune in then and thanks for listening!

[outro music]