UBM, and a lament for the software industry

I grew up in tech as a UBM fan. Ok, not really a fan, but a “there’s very few voices writing books about ‘how to write code well’, and this person seems to know what they’re doing, so I’m going to listen to him”. I read all his books; attended talks he gave at SCNA, and thought for a while that his way was the right way.

That, of course, was a mistake. Much like anyone else who has ideas, most of UBM’s ideas are bad, a very few are good, and then you turn the light on and realize he’s about 10 seconds away from outright fascism.

If you’ve read his tweets (don’t), he apparently has a particular affection for law and order in the form of “gosh, we apparently don’t have enough of it since there were shooting deaths over the weekend.”

And normally you’d think this would align him with the pro gun-control crowd, but it doesn’t. Instead his answer is to give the police more money, and maybe they’ll find a way to get their clockwork stat of killing 3.2 Americans a day higher.

It’s grotesque, and I normally wouldn’t spend any further typing on UBM, but I bring him up because it’s instructive of the tech bullshit that’s holding our industry back.


I got into tech because I was the first kid on my block with a computer and a LAN. I wasn’t super competitive at sports in the “I want to win” sense, although growing up in America in the 80s meant that your worth as a human being was tied to whether your team won the game. The teams I was on seemed to lose a lot more than we won, and the few times I was on winning teams I could see the Jock’s kids doing it out of some sense of devotion and attention grabbing from their dads.

My dad didn’t really give a crap about sports. He was a reporter. I love him (RIP), but he was an asshole. He liked to find the uncomfortable buttons and push them whether those buttons belonged to politicians or the local school board. It made him a good reporter. He worked for TV, several newspapers, and he was the first reporter on the scene when his eldest son, at the tender age of 7, was hit by a car in the 70s.

That was shockingly hard on him for decades to come, and the alcoholism that ensued doomed his first marriage and almost tore his second marriage apart . Ironically the Congestive Heart Failure put a quick stop to the alcoholism.

What’s that saying about frying pans and fires again? One of the things my dad used to say repeatedly to me was “it’s not the man with the answers, it’s the man with the questions.”

He also liked to say “reporters report the news, journalists make the news.” Ten year old me had no idea what that meant, and 38 year old me has no idea whether he was pro-journalist or not with that statement.

One thing he did focus on was being outside of the story. Never make yourself the story, he would say.

UBM has a volume of work much greater than most of the modern tech space. Having been working in tech longer than I’ve been alive, it’s understandable. He was also one of the agile manifesto signatories, though with the passage of time it too seems to be a relic of another era and another war.

The ire UBM draws seems to be more from his lack of empathy than anything else, and as someone whose father lacked empathy, the signs are all the same.

As of this writing, there are 941 examples of police brutality against protestors that have risen up in response to decades of police abuse and the inhumane treatment of black people and people of color that has culminated in George Floyd’s murder at the hands of police. Let us also not forget Breonna Taylor, whom the prosecutors are currently trying to justify her murder by police after the fact by trying to get her boyfriend to sign a plea deal saying she was a part of his “criminal network”.

These cases of brutality are well documented, and if you follow Radley Balko’s work, they are just the latest in the decades’ long undeclared war on the black populace by police.

It’s during this time, when pain is at its greatest, when UBM tweets, “fund the police.” To which he rightfully got scorned. Only an asshole would say “pour more fuel on the fire” when it had consumed lives, neighborhoods, and our country.

This lack of empathy is present in UBMs talks as well; he has had a constant refrain of “we are professionals and professionals do good work.” He also has some shaker woodshop view of software in calling himself a “software craftsman”, which I don’t think you could get any more white or male by referring to the best software developers as “craftsmen”.


It’s interesting to note he holds software developers to a higher standard of professionalism than police, but such is the way of the fascist. The rules apply to thee, but not to the state.

This is our software industry, and our industry is both responsible for some of today’s woes; but we can also contribute to a economic boom that no other industry can match with the amount of time it takes to become a developer.

That’s the power of being in the software industry: You can go from intern to making six figures in less than 5 years, and some are making six figures right out of school.

But there’s one thing missing: We’ve not yet conquered the racial and gender issues that hurt black people, people of color, women, transgender, and non-binary people especially. The issues that keep them from being a part of this economic boom. And as is often the case, the people in power are the cause. Whether inadvertently through a lack of empathy or intentionally, white men get to play the tech game on easy mode while everyone else has to jump through the hoops we’ve put in place. I’ve benefited from it, and I look around at the talent that we have in tech in under-represented minorities and I realize that if there were a level playing field; this industry would be far more diverse than it is now.

I’ve become rather obsessed with Hamilton, the musical. This in of itself is an odd statement, given that I am (at best) neutral on the idea of a central bank, and harbor a bit of disdain for is historical evolution; but Hamilton the musical warmed me to the understanding of Hamilton the man. A man that previously was the scorn of libertarians everywhere; and this musical humanized him.

More so than that, the Musical showed the range and depth of talent that this unique re-telling of history could bring to the table. There’s nothing quite like Hamilton out there, and there’s no way that would have ever seen the light of day with a mostly white cast and white playwright at the helm. Lin-Manuel Miranda’s work has enriched our society; and it’s past time for us to give diversity its due. His work is just a recent example; and there are dozens of others.

How many Hamilton’s have been squashed in the software industry due to gatekeeping? How many Lin-Manuel Miranda’s have been pushed away? How much oxygen have white “thought leaders” taken out of the room?

Often, when under represented minorities in tech “make it”, it’s in-spite of this climate, not because of it.

One of the things we can do is to amplify other people’s voices, and to me that’s one of the problems UBM has: He doesn’t amplify other people’s work. As someone who has spent a lifetime in the software industry and become famous, he should. He has a large following, and using it to raise others up would improve the entire industry. My disappointment with UBM starts with the idea that as a leader he has an obligation to improve the industry; but he can’t see the injustice in front of his own nose.

We’ve stopped serving humans with the software we build. We’ve stopped focusing on the humans the software affects in search of basis points of engagement to improve. We have created entire industries to serve at the pleasure of investment returns for venture funds while ignoring the costs associated with serving VCs’ interests. And all the while we’ve done this, we’ve hurt the most vulnerable among us. If you’re Anglo-saxon, there’s good money that you identify as a Christian, and Jesus framed his entire teachings around the idea of lifting up and helping those around you.

The irony abounds, and the startup founders cash another venture capital check.

We are missing out on so much by gatekeeping; even if it is unintentional. We lose nothing by adding diverse voices to our teams and we gain so much by intentionally making our teams more diverse; from our leaders on down. If we are really supposed to be the leaders of tomorrow, if software is supposed to revolutionize living, then we have to start with who gets a seat at the table, and if that table is filled with mostly white dudes, we’re never going to reach our potential as an industry or as a force for change.

We need new leaders, diverse leaders who can help evolve our industry past its roots and make it a force for good for all people, and we’re not going to get there by listening to the people who got us here.

I have no answers here, as I have very little experience with this; so I’m going to defer to someone who does.

Addressing local conference diversity (or: Why I turned down a speaking gig)

Recently I submitted for a virtual one-day free conference; and my talk was accepted.

Ordinarily, this makes me pretty happy, my rejection rate is shockingly high (or maybe it’s normal and everyone’s rejection rate is shockingly high?), and it feels good to be able to talk about a subject I think is important and under-represented.

Speaking of under-represented, I sent an email after my acceptance to ask what the makeup of the conference was, specifically what the balance of white dudes vs everyone else was. Sadly, this being a regional conference that is going virtual, the makeup was around 20 white folks (I don’t know the gender makeup), and at most a handful of people of color.

Why did I ask what the make-up of the conference was? Well, I don’t really want to contribute to the imbalance. If there’s someone out there who can represent a different point of view and speak, I’d rather hear them speak . I’m not saying all white guys have the same point of view, but we are pretty much in the same ballpark, so to speak.

I’m not naming the conference because it’s irrelevant to the conversation; but the situation is top of mind.

And that left me with a choice, do I:


A) Demur, saying “I can’t speak at this conference because there’s an imbalance in speakers”
B) Speak at the conference, because the organizer stressed that there were few if any submissions from POC, and they didn’t have control over who submitted

Let me be clear in saying this, I’m not trying to virtue signal with this blog post. “Gosh, George is a good guy for demurring because the makeup of the speaker slate was too white and too male” sounds terrible and I’d probably groan and look the other way if another guy said that, and I’m a big fan of Matthew, chapter 6. In fact, writing about it seems like I’m looking for internet points when all I’m really looking for is to get some guidance and maybe start a conversation.

Our industry is too myopic. We see this every day in the technology outcomes. Social Media and apps inadvertently allowing stalkers to harass, AI targeting black people as more likely to commit crimes, Facial recognition software showing black people as monkeys, and there are lots of other examples. I had the opportunity to hear Kesha Williams speak at RevConf 2019 on these issues, and those examples stick with you (regrettably there is no video of that talk that I can find on the internet to share with you).

Put simply, Diverse teams build better software. But even if we had those diverse teams, who is doing the speaking at our conferences? All too often, it’s people like me, who have a rather privileged past and at best would contribute to that myopia.

I can’t do much about that on my own; and I do believe there are types of outreach that aren’t zero-sum; but speaking at a conference is still zero-sum. There are a finite number of slots for a given conference. If I get a slot, that means someone else doesn’t.

But what should we do in the case where I got a slot and no one else applied? Does the same thinking still hold?

I believe it does. Outside of myself and the organizer, I’m not sure anyone else would even know that not a lot of people signed up to speak at the conference. But those aren’t the optics. The optics aren’t the context, the optics are what gets put on a web page ‘speakers’ section and burned forever in the indexes of google. No one knows that I said ‘yes’ because there was no one to turn down, they only see me, 19 other white folks, and few people of color on the speakers page.

And what does that say? Depends on who you are. To some, it says pretty clearly that I was OK with the makeup of the conference, or that at best I was indifferent to it, and to others it’s business as usual, not worthy of mention.

Here’s why I’m bothered: It should always be remarkable and concerning when our events are mostly white guys in speaking slots. But it won’t be remarkable until we start remarking about it publicly. A lot of people of color have been talking about it for a long time; but outside of the largest conferences, I haven’t seen that discussion happen at a local level. It needs to happen at all levels.

Here’s where I’m asking for your opinion. I don’t have any good answers, but I hope we can figure something out as a community; whether that’s to cancel events where there’s not enough balance in the speaker list; or whether it’s to open CFPs sooner for events (this particular CFP was pitched 6 weeks before the event was slated to begin), or whether it’s to say, “Really? You see this as a problem? We’ve got software actively destroying people’s lives and you’re writing about speaking slots at a conference?”

I don’t have a good way to end this blog post, there’s no satisfying call to action because I don’t have any answers. All I can hope for you to do is think about what it says to you when your conference speaker slate is mostly white dudes; and what under-represented voices should be speaking at those events but aren’t, and whether the makeup of the speaker slate should affect whether an event happens.

Last Week in .NET – Week ending 05 September 2020; .NET gets Half, a new Data Type.

.NET Framework September 3, 2020 Cumulative Update Preview for Windows 10 (2004) and Windows Server (2004) is now available:

WPF now will not consider ‘etc.’ and ‘e.g.’ misspellings in the WPF Textbox or the RichTextBox, so they’ve finally entered the 20th century. Congrats?

Also they fixed a bug with cleaning up something or some other with the CLR. I’m gonna copy/paste this because it’s word salad to me, but if you have to deal with this on a day-to-day basis, it looks like they fixed ‘it’ (whatever ‘it’ is):

– Addresses an issue with a crash on COM interop to properly return the hresult for the Out of Memory Exception
– Addresses an issue in some 32 bit apps where, in certain scenarios, the JIT might omit a function call
– Improved support for cleaning up private temporary certificate keys

Some more editor goodies in Visual Studio 2019 Preview:

You can have Preview installed side-by-side, and preview is the only way you can see the .NET 5 goodies. Here are some of the editor goodness they’ve added in Preview:

https://docs.microsoft.com/en-us/visualstudio/ide/reference/options-text-editor-csharp-advanced?view=vs-2019#editor-help

TypeScript 4.0 is now Generally available:

App Trimming is going to be in .NET 5.

https://devblogs.microsoft.com/dotnet/app-trimming-in-net-5/ and you can customize it: https://devblogs.microsoft.com/dotnet/customizing-trimming-in-net-core-5/

I have no idea what this does from a practical perspective; it sounds like it removes unused members, functions, methods, etc, which should lower the executable size. Great for people who deploy to user’s desktops and Microservices; but not sure in the normal ‘we deploy to our server’ instance this would be useful. Shout out if I’m wrong and let me know why.

You now have template parity between the dotnet new command and the Visual Studio project templates

As of Visual Studio 16.8 Preview 2, you can now toggle in the settings to see all the templates you’d see from the command line. I like this, but I’m probably the only one that thinks this should be the default, and not the other way around. https://devblogs.microsoft.com/dotnet/net-cli-templates-in-visual-studio/

.NET is faster on ARM64 now

The .NET team has been working hard to improve performance for ARM64 for .NET, and I’m glad. I don’t think Intel is long for this brave new world.

This blog post rivals most Steve Yegge blog posts; but if reading nitty gritty implementation details about the ARM platform juices you, give this blog post a read.

AOP using Proxies in .NET Core

This doesn’t get enough press, and AOP doesn’t get enough love, but check this out: https://blog.zhaytam.com/2020/08/18/aspnetcore-dynamic-proxies-for-aop/

NDC Minneosota starts online tomorrow

Yea, I missed this; but if you’ve got money to burn, NDC is a great place to burn it. Or you can wait 6 months for the videos to be on Youtube.

https://ndcminnesota.com/tickets

.NET Now supports the Half Datatype

I really thought this was a joke. But reading it, it isn’t. There’s the need for a Half data type, apparently?

And that’s it for what happened last week in .NET . Today is a holiday so I won’t be releasing the audio form of this newsletter.

Last Week in .NET – 29 August 2020 – Blazor is the new Silverlight?

.NET 5 preview 8 has been released:

https://github.com/dotnet/core/releases/tag/v5.0.0-preview.8

If you want to use .NET 5 Preview 8 with Visual Studio, make sure you have the Visual Studio 2019 16.8 preview 2 release installed.

Speaking of Visual Studio 2019 16.8 Preview 2, it now supports editor config fileheaders and namespace settings. So if your company has a 1980s centric approach to file-headers, you can now offload that work to the editorconfig.

ASP.NET Core 5 Preview 8 has been released.

Lots of Blazor updates and improvements, as well as ASP.NET Core now supports Model binding and validation for C# 9 Record types.

Entity Framework Core 5 Preview 8 has been released:

They fixed a metric ton of bugs, and there are a lot of small features that may interest you.

F# 5 Preview 8 is out:

F# 5 now includes String Interpolation; a la what C# has had for a few releases now. F# 5 now also includes complete nameof implementation support, and more.

Is it .NET 5? Is it ASP.NET Core 5? Is it ASP.NET 5?

Jon Galloway gives us the answer:

ASP.NET Core name stays – you’ll either see “ASPNET Core running on .NET 5” (blog post link) or “ASPNET Core 5”.

Npgsql update for EFCore 5 Preview 8 has been released:

https://github.com/npgsql/efcore.pg/releases/tag/v5.0.0-preview8

I’m really glad people are pinning to the version of .NET Core they support. It’s hard to keep up otherwise.

Is Blazor the future of development?

Short answer: No, it’s not going to replace JavaScript, but it will give the “We’re a Microsoft shop, we use what Microsoft supports” crowd an adoption path for their aging Webforms implementations.