Greg Mefford

Maintainer of Spandex, Former Nerves Core Team Member

Greg has always had a passion for metrics and observability and is a member of the Erlang Ecosystem Foundation Observability working group. He is the primary maintainer of the Spandex project and contributor to the Erlang/Elixir implementation of the official OpenTelemetry libraries and documentation.

Previously, he has been heavily involved in the Nerves project and community, but that has waned as he hasn't had the opportunity to use it for work in recent years.

Greg currently works at Stord, building the "Cloud Supply Chain."

Past Activities

Greg Mefford
Code BEAM STO 2019
16 May 2019
17.15 - 17.40

Continuous tracing in production (without Erlang's trace module)

Collecting trace data from your application is a very important, but often overlooked, aspect of Application Performance Monitoring (APM). In this talk, we will learn about the core concepts of application tracing (OpenTracing and OpenCensus), some of the tools that are available for collecting and visualizing trace data, and how this data can be used for troubleshooting errors and performance issues, in both monolithic and distributed micro-service architectures.


  • Introduce the concepts of application tracing and the state of the ecosystem (Spans, Traces, Context Propagation, OpenTracing, OpenCensus, etc.)
  • Explain how this is different and complementary to Erlang's built-in trace module
  • Show what insights can be more easily gained from trace data as opposed to logs and metrics
  • Give an overview of the tools and vendors available to start using this technology today Show how to instrument Elixir-based application code using Spandex
  • Demonstrate how to explore the resulting trace data using Datadog APM to troubleshoot error and performance problems


Developers who are responsible for tracking down errors or performance issues, especially in a distributed micro-service architecture


Greg Mefford
Code BEAM Europe 2022
19 May 2022
15.30 - 15.55

Conway's Law Compliance in a Many-Services Architecture

As your company grows and scales out, both in terms of people and software, a common pattern is to split the software up into multiple services maintained by multiple teams. Whether or not those services are micro, this leads to a lot of hard choices that you'll have to make about how to do that efficiently and maintainably.

Stord has grown significantly over the past year and has used several techniques to continue to scale our engineering teams and inter-service coordination, using synchronous API calls as well as asynchronous event-processing via Kafka. This talk will present some of the things that worked well and not-so-well that we've learned from.


* Share learning from building a shared HTTP client for synchronous calls as well as an asynchronous event-processing infrastructure.
* Share tips for co-developing a socio-technical system that can sustain rapid growth


* Engineers looking for hard-earned technical lessons in service coordination
* Engineering Managers who are trying to scale their teams and software quickly

Greg Mefford
Code BEAM STO 2018
31 May 2018
17.15 - 17.40

Embedded Elixir with Nerves

Nerves makes it very easy to leverage the BEAM in an embedded device using readily-available and low-cost hardware like the Raspberry Pi family of single-board computers. In this talk, we will cover the basics of what Nerves is and how to structure your application for easier testing without needing real hardware.


Understand what Nerves is, be ready to begin a project with Nerves.