Travis has been building with Elixir since 2019, primarily at a small agency in Salt Lake City. As of 2026 he primarily works in Elixir and Ruby but enjoys reading about Rust and Go. He lives in Ontario, Canada with his wife, two daughters and two cat children. He likes to climb rocks and spend time with the creatures mentioned above.
Working for an agency that once primarily worked in Ruby I’ve been able to examine two Elixir monoliths built two years apart (by the same developer). This has given me some fascinating insights into a long-time Rubyist’s transition into Elixir. The baggage Ruby developers bring with them when they come to Elixir, how it shapes a code base, and ultimately how it can be avoided for newcomers.
From working in both codebases I have seen the dangers of what I call “rebuilding Rails”. In the quest to recreate the familiar feel of Ruby and Rails, it’s easy create bad patterns, overuse macros, create unnecessary convenience functions and attempt to create an object-oriented language inside a functional one. I will be diving into patterns I discovered, eventually refactoring many of them (sometimes painfully).
How can we soften the landing for new Ruby developers? How can these patterns, once adopted, be refactored and adjusted to a more idiomatic Elixir approach? In doing so I think we can make the language more welcoming, set projects and developers up for long term success and create robust projects.
Key Takeaways: