Anton Frolov

Software Developer @ Choosy AG

Software Developer specializing in Elixir at Choosy AG since April 2023. Previously, as a Senior Software Engineer at 8x8 Inc. (Dec 2020 - May 2023), Anton led the development of an Elixir-based instant messaging service, achieving 99.995% service reliability. He designed features like MS Teams integration and initiated metrics coverage. Earlier, at BMW Group (Jun 2019 - Nov 2020), Anton contributed to the BMW Intelligent Personal Voice Assistant infrastructure and mentored junior developers. His journey began at RingCentral (May 2017 - May 2019), where he developed telephony signaling servers in Erlang and C++, and created an IMS proof of concept for mobile network integration.

Debugging Memory Issues in Elixir: Navigating the BEAM Memory Model

Elixir operates on the BEAM Virtual Machine, which boasts a distinctive memory model designed to alleviate common memory-related pitfalls. However, when memory issues arise within an application, debugging becomes complex without a deep comprehension of the BEAM memory model.

Rather than delving into intricate BEAM memory management implementations, the focus is on the pragmatic side of memory issue resolution. We’ll explore scenarios where BEAM makes full copies of data versus optimizing it, uncovering the unexpected effects that can ensue.

A foundational understanding of application memory management principles (e.g., allocation, deallocation, and garbage collection) is recommended to derive the utmost benefit from this session. If you lack direct experience working with application memory or solving memory issues, fear not; real-life examples will elucidate the main concepts, and I will guide you through the tools employed to identify and debug such challenges.