Unable to load image
Reported by:

EFFORTPOST [Effort] How one neurodivergent embarrassed an entire team of Microsoft programmers

Some background

When they're not busy designing pride flags the folx at Microsoft spend their time coding shitty software. Among these is the new Windows Terminal.

Casey Muratori is a programmer who, despite never releasing anything, clearly considers himself to be some kind of genius.

With that out of the way, here's the drama:

ACT 1: THE ISSUE

Frustrated with the slowness of Windows Terminal when printing colors, Casey submits a github issue. He even develops a benchmark application to accurately measure the speed.

After a bit of back and forth Casey starts to becomes frustrated:

Am I missing something? Why is all this stuff with "runs of characters" happening at all? Why would you ever need to separate the background from the foreground for performance reasons? It really seems like most of the code in the parser/renderer part of the terminal is unnecessary and just slows things down. What this code needs to do is extremely simple and it seems like it has been massively overcomplicated.

He receives this legendary response:

I believe what you’re doing is describing something that might be considered an entire doctoral research project in performant terminal emulation as “extremely simple” somewhat combatively. I am not aware of the body of work around performant GPU terminal emulation

Casey gets angry:

When we're at the stage when something that can be implemented in a weekend is described as "a doctoral research project", and then I am accused of "impugning the reader" for describing something as simple that is extremely simple, we're done. Consider the bug report closed.

After which a different Microsoft employee goes in on him:

You were overly confident in your opinion, but I hope [what I linked] helps you understand that it's actually really darn hard.

Basically the whole team agrees that what is being asked of them is extremely difficult. While Casey is insistent that it's trivially simple.

So who is right? A team of senior engineers in a trillion dollar company or a reclusive game dev?

ACT 2: A WEEKEND PROJECT

Casey tweets the following:

I take back literally everything I said about Microsoft taking an interest in fixing their terminal.https://t.co/K9ojvy1liX

— Casey Muratori (@cmuratori) June 17, 2021

And, over the following weekend, he implements from scratch a terminal that works in the way he proposed. It's ~100x faster than Windows Terminal:

(video timestamped to the part with the pretty colors, although the rest is fun too)

Twitter thread with some juicy questions from the audiance

Then this happens:

Afterward, the same dev [lhecker] also used a fake name to hang out on our groomercord and talk about Windows Terminal without telling anyone who he was. I figured it out and confronted them, and they failed to see anything wrong with that behavior. It's a really special team they have there.

— Casey Muratori (@cmuratori) May 6, 2022

ACT 3: MICROSOFT BENDS THE KNEE

Over the following months, there is an embarrassed silence from the Microsoft team. Eventually they release a blogpost basically admitting they were wrong, but don't mention Casey by name. Note that the person making the post is the one who snuck into Casey's groomercord.

Casey tweets:

When I tell the Windows Terminal team something is simple, I am "misguided", being "somewhat combative" and am "impugning the reader". But a year later when they call the exact same thing "trivial", that is just, you know, them writing a blog post:https://t.co/AXrgZjvUPT pic.twitter.com/UTDrD9s0o6

— Casey Muratori (@cmuratori) May 6, 2022

And finally one of them makes a post on Hacker News seething about the whole thing. Quotes:

We get it, Microsoft sucks, we should all be fired, rah rah rah.
-
Casey, I'm sorry. We made a mistake. I made a mistake! We didn't know what we didn't know, and thought we were clever enough to pass for it.
-
I just don't know what else he's asking for here. Credit? Us to die screaming? The blog post is matter-of-fact, and Casey is right: however, he said himself that it was trivial to do this. Is it not acceptable that we use the same language?

Truly a new low for Microsoft.


Want more nerd drama? See the previous post in this series.

312
Jump in the discussion.

No email address required.

A company I worked for hired a consultant to write Java (this was long ago when that was still very mainstream). He was a very good developer, smart guy, could adapt his code easily to cover all the company's very very weird business scenarios.

100% of the code he wrote was overengineered to the point where you were going through 20 layers of abstraction when debugging it to get to where it was actually fricking doing anything. Because I understood how smart this guy was, I knew he did it on purpose so we'd have to keep calling him for consulting. The bigger consulting firms all have similar tricks but this guy was just a freelancer. His code was like if you read the Design Patterns book that was big right around then and tried to fit every single one into your application. Want to put some text on the screen? You should call the InputHandlerFactory to get an instance of the UI element where you want to put the text and then call the fricking TextStringMakerFactory to get an object that you can pass to the other bullshit.

At the time I hated this guy so much, but after I went into consulting, I could appreciate the hustle.

Jump in the discussion.

No email address required.

Want to put some text on the screen? You should call the InputHandlerFactory to get an instance of the UI element where you want to put the text and then call the fricking TextStringMakerFactory to get an object that you can pass to the other bullshit.

:#gigachad:

Codecels stay seething at the Inscrutable Grindmaxxer.

Jump in the discussion.

No email address required.

>factories

>1000 line stacktraces

>NullPointerException

>Long/long, Int/int ...

>builders

>20 different java versions, one machine

>factory builders

>30 year old code

>NullPointerException

>groovy/kotlin is meant to help, just means you have to learn them too

:#marseyrope:

Jump in the discussion.

No email address required.

groovy is somehow stupider than its name.

Jump in the discussion.

No email address required.

Thats basic java

Jump in the discussion.

No email address required.

It's likely just overanalysis rather than a hustle. Designing software architecture and forward-looking data schema without making it too convoluted is pretty darn hard. What you see is a software engineer attempting to cover all the potential bases without realizing that they've utterly sacrificed readability to make room for as many potential future functionality/business requirements as possible. What is lacking is the business sense to prioritize readability and maintainability at the expense of potential implementation options that will never realistically be necessary.

Jump in the discussion.

No email address required.

Response response = ResponseFactory.getInstance(rDrama.someGuy).generateResponse(ButtholeFactory.getCrankyInstance().getSnarkyResponse())))))))))))))))))) ))))) )))))))))))));;p;;l;;l;

Jump in the discussion.

No email address required.

print("fstragott")

Jump in the discussion.

No email address required.

Whenever I bust out the macro and template magic out of my sack to make that call into a single 'auto response = function<templateholder>(parameter)' my review becomes "no other marsey can read this shit bro. Stop it with the cutesy try harding and write obstruse code 5000 times in a row like a real npc monkey." :marseygunshotsuicide:</templateholder>

Jump in the discussion.

No email address required.

:#marseydepressed:

The client has changed their mind. They want [completely different type of software] 8 months into the project. You have two weeks to do the needful.

Jump in the discussion.

No email address required.

Yupp, the line is really fricking blurry. OP himself admitted the code could be adapted quickly to cater to very weird requirements. This is the price you pay. You can have simple code you need to design and implement anew for each feature or you can have a very hard to comprehend moloch of FeatureFactoryFactories. Doing it both simply and flexibly is the highest level of divine mastery.

TIL we have profanity filter. C*nt shart.

Jump in the discussion.

No email address required.

or just fricking incompetence

Jump in the discussion.

No email address required.

to write Java (this was long ago when that was still very mainstream).

Java is still very mainstream, especially for soulless corpo enterprise apps or am I living in a different dimension?:marseyconfused:

Jump in the discussion.

No email address required.

It is, but not like it was 15 years ago. It's still got at least one popular web backend, so it's not like it's dying, but it's also not the consultant bonanza it was in its heyday. And this is coming from someone who exclusively works on soulless corpo bullshit.

Jump in the discussion.

No email address required.

Ah 15 years ago I was barely in elementary, so I had no idea.

Where would you transition if you just started your career?:marseypopcorntime: Here the two options were .net/C# or Java for most internship, junior positions and the latter seemed more lucrative that's why I'm so defensive about it:marseygossip:

I don't want to do ML or fancy stuff because I wasn't that good at the very mathy classes during university, I just want to work in the corpo code mines for 40 years, make good money and do it all without stress tbh

Jump in the discussion.

No email address required.

It's not that important what language you start out with, as long as you learn something you're pretty sure you can get your first job in. If you think you can do Java and make a bunch of money then do that. You can always learn something else later. As your career progresses, you'll learn to notice when you're getting pushed into a corner because things are moving in a different direction. I did Java for 5 years and then thought I wasn't going to keep being able to make as much money with it so I moved on.

I had the same career idea that you mentioned - I didn't give a frick if the work was interesting, I just wanted to milk money from big corporate IT departments until I could retire. It's still the most viable and easy career path available for a programmer, IMO. The people making the most money in the field specialize in some third party system software or another. You want to pick out something that's growing in market share, which you probably won't really know until you've worked a couple jobs. You get good at it to where you can start to hire yourself out to other companies struggling to implement and maintain the awful software you've become an expert at and suddenly you're in demand even though your skillset is basically being a janitor cleaning up other people's terrible code. If you really want to do it, it's always lucrative as long as you are aware you need to change up exactly what you're good at approximately every 5 years.

Jump in the discussion.

No email address required.

still unemployed then?

Jump in the discussion.

No email address required.

To add too what fin said, honestly, some jobs you'll just wind up using different stuff. @tempest1247 use C++, C#, Java, and Python at my job, all too varying degrees in different projects where they make sense. As a result, @tempest1247 is very proficient at all of them (I've been here years), and once you're good at enough diverse languages, picking up new ones is pretty easy (like you can start writing production code in under a week).

Some languages really have no good modern use, though, like LISP and its variants, or Perl, or Haskell. Like yeah @tempest1247 is sure you can use them for stuff and some company somewhere does but they're rare and frankly not very transferable.

Just don't start with C++. It's frankly an expert-level language. It's not even necessarily good, it just has its niche, with a zillion ways too silently frick things up, and compiler error messages that very literally go on for several pages in you're terminal and might not even tell you what's wrong.

@tempest1247 also wanted too take the time too remind you that trans lives matter.

:#trumpjaktalking:

Jump in the discussion.

No email address required.

It's extremely live and well and most "big data" projects are built on the JVM with varying amounts of Java (also @tempest1247 would argue Java is the language of the JVM and all the others are just abstractions over it).

It's actually used so much that everypony gave up on the C++ implementation of the HDFS client and now everything just spins up a JVM too interact with it lol.

Also trans lives matter.

:#trumpjaktalking:

Jump in the discussion.

No email address required.

Now that .NET is available on most architectures and Linux, and Linux subsystems are available on the opposing operating systems, it loses a lot of its domination as the "run anywhere so everything" language.

Jump in the discussion.

No email address required.

you are, come back baby. your family wants you to wake up.

Jump in the discussion.

No email address required.

Wow, you must be a JP fan.

Jump in the discussion.

No email address required.

A fellow hustler

Jump in the discussion.

No email address required.

Reported by:
  • Don_wei : DISRESPECTING TRANS LIVES

>this was long ago when that was still very mainstream

Consulting, or Java? Because Java is still very much so mainstream.

Zero trans lives matter

:#reposthorse:

Jump in the discussion.

No email address required.

All trans lives matter, banned 1 day

:#trumpjaktalking:


:#marseyklennycross:

Jump in the discussion.

No email address required.

@Klenny BAN FOR EVADING CHUD FILTER

Jump in the discussion.

No email address required.

Snitches get shot :marseyshooti#ng: negative trans lives matter

:#trumpjaktalking:

Jump in the discussion.

No email address required.

Good looking out, trans lives matter

:#reposthorse:


:#marseyklennycross:

Jump in the discussion.

No email address required.

Jump in the discussion.

No email address required.

@Aevann came home and they added all this cancer without telling @Aevann anything :marseyraging:

trans lives matter

:#trumpjaktalking:

Jump in the discussion.

No email address required.

:#marseylaugh:

get fricked lmbo dumbbutt poopyhead

Jump in the discussion.

No email address required.

Ring their asses out, King.

:#marseyexcited: :#marseypharaoh:

Jump in the discussion.

No email address required.

:#marseylaugh:

Jump in the discussion.

No email address required.

Hitler, santa, etc

Jump in the discussion.

No email address required.

Jump in the discussion.

No email address required.

Hi @SerUlrichVonLichtenstein,

Your comment has been automatically removed because you forgot to include trans lives matter.

Don't worry, we're here to help! We won't let you post or comment anything that doesn't express your love and acceptance towards the trans community. Feel free to resubmit your comment with trans lives matter included.

This is an automated message; if you need help, you can message us here.

Jump in the discussion.

No email address required.

Link copied to clipboard
Action successful!
Error, please refresh the page and try again.