Sonny Scroggin

Rusterlium core team member

Sonny Scroggin is an experienced software engineer with broad interests in the world of computing. He is best known for his contributions to the Phoenix Framework and other supporting libraries within the Elixir ecosystem. You can find him presenting or teaching others about Elixir, Phoenix, and other tools and libraries in the local user groups in Nashville, TN and at conferences around the world.

Past Activities

Sonny Scroggin
Code BEAM STO 2018
Tutorial/ 30 May 2018
13.30 - 17.00

Introducing Phoenix


Phoenix is an Elixir framework for building scalable web applications with realtime connectivity across all your devices. Together, we’ll take a guided tour of the framework, going from the very basics, to building our own realtime applications. You’ll see the framework’s foundations, core components, and how to use Phoenix to write powerful web services.

We’ll start by exploring the foundations of the framework in Elixir’s Plug library, followed by the core components of Phoenix’s Router and Controller layers. Next, we’ll review the View layer and build an application together as we learn each concept. We’ll finish by using the PubSub layer to add realtime functionality to our application. Along the way, attendees will see how to apply advanced features like router pipelines and plug middelware and receive tips on how to structure a Phoenix application for real-world services.

Sonny Scroggin
Code BEAM STO 2019
17 May 2019
13.40 - 14.25

BEAM + Rust: A match made in heaven

The BEAM is well-known for its fault-tolerant properties. It's quite performant and memory efficient for many use-cases. But occasionally we find ourselves hitting the limits of what the BEAM can provide us. What happens when we need to interface directly with hardware? Or when a specific part of our application needs to be as fast as possible?

In this talk Sonny will introduce the audience to Rust - a systems programming language that aims to empower everyone to build reliable and efficient software - and the various methods that can be used to integrate with it from the BEAM.


Demonstrate the flexiblity of the BEAM when integrating with the outside world. Introduce the audience to the Rust programming language and the benefits it provides.


Anyone who wants to learn about Rust and how use it within BEAM-based applications.

Sonny Scroggin
10 Sep 2020
18.25 - 19.05

Don't write NIFs (at least not in C)


Most experienced Erlangers will caution against writing NIFs, and for good reason! NIFs are notoriously dangerous.

Not only do we have to worry about crashing the BEAM, but we run the risk of degrading the scheduler if we're not careful. But what if writing NIFs were safe?

In this talk, Sonny will discuss Rustler, a library which makes it incredibly simple to write safe NIFs in Rust.






This talk aims to inspire people to learn Rust and how to leverage it within their current BEAM applications.


Anyone who is interested in using native code to improve the performance of their applications.

Sonny Scroggin
Code BEAM STO 2018
31 May 2018
16.25 - 17.10

Taking it to the metal

As it turns out, Erlang or Elixir aren't the fastest kid on the block. And while raw CPU speed matters little for most applications, there does exist a couple reasons you might want want to reach for tools that give you access to native power.

In this talk we will discuss Native Implemented Functions (NIFs) - Erlang's Foreign Function Interface (FFI).

NIFs are normally implemented in C and are considered dangerous. But we're going to explore writing safer NIFs in Rust - a new systems programming language developed by Mozilla, that focuses on memory safety.

We'll talk about the pitfalls with writing NIFs and how Rust can make this process easier and safer.


This talk is intended to show how to build performance-critical functionality in Erlang/Elixir with Rust. Because of the unique way the Erlang VM operates, there are many pitfalls you must be aware of when writing native code. This talk exposes these pitfalls and offers direction to those interesting in writing native code for the Erlang VM.