From his front porch in Denver, with wind chimes tinkling in the breeze, Travis spoke with me about how he came to Elixir and Phoenix. At our May 20th conference, Travis will deliver his talk “Channels as Controllers (An Exercise in Refactoring).”
Troy Denkinger: Thanks for taking time to talk with me today, Travis. Your bio on the site mentions that you “really, really dig Phoenix” — what is it that makes Phoenix so interesting to you?
Travis Vander Hoop: I work in Ruby. And because I work in Ruby professionally, it means I work in Rails professionally. I love Rails, but it’s imperfect. We’ve taken on a lot of patterns and behaviors that aren’t really extensible.
With Phoenix coming along, and Plug and Ecto, it feels to me like a redemption, of sorts, in the web framework space. Not to shit on Rails, I don’t want to do that, but I think there’s a huge opportunity to establish and reset some of these behavioral ruts we find ourselves in as developers: you do things in a way, and it works, and you stop recognizing it’s also a little bit painful sometimes. That’s why Phoenix, to me, is an opportunity for redemption.
TD: I think that take will resonate with developers coming from other frameworks. How did you come to Elixir?
TVH: You’ll love this one. I came to Elixir because three very talented engineers I was working with were talking about it one day — this would have been summer of 2015. These were people I really respected, so when they spoke so glowingly of it, my ears perked up. But I didn’t have time to learn a new language.
But over time, I just kept hearing people I respected referencing Elixir and Phoenix. I was living in New York City, and some of these same engineers told me about EMPEX  and said we should go — it’s right here in the city. So I took some of my professional development money and bought a ticket.
TD: You were at EMPEX last year?
TVH: Yeah, it was my first real exposure. I enjoyed it. At that point I hadn’t read Programming Elixir or done Elixir koans or any of that. Attending the conference was mostly exploratory, like, what’s the deal with this Elixir thing?
After EMPEX I bought the Dave Thomas book and just worked through that and then went to Orlando for ElixirConf. I’ve been digging deeper and deeper ever since.
TD: At Stride, are you using Elixir in production?
TVH: We get a bunch of professional development time, so I spent two weeks of this time developing a real-time remote retrospective app using Phoenix. At the end, I demoed it at a company meeting and invited other people to spend their time on it. So now, every week during our open source night, we have a group of five or six who consistently work on it. It’s open source. It’s not in production in the truest sense of the word, but it’s online, and we’ve been working on it pretty diligently since late December, early January
TD: Without giving away any spoilers for your talk, what do you mean by “channels as controllers?”
TVH: The idea of a Channel being similar to a controller could start a flame war. There are a lot of similarities between the conventional controllers you think of and Phoenix Channels.
In developing this remote retro app, our Channel started taking on a lot of unrelated responsibilities. So I had to ask: what patterns are out there for keeping your Channels thin?
The patterns are not out there
The really nice thing about open source is that it allows you to explore options and patterns that you think might be intelligent and right, and you can do so without any sort of deadline, because there’s no project manager asking when it’ll get done. I’m going to go into a few ways we can keep our Channels skinny and talk about the pros and cons of these approaches. I won’t claim it’s going to be salvation for anyone building real-time apps on Phoenix, but I hope to inspire people to explore options.
TD: As you know, Stride is a Platinum sponsor. I assure you our proposal selection process is anonymous.
TVH: Thanks for telling me that, I did wonder if there was preferential treatment.
TD: Nope, just real interest in your topics. And when I say “topics,” you submitted three proposals for EMPEX. Any chance you’ll touch on those as part of the talk you’re going to deliver?
TVH: I may touch on Presence, because we are leveraging Presence, but who knows. I will say that — if you haven’t played with Presence — you should. After awhile, developing software can stop being fun; you get tired, jaded. But Presence made my eyes bulge when I got it working. Cool stuff.
TD: Thanks for your time, Travis. We are excited to see you back in New York.
TVH: I look forward to shaking your hand. Peace!
Thanks to Travis Vander Hoop for taking the time to talk with me, and don’t forget to get your tickets to the Empire City Elixir Conference being held on May 20th, 2017 in Manhattan. See you there.