
My first six weeks working at Stack Overflow - jonhmchan
http://www.jonhmchan.com/blog/2014/1/16/my-first-six-weeks-working-at-stack-overflow
======
kylec
I'm curious what the licensing costs are for their Microsoft stack. Stack
Exchange was in BizSpark early on so they got a pretty good discount, but they
can't be anymore since it's been more than 3 years.

~~~
df07
The only thing that really hurts are the SQL Server licenses. Everything else
(MSDN licenses for devs, OS licenses, etc.) are small percentages on the cost
of hiring a dev or building a server. SQL Server pricing is a beast -- they
know you're locked in, and it's carefully priced just under the "what if we
just hired several people to do nothing but move us off of SQL Server" price
point.

With that said, we're getting amazing performance out of SQL Server without
having to shard, etc: all of Stack Overflow runs off a single server, and most
of the rest of Stack Exchange runs off a second server.

~~~
buckbova
"Stack Overflow runs off a single server" that is a cluster of how many
physical servers with how many processors and how much ram?

    
    
      Three Dell R720xd database servers (two in New York City, one in Oregon, using SQL AlwaysOn Clustering) (Global "Sites" DB & Stack Overflow dedicated):
    
      - 2x Intel Xeon Processor E5-2680 @ 2.70 GHz
      - 384 GB RAM
      - 21 drives
      - Mirrored Pair for OS
      - 16+1 Intel 710 200GB SSD RAID10 for databases
      - SQL Server 2014 CTP2
      - 2x 10Gb network team

~~~
kmontrose
David means a single primary, there's a read-only replica for in DC failover
and a read-only replica in our other DC for "New York is getting hit by
another hurricane"-failover.

A few services hit the read replicas instead of the primary (our API, for
example, moves what it can when it can), but the code for stackoverflow.com is
almost entirely querying a single (quite beefy) box.

We can and do sometimes run without either replica in the AG, though we prefer
not to except for scheduled maintenance.

------
scrabble
One of the reasons the MS stack gets a bad rap is that it has been adopted by
a lot of enterprises and a lot of poor developers.

You can write something inefficient in any stack, but it seems like there's a
larger proportion of unskilled to skilled developers working in the MS stack.

Edit: To clarify, I work in the MS stack 9-5.

~~~
guiomie
I think the MS stack has a bad reputation because a lot of developpers come
from an academic (undergrad) background, and not that many institutions use MS
products (licence fees). When I got out of school I was young and arrogant
(still kinda am), and since I only did Java at school in terms of OO
languages, I immediately dismissed C# as not good enough.

Then theres the whole anti-MS movement out there that will simply bash MS
stack because is it by MS.

------
jonaldomo
How do you like working on a Mac on a Windows stack? I work on a Mac on a
Linux stack and it's very straightforward. We have some Windows applications
have have to rely on remote desktop.

~~~
jonhmchan
It's not really that bad. I'm running a parallels VM running Windows 8. The
major difference between that and running a straight Windows environment is
that we switch off from Vagrant (running a VM within a VM is pretty rough)

~~~
slg
This might be a left over from my experience from older (slower) VMs, but I am
curious why you went that route over Boot Camp. Looking at the stack it seems
like you would spend almost all your time in Visual Studio or SQL Management
Studio without much need for native OSX software. Why not get the speed boost
of a non-virtualized environment in the OS you would be spending an
overwhelming majority of your time in?

~~~
jonhmchan
There are a few things in our stack like Elasticsearch and Redis that we
specifically run on the Mac and simply have the VM point to the right ports.
This basically requires that we have both running simultaneously.

However, going pure Windows on a Mac is not entirely a bad idea either.
There's a mix of devs here that use Mac or Windows - it comes down to personal
preference imo

------
isuraed
Good article. Always interesting to read how others approach learning new
technologies.

------
jonhmchan
Taking a peek behind the curtain.

Also, shameless plug for our new portuguese site:
[http://blog.stackoverflow.com/2014/01/ola-mundo-
announcing-s...](http://blog.stackoverflow.com/2014/01/ola-mundo-announcing-
stack-overflow-in-portuguese/)

~~~
jodrellblank
When I press escape on your blog page, I get redirected to a login page at
"[https://jon-chan-wz68.squarespace.com/config"](https://jon-chan-
wz68.squarespace.com/config") \- is that normal?

------
Oculus
Is it a Microsoft stack all the way down or are there parts of the codebase
that are written in other languages? In my mind, when a company gets big
enough you usually get different teams writing in different code bases if it
fits into their problem domain better.

~~~
mwsherman
There are several codebases now, yes. The main Q&A and Careers sites are C#.
We have other projects in Node and Go as well.

(We also rely on Redis, HAProxy and Elastic Search on non-MS platforms.)

~~~
Oculus
That's cool, I never knew Stack Overflow was using Node in production.

------
timlin
What is the arch-shaped object to the left of his keyboard in the picture of
his new Mac?

Edit: Nevermind, found it under Accessories on Apple.com. It's a BookArc Pro
by Twelve South - [http://store.apple.com/us/product/HA242ZM/A/twelve-south-
boo...](http://store.apple.com/us/product/HA242ZM/A/twelve-south-bookarc-pro-
vertical-desktop-stand)

------
mattfenwick
Very interesting read, thanks for posting.

Out of curiosity, since you mentioned you're a self-taught programmer -- what
did you major in at college?

------
thebouv
I'm surprised. I thought everything was written in JavaScript nowadays.

------
gtrubetskoy
Stackoverflow runs on Windows, really?

~~~
sdegutis
I recently had an epiphany: operating systems are just operating systems. None
are better than the others, they're just different. Having tried nearly all of
them by now (MS-DOS, Windows *, Mac OS X, Linux), I regret having any loyalty
to any of them.

~~~
Thaxll
Well, on the server side Linux is better than Windows, price, speed, tunning,
customization ... It'a a no match.

~~~
couradical
I think that might be an oversimplification, certainly when looking at all of
the costs (labor, management tools, environment, etc.)

They're different operating systems, and they each have different strengths. I
run both Windows and Linux servers, and there are some things that Windows
handles better, and some that Linux does.

