If you’re new to my blog - I’ve been involved in the open source software movement for many years now, primarily in the .NET ecosystem. You might be interested to read my takes on how the .NET ecosystem’s OSS movement has changed over time:
- 2010: .NET Culture Shock: Why .NET Adoption Lags Among Startups <– I got a job at Microsoft when this post trended on Hacker News
- 2010: Powered by Microsoft <– started working at MSFT
- 2011: Getting Started with AppHarbor – Heroku for .NET
- 2012: Today I am Leaving Microsoft and Starting my Own Company <– left MSFT to start MarkedUp Analytics (app analytics for Windows Store)
- 2014: The Profound Weakness of the .NET OSS Ecosystem
- 2015: How to Start Contributing to Open Source Software
- 2016: .NET Core is Boiling the Ocean
- 2017: .NET Core is Probably Fine
- 2017: The Coming .NET Renaissance
- 2019: Problems and Solutions with the .NET Foundation Maturity Ladder
- 2020: The Next Decade of .NET Open Source
- 2020: How to Build Sustainable Open Source Software Projects
- 2020: The New Rules for Playing in Microsoft’s Open Source Sandbox
- 2020: Introducing Sdkbin - The Marketplace for Software Developers
- 2021: .NET Open Source: What Happens When the Free Lunch Ends?
- 2021: The Future of the .NET Foundation and .NET OSS
- 2024: .NET Developers Begging for Ecosystem Destruction
- 2024: Has Ruby-on-Rails-Style ‘Gem Glue-Gunning’ Come to .NET?
And if you’re interested in any of contributions, you can follow me on GitHub.
Akka.NET
Akka.NET is my largest and longest-running open source project; it’s a canonical implementation of the actor model in .NET, which can work on embedded devices / mobile phones / desktop apps / video games / web apps / and large scale distributed systems. It’s very versatile, fun, and easy to work with.
Since 2015 Akka.NET has also been my full time job as the founder and CEO at Petabridge, the Akka.NET company.
Some of the repositories I help maintain - not a complete list, but probably the most high-traffic ones:
- https://github.com/akkadotnet/akka.net
- https://github.com/akkadotnet/Akka.Hosting
- https://github.com/akkadotnet/Akka.Management
- https://github.com/akkadotnet/akka.analyzers
- https://github.com/akkadotnet/Akka.MultiNodeTestRunner
- https://github.com/akkadotnet/Akka.Streams.Kafka
- https://github.com/akkadotnet/Alpakka
- https://github.com/akkadotnet/Akka.Persistence.Sql
- https://github.com/petabridge/akkadotnet-code-samples
- https://github.com/petabridge/akka-bootcamp
If you are interested in learning more about Akka.NET, join our Discord channel!
NBench
NBench is a .NET performance testing framework I created back in 2015 in order to end some performance arguments we were having on the Akka.NET project. I’m very proud of what I built here but these days I don’t use NBench very much, in favor of Benchmark.NET instead.
You can view the source code here: https://github.com/petabridge/NBench
TurboMqtt - Work in Progress
TurboMqtt is a high-speed Message Queue Telemetry Transport (MQTT) client designed to support large-scale IOT workloads, handling over 100k msg/s from any MQTT 3.1.1+ broker. I started working in it in 2024 because Petabridge has many clients in the industrial IOT space (i.e. meter data management, manufacturing, fleet and vehicle tracking) and Akka.NET streams seemed like a better fit for making a robust .NET MQTT client that the available fare in-market.
It’s still a work in progress, and you can follow my YouTube videos on how we’re building it here: How We Built the Fastest MQTT Client in .NET - Part 1: Why We Built It
Other Fun Projects
- DrawTogether.NET - Blazor + Akka.NET powered multi-player MS Paint application. You can learn more about how it’s constructed here: YouTube: Application Design with Actors Made Easy: Think Locally, Act Globally
- Incrementalist - incremental build system for .NET that uses
git diff
and the Roslyn compiler toolchain to figure out which parts of a project need to be rebuilt / tested in response to a specific code change. - Cluster.WebCrawler - everyone’s favorite code sample for learning Akka.NET clustering: a brute-force distributed web crawler.
- Introduction to Akka.NET Streams - a set of hosted .NET Interactive Notebooks that demonstrate the basics of Akka.Streams composition.