Building an interview scheduler in LiveView: A newcomer's journey from despair to delight

Karoline Lende


Have you dabbled with Phoenix LiveView, but sometimes hit roadblocks that made you think it couldn’t do what you wanted? How come Chris McCord makes it look so easy, and when you try it yourself it’s so hard? As a new Elixir dev working on my first LiveView feature, that’s how I felt.

The first LiveView feature I built was an interview availability scheduler. That is, a form where a user can add, delete and edit timeslots for which hiring managers are available for interviews. It’s been done many times before, right? Shouldn’t be that hard, right?

In this session I will talk about the problems I faced building this feature, and what my team and I did to overcome them. It took multiple PRs, fruitless experimentation with JS hooks, and a team-wide hackathon - but we got there in the end! These are my key takeaways for those who want to take advantage of all the great features LiveView has to offer, and build some really cool and complex stuff.

Talk objectives:

  • Present an interesting, real-life use case of LiveView, as experienced by a relatively new Elixir developer
  • Provide tips on how to handle issues like high latency, nested associations, and dynamically updating dropdown options based on user inputs
  • Spark excitement and encourage debate around the pros and cons of LiveView
  • When I first started working on this feature, I felt that the LiveView docs really lacked some practical examples. So that is what I aim to provide in this talk

Target audience:

  • Developers who either have used or are interested in using Phoenix LiveView, and like to learn by seeing practical examples.

Introductory and overview

Case-study, Learning, LiveView