Crevalle presents:

A one-day conference for curious
elixir programmers.

Saturday, February 10, 2018

Los Angeles

Saturday, February 10, 2018

EMPEX is a sophisticated conference series for the Elixir programming language and ecosystem held in Los Angeles. We present a single track of technical talks in a fun space in downtown LA. Our goal is to bring a sense of aesthetic and fun to the growing Elixir community.

We'd love for you to join us. Put your email address in so we can keep you up to date.

Creative Downtown Exhibition Space
in Los Angeles, California

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!

Cunningham emma

Emma Cunningham

Keynote

Emma is a Senior Software Engineer at Second Spectrum, where she gets to solve all kinds of fun problems around how to build compelling data visualization and analytics apps for clients like the NBA and the LA Clippers. She is actively involved in various STEAM education equity initiatives in low-income communities across Los Angeles, including co-organizing YouthBuild Charter School of California’s CODEChella, serving on the Advisory Board at the Critical Design and Gaming School, teaching robotics and programming at Heart of Los Angeles, and co-directing Code Hawk Camp, an inclusive and free summer computer science camp for students in South LA.

EMPEX Interview

Gray sarah

Sarah Gray

Keynote

Sarah has been a software developer since 2001, when she was spit out of grad school from ITP, NYU’s interactive technology program. Prior to that, she’d been directing experimental theater, which gradually led her deeper and deeper into technology and code. Since 2001, she’s worked on a cross-section of projects across different industries. Highlights include building medical software at Mt. Sinai Hospital; leading the technology integration for startup Trunk Club when they were acquired by Nordstrom; and working on Hillary Clinton’s tech team in Brooklyn. In 2017 she learned how to program for the Ethereum blockchain, because in The Future (TM) we will all be on the blockchain. Sarah’s career is predicated on a mix of exploring the new while maintaining solid software development practices in order to make projects come to life. Because of her dual background in coding and experimental performance, she is constantly playing with forms, and putting together new, short-lived (theater-life-span) projects. We’re excited for Sarah to bring her breadth of experience to keynote at Empex LA!

Presentations

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

Lessel geoffrey

Geoffrey Lessel

Life is but a Stream

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 go into those questions and find some answers together.

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 has spoken at ElixirConf, blogs about Elixir and Ecto at geoffreylessel.com, and tweets from @geolessel.

Hao andrew

Andrew Hao

Building beautiful systems with Phoenix contexts and Domain-Driven Design

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, fragile systems.

Today, we’ll learn about the philosophical roots of Bounded Contexts from the hard-earned wisdom of Domain-Driven Design. We’ll quickly get our hands dirty in the nuts and bolts of a Context Mapping exercise, a strategic design tool that reveals domain-specific system boundaries. With our newfound architectural vision, we’ll learn how to write context-driven Phoenix code and develop some organizational rules around communication, boundary enforcement and testing between contexts. We’ll leverage the unique powers of Elixir that make this style of architecture so natural and see how using contexts easily leads to highly-cohesive and loosely-coupled outcomes!

About Andrew: Andrew is a software engineer at Carbon Five, where he builds digital products for companies of all shapes and sizes. He enjoys trail running anywhere there are mountains. Though he currently lives in Oakland, he dearly misses his years living in (and eating through) Los Angeles.

Resudek todd

Todd Resudek

Become a Hex Power User

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 you can use on a future project.

About Todd: Todd is a Senior Software Engineer at Weedmaps, where he builds solutions for the cannabis industry. Previously, he has built solutions for the K-12 education market, worked in advertising, and as the front-end lead for Newegg.com. In his free time, he enjoys tinkering with hardware, woodworking, and spending time with his wife and 4 kids.

EMPEX Interview

Chellaram shanti

Shanti Chellaram

Richey brandon

Brandon Richey

Panel: Elixir Adoption

This panel will discuss strategies for increasing Elixir adoption in your organization, and then take questions.

About Shanti: Shanti Chellaram is currently a senior engineer at Teachers Pay Teachers, with a year and a half of experience migrating a legacy PHP stack to Elixir. If she's not at a computer, she's trekking through the hills and mountains of New England.

About Brandon: Brandon Richey is an Engineering Manager at Greenhouse and a long-time web developer. He's been working in Elixir for over two years now, and has successfully adopted Elixir at four companies! When not working on building an amazing recruiting product at Greenhouse, he also is spending time working on the technical side of the Cured Foundation, programming hobby projects, and working on his art. He has a book on Elixir and Phoenix development currently in progress, slated for release later this year.

Bowe desmond

Desmond Bowe

Brodie benjamin

Benjamin Brodie

Taylor scott

Scott Taylor

Panel: Deployment

This panel will discuss their elixir deployment strategies, and then take questions.

About Desmond: Desmond is the founder of EMPEX and a cohost of the popular ElixirTalk podcast. He also runs Crevalle, an Elixir training and development firm. In his free time he grows his mustache and plays pinball.

About Benjamin: A reformed java engineer from the advertisement space, Ben has embraced Elixir since joining Grindr's chat team. The chat team has embraced extreme programming with continuous deployment and pairing. Convinced by Elixir's performance and simplicity, Grindr has been adopting Elixir over Java in other other areas as well. Grindr now has the largest known Phoenix pubsub installation in the world.

About Scott: Scott is a polygot engineer who writes Elixir as the lead engineer at Motel. At Motel, Scott crafts Elixir and mentors others. He also holds the record for most countries traveled to, most miles ran, and most slack emojis made of his face.

Rosemary

Rosemary Ledesma

Ecto.Schema without Ecto.Repo

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 use a database but you'll probably still need to wrangle some serious data: complex params, JSON request/response bodies, RabbitMQ payloads, etc. That's data that you'll need to parse, cast, and validate.

I'll step you through how to use Ecto.Schema on its own to cast and validate various kinds of data, and how to extract the final results whether the data is valid or invalid.

I'll also discuss some of the stumbling blocks and limitations I've encountered while leveraging Ecto.Schema in this way.

About Rosemary: Rosemary is passionate about writing software with Elixir and Phoenix, and works as a back-end software engineer for RentPath LLC. In her spare time she enjoys hiking, swing-dancing, and rowing (crew).

Bell chris

Chris Bell

Shipping a Replacement Architecture in Elixir

This talk will be deep-dive of how over the last 6 months at Frame.io we shipped a replacement API architecture built entirely in Elixir and Phoenix to replace an aging Rails monolith. During the talk we’ll dig into the structure, talk about our nifty GenStage event bus, take a quick tour of moving millions of records using Flow, and wind up showing some nice graphs of all the wins.

About Chris: Chris is an Englishman in New York, where he works as the Director of Engineering at Frame.io, a startup that helps video teams collaborate. He’s an avid alchemist and helps organize the NYC branch of EMPEX as well as co-hosting a podcast, ElixirTalk.

Will

Will Ockelmann-Wagner

A Swarm of Processes — Simulating Ant Foraging Behavior with OTP

In this talk, we'll see a simulation of a foraging ant colony that can efficiently find and collect food, built using a separate OTP process for each ant. Along the way we'll look at GenServers, DynamicSupervisors, Registries, and more OTP goodness. We’ll also learn a little bit about ants!

About Will: Will is a software developer at Carbon Five. He started his career in accounting, but found that automating his job away was more fun than the actual job, and moved over to software. He’s into typed functional programming and tiny keyboards.

EMPEX Interview

Gamache pete

Pete Gamache

Inclusion Starts with Docs

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 of using and contributing to a library.

The feeling of creating a project, putting it out there, and watching people contribute to it is breathtaking -- it's one of the things that gets people hooked on participating in the free software ecosystem. High-quality docs get a project, and its creator, to that point faster.

Lucky for us, Elixir has best-in-class features for authoring and generating online documentation. In this talk, we'll examine and demonstrate Elixir's doc system, covering in particular:

  • An introduction to ExDoc
  • Top level project docs using @moduledoc
  • Function docs using @doc
  • Executable code samples using doctests
  • Type annotations and docs using typespecs
  • Linking your docs to your source code
  • Magically auto-updating install instructions
  • Documentation techniques and tactics for other kinds of projects (e.g. HTTP APIs)

This talk has two goals: to show the power of Elixir's built-in docs system, and more importantly to get folks excited about how strongly fantastic docs can improve a project and its community.

About Pete: Pete is CTO at Appcues, where Elixir has been a boring part of the platform for two years and counting (and that's high praise). He enjoys pattern-matching, immutable data structures, and long walks on the beach. Follow him on Twitter.

EMPEX Interview

Schedule

Doors open / Registration
Show up and hang out. Mingle!
9:00AM
Opening Remarks
9:30AM
Morning Keynote
Emma Cunningham
9:35AM
Life is but a Stream
Geoffrey Lessel
10:20AM
Break
10:40AM
Building Beautiful Systems with Phoenix Contexts and Domain-Driven Design
Andrew Hao
10:50AM
Become a Hex Power User
Todd Resudek
11:35AM
Lunch
Yum yums.
11:55PM
Panel: Elixir Adoption
Shanti Chellaram & Brandon Richey
12:40PM
Panel: Deployment
Desmond Bowe & Benjamin Brodie & Scott Taylor
1:05PM
Break
1:35PM
Ecto.Schema without Ecto.Repo
Rosemary Ledesma
1:45PM
Shipping a Replacement Architecture in Elixir
Chris Bell
2:10PM
Stretch
3:00PM
A Swarm of Processes — Simulating Ant Foraging Behavior with OTP
Will Ockelmann-Wagner
3:05PM
Break
3:25PM
Inclusion Starts with Docs
Pete Gamache
3:50PM
Closing Keynote
Sarah Gray
4:35PM
Closing Remarks
5:20PM
Dismiss
Let's wrap it up!
5:25PM
After Party at The Redwood Bar
316 W 2nd St, Los Angeles, CA 90012
6:00PM

Trainings

We're pleased to offer two training sessions on Friday, February 9, 2018.

Trainings will begin at 9am and run until roughly 4pm at a location TBA. Catered lunch is included.
Leopardi andrea

Andrea Leopardi

User

James Fish

Advanced Training

Andrea and James lead a full day of advanced training concepts. Topics covered include property-based testing and GenServers. Attendees should be familiar with Elixir and functional programming concepts, and have experience with at least one Elixir application. You will leave with a command of property-based testing concepts and be comfortable integrating them into your applications.

About Andrea: Andrea is an Elixir Core Team member and the driving force behind the new property-based testing features in Elixir 1.6. He works as a backend developer at Football Addicts in Gothenburg, Sweden. He is often found by his handle @whatyouhide.

About James: James is also an Elixir Core Team member and developer at Pinterest, and a really good guy.

Bowe desmond

Desmond Bowe

Beginner Training

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. 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 EMPEX and a cohost of the popular ElixirTalk podcast. He also runs Crevalle, an Elixir training and development firm. In his free time he grows his mustache and plays pinball.

Organizers

Bowe desmond
Tony

Tony Delgado-Willis

Jack

Jack Eisenberg

Hannah

Hannah Howard

@techgirlwonder
Rosemary

Rosemary Ledesma

@rosemledesma
Will

Will Ockelmann-Wagner

@WowItsWillWow
Bruce

Bruce Park

@bpark0
Sarah

Sarah Port

@seport