A one-day conference exploring development of realtime applications.

Saturday, February 8, 2020
Los Angeles, California

About

With the emergence of the concurrent Elixir programming language, we believe that all web applications should have realtime interfaces. We're bringing together leading designers, engineers, product managers, and database specialists to explore design patterns, considerations, and possibilities in this exciting new world.

Location

The Hungarian Social Club in Downtown Los Angeles

We're returning to this memorable environment for another exciting EMPEX. Featuring live music, a disco ball, and misadventures in the rain, this venue is different from any conference venue you've seen before.

La location
Find it on Google Maps 1827 South Hope Street, Los Angeles, CA 90015
Bus icon Walking distance to Metro Blue line

Keynotes

We're excited and proud to announce our keynote speakers for EMPEX LA!

Beau rheubach

Beau Heubach

Zack kayser

Zack Kayser

Building Real Time Experiences with LiveView and UX Principles

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, our ability to deliver real-time user experiences is becoming more straightforward with the use of LiveView. How can we ensure these features provide the feedback and updates the user is looking for? How can we ensure LiveView delivers the smooth experience we hope for? Applying several common user experience principles, we can bring a base consistency to our real time features while leveraging the power that LiveView brings us to provide live feedback and updates from client interactions AND server-side events.

About Beau: Beau is a UX designer, front-end developer, and father of six with 15 years of experience working to solve complex usability problems and learning how to measure user experience. He loves working at Gaslight, a custom agile shop, where he leads projects from user research through to product delivery.

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.

Presentations

We're proud to announce the following presentations for EMPEX LA!

Aaron harpole

Aaron Harpole

The Case Against Scale

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 all, you can make more money, run more efficiently, and solve tough problems. But with this year's theme of building large-scale applications, I'd like to flip that sentiment on its head and make the case against scale.

About Aaron: Aaron loves to build software that makes people’s lives better. When not at a computer, he might be found hiking, making a paella, building another clicky keyboard, or quoting an old episode of The Simpsons. He works as an engineer at GitHub.

Bruce tate

Bruce Tate

Bring On the WorkerBees (Designing Elixir Systems with OTP)

"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 Workerbees.

This sentence, from Designing Elixir Systems with OTP, is a mental mnemonic that stands for Data, Functions, Tests; Boundaries, Lifecycles and Workers. We'll talk about each of these layers in detail focusing on the role of each independent layer in a self-healing, performant Elixir program"

About Bruce: The founder of Groxio, Bruce Tate is a mountain biker, climber and father of two. He's the co-author of Programming Phoenix, Adopting Elixir and Designing Elixir Systems with OTP. He runs the Programmer Passport program, a subscription service that helps programmers advance by teaching them new programming languages.

Geoffrey lessel

Geoffrey Lessel

Controlling MIDI Devices in Real Time with Elixir

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 modifying a song's BPM. Since the 80s, MIDI has continued to be the go-to specification for controlling musical instruments, lighting rigs, and more!

In this talk, I'll demonstrate how Elixir can control MIDI devices (specifically, for this talk, an analog synthesizer) in real-time. I'll show how OTP provides a great way to implement this control and the benefits and drawbacks of using it for real-time musical instrumentation.

Furthermore, I will demonstrate how this system is then visualized using Phoenix and LiveView.

About Geoffrey: Geoffrey Lessel has been a web developer for over 15 years—first with PHP and Perl and now with Ruby on Rails and Phoenix. He is the author of Phoenix in Action, has spoken at multiple ElixirConfs, and most importantly, is a returning Empex LA speaker. Find his blog at geoffreylessel.com and tweets at @geolessel.

Jeff grunewald

Jeff Grunewald

Stream-processing connected vehicle data in Elixir

“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 much of it as fast as possible with high fidelity. The team at SmartColumbus has spent the last year building robust data ingestion capabilities in Elixir at the speed and scale needed to support thousands of vehicles simultaneously.

This talk will showcase the strategies developed for concurrent processing, batching, and validating data across each of these unique streams. You’ll learn about the design decisions the team has made as well as the open source libraries we’ve developed to enable data consumption at the scale of a “Smart City”.

About Jeff: Jeff has been in technology for over a decade, first as a systems and network administrator and later in the DevOps and software engineering space. He has extensive experience with Kubernetes and has been in love with the Elixir language and the Erlang Virtual Machine for the past three years, working to grow the adoption of the relatively young language. He's an avid reader, sci fi fan, and gamer often found grinding hours in the Destiny universe.

Jesse anderson

Jesse J. Anderson

Powering Pixels with Scenic

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 explore a variety of techniques for basic game development such as animation, finite state machines, alternate input devices, etc. With Scenic, is Elixir now the ideal language for game development? Probably not but who cares, let’s just have some fun!

About Jesse: Jesse J. Anderson has been creating things for the web since before comic book movies were cool—first as a designer and more recently as a developer. He prefers ortholinear keyboards, Oxford commas, and spaces over tabs. While known as an Elixir evangelist, he gets paid to write mostly in React as a front-end designer for Planning Center. Jesse currently lives near Seattle with his wife and 3 children.

Julian doherty

Julian Doherty

Real time strategy at light speed

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?

Hard sci-fi like "The Expanse", or "Dread Empire's Fall" go into excruciating detail on how long it takes to even see what is happening, and how long ago it really did happen - which could be minutes or hours. Battles play out like high latency, async chess games. Warships hurl missiles at each other over enormous distances and speeds, rather than frenetic "World War 2 fighter planes in space" you get in Star Wars.

In a plain old Elixir realtime game, you don't have to worry about that - you just send all messages to all clients as soon as they arrive. But what if we need to delay some of those messages for an arbitrary amount of time depending on where different actors are in the virtual solar system? What design patterns and ways of thinking about how our app is built do we need to do to be able to build something like that?

About Julian: Julian is a lead developer with 20 years experience, and has been hacking on Elixir for the last 5.

Originally from Wellington, New Zealand, he now calls Melbourne, Australia home, currently working at Envato. Julian also runs the Elixir Melbourne meetup group, and tries to spend as much time as possible inflicting Elixir and functional programming paradigms on codebases he works in.

Michael ries

Michael Ries

Nerves Takes to the Sky

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 talk about inertial measurement sensors and how they can report their position in 3-D space. Then we'll dive into how we can talk to those sensors from a Nerves project. We'll end by talking about some logistics around weight, battery, etc and with any luck a live demo of tossing a glider over the heads of the audience. I'll bring a video as backup in-case the live demo is hazardous or fails.

About Michael: Michael builds systems with Elixir and Ruby in Utah. He spends most evenings reading and building Legos with his children. He organizes the Nerves Remote Meetup to discuss hardware and software with friends and hopes to one day build a robot that doesn't scare his children.

Peer stritzinger

Peer Stritzinger

GRiSP Ecosystem for Real Bare Metal Erlang VM

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 VM as a Unikernel might shine.

Join us for a overview of the hardware and software options, how it all works and how our plans for the future shape up.

About Peer: Peer Stritzinger is the Founder and Managing Director of Peer Stritzinger Gmbh, maker of GRiSP.

Peer ported Erlang to Hard-Realtime Operating system RTEMS (www.grisp.org). He developed the Hydraprog automotive flashing device in Erlang including protocol stacks for all existing automotive protocols.

He currently serves as Board member in the Erlang Ecosystem Foundation (www.erlef.org)

Peer's previous experience ranges from low level device drivers to functional languages in industrial and automotive applications, he initially mastered in Physics at the Technical University Munich. He is currently living and working in the idyllic countryside west of Munich, Bavaria."

Ryan trontz

Ryan Trontz

Messaging Metamorphosis: Using Kafka and GenStage to Transform Transactional Messaging @ Dollar Shave Club

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 talk, we’ll cover exactly that, and then some. As companies transition from a monolith to a plethora of microservices, asynchronous messaging, the foundation of both Kafka and Elixir, is crucial to well-architected distributed system.

DSC’s Transactional Messaging Service (TMS) is a highly scalable and fault-tolerant Elixir microservice built with Kafka and GenStage and deployed to Kubernetes. It consumes from Kafka to send thousands of transactional messages per minute to our members around the world. We’ll use this service as the lens through which we’ll connect these tools into a truly transformative messaging pipeline.

First, we’ll compare and contrast the following:

  • Kafka as a real-time microservice messaging hub, and the roles in its system (Producer > Broker > Consumer)
  • GenStage as a messaging pipeline, routing system, and transform stream, and the roles in its system (Producer > Producer-Consumer > Consumer)

Then, we’ll explore TMS as more than a mere Kafka Consumer. We’ll explore its use as (via GenStage) as an extension of Kafka itself. We’ll examine how Genstage allows us to

  • manage highly variable rates of traffic.
  • transform messages in flight.
  • route messages to new pipelines for batch processing later.
  • build our own fault-tolerance against flakey downstream dependencies by re- publishing to Kafka.

Finally, we'll explore the extensibility of the system at large, covering the ease with which both upstream and downstream service dependencies can be added, subtracted, and swapped with minimal effort.

About Ryan: Ryan is a backend engineer at Dollar Shave Club. His favorite hobby and job are one and the same: learning. He’s been learning for a lifetime, teaching for half of one, and doing both at Dollar Shave Club since 2018. He stumbled into Alchemy (Elixir) and Metamorphosis (Kafka) around that time, catapulting his use of brutal puns to a new level. Outside of DSC, he teaches a Javascript course composed entirely of either Wu-Tang Clan or ramen themed code snippets. His superpower is wildly overestimating his on-the-couch Jeopardy skill.

Shanti chellaram

Shanti Chellaram

High Performance Data Structures in Erlang

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 occasionally cheating with some C code, we can get performance that beats the native OTP implementations. I've written many different versions of data structures for my previous jobs and now I am in the process of bundling up the modules, polishing them up, and open sourcing them for the public's enjoyment and use. Specifically, I'll be covering implementations of mergeable / non-mergeable heaps, queues, and indexable arrays.

Todd resudek

Todd Resudek

It's Time to Embrace Erlang

About Todd: Todd is a lead software engineer at SimpleBet and member of the Hex core team. He lives in the Denver area with his family and spends his free time tinkering with Nerves projects.

Training

We're holding one training on Friday, February 7th, from 9am until roughly 4pm at a location TBA. Catered lunch is included, and tickets are sold separately from the conference! Dig it!

Bowe desmond

Desmond Bowe

Bell chris

Chris Bell

Beginner Training

Chris and Desmond will lead a full day workshop for those new to Elixir. Topics covered include basic datatypes, functional design principles, the Mix build tool, and the IEx shell. If you have the basics down, we'll show you some tips and tricks for thoughtfully designing your applications and being more effective in your development environment. Attendees should be familiar with at least one other programming language.

You will come away feeling comfortable with Elixir basics and ready to build nontrivial applications. It's a great way to prepare for the conference!

About Desmond: Desmond is the Founder of the EMPEX conferences, Cohost of the popular ElixirTalk podcast, Founding Member of the Erlang Ecosystem Foundation, and CTO of Payitoff, a startup that helps borrowers pay off their student loans. He has been working with Elixir professionally for over 5 years and taken a dozen Elixir apps into production. In his free time he surfs, plays pinball, and rides his motorcycle, Porco Rosso.

About Chris: Chris is an Englishman in New York, where he works as the CTO of MuruMed, a startup that brings realtime information to medical first responders. An avid alchemist, he is a regular speaker at Elixir conferences, the cohost of the ElixirTalk podcast podcast, and an organizer of the NYC branch of EMPEX.

Get your Tickets now!

Schedule

Doors open / Registration
Show up and hang out. Mingle!
9:00AM
Opening Remarks
9:30AM
Morning Keynote: Building Real Time Experiences with LiveView and UX Principles
Zack Kayser & Beau Heubach
9:35AM
Stream-processing connected vehicle data in Elixir
Jeff Grunewald
10:20AM
Break
10:40PM
Bring On the WorkerBees (Designing Elixir Systems with OTP)
Bruce Tate
11:00AM
Real time strategy at light speed
Julian Doherty
11:40AM
Lunch
Yum yums.
12:00PM
Powering Pixels with Scenic
Jesse J. Anderson
1:00PM
High Performance Data Structures in Erlang
Shanti Chellaram
1:20PM
Break
1:40PM
The Messaging Metamorphosis: Using Kafka, Elixir, and GenStage to Transform Transactional Messaging @ Dollar Shave Club
Ryan Trontz
2:00PM
It's Time to Embrace Erlang
Todd Resudek
2:40PM
Big Break
With snacks!
3:00PM
GRiSP Ecosystem for Real Bare Metal Erlang VM
Peer Stritzinger
3:35PM
Nerves Takes to the Sky
Michael Ries
4:00PM
Break
4:20PM
Controlling MIDI Devices in Real Time with Elixir and Nerves
Geoffrey Lessel
4:40PM
Closing Keynote: The Case Against Scale
Aaron Harpole
5:00PM
Closing Remarks
5:25PM
Dismiss
Let's wrap it up!
5:30PM
After Party
The Redwood Pirate Bar! Yarr! 316 W 2nd St, Los Angeles, CA 90012
6:00PM

Organizers

Bowe desmond

Desmond Bowe

@desmondmonster
Pauline

Pauline Graf

@Sabre_Cat
Hannah

Hannah Howard

@techgirlwonder
Rosemary

Rosemary Ledesma

@rosemledesma
Will

Will Ockelmann-Wagner

@WowItsWillWow
Bruce

Bruce Park

@bpark0