Hi!

I am Bryan Hunter, and LeanFP is my solo consulting practice. Below, I have gathered some of my recorded presentations and podcasts.


Presentations and Podcasts

Pipe forward |> Using Elixir and F# together

NDC London 2017 - January 2017

Elixir and F# are two languages that are loved by their users (and for good reasons). Both are functional. Both are expressive. Both are growing up as the smarter, cooler, prettier younger sibling in their families. Both share the elegant pipe operator "|>". And that (screech) has pretty much exhausted the list of their similarities.

In most other ways they are different, and they are good at different things. F# has a great type system. Elixir has a great concurrency model. F# can run on mobile devices. Elixir can handle requests from millions of mobile devices. Even the timescales of their sweet spots differ.

If both deserve a place in our toolbox how can we use them together? We will explore various interoperability techniques (from loose to tight), and we'll develop an intuition for which hammer not to use on which thumb.

What every Node.js developer needs to know about Elixir

NDC Oslo 2016 - June 2016

Node with its sweet-spot of quickly standing up back-ends has caught fire in dev shops around the world. Depending on your business case, that fire can yield a high-fiving “we did it!” celebration, or a charred project timeline with scorched, haggard developers. When is Node OK? When is it dangerous? What’s the alternative?

Many seasoned Node developers are discovering Elixir makes a great lifeline when Node turns creepy. They're escaping to a polyglot approach: JavaScript in the browser, Elixir on the server. OK… but why Elixir? Answer: Elixir is approachable and productive like Node, but it’s much more versatile and safe than Node.

Elixir is an expressive functional programming language that is 100% "good parts” borrowed from Erlang, Ruby, Clojure, Python, F#, and Node.js. Elixir delivers familiar (modern) tooling, developer joy, simplified distribution, massive concurrency, and carrier grade fault-tolerance. Curious? Good! Come join the fun!

Show 1163 - Lean Functional with Bryan Hunter

.NET Rocks! - July 2015

"Isn't all functional programming lean? What does that even mean? While at NDC, Carl and Richard chatted with Bryan Hunter about lean principles and how they apply to functional programming. After a quick debate around the merits of object-oriented programming vs functional programming, the conversation turns to the history and principles of lean. Bryan shows how lean informs your approaches to programming, how you can evaluate your tooling and techniques to build the best software possible. Is functional programming the ultimate manifestation of lean?"

Lean and Functional Programming

NDC Oslo 2015 - June 2015

Companies adopt Lean because it is a proven path to improving delivery times, reducing cost, and improving quality. A company that writes software cannot truly embrace Lean without also embracing functional programming. Why? Lean is about building quality into the process. Lean is a systemic method for reducing waste, overburden, and inconsistency. With OO, many forms of waste, overburden, and inconsistency are unavoidable. A defect early in the process always results in a defect in the product later in the process, and OO itself is a defective process. In this session we will go from the origins of both Lean and FP and see how specific FP concepts (examples in F#, Elixir) map onto Lean principles. We will also discuss why some companies fail at Lean and FP.

Show 1080 - Programming Elixir with Bryan Hunter

.NET Rocks! - July 2015

"Isn't all functional programming lean? What does that even mean? While at NDC, Carl and Richard chatted with Bryan Hunter about lean principles and how they apply to functional programming. After a quick debate around the merits of object-oriented programming vs functional programming, the conversation turns to the history and principles of lean. Bryan shows how lean informs your approaches to programming, how you can evaluate your tooling and techniques to build the best software possible. Is functional programming the ultimate manifestation of lean?"

CQRS with Erlang

NDC Oslo 2014 - June 2014

Erlang is an industry-proven functional programming language with unmatched sweet-spots in fault-tolerance, concurrency, and distribution. RabbitMQ, CouchDB. Facebook Chat, Opcode Chef, and WhatsApp are written in Erlang, and more than half of the world's mobile phone traffic is driven by Erlang. Erlang is also opensource, and cross-platform.

CQRS is an architectural pattern that separates commands (which mutate state) from queries (which return values). With CQRS the “read” data store and the “write” data store can be on different severs, can use different storage engines, and can be scaled independently. CQRS is often linked with the Event Sourcing pattern which models state as a series of events (past tense verbs) rather than a single “latest” value. What works for an accountant’s ledger (and for Git) can work for our “write” store too. Given a series of events, we can deal with concurrency and collisions more intelligently than “last guy wins”. We can also define varied service level agreements for our commands and our queries.

CQRS promotes distribution, concurrency and eventual consistency which is dandy until we attempt to code an implementation with conventional tools like C# or Java. Lucky for us, Erlang is unconventional in all the right ways. Many of the ideas of CQRS dovetail perfectly with the sweet-spots of Erlang. In this session we will dive into CQRS, and explore a sample implementation written in Erlang. We will spotlight a few areas where CQRS with Erlang shines.

Erlang: a jump-start for .NET developers

NDC Oslo 2013 - June 2013

A team of C# and Erlang developers is a force to be reckoned with because Erlang and .NET are pure complements— each excels at what the other sucks at. Many C# developers write both JavaScript and SQL; adding Erlang to the mix can (and should) be just as natural.

But wait, what is Erlang? Erlang is an industry-proven, open-source, cross-platform, functional programming language and runtime. Facebook's chat, CouchDB, RabbitMQ, GitHub's pages, Opscode Chef, Riak, and Amazon's SimpleDB are all written in Erlang for good reason— Erlang simplifies writing highly-reliable, concurrent, distributed systems.

How does a C# developer even get started? What are the development tools? Can it all be done on Windows? What is similar, and what is truly foreign? What baggage does a good C# developer bring to Erlang? How do you begin to lose your C# accent? When is Erlang the right tool for the job? How should a .NET shop pilot Erlang? Come learn the "what", "why" and "how" of Erlang and get started!


Need a hand?

The name LeanFP points to my core skills and suggests how I can be most useful to your organization. Lean (from Lean manufacturing) and FP (functional programming) may at first seem like an odd pairing. Once these ideas click, they provide a powerfully coherent philosophy and industry proven practices to deliver quality software faster and with less waste.

With over two decades of experience in designing, developing, shipping, and maintaining software I bring perspective to projects.

If you have questions, please reach out here: bryanREMOVE.hunterREMOVE@REMOVEleanfp.REMOVEcom