Frameworkism: Senior Software Developers' Pit of Doom

04 Dec 2024

Frameworkism: Senior Software Developers' Pit of Doom

If you follow me on Twitter / X, you have likely seen several increasingly exasperated tweets from me about a legacy software project from hell. This project deserves its own series of blog posts and YouTube videos, but in service to a higher calling in the field of software I’ll reveal it now: these coding horrors all originate from our rewrite of Sdkbin.

More accurately: we decided the best path forward was to rescue Sdkbin 1.0 and not rewrite it after all, but we’re still conducting the software equivalent of tearing a building down to its foundation and starting over again.

For all of its faults, Sdkbin does generate a significant amount of revenue for us each year. We’ve kept it on life support for four years because its original author left it in utterly incomprehensible shape. In this post I’m going to talk about the plague that’s killed four years of opportunities and left this project swaddled in technical debt before it even served its first customer: frameworkism.

Read More

Has Ruby-on-Rails-Style 'Gem Glue-Gunning' Come to .NET?

25 Oct 2024

Has Ruby-on-Rails-Style 'Gem Glue-Gunning' Come to .NET?

In this post we’re going to travel back in time to 2010 - a happier, simpler time for early-stage startup software developers. When Heroku was free and front-end developers hadn’t had a chance to ruin the JavaScript ecosystem yet. We will eventually make our way back to 2024 .NET-land.

Ruby Land: 2010-2014

Back in the MarkedUp and early Petabridge days, I worked out of Coloft in Santa Monica, CA - a pioneer in the co-working space in Los Angeles. We had lots of startups and software developers of every shade working out of the space - it was even Uber’s original LA office location until they outgrew it.

But one group of developers who left a lasting impression on me was a Ruby on Rails consulting shop that specialized in delivering SaaS and mobile back-ends for Apple’s fledgling App Store (back in 2010.)

What these guys had down was a one-size-fits-all universal template for delivering client applications:

Read More

Hate Your Own Work and Ship It Anyway

08 Aug 2024

Hate Your Own Work and Ship It Anyway

When talking to members of our team about their projects and taking on more responsibility for their outcomes I will regularly recommend the following:

“You should hate your own work product and still ship it anyway.”

This advice is as applicable for shipping software as it is for sending sales emails, graphic design, sweeping floors, or writing this very blog post. But why give it in the first place?

Read More

Noticing Skill Issues is Not Gatekeeping

30 May 2024

Noticing Skill Issues is Not Gatekeeping

I recently waded into the waters of an intentionally obtuse piece of engagement bait on .NET Twitter, mostly because I thought it was funny:

Read More

.NET Developers Begging for Ecosystem Destruction

18 Mar 2024

.NET Developers Begging for Ecosystem Destruction

An ASP.NET GitHub thread entitled “Epic: Eventing Framework in .NET 9” ignited an inferno of criticism for the usual reasons: Microsoft big-footing its own .NET OSS ecosystem, etc, etc…

A few years ago I would have cared about that, but this is simply in Microsoft’s nature - as I’ve written about here before. No amount of public venting of nerd rage or OSS community spirit is going to reach the top of the ivory tower over there. Only changes to Azure spend can make that happen.

If you want to play in the .NET ecosystem as an OSS project, a tool maker, etc - this is the price of admission. If Microsoft entering your space is enough to make you quit or enough to kill your business then you were never creative, determined, or passionate enough to succeed in the first place.

Microsoft claims they’re working on this framework mostly just to improve Azure WebJobs and therefore this isn’t really a threat to MassTransit, Wolverine, MediatR, et al but I don’t believe that. Why make it an epic within ASP.NET, by far the most popular framework in the ecosystem, if you don’t intend to have third parties actually use it?

That aside, it’s not the reaction of the OSS producers or Microsoft on that thread I found interesting - it was the reaction of .NET OSS consumers that caught me by surprise.

Many .NET developers were vocally cheering on the destruction of these popular third party frameworks, as though having multiple, well-maintained tools was an inconvenience that needed solving.

Who are the .NET developers demanding that .NET destroy its own ecosystem and return to .NET to the uncompetitive, intellectual ghetto of yesteryear?

Read More

How to Distribute Roslyn Analyzers via NuGet

11 Jan 2024

How to Distribute Roslyn Analyzers via NuGet

Towards the end of 2023 I had some rare downtime and decided to use it to develop a new skill I’ve wanted to learn: leveraging .NET’s impressive Roslyn Compiler Platform to help Akka.NET users be more productive at compile-time.

Roslyn Platform Logo

That interest propelled me to release Akka.Analyzers, a new set of Roslyn Analyzers + Code Fix Providers that we’ve incorporated directly into the core Akka NuGet package as a transitive dependency going forward, so all Akka.NET users and all packages built on top of Akka.NET will benefit directly from our efforts there in perpetuity.

In this blog post I want to discuss one tricky and important obstacle that was not explained very well in any of the literature I found online: how to actually format the Roslyn-enabled NuGet package correctly. This is non-obvious.

Read More

Internal vs. External Accountabilities

18 Sep 2023

Internal vs. External Accountabilities

One of the concepts that’s commonplace on software development Twitter / Reddit et al is the notion that management is ultimately responsible for everything that’s done by their employees - i.e. the captain is responsible for the behavior of the crew.

And in a sense this is true - from...

Read More

We're Rewriting Sdkbin

10 Aug 2023

We're Rewriting Sdkbin

In light of the recent drama with the Moq project’s decision to try to solicit donations through the use of SponsorLink, I’ve decided to share some updates on Sdkbin - our NuGet marketplace for .NET developers that we launched in October, 2020.

The last update I shared on Sdkbin was February 2021 - Sdkbin has continued to be a major driver of revenue growth for us with our Phobos product and handles about 33% of our total revenue.

However, as I shared on Twitter yesterday - we are embarking on a project to rewrite Sdkbin in order to fulfill our mission of becoming the marketplace for OSS developers to build businesses around their technology.

Read More

DRY Gone Bad: Bespoke Company Frameworks

08 Mar 2023

DRY Gone Bad: Bespoke Company Frameworks

There are some software development best practices out there that are universally and unambiguously true outside of any specific business context - “use source control” is a great example. These are rare.

The lion’s share of software industry “best practices” - SOLID principles, “Clean Code,” DRY, and so on -...

Read More

Why Self-Fulfilling Prophecies Come True

23 Dec 2022

Why Self-Fulfilling Prophecies Come True

In the aftermath of the 2022 midterm elections in the United States many conservative leaders, disappointed with the election results, blamed their poor showing on mail-in voting laws in key states:

“We will never win elections in states like Pennsylvania, Nevada, or Michigan so long as there’s mass mail-in...

Read More