Ode to RailsConf

Joe Leo

David Hill Season 1 Episode 49

Send us a text

Joe Leo shares his journey as a Ruby developer and how the Ruby community's welcoming and collaborative spirit drew him back after working with other languages. He introduces Phoenix, Def Method's innovative "closed loop" AI platform that autonomously tests and supports Rails applications.

• Joe founded Def Method, naming the company with help from his wife in 2014
• Despite using Ruby early in his career, Joe had never attended RailsConf before 
• Joe began with C++, Java, then discovered Ruby through a consulting project
• Ruby conferences stand apart from others for their community-focused nature
• Phoenix works autonomously to generate tests based on application code
• The AI system examines commits, identifies vulnerabilities, and regenerates tests as code changes
• GoRuCo (Gotham Ruby Conference) had its final run in 2019
• Artificial Ruby meetup in NYC has become a vibrant hub for Ruby developers
• Joe will be presenting "Tales from the Brink" at the final RailsConf
• The joy Ruby brings developers can't be measured but significantly impacts development quality

Use code ODE2RAILSCONF at checkout to get 10% off at GoRails.com.


David Hill:

Shout out to GoRails for sponsoring Ode to RailsConf. If you or your team wants to learn the latest Ruby on Rails features Hotwire Ruby and more check out GoRailscom. Use code ODE2RAILSCONF at checkout to get 10% off. You're listening to the Ode to RailsConf podcast, where we reminisce about RailsConf over the years. I'm your host, david Hill, and joining me today is Joe Leo. Joe, would you introduce yourself to our listeners?

Joe Leo:

I'm Joe Leo, I run a software company called Def Method. We build software applications, we pour love into our applications until those applications love you back, and we recently launched Phoenix, which is an AI closed loop platform that tests and supports your Rails applications.

David Hill:

Nice. It's been a little while since I started seeing some of your content come up on LinkedIn and I saw the company name and I was like, oh, that's such a good company name. I wish I had thought of that.

Joe Leo:

Thank you. In fact, it was a non-engineer that thought of it. My wife actually thought of it and it was way back in 2014 and she liked deaf because she'd liked the throwback to like seventies, eighties, most deaf, yeah, yeah, like most deaf, yeah. And what I get most often is people say, oh, okay, is that in relation to deaf jam or deaf leopard, depending on their musical preference? Right? I always say yes because I'll take either one, both massively successful.

David Hill:

That's awesome. So let's start. Let's dive into RailsConf first. You've never attended RailsConf before.

Joe Leo:

I've never attended RailsConf before, and if you'd like to end the episode now, that's fine with me.

David Hill:

No, because you're going to this next one, right, the final one.

Joe Leo:

I am going to the final RailsConf. I couldn't be more excited. But I never went back. When I was coding full time, I used to go to GoRuco, which is the Gotham Ruby conference here in New York, and I really thought that GoRuco was the pinnacle of software development conferences. Not having gone to like that many, I just decided that this was the best one, and it was fantastic and really it was because all of my heroes were there in New York got really popular.

Joe Leo:

People started coming from all over the country and from other parts of the world, and it was this fantastic experience. And I did go to some other conferences Some of them were Ruby and some of them were more broad based and I started to just get a little bit jaded about conferences in general. And I started to just get a little bit jaded about conferences in general and I started to think like, oh, railsconf, isn't this just going to be like another talk about a package or talk about the latest release of Rails? So I kind of dismissed it a little bit without really trying it. What do they say? That's contempt prior to investigation.

Joe Leo:

And that really was my loss, because what happened is that I just assumed, because I was writing Ruby in the relative early days of my career, that I'd just be writing Ruby forever. And that's not how it happened. And I got tossed around to different companies and different companies made different choices about languages and frameworks and before I knew it, I was writing in different languages, different frameworks, which were okay and I liked it and I would try to go to those conferences and I'd be like, oh, now I understand why everybody loves Ruby and Rails, especially their conferences and their communities. It's so different, it's really so different, david.

David Hill:

I did not experience any tech conferences before I came into the Ruby community, so I don't have that perspective on it to appreciate the difference. I guess this is all I've known. This is great, yeah. But yeah, my first professional programming job, the first time I got paid to program, was for PHP. So I did some PHP and I did some Java and then I stumbled into Ruby. I fell into it completely on accident and I was just like oh, I like this.

Joe Leo:

So much better. Yeah, I've heard that story before. It makes a lot of sense to me. I studied C++ in college. I got my first full-time developer job. Well, at first I was doing visual C++ some crazy stuff in a hospital, and then I got a full, an actual developer job. I was coding in Java, and that project ended. It was consulting.

Joe Leo:

That project ended and I was sitting on the bench for a couple of weeks and then my boss came to me and said hey, you're going to go out to New Jersey, you're going to work at this other company and you're going to go with these three guys they were all geniuses to me, they were so much smarter and you're going to write in Ruby, and you're going to write in Ruby. And I was like okay, I don't know Ruby, though, and my boss said that's all right, we're going to give you a book, and that was it, and I would take the train out to New Jersey and I would read this book. That book was probably the Ruby way, and soon after that it was the well-grounded Rubius, which was David Black's book, which we all loved and read together on the train, and I started to learn it that way. So I really had these formative experiences as a developer and so then, going to conferences, I was like, oh, okay, this is what developer conferences are like, but they're not. They're incredibly great.

Joe Leo:

So a few years later I had a different job and I was at a bank and I was writing C sharp and it was okay, I didn't mind it, I didn't love it like Ruby, and I ended up answering a CFP and getting the speaking opportunity in Tennessee to go talk about testing in C Sharp and I was very excited and I went down to Tennessee and I'm kind of expecting to have that same kind of love and community and it was not like that at all.

Joe Leo:

Nobody had heard of this framework, even though it was open source, because open source isn't really a thing. There's not a whole bunch of people that get together and say, okay, well, obviously we're going to need a framework and obviously we're going to need a testing library and also we're going to need a couple of other testing libraries so that we can kind of fight over which one's the best one. And we're all going to collectively support them and we're going to promote them. And we're going going to collectively support them and we're going to promote them and we're going to kind of take care of each other, and none of that existed. I was like all right, you know, you did your talk, there's the exit, and that was it, and I really was kind of crestfallen.

David Hill:

Yeah, I could see that that would be a bit of a deflating experience, coming from one environment where it is very heavily open source community driven into a different one where it's really not, apparently.

Joe Leo:

It was yeah.

David Hill:

So it sounds like you kind of started in Ruby at a certain point in your career and kind of drifted away to other things. What brought you back to Ruby?

Joe Leo:

This feeling that I'm talking about right now is what brought me back, I think what kept me tied to it. I was at that bank for a couple of years. I left, I started Def Method. This was 2014. And I immediately jumped back into the Ruby community. I started organizing GoRuCo with my GoRuCo organizing heroes. So it was just a very cool experience for me, nice and I got involved that way, and what I found time and time again is that Rubyists and the Ruby community they're always just ready to welcome you back and say, hey look, isn't this great what we have? And I've learned, in a career that now is 20 plus years, that that's something that's worth holding on to, and so I'm going to hold on to it as long as I can.

David Hill:

So I wanted to circle back a little bit to one of the things that you mentioned that your company had recently released with the Phoenix. Called it the Closed Loop AI app. Could you call?

Joe Leo:

it that yeah.

David Hill:

What do you mean by being a closed loop app? What does that mean Most?

Joe Leo:

applications. Most AI developer tools and really tools in general today, are prompt-based. So I tell a chatbot what I want, it spits out some data. I say, yeah, let's refine it a little bit and I'll either copy and paste it into my browser, or maybe I use cursor or something else and it just sticks it into the browser. For me that's like a fraud-based. That's kind of how these tools work.

Joe Leo:

Phoenix doesn't work like that. It's a reactive AI system. So you connect it to your application through GitHub and it just starts building tests and it just starts looking into your application. It kind of knows what to do. It already has its instructions so it can begin by generating tests. It'll start by sorting things by flog score and saying, okay, let's take these methods these are really gnarly, there's not a lot of testing here and start building tests. Then, as the application evolves, it sees another commit, it sees a PR coming in.

Joe Leo:

Then the application will begin to get even smarter and say, all right, let's look at the test that we built. Let's look at the code that was just submitted, run our tests and see which ones do we expect to fail because there's been a behavioral change. Good, those failed, that's great. Let's regenerate those tests. Now let's look at what other tests failed that maybe we did not expect to fail. Let's let the user know, because that could be a regression. They need to check that out. Then let's also dig in and find places where there might be vulnerabilities or bugs and let's submit a report based on that. And so it's not that you as a user never interact with it, it's that it already has its commands, it's ready to go and it's working all the time.

David Hill:

That sounds really cool. Now I feel like I need to go check that out. Yeah, you're welcome to, because AI has been so pervasive in the news cycle and in the tech world recently. Cool, now I feel like I need to go check that out. Yeah, you're welcome to, because AI has been so pervasive in the news cycle and in the tech world recently. Chatgpt and its siblings they've been kind of handy for like really trivial types of tasks. But having something like that that's very geared towards a very specific set of tasks to help optimize my workflow, like oh yeah, that sounds really appealing.

Joe Leo:

Yeah Well, thank you. I think so too, and I think for us, the goal is to always just stay a couple of steps ahead. These LLMs, they're going to continue to evolve and we need to be able to continue to evolve, you know, one or two steps past that, and I think that's a good challenge for us as engineers. You know I said this to a friend of mine recently every marketer, every person in every other profession is using ChatGPT, the same exact way that we engineers are using it. Shouldn't we be kind of at a higher level, like, shouldn't we be not just chatting back and forth, you know, but actually taking the reins a little bit and giving what we know and what we understand about these systems? So we're going to give it a shot.

David Hill:

That's probably a really good way of looking at it. So let's go back to Goruco. Are you still helping to organize that conference, or is that something that you've stopped doing?

Joe Leo:

That conference had its last run in 2019, which was interestingly advantageous timing. Since 2020, everybody was scrambling. There's been talk about bringing it back, but actually I think something has emerged in New York that I absolutely love. It's the artificial Ruby meetup, which is run by Sublayer, which is Scott Werner and Rachel Price-Sittman. When they first got off the ground I didn't know about it probably because I wasn't on Discord enough but they started having these meetups, and Sublayer is an open source application and Scott is heavily involved in the community, so is Rachel, and so they started having these meetups, and my friend Jesse from GoRuCo posted on Slack by the way, the GoRuCo Slack is still going and we still talk to each other, the only part of GoRuCo that still exists and anyway, he said, hey, there are people going to these events, they seem really cool, and so I went one day, I think in January, to check it out.

Joe Leo:

So in the dead of January, it's freezing cold outside. I went to this place. It's easy enough to get to, but it's not around the block. I walk in and there are a hundred Rubyists in there and I was like, well, I have not seen this in a long time, like I hadn't seen that since the old pivotal days when they had NYCRB in person.

Joe Leo:

This was really cool, and so that was when I realized like, oh, there's really something here, and I think that there's an underserved internet, not a market, underserved community, I guess of all these Rubyists who love Ruby and love talking about Ruby but have no outlet for Ruby plus artificial intelligence, because it was at that point, and still probably to this day, monopolized by JS frameworks and Python. And I started really getting involved there and just jumping in with both feet, and I think that I have run a conference for a while. It was fun and it was taxing. You're in the middle of running a conference right now and what I think is that Scott should run the next conference and I should just get to attend. So that's what I'm going to stick with.

David Hill:

So I wouldn't say that I'm running a conference. Right now I'm assisting, I'm on to stick with. So I wouldn't say that I'm running a conference. Right now I'm assisting. I'm on the program committee where I help to kind of select the talks that would be presented and things like that, but I'm not actually running a conference. But I make that distinction because I'm considering trying to run a conference.

Joe Leo:

Ah, now we're talking.

David Hill:

So, as someone who has run a conference in the past or helped put one on in the past, what advice would you give to someone who's looking at that ridiculous proposition of I think I want to put on a Ruby conference? What would you advise?

Joe Leo:

them. Well, first of all, it's not so ridiculous. I think it's great. I guess the advice I would give you is to gauge interest first through the local community. I think Irina, who was on your show, was that the last episode, or maybe two episodes ago.

David Hill:

Like that yeah.

Joe Leo:

Okay, you know she had talked about using meetups as a springboard to a conference, which I think is a really smart idea in terms of gauging interest. Then surround yourself with a few good people. It doesn't take a ton. I know RailsConf, rubyconf, takes a lot of volunteers and it's multi-day. Gorugo is always one day. We still had a number of people helping us out, but I think that put on a really good conference. You really just need a space, you need a bunch of people that are interested and want to come together and you need good talks and you could do all those things.

David Hill:

When you say it like that, you make it sound easy. Yeah, exactly.

Joe Leo:

So when and where I'll come.

David Hill:

The idea I've been playing with in my head cause I'm in Tampa. Okay, the idea I've been playing in my head is to have it in Orlando and call it the Ruby magic conference.

Joe Leo:

Oh, all right, there used to be a regional conference in Orlando. I can't remember what it was. Okay, so the Ruby Magic Conference.

David Hill:

That's the idea. We'll see what happens. I need to take some steps, like all the stuff you just listed out. I'm taking notes over here just to make sure it's like okay, these are the things I need to start doing so that I actually have steps I can take, sure it's like, okay, these are the things I need to start doing so that I actually have steps I can take.

Joe Leo:

I've got a whole bunch of family that lives in Apollo beach outside of Tampa. Oh yeah yeah, they're not rubious though.

David Hill:

That's fine. We love people, even though they're not rubious. Okay, good, we're transplants to the Tampa area. We just moved here, like last year. Oh, my goodness, it's so nice to be warm nine months out of the year instead of cold. Yeah, where were you before Kansas City? Yeah, that sure will get cold. Yeah, it's so much nicer here. So for this final RailsConf your first one, the final one is there anything in particular you're looking forward to, aside from the community stuff we've already kind of talked about a bit at length? Are there any particular talks or any particular workshops or anything that you're really looking forward to?

Joe Leo:

I guess I could say that what I'm really looking forward to are the times and the spaces where people come together, and so I will be there for the lightning talks because I always think that's so much fun. I'll be there for the game night because I think that's great, and even the keynotes I like those because everybody is together the sessions themselves. It's always tricky for me as this person who kind of toes the line between the business and the development. I've written some code on Phoenix. It's a wonderful experience, but I also have to run this business, which is kind of the life I've chosen kind of thing. I have to run this business, which is kind of the life I've chosen kind of thing. So usually, if it's going to be super technical talks, for me it'll have to be related to AI, because that's where we are focusing right now. Right, I love talks on testing, I love talks on best practices and design, and so I'll usually gravitate towards those.

David Hill:

Nice, okay, so you've been writing Ruby for what? 15 years? A little bit longer than that? Yeah, I started in 2008 or nine.

Joe Leo:

Yeah, I remember that. Yeah, it was about 2004 or five for me, so only a couple of years before that. It's interesting, right, things were a lot different then. People sort of pine for those days I mean some Rubyists sort of pine for those days. I don't personally, but I thought there was so much excitement around Ruby back then and I do want to recapture that excitement. I think that is definitely possible. In fact, I see it. I see it when I go to these events.

David Hill:

Yeah, it's funny that you mentioned that. I have talked with a number of people who expressed that a lot of the excitement, at least among devs for Ruby back in the day, had to do with this sense of whimsy. It was like the sometimes ridiculous and obscure things that you could do with Ruby and that the thought was expressed that we've lost a lot of that whimsy in more recent years and maybe that has something to do with the lower level of enthusiasm for the language or whatever. For me I didn't start going into conferences until several years after I had started working with Ruby. So like I spent my formative years very isolated from the greater Ruby ecosystem. So like I never really had wise, poignant guide, like I was only introduced to that recently. I didn't have any exposure to why and his crazy hijinks at the beginning of my Ruby career To be honest with you.

Joe Leo:

I loved why Blucky Stiff? Because I thought that was a really fun and cool thing, but I didn't love Ruby because of the whimsy. I've heard that same refrain and I think that's true for a lot of people. It wasn't true for me.

Joe Leo:

Again, back in those days, riding the train back and forth to New Jersey with a couple of other Ruby devs kind of newly minted Ruby developers because everybody was new to Ruby and talking about this new thing called Twitter and wondering if it would take off because it mattered if it took off, it was one thing to use it, but if it took off, it was like, hey, this is our thing, we've got a career riding on this. I remember when LinkedIn was written in Ruby on Rails and famously came out with their hey, we have to switch to Scala, scala because Ruby doesn't scale. And it was such a crushing blow because people were kind of like it doesn't really matter if it doesn't scale for LinkedIn. I mean, I had to have that conversation, god, I don't know how many times with all of these startups that had zero users and like, well, I don't know, if LinkedIn says it can't scale, I'm like it's going to scale for you, it's going to scale just fine and it scales really well.

Joe Leo:

Besides that, I remember the defensiveness was over like hey, this is our thing, this is what we love and we know that it's working because it's bringing us joy. And there's this thing that can't be calculated in that and that's tough for these things in general picking a language that brings joy and an amount of sort of efficiency and love to it. It counts but nobody can measure it. When you would practice TDD or pair program, it made your code a lot better and it counts but you can't measure it, and so it's really difficult for business people to take it seriously and factor it in.

David Hill:

I think that's an incredibly valid point, that there's a whole lot that goes on in the development process that is unquantifiable, but that has an impact and that matters for us. Yeah Well, joe, thank you so much for joining me on the show today. Do you have any parting thoughts you'd like to offer regarding RailsConf for our Ruby community before we go Come?

Joe Leo:

see my talk at RailsConf. I'm going to talk about all of the crazy ways that things can go really wrong even when you're trying to do your absolute best. It's called Tales from the Brink and it's the last day in the afternoon which I was really nervous about people sticking around that long. But then, luckily, the program committee maybe yourself, david put Aaron Patterson as the final keynote, so now I'm pretty sure everybody's going to stick around, so you're going to be there anyway to see Aaron. Just drop by, say hello.

David Hill:

I will definitely still be there for starters, but secondarily, way to bury the lead. But I asked if you're looking forward to it at RailsConf. You're like, oh, I don't know, you're giving a talk at RailsConf.

Joe Leo:

Oh yeah, you should have done that. Well, you know you were asking who I was looking forward to seeing, and I'm not looking forward to seeing myself. I always get really nervous right before I talk. I love talking in general and I love conversations like this. When I get up in front of a room full of silent people that are waiting to hear me expound on something, it makes me nervous. At least the first few slides are a little nerve-wracking.

David Hill:

I'm familiar with that feeling. Yeah, I've given one talk at a conference and it was at RailsConf, and I felt that nervousness and I don't remember the details of what happened. But I basically got up there and said I'm a little nervous, this is my first talk and before I could make the self-deprecating joke I intended to make, the people in the room just started clapping. For me it was like oh okay, I can relax now because everybody in this room is here, because they want to learn here about this topic and they're interested in what a person has to say yeah, and they want to see you do well, yeah. That realization that that was the community I was in was like oh, I didn't realize that but that's great.

Joe Leo:

It's amazing. I love that.

David Hill:

I'm looking forward to seeing your talk and, yeah, especially since Aaron, as is almost tradition, is closing out RailsConf despite his many requests to not be last. We love you, Aaron. I'm sorry it keeps working out that way.

Joe Leo:

I'm pretty sure he closed out a Goruco as well. He's a closer, he really is.

David Hill:

He's a closer he really is. He's just a phenomenal, phenomenal presenter. It's always fun and educational at the same time seeing what he's come up with. Well, joe, thank you so much for joining me today.

Joe Leo:

Sure thing, david, it's great being here.

David Hill:

Looking forward to seeing you at RailsConf.

Joe Leo:

Yeah, me too.

People on this episode