About Real World F#

Hi! I’m Christopher Brown, and I’ve been a professional programmer for over 15 years now. Though I’ve been working in C# for most of the 2000s and 2010s, I worked with VB, C++, Perl, Java and Web Application development in Javascript and a wee bit of node in my spare time. In 2013, I met up with an extremely smart developer who introduced me to functional programming, in a language called Clojure.

It was an unmitigated disaster. The language itself seemed overwrought, and frankly hard to read with all the parenthesis everywhere. But the idea of functional programming stuck, and my familiarity with the .NET framework had me reconsider learning F#.

So began a beautiful relationship. I took on a role at work which enabled me to see, in rather painful detail, the sheer number of bugs that can be avoided by simply avoiding nulls and using immutability to your advantage. Yes, it took time to learn. Yes, it wasn’t easy.

I followed fsharpforfunandprofit.org religiously, read just about every book I could find, and still, was looking for more.  Now that I’ve learned so much, I decided it was time to start pushing more stuff out there in the world.  The world needs F#, and someone reasonable to evangelize it. Hence, Real World F# was born. The .org in my domain name is an homage to fsharpforfunandprofit.org and fsharp.org


This site is primarily a platform to help the everyday programmer learn more about how F# works. I’ll try to use real world examples and a personal style to talk about how I use F# in my day to day job. We are only starting to use F# for much production code at {Redacted} the company I work for, but I’m doing my damnedest to move toward it being a primary, rather than secondary language. This blog will chronicle that effort, alongside some of the other things I’m doing within the wonderful F# community.


I’m a father of 3, a girls’ softball and football coach, and a principal software developer at {Redacted}. My company has strict rules about employee blogs, so for sake of this blog, it will never be mentioned as anything but {Redacted.}

I speak occasionally at dev meetups, most recently related to F# and unit testing.

I’m on twitter @cmbrown1598, though I tweet minimally, it’s a great way to get in touch with me. Questions and comments can be directed there.