Expensify CEO On 'Why We Won't Hire .NET Developers'
TheGrapeApe writes "The CEO of San Francisco-based, VC-backed startup Expensify wrote a post on the company's blog about why he considers .NET experience on a resume a general liability, saying that it will 'definitely raise questions' when screening for developers in his shop. Quoting: '.NET is a dandy language. It's modern, it's fancy, it's got all the bells and whistles. And if you're doing Windows Mobile 7 apps (which the stats suggest you aren't), it's your only choice. But choosing .NET is a choice, and whenever anybody does it, I can't help but ask "why?"' Does he have a point? Or is it counterproductive to screen devs out based on what platforms or languages they have used in the past?"
But choosing .NET is a choice, and whenever anybody does it, I can't help but ask "why?"
I do .NET because that's where the money is. Next question please!
I've been using C# at work for some time now as a co-op, not because it was my first choice, but because that was what we were told to use. I know other languages, and I'm quite good with them.
It's just as well. Anyone who thinks .NET itself is a *language* isn't someone I want to work for.
Only known ONE .NET programmer, and he was damned fine, thing is, he was a damned-fine C++ programmer too, so ...
I don't know the meaning of the word 'don't' - J
I'll make sure not to hire Expensify. Why? Well if they have a language-zealot mentality, then I'm not going to like what I get. That is the sign of code hacks, not developers. Real developers can develop in more or less any language. They'll have their favourites, of course, and use different ones for different jobs, but they won't write off a given language for ideological reasons.
I can totally understand and support not hiring .NET only developers, particularly if your market is non-Windows. I mean someone who only does .NET may well be the aforementioned "code hack" and of course is little use if you are doing Android development. but that you'd count it against someone that they have done it? That just speaks of ideological zealotry, not anything practical.
One of my coworkers is our UNIX and Linux lead. He runs those servers and so so well. He has hacked many a script to make Linux work well in our unique environment. He does back end development on our website, which is LAMP. However can can truthfully put .NET development on his resume. He has done some .NET stuff for the Windows side, and also does it as a consultant. It is not the only thing he does, but it is one of his many tools and I'd expect him to list it.
He's a very skilled individual and to exclude him because he has additional knowledge of MS development would be really stupid.
So to me, this CEO has proclaimed "Don't hire my company. We are zealots who will insist in coding in a certain language, even if your project would be better served by something else."
Thanks for the warning bud.
.NET (like Java and old versions of Visual Basic) lets stupid programmers who usually wouldn't be able to do anything at all, do a bad job of something. So I can see where it gets it's bad reputation from.
However, for intelligent and talented programmers, .NET increases the speed that they can write code greatly. Unless you are someone like Amazon, Google or Oracle then developer time is much more expensive than CPU and RAM costs. Desktop computers have been faster than we need them for years.
.NET is also simultaneously lower level than Java (it supports pointers and pointer arithmetic), and higher level (LINQ, extension methods, better generic support, F#, TPL), so I can't see why you could pick on .NET devs and not on Java devs.
You can't claim .NET is Microsoft only either, Mono runs on *nix and works absolutely fine for server code and most windows forms code.
I dream of a nation where a man is not judged by his skin color but by an number assigned by a credit rating agency.
Dear Slashdot,
Thank you for propagating this non-news publicity stunt in true Slashbot form. You never disappoint.
Love, Expensify
Who the fuck are Expensify? What, if any, notable things have they accomplished?
I agree that the person who wrote the piece this article is about has a point. I don't think I'd go so far as he does, but I can definitely see why .NET would be a negative, as well as having a Java-only resume.
In truth, I've always been mystified as to why anybody would invest the time or energy in learning so much about Microsoft's platforms. It's not like that knowledge would do you much good if Microsoft were to simply vanish from the planet.
On the other hand, all the stuff I've learned about computing outside the Microsoft world will do me a whole ton of good even if several major vendors leave the planet. If RedHat dies, for example, it's not like my Linux knowledge is useless. If the FSF dies, my knowledge of C++ gleaned by using g++ isn't useless. If Oracle goes up in a puff of smoke, my knowledge of Java will not go to waste.
But if Microsoft were to utterly disappear, we'd have about 5-10 years of useful programming that could be done before all the other platforms outpaced your aging, no-longer-maintained platform so far that a good 60% of your knowledge was useless. It's a dead end because you've inextricably tied yourself to one, and only one vendor.
And recognizing this trap for what it is goes a long way in my evaluation of a candidate.
Need a Python, C++, Unix, Linux develop
People normally don't flamewar over common knowledge, sorry.
It is critical, absolutely critical, to hire the very best people you can find. The output difference in going from a bad to competent to good to great in a developer is exponential, but the difference in cost is merely logarithmic. Only a fool lets his personal prejudices stand in the way of finding talent, whether that prejudice is about race, religion, sexual orientation ... even development languages and platforms.
Maybe the candidate developed in dotNet because that's what he was asked to do by his boss. Maybe he thought C# was interesting, or would get him the job he wanted. Maybe he just *thinks* differently than you do, and so prefers dotNet to Java, Python, Ruby or whatever rings *your* bell.
What you are looking for is somebody whose talent ideally transcends languages and platforms. Somebody you could ask to write something in x86 assembler, and he'd learn it and turn out something pretty good, maybe not as fast as the average assembler programmer could, but the second time around he'd be on par in getting the job done and by the third he'd leave the average programmer in the dust. You want a creative problem solver, a deep thinker, a team player who knows when to take initiative, somebody with real grit and dedication to the success of the project.
What you want is all of that. But you'll never get it. That means *right from the get-go* you're talking about compromises. And this guy's thinking about blackballing applicants because they have experience he doesn't? Jackass.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
It's not like every job I've ever had I was thinking "what will this make my resume look like, in the event I run into some language snob in the future?"
I'm in it to get paid. If there was money in it, I'd write COBOL apps to run on mainframes that are beowulf clusters of iPads. I have a family to feed and a mortgage to pay so I don't wind up homeless. I don't give a rats ass about much else. Pay me and I write code - that's it.
Weaselmancer
rediculous.
I've never been happy to let whitespace mean something in a program - it just seems wrong.
That's all I've got against it.
I wouldn't hire anyone with majority Windows experience in general. It speaks to their judgement. You decided to use Windows instead of a Mac or other UNIX? In this century? In San Francisco and Silicon Valley? I'm not impressed, because you are not going to know how to do the real version of a task. You're missing key tools. You're hobbled by Microsoft's involvement, not enabled.
For example, when interviewing Photoshop pros, I'm always looking for Wacom Tablet experience (it is amazing that people think they are "using Photoshop" with a mouse) and rarely does someone with Windows experience actually know how to use a tablet. I'm always looking for Photoshop automation experience, because there is a lot of grunt work in graphics, you can make it all go away with a little AppleScript. Rarely does a Windows user know how to automate Photoshop, because it is 1000 times harder on Windows. Further, Windows users don't know color management, which is a bolt-on for Windows, but built-into the Mac. Then a guy or gal comes in who knows Photoshop, the Mac, the Tablet, AppleScript, and ColorSync, and they can sit down and be immediately productive all day. And they won't need I-T help all day, either.
So I get what this guy is saying.
I have a chef friend who told me the most important lesson a chef can learn is to use great ingredients. She said a chef with organic, grass-fed beef and organic vegetables and a little olive oil and fresh oregano and garlic is going to out-cook a more-skilled chef who has to use typical mediocre supermarket ingredients. The great ingredients already have flavor from the start, and the mediocre ones lack flavor from the start. So she said when she is hiring people, the first thing she looks for is their attention to ingredients, because that means they are paying attention to the big picture, they are going to make more flavorful food no matter what circumstance you put them into, what kitchen, what challenge you set for them. I took her advice and even with my very limited cooking skills, I suddenly make great-tasting food because I start with great-tasting ingredients.
The equivalent advice I give people who ask me how can they make digital art or applications as good as mine is "get a Mac." Start with good ingredients like ColorSync, AppleScript, QuickTime, WebKit, Apache, PHP, Python, Perl, Ruby. People come back to me a month or two later and thank me for making them into better artists with that one bit of advice in the same way I thanked my chef friend for dramatically improving my cooking by opening my eyes to the importance of ingredients.
Somebody who chooses to use a Windows machine in the 21st century is not paying attention to the big picture. They may be able to cook you a meal, they may know how to bake and broil, but they will not make you any great tasting food.
And if you are talking about mobile applications specifically, then somebody who went through 2008-2011 and did not get into Xcode? You have to wonder is their passion mobile apps? There is a whole PC replacement cycle between 2008-2011 and they didn't buy a Mac, on which you can also run Windows, so that they could make an iPhone or iPad app? Even with my limited Windows experience, if Microsoft had done iPhone in 2007 and iPad in 2010 instead of Apple, I would have a copy of Windows 7 and Visual Studio and would have made apps for those devices. So someone who spent 2008-2011 doing .NET is not part of the mobile game. You have to be suspicious of that person at an interview. You want somebody who makes mobile apps, not Microsoft apps.
By "guys like in the article", I assume you're talking about the founder and CEO, who's discussing his hiring practices, and observations of employee behavior.
I actually find his evaluation to be pretty close to factual. Most Windows driven developers who swear by MS products, frequently don't know much more than "I point, I click, it works."
I was recently sitting in on a meeting where two developers were pushing the development of a new site. The CEO had a clear plan of what he wanted, and it was perfectly reasonable. They gave an outline for their plan. It was later demonstrated that ... "In Visual Studio, all I have to do is click this, then click this, and then it's done." There was a lot of MS jargon thrown in. While I'm fluent in it, I refuse to repeat it. :) They still were unable to provide the ability for some very basic functionality. Their claims ranged from "It can't be done" to "It would take years to develop". What? I program, or have programmed, in several languages fluently. I'll admit, I don't do much Coldfusion nor Java any more, as I haven't had any demand for it. I also associate myself with a wide variety of very good developers. While I may not code in their languages, I can read and understand what they're doing. There's a huge difference between seeing a function and knowing what it does by name, and needing to look up the syntax for each one if I were to try to do it myself. In any of the languages I'm fluent in, the functionality the CEO asked for was trivial, and even if it were to be integrated into a completed project, it would be less than a week to add the functionality in.
Their stopping point was "Microsoft doesn't provide it in Visual Studio, we can't do it.". So far in seeing Microsoft based developers in the real world, that is not the exception.
So as the author said, if you want a 1.6oz burger, the McDonalds kitchen is perfect, and you can churn them out all day. If you want the 1.7oz burger cut square, with garnish and a crinkle cut pickle instead of a sad limp excuse for a steamed pickled cucumber, you'd better find someone who isn't primarily focused on doing the predominant MS methods.
There are perfectly good .NET developers out there, who don't use the crutches of the common tools, but they are rare. There are people who depend on crutches of their languages though. I've seen "PHP Programmers" who are webmasters as long as you use a template for a common CMS. Ask them to write "Hello World", and they're lost.
I asked an ASP person to write me a simple "open a file, write some arbitrary string, and close the file". Two hours and 50 lines of code later, it was done. The mention of file locking just got a blank stare. I just said "forget it".
Serious? Seriousness is well above my pay grade.