Haex - Haskell As Elixir - Elixir Australia

Haskell has a rich type system with elegant and sophisticated ways of defining and working with data structures. Elixir has awesome things we all know and love, but less of that. How can we abuse macros and Elixir type specs to build a DSL that sort of gives us some of the same.

Massively Multiplayer Clicking with Phoenix LiveView - Elixir Australia

Meetup talk of using Elixir LiveView to build a multiplayer clicker game.

Exercism "Pig Latin" walkthrough - Elixir Australia

Video from Elixir Australia March 2020 meetup walking through the solution to the "Pig Latin" exercise from the Elixir track on Exercism.

Escape Your Framework - RubyConf AU 2020

Conference talk at RubyConf AU 2020 on refactoring code to not be tied to the underlying framework using functional patterns

Real Time Strategy At Light Speed in Elixir - Empex LA 2020

This is a talk I gave at Empex LA Elixir conference in Los Angeles, US in Feb 2020. Real time space battle multiplayer browser games are cool. But what if we want to play a real time space battle multiplayer game where the players are hundreds of millions of miles apart, and the speed of light is a factor in who sees what happening, and when? Or, download Slides.

Cool Functional Tricks In Ruby - Kiwi Ruby 2019

Talk at Kiwi Ruby 2019. We'll have a look at some of the lesser known functional programming approaches you can use in Ruby.

Stateful Processes In Elixir - Elixir Melbourne

This pattern pops up everywhere in Elixir. It is abstracted out of the way by OTP, but having a good understanding of it makes a lot of things easier to reason about. It’s also the reason the BEAM VM Elixir runs on is able to achieve massive scalability that we can use in our everyday apps. Talk I gave at Elixir Melbourne June 2019 meet up. Download slides

Process Name Registration - Elixir Melbourne

This is a talk I gave at Elixir Melbourne in November 2017 with options for how processes can be named and found locally, and globally within an Elixir cluster. Download slides

ETS, DETS, Mnesia, and things - Elixir Melbourne

This is a talk I gave at Elixir Melbourne in May 2017 giving a quick overview of different options for storing mutable state in Elixir apps: ETS (Erlang Term Storage) DETS (Disk Erlang Term Storage) Mnesia (Erlang’s built in database) Download slides

Functional Programming For The Anxious Developer - RubyConf AU 2017

Programming involves dealing with an overwhelming amount of complexity. The human brain can only deal with so much information to process before anxiety kicks in and your ability to proceed suffers. Functional programming provides tools to manage the combinatorial explosion of state and logic. Here we’ll cover some practical uses of functional programming techniques in Ruby that can be directly applied to your everyday work. Talk I gave at RubyConf AU 2017.