List of videos

Improve your tests with Makina | Luis Eduardo Bueso De Barrio | Code BEAM Europe 2022

This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Improve your tests with Makina | Luis Eduardo Bueso De Barrio - PhD candidate at Universidad Politécnica de Madrid ABSTRACT Writing good tests for complex software can be quite difficult. In the BEAM ecosystem, tools like QuickCheck and PropEr have demonstrated that Property-Based Testing (PBT) is an effective technique to find bugs in complex software. Such testing normally involves checking that the tested system performs as predicted by a state machine programmed in a QuickCheck domain-specific language (DSL). In spite of their proven effectiveness, the adoption of PBT state-machine models is frustratingly slow. Why? Writing state-machine models of complex systems can be a time consuming and error-prone activity, which requires substantial training. Moreover, maintaining such state-machine models is hard, even for PBT experts. To address such issues many projects attempt to automate testing. We, instead, aim to empower the test programmer by providing a more productive tool for writing test models: Makina. Makina is a new test library for Elixir, compatible with PropEr and QuickCheck state-machine models. This library provides a DSL that aims to improve early error detection in test models providing static and dynamic type checking. It also facilitates test model development encouraging code reuse with built-in composition mechanisms and automatic model documentation. OBJECTIVES In this talk, we will discuss the design of Makina, and illustrate how the library enables us to efficiently test smart contracts running on the Ethereum blockchain. AUDIENCE Elixir and Erlang developers interested in testing in general and PBT in particular. • Timecodes 00:00 - 02:49 - Problems with PBT Models 02:50 - 04:49 - Makina: The Language 04:50 - 05:31 - Ethereum Blockchain 05:32 - 17:10 - Mining Blocks 17:11 - 20:42 - Fixing the Models 20:43 - 22:25 - Running the Test • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Building Brilliant BEAM Teams | Sanne Kalkman | Code BEAM Europe 2022

Check out our next event: https://codebeameurope.com Building Brilliant BEAM Teams | Sanne Kalkman - Elixir Developer at at CodeSandbox ABSTRACT Hiring developers can be a challenge, especially for smaller languages like Erlang or Elixir. When hiring we often focus on finding candidates with the exact right experience, which makes the pool of potential team members is much smaller than it needs to be. By building teams with people of a variety of skill levels and backgrounds, and fostering an environment that encourages learning we can find so many more excellent developers than we otherwise could. • Timecodes 00:00 - 04:30 - Introduction 04:31 - 05:37 - Agenda 05:38 - 14:05 - Why should you care? 14:06 - 21:55 - How are you going to find the right Junior? 21:56 - 42:42 - How can you help the thrive? 42:43 - 49:15 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Runtime Modes and Plugins in Erlang | Ulf Wiger | Code BEAM Europe 2022

This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Runtime Modes and Plugins in Erlang | Ulf Wiger - Erlang Developer ABSTRACT Aeternity Foundation decided to introduce runtime modes (maintenance mode, dev mode, ...) and plugins in the already mature Aeternity Core blockchain system. Drawing on experiences from the old Ericsson AXD 301 system, Ulf introduced `app_ctrl`, a highly configurable application controller extension, and combined it with `setup`, a modular tool for installing and configuring systems. This allowed us to add exciting new functionality to a very stable system. In this talk, we describe some core OTP principles as well as some dirty tricks employed to make things work. OBJECTIVES Highlight OTP principles, describe some core OTP features and introduce new possibilities. AUDIENCE Erlang developers and architects. • Timecodes 00:00 - 00:58 - Intro 00:59 - 03:37 - The Problem 03:38 - 07:06 - AXD 301 - Early Days 07:07 - 10:18 - RCM - Runtime Configuration Manager 10:19 - 14:55 - AXD301 sysInstall 14:56 - 17:08 - Use of Setup in Aeternity 17:09 - 18:28 - app_ctrl in Aeternity 18:29 - 20:01 - app_ctrl Implementation 20:02 - 21:24 - The Big Hack 21:25 - 22:35 - Progression 22:36 - 24:45 - Plugin Configuration 24:46 - 26:21 - TODO • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Conway's Law Compliance in a Many Services Architecture | Greg Mefford | Code BEAM Europe 2022

This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Conway's Law Compliance in a Many Services Architecture | Greg Mefford - Member of the Erlang Ecosystem Foundation ABSTRACT 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. OBJECTIVES • 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 AUDIENCE • Engineers looking for hard-earned technical lessons in service coordination • Engineering Managers who are trying to scale their teams and software quickly • Timecodes 00:00 - 01:10 - Intro 01:11 - 03:33 - Growth 03:34 - 06:11 - Organization 06:12 - 07:22 - Synchronous HTTP 07:23 - 11:15 - Sagas 11:16 - 14:54 - Event Outbox 14:55 - 16:40 - Event-Driven 16:41 - 17:57 - Handling Failures 17:58 - 18:40 - Ouroboros Events 18:41 - 24:03 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
The Hunt for the Cluster Killer Bug | Dániel Szoboszlay | Code BEAM Europe 2022

This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Working Effectively With Erlang Legacy Code | Brujo Benavides - Erlang Developer at NextRoll ABSTRACT We know Erlang is all about fault tolerance. A well-engineered Erlang system – such as Kred, in the heart of Klarna’s business – will never stop, no matter what. Yet, about a year ago a short Kafka outage shook our mighty Kred so bad it knocked out all but one node. A few days later a second outage took down the entire cluster. How could this happen? This is the story of our hunt for the cluster-killer bug before it could strike again. It is a story of unexpected twists and descending to the deepest depths of the technology stack powering an Erlang application. OBJECTIVES Give some new tools for debugging low-level issues in an Erlang stack. Teach about Erlang’s memory model. AUDIENCE Developers who would like to add some new tricks to their debugging toolbox. • Timecodes 00:00 - 04:39 - Intro and Fault Tolerance 04:40 - 08:27 - System Architecture 08:28 - 09:15 - Troubleshooting 09:16 - 13:29 - Identify 13:30 - 15:26 - Fix 15:27 - 20:36 - Alert + Identify + Fix 20:37 - 21:32 - The incident 21:33 - 27:26 - Symptoms 27:28 - 29:45 - Validate 29:46 - 34:10 - The Path of Metrics 34:11 - 40:19 - Testing lock-ups 40:20 - 46:36 - The Mystery Term • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Testing Done PropEr | Max Nordlund | Code BEAM Europe 2022

This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Testing Done PropEr | Max Nordlund - Lead Backend Developer at Kivra ABSTRACT What's better than writing tests? Having the computer write them for you. Well, at least teach the computer what it can do and let it loose to try to shake out any flaws. This talk is about PropEr, a property-based testing framework, and more specifically about its support for testing state machines. I'll whet your appetite by introducing property-based testing, and then take a deep dive into PropEr statem and how you can use it to test state machines. OBJECTIVES Give the audience an overview of what PropEr statem is/does, and how to approach writing their own tests using it. AUDIENCE Erlang developers wanting to learn about property based testing in general, and PropEr statem testing in particular. • Timecodes 00:00 - 02:02 - Intro 02:03 - 04:08 - What is PropEr 04:09 - 08:35 - Basic Setup 08:36 - 13:19 - The Tale of Trains 13:20 - 33:15 - Symbolic vs Dynamic 33:16 - 39:33 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Kill All Mutants! Intro to Mutation Testing | Dave Aronson | Code BEAM Europe 2022

This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Kill All Mutants! Intro to Mutation Testing | Dave Aronson - software development consultant ABSTRACT How good is your test suite? Would it all still pass if the tested code was changed? If so, there may be problems with your code, your tests or both! Mutation Testing reveals these cases. This talk will tell you how to use mutation testing, its benefits, drawbacks, inner workings, and history. There will be several examples and a list of tools for many popular languages. You will come away equipped with a powerful new technique for making sure your tests are strict and your code is meaningful. OBJECTIVES Tell people: what mutation testing is why mutation testing is helpful how to do mutation testing some tools for doing mutation testing AUDIENCE Senior devs, and occasional intermediate developers, who are comfortable with unit testing and, ideally, are already familiar with more abstruse concepts like an Abstract Syntax Tree, but that's not absolutely required. Where experience helps is more in being able to connect the results of a particular case with what you should do about it. • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Working Effectively With Erlang Legacy Code | Brujo Benavides | Code BEAM Europe 2022

This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Working Effectively With Erlang Legacy Code | Brujo Benavides - Erlang Developer at NextRoll ABSTRACT So you just joined a massive project with tons of poorly-maintained Erlang code. DON'T PANIC! This tutorial will teach you all the tools and techniques you need to start working on it confidently and productively. You will learn how to use tools like the compiler, common_test, xref, dialyzer, elvis, hank, the formatter and others in large codebases which are generally hard to work on. These tools and some of the techniques will increase your confidence and help you work more efficiently. TARGET AUDIENCE Erlang developers that work (or plan to work) in legacy systems. PREREQUISITES Erlang/OTP 22 (or newer), github, and a text editor COVERS THE FOLLOWING TOPICS Improving systems in an iterative way Testing Frameworks: Common Test, Eunit Cross-reference Analyzers: Xref Discrepancy Analyzers: Dialyzer / Gradualizer Linters: Elvis / rebar3_lint Dead Code Removers: Hank / rebar3_hank Security Analyzers: PEST WHY YOU SHOULD ATTEND THIS COURSE Increases your confidence in dealing with large and complex systems. Gives you tools to help you build better applications. Gets you thinking in maintainability. Helps you follow Joe’s recommendation of writing Beautiful Code. • Timecodes 00:00 - 04:11 - Introduction 04:12 - 07:50 - Meta 07:51 - 12:51 - Content and Consequence 12:52 - 16:24 - New Space to Play 16:25 - 23:19 - Locality 23:20 - 26:58 - Consistency is a Lie 26:59 - 33:28 - PLOP 33:29 - 38:33 - Massive reliability 38:34 - 49:00 - Ruthless Modularity 49:01 - 52:36 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch
Smashing the Data Bottleneck with (...) on the BEAM | Vijay Chakilam | Code BEAM Europe 2022

This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Smashing the Data Bottleneck with Federated Machine Learning on the BEAM | Vijay Chakilam - Head of Machine Learning at Partsimony ABSTRACT We know Erlang is all about fault tolerance. A well-engineered Erlang system – such as Kred, in the heart of Klarna’s business – will never stop, no matter what. Yet, about a year ago a short Kafka outage shook our mighty Kred so bad it knocked out all but one node. A few days later a second outage took down the entire cluster. How could this happen? This is the story of our hunt for the cluster-killer bug before it could strike again. It is a story of unexpected twists and descending to the deepest depths of the technology stack powering an Erlang application. OBJECTIVES Give some new tools for debugging low-level issues in an Erlang stack. Teach about Erlang’s memory model. AUDIENCE Developers who would like to add some new tricks to their debugging toolbox. • Timecodes 00:00 - 01:47 - Agenda 01:48 - 04:13 - Machine Learning 04:14 - 07:09 - Data Bottleneck 07:10 - 09:56 - Federated Machine Learning 09:57 - 11:58 - Motivation 11:59 - 13:14 - Challenges 13:15 - 21:37 - Federated Machine Learning on the BEAM 21:38 - 26:48 - Algorithms 26:49 - 30:31 - Future Work 30:32 - 36:55 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global

Watch