EMx 125: Testing Phoenix Controller Plugs with Adi Iyengar
Adi Iyengar walks Eric and Chuck through the process of testing your plugs in your Phoenix Controllers. He leads out by explaining how most people approach testing plugs and some of the inherent problems and inefficiencies with the approach and then explains the way that he approaches testing them and testing Phoenix apps in general.
Engaging with the Elixir Community - EMx 230
Adi and Allen join this week's panelist episode. They dive into the vibrant Elixir community and explore the importance of open communication and feedback. From the struggles of casual conversation to the excitement of discussing technology, they uncover some interesting stories.
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!
Being an Elixir Engineer with Andrea Leopardi - EMx 225
Andrea Leopardi is a Software engineer, author, speaker, and member of the Elixir core team. He begins by sharing his experiences as an Elixir core team member, software engineer and how the Elixir core team manages their projects. Moreover, he talks about his soon-to-be-released book, what it is about, and the motivation for his book.
The Elixir System with Josh Adams - EMx 224
Josh Adams is a Software Engineer at GridPoint. He joins the show to talk about his experience in Elixir. He begins by explaining the reason why prefers the Elixir language compared to the other frameworks. He also shares his journey of transitioning from Ruby to Elixir.
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.
Building Your Web Framework in Elixir with Adi Iyengar - EMx 222
Adi Iyengar is an Engineering Leader, Startup Advisor, Author, and Elixir Mix Podcast Host. He joins Allen to talk about his book, "Build Your Own Web Framework in Elixir". He begins by talking about the process of publishing a book, how he wrote his book and gives some tips to aspiring authors.
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.
Career Growth Opportunities- EMx 216
Charles Max Wood returns to Elixir Mix to discuss career growth opportunities. They dive into coaching and mentoring developers who feel like they're not moving forward in their careers or profession. They offer some advice on how to alter the course of your career and how to build your skills.
What's Haystack with Philip Brown? - EMx 215
Philip Brown is an Elixir software engineer, and entrepreneur with over 15 years of experience building and scaling internet software applications and services. He joins the show to talk about "haystack". It is a simple, extendable full-text search engine written in Elixir. He begins by sharing his motivation to create his project and his purpose for building it.
Learning about Owl with Artur Plysyuk - EMx 213
Artur Plysyuk is a Software Engineer at proSapient. He joins the show alongside Allen to talk about, "Owl: A toolkit for writing command-line user interfaces". He begins by introducing "Owl" and what motivated him to write the library.
Genetic Algorithms With José Diogo Viana - EMx 211
José Diogo Viana is a Full Stack Engineer. He joins the show to talk about, Genetic Algorithms to optimize an Asset Portfolio and his company, "Finiam". He begins by discussing his company, what clients they cater and the services they provide. Being a Fintech company, he also tackles their projects in Finiam and what frameworks they usually use.
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.
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.
Templated GitHub Pages With EEX And External Data Sources - EMx 202
Josep Lluis Giralt D’Lacoste is a software engineer passionate about technology in general. He is the Tech Lead at Eebz. He joins the show with Allen and Adi to talk about his GitHub repository about the summary of his Strava stats. Strava is an American website that tracks physical activity and integrates social network features.
Embedded Software in Elixir With Amos King - EMx 201
Amos King is the CEO of Binary Noggin. He is also one of the hosts of the show Elixir Outlaws. He joins Adi and Allen to talk about his article, “Building Embedded Systems in the Modern Era”. Embedded systems is a microprocessor-based computer hardware and software system that is intended to carry out a specific function, either on their own or as a component of a larger system. He goes into detail on how and why he came up with the topic for his article.
Deploying Phoenix Applications With Herman Verschooten - EMx 200
Herman verschooten is an Elixir and Elm enthusiast and was once a Ruby Developer. He is also the developer of the GratWiFi hotspot system. He joins Elixir Mix on the show’s 200th episode together with Adi and Allen to talk about his article, " How I deploy my Phoenix apps". He also discusses how he manages and runs all of his applications. Moreover, Herman tackles the reason behind using systemd to run the apps.
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.
2022 Frameworks - EMx 196
Adi and Allen join the show as they talk about different frameworks you can use for your Application. They also share their thoughts and experiences with the frameworks that they have used and are currently using.
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.
How to Implement a Disk Cache Plugin for Elixir's Req HTTP Client with Thibaut Barrère - EMX 191
Optimizing the Elixir CI Pipeline with Szymon Soppa - EMx 188
With day-to-day development, it is vital to ensure our workflows are optimized and that developer time is utilized efficiently. Today on the show, Szymon Soppa shares about what we should do with our Elixir CIs to ensure this optimization and developer efficiencies are maximized for production.
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.
Getting Hired as an Elixir programmer with Adi Iyengar - EMx 184
Today Adi, one of our hosts and the hiring manager at Elixir, talks about the intricacies of applying for a job, and what companies to search out. We talk about the expectations for the applicant, and how to prepare. We also talk about what you can look for the employer to provide before spending too much of your time in the interview process. Walking through various interview processes, we learn what things can help you land the job you want.
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.
Effective Software Documentation with Everett Griffiths - EMx 180
Bad documentation wastes time, costs real money, and makes developers unproductive. Documentation might be bad because it is flat-out wrong (typos, references to an older version, etc.), but more often documentation is bad when it fails to tell us what we need to know. Don’t let all your hard work go to waste because you failed to communicate what your software is or how to use it. Today on the show, Everett Griffiths shares his insights on how to approach documentation simply and effectively.
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.
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.
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.
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.
The Elixir Job Market and Getting Hired - EMx 151
Adi recently found a new job and Chuck has been going through the interview process. So, the panel hop on the show to discuss the current job market, what they've experienced as job candidates and provide ideas and feedback for both hiring companies and job candidates.
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.
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.
Miss Elixir ft. Fernando Hamasaki – EMx 143
Fernando Hamasaki joins the mix to discuss Miss Elixir, where it came from, and what it is.
How to Become a Top End Developer - EMx 140
Charles Max Wood takes the lead this week. He and Adi Iyengar discuss what Top End Devs are and what people should be doing to become Top End Devs.
They start out discussing the default trajectory of a developer's career and then talk about how to get boosts off that line and into higher levels of achievement and fulfillment.
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.
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.
Client Side Drag and Drop with LiveView + Learning Elixir and Phoenix with Kelsey Leftwich - EMx 130
Kelsey Leftwich explains how Phoenix LiveView made it possible to build a simple drag and drop component without the need for a large front-end framework like React and clunky back-end API setup to make it work.
Composing Queries for Ecto in Phoenix with Szymon Soppa - EMx 129
Szymon Soppa joins the mix to talk about composing queries for your Ecto models in Phoenix. He talks about how Ecto typically thinks about its queries and how you can build your own queries and dives deep with Adi on how you can arrange the queries to get the characteristics in both data and performance that you're looking for from your database.
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.