Comment by mexicocitinluez

3 months ago

> culture of C# / Microsoft shops at al

What do you mean?

Been awhile since I've worked at one but it is usually grounded in trying to achieve 100% MS usage.

It is rarish to find a partial MS shop. Most of this is how hard MS makes it to use other tools. Even in 2025 they have good interop with external tools hamstrung.

Example: SQL Servers JDBC driver will convert an entire table's of data from ASCII to UTF and a full table scan instead of convertering your UTF bind to ASCII and using the ASCII based index. This doesn't break interop but does make it painful to code and one more reason to just use .Net.

  • Not that rare, I work in one now and we use: .NET, Mongo, Postgres, SQL Server, Node, Python, etc.

  • There is no way a reasonable person would not deploy to Linux and postgres for cost reasons alone. No one wants to pay Microsoft or Oracle money for databases, operating systems or frameworks nowadays.

    • All my .Net web apps are now deployed to Linux and Sqlite. Good riddance to Windows Server and IIS (which was dogshit from day one). With the tiny memory profile of .Net 10 it's crazy how small a VM you need to get good performance.

My biggest complaint would be a tendency to blindly use a "Microsoft first" approach to selecting tech rather than evaluating things on their own merits in the context of their own use cases.

Some Microsoft stuff is really good but it's not universally true. And in the worst cases you end up locked into some hard to migrate off platform that is withering on the vine.

I worked at a Microsoft shop, and this was my experience.

1. Process, process, and more process. Doing anything required layers of management approval. Trivial tasks become month long, or even years long, processes.

2. You have no power or agency. Something is broken? You're a developer, you should be able to fix it right? No. Broken things stay broken. You swim in your lane and keep your head down. Mediocrity is the goal.

3. Optimization doesn't exist. If a process is manual and takes you, a developer, 10 hours, then that's what it is. Nobody gives a flying fuck about tooling. Nobody cares if you spend 50% of your dev time doing random stuff. And if you even dare try to fix it, you will be told it's impossible and you're wasting your time.

4. Management is king. You will have to lie to them. You will have to spend time re-entering the same data in 5 different places so they can read it conveniently. You will have to make Excel workbooks. You will have to dumb things down, and then dumb them down again, and again. Everything is about Jira... Unless they're a really high up manager, in which case you have to take whatever is in Jira and put it in a word doc and send it to them, because they don't know how to open Jira.

  • Those things have nothing to do with C# though, rather than your personal experience with companies that were using it.

    If I judged every single company i worked at/interacted with, that uses NodeJs, I'd think that every single Node dev is a 13 year old child with no real experience but who think's he's the hottest shit. That has nothing to do with Node and doesn't really describe _all_ the companies out there.

    • The problem is thats how a lot of .net shop operate. I say this as .net developer.

      .NET gets selected because a lot of non tech companies need to do software things, and they pick the stack fits in with their current WinTel stack. The main concerns is having replaceable talent to reliably do x. They're not trying to innovate. They are often doing something like sending out insurance quotes by email. They do this by having strict processes, and having developers stay in their lane. Expect rigid scrum, using dependencies only supported by Microsoft etc, Locked down Dev machines with visual studio only, ask for microsoft dev certs, and expect pre-approved enterprise design patterns up the wazoo. They don't want innovative developers, they want you to fit into the pre existing framework designed by an architect. Your skills can die in such an environment.

      There are companies that use .NET that aren't like this, but you have to go out your way to find them.

      9 replies →

    • I agree, I'm just speaking to the culture and I DO think Microsoft has something to do with it.

      Companies who choose Microsoft everything don't think much. They're not risk takers, and I don't even mean substantial risks. They're stubborn, old-school. But not in a charming way, in a 'grampa won't stop talking about how great it was before integration' way.

  • This is just the run of the mill politics you see at every big company (or mid sized one).

    I worked at a PHP shop, it was pure mierda. Worst code I've ever seen in my life. Pure incompetency. Does that say anything about PHP shops as a whole?

  • Congratulations, you worked at a huge company. Nothing to do with the tech stack.

    • Yea, this is "enterprise" development 101.

      The fact that large companies pick an established tech over newer ones isn't about .NET/C# per se, it's about large companies and the way they work.

      2 replies →

    • There is a trend amongst companies who use Microsoft everything.

      It's not dotnet per se. But if we're deploying by spinning up windows server and clicking around, then I garuantee you, that job will have garbage politics.

  • Don't forget all the $PATTERNS ... I mean, you can't possibly live without 15 layers of abstraction and indirection.