Chris Keathley

Dynamic language apologist, senior engineer @ Bleacher Report

Chris is a software engineer building services and applications for Bleacher Report. Although he started out writing C for embedded systems, these days he spends his time in Elixir, Haskell, Go, and Rust. When not writing code for work, Chris can be found writing code for fun, talking about the joys of functional programming, playing pinball, roasting coffee, or building Lego with his kids.

Past Activities

Chris Keathley
11 Sep 2020
19.40 - 20.25

Keynote: Software for one. Ideas for all

In the BEAM world, we typically focus on the ways to make our system's fault tolerant, faster, or generally more reliable. This is great when you're building software for work or for a company. But there's an entirely separate class of projects out there. The kind of projects with no tests, no business plan, and only one user; yourself. Unfortunately, we typically don't share these sorts of projects, even though they often include some of our best ideas.

In this talk, we'll take a closer look at these small projects, and we'll see the profound effect they have on the way that we think about programming.

Amos King / Chris Keathley / Anna Neyzberg
Code BEAM V America
12 Mar 2021
13.00 - 13.40

Wild Wild West

Elixir Outlaws will treat us to a podcast.

Chris Keathley
28 May 2020
15.55 - 16.25

Building adaptive systems

Every production service has targets it needs to hit. These targets are often measured by successful requests per second or 99th percentile latency. In order for this service to be considered resilient, it should attempt to reach these targets even when confronted with overload or failures in the rest of the system. The tools that engineers have typically employed to stop cascading failure, such as circuit breakers, are a poor fit for building services that can change to an ever-changing production system. What we’d like instead is for our services to protect themselves, protect each other, and react to failures without operator intervention. In this talk, we’ll look at ways to build systems that can adapt to changes in latency, spikes in traffic, and systemic failures. In order to achieve our goals, we’ll discuss some basic queueing theory, congestion control algorithms, and how we can take advantage of these concepts in our systems.


Demonstrate the benefits of adaptive concurrency limits in production


This talk should appeal to anyone running medium to high scale systems that need to adapt to different traffic spikes or failures in the system.