This may be hard for the community to answer, but I am wondering for what reasons did the Stack Exchange team choose to use the Microsoft stack?

  • 6
    Because C# is the language the (original) developers felt more comfortable with.
    – yannis
    Jan 29, 2013 at 17:57
  • 21
    Atwood argued hard for phpBB. Jan 29, 2013 at 18:06
  • 10
    IDE, framework, performance, syntax, etc etc. Come to the darkside.
    – user1228
    Jan 29, 2013 at 18:08
  • For any responses I'd appreciate sources if available btw.
    – Mike Graf
    Jan 29, 2013 at 18:14
  • 5
    because it's awesome Jan 29, 2013 at 18:18
  • 6
    @AnthonyPegram: Sure he did.
    – user102937
    Jan 29, 2013 at 18:25
  • 6
    @RobertHarvey - I suspect Mr. Pegram was joking. At least I hope he was.
    – ChrisF Mod
    Jan 29, 2013 at 19:06
  • I think you have a legitimate and potentially interesting question, but there's a lot of content here which can be trimmed out of it. I'm going to take a pass at cutting out some of the canonically unnecessary text, but you should make one yourself as well.
    – user206222
    Feb 5, 2014 at 23:41
  • Alright, I've made some pretty heavy edits to cut out most of the not-as-relevant content. Please let me know if I've cut out anything of significant value to you - feel free to edit anything back in, as well.
    – user206222
    Feb 5, 2014 at 23:44
  • @AnthonyPegram, "argued hard for phpBB"... I don't get... What's the joke?
    – Pacerier
    Mar 10, 2015 at 19:18

4 Answers 4


From the transcript of episode three of the stackoverflow podcast

Atwood: We are not personally going to be language agnostic, because we need to actually build the site. And in terms of people actually working on it, Joel's in an advisory role, I'm gonna be writing code, and then a friend of mine, Jarrod, I'll be working very closely with. So it's sort of like 1.5 developers, so I need to actually get things done. In order to do that, I'm gonna fall back on what I know, and what I know is essentially ASP.NET. So ASP.NET is gonna be the platform

  • 2
    Jarrod would probably like his name being spelled right, updated the transcript! Jan 29, 2013 at 18:47
  • @NickCraver I guess someone could go ahead and update these other transcripts. I'd do it but this just gives me a blank page :) Jan 29, 2013 at 19:59
  • 1
    The podcasts have come a long way from Skype and a $20 recorder program. I think they even use professional microphones now.
    – user102937
    Jan 29, 2013 at 23:23
  • no wonder its so buggy Aug 26, 2014 at 17:13

Because it's sexy. Everything else being relatively equal: go with what you know, it's a huge time saver. Also, we've found the .Net platform to scale very well.

  • 17
    Only a true programmer can refer to coding as "sexy".
    – animuson StaffMod
    Jan 29, 2013 at 18:23
  • Correct me if I'm wrong, and this isn't at all a contradiction to your answer, but didn't you guys also find .NET's Entity Framework to not scale well at all? Isn't that why you guys went with a micro orm? Jan 29, 2013 at 18:25
  • 6
    @AdamRackis - we never used EF, we did use Linq2SQL (still exists in many places) and did find major performance problems (internal locks, etc.). Where we find a problem with L2S, we write raw SQL with Dapper. When we find C# too slow, we go to IL...whatever tool is needed and makes sense we'll go with, but in general I'd say 95% or more of our code is C#. Jan 29, 2013 at 18:34
  • @Nick - pragmatism at its finest. Out of curiosity, did anyone have a Friday afternoon free and test to see if EF suffered from the same problems as L2S? Jan 29, 2013 at 18:36
  • 5
    @AdamRackis - oh yes, it's really slow (more so than L2S), check out the comparison tests in the dapper repo: code.google.com/p/dapper-dot-net Jan 29, 2013 at 18:37
  • @Nick - wow. So in your opinion would you agree things line L2S and EF are more for internal corporate apps, where scaling isn't really important? Jan 29, 2013 at 18:42
  • 3
    @AdamRackis - I'm not sure of the answer to that...I think most people just don't care as much about performance, and the productivity increase they offer in some scenarios is just worth it. It's hard to be objective because we're absolutely anal about performance here. If the web tier or SQL is doing over 20% CPU I'm investigating why, same goes if the render time on a question page is over 40ms. Jan 29, 2013 at 18:44
  • 1
    " If the web tier or SQL is doing over 20% CPU I'm investigating why". That is one of the most depressing things I've read in a while. I get told when my boxes are using less than 100% CPU as it usually means something's wrong... Jan 29, 2013 at 19:39
  • 6
    @benisuǝqbackwards - our SQL server is at 50% CPU right now due to a bad query pushed...if you have no headroom you can't survive that :) with the headroom, I have time to push a fix Jan 29, 2013 at 19:40
  • 3
    This is the first I've heard anyone actually writing IL in the wild, and having it run faster than the JITted code. Is this kind of optimization extremely rare, or is it more common than I think it is?
    – user102937
    Jan 29, 2013 at 23:02
  • 3
    Where have you found hand-coding IL faster than C#?
    – jjxtra
    Mar 18, 2013 at 15:24

This question comes up over and over again and the truth of it is that the people who were here at the very beginning were simply the most familiar with the Microsoft stack. So they went with what they knew.

We use many different tools and technologies. Some are Microsoft-based. Some aren't. Don't read too much into it; we simply pick what makes the most sense to use at the time.

If you're interested, one of our recently hired developers, Jon Chan, wrote up a blog post on getting up to speed with working at Stack Overflow having come from a non-MS background.


.Net has a very familiar tool stack that the developers were already familiar with as other answers have pointed out.

It's also true that since the .Net Core rewrite .Net has been getting progressively faster. For instance this article points out that the default server (Kestrel) that is used to serve most .Net (Core and, now, 5) is wicked fast. That's super important for a site like Stack Exchange where they are processing literally millions of requests a minute.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .