In the most recent blog post on his “CEO Friday” series, the CEO of Expensify wrote a post entitled: “Why we don’t hire .NET programmers”. I’ll let you read it – but with 277 comments (and counting), he’s definitely struck a nerve in an industry still heavily dominated by Microsoft technologies, and in particular, .NET.
While I generally disagree with his assertions, I believe the point he was trying (but struggling) to make is that if you’re a start-up you probably wouldn’t go with .NET, and that developers with experience in .NET are probably not “start-up” material.
It’s quite true that most start-ups in the Web 2.0 (and post Web 2.0) world don’t use Microsoft technologies. The big reason that’s always touted is cost. And while it’s true that commercial software costs money, Microsoft has programs in place specifically targeted at new technology companies (such as the excellent BizSpark program) that helps to reduce this cost significantly. Yes – cost can become a factor as your company scales, however that can be subsumed in your production hosting costs and Microsoft technologies with their enterprise capacity have some serious capabilities to handle scale so those costs can often come much later than they might do with other technologies.
I think cost is only a small part of the reason. The start-up community represents a breed of developer/entrepreneur that often shuns the stifling, corporate world that Microsoft represents – open source languages and frameworks epitomize the freedom and innovation that has inspired them to become start-ups in the first place. This often leads to an assumption that Microsoft developers are only enterprise, services or government workers – 9-5ers who are there to do their job and little else. And while often very talented, they lack the passion to be part of a start-up. This stereotype is often wrong – it’s a generalization that unfairly masks the reality that some of the best people come from these environments.
Now a disclaimer: Xero is a .NET shop. We’re quite proud of our Microsoft roots and have leveraged our experience to get us here. But we’re not religious about it. We use a mixture of commercial and open source tools to get the job done (our entire build and release system is built in Ruby for instance) – we try our best to use the right tools for the job, whatever those tools may be.
We strive to hire great people because people make the business. So we hire .NET developers. And we hire other types of developers. The programming language (.NET is actually a platform, but that’s an aside), is basically irrelevant. We’ve hired some people completely on personality alone – even if some skills were lacking they made up for it with enthusiasm and drive – perfect traits in a start-up developer. Disregarding a candidate based on a particular language is actually pretty stupid. And we will never do it.