ElixirConf 2024 in Lisbon, Portugal

Apr 25, 2024

ElixirConf 2024

My journal-type notes from the conference and Lisbon. They’re not trying to be extensive, nor it’s a strict review of the conference.

Pasted_image_20240425075338.png

Day 0 Meetup

Elixir Meetup at Bounce.

There were 2 talks:

  1. Building a MIDI Sequencer with Elixir
  2. Enhancing API Security with Elixir: A Case Study from Helvetia Insurance

You can read more about them on meet-up’s page. I believe the first talk was recorded, unsure about the second one. Both talks were really interesting and it was great to get to know some people in a smaller crowd before the conference! I think I met all people that flew in from Switzerland, 5 or 6 people? That was surprising! :)

Pasted_image_20240425122937.png

Day 1

Pasted_image_20240425123026.png

Talk Keynote: Ship it! Nx, Scholar, Explorer, Livebook

From better documentation to traditional machine learning to generative AI, the Nx ecosystem is changing where Elixir stands as a programming language. But for folks who aren’t working in machine learning, it may not be immediately obvious what it’s all for. And for those who are using other ML ecosystems, it may not be immediately obvious how Elixir’s ecosystem stacks up. This talk aims to help on both of those fronts.

The Nx ecosystem (Livebook, Nx, Bumblebee, Axon, Explorer, Scholar) is production-ready. At Amplified, we’re using all of these tools to build B2B SaaS. In this talk, I’ll give a deep-dive introduction to the ecosystem, showing what you use the various libraries for and how to leverage them to solve real-world problems. Using examples from production systems, we’ll cover the pragmatic nitty-gritty as well as the immense opportunities that these tools open up, from the practicalities of deployment, observability, and performance to the possibilities of new features and operational efficiency.

Must-watch if you’re still wondering about doing AI/ML in Elixir! There was also a talk about this in 2022 - The Future AI Stack but at this point I’d start with the 2024 talk and then maybe watch 2022 talk.

My intuition was that Elixir is ready for data science and AI and it was great to hear “validation” from people with much more experience in this area and proper production deployment. I’ll be sure to share this with any data-science people when the recording is available.

LiveView Native

LiveView Native extends the successful LiveView design pattern to every device with a screen. Learn how to build your first LiveView Native application and learn about how LVN built applications can be built in 40% less time. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod exercitation.

I’ve somewhat mixed feelings about the talk. It seems like a big update but also not so big update. It’s nice to see the growth since the first time it was announced and I cannot wait to build some android apps in Elixir but… but… it’s not there yet. Project is open source so as usual - if this area is of your interest and you have some free time, definitely take a look at the repo and help out!

Migrating to Elixir made easy with Ash

Our journey into Elixir started last year. We chose Ash as an integral part of our stack. The talk will showcase the features of Ash we used to create our Graphql Backend, as well as the escape hatches we used to get all we needed done. It should also highlight what we learned about Ash along the way and the more advanced features like writing your own extensions to centralize common functionality.

Pasted_image_20240425080446.png

Great tips on how Ash speeds up development, along with the story of a small company’s transition to using Ash on the backend and exposing GraphQL API to the frontend. All the examples provided were already using upcoming Ash 3.0 and I’m sure I’m giving it a try after the release!

My understanding is that an updated version of this talk is available if you don’t want to wait for the recording.

LiveView: Start-ups’ new secret weapon

What is it that makes some start-ups fail and others flourish? There are multiple variables when answering this question, but a key ingredient is always speed – of delivering, of adapting and of finding product-market fit.

Elixir has been focused on productivity from the start, from great tooling to comprehensive documentation. Currently with LiveView, this can now be extended to the full-stack, truly allowing the merge of front and back-end developer teams.

Sona (https://www.getsona.com/) is a ~2 year-old start-up that uses LiveView from its dawn. After joining, I got to see my first BIG LiveView application.

While daunting at first, the whole LiveView programming model, tooling, and full-stack ownership allowed me to be productive from the outset.

In this talk we’ll see how LiveView enables us to build complex features with great UX, and in a shorter amount of time than traditional choices. Lastly, we’ll explore some tips on how a new-joiner can navigate a large LiveView project.

Complex UI view: schedule with working slots; forms in modals, validations, dynamic filters and very friendly UX - guiding user toward proper workflow. All built in LiveView! Pasted_image_20240425081000.png Talk 100% reflects my experience of working with LiveView over the last 3-4 years - speeds up development and we can build complex production apps with it. We don’t need SPA for everything, that’s also why some time ago I was exploring a mix of React and LiveView.

Ash: The Story of a Function

In this talk, we explore how a function evolves over time, and the kinds of issues that you face as you add behavior to your applications. In Phoenix, this most commonly presents as writing “contexts”, which contain the functions required for building your application and business logic. Ultimately, Phoenix contexts do not have opinions on how you structure your application, instead delegating responsibility for designing and organizing your application to the developer. This is where Ash comes in. Ash provides the structures for building, organizing and evolving your application over time to avoid the common pitfalls faced by developers every day. In this way, Ash acts as the missing domain layer for your Phoenix application (or any application). We’ll go over these structures and how they address the issues inherent in composing applications out of imperative code.

Must-watch! I may not be sold on Ash just yet but I really loved the split between imperative and declarative and how we can make some things simpler. Pasted_image_20240425113845.png

There was also a great question and answer at the end how Ash and its DSL is built on a very stable foundation and if someone had bad experience with DSLs in Ruby, they should hold off with judging Ash DSL in Elixir.

Another point that was made is that Ash is not trying to eat/replace your apps - it works with Ecto, it works with Phoenix, and it works with other libraries. You can always just write normal Elixir. Ash doesn’t “force” you into a framework like Rails.

I also asked Barnabas Jovanovics, author of “Migrating to Elixir made easy with Ash” talk, about Ash DSL and error stack traces. Answer: They are perfectly helpful and usable, macros are very thin and it all works with LSP!

Scaling Oban Application

Perhaps you’ve heard the common refrain that relational database backed queues don’t scale. Well, times have changed, databases have improved, and for Elixir the BEAM gives us a leg up. Every day real-world applications use Oban to process tens-of-millions of a jobs a day across clusters of all sizes. Come learn about the common pain-points impacting the growth of Oban applications and how you can avoid them. Together, we’ll identify the underlying causes of common problems and explore step-by-step strategies to mitigate them (spoiler, it’s bloat). Armed with a better understanding of how Oban operates at scale, you can prevent common issues before you encounter them and plan for the future as your application booms.

Tips from the talk are will be released as guide, but I’d still recommend watching the video when it’s released because of the great humor and energy of Parker and Shannon. Must watch if you’re using Oban or even if you’re not using Oban but some other write-heavy system based on Postgres, many tips are Postgres, not Oban specific!

Lighting talks

  1. phoenix_playground - I was aware of it from Twitter but Wojtek presented it in an absolutely amazing and very funny way. phoenix_playground, PHP, enough said.
  2. Elixir 1.17 is going to be, once again, a great release!
    1. https://mastodon.social/@arathunku/112231081056537469
    2. https://mastodon.social/@[email protected]/112275777405065198
  3. Short version of meet-up’s “Building a MIDI Sequencer with Elixir” talk
  4. I saw someone preparing a lighting talk during the day and I believe he wasn’t aware that there’s a sign-up list for the lighting talks and couldn’t present?

Day 2

We started a day with a group sightseeing run, organised by Erlang Solutions, it was about 7km. There were about XXX people on the run and it was a blast! Great conversations and mix of people. At 7:30 the temperature was just perfect to see the city before the tourists roll-out into the streets.

Pasted_image_20240425121251.png Strava entry

Pasted_image_20240425082529.png

Keynote: Rethinking Serverless with FLAME

Imagine if you could auto scale by wrapping any existing app code in a function and have that block of code run in a temporary copy of the app. No extra complexity. No FaaS nonsense.

If you don’t know what FLAME stands for - watch it or read about it. Chris’ energy and excitement was infectious and although I was already aware of many things mentioned in the talk I still enjoyed it, a lot. BEAM makes a lot of things simple.

AI generated video for intro was funny, this, the only, time.

Pasted_image_20240425082723.png #TIL about AWS Hosting WordPress on AWS reference architecture, it is referenced in the talk. If you like what you see on this image, you may not be the target audience for the talk :wink:

Retrofitting a car and running it with Elixir

Extending a cars’ lifespan is not an easy feat. We need to ask ourselves what makes people enjoy a car today and what technology it should include. This talk shares the current state of our journey in retrofitting a car and building a new and open vehicle control system (OVCS), redesigning the engine controller and infotainment systems with off-the-shelf components running with Elixir.

We will explain how we reverse-engineered the proprietary CAN bus messages from the car, how we created our own Raspberry Pi CAN bus hats and how we used Nerves to create firmware for the new electric engine controller and infotainment systems.

Must-watch talk and for me one of the most interesting one for me! After the talk I learned they have been working on it full time for only 4 months and they have made a lot of progress given the reverse engineering and safety required. I keep fingers crossed for their success and getting this certified at some point in the future, help getting old cars electrified!

Keynote: Gang of none? Design patterns in Elixir

In this talk, Jose’s Valim will explore the classical Gang of Four (Design Patterns) book and answer the question if they are applicable to Elixir programs or not. We will also talk about objects, how we can understand and deconstruct them from Elixir’s perspective, and how such deconstruction impacts the design of large systems.

Must-watch! Jose took patterns from Design Patterns: Elements of Reusable Object-Oriented Software (talk about getting nice Wikipedia URL) and gave his take on the patterns in the book and how some of them may or may not work in Elixir. I learned about a new book that sounds something I’d like to read: Concepts, Techniques, and Models of Computer Programming

AI video for intro was, this time, not funny at all for me. The joke worked the first time on the first keynote but if you repeat the same joke, the same day, in the same style, it’s doesn’t work that well. Talk rating: :), intro rating: :(

Last note from day 2: ElixirConf 2025 will be at 15-16 May 2025, in Krakow, Poland

Hallway track

  • Lots of companies with Ruby on Rails backend, React frontend, looking for a way to finally use more Elixir! I’m not alone!
  • Many, not so small companies with Elixir teams, not hiring. Reasons:
    • Team(s) is/are very productive
    • Hiring budget/freezes
    • LiveView and LiveBook speed up SDLC
  • People came to ElixirConf EU from all over the world - Brazil, US, Switzerland, Germany, Poland, France, UK, Slovakia, Japan, New Zealand and many many more!
  • Few conversations still started with “IF you’re using Elixir on production/at $WORK”, not “how”.
  • On Whova “job section” app, actively and openly 6x more people look for job opportunities than there are job opening. Based on the conversations - a lot of more people are looking to make the switch to be able to use only Elixir.

Organization

Great

Audio, visual setup worked flawlessly! I’ve not seen any big technical problem that wasn’t immediately solved and I’m sure the recordings will be great.

I was skeptical of Whova application everywhere but in the end I finally got convinced to it. The gamification and popups are absolutely dreadful but the agenda overview, talks and event organisation is great

Things run on time, like in clock, if talk started on 11:10, it started on 11:10 - 11:11 pronto without delay and ended to the minute.

Not so great

As a hobbyist changelog reader, as in… I really enjoy reading changelogs and pull requests, many of the talks were not as “useful” as I hoped for. I’m sure there were extremely useful for other people that maybe aren’t so vigilant about staying on top of news. I wish more talks were about “production” experience, using Elixir in anger, maybe failure stories, designs. Less about “updates” from owners/maintainers of the libraries.

Bad

I’d not have imagined a situation when there’s no coffee/tea/water accessible at ALL TIMES. Now I don’t need to imagine. It wasn’t even a good coffee, just Nespresso machines, but they still were often broken/down. What’s up with that?! Having to leave the hotel to go to nearby cafe to grab a coffee and a small snack sucks.

I felt like almost all talks were too short, often making the speakers nervous (very noticeable in some cases), like someone would switch off their microphone if they went over their 30 min slot. It led very often cutting out any time for questions, I also believe the questions (from Whova application, some people asked questions there) are not later available in any form nor they’re part of the recording. I think 45 minute slots would be better, giving this additional time for speakers to maybe go a big deeper into the topic, leave time for questions. If there wouldn’t be any questions - that’s great too, we’ll just chat a bit more in the hallway, that’s fine.

Lots of things were organised and available in Whova application, why did the conference need people standing after the talks with tablet to rate the talks and not doing this via Whova application? We really shouldn’t need volunteers for that, it can be done via an app or just website.

Lisbon

That was my first time in Lisbon and on Wednesday I did a 30 km run to see the city as much as possible. I enjoyed the architecture and a ton of greenery and parks!

Pasted_image_20240425090031.png

Drinking water is accessible all over the city (or at least along my route?) saved my run, I’d 100% run of of water otherwise due to temperature.

Small cafes and restaurants - lots of hidden gems, almost unfindable on Google but with delicious Pastel de nata and coffee. My friend took me to one of the best pizzeria I ever ate in very shady alley with homeless people in tents but really - great pizza and tiramisu.

Pasted_image_20240425090317.png

What I didn’t enjoy abs-so-fucking-lately: why drivers are honking so fucking much, why there are VERY loud 20y cars and motorbikes. I saw a lot of (e)bikes - GREAT, but there’s still ton of noise and cars everywhere. It’s 100% not healthy and many times I’ve taken metro when in Germany/Netherlands I’d have walked just to escape the noise and sniffing fumes from cars are the red light. I’d like visit Lisbon again when they ban cars from city centre or everything is electrified.

Some other nice photos at the end:

Pasted_image_20240425075434.png Pasted_image_20240425075450.png Pasted_image_20240425122839.png Pasted_image_20240425075536.png

Pasted_image_20240425122746.png Pasted_image_20240425122732.png

Happy doggo when I came back

Pasted_image_20240425122808.png