Episode 13

Real vs. Fake AI with Evan Phoenix

with Evan Phoenix

Real vs. Fake AI with Evan Phoenix

About This Episode

In this episode of the Ruby AI podcast, hosts Valentino Stoll and Joe Leo engage with Evan Phoenix, a seasoned Ruby programmer and CEO of Mirren. The conversation explores Evan's unique name origin, his career trajectory, and the integration of AI in development workflows. They discuss the distinction between real and fake AI in products, the impact of AI on engineering practices, and the future of AI in development tools. Evan shares insights on performance optimization, human-centric AI interactions, and the role of AI in deployment and architecture detection. In this conversation, Joe, Evan Phoenix, and Valentino Stoll discuss the evolving landscape of software development, particularly focusing on the role of AI, automation, and the Ruby programming language. They explore how AI can assist in analyzing code bases, the future of development with ambient agents, and the potential resurgence of monolithic architectures. The discussion also touches on the importance of human-centric design in software, the significance of experimentation, and the unique strengths of Ruby in the current tech environment. The conversation concludes with predictions about the future of small teams in software development and the impact of AI on coding practices.

Full Transcript

Valentino Stoll (00:02)
Hey everybody, welcome to another episode of the Ruby AI podcast. I'm one of your hosts today, Valentino Stoll, and joined by Joe. Joe?

Joe (00:10)
Hey, I'm Joe Leo. I'm the other host. And I'm here to ask Evan Phoenix the question that everybody's been dying to know. And this is Evan, please introduce yourself and tell us who is more famous, you or Evan Phoenix and the Raven host's front man, Evan Phoenix.

Evan Phoenix (00:18)
Yes.

Oh, actually, I have a great story about this. I'm glad that you brought up Hi Evan Phoenix, a long time Ruby programmer, not as much lately, but still in the scene. okay, so.

We're just riffing here. So the very minor backstory is that when I got married, I gave myself this last name, my wife also. So my last name used to be Webb, her last name used to be Tam, and we made a decision like, let's just come up with a brand new last name. And so we were engaged for like 18 months. And so this is the name that we came up with and we love it. And so as a reason of that, but for that specific reason, I feel very like,

Joe (01:09)
So I had no idea, that's awesome.

Evan Phoenix (01:15)
chose this name, like in a very real way, I chose this particular name. And so I'm always on the lookout. Evan is not the most common name in the world and Phoenix is not the most common name. So I was like, OK, will are there other Evan Phoenix's and will they pop up? ⁓ that the the musician Evan Phoenix, which I don't know if it's his real name or if it's his ⁓ stage name or not. But what what I do know is that he wrote a book.

Joe (01:39)
⁓ now we're going to dig into this.

Evan Phoenix (01:44)
He wrote a book and ⁓ I know he wrote a book because for about a year I would get phone calls.

from someone who wanted to represent me in book sales and basically promote my book. And I was like, who, what is going on? And of course it's just like, it was for a year where I get this call. It would be like months between. So I forget what the phone number was. And so I wouldn't answer it. And I look at the voicemail and be like, hi, Mr. Phoenix. This is such and such from ⁓ publishers weekly. And we'd love to get you on the line. We're doing a, this is that whatever, some, some author thing. And I'd be like, this is so strange. It happened one time and then it happened

Joe (02:01)
Hahaha

Evan Phoenix (02:22)
again and finally they called and I remembered the number, I remembered something about the number. was like, my god it's the book people. And so I answered the call and I was like...

Joe (02:28)
Alright.

Evan Phoenix (02:32)
And they're like, hi, hello. They're like, this is Phoenix. And I was like, yes. Hey, this is such and such. And I was like, okay, I gotta stop you right there. I've gotten your voicemails. You have the wrong Evan Phoenix. And they're like, my God, we've been calling you for a year. And I was like, I know. And you still have the wrong one. This sounds like a great deal, maybe, but you should find out how to contact the correct person. So I think given that, am I the more famous one? Because people accidentally.

Joe (02:38)
haha

Hahaha!

Yeah. ⁓

Evan Phoenix (02:59)
Like my phone number, I guess, is more on the internet. So...

Joe (03:02)
Yes, I think

I have actually done the looking at there is an absolute answer to this and it is you are you are the most famous Evan Phoenix, at least if we go by YouTube, which let's just go by YouTube. ⁓ You know, you've got some talks out there that have thousands of thousands of viewers. You've also been around a lot more. You're definitely the OG Evan Phoenix. ⁓ And yeah, and I would say the more famous, though, ⁓

Evan Phoenix (03:06)
Okay, great. super. Excellent.

Okay.

Joe (03:31)
The other Evan Phoenix has been doing a lot of SEO work is my...

Evan Phoenix (03:31)
The real estate agent.

Okay. Okay. Well, so that's, that's going to be disappointing to the Evan Phoenix that used to be a college basketball player and is now a YouTube real estate influencer. He's going to be, he's going to be disappointed that I'm the more famous one because his livelihood evidently is being some kind of kind of influencer. So we didn't even get, we didn't even get into the German, the German cosplay Evan Phoenix. That's another one. So

Joe (03:44)
yeah, that's gonna be a... That's trouble for him, yeah.

⁓ yeah. Well, I'm glad we cleared it up.

Valentino Stoll (03:54)
I just took it as a

Joe (04:00)
⁓

now clearly you've studied this.

Evan Phoenix (04:02)
He looks, he

cosplays as Loki. He looks exactly like it. He's an excellent cosplayer. So.

Joe (04:05)
Alright, alright.

Valentino Stoll (04:12)
I just think it as like your long time, ⁓ you know, ruse to confuse AI agents.

Evan Phoenix (04:16)
Yes. Yeah.

Joe (04:16)
Yeah.

Evan Phoenix (04:19)
Well, it's funny is like it's a handful like, you know, globally, there's not that many. And so it's easy for me to know most of them or at least know of most of them.

Joe (04:28)
Yeah.

Yeah. I mean, I think you're right, Valentino. This is like, hey, we like to prepare. We, know, as an AI podcast, we use AI to prepare for our guests. And, you know, if I just say, hey, give me some questions about Evan Phoenix, I'm to get poetry stuff. I'm going to get cosplay stuff. You know, I'm to get, I'm going to get a lot of stuff. Yeah. Yeah. It is a book of poetry. Yeah.

Valentino Stoll (04:42)
Ask him about his book.

Evan Phoenix (04:44)
Very good.

Very good. Yeah, it's about my book. Yeah. My book of sonnets. Yeah. ⁓

Valentino Stoll (04:56)
So, who are you, Evan?

Joe (04:58)
Who are you really?

Evan Phoenix (04:58)
Yeah, I

am the programmer at Evan Phoenix. As far as I know, that's the only persona that this Evan Phoenix, that the only Evan Phoenix with that persona. ⁓ am right now, I'm the CEO of Mirren, which is my own company. We're doing, we're building ⁓ deployment systems. ⁓

I'm a long time infrastructure backend programmer. Even when I was in Ruby, the thing I was most known for was building backend tools. I built a Ruby VM for many years and building things like Puma and benchmark IPS and all that kind of stuff. So, yeah.

Joe (05:40)
All right. And now I saw the announcement for Mirin. It seems like it's been about 10 months, which now that we have CodeGen tools is please like 10 years. And so where is Mirin in the marketplace? Are you dominating yet? Have you taken over ⁓ all deployment software?

Valentino Stoll (05:41)
Yeah.

Evan Phoenix (05:54)
Yeah, yeah.

⁓ It's such a great question. I mean, not

yet. We did our first preview release just last week. it was really...

It was me for a long time, or not a long time, but like I, it's only three of us, three engineers. I hired the other two engineers back in ⁓ March. And so it was, it was three of us for most of the year. I can say definitively that like the amount of work that we've been able to get done as three people using Claude for the most part as our, our AI assisting tool ⁓ is way beyond, I think where we would be able to get done as three people without it. Right. ⁓ And so

Joe (06:14)
Mm-hmm.

Yeah.

Evan Phoenix (06:39)
So, ⁓

when I think less so for back looking and more so forward looking that like we have this roadmap and I'm like, okay, we got this done, this done, this done, this done. And I would say that the productivity that we have seen over the course of the last six months has really informed me in like looking at the roadmap and being like, okay, we got this big feature. How long do we think that will that'll take? Like, I don't know, maybe a month. I think that without those tools, they'd be like, I don't know, maybe six months. Like I think that that is probably where it's mostly changed is like what where I think like

Joe (07:03)
Yeah.

Right.

Evan Phoenix (07:10)
We all have to lick our finger and put it up and be like, I think that how long is this gonna take? And I think that's the biggest thing that I've noticed is that my wild-ass guesses about stuff has completely changed. ⁓

Joe (07:22)
Yeah,

you know that and I'm gonna say something that sounds funny, but I don't mean it to be that also changes like when we as engineers Inevitably take twice as long as we think that means that it's a it's two months and not a year, right? So it's an order of magnitude. Well, not really but it's it's a lot lot shorter

Evan Phoenix (07:35)
Yeah, that's exactly right.

Yes, exactly right. I mean, we always underestimate how long it's gonna take. And I sort of just build that into that calculus, right? Like I look at it I go like, I don't know, I can do this in two weeks. So it's gonna take, you know, six weeks or whatever it is. Like that's just the normal calculus. But again, now it's six weeks and not like, okay, well, I don't know, like probably three months and then it takes six months. Exactly right, yeah.

Joe (07:51)
Yeah, right, right.

Right. Right.

Valentino Stoll (08:02)
So when you say you're like, you you've integrated Claude into your like, you know, workflows, like how deep does the rabbit hole gold go there?

Evan Phoenix (08:07)
Mm-hmm. Yeah.

Yeah, okay, so it's mostly every day. you know, like as we are, as we're writing code, you know, it's probably the first stop on what we do. So we have a pretty good writing culture. I was at HashiCorp for a number of years and one of the things about HashiCorp is having a good writing culture. It's a remote only, HashiCorp is a remote only company or was when I was there. I don't know how things have changed in the last year since they've been part of IBM, but.

And I, my company, Mirren, is remote only. And so I knew how important it was for there to be writing culture. And so one of the places that we start for any large piece of functionality is like, hey, let's write this down. We call them RFDs, requests for discussions. And so we sit down and like write it down and we used Claude in those tools. It's like, hey, I'm going to write an RFD on this topic. I want you to hit these points. I want you to hit this. And then we use that to sort of like flesh it out. And then

A lot of that's like, okay, I need you to hit this point, I need you to hit this point. And then going back and being like, okay, I'm gonna put this in my own voice or I'm gonna address this up. like, hey, can you add an example that looks like this? Can you add an example that looks like this? So using that, that phase, and then we go through the human review process. And then once we okay that, what we usually do is we literally take that RFD over to the directory that has like the, mechanically, we download it as Markdown, we put it in the directory,

where

Claude has the code, and we say, go read this RFD and make a plan to implement it. And it goes and it does that. OK, great. I see what we're trying to do here. I understand the product definition. Great, we're going to go through with this. And sometimes, mean, we one-shot ⁓ features like that sometimes. ⁓ And so because, again, I feel like defining the boundaries for these tools is the name of the game.

Joe (09:58)
Wow.

Evan Phoenix (10:09)
we lost Joe. His laptop died. He'll be back.

Valentino Stoll (10:11)
That's all right. He'll be back.

It says it'll continue on a new track. So hopefully that's true. ⁓ Yeah, I mean, I'm curious, like, ⁓ so how we had you on here to talk about like real versus fake AI. Right. And like, well, what, you know, what do you mean by that? And maybe like, how does that like fit into your workflows, which seem like

Evan Phoenix (10:19)
Okay. Yeah.

Yeah.

Yeah.

Valentino Stoll (10:41)
very much, ⁓ I would assume really.

Evan Phoenix (10:44)
Yeah, yeah, for sure.

think about it in the frame of ⁓ how companies...

advertise AI. like we like our tool is doesn't have any AI built into it right now. So for instance, you download it, you can deploy an agent onto it, but like we don't as a part of the thing that we build and we give out, we don't give out. We're not selling an AI enabled thing. We've got plans, but we don't do anything like that today. And so I think about it more in the like, what is the product part of AI? Like, in other words, what if I look at a product and I'm like,

this thing has AI. What does that mean? What does that mean from a product context to have AI in your product? And so I think that's really what I get into, like what is fake and what is real, right? So I think that my take is, and I've got other examples, like technical examples of this is like, AI can't be a... ⁓

the product feature. It can be like a technical feature that you use to implement something, but it can't be the feature unto itself. Like, let me give you the example. ⁓ You maybe have a workout app, right? And the workout app says, ⁓ now we now have the ability to do customized workouts based off your past workout history, right? If they use AI for that, fine, I don't care. But the feature was custom workouts, right? Whereas if I go to another

⁓ I got another workout out and they say, workouts now with AI. I'm like, that's not a thing. That's like workouts now with blue. I was like, I don't know what blue is. Like what is blue in this context? Like a blue weights, blue like, and so my...

Joe (12:23)
Mm-hmm.

Yeah

Evan Phoenix (12:35)
This is a of a viewpoint cultivated in the history of seeing how blockchain is used for the most part, right? Like blockchain, I think is a really interesting technology, but it's not a product. It's just a way of building a product. And so I think that's really what I mean by like fake versus real AI. It's like, is it just a way to implement some product surface area or is it the product surface area? Because if it is the product surface area itself, it's probably like, what are we talking about? We're talking about just like you should

shoved a chat bot into this thing that it doesn't, you know, it's not a real product. Like, that's what I mean.

Valentino Stoll (13:11)
I see. Yeah. Is it actually using... Yeah. ⁓ I agree with that in a lot of ways. ⁓ It is becoming more more blurred to the point where like, you know, do you... Like, do you even foresee like, Claude Code like, living in your product in some capacity? Or is that like, you would never do that.

Evan Phoenix (13:34)
Well, mean, think that Cloud Code is a good example as it relates to our product in like the sort of like our some of our like longer term vision stuff, right? So I think that.

Cloud Code is itself a product. And so it's a question of like, it has real tangible value that it uses an AI for. And so I think that I can see us integrating Cloud Code in that we have one of our far-turn roadmap items is we want to be able to provide good development environments. We want to say instead of having people have a Wiki page or a Google Doc that lists how to set up your dev environment, we want to have a story for that. And I think that coding agents are part of that story today. So it's like, yeah.

we have cloud code in the product and so far as like it we give you a development environment that has cloud code? Yeah, absolutely. I think that.

from a perspective of using AI, think we have one way that we use AI today, and I will talk about because I think it's so much fun. And the second one is a more product-focused way. I'll start with the product-focused way because it's more boring, which is that one of the things that I think, as people have been working with AI that's been clear, is that it's so good at summarization. It's so good at picking out the signal from the noise.

one of the things that we want to start doing is like, okay, well, we're gonna have like, for instance, all these logs for somebody. We want to be able to say like, hey, I want to turn on daily summary. And the daily summary can be AI driven. It can be taking in what happened with your deployment today, all your logs, and it can say like, hey, everything was good, just one sentence, everything was fine. Or, hey, we had a weird 20 % latency spike. I don't know that it's anything, but you might want to look at it. So like, those are good examples of where like, you just want something that's

summarize and surface, right? think that's a, that's, yeah.

Joe (15:25)
I like that a lot actually. Just, mean, that

I, I don't think that's so boring. So I'm excited for the exciting part just because, you know, we spend so much time trying to instrument everything so that it can tell us a story, but almost inevitably we end up looking at multiple screens or we, we spend a ton of time putting a dashboard together. Right. I like that quite a bit.

Evan Phoenix (15:30)
Sure. Yeah.

Right.

Yeah, one of the design philosophies that I have is that people don't really want to look at an Excel spreadsheet of numbers and then try to figure out what the numbers mean in a higher level context. think, yeah, right? And so lots of the tools in the deployment space are like, here's all the numbers, figure it out, right? Right, or why?

Joe (15:59)
Yes, that's a sound philosophy. Yeah.

Right. We just want the ones that are red or green or you know somewhere in between, know, not in between.

Yeah.

Evan Phoenix (16:14)
Yeah,

or like some gut check, like, hey, you know what, these numbers look like they did last week. So if everything was, if you were okay with last week, you're okay with this week, right? Like that's okay too, right? Like I think that understanding baselines and being able to just like give, like, you know, things are looking weird. Like I don't, I don't know if it's bad. I just like, maybe you got really popular and all of a sudden the metrics changed in some radically different shape, right? But I think that the philosophy we have,

Joe (16:21)
Yeah. Mm-hmm.

Right.

Evan Phoenix (16:44)
is like if there is important data, we should have an idea of how to show it. And if the data isn't important, we should just not show it. We should just be like, everything's fine, you're good, like move on with your day.

Joe (16:55)
Yeah. Well, that

is it also addresses something that I think ⁓ we all experience, which is this notification fatigue. I remember I gave a talk at I gave a talk at Rails Coffin in the middle of talk. I stopped and I asked the audience, like how many people had ignored a warning that had come in like on Slack or email in the time that I had been in talking. Every hand went up, you know, and it's yeah, which, you know, there's a lot of, you know, people that are like

Evan Phoenix (17:05)
Absolutely. Absolutely.

Yes.

Amazing. Amazing.

Valentino Stoll (17:22)
That's really funny.

Joe (17:24)
taking their job and their program and their software seriously, but it's just too much.

Evan Phoenix (17:29)
Yeah, yeah, and I think that like that is the place that I think that I'm really excited to use those sorts of tools to apply to because I think that like... ⁓

that is tangible, it's real, it's a everyday sort of thing. It's like, well, like, I don't have to worry about it telling me when something is weird. I know that the the weirdness detector will literally go off and say like, hey, like, ⁓ sorry, I'm glad that I haven't talked to you since last Thursday. But that weird thing is happening again on Thursday. Like, again, you can tell in the way that like, also think about these things, I think about them in a conversational way that like, I think that that is, again, it's a that that's the human interface, I think that

Joe (18:07)
Mm-hmm.

Evan Phoenix (18:11)
that we're better in terms of digesting conversation than digesting like field of numbers, you know, so yeah. If you may, I wanna talk about the other use that, internal use that we have, which I love. ⁓ One of my founding editors, Paul, is gonna do a blog post about this, but I can't not talk about it and we lost Joe again. So I will, do you want me to wait until he pops back in?

Joe (18:16)
Yeah. Yeah.

Yeah.

Valentino Stoll (18:37)
Yeah, give him one minute. ⁓ I think he's really gonna want to hear this.

Evan Phoenix (18:40)
Okay. Yeah.

So yeah, I I think that like.

The ability to summarize, the ability to pick out signal for the noise is also the thing that I think really makes the coding tools great. I had a session yesterday where I had this weird bug that I was trying to fix before doing this release and it showed up in this kind of weird way. was just like unknown, unknown type empty string. And I was like, type, what are we doing? And so I kind of dug through the code and I was trying to figure it out and I worked on it for like, I don't know.

half an hour, 45 minutes of trying to trace the flow and I couldn't get anywhere. And so then I used ⁓ Claude code. I have a custom agent called Go, the product's written in Go, Go ⁓ Distributed Debugging Engineer, which is literally optimized for, your job is to go find really weird problems. And it's amazing at it. I basically said, hey, I got this weird message. Can you go off and see if you can figure it out?

and it's spun for, you know, like five, seven minutes or something like that. And it's like, okay, yeah, I figured it out. ⁓ Like this.

code in this place was not reading its arguments, which was leaving data on the stream, and then that data was getting interpreted by the next thing as a request. And I was like, ⁓ my, that would have taken me quite a while to figure out if at all, right? But that summarization, that finding the signal in the noise is the big part. Joe, I waited for you, because I know you wanted to hear this.

Valentino Stoll (20:12)
Yeah.

Joe (20:22)
I appreciate that. ⁓ So I think I'm back for good. We're have to have Paul cut all this crap out. But I think I found the issue. And so sorry for the interruptions.

Evan Phoenix (20:28)
Okay,

Valentino Stoll (20:31)
You

Evan Phoenix (20:33)
it's fine. So one of the things that ⁓ one of my engineers built was so we

When I started the company, was like, let's try to not go overblown on tools. Like if we can get along with a simple tool, let's just work for a while. And so for that reason, we didn't get a Zoom subscription. like, we're just going to use Google Meet. We just want to see how far we can get with Google Meet, right? And one of the things that we did was we were like, you know what, this sucks that you can't start a Google Meet from Slack. We really wanted to be able to start a Google Meet from Slack. So we're like, OK, well, eventually we'll build our own little Slack bot that can go start them.

Joe (20:54)
Yeah.

Evan Phoenix (21:09)
So we go and build that and we're like, very it's working, you know, like again, we use cloud code to build that. And so then we kind of like we're spread balling what else could this little Slack bot do? And we had this idea and it is so great. So Gemini will do, this is using Gemini as a cloud. Gemini will do the summaries, you know, like if you do a call, you can say, hey, give me the call summary of what happened, right? It'll output its own version of the call summary.

Joe (21:32)
Mm-hmm.

Evan Phoenix (21:38)
the

transcript in there. So what what Paul, my engineer, did was he used that

and fed that whole thing, I can't remember if he fed the summary or the triage of himself back into Gemini again, but with a different prompt, which was, I'm gonna send, I wanna send a bullet point list of what happened in this meeting to Slack, so I need you to give me bullet points, I you to pull out bullet points to give over there, and it's like, I need like three to six bullet points of work, and if there are any off-topic,

off work items, I want you to pull those out separately and include those in a separate section. And I can't tell you the amount of joy that it brings us to see the summaries after the meetings, because it's like, talked about debugging, ⁓ Evan and Teresa talked about debugging. And then at the bottom will be like, Evan and Teresa expressed a fondness for making snow angels. Like that'll be the thing at the bottom. And I can't tell you the amount of amazing, just like how it's so great.

Joe (22:15)
this is going be good.

Ha ha ha.

Hahaha

I like that. Yeah, I like

Evan Phoenix (22:41)
Yeah.

Joe (22:41)
that. You know, I, I wanted to, ⁓ I got, I got cut off before, but I actually wanted to, if we can for a moment, go back to the right, the writing culture that you talked about, the thing that I love about what you described, and we do some of that as well at deaf method, but some of the stuff that you described, if AI wasn't involved, you would be, we would be saying, but that's big upfront design.

Valentino Stoll (22:43)
That's awesome.

Evan Phoenix (22:50)
Sure. Absolutely.

Joe (23:06)
That's, that's so much work that you're doing ahead of time. Right. And I think that that is a, I think that's a really interesting shift in how agile methodologies can be understood when you have all of these tools at your disposal. Because if you write, like when we're, when you're like, you know, studying like the waterfall patterns that don't work or anti-patterns that don't work, it's always like, well, it's because it takes you two months to write all of this and then design it and then come up with a plan.

Evan Phoenix (23:06)
Sure.

Right.

Joe (23:35)
which is what you described happening in basically like less than a day. And so all of a sudden it's like, okay, well, right. The plan is always wrong because the plan is not faced with reality. So you have to change the plan. But if you have AI helping you along the whole time, then why not? Why not do the big upfront design? It's you're actually not doing it. You're having it done for you.

Evan Phoenix (23:38)
You're right.

Yeah.

Yeah. And I think it, for me, it, it's,

In some ways, it's less a fact that the AI is doing it and more in terms of the time investment, right? So in other words, if it takes an afternoon to do, do it. The problem was it was taking two months to do an upfront design, right? And so one of the things that I really try to push and cleave to is just try things. We're in the age where just spend the afternoon trying three or four different solutions to a problem and to see which one you

Joe (24:04)
Yeah, that's fair.

Hehe.

Evan Phoenix (24:28)
like. You know, like I think that in the past, the developer time was always seen as this thing that like, oh, it's very, I have to guard it very carefully and preciously. And agile is a reflection of that, right? Like I want to be able to like, engineer time is so precious that I want to be able to pivot that engineer time, like to actively look for, oh, we're going this direction, now we're going that direction. Like I don't want to, I don't want to put them on a path that they're not able to get out of because they might not be able to get out of it for six

Joe (24:41)
Yeah.

Yeah, right.

Evan Phoenix (24:58)
months, right? I think now we're at this place where it's like, no, no, no, like I have an idea. It would normally have taken me a month. I'm just going to spec it out. Like it's a Friday. I'm going to try to build the whole thing out in a Friday. And ⁓ yeah, that did work. Okay, great. What did I learn? What did I not like from it? What did I want to incorporate into like my next attempt at this?

Joe (24:59)
All

Yeah, yeah, I think it's a fascinating development and how we can work together.

Valentino Stoll (25:21)
Yeah, you make some interesting points here ⁓ and I want to call out a few of them. ⁓ One is like you're... ⁓ A lot of people are like, well, like, you know, I save so much time and I'm like not coding as much anymore. And I think what I hear is ⁓ that you're just not spending the same time on the same things. ⁓ And it's not like we're actually saving any time yet. And that we're just now like...

Evan Phoenix (25:26)
Sure.

Yeah.

Joe (25:47)
Yeah.

Evan Phoenix (25:48)
Yeah. Well...

Valentino Stoll (25:50)
writing more upfront and like spending a lot of time thinking about what it should be making, right?

Evan Phoenix (25:53)
I mean.

Joe (25:56)
Well, that's the thing,

right? Code is a liability. So if you're spending a whole ton of time coding, that may not be great. Spending less time coding could be good.

Evan Phoenix (26:00)
Yes.

Yeah, so

I get that perspective, but I actually think that like, I think it depends on the person and the task, right? So like, maybe I'll give you a little bit of background into like what my own process looks like. I am like a systems thinker. like ⁓ the...

in my head when I'm building a thing, I end up having like a map. have a very, like very ⁓ tangible to me view of what I wanna build in my head. Okay, there's gonna be this, and there's gonna be this, and this is gonna do this, that, and the other thing. And like, I have it in my head, right? I can now just describe that thing. I can sit down and I can say like, okay, I want this to talk to that, and this should be using this, that, and the other thing. And then, and then like, okay, great, I will go off and do it.

So for me, the code was never the deliverable. For me, the system was always the deliverable. The code was just the thing that implemented that system. And so the ability to work with the coding agents to say, this is how I want this system to work.

And I give it those guidelines. give it, hey, this thing should go over here and this thing should do that. In some ways it acts like a typist, right? Like it's gonna do a lot of the legwork. It's gonna do a lot of that stuff for me. But it's also gonna say like, hey, like you didn't mention this thing over here, but I went and I did this abstraction for it. I was like, oh yeah, that was a great way to handle that sort of thing, right? And so I think for me personally, because of the way that I approached the problem, which is like in a systems way, and I describe in a systems way, I do say,

Joe (27:22)
Mm-hmm.

Yeah.

Evan Phoenix (27:43)
I

a lot of time because what I am getting very quickly is a, even if it's a broken system, I can go and look at the code and I can be like, okay, great, we're 75 % of the way there. It doesn't work because I under specified this section and we'll go fix that, right? I think that where people have, where it falls down is when you go into the problem space and you don't have a clear idea of what the outcome is supposed to be from a product perspective, right? Or from a systems perspective.

Joe (27:56)
Mm-hmm.

Evan Phoenix (28:13)
So if you're like the someone should be able to log in is a horrible thing, absolutely horrible thing to ask a coding agent to solve for you because there's a mountain of different variation that you could get. And sure, I guess if you want to just see like what it's going to do so that you can form your own opinions, that's fine. But then you're going to be doing that thing. What you're going to do is iterating with, okay. you logged in. ⁓ I actually, I know that's not, I wanted to, I wanted you to use JWTs. ⁓ okay, great. Let me go redo it again.

Joe (28:42)
Right.

Evan Phoenix (28:43)
⁓ actually, no, no, no, that, that, now that's a bad idea. Go off and do that. If you want to do that iteration, that's fine. In, I guess in the way that I think about it is that person is probably saving themselves some time, not a lot of time because the, it's a, ⁓

I'm old enough to remember that when teachers would tell you to write stuff out longhand rather than type it out, because the value of writing stuff out longhand is that your brain has time to think about what the next word is before you get to the next word. And we're basically just accelerating that times a thousand here. So now, whereas before it was like, okay, while I'm typing, I'm also thinking about what the architecture is gonna be. And I'm writing this method that I'm thinking like, I should write the next method that should look like this. And the next message should look like this. ⁓

Joe (29:05)
yeah.

Mm-hmm.

Evan Phoenix (29:30)
skipping that step with the coding agents, but that also means that if you don't have a clear idea, clear-eyed view of what that outcome is, you're going to go back and be like, no, I didn't, sorry, no, let me re-specify three or four times in order to get what I wanted.

Joe (29:40)
Yeah.

Valentino Stoll (29:44)
Yeah, I don't know how many times I pseudocode pair just to see what communication patterns evolve out of that so that it can help inform me of the system thinking that I should be thinking about also. Do you see any of that where you had this map in your head and it was like, maybe you shouldn't think about that map that way. Are you getting surprised by some of your own use out of it?

Evan Phoenix (29:50)
Mm-hmm.

Joe (29:52)
Yeah.

Evan Phoenix (30:08)
Yeah.

Valentino Stoll (30:14)
or is it pretty like, are you getting a good guard rail out of your own use?

Evan Phoenix (30:20)
I would say I get pretty good guardrails, right? So if I go in and I am wildly under-specifying or I have it completely out to lunch, what I will get is a thing. One of the things I love, a newer feature of Claude code is now it'll ask you questions in plan mode.

So if for Claude Clos users out there, if you're not using plan mode, it's amazing. It can ask you questions. So you will specify, hey, I wanna do this, that, and the other thing in plan mode. And it will say like, okay, I have some questions. Did you want like a big house or a little house? And I was like, I didn't specify this house size. Did you want a driveway or did you want it to be like an underground garage? Oh, let's do some Batcave shit. Great, let's go off and do that, right? And so that...

Joe (31:08)
Mm-hmm.

Evan Phoenix (31:12)
I think that when it asked me those questions, I have been reflecting off the fact that like, man, I really am underspecifying a lot of these sections. Right. And so I think that like that, those questions ends up representing guardrails that I didn't get to. Right. Cause I've definitely had sessions where I've been like, Hey, let's go off and build this thing. And I'll go and see that it completely cheated its way out of it. It's like, well yeah. Like you wanted this to return true. I just made it return true. And I was like, okay, well I radically underspecified that like the reason it's true is because you went and looked at the

Joe (31:19)
That's interesting.

Evan Phoenix (31:42)
logs and you figured out the answer, right? And that's on me, that's not on it, right? And so I think that...

Joe (31:46)
It's interesting because that also

may influence your behavior the next time you go and plan. Right? You're thinking about, right. There was some edge cases I didn't think of the last time. So let me make sure I attend to them the first time now.

Evan Phoenix (31:58)
Absolutely. Absolutely.

Valentino Stoll (32:00)
Yeah, you know, I'm interested, like, you've spent a ton of time, like, low level optimizing things, I imagine. Right. ⁓ And like, so you do you find yourself maybe not doing that nearly as much because the LM is just going to make stuff and you can run the script later to, like, optimize itself? Or like, do you find yourself still being like, I really need to go like benchmark this thing and fix like this performance? Like, do you?

Evan Phoenix (32:07)
Yeah. Yeah.

Valentino Stoll (32:28)
Do you even think about that anymore or is it not really anymore? Yeah.

Evan Phoenix (32:31)
yeah. No,

I definitely think about it, but I think about it in the...

like ⁓ in a more, the intentional way I used to think about it, but I don't dread it anymore, right? So like, like one of the things I used to do would be like, okay, we finished a thing. Now we gotta go and figure out, is this fast enough? Is it like, what are the performance characteristics? What are the runtime characteristics of it? And I used to be like, ⁓ man, it took me a week to get this done. I don't really wanna go back and do that right now because it's gonna be another week of like, and so sometimes I would just skip it. You know, I would just like, I gotta move on to the next thing. ⁓

Joe (32:40)
You

Yeah.

Evan Phoenix (33:05)
But now what I get is, and we talked about it briefly earlier, I'll reiterate it again. Now what I have is, like in Claude specifically, I have a bunch of custom agents that are specifically tuned for those activities. So I will have one that's like, hey, like one that's like, you're a, the one that I love is called deployment ready, production deployment readiness engineer. And it is literally says, you are exposed

to

give your hard and fast opinion about whether or not the code that you're asked about is okay to deploy to production. And you should be very critical, but also don't make the bar so high that no one can jump over it or I can't remember exactly what it looks like. so what I will do is after I've done something where I'm like, I think there's probably something in here is I will just say like, hey, I'm gonna go use the bathroom and get a drink. Can you go tell me if this is

Joe (33:53)
Yeah, that's really smart. Yeah.

Evan Phoenix (34:05)
ready to deploy it to production. And it will, it produces a report in Claude afterwards. It's basically says, Hey, you have ⁓ this, this is kind of weird. Like obviously you stub this out. You probably don't want to have this in production. This section right here is like quadratic performance wise. I do not deploy this, whatever you do, because it's going to be insane. Right. And so that great it's finding things. Then I feed that back into the workflow and I'm like, okay, great. Like let's refactor.

Joe (34:10)
Mm-hmm.

Evan Phoenix (34:35)
that out, let's write some performance tests for it. And, you know, I kind of just use it in that way. And so that's work that I, you know, I'm a...

Like what were Larry Wall's, like hubris, laziness kind of things. Like that's where it comes into it, right? Like I have the hubris to ask this tool, can you just see if you can figure this out? And then also like, I wouldn't be doing this in the past, right? And there's a lot of these things that I would just be like, I just, gotta move on with my day. I'm not gonna check this out. I'm just gonna deploy it and great, I'm done, right? Yeah, exactly. Correct, yes.

Joe (35:08)
Right. And then you'd wait and see like what, what performance actually gets hit or what it actually looks like and make the changes.

Yeah. Right. Right. Iteratively improve it. Now I'm interested in what you mentioned about, ⁓ the, product side of using AI to summarize what's happening. I was wondering if you could give us a few of the sort of low level details of what

Evan Phoenix (35:14)
⁓ Agile deployment, yeah.

Yeah.

Joe (35:35)
you know, what LLMs are deployed, you know, how it's deployed and what, you know, ⁓ what all goes into that so that it can make accurate decisions about what's interesting.

Evan Phoenix (35:47)
It's not...

It's not deployed yet. It's not fully built. It's really just spec'd out as a thing that we're planning on building. But we've gone through a number of experiments. Even just this experiment, like I said, with analyzing the transcript was really great in the same way, right? Like, hey, I've got this field, and what I really want to know is, I think that what we have learned over little experiments in summarization in sort of looking for signal and noise is it...

Joe (35:51)
Okay.

Yeah.

Evan Phoenix (36:19)
you asking for something extremely specific is hard, right? So in other words, asking for like, like we, we, ⁓ the,

There's so many memes about like asking an LLM to count for you or asking it to like do math or ⁓ count letters in strawberry, right? Like all those sorts of things. So I think that what we have learned is that you don't really want to ask questions that are of that variety. You want to ask questions that are of like sort of a higher order, like I said, more of a summarized thing, right? So in other words, you want to say,

Joe (36:35)
Yeah.

Evan Phoenix (37:00)
⁓ like given what you like this is last week you said that this field of numbers was okay.

the field of numbers this week looks like this. Can you compare and contrast your feelings as it relates to those numbers and your previous stance, right? That is a thing that it's actually quite good at because what you're doing is you're asking for a different summarization between these two things. And then you had a, what's the right word? You had ⁓ like an opinion about this number. And so you're saying like, okay, well the difference between, I had this opinion about this,

Joe (37:23)
Mm-hmm.

Evan Phoenix (37:40)
Now I'm asked to get an opinion about this, given the difference, how do I think my opinion changes?

Joe (37:45)
Mm-hmm.

Evan Phoenix (37:46)
That is like, again, a very human, the LLMs are trained on human sentiment, human language. And so they're better at giving answers in human sentiment and human language than they would be giving it in mathematical terms, right? But you can still feed it mathematical data. You just can't expect to get reasonable mathematical data on the output unless you're doing something specific with a math model. I don't mean like that. I just mean like the frontier models, right? And so that's why the way that I think about it is in terms of like,

Joe (37:51)
Yeah.

Yeah, yeah.

Evan Phoenix (38:16)
human-centric, human-oriented data and interactions that you're gonna ask for. That's why I talk about this idea of, just a Slack bot that says, hey, you ask it, ⁓ how's things going? And it's like, yeah, things look fine. They look like they did last week. And you're like, okay, great, I'll move on with my day. Right, exactly.

Joe (38:32)
Yeah, yeah, perfect. I know. Yeah, the no status update. That's what, that's what you'd like.

Um, and with respect to, so when I saw the, kind of the demo of the walkthrough, um, online, I thought one of the things I thought was killer was that it, that Mirren detects your architecture. Like you don't have to do any setup, right? It says, Oh, okay. This is a, this is a Ruby on rails app and it's being deployed with.

Evan Phoenix (39:01)
Right.

Joe (39:05)
you know, X or Y, will say Capistrano, sorry, updating myself, but let's say it's deployed with something that is new. now I'm going to try and test 2010's architecture out on Mirren. But I was curious, when I first saw it, was like, oh, okay, that's where they're using some AI to do some detection. But are you actually, is it just a tree where it's like, okay, if I see X, then I know it's Y? Okay, all right, interesting. And then what about when it moves down to

Evan Phoenix (39:09)
Love it. I'm here for Capistrano. yeah. Please do.

Mmm.

Yes, that's right, that's right. I mean.

Joe (39:34)
Deployment files because you also don't have to write those which I really like

Evan Phoenix (39:38)
Yeah, so it still is just doing it on a decision tree today. I think that one of the things that we wanted to be able...

So one of the features of the practice that you can just run it offline. You can just run it wherever you need to run it and it won't, it won't do anything else. And so we always wanted to have that like, Hey, this is the deterministic system version of this, which is just like, Hey, you've got these files. I'm just going to assume that this is the situation we are exploring. ⁓ the higher level things, which is like, Hey, I've got this big app. Can you just derive information that you want from it? We've done that experiment. We didn't put it in the product because we wanted to run offline for now.

Joe (39:49)
Yeah.

Mm-hmm.

Evan Phoenix (40:15)
But

And that experiment is like, I want you to go through and I want you to figure out what are the databases this thing uses in production? ⁓ What kind of configuration does it need in order to configure those databases? Does this need S3? What is the storage? Asking systems questions, right? And I don't think that we're ever going to ask systems questions from a decision pre-perspective, because the decision tree would be fucking massive. Because it's like, where am I looking? And so our intention is actually to use the agents

Joe (40:31)
Mm-hmm.

Right. Yeah.

Evan Phoenix (40:46)
in that way eventually, which is to say like, want you to go analyze this code base and I want you to give me back ⁓ a bunch of... ⁓

specific things that I'm pretty sure are true about it. And I want to present those to the customer or the user. I want to say like, hey, you analyze your code base, looks like you're using S3, looks like you're doing, this is how S3 is configured, looks like you're using Postgres, this is how that's configured. ⁓ Is that correct? And you're like, yeah, absolutely, that's exactly how it is. But now we can use that information to say like, okay, great, you need Postgres, let's just go spin up Postgres for you. You need S3, let's just go give you an S3 bucket endpoint within the cluster to do that kind of stuff.

Joe (41:07)
Mm-hmm.

Yeah. Yeah. Make it so that I don't ever have to persist in a postgres password in a dot file again. And I would be very, very happy. Yeah. Yeah.

Evan Phoenix (41:28)
Exactly.

And we're gonna get there. We're absolutely

gonna get, that's really our aim. Our aim is to say like, look, you're gonna spend a bunch of time developing an application eventually. Hopefully we can help you do that. But for now, you're using whatever workflow you're using. We wanna meet people where they are. We wanna then apply our taste to what that means to take that thing into production, what that means to deploy it. And a lot of that is, yeah, it's just like, I don't wanna have to configure it. I just want it to just sort of

Joe (41:45)
Mm-hmm.

Evan Phoenix (42:01)
figure it out or at least go attempt to configure this thing and say like, hey, is this true? Pretty sure this was true. Can you just confirm with me that that was true? So, yeah.

Joe (42:08)
Yeah.

Yeah, yeah, I like that.

Valentino Stoll (42:13)
Yeah, this makes me think a lot about ambient AI, ⁓ where things are just watching ⁓ and taking notes. ⁓ I could totally see, circling back to the, where do these agents fit? Do you foresee maybe an ambient mirroring agent just sitting in and watching what you're doing and then suggesting and then auto-configuring stuff, right?

Evan Phoenix (42:17)
Yeah.

Joe (42:20)
Hehe.

Evan Phoenix (42:23)
Yeah.

Yeah.

⁓ It's what it- Yeah.

Valentino Stoll (42:42)
Where does

it stop, right? at some point, you know.

Evan Phoenix (42:45)
I'm actually really, I'm glad that

you brought it up. That was one of the things that I talked, when I was first going out and looking for funding, that was actually one of the things that I was like, we're gonna build that eventually. And I pitched almost what you said, which is what I really want the ability to do is have, ⁓ it's maligned at this point, but ⁓ a coding version of Clippy, right? A thing that's basically like, it's not soaking up CPU. It's not trying to like exfiltrate your data. But what it's doing is it's

Joe (42:57)
Mm-hmm.

haha

Evan Phoenix (43:15)
it's just quietly saying like, it looks like this person's working on this, it looks like they're configuring this over here, it looks like they're doing this. And that maybe when it says like, I could help you do this better, I could do this, you know, like, looks like you're, do you want me to go ahead and configure this for you? It can, based on activity, say, hey, like, do you want me to go turn this on? Because I think it would, or I've, I noticed that you've been running some stuff. I just ran some profiling for you while you were, like, you don't need to

about it, I ran the profiling, and here was the output from it, right? I think that like that's absolutely the place that we also want to get to because I think that again it becomes this thing of like

Joe (43:45)
Heh. Mm-hmm.

Evan Phoenix (43:57)
We have taste. One of the things that I talk about with Mirren is how do we put out our view of how things should be done? And one of the ways is to say, hey, we have this thing that encodes our taste about how to write apps, our taste about how to configure your systems. And so you can always just ask it. You can say, hey, how should I set this up? great, you should go, I can do that for you. Or, hey, I've been running the background and I see that you've got all these files

Joe (44:18)
Mm-hmm.

Evan Phoenix (44:27)
around. Do want me to write a config file manager for you instead? great, yeah, go do that please. Right? Stuff that you didn't know to ask about.

Valentino Stoll (44:35)
Yeah, you know, it's funny, like that's why Rails was successful really. It was like super opinionated, you know, ⁓ but also flexible. And so like because it was opinionated, like was very straightforward to like follow the paths that you needed to follow like within like building a web thing. ⁓

Evan Phoenix (44:39)
Yeah.

Joe (44:39)
Yeah, it was.

Well, think

that another, I think that you're right about that Valentino. And I also think that, ⁓ when you have something that's that opinionated, opinionated and becomes very popular, you also get to find out what, ⁓ what people actually care about and are going to like dig in about and what they're like, okay, that's, that's good. That's good enough. Right. And so then, and I think see this, a similar thing happening here with Mirren, right? If you, if you're, if you're ambient agent,

goes and does 12 different things by default and it sets things up and it gives you notifications. You could start to find out, well, okay, great, 90 % of developers actually don't care that much about this. They just want it done properly and they don't care that much about the format. And here's the other 10%, which inevitably other libraries, potential plugins, stuff like that will address.

Evan Phoenix (45:43)
Yes, absolutely. think that I am, maybe backtrack slightly, what a crazy 18 months it's been in this field.

Joe (45:55)
Yeah, yeah, sure has.

Valentino Stoll (45:55)
Just wild.

Evan Phoenix (45:57)
And

I think, yeah, exactly right. And so I feel like we are finding real interesting uses for this technology all the time. ⁓ one of the things that I am really excited about is there is so much, like software has been accelerating for a long time. It feels like there's so much,

Valentino Stoll (45:58)
What is it? Claude didn't exist a month or a year ago, right?

Joe (46:01)
That's

right.

Evan Phoenix (46:27)
We've put up with such crappy solutions for things for a long time because it's like, well, who wants to go invent another expense system or whatever it is? Like just something that's like not exciting. That's been sort of a legacy piece. Maybe I want to go finally do that for real. Right. And how do we enable people the ability to like stretch their wings and say like, let's go, let's go try this. Like one of the big things I love experimentation. I think that you learn so much about

Joe (46:30)
Hmm.

Mm-hmm.

Evan Phoenix (46:57)
the edges of a problem by doing experimentation. And so I really want people to use these tools, to use Mirin, to use all the different coding tools to really... ⁓

exercise those muscles to say like, let's just go build this. it's again, maybe it's a travel tool where ⁓ it only shows you places where there's great raccoons. I don't know, like do it man. Like see what it's like. Maybe there's something there, right? I feel like ⁓ I'm so excited by that and that the tools have gotten from where they were 18 months ago to today. I don't think anyone would predict that. I don't know what the next 18 months is gonna look like.

Joe (47:20)
Yeah.

Yeah.

Evan Phoenix (47:39)
Maybe just like this, maybe we've of like, you know, we've eaten all of that initial plateau. Maybe we've got tons of plateau in front of us. don't, so. Okay, great. Yeah, super. Let me get my notepad.

Joe (47:46)
Actually, I know, I already know. I know most people are just guessing that actually know what the next 18 months is going to be like. And actually this is,

I'm going to, yeah, this is, this is my prediction and actually it benefits Mirren tremendously. So I think you'll like it. my own, my own personal hobby horse is that we're, still in this phase of, okay, this new technology can do amazing things. So let's do everything a lot faster and more efficient.

Evan Phoenix (47:58)
Excellent.

Joe (48:11)
And I don't actually think that's the way paradigm shifts in our industry work. I think if you look back over the history, once we get an amazing new efficiency gain, what we actually start doing is building much more complex and structured systems that did not exist before. And so I think for that reason, and I always go back to this example, even though it's imperfect, is before and after cloud computing. And even though cloud is really just a bunch of machines sitting in a room somewhere, all of a sudden,

Evan Phoenix (48:11)
Mm-hmm.

Sure. Sure.

Yeah. Yeah.

Joe (48:39)
You know, we started by just building the same web applications with the same architecture. And then, you know, over time we said, actually we can do much more complex things, right? Which necessitates something like Mirren. And I think that a, ⁓ a further challenge for small software develop development teams, which is what Mirren targets is that, well, Hey, now table stakes is going to be you building something in this way. Right. And you probably don't.

You probably can't afford a two or three person DevOps team to make that work, but you're gonna need it because no other application is going to work unless it's today's equivalent of like a restaurant web application that's just telling you what's on the menu. And so I really do think that over the next 18 months, you're gonna start to see that kind of the growth and complexity of systems. That's my guess.

Evan Phoenix (49:19)
Right, sure.

Yeah,

I'll piggyback off that and I'll throw out a little ⁓ mini bomb into the conversation, which is to say, I feel like the...

Joe (49:37)
good.

Evan Phoenix (49:43)
I feel like the rise of the monolith is also going to ⁓ continue to occur. So in other words, I feel like we shifted towards microservices because we wanted to sort of like lead into Conway's law. We wanted to be like, you're this team, you own this thing, you're this team, you own this thing. And the ability to integrate that software was a difficult, hard problem. That difficult, hard problem about doing that integration is kind of gone. It's not entirely gone, but it is 90 % gone. And so I think people are going to be like, Hey, like what's the point of that?

Joe (49:55)
Yeah, yeah.

Mm-hmm.

Mm-hmm.

Evan Phoenix (50:13)
Like I can work in the monolith. can tell my coding agent, hey, just make this work within the confines of this thing. Find out the edges, stick it in another directory, you know, make it, go refactor it, all the code inside here to use my new interface. And it's like, sure, no problem, boss. And then it's like a thing that would normally take a week that your manager would never give you the ability to do happened while you were at lunch. And so now you're like, okay, I can just have a big monolith. I don't need to break this stuff up in microservices.

Joe (50:29)
Yeah, right.

Mm-hmm.

Evan Phoenix (50:42)
⁓ I think that we've, like, you know, the last two years or so has sort of seen a retrenchment of the monolith. think that they, I think that the, well, I think they're easier to fit in someone's head. It's, yeah, they're just easier to fit in somebody's head. And I think that we're gonna continue to retrench that.

Joe (50:50)
I've seen that as well, and I think people just like them better You know it's it's easier to reason about yeah, it is

Tell us what's happening at Gust. Is there a giant model?

Valentino Stoll (51:01)
To push back against this,

Evan Phoenix (51:03)
Yeah. Please.

Valentino Stoll (51:05)
I feel like you're right until you get to certain scale. Maybe this will be solved with context window issues, but that ultimately is a huge problem. Once you get to a certain scale of everything in the same place, the coding agents start to lose track of what everything exists.

Joe (51:26)
Hmm.

Evan Phoenix (51:27)
Sure.

Valentino Stoll (51:28)
And so once you have a certain size of an application or code base, ⁓ you try and get it to, how do you then orchestrate the agents, so they find the path and be able to cross collaborate across those things in the monolith. ⁓ Sometimes it's easier in a separate service and you can just say, here's the API for it. You don't need to worry about how it works. ⁓ And that can definitely work better currently. Not to say it won't, I feel like...

Joe (51:49)
Hmm.

Valentino Stoll (51:57)
the monolith is still the right bet because like from what we've seen things only get better, right? ⁓ But I do want to like I want to circle back to like, you know, because you're both Joe, you have a great point of like your outlook. ⁓ And like I feel like we're talking about we've been talking about like real versus fake AI. But I feel like there's like this middle imaginary line ⁓ to Evan to your point of experimentation of like hypothetical AI. Right. ⁓ you know, like the AIs being like, you know,

Joe (52:03)
Yeah.

Evan Phoenix (52:21)
Yeah. Yeah, sure.

Joe (52:24)
you

Valentino Stoll (52:27)
getting them to come up with ideas of what hypothetically would be. We have this exercise, which we all enjoy, like, what would it look like if it were this? And we run this experiment. ⁓ What happens when the AIs start doing this? ⁓ I experiment with this all the time, personally. I call it autogenetic from biology, where self-assembling things, where it's just reflecting on its own things, but also its environment. ⁓

Evan Phoenix (52:38)
Mm-hmm. Yeah.

Valentino Stoll (52:57)
What happens when it starts to imagine things? If you give it certain personas, if you're one of these sub-agents of yours, it's honed up, focused on reviewing, make sure it's production-ready, well, what if it starts having an imagination of its own of what production-ready looks like? And maybe how does that evolve as an agent? Do you mess around with any of this style of ⁓ hypotheticals with...

Evan Phoenix (53:15)
Sure. Yeah.

Joe (53:21)
Hmm.

Valentino Stoll (53:27)
like your coding habits for it.

Evan Phoenix (53:29)
Yeah,

I definitely, I mean, like ⁓ I have weird projects that I'm like, hey, like, let's just go build this thing. I want to know what this looks like. Like, just give it a shot. I want to see how it works itself out. But I think that like, I kind of want to hit on a slightly different point that you brought up, which is ⁓ the software is for the most part only good if it's good for other people. Like in other words, like

the the the human centric version of the

what we create is going to become more and more and more and more important, right? I think that there is a whole bunch of backend systems, like this backend system talks to this backend system that talks to this backend system, but it's doing that not because it's like that would be fun to do, it's doing that because like the power needs to stay on in someone's house because it needs to keep them warm or they wanna watch TV, right? So there's a human in all of those loops for the most part, right? And I think that we're going to get to sit, we're gonna get to situations even

Joe (54:24)
Mm-hmm.

Evan Phoenix (54:33)
more that are like, okay, well, like, what does the person want? And I think that that is such a great place to get, for us to get to, because again, that gets us to taste, that gets us to aesthetics, that, know, and we're sort of rapidly approaching like, okay, well, what is the art of building a thing that people like, that is good for people, right? As opposed to just like, what's possible, right? Like, in other words, like, we could all differentiate between the aesthetics of like, ⁓

that old XKCD that's like a webpage with a million options, right? Versus a thing that's just like a wizard that will walk you through. Like the second is obviously human centric because it's like, I need the context. I needed to know what I'm doing, right? And I think we're gonna see just more and more conversations about that. ⁓ Because the inverse is that like, again, if it's software for another machine,

Joe (55:07)
He

Evan Phoenix (55:29)
the API doesn't matter, how you describe it doesn't matter, the fact that there are even words involved doesn't matter. It becomes a pure mathematical construct and yeah, maybe there's a place for that, but I think that the...

the bulk of what people work on is going to be like, okay, well, what is the interface boundary between this code and the person? And how can I inject my own taste about how that should work into that conversation?

Valentino Stoll (56:02)
Yeah, and to extend that too, how does that change over time?

Evan Phoenix (56:05)
Yeah.

Joe (56:06)
You mean the human preferences?

Evan Phoenix (56:06)
Yeah, I mean.

Valentino Stoll (56:09)
Yeah, human preferences, but also like usage, right? Like say like, you know, clock goes out, like that changes how people use like the internet, right? Like how people change all kinds of different things in their life, right? Which are human centric. So like, does, how do other things evolve when there's change, right?

Joe (56:12)
Yes.

Hehe.

That's true, but we do change

slower. I mean, maybe there'll be a faster rate of change as we get more more used to all of these different tools and all of this different advancement.

Evan Phoenix (56:36)
Yeah.

But I think that that's where the experimentation is really interesting, right? Like I think that, you know,

the easy example here is we didn't know how great the smartphone was as a tool, human tool, until we had the smartphone. We had to attempt that experimentation, but to go down that road and to say, this is actually like, the human hand is this big, right? And so the device needs to be this big, exactly. It has very specific human-centric things, right? And so I think that that's where the experimentation is really interesting for people to try out, right? And I think that there's a lot

Joe (56:59)
He

Evan Phoenix (57:12)
of ⁓ like the push in AI right now from the people who have Boku dollars is like, how do I put a hardware AI thing on your body, in your face, on your whatever? And I think that sure, run those experiments, go to town, burn as much money as you want down. I have nothing to say about that. But I think that the, the, ⁓

Joe (57:31)
Mm-hmm.

Valentino Stoll (57:34)
You mean you don't own VR goggles?

Evan Phoenix (57:36)
My

kids have a Quest 2, how about that? I bought them for that during the pandemic. That was a really good pandemic purchase, by the way. Yeah. But I think that like, I love the fact that the coding tools are making solving problems more accessible. I have a friend of mine who ⁓ works in the, I live in LA and he works in the film industry and he vibe coded an entire app.

Joe (57:39)
That's...

Yeah, yeah, that sounds great. It sounds like lot of fun for the kids, yeah.

Valentino Stoll (57:43)
Yeah, same.

Evan Phoenix (58:05)
on his own because he's like, I just want to understand this. I have feelings about it. I want to just vibe code this whole thing. And he's like, he showed me like a couple of months in, he's like, is this a real thing? And I was like, man, it looks like a real thing to me. His first few iterations were literally like uploading code to chat GPT, telling it and then telling him what to change him copying the files and putting them locally. I was like, man, I got to show you some of these tools that you can just run locally, right? It'll be a big unlock for you. But he wouldn't be here.

Joe (58:18)
Mm-hmm.

Yeah.

Evan Phoenix (58:35)
He wouldn't be doing that experimentation. He wouldn't be saying, like, what is the interface between this? What makes sense? How can I change this? Right? I think that ⁓ outcomes are based off of human time.

In other words, how long your manager is gonna let you work on polishing up this interface is a direct influence of how much time, what your time is worth in terms of money, because we live in capitalism. And so I think that by...

cutting down the amount of time it takes, we can run more of those experiments. Now there's gonna be companies out there that are like, okay, great, you can do stuff 10 times faster, I'm gonna give you 10 times as much work. And I actually hope that doesn't happen as much. I hope that it's like, okay, great, I have more time to iterate, I have more time to come up with novel, unique, interesting solutions to this problem that normally I would come, I have to do the most obvious one because that's all I've got time for.

Joe (59:31)
Yeah, yeah, that's interesting. I'd like to see that too. I'm a little bit, I've got a little bit more of a dim view of it, but I do think that, so I don't like, I guess I should say I have a dim view of it across the entire landscape, but I also think that there, the companies that do take the time to say, let's experiment and let's, let's build something new. Let's be a little bit more ambitious with our, with the time that we have are going to go really far. That's, that's what.

Evan Phoenix (59:56)
Yeah,

yeah, I am. I am forever the optimist. So. Yeah. ⁓

Joe (1:00:01)
Good, good. We should spend more time. We should spend more time together. The first thing I thought when you told me about

Valentino Stoll (1:00:02)
Me too.

Joe (1:00:06)
your friend was, well, as soon as he gets a couple of users, tell him to call deaf method because he's going to, that, application is going to be a wreck and we could help.

Evan Phoenix (1:00:11)
Yeah.

Valentino Stoll (1:00:15)
You know, there's a lot of truth there. ⁓ I was at the AI ⁓ ECODE Summit in New York City recently and I saw Google up on stage and they're like, you were there? I don't know. Yeah, we just missed each other. ⁓ I know. We showed them. They had a booth set up we probably could have used. But yeah, like the...

Evan Phoenix (1:00:18)
Sure, absolutely.

Joe (1:00:27)
You were at the summit, I was there. We should've out. Yeah, all right. We'll have to coordinate better next time. We could podcast from there next time. Yeah, yeah, yeah.

Evan Phoenix (1:00:34)
Yeah. Yeah.

Valentino Stoll (1:00:41)
the you know Google's up there and they're showing their AI studio and so I mess around I'm like you know can I make something out of it and then ⁓ there's like a little deploy button I'm like okay yeah I'll just deploy this thing and it like you know deploys it to some like sub domain on Google and it like kind of works but like so many things were missing because like you can't just push a button to deploy something and like as soon as you want to change any aspect of that deployment like I wanted to

Joe (1:01:05)
Mm-hmm.

Valentino Stoll (1:01:09)
know, cash stuff in a database. It's like, well, you got to hook up a database. Yeah, I started asking for too many things. I'm just like, you know, okay, like, maybe it's not there. But like it could be. But, know, at the same time, like, do we even want it to be there at that level? You know, because like, I just foresee like, people that just don't know what they're doing. They're like, you know, how do they even know they need a database? Right? Like, they don't know that like and

Joe (1:01:12)
You asked for too much. asked for too much.

Evan Phoenix (1:01:13)
Right. Yes.

Yeah.

Valentino Stoll (1:01:37)
And how does

that like consideration even come up, right?

Joe (1:01:40)
I just, love the idea

of, Evan, I want to let you respond, but I just love the idea of those, the people at that Google booth that just were getting rubes all day long saying, this is amazing. Just did not see Valentino coming. Like, God, this one's going to be hard.

Evan Phoenix (1:01:43)
Yeah.

I

think that like, man, I have such a...

It's a real frustration with these tools that are like built on a pedestal or where the cliff is like a thousand feet tall, right? Where you're like, I deployed a thing and you're like, ⁓ this is great. I absolutely love this. This is what I want. And then they're like, okay, how do I do the next thing? And they're like, sorry. You're like, sorry, what do you mean sorry? It's like, that's not for me.

Joe (1:02:20)
Yeah.

That's That's

it. Yeah.

Evan Phoenix (1:02:24)
It's like, okay, so like,

why did I even spend my time here? Right? Like, think that, ⁓ I think that that is... ⁓

good marketing and user hostile, in my opinion. Because I think what you're doing is if that tool is not actually available for that person to grow and evolve with, you're sort of cheating them. You're sort of trying to like, this is really only good for ⁓ single page apps that only run HTML and JavaScript and are completely stateless. It's like, okay, like.

Joe (1:02:36)
Mm-hmm.

Evan Phoenix (1:02:58)
But what do I do if that's not the case? And they're like, I don't know, you can find another solution. It's like, what are we doing? So yeah.

Joe (1:03:02)
Yeah, yeah, call someone else. Yeah.

Valentino Stoll (1:03:10)
So I'm curious, we've talked about a lot of great stuff here. Circling back to the Ruby aspect of this show, where do you see Ruby's strengths being in this landscape? Where do you see it missing on where the industry is heading, right?

Evan Phoenix (1:03:18)
Yeah, sure, please.

Yeah, I think that Ruby is a really ideal.

platform and language and stack for doing a lot of, like writing a lot of agent work because it's always been really flexible and like, well, like I want to take this data in and I want to massage it in this one way and I want to talk to these network services to do this, that, and the other thing. And we've, there's a lot of that going on right now where you're offloading ⁓ to an agent to do something or do whatever. There's a whole ton of automation. That's just that sort of thing where you want, you're going to be doing

so much daily iteration on just like what that automation looks like that Ruby is super great for, right? Because you're not writing very much. You're just like, go, go do this. And when this comes back, go do this, that, and the other thing. And great, I've expressed that in exactly as many lines as I had sentences there. And I can, I can move on with my day, right? And so I think it's ⁓ the, a lot of the things that people fault Ruby for are just, they're disappearing, right? So it's like, well, it doesn't have types.

It's like, well, you know, like for the most part, the coding agents are actually really good at this. And if you really want types, there's a billion type tools that the coding agent would be happy to fill in 90 % of the types for if that's what you really want, right? So I think all that is sort of going away. I think that like we've seen these huge advances in just like what a single core computer can do. So like the performance disadvantages that Ruby has as a comparison to Go or whatever are rapidly declining in terms of what the actual app

Joe (1:04:51)
Mm-hmm.

Evan Phoenix (1:05:11)
application is supposed to do, right? So if it's supposed to like, I'm gonna go off and I'm gonna talk to this, that, the other thing, great, like the performance is not a problem anymore. Like I think that those things are starting to sort of bleed away, right? So I think that in many ways, it feels like the reality of writing Ruby apps is that...

it's all those disadvantages are slowly melting away and all of the advantages that have always been core to the idea of dynamic typing and the organization and the framework and all the code, the libraries and gems that are available for Ruby are starting to outweigh any of those disadvantages because all the advances in other technology are just sort of eating away at those disadvantages, but they're not eating away at the advantages, right? So like you could probably make

argument that like, well, like, you don't really need to write small chunks of code anymore because the coding agent can. And so I can just write this thing that I would normally write in Ruby and C++. And now it's 10 times faster. I was like, yeah, but then we get into, as you were talking about Valentino, we get into context, we get into understanding, we get into all these things. like, you know, there's a, we're still in token count world, right? So like the fact that Ruby generates fewer tokens to in and fewer tokens out is a, is a distinct advantage also in terms of like

Joe (1:06:24)
Mm-hmm.

Evan Phoenix (1:06:33)
like how it can reason and what it can hold and how it can know what the system does. And so I see it eating, I see the technical advantages eating away more at the disadvantages that people would bring up for Ruby and less so at the advantages.

Joe (1:06:49)
I like that a lot. was one who was swayed, it was probably a year ago, by the, Ruby doesn't have types and is that gonna be a disadvantage as we go forward? And I'm glad to see that that's not the case. ⁓ Because I don't really wanna use Sorbet. I guess that's what it comes down to.

Evan Phoenix (1:07:02)
Yeah.

Well,

Valentino Stoll (1:07:07)
Yeah, mean,

Evan Phoenix (1:07:08)
I think what's fu-

Valentino Stoll (1:07:08)
Gusto makes use of Sorbet and, you know, very effectively, especially with GraphQL coupling. like, it works in a lot of ways.

Joe (1:07:12)
Yeah, all right.

Evan Phoenix (1:07:12)
Yeah.

Joe (1:07:17)
Okay.

Evan Phoenix (1:07:18)
I think what's funny is that...

the coding agents don't care about types. I guarantee you, they do not have a type inference engine built into the LLM at its core layer. It is reasoning about the types in exactly the same way that a human would reason about the types. in that way, it can reason about having the code not having types in exactly the same way that someone else could do that, right? And I think the advantage in terms of Ruby is that it's got a really great testing culture. It's got a really great way of managing that.

Joe (1:07:27)
Hmm.

Yeah, that's a point.

Evan Phoenix (1:07:49)
And

that's where you're like, hey, you're gonna go write this thing? Okay, I need you to go make sure that we have 100 % test coverage. It's like, yeah, no problem, boss, I got it. And so that was always the structural advantage that the Ruby community had was that it had built itself off of Agile, it had built itself off of, hey, let's have tests. Now those tests are the, those are the bumpers, those are the guardrails for those AI agents. And great, you come

Joe (1:07:58)
Mm-hmm.

Evan Phoenix (1:08:19)
into adding a thing to a gem and that gem's got huge test coverage, you're feeling good about going through and adding that stuff because you know that that test coverage is there, but also the agent can like help you enhance that test coverage.

Valentino Stoll (1:08:36)
Yeah, I agree with that. ⁓ You know, the biggest advantage I've seen from like Ruby from an AI perspective has been the training data available to it based just solely on the people that have been in, right? Like, ⁓ you know, Rubyists, like they're a unique bunch, right? You go through any like any online forum and you're just like, they're Rubyists. They're like strange and crazy. ⁓

Evan Phoenix (1:08:49)
yeah.

Yeah.

Joe (1:09:01)
Yeah,

yeah, I think so too.

Valentino Stoll (1:09:02)
I feel like that's historically accurate. ⁓

And I feel like that does influence, right? And it has a lot of influence. And you do get a different result than you might get out of another language, which is just kind of funny.

Evan Phoenix (1:09:09)
Yeah.

yeah.

You bring up such a great point because the training data has a huge impact on their abilities.

⁓ I know that you had Chad Fowler on the podcast previously. Chad mentioned to me that he had a, he's mentioned a friend that was building a language that looked exactly like React from three years ago, explicitly because React from three years ago is what most of the Frontier AIs were trained on. And so they were so good at it, right? And in that way, the fact that Ruby's tastes,

are fair, they move a lot slower than say JavaScript's tastes in what packages to use and all that kind of stuff is that is a structural advantage to using the coding agents, right? If I like, if you go out to use, like if you go say, hey, build me a JavaScript app that does this and the other thing, it probably is gonna use a bunch of dependencies from like two or three years ago. And the JavaScript does would be like, why did you use this? No one's using that today. Everyone's on this other thing. And it's like, sorry, I...

Joe (1:10:02)
Yeah, I agree.

Yeah, yeah, yeah, that's a good impression because they are gonna yell at you.

Evan Phoenix (1:10:21)
Yeah, they are going to yell at you. And they're going to

say like, no one uses react. That's react with a Q. I'm just making up a random library here. Everyone is using react, the one with a K now. And it's not going to know that because that community moves so fast and that is a structural disadvantage to using the coding agents. Whereas, you know, like you want to go reach for, I'll beat my own drum here. You want to go reach for a web server. The web server market, the web server gems in Ruby have changed very little over the course of last 10 years.

Joe (1:10:28)
Yeah.

Mm-hmm.

Evan Phoenix (1:10:51)
you want to go reach for an HTTP client. Again, it's changed very little over the course. So it's going to make a choice that you're going to be like, totally like that is that is the simplest choice that everybody would make. So.

Joe (1:11:02)
Mm-hmm.

Valentino Stoll (1:11:02)
That's really funny. And you know, I also see a unique advantage in Ruby switching from SVN to Git so late in that the training data is missing for a lot of the old like old stuff, you know?

Evan Phoenix (1:11:09)
Yeah.

Joe (1:11:10)
Hahaha

for the old stuff, yeah, interesting. Yeah.

Evan Phoenix (1:11:15)
Yeah, yeah,

yeah. Yeah, so it's, ⁓ that's funny. Yeah, I mean, I think that like that, and it'll be interesting to see how that works itself out over the course of the next many moons, right? Because I think that like,

Joe (1:11:22)
You

Evan Phoenix (1:11:34)
I don't know that it's necessarily gonna go away because I think there's always gonna be a lag on the training data and what those things are capable of doing. The tool use has an impact here, but I definitely think that ⁓ they are, you could make the argument that the AI coding tools are,

better modern Rubyists than they are better modern JavaScript programmers because modern means something different in those different communities.

Joe (1:12:04)
blue.

Valentino Stoll (1:12:06)
Yeah, totally. It'll be interesting to see how it evolves too. Well, we've had you, ⁓ we've explored so many topics here. Yeah, we have you over time. I want to be mindful of everyone's time here. ⁓

Evan Phoenix (1:12:09)
Yeah.

Joe (1:12:14)
had you over time, which is what we do. We would schedule it for an hour and a half,

Evan Phoenix (1:12:14)
Yeah, all good

Joe (1:12:20)
but first of all, less people would show up. And second of all, then we'd just go for an hour and 50 minutes.

Evan Phoenix (1:12:22)
It's right exactly yeah

Valentino Stoll (1:12:25)
Right, yeah.

Are there any departing words that you want to share? ⁓ I'm going to personally check out Mirren because definitely deployment for small teams is a good mantra to have for a deployment company. And some things I miss about Heroku in that way, now that they've clopped on so many different features.

Evan Phoenix (1:12:35)
No thanks. Great. Yeah. Yeah.

Yes.

Joe (1:12:48)
Yeah.

Evan Phoenix (1:12:48)
Well,

yeah, mean, like our mentality is also based off of us being small teams. Being a small team, want to build a small, we want to be a small team that's building things for other small teams. And equally, I feel like we're, you know, if I had to give an 18 month prediction, mine would be that like,

Small, by small teams I mean like fewer than 15 people are going to be punching way above their weight over the course of this 18 months than they were maybe in 2019. And that means them moving faster, that means them doing more experiments, and that's really where we wanna be supporting those sorts of people. yeah, thanks. All right.

Joe (1:13:16)
Hmm.

Yeah, strong prediction. I like it. ⁓

Valentino Stoll (1:13:37)
Awesome.

Joe (1:13:37)
I want

to, I don't want to let us go without wishing everybody a happy holiday season. And, ⁓ and I just would like to ⁓ maybe on Valentino's behalf, or maybe he doesn't feel this way, I'd like to thank everybody who's, who's been listening to the show. ⁓ And anybody who's, who sent a message or come up to me at at a meetup or to Valentino at a meetup, it means the world to me. I've had so much fun doing this and I didn't, I never expected to have this much fun.

Evan Phoenix (1:13:42)
Absolutely. Absolutely.

Joe (1:14:06)
So thanks to everybody listening and thank you Valentino because it's really been great. ⁓ I almost did a podcast on my own which would have been so boring for everybody. Instead I got you and it's been wonderful.

Valentino Stoll (1:14:20)
Yeah, absolutely. You know, surprise, Evan, your last recording of the year. ⁓ You know, yeah.

Joe (1:14:27)
That's all right.

Evan Phoenix (1:14:27)
That makes sense. That's actually good.

I'm glad to hear that you guys are exercising good work-life balance and I'm the last one of the year. So yeah.

Joe (1:14:34)
That's right. Yeah. Yeah.

Valentino Stoll (1:14:36)
Yeah, this is it, you know, like I'm out the rest of the year. I don't know about Joe, but, you know, yeah, this has been like pretty wild. know, Joe and I met at like, yeah, just a meetup, small meetup in New York City, thanks to Scott Werner and yeah, just snowballed into this and, you know, we haven't quite got the full year of recordings in, but like pretty close. And we finally got a regular schedule and yeah, I mean.

Joe (1:14:40)
Yeah.

Evan Phoenix (1:14:41)
Yeah.

Amazing.

Joe (1:14:51)
He

Yeah.

Valentino Stoll (1:15:04)
Evan, I've been a huge fan of yours since, ⁓ what was that, 2015 Ruby Kaggy. That I'll never forget the JIT, you know, how does a JIT work? That was great. Yeah.

Evan Phoenix (1:15:07)
thank you.

Joe (1:15:09)
Yeah.

Evan Phoenix (1:15:09)
Yeah.

Yeah, that was a fun one. That was a fun one.

Joe (1:15:13)
Hahaha. ⁓

Yeah, getting to talk to some of our heroes is one of the biggest, if not the biggest, you know, benefit of doing this show.

Evan Phoenix (1:15:20)
Nah, I appreciate that.

Valentino Stoll (1:15:25)
Yeah, so thank you to all our listeners. ⁓ We appreciate you. I definitely share your sentiment, Joe.

Joe (1:15:31)
And thank you, Evan. It's been great having you on and would love to talk to you again sometime. Yeah. All right. Take it easy. Bye.

Evan Phoenix (1:15:32)
Yeah. Yeah. Thanks guys. Really appreciate being on. Absolutely. And happy holidays everybody.

Valentino Stoll (1:15:38)
Cool. Later.

Want to modernize your Rails system?

Def Method helps teams modernize high-stakes Rails applications without disrupting their business.