Code BEAM Europe 2023

2023

List of videos

A Year in Production with Machine Learning on the BEAM - Christopher Grainger | Code BEAM Europe 23

A keynote talk from Code BEAM Europe 2023 ✨Follow as and don't miss any info about Code BEAM conferences: https://twitter.com/CodeBEAMio ✨ Christopher Grainger shares his experience with Machine Learning with Elixir ecosystem: "Last year we made the decision to switch our machine learning research, inference, and ETL pipelines to Elixir. Python was our first choice but, with the rest of our codebase in Elixir, we ran into problems with siloing and context shifting. The advent of the Numerical Elixir (Nx) project made the transition possible. The move to an all-Elixir codebase led to streamlining development, less complexity, and swift experimentation – all force multipliers for a small startup. We’ve since woven the Nx ecosystem into our workflows, relying on Livebook for daily operations, and rolled out Scholar for a key feature. In this talk, I’ll share our insights and discoveries over the past year since our complete transition to Elixir, how we integrated the Nx ecosystem into our operations, and the practicalities and challenges of managing machine learning in production using the BEAM The Nx ecosystem is ready for production today. It’s surprising because of how new it is but, for many, many use cases, it’s possible to put machine learning into production only using Elixir. And we’re not just talking about trivial things: we run a bespoke large language model (LLM) (that we were able to fine tune in Elixir!) with millions of parameters and run inference with millions of documents each week. But it’s new and there’s not a lot of information out there about the practicalities with deployment, or real-world assessments of benefits and challenges. So I can talk to that as a CTO and founder who made the choice and reaped the benefits."

Watch
Apocalypse How? New Rules For Writing Code in the Newfound Era of Ethical Ambiguity - Randall Thomas

Keynote talk from Code BEAM Europe 2023 As programmers, we use our skills to create new possibilities. Sometimes for good, other times just for profit. Increasingly, the costs of the tools we build are borne by people we will never meet, and those with little or no say in how the tools we, as software engineers, have built are used. As software moves from niche domain to “dual use” technology, what level of responsibility do we as software engineers have to “first: do no harm”? ✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming events check https://codesync.global ✨ Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 LinkedIn: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Fully Utilizing the BEAM: José Valim and Saša Jurić in live podcast episode hosted by Lars Wikman

✨This discussion was recorded at Code BEAM Europe 2023. If you're curious about our upcoming events check https://codebeamamerica.com and https://codebeamstockholm.com ✨ Whether you do Elixir, Erlang, Gleam or any of the others you are running on top of a uniquely capable runtime. The BEAM has a reputation for rock-solid reliability and unique facilities in realtime, concurrency and.. well, you've probably heard it all before. But there is so much more to the BEAM. There are many parts with lots of potential that we are not fully utilizing today. Lars Wikman sits down with The Erlangelist, Saša Jurić, and the creator of Elixir, José Valim, with the goal of getting their thoughts on what further potential they see in the BEAM. What should the community be exploring? What could we do that we currently are not?

Watch
Against the Grain by Saša Jurić | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: This talk tells the story of developing a bespoke Kafka client. None of the existing libraries in the BEAM ecosystem fulfilled the needs of the team, and it was estimated that contributing new changes to those projects would be very difficult. At the same time, writing and maintaining a client from scratch would require a lot of time, much more than the team could afford. So what can we do in such situation? Join me and find out how by making some atypical choices we got ourselves out of a tricky situation. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Building and growing the community by Sigu Magwa and Njoki Kiarie | Code BEAM Europe 2023

"✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: We have spent a couple of years recruiting, training and engaging community members into elixir. The community has grown and remained active throughout the years since its inception. We believe that expanding the ecosystem fuels innovation, enhances flexibility, improves productivity, enables specialised solutions, fosters diverse communities, and promotes continuous learning Our goal is to get the community members to be able to compete internationally and also by upskilling so that the Kenyan ecosystem can adopt elixir now that we have more developers using Elixir. We have encouraging results so far :-) We want to share our experience on how we grew this community, what we did - right and wrong and our future plans Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync "

Watch
Refactoring Made Easy - Alan Zimmerman | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebebeameurope.com ✨ Abstract: From small projects to large monorepos, refactoring plays a crucial role in ensuring the maintainability, the extensibility and the overall code quality of a codebase. Codemods allow developers to write scripts that define patterns and transformations across a codebase, reducing the manual effort involved in refactoring. In this talk we present a number of tools and techniques that can assist you in tackling the complexities of refactoring Erlang code and improving code maintainability. We discuss how to combine the concepts of refactoring and codemods with the power of diagnostics and code actions (quick fixes) in the IDE. By using practical examples, we show how to implement a refactor, a linter and the respective fix by using a brand new framework which you can use in multiple contexts, from the IDE to the CLI, at industrial scale. Let's stay in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
TDD ❤️ Erlang by Brujo Benavides | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming events check https://codesync.global ✨ About the talk: Test Driven Development is a great way of writing code, both for simple programs and also for large systems. Erlang, in particular, is a language that's fantastically suited to work this way. But you need to learn how to use the tools that the language provides to get the most out of it. This talk covers exactly that. It's the answer to the question "How can I easily and effectively implement TDD to work with any Erlang system?" Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 LinkedIn: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
BEAM: The Perfect Fit for Networks - Andrea Leopardi | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: Networking can seem like a challenging task, but the BEAM is truly one of the best matches for tackling it. In this talk, we’ll mostly focus on two things: when the BEAM is the right fit for networking applications, especially compared to “lower-level” languages (such as Rust or Go), and then we’ll shift our focus to using the BEAM to write TCP applications. - We'll discuss how the BEAM's lightweight processes and messaging system provide a powerful and intuitive way to handle TCP sockets and data. - We'll explore how to use acceptor pools and supervision trees to build scalable and fault-tolerant TCP servers. - I’ll show you how to use the gen_statem behaviour to build reliable TCP clients. This stuff is at the foundation of Phoenix, LiveView, channels, and more. Even if you’re not working at the lower levels of the networking stack, this talk will help you understand how many of the tools and patterns we use every day work under the hood. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Scaling CLIP based Natural Language Media Search with Bumblebee and Broadway by Raj Rajhans

"✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: As organizations increasingly adopt Elixir for various applications, it has become essential to effectively implement machine learning at scale within the Elixir ecosystem. In this talk, attendees will be shown how Elixir libraries Bumblebee and Broadway can be used to tackle machine learning tasks in production, using natural language media search as a prime example. The talk will show why Elixir is a powerful choice for machine learning applications and how its capabilities can be leveraged to build scalable, efficient solutions. As an example, we will walk through the process of indexing bulk media using Bumblebee and Nx by utilizing Broadway for batch processing, and then running inference queries in production with Bumblebee against the data indexed before. Attendees will gain insights on how to harness the power of Elixir libraries for ML applications, enabling them to build robust machine learning powered solutions using Bumblebee, Nx for ML and Broadway for data processing. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync "

Watch
etylizer: Set-theoretic Types for Erlang by Annette Bieniusa, Albert Schimpf | Code BEAM Europe 2023

"✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: Erlang’s type language provides powerful such as parametric polymorphism, equi-recursive types, as well as singleton, union, and (a variant of) intersection types. But its type signatures mainly serve as documentation as language features such as pattern matching and dynamic type tests complicate the design of a static type system. In our talk, we present etylizer, a static type checker for Erlang that adopts set-theoretic types as its foundation. With a demo on selected case studies, we will demonstrate how existing Erlang code can be statically typechecked without or with only minor modifications to the code. We will further show how set-theoretic types can enhance the development process and improve code quality for idiomatic Erlang code. The etylizer project is funded by the Erlang Ecosystem Foundation and developed as free open-source software here: https://github.com/etylizer/ Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync "

Watch
The Design Principles of the Elixir Type System - Guillaume Duboc | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebebeameurope.com ✨ Abstract: This talk will present the current state of Guillaume Duboc's PhD thesis on introducing a type system to Elixir. We will present set-theoretic types, and how they are uniquely suited to represent Elixir programs. Then, we will showcase the potential benefits of a type system designed for Elixir, such as detecting common bugs and providing direct feedback on code quality. In addition to exploring the use of types to describe and enforce function interfaces, we will provide examples of new syntax for types that could be added to the language. We will also delve into the concept of gradual typing and its ability to mix typed and untyped code, as well as ease the optional transition of existing codebases towards types. We will share my perspective on the state of the project, the forthcoming work, and the challenges we have faced, as this is joint work with Giuseppe Castagna and José Valim. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync "

Watch
Craft your domain-specific query language with NimbleParsec and Ecto - R. Binetti | Code BEAM Europe

"✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebebeameurope.com ✨ Imagine you want to ask your API ""List all devices which are not located in Europe and are currently connected or are either tagged 'maintenance' or 'retired'"". Expressing this kind of selection with query parameters quickly becomes unwieldy, and even a more structured query language like GraphQL can feel clunky to express this, especially if the target user is not a technical one. Ideally, we'd want users to be able to write something like: (not attributes[""continent""] == ""EU"") and (connected or (""maintenance"" in tags or ""retired"" in tags)) In this talk I will show you how this can be achieved with the power of Elixir, NimbleParsec and Ecto. We will use NimbleParsec to parse the domain-specific language into an Abstract Syntax Tree represented using Elixir structs, and then we will traverse that AST to produce a valid query using the power of Ecto dynamic queries. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync "

Watch
Update from the Elixir Core Team - José Valim | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event check https://codebeameurope.com ✨ What the Elixir team has done in the last few months, what projects they’re working on, what’s going on on the research side, and what features will be in the next release.

Watch
Introducing Bondy: The IoT, Web and Mobile Platform by Alejandro Ramallo | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: Bondy is an open source, always-on and scaleable application networking platform connecting all elements of a distributed application—offering service and event mesh capabilities combined such as service authentication, fine-grained authorisation, service discovery, routed remote procedure calls (RPC) and publish/subscribe. From web and mobile apps to IoT devices and backend microservices, Bondy allows everything to talk using an open, simple and secured application networking protocol that provides two-way communications and peer-2-peer programming model (WAMP - the Web Application Messaging Protocol). Bondy is written in Erlang and uses Partisan for scalable clustering and distribution.Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Reimplementing technical debt with state machines by Nelson Vides & Paweł Chrząszcz | Code BEAM

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: An extensible protocol implementation means that its core code has to be extensible, right? But it also means the core is the first piece of code ever written for this project, and which everything else will depend on, which means, well, highly likely future technical debt. Fast-forward over a decade, and this code might have become not just intractable, but also impossible to understand. What's next? Incremental improvements, top-bottom or bottom-up, a full rewrite and replug, experiment with a mysterious and not fully tested spaghetti? In our chat’s backend service, we kept coming back to this topic, until one day that looked like it’d be just a boring day, we came up with a prototype for a remorseless full rewrite that immediately looked promising. Based on the OTP’s gen_statem behaviour, we wrote a new core set of extensible rules where everything can gracefully plug in. Let's solve the quagmire putting together old code, RFCs, state machines and a telemetry-like event mechanism. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Want to hear about code smells in Elixir? See you at Code BEAM Europe 2023!

Why should you work on code smells and refactoring? For better maintainability, extensibility, reusability, code readability, and clarity! 🙌 Learn more about all that from Elaine Watanabe at Code BEAM Europe - the Erlang and Elixir Conference, 19-20 Oct 2023. You can join us in Berlin or online: book your ticket here: 💥 https://codebeameurope.com 💥

Watch
Do You Really Need Processes? by Brian Underwood | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: You probably know that the power of the BEAM comes from processes which operate concurrently and supervisors which, in many cases, allow service to continue. Maybe you’ve thought that your application needs to use more GenServers and Supervisors to become the best that it can be. But then again, maybe everything is fine. In this talk, Brian will present a demo of a ride-sharing application which he created to understand what is possible with a standard Phoenix + PostgreSQL application. He will explore what performance and resiliency gains can (or can’t) be achieved by designing various process and supervision architectures using an external database, process state, ETS tables, and combinations therein. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Deumbrellization – cheap microservices by Artur Sulej | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: Elixir's umbrella projects have long been a go-to choice for structuring applications. While they provide a great foundation for modular code organisation, they still fall short when it comes to fully embracing the benefits of a microservices architecture. In my talk, I will unveil a strategy for transforming umbrella monoliths into scalable microservices. The best part? This approach requires little effort and leverages the built-in, battle-tested mechanisms provided by Erlang and Elixir. I will guide you through a step-by-step guide, demonstrating how to transition from an umbrella monolith to a distributed microservices architecture – with practical code examples. My presentation slides: https://docs.google.com/presentation/d/17xaMVh-4uYtfok6qFuBAf0K8SA-BFGFt2sjeVTcdFxc/edit?usp=sharing Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Hypermnesia: Auto reconciliation in Mnesia by Vincent Liu | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: Mnesia is an embedded database for Erlang/OTP applications that offers outstanding performance thanks to its tight integration with Erlang. However, its lack of conflict resolution after network partitions is a notable limitation that demands manual restart by developers to reconcile replicas. In this talk, I will discuss eventual consistency and CRDTs to achieve automatic conflict resolution within Mnesia. I will introduce Hypermnesia, an extension to Mnesia featuring a new access context async_ec that streamlines replica reconciliation after a partition. Hypermnesia is also designed with minimising overhead and out-of-box usage in mind. In the talk, I will present benchmarking results, and demonstrate practical examples of using Hypermnesia. This project is a collaboration between the University of Cambridge and Erlang Solutions. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Structs for Erlang - Lightning Talk by Robert Virding | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming events check out: https://codebeameurope.com ✨ There is a number of problems if you want to try and run Elixir code from Erlang, and this talk will discuss one of them: that Elixir uses structs. A proof of concept, by means of a simple parse transform, will enable an Erlang module to be able to call Elixir code and harness the full capabilities of structs, as well as enable to create code with structs that can be called from Elixir too. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 LinkedIn: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Erlang and Elixir on IoT devices using AtomVM - Lightning Talk by D. Bettio | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event check out: https://codebeameurope.com ✨ "This talk will present AtomVM, a tiny portable virtual machine that allows Elixir and Erlang code to run on microcontrollers with less than 500KB of RAM such as the ESP32 or several STM32. This talk aims to present AtomVM and to show how a functional language such as Elixir might boost development of IoT projects."

Watch
Fighting the Behemoth - Lightning Talk by Arnaldo Cesco | Code BEAM Europe 2023

✨This lightning talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event check out: https://codebeameurope.com ✨ Fighting the Behemoth: turning a 2500-LOC module into some actually readable, testable Elixir code The talk will discuss steps and challenges that occurred while refactoring a towering non-trivial legacy Elixir module. Relevant steps include: designing a novel module architecture (based, based on the functional core - imperative shell pattern), refactoring code with special care for readability, creating a comprehensive and cohesive test suite to safely address migration from the legacy implementation.

Watch
EEF - community engagement - Lightning Talk by A. Woodman | Code BEAM Europe 2023

✨This lightning talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event check out: https://codebeameurope.com ✨ An Update from the Erlang Ecosystem Foundation.

Watch
Becoming a Stronger Developer - Lightning Talk by Dennis Palmer | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming events check out: https://codebeamamerica.com https://codebeamstockholm.com https://codebeameurope.com ✨ Dennis Palmer: "We get paid to sit (or stand) at a desk all day. Most of us want to be in better physical shape, but carving out a few hours per week to go to the gym can be a real challenge. My back hurt too much to do most forms of exercise. Through the book “Body by Science” I learned that it really only takes less than 15 minutes per week in the gym to build muscle and get in good physical shape. I was skeptical of this approach but gave it a try and proved for myself that it works. My back hurts less, I’m stronger than I have been since my 20’s, and I will soon be in the best shape of my life. My genes say I won’t be a bodybuilder, and I never wanted to be. However, maximizing my own physical strength with the optimal amount of effort has given me new energy and helps me focus on my work every day. I will give some highlights of the science presented in the book and a quick overview of the workout I do once per week as recommended by the book. I may also show the Phoenix LiveView app I am building to track my workouts."

Watch
Don’t let it crash - Security through Static Analysis by Melinda Tóth & Dániel Horpácsi | Code BEAM

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: Something to love about the BEAM is the principle of ‘let it crash’: exceptions are isolated and handled by design. Indeed, various kinds of data checks can be mercifully omitted, but it would be rash to conclude that all input validation is redundant and unnecessary. In 2020, the Erlang Ecosystem Foundation curated an extensive list of secure coding principles to raise programmers’ awareness and assist them in creating secure Erlang systems. But the reality is always messy: Erlang/Elixir projects rarely follow these guidelines, and legacy have been running for years with well-known vulnerabilities. In this talk, we will explain how static analysis can be useful for detecting critical security issues in new or legacy Erlang code bases, mitigating and even eliminating them semi-automatically. In particular, we will present use cases of vulnerabilities found in open-source projects and demonstrate how techniques like data-flow analysis can reveal and cure them. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Building analytic systems with Elixir by Dmitry Russ | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: This is a case study and discussion about state of the art for developing analytical systems with Elixir. Multiple years we are working on Process Mining products with Elixir, using and experimenting with different technologies (Clickhouse, MariaDB column storage, DuckDB, KDB+, Polars). This talk is about problems, design decisions and challenges on the way, like developing in-house ecto-like framework, explaining what you can't achieve with SQL and why you might look into lower-level technology like Polars & KDB+, ending with trying to show-case some example functionalities on top of Elixir Explorer and comparing them with Python. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Bits and Pieces by Sebastian Weddmark Olsson | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: You like specifications, protocols, codecs, or arbitrary binary strings? Then this session is for you. The session will go through the mindset and tooling for investigating how to bring arbitrary unknown bitstrings to messages with meaning, and why Erlang is a really good fit for it. At last OTC, a library for for decoding certain telecom protocols and messages, will be presented. There will be a bunch of acronyms in this talk because the telecom industry really likes them, but similar to complex binaries, all those acronyms can be debunked: don't be afraid. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Building Multiplayer Tetris from scratch with OTP, Elixir, and Phoenix by Merlin Webster | Code BEAM

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: Let’s play Tetris together! In this talk we’ll play a live game of Tetris battles together, and then have a look at how it works under the hood. We’ll take a tour through the code and show how a multi-participant browser based game or tool can be built using only Elixir and Phoenix LiveView. The goal of this talk is to teach you something about how OTP processes and supervision works, and show some patterns for creating large interactive experiences using Phoenix. We’ll use my game Tetrex (https://github.com/mjftw/Tetrex) as a case study, and I’ll aim to share some insights learned on my journey from Elixir newbie to video game copyright infringer. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Fuzzing the Erlang ecosystem by Robin Morisset | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: Erlfuzz is a recently open-sourced tool that produces random valid Erlang programs, used to test erlc, the BEAM VM, and a variety of other tools (dialyzer, eqWAlizer, erlfmt, infer, etc..). It has found more than 80 bugs to date, including more than 60 bugs in erlc. In this talk I'll explain how erlfuzz works, what tricks were used to detect subtle VM bugs, and how to use it for any tool you may want to test. I'll also mention some of the dark corners of the language that it revealed, mostly around the Erlang scoping rules. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Prototyping a remote-controlled telescope with Elixir by Lucas Sifoni | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: The different facets of Elixir enabled me to design, prototype, and build a physical device, from initial exploration of the problem domain with written research interleaved with code, to software prototypes that help grasp the actual problems a physical device can have, to a built terrestrial telescope, driven by a low-end RISC-V SoC running Elixir and Rust code. By the end, you'll also have a quick introduction to optics and the inner workings of telescopes ! Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Building Jellyfish: multimedia server powered by Membrane & Phoenix - Łukasz Wala | Code BEAM Europe

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: Discover how we utilized Elixir to develop the initial version of Jellyfish, a Multimedia Server that bridges various streaming protocols such as WebRTC, HLS and RTSP. Don’t worry if these acronyms don’t ring any bells with you! Multimedia is a complex topic, streaming - even more so, but with Membrane as a base for our media processing and Phoenix for REST and WebSocket API, we’ve built a straightforward-to-use solution, that lets you create video-conferencing app, clone of Twitch, or both at the same time, regardless of the programming language you use. In this talk, I’ll dive into the architecture of Jellyfish, discuss the underlying media processing pipelines, examine the design of its APIs, and share the struggles we faced while building this product. Additionally, I’ll present some example scenarios that can be achieved with Jellyfish. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
LiveView: Best Practices for Building Real-Time Interactive Interfaces - Herminio Torres | Code BEAM

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: In this talk, we will explore the best practices for using LiveView to build real-time interactive interfaces. We will cover fundamental concepts such as context, live components and function components, a single source of truth, and send_update. Additionally, we will discuss the approach of scoped CSS and its benefits in LiveView applications. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
What the shell - Prototyping with LLMs by Fredrik Frantzen | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: With OTP-26 we've launched a number of improvements to the shell that we hope is appreciated by the Erlang Community. * Multiline expressions * Function definitions * Module creation (26.1) * Type completions * Keyboard shortcut configurations (26.1) This presentation introducers these features by initiating a conversation with ChatGPT erlang module in the shell, to write functions for some kind of app. Copy pasting the function definition response with a -spec into the shell, maybe even a couple of tests. We will iteratively complete the function or app with the help of ChatGPT, tracing, type completions and open an external editor (VSCode) connected to LSP. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Empowering Edge Devices with Lightweight Neural Network Inference Framework by Cocoa Xu

TFLiteBEAM: Empowering Edge Devices with Lightweight Neural Network Inference Framework ✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: This project aims to create a lightweight neural network inference library, TFLiteBEAM, powered by TensorFlow Lite (TFLite). Firstly, TFLiteBEAM has a small footprint. It sits around 10MBs compared to 500+ MBs when using EXLA or 700+ MBs for torchx, making it a great option for edge devices and resource-constrained systems such as Raspberry Pi. Secondly, TFLiteBEAM is primarily optimised for mobile and embedded devices. It provides optimized model parsers and inference engines for these devices, delivering fast and low-latency inference performance. Thirdly, using TFLiteBEAM also allows us to run models on Edge TPU like Coral, a hardware accelerator. In comparison, it's still nearly impossible to use any desktop GPUs on devices like Raspberry Pi, while adding a Coral edge TPU as the hardware accelerator is relatively more accessible and practical. Lastly, as its name suggests, this library can benefit all BEAM languages (as long as they have support for using Erlang NIF libraries). Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Erlang Language Platform: Revolutionizing the Erlang Development Experience

✨This talk by Roberto Aloi & Michał Muskała was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: In this talk we unveil the ""Erlang Language Platform"" (in short ""ELP""), a groundbreaking, open-source project poised to transform the development experience for the Erlang programming language. Designed at WhatsApp and inspired by the success of the Rust Analyzer project, ELP is a compiler front-end for Erlang providing a scalable, fully incremental, IDE-first library for the semantic analysis of Erlang code. By implementing support for the LSP protocol, ELP acts as a next-generation language server, revolutionizing the way developers write, debug and maintain Erlang Code. In this talk we provide a high-level introduction to the project, discover what is necessary for a good interactive compiler and how it differs from more traditional compilers. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Khepri: Replacing Mnesia in RabbitMQ by Michael Davis | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebeameurope.com ✨ Abstract: Khepri is a tree-like, replicated database library from the RabbitMQ team using the Raft distributed consensus algorithm. Khepri aims to replace Mnesia for persistent and replicated metadata storage within RabbitMQ. This talk touches on why and how the Rabbit team chose to create Khepri, some basic usage examples and implementation details, recent large changes in Khepri, and updates on Khepri's progress into the RabbitMQ codebase: * A new feature called ""projections"" allows us to match or beat mnesia's read speed in many cases. * We've overhauled the API to be more ergonomic and also made it friendlier for Elixir. * We plan on landing the Khepri branch in the next minor release under a feature flag! Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
How I grew to love Erlang type specs - Marc Sugiyama | Code BEAM Europe 2023

✨This talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event, check https://codebebeameurope.com ✨ Abstract: Erlang is a typeless language, but our programs have types. Large teams and long running projects need to communicate how our programs work. Typing structures and functions beyond the Erlang base types makes code easier to understand, change, and debug. This talk covers how I grew from finding type specs an annoyance to loving them. Let's keep in touch! Follow us on: 💥 Twitter: https://twitter.com/CodeBEAMio 💥 Facebook: https://www.facebook.com/CodeSyncGlobal 💥 Linkedin: https://www.linkedin.com/company/code-sync 💥 Mastodon: https://genserver.social/codesync

Watch
Kraken - a Lightning Talk by Anton Mishchuk | Code BEAM Europe 2023

✨This lightning talk was recorded at Code BEAM Europe 2023. If you're curious about our upcoming event check out: https://codebeameurope.com ✨

Watch