EMPEX, the Empire City Elixir Conference, is a sophisticated conference series for the Elixir programming language and ecosystem held in New York City. We present a single track of technical talks in a jazz club. Our goal is to bring a sense of aesthetic and fun to the growing Elixir community. We'd love for you to join us!


EMPEX will be held at Subculture, an intimate jazz club in Soho.

45 Bleecker St, New York City, 10012
Find it on Google Maps


We're excited and proud to announce our keynote speakers for the fourth annual EMPEX!

Thomas dave

Dave Thomas


Dave Thomas has written code just about every day in the last 45 years. One day he’ll get it right.

He’s an author: The Pragmatic Programmer, The Manifesto for Agile Software Development, Programming Ruby, Agile Web Development with Rails, and recently Programming Elixir. He speaks at conferences around the world, and runs training for folks who want to enjoy themselves while learning (kind of like a Comedy Defensive Driving class).

But mostly he writes code; sometimes to solve problems, sometimes to understand problems, and often to create them.

He has strong and controversial views on how Elixir should be written; prepare to be both entertained and annoyed.


We're proud to announce the following presenters for EMPEX!
Andrew Forward headshot

Andrew Forward

LiveView: Rich Client Side Experience Delivered From the Server

Let’s welcome LiveView to the Elixir Phoenix ecosystem. Wanted: rich user experience, JavaScript frameworks need not apply.

Despite being very (very) new come learn more about some common user interface features that can be solved with LiveView, and some lessons learned along the way to refactoring away from custom JavaScript and towards LiveView controllers.

About Andrew: Andrew Forward is happiest during biking season. Otherwise reserved, he has a passion for software engineering, finance and fitness; often intermixing all three. Andrew works remotely as a developer for CrossFit HQ, but also dabbles as a part-time professor at the University of Ottawa. Andrew came to Elixir for the syntax, but stayed for the OTP.

Billy Ceskavich headshot

Billy Ceskavich

Is Elixir Just Lisp? Demystifying Metaprogramming in Elixir and Beyond

Metaprogramming is a powerful tool that many Elixir developers use every day. Via macros, we can write concise, reusable code, and even extend the language itself. But, metaprogramming in Elixir can be hard to grok, especially for newcomers. So in this talk, we’re going to review the inner workings of Elixir’s metaprogramming environment. We’ll start with a quick syntax review, and discuss in plain terms what the core components do for you. Then, we’ll talk about the essence of macros: modifying Elixir’s Abstract Syntax Tree to reshape your code at compile time. And finally, we’ll compare Elixir’s macros to metaprogramming approaches taken in other languages. Whether you’re new to Elixir or a seasoned developer, you should leave this talk with a clearer understanding of how this powerful set of Elixir abstractions works and how you can use it all confidently in your next project.

About Billy: Billy is a software engineer based in Brooklyn, NY. He works at Frame.io, where he wrangles Elixir and JavaScript to help build their developer platform. He wrote his first Elixir program in 2016 and started writing Elixir full-time in November 2018. When he's not writing code, he's probably baking or hanging out with his cat.

Brian Mitchell headshot

Brian Mitchell

In Conversation With Dave Thomas

Brian will engage with Dave Thomas on topics posed by Dave.

About Brian: Brian Mitchell has worked with Erlang for many years and enjoys what Elixir brings to the ecosystem. He has worked in a wide variety of domains that range from embedded systems to clustered database systems. He enjoys teaching others about various interesting ideas he has encountered during his programming career. When not coding, you might catch him playing the game of Go.

Eric Meadows-Jonsson headshot

Eric Meadows-Jönsson

Introducing Mint, a process-less HTTP client

In this talk we will present Mint, a new HTTP client for Elixir supporting HTTP/1 and HTTP/2. Mint has a process-less architecture using pure data structures, we will show why this architecture gives the developer more flexibility in how they can use the library but also the possible downsides of this approach. We will look at different use cases for Mint and finally go into some of the details of how to implement a HTTP library and how to build libraries using pure data structures.

About Eric: Eric Meadows-Jönsson is a member of the Elixir team and an active member of the Elixir community being the creator of many libraries, including Ecto and the Hex package manager. Eric is a co-author of the book "Programming Ecto" published by Pragmatic Bookshelf.

Jon Carstens headshot

Jon Carstens

Dadgineering with Elixir+Nerves

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? Then you might be a dadgineer (or momgineer).

This talk is compilation of fun projects using Elixir & Nerves to solve silly problems around my home. Projects such as a "Picture Board Turn Selector" to programmatically answer the age old question of "Whose turn is it!?", complete with LED light show. Or hardening the security of the toy storage room with electromagnetic latching and biometric unlocking procedure.

The projects are overly complex for the problems they are solving, but my hope is that it helps inspire others to break into the world of hardware. To provide yet another set of wild examples to show how fun and sometimes surprisingly easy it is to create your own customizations in the physical world.

About Jon: Happily married father of four young kids. Wannabe woodworker. Avid bike rider. Hardware fanatic. Lover of good BBQ, chocolate chip cookies, and swimming.

Meryl Dakin headshot

Meryl Dakin

Process Potential: Multitasking and fault tolerance in Elixir

Much of Elixir's hype has flowed around OTP: the concurrency and parallelism that promises multitasking at lightning speeds. However for newcomers to the language, the tools that enable this can be hard to visualize and intimidating to implement.

We'll start with processes and work up to GenServers. We'll take a look at a truly practical example of GenServers: an app that deploys hundreds of repos to Github Enterprise at once for students to use as lessons while maintaining global state. We'll delve into how it orchestrates the process with parallelism and fault tolerance. Both developers from OO backgrounds and those currently working in Elixir will gain a new comfort with the building blocks of multitasking and how to use them to their potential.

About Meryl: Meryl Dakin is a full stack web developer living in Brooklyn. She is a former instructor for the Flatiron School and volunteers with Code Nation. She has written several blog posts and made a small number of cartoons on various programming topics.

Vaibhav Sagar headshot

Vaibhav Sagar

Functional DevOps in a Dysfunctional World

What happens after you cut a release? Getting your finished software in the hands of your users can be quite an ordeal, especially if you use tools that make things harder than they need to be. It turns out that a functional approach has benefits even after the development team has written their last line of code.

I will motivate and demonstrate using the Nix suite of tools to package and deploy a web service, showing how this helps us reconcile the sometimes conflicting priorities of development and operations teams and allows us to respond nimbly to change as it occurs.

About Vaibhav: Vaibhav used to write web applications for a living. He still does, but he used to, too. When he's not doing that he yells about Nix on Twitter, reracks his bumper plates, and listens to a lot of really good disco.

Zack Kayser headshot

Zack Kayser

Demystifying Purely Functional Data Structures in Elixir

Reasoning about data structures and run times in functional languages like Elixir is a far cry from classic analysis of data structures in imperative languages. While working with immutable data structures helps us reason about the flow of state in our programs, it has implications on the data structures we choose to work with and the efficiency of operations on those data structures. We will start by briefly laying some groundwork for analyzing functional data structures and discuss some optimizations used to prevent unnecessary copying while maintaining immutability. We'll move on to take a look at some basic data structures implemented with examples in Elixir and then discuss their characteristics. Starting from naive implementations of these basic data structures and related operations on them, we will consider how to further optimize operations to draw out more efficient run times. The talk will wrap up with a discussion of how to build an intuition for creating more efficient data structures in Elixir.

About Zack: Zack is a software engineer at Gaslight in Cincinnati, Ohio, and has spent the last couple of years working on a wide variety of projects -- ranging from server-side applications, to iOS and web frontend enterprise applications, to one-day hackathon projects, all the way to game development for personal enjoyment (and pain :-D). Ever since being introduced to Elixir, Erlang, and OTP in 2016, he has been a huge proponent of functional programming and an evangelist for a movement towards more immutability and no shared state wherever possible. Prior to entering the software industry, he was a professional translator specializing in English to Japanese translation. Outside of work, Zack is an avid traveler and a long distance runner (but only when it is not winter in Ohio because cold is NOT cool).


Doors open / Registration
Breakfast & Chat
Opening Remarks
Opening Keynote
Brooklyn Zelenka
Higher Level Functions for the Win
Bill Peregoy
The Best of Both Worlds: High Performance Recommendations with Elixir NIFs
Shanti Chellaram
Recurrences & Intervals
Wojtek Mach
Neuroevolution in Elixir
Jeff Smith
`mix new beats` — Recreating The "Amen Break" with Elixir
Mat Trudel
Phoenix Presence: The Right Way To Track User Involvement in Real-Time Features
Sophie DeBenedetto
Lessons Learned Building a Medication Service at Teladoc and How Ecto Saved the Day
James Lavin
Pattern Matching: The Gateway to Loving Elixir
Kate Travers
GenStage: Keeping large amounts of data up-to-date with Pipelines
Robert Beene
Dave Thomas
Closing Remarks
After Party!

Nearby location to be announced.



If you're interested in sponsoring EMPEX NYC, please email info@empex.co.


Antaramian david

David Antaramian

Bell chris

Chris Bell

Denkinger troy

Troy Denkinger

Denkinger lisa

Lisa Denkinger

Helen Hood

Helen Hood

Mccown andy

Andy McCown

Nussbaum lee

Lee Nussbaum

Price cameron

Cameron Price