Saturday, February 8, 2020
Los Angeles, California
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.
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.
We're excited and proud to announce our keynote speakers for EMPEX LA!
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.
We're proud to announce the following presentations for EMPEX LA!
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.
"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.
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.
“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.
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.
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.
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.
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."
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:
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
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.
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.
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.
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!
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.
Doors open / RegistrationShow up and hang out. Mingle!
DismissLet's wrap it up!