EMPEX has been running for 5 years.

In that time, we've heard some amazing talks! Here they are in all their glory.

A Swarm of Processes - Simulating Ant Foraging Behavior with OTP of Processes Will Ockelmann-Wagner (EMPEX LA 2018) In this talk, we'll see a simulation of a foraging ant colony that can efficiently solve mazes, built using a separate OTP process for each ant. Along the way we'll look at GenServers, dynamic Super...

Adoption Panel Shanti Chellaram, Brandon Richey (EMPEX LA 2018) This panel will discuss strategies for increasing Elixir adoption in your organization, and then take questions.

Become a Hex Power User Todd Resudek (EMPEX LA 2018) We all use Hex every day on our Elixir projects, but how many of us really know everything Hex can do and how it works? Taking a deep dive into the Hex internals will show you some tips and tricks y...

Bring On the WorkerBees (Designing Elixir Systems with OTP) Bruce Tate (EMPEX LA 2020) If you want to be a great Elixir developers, you need to learn to build your programs in layers, the way the experts do. In this session, we will explore the advice: Do Fun Things with Big, Loud Wo...

Building beautiful systems with Phoenix contexts and Domain-Driven Design Andrew Hao (EMPEX LA 2018) Phoenix contexts are a powerful code organization tool - but without a clear idea of what business domains live under the hood of your systems, naively creating contexts leads to over-engineered, fr...

Closing Keynote: The Case Against Scale Aaron Harpole (EMPEX LA 2020) Scale is a very popular topic among software engineers, and it is something many of us strive to do well, but we rarely discuss its consequences. We think of scale as an inherently good thing. After...

Controlling MIDI Devices in Real Time with Elixir and Nerves Geoffrey Lessel (EMPEX LA 2020) MIDI is a specification developed in the 80s to allow musical instruments to talk to each other in near real-time. This inter-instrument talk involved sending notes, changing syntesizer patches, and...

Dadgeneering With Elixir + Nerves Jon Carstens (New York 2019) Are you a parent of children, pets, or just really immature roommates? Do you wish you could use Elixir to help solve household issues and annoyances? Do you frequently over-engineer side projects? ...

Deployment Panel Desmond Bowe, Benjamin Brodie, Scott Taylor (EMPEX LA 2018) This panel will discuss their elixir deployment strategies, and then take questions.

Ecto.Schema without Ecto.Repo Rosemary Ledesma (EMPEX LA 2018) With newer versions of Ecto you can use Ecto.Schema without even importing Ecto.Repo or setting up a traditional database. Why would you wish to? Your microservice or other lightweight app may not...

Elixir Code is Elixir! Metaprogramming and Elixir Adrian Cruz (EMPEX LA 2019) Elixir is a programming language that has become dear to me as it has become my go-to choice for most of the things at work and personal projects. One thing that people notice when getting started w...

Elixir and Datadog Ludwik Bukowski (EMPEX LA 2019) Having an Elixir application deployed it's crucial to have good insight into your architecture for multiple reasons. High level of observability helps you scale, improve your system's performance, o...

Erlang Ecosystem Foundation: Hello World Peer Stritzinger (EMPEX LA 2020) The Erlang and Elixir embedded software and hardware platform GRiSP is out over 3 years now and now covers Elixir and Erlang with mix and rebar3 tooling and is looking at further places where Erlang...

Fake It 'Til You Make It (where it = Haskell expertise) Libby Horacek (EMPEX LA 2019) In 2016, Magazine X asked Position Development to expand their existing Haskell app. Instead of only serving ecommerce forms via iframes in their WordPress website, their Haskell app would serve eve...

Five Easy Ways To Start With Nerves Michael Ries (EMPEX LA 2019) Writing code that touches the real world is a magical experience. Nerves makes the software more approachable and much more powerful. Come see five fun projects that you can build from beginning to ...

GRiSP Ecosystem for Real Bare Metal Erlang VM Peer Stritzinger (EMPEX LA 2020) The Erlang and Elixir embedded software and hardware platform GRiSP is out over 3 years now and now covers Elixir and Erlang with mix and rebar3 tooling and is looking at further places where Erlang...

Go vs Elixir: A concurrency comparison Anna Neyzberg, Hannah Howard (EMPEX LA 2019) As software engineers we often are looking for the best tool for the job. Yet what about when languages appear similar? What then? In this talk we will compare Go and Elixir. These languages have s...

Handling Null in Functional Programming Evelyn Masso (EMPEX LA 2019) Nulls are a fact of life—sometimes a value can be absent, which is important information to have However if a variable can be null, we often have to write extra code to handle that possibility. How ...

High Performance Data Structures in Erlang Shanti Chellaram (EMPEX LA 2020) Writing efficient data structures in Erlang isn't something that's normally done - but by borrowing from both Purely Functional Data Structures, some additional work on Finger Trees, and occasionall...

Inclusion Starts With Docs Pete Gamache (EMPEX LA 2018) Great documentation is the single most powerful tool for increasing inclusion in a project. Docs can level the playing field between beginners and experts, providing everyone a better understanding ...

It's Time to Embrace Erlang Todd Resudek (EMPEX LA 2020) As a community we have gone to incredible lengths to avoid ever writing or even looking at Erlang syntax. This has lead to a fractured community, unnecessary dependencies, and opaque code. Even wors...

Lessons From Our First Trillion Messages with Flow John Mertens (EMPEX LA 2019) For many of us recent Elixir converts, our initial attraction to Elixir was rooted in the promise of access to the BEAM concurrency model. While this has been possible in Elixir from day one, Flow ...

Life is but a Stream Geoffrey Lessel (EMPEX LA 2018) A overview and dive into the Stream module. When should you use it over Enum? What are the pros and cons of using Stream for your day-to-day tasks? How are some of the functions implemented? We'll g...

Making your Elixir API Accessible to non-Elixir developers Kalisa Falzone (EMPEX LA 2019) This talk will describe tools, application best practices, and team collaboration tips that make consuming and working with an Elixir API easier for those not familiar with Elixir. I will talk about...

Nerves Takes to the Sky Michael Ries (EMPEX LA 2020) The problem with a paper airplane, is that it always seems to turn one way or the other. I can never get them to maintain a steady course. What if Nerves was riding along as the pilot? We'll first ...

Opening Keynote: Building Real Time Experiences with LiveView and UX Principles Beau Heubach, Zack Kayser (EMPEX LA 2020) The need for fast and clear real-time responses are not new to user experience and application development. Instant feedback and system status are core to building better interactive interfaces. Now...

Opening Keynote: Distributed War Stories Miriam Pena (EMPEX LA 2019) Architecting a highly concurrent distributed system in the BEAM ecosystem is not an easy thing to do even on a perfect world of homogeneous traffic, reliable, secure and low latency networks. But re...

Powering Pixels with Scenic Jesse J. Anderson (EMPEX LA 2020) Scenic is a powerful new library that empowers us to build our own user interfaces from scratch that work outside of the browser. Let’s put it to the test in building our very own video game. We’ll ...

Real time strategy at light speed Julian Doherty (EMPEX LA 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 sp...

Rebuilding a BDD Testing Framework (ESpec): Foundations in Metaprogramming Bruce Park (EMPEX LA 2019) You're a Test-Driven Development disciple, but you're a little iffy on this whole metaprogramming thing and it's something you don't feel comfortable using in your day to day programming. If you've...

Shipping a Replacement Architecture In Elixir Chris Bell (EMPEX LA 2018) This talk will be a deep dive of how we spent the last 4 months replacing our Rails API and various Node.JS microservices with a single Elixir Umbrella Application. We’ve gone from no Elixir in prod...

Stream-processing connected vehicle data in Elixir Jeff Grunewald (EMPEX LA 2020) “Smart” and connected vehicles generate TONS of data. To make use of that data from a fleet of vehicles for analysis of V2V interactions, traffic patterns, or control flow, you have to consume as mu...

The Messaging Metamorphosis: Using Kafka, Elixir, and GenStage to Transform Transactional Messaging @ Dollar Shave Club Ryan Trontz (EMPEX LA 2020) Elixir, Apache Kafka, and Microservices have all exploded in popularity in the last few years. While their popularities have all exploded, clear understanding of their interplay has not. In this tal...

Where did I put my data? Alex Peachey (EMPEX LA 2019) A look at how Amnesia's Elixir wrapper over Erlang's Mnesia distributed DBMS can be used to keep your application state in a scalable resilient manner. We will start by looking at Agents and GenServ...