Ask HN: Are Microsoft development stack and Azure a dead-end career path?

89 points by a_brawling_boo ↗ HN
I had a recent, lengthy, conversation with a recruiter. He said two things:

1) Microsoft dev stack is really a dead-end, any new startups or even large corporations starting new initiatives are more and more are moving away from any kind of MSF tech or Azure cloud development, and 2) no developer really wants to work with MSF tech.

I have lived in the Microsoft world my entire career, although MSF is increasingly open source/polyglot. Also, I spent a couple of years doing node.js, react, salesforce dev and integrations, Heroku, etc. I found it a breath for fresh air in some ways but lacking in others. And I have to say that I do 'like' working with C# and Azure and the rest, but I am at the point in my career, and with the market the way it is, that I could still possibly make a move and not take a major hit salary-wise, but I probably not for too longer.

For context I am approaching 40 and live in a major US city in the southeast, and I do not have an interest in going into management.

146 comments

[ 3.3 ms ] story [ 227 ms ] thread
I don’t think that’s true at all, especially Azure. It is very valuable to know Azure along with AWS and possibly GCS. Recruiters in general are not reliable technical or even market references IMHO.
You can make a solid living doing BI modification/integration for shops that are on Azure. Not dead at all. Especially since AWS has nothing that compares.

Your recruiter only cares about fields that can get candidates placed. Of course he needs to drop hot buzzwords to get people interested.

Quite the opposite. Tons of opportunities with both. Many corporations are locked in to C# more or less permanently.
Using C# really shouldn't have any bearing on your choice of cloud.
The conditions that lead an organization to utilize C#, .NET, etc in the first place do.
Azure has about 21% market share and revenue of around $15.1bn (sort of, MSFT bundle it with 'Intelligent Services' in their reporting). Someone must be using it. It clearly isn't dead.

Secondly, some recruiters are liars who will tell you literally anything to try to get you to apply for jobs they're recruiting for. A recruiter saying MSFT stack is a dead-end just means they don't have many MSFT stack jobs on their books. If they had one they'd put you forward for it, and not tell you that they think the stack is a dead-end.

MSFT's stack is not going to disappear any time soon. It's growing just like all the rest of the industry. There's definitely no harm in learning other things, but don't write it off if you want to carry on with it either.

And moreover that 21% is trending upwards according to https://www.statista.com/statistics/967365/worldwide-cloud-i...
A lot of early cloud adopters were more "nimble" organisations who didn't have deep ties to MS enterprise agreements. We are now in the phase where those large enterprises have gotten over their early cloud experimentation phase and are migrating for real - which will result in a bit of an MS resurgence I expect.
But the question is if you want to work at the 21% of companies that use Microsoft.

Based on my own experience, you probably don't. They tend to be legacy companies in low-growth areas and lower pay.

While Azure companies do tend to skew "larger enterprise", I don't think it's fair to say they are lower paying. If anything, more Azure-related jobs I have seen a higher-price point on than AWS jobs (in my local sphere). I think this is because Azure has higher demand than supply, and people are less likely to choose it as their primary cloud right out the gate.

It's also worth noting that a lot of consulting companies focus on Azure. This is because of perverse incentives, but still worth noting.

Alot of recruiters namely in London are outright liers.

So much so they will have you go through the job process to meet their targets or even when they know better candidates are being put forward.

They employ so many unethical tactics it's best to always check with the company directly if the role still exists.

We work with many recruitment agencies and having seen and heard what I have I no longer would take any at face value if I was on the other end.

We use the full Stack just like alot of the firms around us, i have a feeling the foss Linux crowd is trying to say otherwise its not popular blabla fact is alot of Dev happens there its not a deadend..
I think the ratio of open-source contributing company ia going to be much lower around the MSFT ecosystem than on others. This does not mean less work or less skills are around, they are just less visible. Case in point: node and the whole JavaScript ecosystem seems to have a bad case of the look-at-me's...
I agree. Especially on the Azure part. AWS may be the top dog but there are tons of orgs hosting stuff on Azure. GCP may be the smaller player but has a niche as well.

Sounds like typical recruiter-speak to get you to ignore others and take one of their jobs.

Any large business that's remotely in competition with Amazon corp is (rightfully) scared by Amazon's use of marketplace sellers' data to compete with them, and don't host on AWS, because they're afraid of Amazon using AWS data(that they have complete access to) to compete with them. So this goes for almost all retailers, grocery stores etc.
Yup, this is why major retailers (Walmart etc) don't use Amazon cloud services and instead use a competitor. I believe Walmart and some other large retailers use Azure but the retail industry in general is split between Azure & GCP for their cloud computing needs because they don't want to feed their competitor.
> some recruiters are liars who will tell you literally anything

This has been my experience as well, and on both side of the fence (as a potential hire and as a recruiting manager).

In both case, this does great harm.

I can't speak for Azure specifically, but I've been hearing variations on this theme since at least 2001 or so, when VB diehards thought the switch to .NET was going to be a failure.
The OP is clearly hyperbole, there have been failures though. Imagine if you went all in on Silverlight or Windows Phone, haha.
...this is why I'm bullish on MS/Azure but steering clear of Blazor. I love C# but don't want to couple my front end dev to it, despite the allure of "right once run everywhere" that's being pushed (once again)

I really miss my windows phone :(

Do you plan on retiring before or after 2050? I have been hearing MS tools and languages are dead and buried for two decades. They'll be here long after I retire.
And probably after we expire :)
Definitely not. MS shops will be around a long time after you and I are out of this game.
Totally wrong. Many incompetent people are using it. And incompetent people is where the money to be made is.
Can't help but to agree. Azure, SalesForce, Oracle all scream incompetence and ... easy money, lots of it.
Incompetence is everywhere, probably evenly distributed.

It's just that at large scale it becomes noticeable, small orgs can float through unnoticed.

I think natural selection is also a factor. Probably you are right that incompetence is more or less evenly distributed, it's just that only organisations with a lot of money can survive using MS stack, by pouring money on a problem. And you can be on the receiving side of it.

Plus, few competent people like working on it, they prefer sexy open source things, it means it's easier to stand out.

Hardly a way to have a happy career, but surely a way to have a happy (and early) retirement.

It depends who you want to work for. C# and Windows tend to be more popular with a certain type of company, often one more established.

The node/react world tends to be more popular with younger companies and startups.

You'll find overlap in these worlds but it is a hard road to go against the overall direction of a market. It'll limit opportunities but can be done. It's up to you to figure out which is more suitable. But it's not a dead-end. If you're looking around and noticing your peers aren't into the same things you are, you may be trying to go against the direction of the market. You could try changing your peers.

Not true, however, I'd wager that the opportunities won't be trendy and hip. You are more likely to be working on some dashboard for a 70 year old corporation as opposed to building parts of the stack for the next new hotness.
> You are more likely to be working on some dashboard for a 70 year old corporation as opposed to building parts of the stack for the next new hotness.

Eh, both of those sound equally terrible.

Well the way I imagined them to be is two extremes
Would strongly disagree. I'd also suggest that in my experience MSFT shops tend to be more "conservative" on the whole vs a lot of other stacks.

By conservative I mean not rushing into new shiny things all the time, finding out later down the line that it isn't fit for purpose and having to rewrite it. If anything they are the other way round (too much .NET framework dev still going on IMO). The JS ecosystem is terrible for this and I find it really frustrating.

I would agree though that it is seen as quite an uncool stack and I don't see many startups use it, which is a shame as .NET core really changed the equation for me on the whole stack (I really disliked having to use windows server before).

However, there are still an enormous amount of corporates and SMEs that use it, so I can't see the work drying up. Often the pay is better as well at these firms than startups (but probably less chance of a big equity payoff).

I can confirm, my current job plus my two previous ones all used .Net and Azure infra. I don't think it's dead.

I am in the Houston area btw.

You’ll be fine; the way I look at it, AWS is built for product development and Azure is built for corporate IT. Many companies have simply accepted Microsoft lock-in. I have a number of clients moving from AWS into Azure to take advantage of free money and discounts from Microsoft for having an ESA for O365.

In short, Microsoft has the best B2B software sales engine that has ever existed. This has been true for at least 30 years. It’s the main reason for their success — they know how to get people to pay for their products. It’s not the flashiest tech but it’s enough of what their users need, and the sales engine makes doing business with Microsoft easy. AWS has a lot more friction in their enterprise sales process, so they rely a lot more on developer inertia and word of mouth.

startups maybe - but large corporations might be a different question. At my last company, 40,000 people, they used MS Office and I had the impression the sales pitch and glide path from Microsoft to just embrace the Azure cloud was a strong one, so many teams use Azure ...
That is complete BS. The MSFT dev stack is alive and well, it is not going anywhere. Azure is widely used in enterprises and startups.
I don't think Microsoft stack offers a path to like, a mid-six-figure job at a major Silicon Valley tech company. Nor will you me able to leverage much of the SV ecosystem if you're trying to do a startup. In that sense it could be seen as a career dead end.

But there are plenty of solidly middle-class developer jobs in the IT departments of traditional companies, and a robust ecosystem of small consulting firms all around the country; I would guess that your best bet for optimizing lifetime earnings on the Microsoft stack is to grow some business savvy and start one of those.

It would more likely lead to a six figure job at an enterprise company or consultancy. MSFT "stack" is enormous.
I don’t know how many enterprises are paying their mainstream senior engineers $400k like a Facebook or an Uber or an Airbnb does.
But there are a LOT more of them and they’re located around the world. If you aren’t located in SF/NYC, $200k plus stable hours isn’t exactly terrible — and if that means you’re near family or other regional draws, that’s plenty for many of people.
Sure, but you are settling for sub 200k at an enterprise co vs 300-500k at a tech co.
> I don't think Microsoft stack offers a path to like, a mid-six-figure job at a major Silicon Valley tech company.

Maybe at Microsoft?

Microsoft does not pay mid-six-figures. They are lagging behind monsters like Facebook and Google (but so does Apple AFAIK).
Reminds me of a CS professor telling me that a COBOL programmer will never go hungry ... and it's still true :-)

MS stack will be high quality and used by clients with $$$ for the rest of your career.

With that said, any serious non-MS shop will be happy to have your experience and so switching up stacks shouldn't be a problem either if you find a good team.

I would just apply broadly and go from there.

> MS stack will be high quality

As someone who has used the MS stack, I have yet to witness anything I would call high quality.

lol, C# (.net) is a fantastic language with some of the world's best language designers taking part in its initial creation and updates.

It has regular improvements and is LEAGES more well-design than JavaScript and I'd say Java.

Sure, it's no GO, but it is ever evolving.

C# is great, but a lot of the supporting libs like Blazr are not.
One thing Microsoft does that Google does not is persistently push their garbage until it's actually not bad.

Blazr is relatively new compared to Microsoft's other libs but I'm sure in 5-10 years, it will be solid. It took .net core years before it became decent.

Sigh. Often MS software is not understood by those that criticize it.
> MS stack will be high quality

I've yet to experience a MS product that I would consider to be "high quality" (including Azure)

Azure is not bad compared to the options. Also, MSFT is throwing a lot of brain power at it (notable systems researchers from MSR). Curious what you consider is better?
most of my bad experience with Azure is the control interface, which is worse than AWS/GCP in every way

random incomprehensible error messages, near constant UI timeouts and terrible UI performance and experience (artifact deployment has been "skipped"? why? no way to know), etc

the Windows VMs are also extremely slow compared to my employer's non-azure VM, with the Azure VMs having double the VCPUs, disk IOPS and RAM (despite having the same "stack" deployed on it)

I haven't experienced these UI problems despite regular use of Azure.

The VM speed I can't comment on.

Why the same quote and reply with both your accounts?
it's possible that more than one person thinks that Microsoft products are less than high quality
> I've yet to experience a MS product that I would consider to be "high quality" (including Azure)

Most aren't. Some are. As with all software/ecosystem providers.

Do any programmers go hungry?
Definitely not in his lifetime at least!

I imagine in two or three hundred years though we will have moved past COBOL completely. That being said the idea of some future advanced civilization trying to wake up some old programmer from cryo sleep so they can decipher an ancient mainframe that is still somehow running does make me laugh!

TBH I don't see how azure is dead end, it's just another cloud provider. If someone told me they manage everything in azure then I wouldn't be worried about them coming to work on say AWS or GCP. If they know the concepts and know how to navigate a platform then jumping to another cloud provider isn't much of a big step.

Likewise C# has been around for a while, sure companies may move away from it, but it will always be used, but again someone who can do C# are probably in a good position to pick up another language as well.

While I think most people will agree it's not a dead end tech stack and their will be companies hiring for decades to come there's a element of truth here that isn't being discussed.

From what I can see Microsoft stack is used mostly by enterprises that are not engineering centric.

For all of the largest engineering centric companies that pay top of market only one heavily uses Microsoft....and that is Microsoft. Furthermore most VC funded startups also tend to shy away from Microsoft stacks. (Exception being parts of Azure compatible outside of the MSFT stack and other polyglot tools like VScode)

So while I don't think you need to worry about employability I wouldn't recommend investment in the stack to new graduates. Obviously my perspective is limited so I'm curious to hear counter points.

Even Microsoft itself doesn't pay top of market anymore. They are increasingly known as one of the lower paying "big tech" companies.
That doesn't match what I've been told. It's more competitive than it has ever been out there!
From my experience, out of the big 5 they pay the lowest.
I think you're pretty much right.

Firstly, I guess we can ask whether Azure is genuinely the Microsoft "stack". Most Azure servers are Linux and the services they provide are mostly web, ML, RDBMS related. I don't think that's what the OP had in mind.

If by the Microsoft stack we mean Windows, SQL Server, .NET etc. Then it's definitely looking more and more dead end. In the past few months I've been working with MS tech a little bit again, getting back into a bit of Windows development. It's a mess. I am constantly left astonished by the state of internal decay that evidently exists inside the Windows divisions. Basic subsystems have serious bugs, even after being pushed for years. Their docs are a mess. Their platform is absurdly complicated - look at the schemas for an AppX manifest for an example [1]. UWP and Windows Phone are deprecated/gone yet references to it can be found everywhere. The recommended way to write Windows apps is still C++. The most exciting things they're doing with Windows are upgrading the command line support to match what Linux was doing 20 years ago. dotNET is some kind of mess with many forked versions, a language that's behind Kotlin and a runtime that's behind the JVM. And the problems just continue.

One thing that becomes clear when you look around is that very few people are really writing Windows apps at all nowadays. They exist, but they're mostly older codebases. Their attempts to move beyond Win32 have mostly tanked for this reason - the people who would once have been writing against the new APIs switched to cross platform tech.

So in this regard I feel it's a dead end stack, yeah.

[1] https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/uap...

I'd agree with most of your points - the nature of the MS stack, Windows dev being a mess, docs polluted by related-but-deprecated technologies/versions etc.

Where I'd disagree strongly is dotNET being a mess of forked versions, the language being behind Kotlin, and the runtime behind the JVM.

The DotNet versioning annoys me, but it is actually straightforward. The Windows-only framework stopped at v4, then cross-platform Core began at v1 and now we've reached the point where Core v6 is just DotNet v6 because there is no non-core alternative at this versioning point. If you set aside naming/numbering confusion, you have a forward-moving framework up to v4 being overtaken by a rewritten cross-platform framework catching up then replacing it. There were some mishaps on the way, but this is not a mess of forked versions it is actually a pretty fast deprecation and replacement of a huge system with a massive high quality effort.

As for the main DotNet language, C#, it is generally not considered to be behind any other language out there. Perhaps in some areas different approaches have been taken when it comes to syntax, structure, tooling, but it is a very well designed language that is professionally respected, advanced, and innovative.

As for the runtime, it really isn't behind the JVM. It is supported on fewer platforms, but those it is supported on are very well catered for. Including not needing a (shared) runtime at all as builds can produce single binaries too, as per Java.

So no, the problems don't continue.

I do wonder if your recent experience of it may well be true, but is influenced by it being Windows development. Outside of internal enterprise tools, the main work is on the web/network (not Windows) and that's where it excels.

Well, C# has a less convenient syntax than Kotlin but without any more powerful features (maybe linq?). That's what I was getting at. And .net Core doesn't have a pauseless GC or anything like Graal/Truffle.

I agree it's not really a bad stack or dead end for writing Linux web servers, but I wonder how many new projects are adopting it at this stage.

> From what I can see Microsoft stack is used mostly by enterprises that are not engineering centric.

I'm going to counter this anecdote with my anecdote. I have spent roughly half of my time in the boring world and half in the HN "sexy" tech world. 25 years of programming experience and have had immense failures and some pretty good successes.

Unquestionably, the sexy tech people were—and to this day are—worse technologists than the boring enterprise software people. I have worked at two unicorns.

One of things I believe to be true (and which is probably offensive but here goes) is that the sexy work is a direct result of over-financialization of the sector. It's a form of signaling: "Hey, our business model is so successful we can afford this shitty niche technology and hiring too many people."

There is a direct correlation between people using trendy yet mediocre technology and comments like "let's be practical" and explaining why your software can be worse than it is, because those companies don't actually need technology. As well, the people that manage those organizations are not particularly impressive because they need large groups of people to scale. (It's also why people like a16z can have the gall to claim 10x devs is not a thing, because if it were, the SV model of get-big-quick and hiring huge amount of devs with big capital and unsustainable unit economics would not be a successful proposition.)

Since the late 90s, the governing model has been: "Hey, that's cool what you do. But have you thought about putting it on The Internet?". It's the Portlandia bird sketch but with Put a Web On It. Apply this to Big Data or ML etc. This model has been very good for growth, but it requires absolutely minimal technical expertise.

I feel like there is some true observation you've made, but I can not figure out what it is from this text.

I absolutely agree with your opening statement about the flashy new operations usually being crap engineers, but cannot follow any of the rest or see ho it supports that assertion.

Or what little I can parse, seems backwards from my own experience.

For instance, the most I hear the word "practical" is to justify doing something inefficient but safe, ie use a microsoft product or service and accept it's limitations and cost, or some other safe inefficient choice like vmware before azure was a thing, etc.

So it doesn't support the idea that it's something the ignorant kids say, OR the opposite that the better engineers say it, it's just sort of a non-sequiter or something.

Personally I've grown to hate the word even though of course one has to use it and it's a valid concept to be practical. I just see it way over used to justify predictability over goodness.

The manager types don't really care about advancing anything. They do lip service to the idea of making more money by making something more efficient, but really any change at all is worse than any promised gain. Really they would love nothing better than to just keep cranking the machine they have now exactly the same way forever. They only change by force when the machine stops producing.

> For instance, the most I hear the word "practical" is to justify doing something inefficient but safe, ie use a microsoft product or service and accept it's limitations and cost, or some other safe inefficient choice like vmware before azure was a thing, etc.

Sure, I hear you and I've experienced this too. I've been on nightmare ASP.net spaghetti code projects that would be good fodder for programming sites. VB projects that are a stitched-together set of tools with a frontend full of a million buttons, etc.

But on the flip side, have you never worked at a company full of Ruby/PHP/Python engineers that have trouble getting their software to build and run correctly? People with billions of dollars who find the prospect of putting something on a web page—for a business model that has existed for a century—challenging? I have many times, and it's a reflection of how insular that segment of the industry is that they don't find anything weird about this.

In contrast, there's an army of JVM engineers out there that don't spend any time on HN because the JVM solved the problems HN talks about 20 years ago. They don't need to talk about it or consider it "news" because it isn't. For instance, the technical level of InfoQ is whole echelons higher than here. This is not to disparage the very real benefits that the "Hacker" mentality has provided to the world. SV are accomplished business and product people, and they've managed to impress the world with the type of organizational scale they can deliver. But technical it ain't.

"have you never worked at a company full of Ruby/PHP/Python engineers that have trouble getting their software to build and run correctly? People with billions of dollars who find the prospect of putting something on a web page—for a business model that has existed for a century—challenging?"

Ohhhh yeah. Yes.

> One of things I believe to be true (and which is probably offensive but here goes) is that the sexy work is a direct result of over-financialization of the sector. It's a form of signaling: "Hey, our business model is so successful we can afford this shitty niche technology and hiring too many people."

How much of that was a result of companies wanting to use Linux server-side and MS not supporting it?

Truthfully, I don't think that has much to do with it. There is a real cultural difference between the MS ecosystem, Linux or no, and the traditional open source ecosystem.

I was simultaneously an open source advocate (using FreeBSD 3.0) back at the point when NT4 was supposed to take over the world, and using VB and the Microsoft JVM. Back then and still today there's a lot of cruft with the MS ecosystem.

What I'm getting at is if you look at truly advanced software and what might be called "engineering" practices, there seems to be no correlation with marketing hype. Cosmos is to me the most advanced cloud NoSQL database out there feature-for-feature. I think Citus is the coolest sharded database in its particular space. C# has been pretty advanced relative to say Java for quite some time. Windows systems engineers did in fact know quite a lot, despite all the crud they had to put up with the endless parade of new MS features. The best ops person I know that built a huge unicorn that runs on Linux uses Windows as his laptop when everyone else uses Mac.

There's a bad habit in tech news of looking at the success of a company and equating it with the talent or technology choices of the engineering team. Very often, successful businesses provide enough padding for unsophisticated trendy technology to fail without consequence to the business. Likewise, many low-margin, crummy businesses are only around because they have high tech talent which can compensate.

Not accurate. The MS stack is very much so alive. I get recruiters hitting me up weekly if not daily with C# jobs. Perhaps the MS stack is not common in the startup ecosystem but there is no sign of it dying.

So many businesses and governments are using the stack that it is going to be around for quite some time even if it isn’t the new hotness.

If anything, it's quite the opposite (at least in cloud): https://www.srgresearch.com/articles/cloud-market-ends-2020-...

C# for non-backend scenarios is a different story; no charts but IMO it's been going downhill since WinForms (WPF, UWP, Blazer, etc. all dead in the water).

Yes, that's a sad situation. C# is a great general purpose language but for us desktop developers following MS GUI trends is a nightmare. WinUI 3 is the latest attempt to unify stuff.

In general MS still seems like a safe bet given how tightly it's integrated across many large corporations.

I personally avoid microsoft tech like the plague

From a carreer PoV, you'd better experimenting with everything

Being vendor locked is no good, it prevents you from adopting opportunities quicker than your competitors

You don't "adopt opportunities" and being quickest is not always a benefit.

>> From a carreer PoV, you'd better experimenting with everything

This is not great advice either, especially once you're more senior. Experimentation is a great trait, if it's intentional and directed. Otherwise you're a magpie who leaves a messy trail in your wake.

If you think Azure and a lot of what MS is producing today is vendor lock-in you've never used AWS or GC. The MS developer experience is still superior to any other single company.

Azure's main selling point is its integration with the rest of Microsoft's products. If you're a large non-tech company/enterprise with an IT department (all of them) that's locked into MS business/enterprise products (most of them), any sort of software development is gonna be on Azure. No other cloud can compete. I think Azure experts are already highly valuable, and will only become more valuable as more non-tech enterprises adopt some kind of internal software development team.

To the recruiter's second point: It sounds to me that, like most recruiters, they only interact with people inside the zoomer web dev bubble. Sure, MS and Azure aren't sexy, knowing them won't get you free drinks at Silicon Valley parties, but the software development world is much bigger than that.

(comment deleted)
Azure has also been way more upstream towards the PaaS market, with the focus you mention on the entire MS ecosystem. We're seeing more traditionally IaaS vendors (AWS and Google) start to move in that direction so it will be interesting to see if MS can become generic faster than they can capture specific use-cases.
This is the stupidest thing I've heard in a long time. Recruiters are boneheads who would otherwise be selling used cars.
to continue the metaphor: ...but only EVs because "The ICE is so dead only an idiot would buy one today".