Jason Axelson on the Elixir Language Server

About this Episode

Published January 14, 2021 | Duration: 33:57 | RSS Feed | Direct download
Transcript: English

Welcome back to the Elixir Wizards podcast! In this episode, we will be continuing our conversation on the theme of adopting elixir, and our great guest for today is Jason Axelson! Jason is a back-end developer for a mixed reality studio called Animal Repair Shop and has also made some significant contributions to the Elixir Language Server project. We kick off our conversation with Jason hearing about his programming journey and then dive into the event chat service app he helped build using Elixir while he was working at Hobnob. From there, we talk about some of his aha moments while learning Elixir and some of his favorite features about the language which he is putting to use building out the back end for Animal Repair Shop. Next, we turn our attention to Elixir Language Server and Jason weighs in on the IDE type features it offers, why he got started as a collaborator on the project, and some of their challenges in the field of shared governance. Wrapping up for today, Jason makes a few suggestions for how devs who love Elixir can convince their teams to adopt it as a more mainstream option. Tune in for a great chat on the topic of adopting Elixir!

Key Points From This Episode:

  • An introduction to Jason Axelson and the story of how he got into programming.
  • Some of the books our hosts and guests read as kids and how they relate to programming.
  • How Jason got into Elixir while working on a chat service for events app at Hobnob.
  • Jason’s current project using Elixir to build the back end for Animal Repair Shop.
  • What caused Hobnob to switch to Elixir for their chat app and Jason’s aha moments learning it.
  • The TLDR version of the project that birthed ‘Road to 2 Million WebSocket Connections’.
  • What Jason loves about Elixir — pattern matching, immutability, explicitness.
  • Why Jason and his team at Animal Repair Shop are building their back end in Elixir.
  • The features provided by the Elixir Language Server for giving IDEs Elixir type support.
  • Jason’s involvement with GitHub/ElixirLSP; why he got involved, the project’s architecture, etc.
  • Some of the most challenging aspects of working on ElixirLS for Jason.
  • Jason’s talk on ElixirLS at ElixirConf – its content, doing it virtually, and more.
  • New features in the pipeline for ElixirLS; formatting speed improvements and more.
  • The role that good tooling plays in being able to learn a language more easily.
  • What needs to happen for Elixir to become a more mainstream back end option.
  • Advice from Jason regarding ways to convince your firm to adopt Elixir.

Links Mentioned in Today’s Episode:

SmartLogic — https://smartlogic.io/
Jason Axelson on LinkedIn — https://www.linkedin.com/in/jasonaxelson
Jason Axelson on GitHub — https://github.com/axelson
Jason Axelson on Twitter — https://twitter.com/bostonvaulter?lang=en
Priv_check by Jason Axelson — https://github.com/axelson/priv_check
Jason Axelson ElixirConf ElixirLS Talk — https://2020.elixirconf.com/speakers/126/talk
A Definitive Guide to JavaScript — https://www.oreilly.com/library/view/javascript-the-definitive/9781491952016/
Hobnob — https://hobnob.app/
Elixir for Programmers by Dave Thomas — https://codestool.coding-gnome.com/courses/elixir-for-programmers
Animal Repair Shop — https://www.animalrepairshop.com/about/
‘Road to 2 Million WebSocket Connections’ — https://phoenixframework.org/blog/the-road-to-2-million-websocket-connections
Elixir Getting Started Guide — https://elixir-lang.org/getting-started/introduction.html
GitHub/ElixirLP — https://github.com/elixir-lsp/elixir-ls
Adopting Elixir — https://pragprog.com/titles/tvmelixir/adopting-elixir/
Elixir Slack — https://elixir-slackin.herokuapp.com/
elixir-lsp/elixir-ls: Issue #274 — https://github.com/elixir-lsp/elixir-ls/issues/274
elixir-lsp/elixir-ls: Issue #381 — https://github.com/elixir-lsp/elixir-ls/issues/381

Special Guest: Jason Axelson.

Transcript (English):