This article reminds me of my early days at Microsoft. I spent 8 years in the Developer Division (DevDiv).
Microsoft had three personas for software engineers that were eventually retired for a much more complex persona framework called people in context (the irony in relation to this article isn’t lost on me).
But those original personas still stick with me and have been incredibly valuable in my career to understand and work effectively with other engineers.
Mort - the pragmatic engineer who cares most about the business outcome. If a “pile of if statements” gets the job done quickly and meets the requirements - Mort became a pejorative term at Microsoft unfortunately. VB developers were often Morts, Access developers were often Morts.
Elvis - the rockstar engineer who cares most about doing something new and exciting. Being the first to use the latest framework or technology. Getting visibility and accolades for innovation. The code might be a little unstable - but move fast and break things right? Elvis also cares a lot about the perceived brilliance of their code - 4 layers of abstraction? That must take a genius to understand and Elvis understands it because they wrote it, now everyone will know they are a genius.
For many engineers at Microsoft (especially early in career) the assumption was (and still is largely) that Elvis gets promoted because Elvis gets visibility and is always innovating.
Einstein - the engineer who cares about the algorithm. Einstein wants to write the most performant, the most elegant, the most technically correct code possible. Einstein cares more if they are writing “pythonic” code than if the output actually solves the business problem. Einstein will refactor 200 lines of code to add a single new conditional to keep the codebase consistent. Einsteins love love love functional languages.
None of these personas represent a real engineer - every engineer is a mix, and a human with complex motivations and perspectives - but I can usually pin one of these 3 as the primary within a few days of PRs and a single design review.
Clearly they were missing Amanda, the engineer who's had to review others' terrible code (and her own) for 20 years, and has learned the hard way to keep it simple. She knows she's writing code mostly for people to read, not computers. Give me a small team of Amandas any day.
Mort, Elvis, Einstein, Amanda does seem to fit well with my experience. While people are a mix, generally I think its fair that there is a primary focus/mode that fits on career goals.
- Mort wants to climb the business ladder.
- Elvis wants earned social status.
- Einstein wants legacy with unique contributions.
- Amanda just wants group cohesion and minimizing future unpredictability.
I don't really like the axes Mort/Elvis/Einstein are on, they all seem like obviously pathological examples.
I think if I were to make three strawmen like this I would instead talk about them as maximizing utility, maintainability, and effectiveness. Utility because the "most business value" option doesn't always make the software more useful to people. (And I will tend to prioritize making the software better over making it better for the business.) Maintainability because the thing that solves the use case today might cause serious issues that makes the code not fit for purpose some time in the future. Effectiveness because the basket of if statements might be perfect in terms of solving the business problem as stated, but it might be dramatically slower or subtly incorrect relative to some other algorithm.
Mort is described as someone who prioritizes present business value with no regard to maintainability or usefulness.
Elvis is described as someone who prioritizes shiny things, he's totally a pejorative.
Einstein is described as someone who just wants fancy algorithms with no regard for maintainability or fitness to the task at hand. Unlike Elvis I think this one has some value, but I think it's a bit more interesting to talk about someone who is looking at the business value and putting in the extra effort to make the perfectly correct/performant/maintainable solution for the use case, rather than going with the easiest thing that works. It's still possible to overdo, but I think it makes the archetype more useful to steelman the perspective. Amanda sounds a bit more like this, but I think she might work better without the other three but with some better archetypes.
I think the personas have some validity but I don't agree with the primary focus/mode.
For example, I tend to be a mort because what gets me up in the morning is solving problems for the enterprise and seeing that system in action and providing benefit. Bigger and more complex problems are more fun to solve than simpler ones.
And as a manager/CTO, the way to do this is to give the devs time to think about what they're doing, and reward implementation clarity (though it's its own reward for Amandas).
Amanda is just the light side of Mort, Elvis or Einstein, since keeping things simple and reviewable can mean staying business-oriented, using the right technology or using an existing tool with deep knowledge.
We would all like our coworkers to never make bad decisions. :)
If there is no inherent complexity, a Mort will come up with the simplest solution. If it's a complex problem needing trade-offs the Mort will come up with the fastest and most business centric solution.
Or would you see that Amanda refactoring a whole system to keep it simple above all whatever the deadlines and stakes ?
Einstein would write a new state-machine library with SIMD optimization for the purpose, and refactor any logic into it that could possibly be contorted into a state machine.
As I imagine it, Einstein would no be happy with fixing a couple bugs and making a state machine. Einstein would add a new unit test framework and implement a linear optimizer written with only lambdas to solve the problem and recommend replacing the web server with it as well. This is tongue in cheek but gets the idea across.
The problem is that "work smart not hard" for software devs is counterintuitive because using your brain is the hard work. Einstein works too hard and creates code that's hard to reason about, Most doesn't work hard enough and creates code that's hard to reason about.
The originating example for an Amanda is someone who used her brain to recognize that the existing code was clumsily modeling a state machine and clarified the code by reframing it in terms of well-known vocabulary. It's technically an abstraction but because every dev is taught in advance how they work it's see-through and reduces cognitive load even when you must peel back the abstraction to make changes.
The Amanda solution is the intuitively obvious to even the casual reader. The Einstein solution is quite succinct but takes years to understand all the nuance in the one liner. :-)
I kinda see the original proposition as similar to a RGB framework. The same way we mix RGB to have a whole spectrum of colors, I assume we can mix Mort, Einstein and Elvis to get whole spectrums of engineers profiles.
There will be people looking at pure Green and pure Blue and ask for an Emerald color to get RGBE instead, but that's not how the RGB framework works. And I can't get rid of the feeling that Amanda is that Emerald color people are clamoring for.
I also kinda get why Microsoft got rid of the system for something more abstract.
True, but we shouldn't understate how beneficial elegant solutions can be in the appropriate setting. Sometimes you read code that gives you a new and memorable way to think about a certain kind of problem.
I agree we like it. I don't want to have to review it. I'd rather review code where the bugs stick out like blinking yellow lights, even if it runs 10% slower (or 1000% slower, if I'm only running it once.)
I guess it depends what mean by "elegant". For me, an elegant solution makes it obvious that certain classes of bugs will not be present.
For example, suppose you have an application that connects to 17 queues and processes a different type of request from each. You could do this in lots of lines as follows:
var processors = new Processor[18];
processors[0] = client.CreateProcessor("FooQueue") { Handler = GetHandler("FooRequest") };
log.Write("Connected to Foo Queue");
...
processors[17] = client.CreateProcessor("BarQueue") { Handler = GetHandler("BarRequest") };
log.Write("Connected to Bar Queue");
Or you could do this:
var queues = new List<string> { "Foo", ... , "Bar" };
var processors = queues.Select(q => client.CreateProcessor(q + "Queue") { Handler = GetHandler(q + "Request") };
The former - despite being "warts and all" - is more prone to bugs getting missed in development and review.
Mort: Someone who lacks sense of life, looks dumbfounded, and has only a limited ability to learn and understand. (urban slang)
Elvis: A famous rock star
Enstein: A famous physicist
Amanda: ???
Mort, Elvis, Enstein are referencing things I've heard of before. What is Amanda referencing? is there some famous person named Amanda? Is it slang I'm unaware of?
They were also missing Steve Jobs. Having had the displeasure to work with Microsoft tools and code for most of my career. Microsoft never in my experience just plain works. I had to fight Microsoft every step of the way to get things to "work". And when it does it invariably breaks in the next major software release.
Pretty sure this was not true for the longest time actually. Up to at least the mid 90s, both Apple and Microsoft had their own tools like Visual Basic/C/C++ and MPW on the Mac and none of those tools were free. You could get significant educational discounts or other deals but the tools cost real money.
Later, Xcode (or Project Builder) became pretty much free with the first release of MacOS X. You could buy a Mac and install all the tools to develop software. Very much in the spirit of NeXT. I am sure something similar happened for Microsoft around the same time.
And now of course all the tools both native from vendors + a large selection of additional third party tools are basiclly free for all major platforms.
(Disregarding things like 'app store fees' or 'developer accounts' which exists for both Apple and Microsoft but are not 100% required to build stuff.)
You clearly missed the entire message of the entire "three kinds of developers" sort of shit if you think that a fourth type that's perfect is what's missing from it.
Mort is the pragmatist, Einstein is the perfectionist, and Elvis is... let's be honest, Elvis is basically cancer to a project. I guess maybe a small dose of Elvis can help motivate?
I see the ideal as a combination of Mort and Einstein that want to keep it simple enough that it can be delivered (less abstraction, distilled requirements) while ensuring the code is sufficiently correct (not necessarily "elegant" mind you) that maintenance and support won't be a total nightmare.
IMO, seek out Morts and give them long term ownership of the project so they get a little Einstein-y when they realize they need to support that "pile of if statements".
As an aside, I'm finding coding agents to be a bit too much Mort at times (YOLO), when I'd prefer they were more Einstein. I'd rather be the Mort myself to keep it on track.
> Elvis is basically cancer to a project. I guess maybe a small dose of Elvis can help motivate?
Sometimes teams are quite stuck in their ways because they don’t have the capacity or desire to explore anything new.
For example, an Elvis would probably introduce containers which would eliminate a class of dependency and runtime environment related issues, alongside allowing CI to become easier and simpler, even though previously using SCP and Jenkins and deploying things into Tomcat mostly worked. Suddenly even the front end components can be containers, as can be testing and development databases, everyone can easily have the correct version locally and so on.
An unchecked Elvis will eventually introduce Kubernetes in the small shop to possibly messy results, though.
Elvii often face a lot of criticism when Big New Ideas are overkill or they don’t work. They often get forgotten when the idea becomes standard issue and Mortified. The most pragmatic ideas today were Highly Risky and Unproved 10 years ago.
Your comment made me think Mort represents efficiency, Einstein represents quality, and Elvis represents risk. The ideal combination is difficult, and it changes over time. If anyone knew what the ideal combination was, companies would never fail. Risk can get something started, and lack of it can eventually kill software. In fact, I would argue the vast majority of software we’ve seen so far dies an eventual death due in part to its inability to take risk and change and adapt - it might be not enough Elvis in the long term. Too much risk can kill something before it takes off and can undermine the ability to ship and to ship quality. Generally speaking my gut instinct was to (perhaps like you) align with and defend Morts; the business objective is the only thing that matters and pays the bills, and there is certainly a class of Morts that doesn’t write spaghetti code, and cares about quality and tries new things, but prioritizes work toward the customer and not code wonkery. Anyway… this is too probably abstract to be very useful and I made it worse and more abstract, but it’s fun to hypothesize!
Mort might mean short-term efficiency, but those solutions are where technical debt and unmaintainable organically-grown complexity come from. That has its time and place, but it must be balanced to not doom anything but short-lived projects.
The only place I’ve seen technical debt and organic complexity come from in real life is from over-engineering (Einsteins over-engineer the code, and Elvises bring in too many dependencies) and, more importantly, from changing requirements (customers & PMs & management). The changing requirements is the bigger culprit most of the time, and that doesn’t reflect directly on programmers or programmer personalities. I’ve never seen efficiency arguments make the code unwieldy. If anything, the problem is that real life Morts sometimes under-engineer, and it takes some of the other types to build up a bit. I’ve seen over-engineering far more often than under-engineering. Anyway, Mort only means short-term efficiency if you make assumptions. It didn’t in the top comment, and it doesn’t have to, you can just as easily assume efficiency is long term and includes efficiency of maintainable code and efficiency of business processes. If you care about the business outcome, why would you jump to the conclusion that it’s short term thinking?
Unfortunately for a fast growing industry (think AI, LLM), Mort + Elvis will be much more success then any combination with Einstein. The speed to adapt a new technology into a specific domain outweight your ability to scale for long term (think the oracle vs sybase in server)
The best engineers are all three, and can turn up or down these tendencies depending on what's required for the project, business, or personal goals. These should not be fixed in proportion over time, as they are each useful in different circumstances.
I spent time at Microsoft as well, and one of the things I noticed was folks who spent time in different disciplines (e.g. dev, test, pgm) seemed to be especially great at tailoring these qualities to their needs. If you're working on optimizing a compiler, you probably need a bit more Einstein and Mort than Elvis. If you're working on a game engine you may need a different combination.
The quantities of each (or whether these are the correct archetypes) is certainly debatable, but understanding that you need all of them in different proportions over time is important, IMHO.
Personas are a great tool. IMO - By the time you arrived these had transformed into bad shorthand. (I say this having been in Devdiv through those years.)
Elvis is not a persona - it is an inside baseball argument to management. It suffered a form of Goodhart’s law … it is a useful tool so people phrase their arguments in that form to win a biz fight and then the tool degrades.
Alan Cooper, who created VB advocated personas. When used well they are great.
The most important insight is your own PoV may be flawed. The way a scientist provides value via software is different than how a firmware developer provides value.
I think this is somewhat dangerous, it can lead you to categorise people unfairly and permanently. Also, in my experience this has a critical flaw - the managers love morts in my experience, not Elvises. They don’t care about the technical details, so “fastest and fits the business outcome the most” is ideal.
Also the actual solution is proper team leadership/management. If you have morts, make sure that code quality requirements are a PART of the requirements their code must pass, and they’ll instead deliver decent work slightly slower. Got an elvis? Give more boundaries. Got Einsteins? Redefine the subtasks so they can’t refactor everything and give deadlines both in terms of time but also pragmatism.
Either way, I don’t love this approach, as it removes the complexity from the human condition, complexity which is most important to keep in mind.
I agree with you and one of the most important ways is that it bakes in an assumption that people cant grow, learn and change.
Life is all about learning, adapting and changing. Great leaders see the potential growth in people and are up for having hard conversations about how they can improve.
Even if people do have these personality traits as life long attributes, that doesn't define them or prevent them from learning aspects of the others over time.
Is Microsoft so Balkanized that they have a Developer Division, Developer Multiplication, Developer Addition, and Developer Subtraction (where you get transferred to before they fire you)?
Indeed. And besides that, all three are really bad parodies. Mort is the only one where the product actually works, because for him that’s an explicit goal. With the other two, a working product is mere coincidence.
Precisely. Also people underestimate the power of mort code. The world runs on it, and besides, at the end of the day unless you are an executive or own significant stock in the company, making decisions about speed/outcome vs tech debt actually isn’t your job IMO. Give your opinions and advice but at the end of the day build what they ask you to in the manner they’re happy for you to build it - if they demand speed over quality that’s on them.
And you can improve everything with a system. A team of morts forced into a framework where testers/qa/code review find and make them fix the problems along the way before the product is shipped is an incredibly powerful thing to behold.
Exactly the expectation value for "analysis of types of developers done by people who really don't care about people"
"so, there's 3 boxes. no more, no less. why? i have a gut feeling. axis? on a case by case basis. am i willing to put my money where my mouth is? heallnaw!"
I think implementing stuff correctly (Einstein) is sometimes more important than doing what you're told to do (Mort) - requirements don't always represent business interests.
That’s super interesting. What was the ideal ratio, back then. Is it still the same now? Or I guess maybe it depends on the specific role and could be different in each. What exactly do you find valuable about thinking in these terms?
I'd love one of those old facebook quizzes like "take this quizz to figure out which friends character you are", but for figuring out whether you are a Mort, an Elvis or an Einstein
Something was bugging me after an interview with a potential hire, and now I can articulate that they were too much Einstein and not enough Mort for the role.
The kind of psycho-bullshit that we should stay away from, and wouldn't happen if we respected each other. Coming from Microsoft is not surprising though.
For my frame of reference, do you think the Myers-Briggs Type Indicator are psycho-bullshit, too? Because I had characterized personas as a very similar "of course it's a generalization" and OP even said themselves "every engineer is a mix" but if you're coming from stance that bucketing people is disrespectful, then your perspective on MBTI would help me digest your stance
I don't see how that helps if the number of people you need to solve a problem exceeds the ability of a single human to know all of the people involved.
MBTI is absolutely bullshit, it's like one level above horoscopes and astrology, but very similar type of BS. There's also the Gallup crap that many corps were doing to evaluate the strengths and weaknesses of each employee so they could fit them into neat buckets such as "Leader" vs "Follower", as if these aren't skills people develop over time but actual personality traits.
Its kind of a common thing to say Myers-Briggs typing is useless because its pseudo-science.
I dont think this is supported by the data in the way people think.
For one, many studies of identical twins raised in separate households show they have the same personality type at a much higher rate than chance.
Two, there are incredibly strong correlations in the data. In different surveys of 100k+ people, the highest earning type has twice the salary of the lowest type. This is basically impossible by chance.
The letters (like ENTJ) correlate highly to the variables of Big 5, the personality system used by scientists. Its just that it's bucketed into 16 categories vs being 5 sliding scales.
Scientific studies are looking for variables that can be tracked over time reliably, so Big 5 is a better measure for that.
But for personal or organizational use, the category approach is a feature, not a bug. It is much more help as a mental toolkit than just getting a personality score on each of the 5 categories.
You can pick any set of axis you feel like and get similar results. “Do you like X? Wow you are an X person!”. So yeah, technically better than horoscopes, more like a “warm” reading where you tell a person what they told you earlier. But it’s entirely unclear why these axis are the right ones over a million other possible ones, if these are particularly stable categories in time and context, or if the harm of encouraging people to box themselves or others into specific stereotypes has any possible benefit to outweigh the obvious harms of simplifying stereotypes.
It's good questions. Here's why this axis is the right one in my opinion:
1) As I mentioned, it has a lot of statistically significant correlations, including to all the variables of the Big 5. Example: Surveys show that % of the overall population that is each type (like INFJ) is very consistent across time and populations.
2) Beyond that, youre right, there are a lot of personality systems with pros and cons. But Myers-Briggs has by far the must supporting materials, tools, ease of use, and so on. I think its the quickest to make useful to the average person.
3) I've found it really helpful as a lens for self analysis in my own life.
I briefly flagged the preceding comment for "psycho-bullshit" before concluding that it was just a really forceful way to say the developer personas were pseudoscientific (of course they are, nobody is claiming otherwise) but I think it's worth calling out that MBTI is also pseudoscientific; it has no real validity, or even test-test reliability.
I would guess that lack of repeatability happens a lot with any self-reporting scheme, but I am sorry that I accidentally picked such a polarizing "people generalization" scheme to use as contrast. Maybe I should have used "introvert versus extrovert" or something
Anyway, their sibling comment told me what I wanted to know, so in that way I'm wasting more of my time contributing to this
The link between programming and conscientiousness seems fairly straightforward. To fully translate Mort/Elvis/Einstein into some kind of OCEAN vector would take a little more effort.
Microsoft rarely did or does anything first. They are typically second or third to the post and VC is no different.
Most people don’t know or realize that Git is where it is because of Microsoft. About 1/2 of the TFS core team spun out to a foundation where they spent several years doing things like making submodules actually work, writing git-lfs, and generally making git scale.
You can look for yourself at the libgit2 repo back in the 2012-2015 timeframe. Nearly the whole thing was rewritten by Microsoft employees as the earliest stages of moving the company off source depot.
It was a really cool time that I’m still amazed to have been a small part of.
Basically all XR devices put the focal plane at between 0.5 and 1m away. It’s a very very complicated reason why, but this is unlikely to change for a very long time.
> To mitigate this, the industry usually maintains the VID at over 1 meter; for instance, Apple's Vision Pro employs a distance of 1.1m, Meta Quest 3 sits at 1.25m, and Hololens boasts 2m.
A team in my org worked with Jet for 2+ years to help y’all scale.
It was interesting seeing the biweekly status updates, they basically all started with “This is how Jet.com broke Azure core services this week”.
As much as it sucks, this was a deliberate strategy all the way from Satya - every employee knew Azure was a joke, but the only want to actually fix shit was to get internet scale customers to break it daily and weekly.
My experience working on Google Cloud Platform is similar. Even when the solution is relatively technically simple, there are many organizational impediments and politics because the solution likely involves multiple fiefdoms.
The only thing that seems to get the fiefdoms to work on an issue is if a big enough customer calls enough of an attention to the issue so that no leader/fiefdom wants to be blamed in such a "high profile" issue that everyone got their work in gear for. This leads to organizational dysfunction since now everyone understands that there's no point in trying to fix anything until there is enough attention on it, and that is mainly achieved when a big customer complains.
I've even had projects that took months of engineering work that would resolve many user complaints about a lack of really basic functionality, and different elements of leadership would block the launch. I can only guess that some fiefdom did not like change and would not state their objection publicly, so I only got stonewalled, and I never got an explanation to throw away months of work. I am as certain as I can be that if a big customer complained loudly enough about the problem that such basic functionality was missing, the organization would demand that the fix be launched.
> but the only want to actually fix shit was to get internet scale customers to break it daily and weekly.
I don't get it. There's lots of distributed systems theory that could provide a more robust, analytical approach to a scalable architecture. If a system is regularly breaking like this, it sounds like it should be a "back to the drawing board" moment.
“We’ve had years to fix it, all the experience and knowledge we’d need, but we’ve tried basically none of it and we’re at a loss as to why our product is still garbage! It’s truly a mystery” - Azure leadership I assume.
It has been on life support for a long time AFAIK. I designed Visual Studio Online (the first launch of AzDO) - and every engineer, PM, and executive I worked with is either in leadership at GitHub or retired.
It feels clear from an outside perspective that all the work on AzDO Pipelines has shifted to focus on GitHub Actions and Actions is now like 3 or 4 versions ahead. Especially because the public Issue trackers for some of AzDO Pipelines "Roadmap" are still up (on GitHub, naturally) and haven't been updated since ~2020.
I wish Microsoft would just announce AzDO's time of death and save companies increasingly crazy AzDO blinders and/or weird mixes of GitHub and AzDO as GitHub-only is clearly the present/future.
Yeah feels like they should be able to converge actions and pipelines.
Keeping some separation between AzDo itself and GH also requires some balancing. But so far I’m pretty sure I could never sell our enterprise on a shift to GH. Simply not enough jira-esque features in GH with complex workflows, time reporting etc so I can’t see them doing the bigger GH/AzDo merger.
This month's rollout of sub-issues and issue types would be most of what my organization thinks it needs to shift to GH Issues, I believe, barring however long it would take to rewrite some sync up automation with ServiceNow based on those issue types. Of course it will take another 6 months to a year before those kinds of features make it to GitHub Enterprise, so it is still not happening any time soon. (Though that gets back to my "weird" mixes. I don't entirely know why my company is using AzDO SaaS for Issue Tracking but decided GHE over "normal" cloud GH for Repos. But that's not the weirdest mix I've seen.)
I definitely get the backwards compatibility thing and "don't break someone's automation", but at the same time, Microsoft could at least mark AzDO's official Roadmap as "Maintenance Only" and send the message that feels obvious as a user that GitHub is getting far more attention than AzDO can, but is hard to convince management and infosec that a move to GitHub is not just "the future" but "the present" (and also maybe "the past", now, given AzDO seems to have been frozen ~2020).
That 30-300 dollars is just the range of virtual machines you are connecting to-- I can't imagine it is very surprising that a personal VM starts at around 30 dollars per month and GPU-enabled machines would be substantially more expensive. A quick spot check suggests this pricing is in line with the same type of offerings available in AWS (~$30-$1000) https://aws.amazon.com/workspaces-family/workspaces/pricing/.
Similar story here. 20+ years experience in leading dev, pm, and UX teams. Launched multiple 0-1 market leading products, worked with dozens of Fortune 500s.
Applied to more than a hundred positions - one phone screen and one interview.
Then I just went to my large network and within a week I have multiple opportunities - companies creating positions so they can hire me.
Spoke to a number of colleagues in recruiting and who are hiring for their teams - the number of ghost jobs, and frozen but posted positions is staggering. Something is fundamentally broken in the hiring world today.
If this is a true story, then it means there’s no point in applying at all. You should just go full LinkedIn, and networking, preferably when you still have a job.
I’m not gonna do that so I’ll just keep my job until layoff, and then panic, automate my applications and belatedly start connecting.
I think that's more or less true. Outside of school (one of which was way back in spray and pray physical letter days), my few jobs have always been through personal connections. Any online applications pretty much resulted in nada.
This is the way. Submitting an application is useless. We've reverted back to networking for jobs. You have to connect with actual humans, as nobody is going to wade through 5k resumes and pick yours out no matter how good it is...
He didn’t keep the lights on while waiting for new development to take off. He actively lost 40+ billion dollars on horrible acquisitions, and actively stifled internal innovation to ensure existing product lines weren’t threatened.
On the sales side he streamlined Microsoft into a single monolithic sales motion that killed dozens of products before they started because the target customer/market didn’t fit the EA model.
This included Azure that took nearly a decade after his departure to unwind so the sales force could actually sell consumption based products and services.
I honestly can’t think of anything substantially positive he achieved in his tenure other than promoting Satya and Scott G and a handful of others.
All of the contemporary media reports don’t know about the laundry list of near sighted, anti competitive, anti innovation shit he put on the company.
> I honestly can’t think of anything substantially positive he achieved in his tenure other than promoting Satya and Scott G and a handful of others.
Ok, but apart from fostering a great generation of new executives, investing in currently extremely profitable products and business lines, streamlining our sales operations and getting us out of these life threatening antitrust cases, what did Steve Ballmer ever do for us?
As I was exploring self-host options that would scale to our org size, it turned out there was already an internal team running a company wide multi-tenant mediawiki PLATFORM.
So I hit them up and a week later we had a custom instance and were off to the races.
Almost all the work that team did was making mediawiki hyper efficient with caching and cache gen, along with a lot of plumbing to have shared infra (AD auth, semitrusted code repos, etc) thst still allowed all of us “customers” to implement whatever whacky extensions and templates we needed.
I still hope that one day Microsoft will acknowledge that they use Mediawiki internally (and to great effect) and open-source the whole stack, or at least offer it as a hosted platform.
I tried setting up a production instance af my next employer - and we ended up using confluence , it was like going back to the dark ages. But I couldn’t make any reasonable financial argument against it - it would have taken a a huge lift to get a vanilla MW instance integrated into the enterprise IT environment.
The rumour i heard is they were making their own custom thing.
There was some rumours that they were unhappy about mediawiki's response to patches they submitted (they made a bunch around accessibility). However i looked through their patches at one point when this rumour started flying around and it looked like most were merged. Those that weren't generally had code review comments with questions or pointing out mistakes which were never replied to. I sort of suspect the patch thing was some sort of internal excuse because the team involved wanted to make their own thing.
Regardless, im really happy they decided to open source their extensions and it was nice to see that they put in effort to upstream core patches.
I worked on this project at my former employer for nearly 8 months. We worked as a good faith partner with McDonald’s, only to find out eight months in that McDonald’s had never had any intention of working with us and we’re only using us as a negotiating tactic for the acquisition they eventually made for this technology.
I learned two things from this project. Our team built a complete English language model for every possible permutation of ordering every menu item. No LLMs, no gpt required.
The hilarious part is that McDonald’s stopped responding to our team and abandoned the project only about a month before we were going to tell them that it was not technically feasible to do it scale. The problem is not bad AI nor a lack of data. The problem is all of the real world interface challenges, keeping speakers and microphones working outdoors across many different climates and weather conditions, and temperatures and humidity is incredibly expensive. And on top of that, the hardware needed per store at the edge and the permanent network infrastructure required to keep everything running makes the whole system substantially more expensive than just having a single human being running drive-through even have much higher wages than minimum wage.
So McDonald’s never got this conclusion from us and instead spent several billion more dollars and another six years of R&D to come to the same conclusion.
My other take away from this project was that I will never give McDonald’s another dollar of my money. Working with over 200 fortune 500 companies in my career McDonald’s is far away the most evil heartless and ruthless company I’ve ever dealt with.
They don’t care about their customers, their users, their franchisees or their employees. The only thing they care about at all is their stock price.
Doesn't surprise me in the least. McDonald's is such a bad company on many levels, even from its founding roots.
They make fast food (an industry notorious for craping all over their employees) and it was usurped by a greedy business man (Ray Kroc) from its original founders.
Their food is okay, but I would never, ever do work for them.
> usurped by a greedy business man (Ray Kroc) from its original founders
It's a weird aside, but maybe worth noting that Ray Croc was probably not just greedy. Ray Kroc was probably also racist against the Irish. A tell-tale sign is using a clown as the company mascot. The US strain of clowns were heavily influenced by "pale white face" racism jokes about Irish immigrants [0] from some of the same minstrel shows notorious for "black face" and "yellow face" and "red face". Ray Kroc was from a generation that would have easily been aware of that and would have been "entertained" by it. Ray Kroc's behavior to the actual McDonald's founders is rather easier to explain assuming it included quite a bit of Old Fashioned Racism than assuming just pure greed. Sometimes it is useful to remind ourselves that past isn't as clean as corporate memos want to paper over it.
[0] Notably, among other things: red hair, big feet, freckles, red drunken noses, loutish drunken behavior. Even the "clown car joke" is the exact same "joke" as "Mexican pickup truck" transposed across a couple of decades and about a different working class immigrant population. (Racists seem pretty lazy in how they reuse old material.) So yeah, if you ever wondered why clowns don't seem all that funny in the modern era, congratulations you probably aren't a racist. Also, now that this past horror is in your head I'm sorry for ruining Disney's Dumbo which uses all the worst of clown stereotypes and "jokes" all in the same place and eats up a lot of runtime with it, if you weren't already concerned about the "black face" crows in the movie or thought you could dismiss them as not central characters or contributing that much to the runtime.
Why is this grey? Does that mean people are reporting it? If you report it or want to, then why?
I haven’t verified these claims, nor do I have the background knowledge to form an opinion. I don’t care. Seems plausible and I think Irish were within the definition of “black” a century ago.
Is it because you don’t believe in this? Or do you think it is astroturfing with bad intentions similar to the anti women memes plastering social media (where it is some wrong committed by a woman with 100s of bot comments saying all women are bad)? Kinda like repeating long ago marginalizations of white people to stir up a feeling of wronghood among older more conservatives white men?
I don't even consider the food okay... I liked a few breakfast options, but the prices of even that have gone up so much the past 3 years, I won't even go then. It wasn't that long ago that the breakfast burrito was $1 (then 2 for $2/3) and they had some sandwiches 2 for $2/3/3.33/4/5 ... When I'm paying over $10 for a couple breakfast sandwiches and a drink, I'm out.
They definitely seem to be squeezing more out of their franchises than ever at this point. They will push technology optimizations, but they're at a point where service and price just isn't there. If I'm spending $15+ for lunch, I may as well go to Applebees/Chili's, etc.
Thanks for sharing, everything makes sense except this:
> The problem is all of the real world interface challenges, keeping speakers and microphones working outdoors across many different climates and weather conditions, and temperatures and humidity is incredibly expensive.
I thought this was a solved problem already, by McDonald’s in fact?
I am not the poster, but my guess here is that a point to point or radio setup which just needs to be good enough for humans to understand it (and even then just barely) is likely way worse quality than what would be needed for recording and feeding to a program
Treat each drive through ordering system as an edge compute location, run the software right there and then transmit only the order instead of streaming audio from the ordering system.
Edge compute requires field IT for servicing. You can hire 3-4 employees for the price of a single field service specialist.
Servicing industrial edge compute is insanely expensive for B&M businesses. This is a big part of why so many companies have spent the last decade offloading everything humanly possible to public cloud workloads.
With background noise? My wife and I had an interesting unintentional experiment regarding this a few weeks ago at a Slowdive concert. She doesn't know the band well and asked me the name of each song as it began and then also asked Google's song identifier service. I knew all of them and Google couldn't even produce an answer, incorrect or not. Either because of the crowd noise or a live version is sufficiently different from any recorded example it has heard before.
> The problem is all of the real world interface challenges, keeping speakers and microphones working outdoors across many different climates and weather conditions, and temperatures and humidity is incredibly expensive.
This sounds like a problem for humans too - are humans just better equipped to deal with bad audio?
Yes, but not in the ways you think. Humans can do about as good a job as a computer in understanding poor audio quality in context, but the compute needed for the latter, in realtime, is pretty substantial.
As the commenter says below, a human can intervene in many more ways when equipment malfunctions or customers have special needs that an AI just gets blocked by.
There are literally hundreds of edge cases where a voice powered drive through just stops working, from high winds to pouring rain, to thick accents, broken equipment, out of stock or seasonal items not available. Just a few of the ones I encountered personally in the wild tagging 15,000+ orders.
Humans have had to evolve to be able to communicate with each other effectively in this and far worse conditions - on battlefields, in driving hurricanes, while being stalked by other humans (and animals), yelling across vast distances, over raging rivers, while wounded, sick, etc.
Yeah this sounds strange to me - every drive thru has had an intercom system like this working outside for decades. Doesn't seem like an insurmountable challenge to me.
You're not entirely wrong, but often these AI systems need some pretty clear audio to work. It's kinda shocking how good we are at working around bad audio when it comes to conversation, and I'm certain most people know how bad these intercom systems get. The issue isn't that they need to be fixed at all, it's how far they can go before they must be fixed. And the one thing we can do that AI can't is have face-to-face conversations. If the speaker simply doesn't work, it's a bit of a drag, but you can just pull up to the window directly and skip the entire audio system. Or just walk inside. Both options eliminate the problem hardware, where as AI would need additional hardware to do those jobs.
> The problem is not bad AI nor a lack of data. The problem is all of the real world interface challenges, keeping speakers and microphones working outdoors across many different climates and weather conditions, and temperatures and humidity is incredibly expensive.
That's a great point. Shazam, which has a "simpler" challenge, still trips up with identifying music in challenging environmental conditions.
Having worked for a variety of corporate structures, I'd agree that franchise models tend to have... a bit more ruthless approach to everything. (Even unintentionally)
When "the business" is literally outside your company, you get the same dynamics as when it's in another org structure, except even worse.
I can answer that. Because I'm sick of installing a hundred apps for every single company, setting up accounts, verification, so I can spend 10$, and never use it again.
And, when you are traveling, and just taking the highway exit for a quick order, what, now I have to stop, park, download an app then order.
Or do you mean, like mount Ipads in kiosk mode? I think that gets back to the expense and weather.
I think it gets better over time. It is like with cars having no knobs or no physical buttons anymore. We have to figure it out. We have big screens in cars now, why is the menu not even integrated, when you get close to your McDrive? Why not allowing each shop a virtual space in your car, when you drive nearby?
And by the way, we all wanted employees to have a better pay. It is just pure survival mode now by mcd. Since paying humans is expensive now, one has to find ways to make them expendable even more, so that the company remains profitable for the franchise people and keeping the product price low.
(And after all, was McD not a real estate company?)
I hate the self-serve kiosks inside the places... I'm relatively tall, and trying to use them is often an exercise in frustration. Especially when there's no mechanism to adjust the height or angle.
This is why McDonalds literally spends tens of millions of dollars per quarter giving away free food to attempt to get more people to just use the app.
Their plan longterm is exactly this - have a robot box with a window that only accepts orders through your phone and removes all humans from the process.
You might be surprised how many people absolutely hate using apps, and do not want to interact with a business through a mobile phone. Older folks especially, but also there is a large portion of the population that only use technology when necessary.
We build a heuristic model from scratch. We used BART for some NLP bits and Azure speech to text for the basic mic -> raw text. My memory is very muddy on this bit as I didn’t work on the algo portion of the project, I was working on the UX workflows and interaction / conversational workflow design and validation.
Fun fact, McDonalds menu is a graph database that tracks every single ingredient as purchasable entity. You can order damn near any combination of elements and they will sell it to you - want 32 pickles and the bottom piece of a bun with a chocolate chip cookie on top? No problem.
And every promotional item and name ever put on sale is persisted in the menu forever.
> You might be surprised how many people absolutely hate using apps, and do not want to interact with a business through a mobile phone. Older folks especially
It is not just older folks. It is also anyone mildly or more security/privacy aware. App's offer far more opportunities for spying/tracking and as well "advertising" (push messages), none of which I am interested in giving the business.
In my case, if an app is required, I move on to the next business where an app is not required.
> You might be surprised how many people absolutely hate using apps, and do not want to interact with a business through a mobile phone. Older folks especially
Yep, but not because I'm older but because:
1. I do not want McDonald's (or anyone else) to link my orders together. It's none of their business.
2. App fatigue. I don't even eat at McDs, but I don't want an app for every grocery chain i buy from either.
3. Any app, even if not "AI" based, is going to fail in more annoying ways than a human.
McDonald's has screwed up my order less than any other restaurant, provided better, warmer food than any other restaurant, is cheaper for the quality than any other restaurant, and their Ronald McDonald House charity rescued my family during our darkest hour.
>> There are over 380 Ronald McDonald Houses in 64 countries. These accommodate families with hospitalized children under 21 years of age (or 18 or 26, depending on the House), who are being treated at nearby hospitals and medical facilities. [...] Ronald McDonald Houses allow families to stay free of charge.
That hasn't been my experience at all. Not sure where you are, but in the Phoenix area, I have gone several multi-year periods not spending anything at McDonald's. They had messed up my order more times than getting it right.
Worst was going ketovore... how the hell hard is it to put two pieces of meat in a box without a bun and nothing on it? OR getting 3x "2 strips" of bacon and counting to 6.
Microsoft had three personas for software engineers that were eventually retired for a much more complex persona framework called people in context (the irony in relation to this article isn’t lost on me).
But those original personas still stick with me and have been incredibly valuable in my career to understand and work effectively with other engineers.
Mort - the pragmatic engineer who cares most about the business outcome. If a “pile of if statements” gets the job done quickly and meets the requirements - Mort became a pejorative term at Microsoft unfortunately. VB developers were often Morts, Access developers were often Morts.
Elvis - the rockstar engineer who cares most about doing something new and exciting. Being the first to use the latest framework or technology. Getting visibility and accolades for innovation. The code might be a little unstable - but move fast and break things right? Elvis also cares a lot about the perceived brilliance of their code - 4 layers of abstraction? That must take a genius to understand and Elvis understands it because they wrote it, now everyone will know they are a genius. For many engineers at Microsoft (especially early in career) the assumption was (and still is largely) that Elvis gets promoted because Elvis gets visibility and is always innovating.
Einstein - the engineer who cares about the algorithm. Einstein wants to write the most performant, the most elegant, the most technically correct code possible. Einstein cares more if they are writing “pythonic” code than if the output actually solves the business problem. Einstein will refactor 200 lines of code to add a single new conditional to keep the codebase consistent. Einsteins love love love functional languages.
None of these personas represent a real engineer - every engineer is a mix, and a human with complex motivations and perspectives - but I can usually pin one of these 3 as the primary within a few days of PRs and a single design review.