BEAM Camp

An exploration of the BEAM Ecosystem: Erlang, Elixir, Phoenix & Nerves

Nov. 18 & 19 from 09:00 am to 06:00 pm

BEAM Camp is a grassroots, community-run open-source conference focused BEAM Ecosystem: Erlang, Elixir, Phoenix & Nerves.

Our content is geared towards developers seeking to learn more about enterprise open source best practices, insights and emerging technologies.

Sponsors

If you or an organization you know may be interested in sponsorsing AI Camp please see out prospectus Prospectus and reach out to us by email.

Presenters

BEAM Camp features a rich mix of presenters from across the open source community.

Robert Beene

Managing Partner (Echobind)

Brujo Benavides

Software Engineer (BairesDev / AdRoll)

Lauren Tan

Senior Software Engineer (Netflix)

Bobby Grayson

Lead Elixir/Erlang Developer (Wombat Security Technologies)

Andrew Forward

Software Developer (CrossFit HQ)

Shankar Dhanasekaran

Developer & Co-Founder (Talam Research & Education)

Paul Schoenfelder

Architectural Engineer (DockYard)

Brandon Richey

Engineering Manager (Greenhouse)

Duncan Sparrell

Chief Cyber Curmudgeon (SFractal Consulting)

Schedule

We will be adding schedule details in the next few days which specify the detailed order/timing of presentation on Sat. Nov. 18 and Sun. Nov. 19, between 9am - 6pm.

Presentations

BEAM Camp includes an interesting mix of presentation on best practices, emerging techniques, recent research and case studies regarding BEAM technologies, including Erland, Elixir, Phoenix and Nerves.

Opaque Types and Other Heuristics to Write Better Erlang Systems

Opaque Data Structures provide a very nice technique to structure systems and they are particularly useful within the functional programming paradigm. With the addition of maps and the -opaque attribute for modules, Erlang is now perfectly suited to get the best of these structures, if you use it properly. In this talk I will show what opaque data structures are, how to use them and why they are so useful even more so if you're developing an open-source library. The talk will be conceptual, but it won't be 100% theory. I'll present examples and tools that allow us to better use the techniques I'm exposing.

Brujo Benavides

Software Engineer (BairesDev / AdRoll)

Microservices with Elixir and Phoenix

Transitioning monolithic apps into a microservice architecture isn't straightforward – in fact, it is often quite difficult. In this intermediate talk, we'll learn how Elixir umbrella apps and Phoenix utilize the Erlang VM (BEAM) to make building microservices, more resilient, less painful, and more productive.

Lauren Tan

Senior Software Engineer (Netflix)
Scheduled For

"Porting" Your Microservices to Elixir

# Abstract My boss told me to port our microservices to Elixir. I thought they met to use Elixir ports to run it all in an twisted way. Now, we take a deep dive into ports via a silly story & will learn the ins, outs, pros & cons approaching them in a way you might’ve never considered (because its absurd). # The Main Entree This talk is about examining a useful context via a lens of absurd application. Even if you have never used a Port in Elixir, after this the goal will be to understand the core concepts enough to leverage them for a nontrivial (and hopefully actually useful IRL, unlike what we do in the talk) functionality if the day comes that it is needed. We begin with first principles and basic application, and end up with a reasonably complex interface to several other systems. # The Basics of Ports Sometimes it could be beneficial to implement parts of a system outside of Elixir/Erlang. In this talk we will take a deep dive into the concept of Ports. Sometimes Elixir/Erlang may not be best suited for the job, but we still have them as the core of our systems. Here we will investigate some use cases that take us from the simplest of levels and set up a bigger exploration into more complicated use cases. # Port All of the Things You work in a cutting edge shop. Its time to join the bleeding edge and port your Microservice Architecture™ to Elixir and Erlang. In a hilarious bout of misunderstanding, the order of “port this to Elixir” has been taken in as “run the old code via ports”. We are about to take this as far as we can and see what happens, and in the meantime, though this should never truly be done we will see a lot of the benefits and losses of using the implementation offered through them. # Our Absurd System: “Porting” Microservices to Elixir Throughout the talk, we will organize a system running many languages underneath Elixir through a hilarious series of misunderstandings. This will includes regular ports as well as NIFS. Performance alongside usability will be examined.

Bobby Grayson

Lead Elixir/Erlang Developer (Wombat Security Technologies)
Scheduled For

Oh, the API Clients you'll build!

Congratulations! Today is your day. You’re off to Build API Clients! You’re off and away! You have Elixir in your head. You have GenServer, GenStage, and Streams to use. You can pipe (|>) your functions any many times as you choose. You interact with a web service usign a client. That could be as minimialistic as Curl, or your browser, but most likley you will access the API through a library written in the language of your application (e.g. Ruby, Elixir, PHP, etc). Some APIs publish official clients. (Un?)fortunately Elixir is not as in demand (yet!) as we would like, and usually is not available. Open source to the rescue, but some (well I) feel that implementing client access to an API is a great way to learn the API, as well as learn Elixir; especially if you want to take advantage of some of the unique characteristics Elixir has to offer. In this talk, we will be exploring a few popular APIs for + Infrastructure: DigitalOcean + Ecommerce: Questrade, Stripe + Email: Mailgun The talk will provide some more abstract implementation patterns that can generically apply to API client development including: + Elixir project structure (using Dave Thomas' template generator) + Managing API Endpoint / Payloads (e.g. URLs, HTTP verb, encoding, headers) + Authentication like OAuth + Logging / Persistence + Retries / Error Handling + Testing / Deployment Don't be afraid of NIH (Not Invented Here) syndrome when you are learning. Once your client is feature complete, you will now know the API relatively well, and at least one way to implement it. This should make your evaluation of existing clients much easier.

Andrew Forward

Software Developer (CrossFit HQ)

The Next Phase of Elixir Deployment Tooling

In my new role in developing first-class deployment tools for Elixir, I want to share with the community what those tools will look like, what will and will not be part of the standard distribution, what problems these tools are aiming to solve, as well as give an overview of the current landscape of deployment tooling and common problems people are encountering right now.

Paul Schoenfelder

Architectural Engineer (DockYard)

Elixir's Greatest Hits: An brief, but rich, anthology of the some of Elixir's awesomeness

Elixir has been around since 2011/2012, and in those short years it has built up an excellent language, powerful tools and an inclusive community. In this talk, I wanted to guide you through some of those many great things. The talk will be organized as a collection of recipes, libraries, framework, code snippets and opinionated practices to help you on your own journey using Elixir. In particular, I hope to touch on some of the following + `mix gen` as a replacement to `mix new` + Using mix aliases to simplify a lot of commn tasks + Improve your unit testing with `mix test.watch` + Even better testing with `DocTest` + Distilling the best ways to configure your application + Setting up your Database with Ecto + Managing Ecto migrations like a Pro + Testing with a database using Sandboxes + Building a client to your favourite API + Building custom mix tasks + Building custom command line apps + A different approach to Elixir umbrella project + Keeping Ecto Separate from Phoenix + Deploying with Distillery This talk will hopefully inspire you with the resources to go off on your own and start (or continue) to build great things with Elixir and maybe even give back to the community with more (or better) ways to accomplish things in the language.

Andrew Forward

Software Developer (CrossFit HQ)

Composable Queries with Ecto

With languages such as Elixir, we've taken to breaking down the building blocks of our application so that we can compose features as we see fit. With Ecto, we're able to apply the same approach to building our database queries. This flexibility enables us to mix and match the elements. From filtering to ordering and everything in-between, composability makes it simple to get the exact result set we want.

Robert Beene

Managing Partner (Echobind)

The Story of Conn in the World of Phoenix

The `conn` is a mysterious guy who comes into life when you make a request to a Phoenix app and dies when the response is sent out. The intention of this talk is to enable you understand this mysterious guy in its many aspects and in that process understand the entire life-cycle of Phoenix request. The talk will address the following three broad questions: Getting In - When I hit an URL in my browser, which code in my phoenix_app gets executed first, and how does it get triggered? Processing - What is the journey of my request data in phoenix_app? Getting Out - Which code returns the response?

Shankar Dhanasekaran

Developer & Co-Founder (Talam Research & Education)

Garuda - Rebuilding Phoenix from Scratch

Based on my book "Garuda - Rebuilding Phoenix", in this hands-on training session, we will build a minimal Phoenix framework that we can be proud of. We will develop all the layers of Phoenix framework like its router, controller, view and template. By the end of the training, you will be comfortable understanding the architecture of Phoenix framework and appreciate its design.

Shankar Dhanasekaran

Developer & Co-Founder (Talam Research & Education)

Leveling Your Team Up with Elixir

How to introduce Elixir to your teams and use them as a teaching tool to grow the skill level of developers on your team. Also covers how to use functional programming techniques and Elixir programming techniques to improve general programming ability and promote pairing sessions and mentorship within your team!

Brandon Richey

Engineering Manager (Greenhouse)

Cybersecurity, Erlang, & Opensource Combine in OpenC2

This presentation will be about the intersection of 3 topics I care deeply about: Erlang, Cybersecurity, Open Source; and how those topics are combined in OpenC2, a new standard being developed for Command and Control (C2) for cyber security technologies. Cyber-attacks are increasing in terms of sophistication, speed and dynamics. Advanced cyber actors (and even script kiddies) are utilizing automation with adaptive tradecraft and these trends are likely to continue. A key enabler for the realization of more flexible and interoperable cyber defense components is standardizing interfaces & protocols to facilitate interoperability and integration. The OpenC2 Technical Committee in OASIS was founded to standardize machine-to-machine command & control (openC2) to enable cyber defense system interoperability at machine speeds. Ocas is an open source openC2 simulator developed in Erlang by the author for: • Validating the openC2 language specification • Simulating openC2 interfaces for the purpose of testing a product which produces openC2 • Simulating an entire network of security devices from an openC2 perspective for the purposes of evaluating a playbook (automated response to particular trigger) from either the blue- team or red-team perspective • code reuse by other open source security projects (eg openc2 interface to your favorite security technology) The talk will begin with the problem openC2 is trying to solve and a review of openC2, its use cases, and current status. Then a case will be made for why erlang is the right language for developing security applications. Ocas will be described including use cases, the design choices made in ocas development, the software architecture & code base, next steps, and the talk will end with a live demo.

Duncan Sparrell

Chief Cyber Curmudgeon (SFractal Consulting)

News

We'll be posting any News or update here, so please stay tuned for any important announcements.

Location

The venue for AI Camp 2017 is Convene's midtown NYC location at 730 3rd Ave, where it will be hosted along with other Open Camps events. We'll be posting further venue details here as the event approaches, including access and check-in procedures.

Team

BEAM Camp is organized by a volunteer team from the open source community. If you'd like to get involved, please reach out to us by email .