John Mertens on Adopting Elixir at Change.org

About this Episode

Published March 11, 2021 | Duration: 43:27 | RSS Feed | Direct download
Transcript: English

Many organizations take an incremental approach when adopting Elixir, preferring to pick up its nuances by using it to work on non-essential projects. But not Change.org. Today we speak with Change.org Director of Engineering John Mertens about how his company adopted Elixir to create a business-critical app that handles over a billion emails per month. From building webpages on GeoCities to working as an IT intern at an Iowan prison, we open our conversation by exploring John’s coding background. After chatting about his first Elixir project, we dive into Change.org’s process in adopting Elixir. As John shares his insights into successfully integrating Elixir into your tech stack, he highlights the benefits provided by the language. Later, John discusses the advantages of event-driven architecture and how this structure makes it easier for teams to access and analyze data, while also making it easier to add product features. We wrap up this episode with John highlighting his user-centered approach to coding. Join us to hear John’s lessons on making the leap and adopting Elixir in large organizations.

Key Points From This Episode:

  • John shares details about his role at Change.org.
  • The story behind John and Change’s Elixir adoption.
  • Hear about John’s coding journey.
  • How John made an Elixir app based on spotting San Francisco tram carriages.
  • Insights into the massive project that Change built using Elixir.
  • Why Elixir is taking over Change’s back-end tech stack.
  • Using Elixir to build reliable event-based architecture.
  • Exploring event-driven architecture from the perspective of Change’s system.
  • John makes a compelling case for event-driven architecture.
  • How Change hires for Elixir roles.
  • Change’s process in training their staff to code in Elixir.
  • John talks about his user-centred approach to design.

Links Mentioned in Today’s Episode:

SmartLogic — https://smartlogic.io/
Elixir Wizards Discord — https://smr.tl/wizards-discord
Elixir Wizards Email — [email protected]
John Mertens — https://www.mertonium.com/about
John Mertens on Twitter — https://twitter.com/mertonium
John Mertens on GitHub — https://github.com/mertonium
Change.org — https://www.change.org/
Change.org Careers — https://careers.change.org/
José Valim — https://twitter.com/josevalim
GenStage and Flow - José Valim (Lambda Days 2017) — https://www.youtube.com/watch?v=XPlXNUXmcgE
Dashbit — https://dashbit.co/
Hacker News — https://thehackernews.com/
Paul Graham — https://twitter.com/paulg/
Nim — https://nim-lang.org/
Pony — https://www.ponylang.io/
Grax.io — https://www.grax.com/
Logo — https://el.media.mit.edu/logo-foundation/what_is_logo/logo_programming.html
Nerves — https://www.nerves-project.org/
Flow — https://hexdocs.pm/flow/Flow.html
ElixirConf EU — https://www.elixirconf.eu/
Martin Fowler — https://martinfowler.com/
‘The Log: What every software engineer should know about real-time data's unifying abstraction’ — https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying
Salesforce Marketing Cloud — https://www.salesforce.com/eu/products/marketing-cloud/overview/
‘Delivering social change with Elixir at Change.org’ — https://elixir-lang.org/blog/2020/10/27/delivering-social-change-with-elixir-at-change.org/
Code for America — https://www.codeforamerica.org/

Special Guests: John Mertens and Sundi Myint.