Mind your behaviors with Knigge - EMx 127
Sascha Wolf joins the mix to talk about how to test behaviors in your Phoenix apps by using tools like Mox and Knigge.
Caching, Telemetry, and Beyond: Navigating Software Solutions for Efficient Development - EMx 229
Allen, Adi and Sascha join this week's panelist episode. They talk about the importance of a historical record, logging, and error handling, time operations in Elixir, and code linting with Credo. Moreover, they dive into helpful app development tools, caching with etech plug, telemetry, and open telemetry solutions.
Observability in the Beam: An In-Depth Exploration of Tools and Solutions - EMx 228
Adi, Allen, and Sascha join this week's panelist episode. They dive deep into the world of observability, tracing, and monitoring. They talk about the advantages of using open telemetry directly and how it can be translated into different formats. They also explore the benefits of using tools for understanding and improving code performance during development. Additionally, they take a look at different levels of observability, from Phoenix Live View and Live Dashboard to telemetry and tracing operations in large pipelines.
Building Applications with Flexibility and Scalability in Mind - EMx 227
Adi, Allena, and Sascha join this week's panelist episode. They dive into the world of engineering approaches for startups and delve into the ongoing debate of whether software engineering is really engineering. They discuss a unique structure for building a big elixir application, where separate bound contexts are responsible for their own supervision trees. They share their insights on the benefits and challenges of this approach, exploring the balance between pragmatism and forward-thinking. From discussing microservices to exploring new programming languages and patterns, there is plenty of valuable information for developers of all levels.
Choosing Elixir as your Language - EMx 226
Bruce Tate is the founder of grox.io. He begins by introducing himself and talking about the services his company provides. They also discuss choosing Elixir as your first language for beginners, its pros and cons, and each of the panel's perspectives regarding it. Moreover, they dive into all things Elixir and many more!
Things Lately as a Developer - EMx 223
Adi, Allen, and Sascha join this week's panelist episode to discuss their most recent work update and exciting projects. They also dive into some of the issues they experienced while working on some of their projects and how they handled them.
Run Specific Test Cases using ExUnit with Kevin Mathew - EMx 221
Kevin Mathew is a Junior Backend Developer at Qiibee. He joins the show to talk about his article, "Run specific test cases with ExUnit". He begins sharing how he became an author in ElixirSchool. He also shares the reason why he came up with his article. Additionally, he dives into explaining running specific tests and the panel also shares their own experience & perspective on the different tests.
Building Distributed Systems at Scale - EMx 219
Brent Anderson is a Software engineer at Knock. He builds high-scale messaging systems in Elixir. He joins the show to talk about his article, "Using our One and Done library to power idempotent API requests". He begins by explaining the idea of creating a library and the importance of idempotency.
Sports Betting in Elixir with Nikola Petrušić - EMx 218
Nikola Petrušić is a Software Engineer at theScore. He joins the show to talk about Sports Betting. He begins by sharing his experiences in the industry and how he landed his job. He dives into the concept of sports betting in the Elixir ecosystem.
What Have You Used Elixir For Recently? - EMx 217
Adi, Allen, and Sascha join this week's panelist episode to talk about their Elixir projects, recent discoveries, and challenges they have encountered.
Handling and Updating Web Application Dependencies - EMx 210
Allen and Sascha join this week's panelist episode to talk about updating web application dependencies. They dive into the things you should consider in web application updates. Moreover, they share their professional experience and how they deal with errors and bugs after updating software.
The Use Of Stenography In Elixir With Paul Fioravanti - EMx 209
Paul Fioravanti is Principal Consultant at Alembic. He joins the show alongside Sascha to talk about his YouTube video, "Build a real-time Twitter clone with steno using LiveView and Phoenix 1.6" He starts off by sharing how he was introduced to the concept of "Stenography" and how it lead to creating his youtube video. He explains using steno in programming and what difference it makes. Additionally, he advises beginners on how to get started with steno.
How To Secure Your Elixir Application With Michael Lubas - EMx 208
In this episode, Allen, Adi, and Sascha are joined by Michael Lubas, the founder of paraxial.io, as they delve into the world of bot defense. Michael highlights the importance of bot defense, especially for small companies who are often deliberately targeted. The group examines the issues with "man-in-the-middle" solutions like Cloudflare and how this can be avoided by having bot defenses built into the application itself - the approach paraxial.io is taking. He explains how paraxial's bot detection and defense work on a high level, how it tries to reduce the runtime overhead to a minimum, and what other security topics are relevant for the day-to-day Elixir developer.
Putting Elixir Applications Into Production In 2023 - EMx 206
Adi, Allen, and Sascha join this week's panelist episode to tackle different deployment applications in Elixir. Allen leads the show as he talks about the application "Fly.io". He describes how he used the software, how it works, and its benefit to users. On the other hand, Adi explains why he prefers to use Heroku. He explains its process and why it is also user-friendly. Lastly, they highlight the tools they think developers should utilize in 2023.
Remote Development With Ben von Polheim - EMx 205
Ben von Polheim is a Freelance Front-end Developer. He also built two Elixir libraries: live_motion and ex_cva. He joins Allen and Sascha to talk about his article, "Remote Development in Elixir with Gitpod". He explains how he came up with the idea for the project and the process of setting it up.
Building An Empire With Francesco Cesarini - EMx 204
Francesco Cesarini is the Founder & Technical Director at Erlang Solutions. It is a global corporation with a focus on soft real-time systems with high availability and scalability demands. He joins the show to share his inspiring story of how he was able to establish and run his own company. He begins by discussing how he came to be successful over the years and his road to getting there.
Code Security in Elixir With Filipe Cabaco - EMx 203
Filipe Cabaco is an Elixir Software Developer who currently works at Supabase. He joins the show with Allen and Sascha to discuss his article, "Elixir Code Security: Prioritize Security in Your CI With 4 Tools". He begins by outlining how he came up with the idea for his article and how that came about. Additionally, he discusses some of the tools that may be used to safeguard your code.
Full-Text Search And Name Search With Postgres - EMx 199
Peter Ullrich is Senior Elixir Engineer at Remote. He is also an experienced Elixir Developer, certified Blockchain Engineer, and Entrepreneur. He joins Allen and Adi to talk about his blog articles, THE COMPLETE GUIDE TO FULL-TEXT SEARCH WITH POSTGRES AND ECTO, and EFFICIENT NAME SEARCH WITH POSTGRES AND ECTO. He starts off the show by explaining what inspired him to write these articles.
Should You Use Process Dictionary In Your Elixir Program? - EMx 197
Join the Elixir Mix Panel as Adi opens the episode by discussing his thoughts on how some companies employ an unconventional procedure to manage their system. Additionally, they share their insights and opinions on using the "process dictionary" and whether it’s beneficial or it’s not necessary.
Understanding Observability in Elixir with Dave Lucia - EMx 195
Dave Lucia is a CTO at a media company called Bitfo, which builds high-quality educational content in the cryptocurrency space. He has been an Elixir Developer for about 6 years. He is the author of “Elixir Observability: OpenTelemetry, Lightstep, Honeycomb”. He joins the show to talk about how they were able to build their system and other websites like DeFi Rate and ethereumprice.
A Thing or Two About Union Types - EMx 194
The panel dives into how different Union Types apply to Elixir. They share their thoughts and experiences on the topic as well as techniques when writing codes. Sascha also gives a brief background about his current project called ExUnion.
The Release of OpenTelemtery in Erlang/Elixir With Tristan Sloughter - EMx 193
Tristan Sloughter has been an Erlang Developer for over 19 years. In this episode, Tristan joins the show as he talks about their project called “OpenTelemetry release of Erlang/Elixir.” With the use of this protocol, in your application, developers can collect, process, and export data. He also shares his journey toward shifting his focus from OpenCensus to OpenTelemetry and gives a background about it.
CI/CD Pipelines - ELIXIR 192
The Elixir Mix panel they discuss how they run their CI/CD pipelines, how they set them up, how they run, and what they do to make them a valuable part of the development process. They also discuss caching, how deep it needs to go, and how they approach getting the best/most information out of the system they're running.
PostgreSQL Queries with Michael Fich - EMx 190
Michael Fich joins the show today to share how he implemented the PostgreSQL schema to enhance the Elixir workflows at his organization, the Score, based in Toronto Canada. Sascha and Allen also provide additional insights and deep dive into their experience with PostgreSQL models.
Livebook Desktop with Wojtek Mach - EMx 189
Today we talk with Wojtek Mach from Dashbit, about the Livebook Desktop app, a tool for writing interactive and collaborative code notebooks. Dashbit primarily works with clients, helping companies adopt and run Elixir. We talk about the history of how Livebook came to be, and the challenges of developing for desktop apps. We also get a sneak peak into what is coming soon.
Type-safe OTP in Gleam with Louis Pilfold - EMx 187
Today we talk with Louis Pilfold, an ex-elixir/Lang developer. Since 2018, Louis has been working on Gleam, and hesitantly admits to being its author. This statically typed language that runs on Erlang virtual machine and draws its inspiration from several other languages. With Gleam gaining a lot of traction, it’s definitely worth a look into this up and coming gem.
What it means to be a Senior - EMx 186
In this episode of the Mix the panelists talk about Seniority. They lay out their own personal journeys towards getting a senior title and how they define seniority for themselves - especially how it goes beyond the ability to write code well.
Domain-Driven Design And Elixir - EMx 185
In today’s all-panelist episode, we take a shot at demystify domain-driven design. We discuss several books and some concepts that stand out in those texts. How easy or hard do Elixir and Phoenix make it to apply DDD principles? We give our experience with taking these concepts and putting them into practice, and give some tips and resources for getting started.
How Quiqup Left Elixir and Then Came Back - EMx 183
In this episode the panel talks to Danny Hawkins - CTO at Quiqup - and his team's journey at Quiqup with Elixir. Danny explains how some of the first things Quiqup built were using Elixir and how they then left Elixir behind in favor of TypeScript, only to come back to Elixir.
Combining GraphQL and LiveView with Abul Asar Sayyad - EMX 182
Today we talk with Abul Asar Sayyad, a software engineer from Mumbai, India. Working for ID Plans, a commercial property management solution. We discuss his blog article about combining GraphQL with LiveView for rendering on the front end. We also dive into GraphQL libraries, working with LiveView, and testing.
In this episode Adi and Sascha dig deeper into what it means to consume and build APIs in Elixir and how a RESTful approach compares to choosing GraphQL as your weapon of choice. Along the way they discuss common pitfalls when building APIs (spoiler: one is caching), how to test all of this, and what their personal preferences and experiences are in creating APIs in Elixir.
All Things Concurrency - EMx 179
In this week’s all-panelist episode, Sascha and Allen tackle the topic of concurrency on The Beam. They discuss parallelism, some things to do and some not to do, and some of the questions and issues that arise.
Challenges of Scaling and Choosing the Right Tool with Simon Zelazny - EMx 177
In this episode Simon Zelazny joins the mix to talk about his experience in scaling an Elixir and Phython based service to meet a once-in-a-blue-moon demand scenario. The panel and him discuss the challenges in finding the relevant bottlenecks in non-trivial software systems - and BEAM applications in particular - and what options there are to fix those.
Macros and Busting Boilerplate with Robert Ellen - EMx 176
In this episode the panel talks to Robert Ellen and his experience with using macros in Elixir to get rid of some repetitive boilerplate code. They discuss common pitfalls when first diving into macros and resources which help to avoid these mistakes.
Career Progressions: From Paratrooper to Software Engineer with Teo Diaz - EMx 174
Promises of the Elixir & BEAM - EMx 173
In this all-panelist episode we discuss the promises of the BEAM, and how these hold up in reality. Is the BEAM truly resilient? Allen, Sascha and Adi discuss their experiences using the BEAM, how it compares to other options, and discuss why Elixir isn’t a more prominent technology.
Benchee and Elixir 2.0 with Tobi Pfeiffer - EMx 171
Tobi Pfeiffer, creator of Benchee, joins the show to share his perspective on benchmarking and Elixir integrations. The hosts start by bantering with Tobi about the Elixir community, deeming it less inviting compared to other language communities. Tobi then shares his career progression, how he landed in the Elixir ecosystem, and why he created Benchee. Finally, the panel debates the future for Elixir and share their wish list features for Elixir 2.0.
Building Project Severus with Eric Sullivan - EMx 169
Eric Sullivan joins the mix to discuss Project Severus. He started out with greeting carts and it grew into a way of sharing and keeping up on contact information. He dives into how it works and then into the technical details of how he build it.
This is an interesting discussion about the architecture and design of the system.
Untangling Cloud Infrastructure with Cory o’Daniel - EMx 168
In this episode the panel chats with Cory o’Daniel which is one of the founders of massdriver.cloud where they try to give teams the tools to deploy production-ready, best-practice, and secure cloud infrastructure.
Phoenix LiveView for Frontend Developers with Koen van Gilst - EMx 167
In this episode Koen van Gilst joins the mix to share his experience learning Elixir and LiveView as a mainly frontend developer. The panel then discusses the evolution of LiveView since it’s announcement and how it’s incorporating ideas from the frontend world to simplify building complex UIs, such as components. The episode closes with the panel’s perspective on how we specialize as software developers and that we can learn a lot from other by moving closer together.
Event-Driven Elixir with Thomas Kunnumpurath - EMx 166
In this episode the panel talks to Thomas Kunnumpurath about how to build event-driven systems in Elixir and what tradeoffs different approaches have. The panel probes Thomas - who is a relative newcomer to Elixir but well versed in building event-based systems - on his experience with various event brokers and compares how using an event broker differs from using the BEAMs built-in distribution mechanisms.
Additionally the panel provides some insight into the BEAM’s history and for which context the BEAM’s distribution mechanisms were optimized. At the end Thomas asks the panel for some suggestions on how he can continue his BEAM journey with more advanced learning material.
Learning Erlang with Adolfo Neto - EMx 165
In this episode the panel talks with Adolfo Neto who went out to learn Erlang during last year’s “Advent of Code”. He talks about his experience with the format, compares it against using a platform such as exercism.org - where mentors can give feedback - and how this shaped his perception of the onboarding experience of Erlang.
The panel also discusses Adolfo’s involvement in the Erlang Ecosystem Foundation’s education working group and what they think Erlang - and Elixir - could do better to attract newcomers and make onboarding easier.
Reusable Ecto Code with Mika Kalathil - EMx 164
In this episode the panel talks with Mika Kalathil about how to write Ecto code which makes it straight-forward to reuse and compose. In addition they discuss the advantages of having a streamlined and consistent error handling strategy and how all of that flows together in big, monolithic applications.
Code Quality Tools In Elixir - EMx 163
Today, the gang discusses the best code-quality tools that you NEED in your Elixir tool-belt, plus what to look out for in the Elixir world this year. It's gonna be a good one!
To Umbrella or not to Umbrella - EMx 162
In this episode the panel is picking up an often discussed topic in the Elixir community: umbrella projects and possible alternatives. They go over what an umbrella project actually is and their experiences with them. Based on this they go over the trade-offs you better know about, restrictions which might come back to bite you and how possible alternatives - like a monolithic app, “poncho” projects, or separate services - fare up against umbrella projects.
Full-text Search Powered by Elasticlunr with Rasheed Atanda - EMx 161
In this episode Adi, Allen, and Sascha talk with Rasheed Atanda about his library Elasticlunr which brings the power of full-text search to the BEAM without any external dependencies. They discuss where the library is standing right now, how indexing works in detail, and the benefits and drawbacks of having an external dependencies - such as Elasticsearch - compared to running it inside the same BEAM instance as your application.
In this episode Allen and Sascha talk about OTP and what people usually mean, when they say that it’s more of an intermediate topic. They discuss how work gets fairly scheduled on the BEAM, the start and shutdown behavior of BEAM applications, what supervision trees actually are, and why you probably shouldn’t start a process unsupervised.
When NOT To Use Elixir - EMx 159
In this episode, Allen, Sascha, and Adi discuss the type of apps where Elixir is a no-go, the weak spots you NEED to know to avoid headaches, and what alternatives the panelists recommend for very complex workflows.
Getting Elixir Right with Alex Burlacu - EMx 158
Excited about Elixir but not sure how to get the most out of it? We’ve got you covered. In this episode, the Elixir Mix roundtable sits down with Alex Burlacu, a software developer whose specialities include Elixir, machine learning, and blowing his own mind. They talk about this ONE Elixir feature that surprised Alex, the do’s and don’ts of pattern matching and guards, and why Elixir is making Java shake in its boots.
A personal Brain with Nerves and LiveBook with Dimitris Zorbas
In this episode we talk with Dimitris Zorbas and how he built Brain using Nerves and LiveBook to teach a RaspberryPi to display quotes and highlights from his Kindle. We also talk about how the exciting developments in the Elixir ecosystem intertwine to create experiences bigger than the part of their sums and what part LiveBook will probably play in the future of these developments.
Deploying Elixir with Miguel Cobá - EMx 155
In this episode we talk with Miguel Cobá about his book and article series “Deploying Elixir” which includes various ways to deploy your Elixir applications. We discuss the history of deploying Elixir apps, common pitfalls, and the pros and cons of going with a solution like Kubernetes compared to a “bare” server approach.
Runtime Type Checking with Marten (Wiebe-Marten) Wijnja - EMx 154
In this episode we talk with Marten (Wiebe-Marten) Wijnja about his library TypeCheck which brings runtime type checking to your Elixir project and more. We also talk about the virtues of types in general, which value dialyzer brings, and how to use your type specs to run spec tests, which is a feature of TypeCheck.
Mastering LiveView ft. Sophie DeBenedetto - EMx 153
Sophie DeBenedetto rejoins the mix to discuss the latest developments in LiveView and how to use it to best effect in your Phoenix applications.
She also discusses co-authoring the book "Programming Phoenix LiveView" with Bruce Tate and how the future of the project will drive the future of the book.
Publishing Content with PardallMarkdown ft. Alfred Reinold Baudisch - EMx 152
Alfred Reinold Baudisch joins the mix to discuss his publishing engine written in Elixir called PardallMarkdown.
It's a static site generator solution that builds content from Markdown and can build different types of content targets.
Tracking BTC with GenServer and LiveView ft. Arkadiusz Plichta - Emx 150
Arkadiusz Plichta joins the adventure to discuss how he built a system that tracks BitCoin value using GenServers.
He explains the architecture of his application and the story behind why he built this particular application. Then the panel dives in to help explain how you can use GenServers for ongoing services like this one.
Artificial Intelligence with Elixir using tangram.dev ft. David Yamnitsky - EMx 149
David Yamnitsky joins the mix to discuss tangram.dev and how to use it to add Machine Learning features to your Elixir applications.
He also goes into how it is built and how it provides you with a basic level of AI that integrates nicely with Elixir.
Event Sourcing and CQRS ft. Ben Moss - EMx 148
Ben Moss joins the Mix to discuss Event Sourcing and CQRS in Elixir. Event sourcing is the practice of logging data across logged series of events and then reconstructing data from the events. CQRS is focused on keeping read and write operations from conflicting.
Elixir ConfigCat SDK and mix test.in - EMx 147
Randy Coulman joins the Mix this week to discuss ConfigCat's SDK for Elixir. Since ConfigCat doesn't have an Elixir SDK, they built one internally in their application. Randy discusses how that worked out and how you could do that if your services don't offer Elixir SDK's.
Onboarding and Transitioning into Elixir - EMx 146
The Elixir Mix panel takes the helm to talk about helping onboard and transition new developers onto an Elixir team. They discuss helping developers who may not have an Elixir background. They also advise Chuck on how to make a career transition since he's considering a jump into an Elixir job from his current role as a Rails developer.
How Far Can You Push a GenServer ft. Brian Underwood - EMx 145
Brian Underwood joins the mix to discuss his recent project where he created a game that would push more and more load onto a genserver to see at what point the performance and usability begins to degrade. The discussion includes an exploration of what this means as your application grows.
Pluralsight, Courses, and Elixir the Big Picture ft. AJ Foster - EMx 144
AJ Foster is a developer at Pluralsight. He talks about the course he made for Pluralsight about Elixir and then talks about how Elixir was brought into Pluralsight, both into their catalog of courses as well as into the tech stack for the company.
Building PWA's in Elixir and Phoenix ft. Tej Pochiraju - EMx 142
Tej Pochiraju joins the mix to discuss Progressive Web Apps and how you can support them using Elixir and Phoenix.
Domo and Type Validations ft. Ivan Rublev – EMx 141
Ivan Rublev is the author of the open source library, Domo, which provides type validations for Elixir applications. He discusses the types of validations it does and the tradeoffs you get when you can validate the structure of your structs.
Gleam and Typing ft. Louis Pilfold - EMx 139
Louis Pilfold is the creator of the Gleam programming language. He explains what Gleam is and tells us where it came from.
He then dives into why he wrote a statically typed language for the BEAM, the challenges involved, and its strengths for programming and tooling.
Elixir as a General Purpose Language - EMx 138
This week, the panel gets in and talks about Elixir is not just a specialty language for high concurrency applications with specific performance profiles.
They dive into how Elixir can be used in a variety of cases and how it is set up as a language that allows you to solve the breadth of issues that other popular languages solve without being specialized to them.This week, the panel gets in and talks about Elixir is not just a specialty language for high concurrency applications with specific performance profiles.
They dive into how Elixir can be used in a variety of cases and how it is set up as a language that allows you to solve the breadth of issues that other popular languages solve without being specialized to them.
State Management in Elixir - EMx 137
The panel talks about how to manage state in Elixir applications. Sometimes you can get away with internal structures like gen servers and ETS and other times you have to reach to external systems like redis, mongodb, or postgreSQL.
This episode will walk you through the ins and outs of managing state and what your options are and what the tradeoffs are between those options.
Heartbeat and Gen Servers featuring Luca Peppe - EMx 136
Luca Peppe built a health check and heartbeat system for the systems at work in Elixir. While the implementation uses many basic features from Elixir and Phoenix, the way that it underscores the fundamentals of Elixir is helpful for both the experienced and the new Elixir developer.
Speeding up Elixir Regex replacement at Tubi with Yiming Chen - EMx 135
This week, we talk with Yiming Chen about how drilled into the root cause of some slow requests and how it turned out to be an issue with Elixir's own Regex module. We talk about how they monitor performance at Tubi, what they tried to solve the issue, and how they ssh'ed into production to run more detailed performance monitoring.
Development Setups for Elixir - EMx 134
The panel discusses their development setups, their journeys getting them to where they are now, and the tools they use while they're developing software in Elixir and with Phoenix.
Securely Managing Environment Variables using DotEnvy with Everett Griffiths - EMx 133
Everett Griffiths is the author of the DotEnvy library. He wrote the library to help manage environment variables across multiple applications and environments.
He and the Elixir Mix panel dive into how DotEnvy works and in the ins and outs of managing environment variables securely from one application to another and from one environment to another. Through development and deployment this is often an overlooked step in keeping things secure while also keeping them simple.
Milestones in Elixir's Evolution - EMx 132
The Elixir Mix Panel discussions the history of Elixir and the high points and big changes in the language and ecosystem. They go into the big changes that brought about growth in the ecosystem, ease of use in the language, better features, and much more.