Brian McKenna


Functional Programmer at Atlassian

Brian McKenna is a functional programmer from Tasmania who works remotely for Atlassian. He has been using Nix personally and professionally since 2014, contributing back packages and configuration. He has been playing with Eta in an attempt to help solve The JVM Problem and to learn more about GHC’s runtime and compilation. He believes functional programming is the only ethical way we should be developing software.

YOW! Lambda Jam 2017 Sydney

Nix for Functional Systems


When managing systems we often use imperative tools. We run commands and mutate state. Nix provides tools to convert imperative commands into functions. By using functions we gain code reuse, reproducibility and atomicity.

Nix’s tooling consists of a programming language, a package manager and an operating system. Using these tools we can define packages, cross-compiled binaries, chroot environments, virtual machines and Docker images.

This talk will skip the basics of how to use Nix and instead cover the basics of how Nix works, some of the benefits it gives and how I’ve been using it personally and professionally over the past few years.

[tt_timetable event=’nix-functional-systems’ columns=’sydney-day-1-green-mon-08-may-2017′ time_format=’H:i’ hide_hours_column=’1′ event_layout=’3′ box_bg_color=’eeeeee’ box_hover_bg_color=’eeeeee’ box_txt_color=’333333′ box_hover_txt_color=’333333′ box_hours_txt_color=’333333′ box_hours_hover_txt_color=’333333′]

See full Program

Haskell on the JVM with Eta


Eta is a fork of the Glasgow Haskell Compiler which provides a JVM backend. Most of GHC’s extensions are supported, allowing a lot of existing Haskell code to run without modification. A few extensions are also provided to allow comprehensive interoperability with Java.

I have worked on Eta and understand some details about how it works. I’ll describe how Eta compilation generates JVM bytecode, how Eta’s runtime works to evaluate lazy programs on the JVM and what hope we have of making Eta solve the “JVM problem” for practical programs.