axelson

axelson

Scenic Core Team

13) ElixirConf US 2018 – We're Just Getting Started - Our Three Years with Elixir – Maciej Kaszubowski

ElixirConf US 2018 – We’re Just Getting Started - Our Three Years with Elixir – Maciej Kaszubowski (@mkaszubowski)

The story begins on August 12th, 2015, not even one year after the Elixir 1.0 release. Phoenix is on version 0.16.1, Ecto callbacks haven’t been deprecated yet. My current boss pushes our first Elixir commit to Gitlab.

ElixirConf is happening on September 4th, 2018. Three years and 60 thousand lines of code later, the project is still alive, serving one million registered users. We’re now on Elixir 1.6 and Phoenix 1.3. Ecto callbacks are long gone and only few of us can remember them.

A lot has changed. We’ve made a lot of mistakes. This is a success story, though. Running the same project for such a long time gave us a unique opportunity to observe how the language changed and became really mature. This talk will try to share some of the lessons learned during this time and insights on how changes in the ecosystem affected our codebase.

Audience: Beginner, Intermediate
Topics: production

All talks are available in the ElixirConf US 2018 Talks List or via the elixirconf2018 tag

Most Liked

AstonJ

AstonJ

Great talk Maciej! I was really interested in hearing how Elixir’s changed from someone who has been using it in production for several years. This was my favourite slide from this talk:

x1000000000000!

I never really felt like a Rails developer while using Rails, but more like a Rails user. Coming over to Elixir you start to learn about how you might want to architect your app with processes, supervisors, whether to persist data, state etc. It’s completely changed the way I think about building apps - before I would plan an app based on models and their r/ships, now, I’m thinking about processes, state, and everything else we’re exposed to thanks to Elixir and Erlang.

mkaszubowski

mkaszubowski

Thank you, I’m glad you feel the same way :slight_smile: This was actually the turning point for me when preparing this talk, when I realised that most of the problems we’ve been solving for the past three years are not elixir problems, but problems related to our domain or computer science in general.

This is really liberating when compared with other technologies, because I’m not longer thinking How should I do X in Elixir?, but rather How should I do X?. This means that I’m able to explore possible solutions across different languages and paradigms and I’m not constraint by any one tool.

I’m really happy that I see this trend across the entire community. A lot of people are exploring different technologies and ideas. Type systems, property based testing, Domain Driven Design, distributed systems are only a few examples of things that are extremely valuable (even if not used in day-to-day work), and none of them is really tied with Elixir/Erlang.

Where Next?

Popular in Talks Top

axelson
ElixirConf 2017 - Live APIs with GraphQL Subscriptions - @bruce and @benwilson512 APIs have gone live with G...
New
axelson
ElixirConf 2017 - Dr. Erlang/OTP or: How I Learned to Stop Worrying and Love :disk_log - Eric Entin Even aft...
New
axelson
by @chrismccord My summary: Chris gives an update and copious demos of Phoenix LiveView which is now released on hex.pm. Demos on: ...
New
axelson
ElixirConf 2017 - Streaming Video with Elixir - @johnwahba Running a video stream is challenging. You can’t ...
New
axelson
by @takasehideki Can you imagine that your Elixir code will be executed as a hardware circuit on an FPGA? The FPGA (Field-Programmable...
New
axelson
ElixirConf US 2018 – Building Video Chat with Elixir & Phoenix – Anil Wadghule (@anildigital) In this talk, I will s...
New
Lawrence_elixir
@keathley - Senior Engineer Bleacher Report and Elixir Outlaws presenter Talk: Building Resilient Systems with Stacking Talk in three w...
New
axelson
ElixirConf 2017 - Elixir Power Tracing - Gabi Zuniga Tracing is a technique for tracking events during a pro...
New
derpycoder
QUIC protocol support coming to BEAM. As of now, I am using Caddy in front of Phoenix server to experience HTTP/3 goodness.
New
AstonJ
Day 1 ElixirConf 2017 - Day 1 Keynote - Justin Schneck (Discussion thread) ElixirConf 2017 - My Journey from Go to Elixir - Veronica L...
New

Other popular topics Top

josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
yurko
Here are few pieces of (common) Linux knowledge that we use for reasonably small one server apps. We use Ubuntu but this should work for ...
New
srinivasu
How to handle excepions in elixir? Suppose i have A, B, C ,D, E modules. and each module has get() function. A.get() method will call th...
New
William
I would like to know that is there any online source for learning Phoenix Framework for building E-Commerce Store? Any advantage on build...
New
itssasanka
Hi all, Trying to get some more clarity over utc_datetime and naive_datetime for Ecto: https://hexdocs.pm/ecto/Ecto.Schema.html#module-...
New
AstonJ
You’re a programmer, so you don’t need spoon feeding with the conventional drivel about “this is an integer.” No. You need to know what’s...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
beno
I will often find my self writing things similar to: case some_value do nil -> something() "" -> something() _ -> someth...
New

We're in Beta

About us Mission Statement