Understanding the Hiring Process / anti-.NET bigotry

This morning atop Hacker News1: We only hire the trendiest.

In one of the comments discussing the post-

There have been a number of posts about hiring practices lately. And a lot of them contradict each other.

Here’s the secret to understand hiring: It’s largely random2.

The people making the decisions — the gatekeepers — are an assorted collection of flawed, opinionated people, often trying to mold the world in their image. These are people with limited knowledge, biases, bigotry and stereotypes, subjective tastes and desires…the foibles of all of humanity.

Some of them are smart. Some of them are not. Some of them are open minded, and some are not. They come from or represent organizations that may be brilliant…or just lucky. Organizations that often stumbled on success by accident, then spending years trying to recreate that spark: One of the thousands of things they did hit pay dirt, but without knowing what was the key (if not just right time/right place luck) they stratify every identifiable behavior of the firm.


When someone asks me anything about hiring — it has occasionally happened given that I’ve been in the position of influence or final say on a hundred or so hires over my career — I often have nothing to say because….who knows. No, seriously, your questions about how much detail, what to emphasize, what to downplay, how to approach it, who to contact and how aggressively, if you should include a cover letter and if so what should it say, how to approach the interview: It is utterly impossible to give a general answer that can be at all useful, beyond the most obvious of basic human behavior (e.g. don’t show up under the influence is probably a decent rule for most situations).

One person’s passion and drive is another person’s desperation. Pride of work…or arrogance/self-centeredness. Confidence or egotism. Independent drive or unmanageable lone wolf. Loyal worker or lazy careerist. Focused or “all you have is a hammer”. Diversely skilled or scattered and overly broad. Detailed or windy. Concise or terse.

One person’s variety of experience is another person’s trend chasing.

When people complain about some sort of hiring feedback, they often generalize, but more often than not they’re outraged that a single person — some random, flawed, myopic hiring agent at some random company — gave feedback that went against how they project what people should want.

And to be fair, the person complaining is also some random, flawed, myopic, defensive candidate trying to mold reality in their own image, projecting a world where any hiring process inevitably favors exactly them. We’re all endlessly lobbying.


(As an aside, and pertinent to the topic, Atwood recently posted a great article about hiring. The root cause of a lot of the hyper-selective hiring nonsense — which often becomes an egotistical “evaluate the world in my image” exercise — is this notion that once someone is in the door they’re there for life. We know that is seldom the case — the average tenure of a Google employee, with their rigorous, many step drawn out process: 1.1 years — and when situations don’t work out both parties usually want to diverge, but we hire as if you’re making a lifetime commitment)

The Purported “Anti-.NET” Sentiment

With the growing contingent of Microsoft-ecosystem developers populating HN, there has been this repeated slur about “trendy” technologies, and a defensive observation about an anti-.NET (or anti-Microsoft technologies) sentiment among many technology companies.

To go back in history a bit to set the context for what follows, for a decade+ I was primarily a Microsoft platform developer. I developed on, and for, the Windows platform and the Microsoft stack. I acquired a variety of Microsoft certificates along the way (including MCSD, MCSE, MCDBA, among others. They were a vehicle to pay attention to things I might not have otherwise, and it made me a much better developer knowing every aspect of the platforms I was developing against), and was published in Microsoft’s premiere MSDN magazine. I’m extremely adept at SQL Server, C# and many other Microsoft technologies. I spend probably 60% of my day on a Windows 10 desktop, often in Visual Studio (which, as an aside, has very decent support for the modern C++ standards now), the rest on a Ubuntu laptop.

Microsoft technologies are candidates of potential solution sets.

Yet if I am given a resume that is nothing but the pablum that Microsoft served up for the candidate, the odds that it goes to the rejection bin dramatically increase (I’m some random guy with my own set of biases and bigotry). Having C# or SQL Server on a resume is a positive, but they turn to a negative if it’s coupled with only the creations of Redmond. It makes it seem like the candidate has limited their technology horizon to whatever Microsoft gets around to adopting, often belatedly and only if it doesn’t threaten any other element of their empire. It has an extremely high correlation with professional ennui.

Many years ago I was working at a small engineering shop when the .NET platform was first introduced as a very restricted, low quality beta. The manager of a team (who later went to work in a sales capacity for Microsoft directly, which was a natural, more honest outcome) was advocating that we should embrace this beta wholeheartedly, giving a list of reasons why it would be a winner.

I remember reading the list and asking “If this is all so great….why isn’t and hasn’t Java been in the discussion?” Not that it should be the choice, but a query as to why it has never been within the realm of possible candidates.

Every benefit of this nascent product from Microsoft was already available in Java. And to move to the new Microsoft platform meant new languages and tools, new APIs, new libraries, and so on, so it wasn’t like there was some transitional advantage.

But this one was from Microsoft, so it legitimized those choices and turned those frowns upside down. We were a Microsoft “shop”, you see, and we were Microsoft developers. All of those prior criticisms, fears and concerns about Java simply didn’t apply anymore because Microsoft has now anointed those choices. They were now Microsoft Shop approved.

I grew weary of the Devout Microsoft Platform Developer (DMPD from here on in), and started to always evaluate my own perception of technology to ensure I didn’t grow that single-vendor malaise, lazily outsourcing technology selection and implementation to some self-serving entity whose best interests may not correspond with my own3.

The DMPD was sure that the web was just a short term fad, soon to be usurped by WinForms and later by WPF. That ActiveX and Internet Explorer would own the Internet future. That MVC became a favored acronym when ASP.NET MVC came out in betas, and that mixed rendering was the bees knees with Razor. That AJAX became viable when update panels appeared, and functional programming was no longer just a fad the moment it came out in F# form (just as every language element picked up by C#, turning it into the Frankenstein it has become, was unnecessary until its inclusion). That JavaScript became credible when TypeScript entered the scene, and in-memory databases became worthwhile with Hekaton.

The DMPD was sure that Windows Phone would be a success, and are probably still clutching their unloved Lumia, sure that some new strategy is going to be the thing that puts it over the top (we’ve been hearing that one for  years now, to the point that I literally get the tingles of deja vu when I see it repeated, opening the desktop calendar to confirm the date). That Windows 10 on the Xbox is going to really reshape the market and turn back the clocks, making us all embrace tiles and make the wholesale transition to Windows Apps and Surface devices.

Even when you’re working within the Microsoft stack itself, this DMPD syndrome leads developers to assume that random quality solutions from Microsoft are preferable to alternatives (whether other vendors or self-engineered). Microsoft’s AppFabric solution, for instance, was a catastrophic disaster of a project (so profoundly inefficient it was effectively an app decelerator), but you couldn’t talk about any caching strategy without the DMPD’s endlessly pushing AppFabric. Every half-considered initiative and solution of Microsoft’s, however half-baked and obviously doomed to fail — or clearly built with the primary motivation of selling Windows Server instance licenses, abusive installs that tentacle across the instance removing its ability to be used for other purposes — is embraced and evangelized.

Which makes the “trendy” slurs a bit farcical really — Microsoft has sent the faithful on a hundred futile ventures, then abandoning them in the scraggy rocks of doom4.

Do you see yourself in any of the things I just described? If you do, diversify. Take intellectual ownership over the decisions you make. They may still lead you to the Microsoft-fold because it really does offer the optimal set of solutions for your particular situation and requirements, but make it an open, honest consideration.

Others will certainly see peers they’ve worked with in those descriptions.

When people have a bigotry about the “.NET developer”, the DMPD is the root cause: No one thinks anyone is tainted by C# or defiled by .NET, but by experience they’ve come to experience enough DMPDs — effectively Microsoft salespeople doing that org’s bidding on someone else’s payroll — that they start to paint all MPDs with the same brush, which is unfair and unfortunate.

1 The server logs betray that this post received some moderate exposure from Hacker News (today – March 22nd). That was not my doing and it certainly wasn’t my intention: I don’t write “reaction pieces” hoping to grab the tail of someone else’s success, but instead because the referenced article brought some observations to mind.

There was a time when “making it” on Hacker News made me absolutely giddy, and I targeted pieces specifically to achieve that (mostly through pandering, which works wonders), to moderate success. Now, not so much. I remain convinced that HN is detrimental to the tech community, and the occasional visit only increases that belief: the small community circle the wagons and often engage in discussions that could best be described as inventing a reality.

As an aside, my $12/month AWS VM had absolutely zero problems or even marginal loading (though to be fair it was only a moderate load of readers). Every connection TLS encrypted, many with HTTP/2, some even using Brotli. Cool. What an awesome platform world we’re in.

2 The least random hiring processes are the ones that we in the tech industry generally revile: the HR-professional laundry list of requirements, predictable “What are your weaknesses” interviews, rote evaluations of cover letters, etc. In the HR world, where the gate keepers aren’t really tech adept at all and have all been trained by the same book of best practices, there are some expectations that you can pander to. But generally these are the sorts of orgs that no one wants to work at anyways, so if you fail the vanilla HR gauntlet it’s often a good thing.

3 Obviously this doesn’t just happen in the Microsoft fold. Already there are those people who seem to embrace whatever poorly-considered abomination Google pushes out in the same sort of vendor advocacy.

4 A lot of developers don’t realize how influential Microsoft once was to tech. I remember anxiously awaiting Technet subscription discs where I’d get pre-alphas of various considered SDKs and APIs and technologies. Most of them, of course died, but it was necessary to be on the leading edge of what Microsoft was doing, or be left behind. When some rumored Microsoft change was afoot (e.g. the “dumping Win32” ruse repeated for well over a decade now), it caused serious panic and concern.

76 Regular readers know that I’m fairly cynical about almost everything — 95%+ of everything is just self-serving bullshit.