We've made some solid progress towards that goal in some of our maintenance releases, but I came to the realization over the past couple of months that the way we've been working with our contributors isn't the most effective way for the project to achieve these milestones.

In this post I'm going to invite you, a .NET developer who's interested in distributed computing, to work with me directly on the guts of Akka.Cluster and take on a project that's bigger than you or me. And it'll be awesome - you'll learn a...

Last year I had to spend a fair amount of time working on C and C++ projects in Visual Studio 2013, and one of the tasks that I had to learn how to do was use Visual Studio's pre-build and post-build events to copy all of my dependent DLLs into the final output folder for my applications.

In C# we take the ability to do this for granted - if we need to add a reference to another project in our Visual Studio solution we just Add Reference --> Projects --> [Project Name] and boom, we're all set. Visual Studio will automatically copy our dependent binaries into our final /bin/[Release|Debug] folder automatically.

The MarkedUp team has had experience developing SDKs, high-performance APIs, working with Cassandra / Hadoop, and service-oriented software for several years. However, when we started laying out the blueprint for MarkedUp In-app Marketing we knew that it would require a radically different set of tools than the traditional stateless HTTP APIs we’d been used to developing for some time.

IChannel, IChannelConfig, and more

The original Channel interface is chock-full of detailed, helpful comments written by the Netty team and I did my best to port most of those over onto the IChannel interface in Helios, but I got impatient and left a couple of them to be filled-in as TODOs (send me a PR!)

Next I got to work on porting all of the ChannelConfig options, which included porting the AbstractConstant and ChannelOption classes.

The Curiously Recurring Template Pattern

To my eternal shame, I've never blogged about one of the most important open source projects I'm involved in: Helios. Helios is for all intents and purposes a .NET port of Java's wildly successful Netty project, the reactive high-performance socket server that powers the internals of systems like Apache Cassandra and Typesafe's Akka project.

Helios has dutifully powered the remoting layer behind Akka.NET (my main OSS project) for the past couple of years, and is capable of being a powerful tool within the .NET distributed programming ecosystem in its own right.

Helios' Goals

Helios' job is provide .NET developers with the following tools:

An asynchronous, event-driven network application programming framework that works across both TCP and UDP, client or server;

voat.co - an instance of the software that is owned and operated by its creators.

I'm a huge fan of Reddit - had an account there for years, and seeing such a kick-ass implementation of it written in C# with SignalR, ASP.NET MVC, Web API, and lots of other cool toys gets me really excited!

I did an interview with Scott Hanselman immediately after .NET Fringe and we covered the goals and scope of the Akka.NET project, but also really took a close look at the Actor model and why it's becoming a popular concept among .NET developers.

Why do open source?

This weekend I went through the Landmark Forum and had to confront a big secret that I've been keeping hidden for virtually my entire life: the true aim of my ambitions.

Ever since I was a middle schooler, I've wanted to help build the first human colony on Mars. I've multiple hours per day thinking about it for years and years and told no one. I was afraid that people would think it's a ridiculous goal, and that I wasn't successful enough to do it yet. And really, I was scared that I would fail. So I let these fears stop me from ever trying or ever sharing it.

The Forum helped me realize that these fears are bullshit.

I'm going to help put the first permanent human settlement on Mars. That's my mission, and today I'm committing to realizing the possibilities that go with it. Sure, it'll be...