전사 🔗
WEBVTT
00:00:00.320 --> 00:00:04.080
Hey everybody, welcome to another episode of the Ruby AI Podcast.
00:00:04.240 --> 00:00:06.400
I am one of your hosts today, Valentino Stoll.
00:00:06.959 --> 00:00:08.880
And hey, and I'm with the other guy.
00:00:08.960 --> 00:00:10.000
I'm Joe Leo.
00:00:10.480 --> 00:00:13.359
And I am really excited, Valentino.
00:00:13.439 --> 00:00:16.640
I'm excited because it feels like we're all back.
00:00:16.800 --> 00:00:17.760
We're all back to school.
00:00:17.920 --> 00:00:19.039
We're all back to work.
00:00:19.280 --> 00:00:22.480
And I've got some renewed energy for the podcast.
00:00:22.559 --> 00:00:23.760
We're going every week.
00:00:23.920 --> 00:00:30.239
And to sort of help us kick that off, this fall, we have none other than Jim Remsick.
00:00:30.399 --> 00:00:32.000
Jim, welcome to the show.
00:00:32.479 --> 00:00:33.920
Thank you so much for having me.
00:00:34.240 --> 00:00:38.240
So, Jim, we were talking about this just before we aired.
00:00:38.640 --> 00:00:42.320
I'm kind of fascinated by XORuby.
00:00:42.799 --> 00:00:45.039
And I'm fascinated on a number of fronts.
00:00:45.200 --> 00:00:51.679
One is because it's such a cool idea, and it is also very simple, so I'm kind of surprised that it hasn't been done before.
00:00:51.840 --> 00:00:58.560
I'm also fascinated from the organizer standpoint because I don't actually know how you have the stamina to do this.
00:00:58.960 --> 00:01:00.880
So I kind of want to learn about that.
00:01:01.119 --> 00:01:11.680
And I'm also interested because of the city choices and the venue choices, I think they're kind of fascinating to me, and they really seem to generate so much joy and positivity.
00:01:11.920 --> 00:01:12.959
So why don't we start there?
00:01:13.120 --> 00:01:16.239
Why don't you tell us a little bit about XORuby and how you got it off the ground?
00:01:16.640 --> 00:01:30.159
So I have been going to conferences since I started my professional Ruby career just before I went to a SharePoint event in Vegas, which was not what I want to do with my life, but to each of their own.
00:01:30.400 --> 00:01:36.239
And my first day as a professional Rubyist was at RubyConf in Charlotte in 2007.
00:01:36.480 --> 00:01:40.480
It was in November, and that's when I joined HashRacket back in the day.
00:01:40.719 --> 00:01:46.799
What happened shortly thereafter was I submitted a talk to it wasn't Scottish Ruby yet?
00:01:46.959 --> 00:01:49.519
Scotland on Rails, I think was the original conference.
00:01:49.760 --> 00:01:55.599
Got accepted and had never written a talk before, had never spoken before, but I wanted to go to Scotland.
00:01:56.000 --> 00:01:56.799
That's a good reason.
00:01:57.040 --> 00:02:07.519
Really enjoyed the experience, but what happened like immediately was I saw, and I've told this story a few times, and I haven't had uh Alan or Grant or Paul reach out and tell me to stop telling it.
00:02:07.599 --> 00:02:14.000
So, you know, we showed up for registration and just instant line backed up, so many people trying to get registered.
00:02:14.080 --> 00:02:17.120
And I jumped behind the table and I said, How can I help?
00:02:17.360 --> 00:02:22.879
And they're like, People need their shirts in their size, you know, when they come over here, they're gonna give you a ticket, handout t-shirts.
00:02:22.960 --> 00:02:24.159
And so did that.
00:02:24.639 --> 00:02:36.639
And not that long after we started planning Madison Ruby, we ran, oh my goodness, we ran Madison Ruby for 12 years and it's not entirely dead yet.
00:02:36.879 --> 00:02:39.439
But I've been putting all my focus on XO.
00:02:39.919 --> 00:02:42.400
So again, I've been to a lot of conferences over the years.
00:02:42.479 --> 00:02:46.879
I've seen really good ones, I've seen less good ones, I've seen big ones, I've seen small ones.
00:02:47.039 --> 00:02:50.080
The ones that I've always really loved going to were smaller rooms.
00:02:50.240 --> 00:02:55.680
And the reason being you get to really talk to and interact with everybody in that room.
00:02:55.840 --> 00:03:02.479
And so if there's a founder there or if there's somebody who's just coming out of a boot camp, you're just as likely to talk to them.
00:03:02.639 --> 00:03:07.360
And that's really the format that we were trying to set up for XO.
00:03:07.840 --> 00:03:18.719
But also, we've heard feedback, I've listened to feedback from lots and lots and lots of people about they love the big conferences, but they're expensive, they have to be by design.
00:03:18.800 --> 00:03:24.960
You're getting all these people together, all of those people need to get there, they need to stay for a few days in order to make it worthwhile.
00:03:25.199 --> 00:03:33.840
And so I wanted to, especially coming out of the pandemic or on this side of COVID, wanted to de-risk, and so we wanted to make it cheaper.
00:03:34.080 --> 00:03:36.479
Could we do a conference that was a hundred dollar ticket?
00:03:36.719 --> 00:03:37.520
What would that look like?
00:03:37.599 --> 00:03:44.560
And that meant scoping it down to one day, making it largely local so that we don't have to pay for speakers to fly in.
00:03:44.879 --> 00:03:50.960
We still have had people who have traveled, but we try to be up front and tell them that you're not going to get compensation for it.
00:03:51.039 --> 00:03:55.520
It's just not how the conference is built, it's built to be low risk as much as possible.
00:03:55.759 --> 00:04:09.680
And honestly, we do the conference for$100, and for lunch, we give everybody$25 back and send them out into the local community to go to restaurants to get lunch, which is you know another facet of the conference that we set up.
00:04:09.759 --> 00:04:11.759
We try to make it as inclusive as possible.
00:04:11.919 --> 00:04:30.000
And so it doesn't matter if you got a free ticket or if you're volunteering, if you're a sponsor or whatever, everybody gets$25 so that
Load full transcript
everybody has a level set for what they're gonna do for lunch so that everybody can participate in that social activity of like we're gonna go out for an hour, hour and a half, two hours, I think in some cities, and go eat lunch together.
00:04:30.240 --> 00:04:31.360
Yeah, I really like that.
00:04:31.439 --> 00:04:33.759
So it means really only paying 75 bucks, right?
00:04:33.920 --> 00:04:34.639
At the most.
00:04:34.959 --> 00:04:38.319
Yeah, if you bring a sack lunch, you get 25 bucks back.
00:04:39.519 --> 00:04:41.199
Yeah, that's awesome.
00:04:41.439 --> 00:04:50.000
I liked this, what you said about there being local speakers and trying to find sort of inexpensive ways to get it done.
00:04:50.160 --> 00:04:56.560
I remember right before COVID, I was one of the people running Goruko for a number of years.
00:04:56.800 --> 00:05:09.279
And, you know, just like a lot of conferences, ours was getting too expensive and so dependent on either many sponsors or several deep pocketed sponsors that it really became quite risky.
00:05:09.519 --> 00:05:21.120
And I know just from reading your post, your first one lost a few thousand dollars, and we were, you know, we were up against looking at tens of thousands of dollars in losses in one year, and it was just like, this is terrifying.
00:05:21.199 --> 00:05:24.079
We want to we want to have a good conference with great people.
00:05:24.240 --> 00:05:29.759
We're all just Ruby engineers doing this in our spare time, and we want it to be fun, but we don't want to put that much risk into it.
00:05:29.839 --> 00:05:34.000
And it sounds like you had the same idea and went a different way about de-risking.
00:05:34.240 --> 00:05:38.399
Yeah, at the end of the day, it's still a$75,000 risk to me.
00:05:38.560 --> 00:05:50.560
It's just spread across six cities, and we set up our venues as much so that we go into cities where we don't necessarily have relationships with a bunch of people, and so that happened in Salt Lake City.
00:05:50.720 --> 00:05:53.680
We failed, we did not do a conference in Salt Lake City.
00:05:53.839 --> 00:05:58.079
It's not that we didn't have local people, it's not that we didn't have some support.
00:05:58.240 --> 00:06:03.759
The venue actually sponsored us and was going to be a really, really cheap venue and still really great.
00:06:04.079 --> 00:06:21.360
We couldn't find the community of people to attend that would make it make sense, and so it was not my favorite day when I canceled that conference, but at the same time, I don't want to put on something where 10 people show up and be like, this event could have been a YouTube playlist, right?
00:06:21.759 --> 00:06:24.399
So try to keep up the quality as much as possible.
00:06:24.480 --> 00:06:29.839
And a big part of what we're trying to do is bring people together in physical space and get them interacting with one another.
00:06:29.920 --> 00:06:33.839
I think that's really where the value I've gotten through conferences in the past have been.
00:06:34.240 --> 00:06:56.160
I remember my first Rails conf was in Baltimore, and it was just like massive, so many people, and like the most valuable part of it was the Unconference, the hallway tracks, and like everybody organizing just a small room where they wanted to talk about a very specific thing, and then you're like there talking with people who are working on stuff that you're working on.
00:06:56.399 --> 00:06:57.839
It makes so much more sense.
00:06:58.000 --> 00:07:04.800
And the North Carolina meetup that Jeremy uh has started putting on the Blue Ridge, Blue Ridge.
00:07:05.040 --> 00:07:14.000
I remember when that first came out and the small venue and people love it, and it makes a lot of sense having these smaller venues.
00:07:14.240 --> 00:07:18.480
So I guess doing a lot of cities, are you like Rails on tour?
00:07:18.639 --> 00:07:21.439
Kind of I would say I'm Ruby on a tour, right?
00:07:21.519 --> 00:07:36.879
Like the emphasis has been when I plan a leg, I try to go to a city that has a community, and then I try to go far enough away that most people wouldn't drive that far, but it's easy enough for me to cover over the course of a couple of days.
00:07:37.120 --> 00:07:43.120
My geography was really bad last year, and so I wound up Portland, San Diego, Austin.
00:07:43.360 --> 00:07:46.240
Did you know it takes 22 hours to drive from San Diego to Austin?
00:07:46.399 --> 00:07:58.160
I didn't know, but I know now, and so I try to go far enough away that the attendees wouldn't follow, and so we can do for another city nearby what we just did for that.
00:07:58.319 --> 00:08:03.839
So our October leg is Toronto, New York, and Montreal.
00:08:04.079 --> 00:08:05.040
Two Canadian cities.
00:08:05.120 --> 00:08:10.000
We've been very northern heavy this fall, and that is, you know, again, listening to people.
00:08:10.160 --> 00:08:21.439
I've a lot of Canadian Rubyists are like, man, I would love to come to a Ruby conference, but there's none happening in Canada, and I can't go to the US right now, which I understand and can appreciate.
00:08:21.759 --> 00:08:27.199
So listening to the audience and going to where they want things to happen.
00:08:27.439 --> 00:08:38.000
And Toronto's a really great city, Montreal is a great city, and so again, that's all the risking, going where the people are already that say, Hey, have you ever thought about coming here?
00:08:38.240 --> 00:08:45.600
And my dream is for us to get some small user group in Oklahoma or or wherever to say, we've got an audience here.
00:08:45.840 --> 00:08:47.840
Would you consider coming and doing something here?
00:08:48.000 --> 00:08:48.639
Absolutely.
00:08:48.799 --> 00:08:55.840
That is the dream to take this to places normally don't get conferences and give them their event.
00:08:56.000 --> 00:09:04.320
And then ideally, we'll eventually have people say, Hey, if I didn't have to drive 9,000 miles, this looks like
something that I could do.
00:09:04.639 --> 00:09:10.320
And could you give me some instructions or some help in getting this set up so that we could just do this again next year without you?
00:09:10.559 --> 00:09:11.360
Yeah, that's awesome.
00:09:11.440 --> 00:09:12.080
That would be amazing.
00:09:12.240 --> 00:09:16.960
So if I wanted to join still for one of these October legs, uh tickets are still on sale.
00:09:17.279 --> 00:09:17.679
Absolutely.
00:09:17.759 --> 00:09:22.320
Uh x ruby.com and slash events again, Toronto.
00:09:22.559 --> 00:09:24.480
That's how you know I'm not Canadian.
00:09:24.639 --> 00:09:27.600
And then New York City and Montreal.
00:09:27.679 --> 00:09:30.799
So that's October 3rd, October 10th, October 17th.
00:09:30.879 --> 00:09:32.320
They're three Saturdays in a row.
00:09:32.559 --> 00:09:32.879
Okay.
00:09:33.200 --> 00:09:34.240
I might go to one of these.
00:09:34.320 --> 00:09:34.879
It sounds fun.
00:09:35.120 --> 00:09:44.480
Yeah, Valentino is really feeling the FOMO because I've been to RubyConf and I'm going to a conference in a couple of weeks, and he's just like, Come on, man, I gotta get out there.
00:09:44.639 --> 00:09:47.200
Are you going to Rocky Mountain Ruby or SF Ruby?
00:09:48.000 --> 00:09:48.559
Me, no.
00:09:48.639 --> 00:09:53.759
I am going to the hotly debated Rails World the week after next.
00:09:54.000 --> 00:09:59.919
And actually, I wanted to talk to you a little bit about that, Jim, because this is an interesting time, isn't it?
00:10:00.159 --> 00:10:02.559
For Rails World to even be happening.
00:10:02.799 --> 00:10:12.080
We have Moss Cap, which is Lucas Doman's latest, or not his latest, but the latest attempt to fork Rails and get everybody off of it and using something else.
00:10:12.240 --> 00:10:17.759
And some new reasons to be polarized or to dislike DHH have come out lately.
00:10:18.159 --> 00:10:22.240
Even most recently, this is not from a purely technical standpoint.
00:10:22.320 --> 00:10:34.480
Our friend of the show, Matt Stolt, has uh talked about the revival of View Component and gave this long, long dissertation about how Rails has lost its way from an architectural standpoint on the front end.
00:10:34.799 --> 00:10:40.799
And kind of amid all of that, you know, here comes Rails World for its first US stop.
00:10:41.600 --> 00:10:45.279
So I'm gonna be down there and I'll have a ticket, and I'm curious.
00:10:45.440 --> 00:10:49.759
It sounds like you'll be there without a ticket, but you'll be there for the community.
00:10:50.000 --> 00:10:57.279
Yeah, there's lots of folks in Austin that I would love to hang out with and trying to take advantage of the density of people that I know and and whatnot.
00:10:57.519 --> 00:11:03.360
And so we're probably gonna do a small exorby get together while I'm down there.
00:11:03.679 --> 00:11:04.159
Oh, cool.
00:11:04.480 --> 00:11:10.559
And the goal is just like giving folks a place to gather and have a small gathering of folks.
00:11:11.120 --> 00:11:35.759
What I would love for that thing to be is a place where we talk about what's lacking in the community and what could we have and what is the work that we need to do in order to get there and then to write that up and publish it after that event in such a way that I know that there's lots of energy and it has never been easier to make things happen than it is today with AI.
00:11:36.000 --> 00:11:40.399
And so what is the community lacking and what could we do about it?
00:11:40.639 --> 00:11:44.000
I don't know that a fork of Rails is the right way to go.
00:11:44.559 --> 00:11:45.200
I just don't know.
00:11:45.440 --> 00:11:47.840
I'm not an expert, I've only been doing it for 20 years.
00:11:48.559 --> 00:11:54.240
I've seen other languages try to adopt Rails patterns and things like that, but it rarely goes well.
00:11:54.480 --> 00:12:01.360
But there's just so much investment and so much already invested in the the ecosystem that I think you've got to do something else.
00:12:01.440 --> 00:12:09.759
And you could look at things like hanami as a great alternative, but there is a a learning curve and cost in order to get up and running with that.
00:12:10.000 --> 00:12:11.679
Not to say that they've done anything wrong.
00:12:11.759 --> 00:12:14.000
I just I have to go and learn that.
00:12:14.240 --> 00:12:22.879
And we're looking at it now from the perspective of maybe we can uh augment ourselves with AI a little bit and get going faster in that direction.
00:12:23.039 --> 00:12:31.360
But it's super hard to not continue to suckle at the rails teeth because it is something that I've invested a lot of my life into.
00:12:31.759 --> 00:12:36.080
I just wish that I had warm fuzzies using it that I I used to.
00:12:36.399 --> 00:12:37.679
Yeah, I understand.
00:12:37.919 --> 00:12:39.200
I had those as well.
00:12:39.440 --> 00:12:51.840
Now, if I knew that in advance that you'd be doing an exogathering and that Ariel would be having a pool party, I might have just bought the plane ticket to come down and skipped Railsworld.
00:12:52.159 --> 00:12:57.120
I am also conflicted because I love conferences big and small, so I do like the big conferences.
00:12:57.279 --> 00:13:04.480
I've got friends that are speaking there, and we have some folks that are speaking there that are gonna be on the show over the next few weeks.
00:13:04.559 --> 00:13:07.600
So, you know, and I so I have all of that as well.
00:13:07.840 --> 00:13:12.639
But the community conversations and the existential questions still need to be asked.
00:13:12.799 --> 00:13:20.960
A lot of them were being asked at RubyConf, sort of openly, and you know, not being answered immediately, which is probably appropriate.
00:13:21.200 --> 00:13:24.320
And it sounds like you're planning on sort of continuing that.
00:13:24.720 --> 00:13:31.519
Yeah, I mean, what I'm doing in in Austin, I don't want that to be the focus of like big man bad.
00:13:31.679 --> 00:13:37.679
What I really care about is working towards what we could have and how do we get there.
00:13:37.919 --> 00:13:45.679
In our pre-show conference, uh you were talking about how you know you bought a ticket, so you're part of the problem or your or you're I'm part of the problem.
00:13:45.840 --> 00:13:46.240
Yeah.
00:13:46.480 --> 00:13:49.840
And I was an MC two years ago in Toronto for Railsworld.
00:13:50.159 --> 00:13:50.960
Oh yeah, right.
00:13:51.200 --> 00:13:54.240
We've all been involved at various levels for a long time.
00:13:54.480 --> 00:13:57.600
The work that I've done helping to put on RailsConf and whatnot.
00:13:57.840 --> 00:14:02.799
At some point, there's a line where you gotta make a decision where you're gonna support and whatnot.
00:14:02.960 --> 00:14:21.200
And I found mine, I'm not trying to judge other folks, but it's also again, it's super hard because a lot of my business and my employees have relied on working in this industry with this software, and we can retool, we can go elsewhere, but it's gonna take time and and effort.
00:14:21.360 --> 00:14:23.519
So what do you do in the meantime?
00:14:23.840 --> 00:14:26.159
Do you wean yourself off of rails?
00:14:26.240 --> 00:14:29.360
Do you stop giving money to direct consequences?
00:14:29.519 --> 00:14:34.720
Do you we just saw that OnePassword and DigitalOcean gave a bunch of money to uh Omarchi?
00:14:35.120 --> 00:14:44.879
We're long-term OnePassword customers, and we're looking at Bitwarden now and trying to vote with our feet and our wallets as much as possible.
00:14:45.200 --> 00:14:54.159
But it sounds like you want to vote with your feet and your wallet before you vote with the technological choices and the porting and all the other stuff that is gonna cost more time and money.
00:14:54.559 --> 00:14:56.159
It's direct action on our part.
00:14:56.240 --> 00:15:00.320
It's what we can do right now while we work out the strategic longer-term things.
00:15:00.559 --> 00:15:00.879
Yeah.
00:15:01.039 --> 00:15:04.080
It's not an easy situation to be in for a lot of us.
00:15:04.399 --> 00:15:05.840
Yeah, I think you're right about that.
00:15:06.320 --> 00:15:07.200
Let me say this.
00:15:07.440 --> 00:15:09.360
There is some vagueness, right?
00:15:09.519 --> 00:15:16.639
When we think about open source for Rails, there is one person who is credited as authoring Rails, right?
00:15:16.720 --> 00:15:19.759
And that's DH, and he still oversees all of it.
00:15:19.919 --> 00:15:24.480
Of course, thousands of people have helped to build Rails and have, you know, made it what it becomes today.
00:15:24.639 --> 00:15:36.720
And the fact that it's open source, maybe it gives people, you know, maybe it even gives me some sort of cognitive dissonance or something where it's like, well, but who is making money off of this and how?
00:15:37.279 --> 00:15:43.039
The problem is that when when a conference comes along like Railsworld, you kind of know exactly how that works.
00:15:43.200 --> 00:15:44.960
You know, I mean it becomes pretty clear.
00:15:45.360 --> 00:15:51.600
As a conference organizer, I would just point out Railsworld is put on by the Rails Foundation, which has DHH as its head.
00:15:51.759 --> 00:15:51.919
Yeah.
00:15:52.159 --> 00:15:56.799
X Ruby is largely if people don't show up, that's coming out of my pocket.
00:15:56.879 --> 00:16:05.039
And so I would encourage people to vote with their feet and their money and put their support into the things that they can change right now.
00:16:05.279 --> 00:16:08.320
But also, like, I want to look towards the future.
00:16:08.399 --> 00:16:10.159
Like, what do we want as a community?
00:16:10.320 --> 00:16:16.000
You're absolutely right that a lot of people have done open source work committing to Rails, etc.
00:16:16.480 --> 00:16:22.320
It's probably 15 years old at this point, but I I do have a commit on there where I I was working with Tim Pope.
00:16:22.559 --> 00:16:23.519
Do I feel good about that?
00:16:23.759 --> 00:16:25.120
There's Vim in Rails now.
00:16:25.440 --> 00:16:26.559
Sorry, that's not high.
00:16:26.960 --> 00:16:30.320
I think Tim Pope, and I just think there's something is involved.
00:16:31.360 --> 00:16:36.639
I learned Vim by pairing with T-Pope, and I would hope that we shared some positive traits back and forth.
00:16:36.799 --> 00:16:40.480
But there are lots of people who have been paid to work on Rails.
00:16:40.559 --> 00:16:51.519
There are lots of people who have not been paid to work on Rails, and a lot of it comes down to does it really matter if you're using open source software?
00:16:51.840 --> 00:16:59.679
There is a certain amount of like thought leader, etc., that gets attributed to DHH that maybe other folks had a hand in or whatnot.
00:17:00.399 --> 00:17:10.720
But I've tried to go as much to again just to direct action, is the money that's leaving my pocket right now going directly into somebody who I disagree with's pocket?
00:17:11.119 --> 00:17:13.519
So I've had conversations with friends.
00:17:13.599 --> 00:17:16.720
I was like, hey, I see you're still rocking a hey.com email address.
00:17:17.119 --> 00:17:18.559
That suggests something to me.
00:17:19.119 --> 00:17:24.319
You should just know that that's what it's communicating these days, is that I'm funding this.
00:17:24.559 --> 00:17:32.000
And I've had a few friends that were that felt challenged by that conversation that ultimately they're like, you know, I thought about it, you're not wrong.
00:17:32.240 --> 00:17:36.079
And I'm not saying if you have a hey.com email address that you're an evil person.
00:17:36.240 --> 00:17:37.279
That's not what I'm saying.
00:17:37.440 --> 00:17:42.240
I'm just saying we have the ability to make choices about what we want the world to look like.
00:17:42.400 --> 00:17:49.440
And that's what I'm choosing to do is to put my money and put myself in places where I can
make a better space for people.
00:17:49.759 --> 00:17:50.640
Thanks for that, Jim.
00:17:50.720 --> 00:17:51.200
I really appreciate it.
00:17:51.359 --> 00:17:52.960
That's kind of what AI enables too, right?
00:17:53.039 --> 00:17:56.160
It's like democratization of choice in a way.
00:17:56.400 --> 00:17:59.920
Although you gotta use one of the big players still in this moment.
00:18:00.079 --> 00:18:01.839
Uh, but hopefully that changes, right?
00:18:02.000 --> 00:18:02.960
I think it is changing.
00:18:03.039 --> 00:18:06.079
And actually, Jim actually told me a story about this in Ruby Central.
00:18:06.160 --> 00:18:09.680
You have uh you had one of the open source LLMs running on your machine, right?
00:18:09.759 --> 00:18:11.839
That was helping you uh with a client at that time.
00:18:12.160 --> 00:18:13.920
Sorry, at RubyConf, not Ruby Central.
00:18:14.000 --> 00:18:14.319
Yeah.
00:18:14.640 --> 00:18:18.240
We've been playing around with open weight stuff for a little while at Flagrant.
00:18:18.480 --> 00:18:21.119
You know, we had a pretty big win with a client.
00:18:21.200 --> 00:18:30.640
You know, we wound up accelerating uh we came into a project and um they said, hey, we've got this thing that's close to market.
00:18:30.880 --> 00:18:33.519
All you need to do is these 600 cards and we'll be done.
00:18:33.839 --> 00:18:35.680
So close, 90% of the way there.
00:18:36.000 --> 00:18:36.559
Exactly.
00:18:36.799 --> 00:18:49.200
And so we did with a small team execute uh 700 cards and 300 of them not being the cards that they had originally gave us because they didn't know how far away they were.
00:18:49.440 --> 00:18:51.200
So we identify new stuff as we went.
00:18:51.440 --> 00:18:56.640
But we were able to do that over the course of 10 weeks with uh not one person but a small team.
00:18:57.039 --> 00:19:00.480
That's not something that we would have been able to do last year, for example.
00:19:00.799 --> 00:19:02.960
And so does it democratize?
00:19:03.119 --> 00:19:11.519
I kind of feel like what it does is it uh what it could do is it could democratize the ability to spin up larger projects for an individual.
00:19:11.839 --> 00:19:20.000
It can also uh take a smaller, well-funded uh group and take their viewpoints and get them out there faster.
00:19:20.480 --> 00:19:23.119
And so it's a double-edged sword for sure.
00:19:23.519 --> 00:19:32.480
So many people that I know that have viewpoints that I share are anti-AI, and I just wonder whether that's serving them as well as they think it is.
00:19:32.720 --> 00:19:38.160
Especially with the open weight models and stuff, you can get away from you know big data center contributions and things like that.
00:19:38.480 --> 00:19:39.359
Yeah, you make a great point.
00:19:39.440 --> 00:19:46.160
I mean, I'm looking forward to the community shared compute, taking the old CERN distributed compute networks, right?
00:19:46.240 --> 00:19:51.200
And like democratizing the actual AI compute in your neighborhood.
00:19:51.440 --> 00:20:00.559
And I'm getting on board with that idea more where your local communities start to drive the AI that that you want to use and share, right?
00:20:00.799 --> 00:20:02.799
Even Ruby communities, we could do that.
00:20:03.119 --> 00:20:04.000
I'm totally with you.
00:20:04.079 --> 00:20:09.920
Yeah, I mean that would be the true democratization, uh, which I hope we get there before they stamp all that out.
00:20:11.200 --> 00:20:16.880
Yeah, it's not really clustering, but we've been making available our machines to the rest of the team.
00:20:17.039 --> 00:20:26.480
You know, we've got some people that have bigger iron than others, and so if they're running an OLAMA model and it's available on the tail scale, maybe I'll use their machine instead of et cetera.
00:20:26.640 --> 00:20:27.839
So that's cool.
00:20:28.000 --> 00:20:28.559
That's interesting.
00:20:28.720 --> 00:20:29.599
What do you use for that?
00:20:29.680 --> 00:20:30.400
I'm curious.
00:20:30.640 --> 00:20:32.160
Anything open source?
00:20:33.279 --> 00:20:34.559
Well, there's all of it.
00:20:34.640 --> 00:20:41.519
So open weight models atop of OLAMA, and then we use Tail Scale, which is not open source, but you could use WireGuard the same way.
00:20:41.680 --> 00:20:48.960
It makes it look like you're on the same intranet, and so that traffic is allowed, even though we're not exposing it to the world.
00:20:49.359 --> 00:20:50.079
Interesting.
00:20:50.319 --> 00:20:55.599
I wonder if I love that idea, if VLLM could distribute that in a similar way.
00:20:55.839 --> 00:20:57.359
I'm gonna have to play with that.
00:20:57.599 --> 00:21:00.160
What do you like about that kind of setup for your team?
00:21:00.400 --> 00:21:04.559
Do you find people like leaning more into like these open models?
00:21:04.880 --> 00:21:12.799
Or is there still like kind of a fallback resiliency to people clinging to bigger ones that just can do more at once?
00:21:13.119 --> 00:21:16.480
Where do you find your team kind of like falling into the bucketing there?
00:21:16.799 --> 00:21:19.599
I think that in large part we're still using a lot of claud.
00:21:19.680 --> 00:21:31.039
Like it is hard to beat a frontier model for code reasoning and whatnot, but we're able to set up smaller jobs that don't burn our cloud resources and allows us to pick and choose our battles.
00:21:31.119 --> 00:21:32.160
This is a simple thing.
00:21:32.319 --> 00:21:50.640
We've got a client that when we first started on this project earlier this year, we were intending to just have API calls out to Claude that we're able to the logic that ultimately was needed for their application was small enough that we could solve it with an open weight model and uh deploy that with Run Pod.
00:21:50.799 --> 00:21:57.680
And so it'll be going against uh RunPod in a serverless configuration so that they'll only get charged for what they use.
00:21:57.920 -->
00:21:59.759
And I think that's the thing is.
00:22:00.319 --> 00:22:06.079
A lot of people think that the only way to be productive is with a frontier model, Claude, ChatGPT, etc.
00:22:06.319 --> 00:22:12.960
But once you've realized the decisions that actually need to be made, sometimes they're a lot smaller than that iron requires.
00:22:13.200 --> 00:22:13.920
Yeah, 100%.
00:22:14.319 --> 00:22:21.759
You know, what I've been finding too is you know, once you get a task that you know you're gonna do all the time, like that's fine tuning.
00:22:21.839 --> 00:22:28.240
Like the frontier models are great at fine-tuning models, which is funny, because then you don't have to use them anymore for that task.
00:22:29.440 --> 00:22:30.319
Absolutely.
00:22:30.559 --> 00:22:40.720
I've been playing in the evenings with a little like dungeon crawler thing, just uh mostly what it's doing is it is allowing me to exercise all these things and say, here's what I want.
00:22:40.880 --> 00:22:42.720
What do I have to do in order to get there?
00:22:42.960 --> 00:22:52.799
It's a breakable toy, nobody else is using it, but it allows me to play around with image generation and see how awesome and awful that can be.
00:22:52.960 --> 00:22:59.119
You know, I've been generating ambient sound and for the most part working off of open weight models.
00:22:59.279 --> 00:23:01.599
So results haven't always been great, but you know what?
00:23:01.759 --> 00:23:06.640
You don't need all the pixels in order to you just need something to spark your imagination.
00:23:06.799 --> 00:23:09.119
And so it's gotten me pretty far that way.
00:23:09.440 --> 00:23:17.839
You know, I've heard some things about how like you know, your consultancy has like kind of moved to a more design heavy, maybe than dev realm.
00:23:18.160 --> 00:23:23.440
I guess where does the AI fit into that landscape or like your operational landscape?
00:23:23.680 --> 00:23:28.319
Big model or not, where are the tasks really emerging where you're just handing it off?
00:23:28.799 --> 00:23:36.799
Inspired by Landon Gray, I developed a AI chief of staff just that brings things to the forefront, make sure that I don't drop things.
00:23:36.960 --> 00:23:40.319
Unfortunately, I need to remind it to run every day.
00:23:40.480 --> 00:23:47.119
So that's the next task is to make it autonomous so that, or at least like set it up on a cron job so that I don't forget to do that.
00:23:47.440 --> 00:23:57.200
And there's been a lot of like where we're largely landing is research and operations things that are our repeated tasks that just need to happen.
00:23:57.440 --> 00:24:02.960
We're not choosing to generate from whole cloth like social media stuff.
00:24:03.200 --> 00:24:06.000
We have designers that care about how things look.
00:24:06.240 --> 00:24:09.920
I think that is where we've seen the least gain is with design.
00:24:10.000 --> 00:24:23.519
We just we've got a client right now that has been frustrated with the pace of the illustrations that we're doing on a project, and they're trying to solve it by just having one-shot illustrations from Claude.
00:24:23.759 --> 00:24:37.200
And you know, we're getting some of the things that you might expect, like, hey, uh they're holding the phone, but they still have two arms at their side, which are all solvable things these days with whichever image generator you're using.
00:24:37.440 --> 00:24:50.160
And the reasons that the frustrations have come up have been largely process-based, and we're still having to consult and tell people if you want success, here's the process that needs to happen in order to get there.
00:24:50.319 --> 00:24:57.039
It's more interactions with humans, not less, because AI will give you something every time you ask.
00:24:57.359 --> 00:25:07.200
It's not necessarily going to be correct, could be amazing, but chances are you're gonna have to make a prompt and say, that's good, it's not quite exactly what I wanted.
00:25:07.279 --> 00:25:09.279
Here's a refinement, here's a refinement.
00:25:09.519 --> 00:25:14.559
And if you can get to a place where that's producing predictable results, that's fantastic.
00:25:14.799 --> 00:25:20.480
If you're trying to one-shot every illustration for an entire UI, probably you're gonna have a bad time.
00:25:20.799 --> 00:25:21.839
Yeah, totally.
00:25:22.160 --> 00:25:41.359
You know, you've been writing and talking a lot, from what I could tell, about workflows, processes, and even here you've been talking about this, and it's interesting to me because it sounds so first edition of XP Explained, where it's like, hey, we gotta talk a lot and we gotta iterate a lot.
00:25:41.599 --> 00:25:46.559
In some ways, none of this is new, but in other ways, I like you, I can relate.
00:25:46.640 --> 00:25:52.079
I feel I find myself also looking for ways to explain the process.
00:25:52.319 --> 00:25:57.920
How do you think that has changed your role as a an owner of a consultancy?
00:25:58.079 --> 00:26:00.640
And how do you think it's changed the roles of your engineers?
00:26:01.039 --> 00:26:17.359
What I am noticing is that every time I see a new tool, I understand that I'm gonna be impacted by this just like I was impacted by blockchain, just like I was impacted by NFTs and every other flash in the pan technology that has come out.
00:26:17.519 --> 00:26:23.200
But also, like the important things, I am here because I paid attention to Ruby and Rails back in the day, right?
00:26:23.440 --> 00:26:40.720
And so our customers are being sold a bill of goods that is you're gonna be able to have fewer employees because AI is gonna do all this work for you, and we're having to disabuse them of that knowledge usually and say it can, but it takes a lot of work.
00:26:40.960 --> 00:26:53.119
That project where we did 700 cards in 10 weeks, we spent the first two weeks just setting up all of the infrastructure in the project in order to make
sure that we got consistent results throughout.
00:26:53.279 --> 00:26:54.799
It was frustrating for the customer.
00:26:54.880 --> 00:26:59.680
They're like, hey, we're one-fifth of the way through this project and you haven't delivered a single card.
00:26:59.920 --> 00:27:07.920
I will talk through what we delivered for you, but there's a lot here, it's just it's not visible to you as a consumer of the end software.
00:27:08.160 --> 00:27:23.839
We've had to put on our consultant hat a lot more and educate our customers more uh in ways that I think that we lost a little bit over the years because people broadly understood how software was made, they might not always agree, and now things are shifting.
00:27:24.079 --> 00:27:31.839
And I was talking to a newer developer not that long ago who had concerns about like, should I still be a developer?
00:27:32.079 --> 00:27:33.920
Is this still a field that I should be in?
00:27:34.079 --> 00:27:39.359
And with each of these shifts, you know, you could measure how much impact that they've had on the community.
00:27:39.599 --> 00:27:47.440
But if you use the analogy of an earthquake, even after an earthquake, most of the people are still there, most of the infrastructure is still there.
00:27:47.599 --> 00:27:54.640
There are some things that have been destroyed and have to be rebuilt, but you're not completely remaking the society there.
00:27:54.880 --> 00:28:05.440
And so that's my my view on our industry is there's gonna be work for a long time because we're not gonna be just AIs talking to AIs.
00:28:05.680 --> 00:28:08.240
At the end of the day, we're building things for people.
00:28:08.400 --> 00:28:14.880
We might build more, and we might build some things that are just systems talking to systems, but that's not the end of the story.
00:28:15.359 --> 00:28:17.359
A few things stood out to me in what you said.
00:28:17.519 --> 00:28:29.839
First, that you know, you have to spend some time talking to the clients about how you might work for a couple of weeks and not have anything to show for it, which you know, for a long time, even the early years of Rails, that was true.
00:28:30.000 --> 00:28:35.440
You know, before Heroku, it used to take you a couple of weeks to set up even the infrastructure to just deploy.
00:28:35.599 --> 00:28:39.200
And so nobody saw anything unless you came to the office and looked at it on my computer.
00:28:39.440 --> 00:28:52.240
And so, you know, you had to explain that and you had to talk people through that before, during, and after because it's uh an anxiety-producing time, and it's right at the beginning of the project when you're trying to build up trust with this client that presumably doesn't know you very well yet.
00:28:52.400 --> 00:28:53.759
And so that can be challenging.
00:28:53.839 --> 00:29:04.559
But of course, so it's like what's old is new again, because that timeline shrunk and shrunk and shrunk as uh all of these tools got better and better, and now it's expanding a little bit because hey, this infrastructure actually is important.
00:29:04.720 --> 00:29:15.359
So when you say it took you two weeks, I mean, for me and Valentino, it's it's of course everybody would be like, yes, of course, it's gonna take you a couple of weeks to set up that infrastructure, unless you're just YOLOing everything and it's not gonna be very good.
00:29:15.680 --> 00:29:32.000
And you know, and I think the other thing that stood out to me from what you said is that there's gotta be some more consulting on your end, and there's gotta be some more discussions and not fewer, which really you need engineers and you need kind of good communicators, um, which not all engineers are.
00:29:32.240 --> 00:29:36.960
So then the person who comes to you and asks, should I even be a software engineer anymore?
00:29:37.359 --> 00:29:38.960
To me, that answer is yes.
00:29:39.119 --> 00:29:47.039
But well, I mean, it's yes if you want it to be in the beginning to begin with, but you should also expect that job to be different than what you might have expected.
00:29:47.440 --> 00:29:51.279
Being a good communicator is being a good software developer.
00:29:51.440 --> 00:29:52.480
End of story.
00:29:52.799 --> 00:29:54.799
We could make anything happen.
00:29:55.039 --> 00:30:09.680
So it's trying to figure out what exactly does the customer need, not what did they ask for, but what do they need, and what is the thing that we could deliver within the resources that they have in order to make them successful?
00:30:10.319 --> 00:30:14.480
It sounds so simple, and there's so much work tied up in making those things happen.
00:30:14.880 --> 00:30:18.640
Software used to be like writing, basically prose.
00:30:18.960 --> 00:30:23.039
You read a lot, you write a lot, and uh you can get away with just that.
00:30:23.279 --> 00:30:29.680
If you want to be more like salesy, you own maybe a consultancy, you interface more with the client, like you don't have to though.
00:30:29.920 --> 00:30:37.519
And I feel like what we're getting into is less of that of everybody having to interface, right, with the consumers.
00:30:37.839 --> 00:30:52.079
I think about that because like the alert of becoming a programmer used to be, well, I could just sit in the basement somewhere and be impacting people's lives or whatever they may think, but like you know, they wouldn't have to see another human for months at a time if they didn't want to.
00:30:52.400 --> 00:30:53.359
That's changing.
00:30:53.519 --> 00:30:56.880
I feel like there's becoming less of that possibility.
00:30:57.279 --> 00:31:06.880
I think in a lot of ways, AI is contributing to like the compression of how long it takes to do stuff leads to okay, I've done three different versions.
00:31:07.119 --> 00:31:08.240
Which one do you like?
00:31:08.400 --> 00:31:19.440
Whether that's with your team, whether that's with a client, it compresses the amount of time that it
takes to do research, that it takes to do an initial implementation, that it takes to give you a style.
00:31:19.599 --> 00:31:22.640
And so it means that you're coming back to the table more often.
00:31:22.960 --> 00:31:25.359
And you need more of your client's time.
00:31:25.519 --> 00:31:29.440
For a while there, we used to, all right, here's the direction that we're going.
00:31:29.759 --> 00:31:34.480
We'll talk to you next week once we've got something to show you, and then we'll meet again after that.
00:31:34.720 --> 00:31:36.000
And I think you're right.
00:31:36.079 --> 00:31:42.160
I think it's causing more conversations to happen more often, which is delightful for me because I like people.
00:31:42.400 --> 00:31:49.359
I'm not somebody who's able to get stuck in a basement and and not talk with people, but it is a way that the work is changing for sure.
00:31:49.680 --> 00:31:55.359
Yeah, you are like me, Jim, and that's why we own consultancies because we don't mind getting out there and talking to people a lot.
00:31:55.599 --> 00:32:08.160
I'm curious for our listeners, diving back into the workflow itself, what does a great AI-assisted workflow for Ruby engineering look like?
00:32:08.400 --> 00:32:12.160
Where do those two weeks go, for example, in the beginning?
00:32:12.480 --> 00:32:14.640
The consultant's answer is it depends.
00:32:14.880 --> 00:32:16.640
How are you looking to augment yourself?
00:32:16.880 --> 00:32:45.519
If you're looking to like have an MCP connected to Linear, for example, where it will go out and read the ticket and potentially do some research and spruce it up a little bit so that it's something that's actually workable, connecting with uh some sort of issue tracking system automatically, it is making sure that when you're working within your app, are you just trusting that when you say edit the coupon functionality to do this, is it just gonna find one thing named coupon and do that?
00:32:45.680 --> 00:32:51.599
Or are you gonna use like Graphica and search throughout the entire project to find all instances of coupons?
00:32:51.920 --> 00:32:58.079
Another you could put a vector search in there and say he said coupons, but I see this thing that's a discount.
00:32:58.400 --> 00:32:59.599
Is that related?
00:32:59.839 --> 00:33:21.519
And uh again, it depends, but I think that there's as much feeding agent files and whatnot and making sure that you're connected to uh MCP docs and your issue tracking system, all of those things play a role in it, but ultimately depends on how much you're trying to get done and what that space looks like.
00:33:21.920 --> 00:33:40.559
We have some customized tools that we work with occasionally that have their own MCP servers that Claude doesn't know about and wouldn't be able to play with the other wiring in uh Firefox or a Chrome MCP so that Claude could actually look at the results of what's been done and make an assessment.
00:33:40.720 --> 00:33:45.920
You know, it shouldn't be the final decider, but it should be able to determine whether or not there are errors on the page.
00:33:46.240 --> 00:33:53.200
I don't think it's anything uh earth-shattering, but uh if you haven't done it before, there's a long list of things that you could do.
00:33:53.519 --> 00:34:13.119
But if you take the average developer loop that you go through when you're building something, are my tests run, how does it look in a browser, how does it look in multiple browsers, and a lot of that can be automated to an extent that gives you the chance to see the final state and before you you know make a commit.
00:34:13.519 --> 00:34:17.679
We don't typically allow our agents to commit without us looking at it.
00:34:17.920 --> 00:34:26.239
We manually push all of our code, which some people may feel is is overkill, but at the end of the day, that's where we're putting our name on things.
00:34:26.320 --> 00:34:28.159
So yeah, that's interesting.
00:34:28.239 --> 00:34:30.559
I uh two questions come to mind when you say that.
00:34:30.719 --> 00:34:34.159
The first is have you created a policy at Flagrant?
00:34:34.239 --> 00:34:36.159
Is that what everybody has agreed to?
00:34:36.559 --> 00:34:39.440
We will review our code and push manually.
00:34:39.840 --> 00:34:42.000
So it's written into some agent files.
00:34:42.239 --> 00:34:49.360
I've been writing a lot of the agent files for our projects, and so it is in there, but I wouldn't call it a policy.
00:34:49.599 --> 00:34:52.400
And that is a place where we're still getting there.
00:34:52.480 --> 00:34:55.360
I'm probably the most pro AI.
00:34:55.440 --> 00:35:01.199
We've got a few people on the team that are deep in it, but some folks on the team are have held back a little bit.
00:35:01.360 --> 00:35:08.320
We're bringing them along, but it's educating them as much as there's any sort of um anti-AI stance.
00:35:08.480 --> 00:35:11.760
I think most people are just don't have experience with it yet.
00:35:12.000 --> 00:35:13.519
Maybe some healthy skepticism.
00:35:13.840 --> 00:35:14.159
Sure.
00:35:14.239 --> 00:35:15.920
I mean I have some healthy skepticism.
00:35:16.000 --> 00:35:28.239
I have issues with the training of all this stuff being done on stolen intellectual property and writing and whatnot, and the ethics of data centers, which has pushed me to the open weight model stuff as much as I can.
00:35:28.639 --> 00:35:34.159
That doesn't strike me as skepticism over the efficacy of AI for assisting in development though.
00:35:34.559 --> 00:35:35.840
Sure, you're correct.
00:35:36.079 --> 00:35:42.079
I think it is helpful, and how helpful is where I put my skepticism.
00:35:42.320 --> 00:35:52.000
I've seen more than one member of my team spin and spin and spin on something, and and you know, you take a step back and say, it looks like it's the solution would be this.
00:35:52.159 --> 00:35:53.039
Have you tried that?
00:35:53.519 --> 00:35:58.239
Yeah, I
even thought about that, but Claude was going this way, like, but you're the decider.
00:35:58.559 --> 00:35:59.039
Right.
00:35:59.280 --> 00:36:00.320
You are the decider.
00:36:00.400 --> 00:36:01.440
Yeah, that's good.
00:36:01.840 --> 00:36:04.719
Actually, I wanted to, I was looking at some of your recent posts.
00:36:04.800 --> 00:36:15.519
I wanted to dig into something because last week V and I were talking about some decisions by some open source maintainers to shut out community PRs, right?
00:36:15.599 --> 00:36:22.880
They're just like you can file issues, every PR is going to get automatically converted to an issue, and an agent's gonna take care of it, which was interesting to me.
00:36:22.960 --> 00:36:28.400
And you posted something recently, and you were just asking, hey, what projects are the best organized?
00:36:28.880 --> 00:36:47.039
And so I've got a question for you, which is sort of in the context of how things have changed for some projects in the advent of AI, and then probably for all, uh, with respect to there's just so much volume of PRs and issues being entered now for all open source projects.
00:36:47.360 --> 00:36:51.519
What does it look like to you for a project that is well run, quote unquote?
00:36:51.840 --> 00:36:53.119
I think it's pretty simple.
00:36:53.280 --> 00:36:55.280
It just comes down to expectation settings.
00:36:55.599 --> 00:37:00.880
Does the project say do they have a policy that they've exposed?
00:37:01.199 --> 00:37:14.239
There are a lot of open source maintainers that have been struggling with just the weight of having to respond to all these one-shotted PRs that people are doing, thinking, oh, this is something that I could help.
00:37:14.480 --> 00:37:17.280
I think for the most part, they think that they're being helpful.
00:37:17.519 --> 00:37:24.639
They're just not taking into consideration the work that they're creating for other people because they haven't been that person, they they don't have that experience either.
00:37:25.199 --> 00:37:36.400
And I think it is expectation setting, good communication, it's really no different than running a good paid project, but you just oftentimes don't get paid for it, right?
00:37:36.480 --> 00:37:42.719
Like to take the conversation of expectations a a step further, I would say there's governance, right?
00:37:43.039 --> 00:38:01.519
Which comes in the mode of uh codes of conduct, comes in the form of having a an AI policy, having what is it that you can do to communicate if I interact with this project, how is my interaction going to be uh considered in order for me to be successful?
00:38:01.920 --> 00:38:15.199
If you're not doing that, then I think that uh you're probably going to wind up governing in the moment, and so therefore it's gonna be inconsistent, which is not a great place for people to be in either side of that.
00:38:15.440 --> 00:38:29.119
Uh I think that we're probably headed towards a place where governance becomes
more important and is going to become easier with uh the ability for us to simplify creating code and systems, etc.
00:38:29.599 --> 00:38:32.639
So it's gonna be easier to make that stuff mechanical.
00:38:32.800 --> 00:38:37.280
The hard part is gonna be what do the interactions look like?
00:38:37.519 --> 00:38:38.639
What does success look like?
00:38:38.800 --> 00:38:40.320
What do consequences look like?
00:38:40.639 --> 00:38:59.039
And that way, it's still gonna be a lot of work because people are gonna people, but it should become easier and easier to say these are the policies of this project, and point to directly the interactions or actions that cause somebody to be successful or or not be successful.
00:38:59.360 --> 00:39:02.239
Yeah, I think you're absolutely right with expectation setting.
00:39:02.719 --> 00:39:14.960
People can like or dislike a policy like, for example, not allowing outside PR contributions, but at least they know what it is, and then they can make a choice about whether or not they want to engage, right?
00:39:15.119 --> 00:39:18.800
If you don't like it, you could fork it, you could start your own, you could do a whole bunch of other things.
00:39:19.119 --> 00:39:24.960
You know, my position when we were talking about it last week was hey, open source developers can do whatever they want, it's open source.
00:39:25.119 --> 00:39:36.960
Uh, but I like your refinement on that answer, which is hey, if you want to be a good, if you want to have a well-organized or a good project or good standing, then you know, make it known what you're going to do and what you're not going to do.
00:39:37.039 --> 00:39:38.960
Um, and then try to stick to that.
00:39:39.280 --> 00:39:41.440
That is really what it comes down to.
00:39:41.679 --> 00:39:47.519
I had a boss that chased me out of the building once that was very upset with me.
00:39:47.760 --> 00:39:49.679
Dare I say he was angry.
00:39:50.000 --> 00:39:52.800
He's actually the one that that shared this nugget with me.
00:39:52.880 --> 00:39:59.440
I've used ever since, but anger is a violation of expectation to the point that people are angry.
00:39:59.599 --> 00:40:04.480
There was likely some expectation that was held, whether it was accurate or not, that wasn't met.
00:40:04.880 --> 00:40:11.119
And in this case, you know, I've given my boss an ultimatum and he lived up to his end of the bargain and I still left.
00:40:11.280 --> 00:40:13.519
And so he was right to be angry.
00:40:13.840 --> 00:40:21.760
And if you don't set expectations, then they will be set implicitly, and that's going to lead to people to be angry.
00:40:22.000 --> 00:40:25.119
And it's understandable in human nature.
00:40:25.280 --> 00:40:37.199
It might not feel rational in the moment, but all that can be avoided just by letting people know what is expected and what is you know expected that you won't do.
00:40:37.440 --> 00:40:38.079
Yeah, I agree.
00:40:38.159 --> 00:40:40.559
I'm sorry that that sorry that happened to you.
00:40:40.639 --> 00:40:41.840
That's a tough way to learn that lesson.
00:40:42.159 --> 00:40:42.800
We're still friends.
00:40:42.880 --> 00:40:43.920
That was Are you really?
00:40:44.000 --> 00:40:46.079
Yeah, that's when I left to go join Hash Rocket.
00:40:46.320 --> 00:40:50.239
And I also got some positive change for my former co-workers.
00:40:50.320 --> 00:40:52.480
So Yeah, that's a great point though.
00:40:52.800 --> 00:40:56.480
Expectations are high on my list as well.
00:40:56.880 --> 00:40:59.920
Like you say, if you if you don't set them, somebody else will.
00:41:00.239 --> 00:41:08.159
We can cut this if you want, but I think that is what makes me want to communicate my values, and that's why I show up for Exoruby.
00:41:08.400 --> 00:41:14.480
That's why, you know, I'm choosing to use direct action to have an impact and communicate those things as well.
00:41:14.639 --> 00:41:24.880
Is there are as many people that agree with me probably as don't, and I'm not trying to create a situation where you have to be on one side or the other.
00:41:25.039 --> 00:41:27.280
I can have empathy for people on either side.
00:41:27.440 --> 00:41:34.239
I can have empathy for people who voted for our president who were sold a bill of goods that they're not gonna get ever.
00:41:34.559 --> 00:41:39.360
They're not gonna get, you know, a$5,000 check if the midterms come through.
00:41:39.679 --> 00:41:41.599
But they're being sold that.
00:41:41.760 --> 00:41:46.079
Whether or not they should expect that that's gonna happen is another question.
00:41:46.239 --> 00:41:50.239
But I know that eventually they will be angry when that expectation isn't met.
00:41:50.480 --> 00:42:01.360
And so just try to, especially now, I think more than ever, trying to put my values out there and live them and live up to the expectations that I set.
00:42:01.599 --> 00:42:02.719
I appreciate that, Jim.
00:42:02.800 --> 00:42:03.599
We're not gonna cut it.
00:42:03.679 --> 00:42:05.360
We don't really cut things on this show.
00:42:07.679 --> 00:42:14.079
I mean, problem sure, maybe some of my ums and uhs are probably cut, but basically we want we want the raw truth from everybody.
00:42:14.400 --> 00:42:16.559
I don't know that it gets more raw than that.
00:42:16.880 --> 00:42:30.320
Yeah, I agree with you, and I think that taking a stand on something, but having empathy for the other side is a uh I think that's the kind of authenticity that people actually are craving, even if that's not what they may say.
00:42:30.559 --> 00:42:30.880
Right?
00:42:30.960 --> 00:42:37.679
I can say that I disagree with you, but we can still continue on as uh whether we're friends, whether we're co-workers or colleagues.
00:42:37.840 --> 00:42:41.119
So there's a lot to admire in that take, in that standpoint.
00:42:41.519 --> 00:42:45.039
Yeah, I feel like the Rails community, Ruby community is very big now.
00:42:45.280 --> 00:42:49.440
It's so big where like this isn't really a division.
00:42:50.159 --> 00:43:00.559
People can join the things that matter most to them and be a part of those things and not devolve the entire community.
00:43:00.880 --> 00:43:06.480
I feel like we can have our kid and eat it too in a lot of ways because of the size of the community, thankfully.
00:43:06.719 --> 00:43:12.239
Personally, I don't see this as like an either-or situation, potentially.
00:43:12.480 --> 00:43:22.719
It all comes down to yourself, and if your personal like self like aligns with others, like you should be participating in that group.
00:43:22.960 --> 00:43:34.079
And it doesn't mean that you have no empathy for the other group or don't care about the other group, it's just you align more with the people that you align with, and uh that's where you're gonna spend your time.
00:43:34.239 --> 00:43:36.639
Like it can be as easy as that.
00:43:36.880 --> 00:43:43.599
And to your point, there's also some like monetary thing, right, attached to that in a work setting.
00:43:43.840 --> 00:43:48.639
And so that also is something you know, everybody can invest in what they want to invest, right?
00:43:48.960 --> 00:43:58.159
Kind of invests in GameStop, people are upset with him, and he still continues to invest in it, even though he has made a lot of money and maybe in nefarious ways.
00:43:58.480 --> 00:43:59.679
But at the same time, you know.
00:44:00.079 --> 00:44:00.960
It's easy to run.
00:44:01.280 --> 00:44:02.559
You don't have to participate in that.
00:44:02.639 --> 00:44:04.400
I call on GameStop stock.
00:44:04.559 --> 00:44:05.199
I never did.
00:44:05.280 --> 00:44:08.159
And I enjoyed the conversations that happened around it.
00:44:08.719 --> 00:44:09.760
It wasn't for me.
00:44:09.920 --> 00:44:10.800
And that was fine.
00:44:10.880 --> 00:44:14.320
Nobody called me up for that or was bothered by it.
00:44:14.400 --> 00:44:16.880
And I feel like we're kind of in a similar thing here.
00:44:17.039 --> 00:44:20.079
Like, why should anybody be bothered that you're doing what you're doing?
00:44:20.400 --> 00:44:24.880
You're doing great stuff and you're corralling a group of people that are like-minded.
00:44:25.119 --> 00:44:31.360
And it's pushing forward that vision and dream of like the things that you care about.
00:44:31.679 --> 00:44:32.400
Awesome.
00:44:32.559 --> 00:44:39.679
Keep doing that, please, because I'm gonna try and join the XO because I think it's a great group of people, and hopefully I see other people there.
00:44:39.920 --> 00:44:44.079
I might also join uh Rails World, but I don't get that much.
00:44:44.480 --> 00:44:50.559
So I think you won by local communization, uh, which I really appreciate and respect a lot.
00:44:50.639 --> 00:44:59.119
So it feels like there's nuance in a lot of this conversation, and at the top of the conversation, a lot of the nuance goes away, right?
00:44:59.199 --> 00:45:05.119
And the crash out about not translating arguably racist stuff.
00:45:05.360 --> 00:45:12.960
I think what is true is that there's a lot of people who are not terminally online that just don't know a lot of what's happened in the community.
00:45:13.119 --> 00:45:22.639
But I would also push back and say that it feels like the community is dispersed, but I'm not sure it's actually larger today than it was a few years ago.
00:45:23.119 --> 00:45:30.400
It does not feel like the Rails community is growing at the moment, and it could be based on a number of things.
00:45:31.119 --> 00:45:34.480
That's not to say that there aren't a number of people, there certainly are.
00:45:34.800 --> 00:45:37.440
There should be about a thousand of them in at Rails World this year.
00:45:37.679 --> 00:45:42.320
But that conference that you went to in Baltimore, there were more than a thousand people there.
00:45:42.880 --> 00:45:44.400
That was two or three thousand.
00:45:44.639 --> 00:45:48.719
And so what is causing that decline?
00:45:49.039 --> 00:45:52.400
Is it just that there's less money in software these days because there is?
00:45:52.639 --> 00:45:54.000
Or is it something greater?
00:45:54.239 --> 00:46:00.880
Again, I I'm not gonna ascribe any particular reason to that, but because there's too many uh factors.
00:46:01.360 --> 00:46:02.800
But I could probably take a few guesses.
00:46:03.199 --> 00:46:05.920
Do you think that it's the same for the Ruby community as the Rails community?
00:46:06.320 --> 00:46:07.920
They're both stagnant or declining?
00:46:08.320 --> 00:46:09.199
That's a great question.
00:46:09.280 --> 00:46:18.880
And I think the answer is probably yes, because there's not a ton of alternative frameworks that allow people to invest in the Ruby community the way that Rails does today.
00:46:19.199 --> 00:46:28.639
We talked about hanami earlier, there are options, but there aren't any that are drawing businesses the way that Rails did in its heyday.
00:46:28.880 --> 00:46:34.719
And so with Exo in particular, I'm trying to draw new people, you know, new voices.
00:46:35.039 --> 00:46:38.559
We work with code schools, universities, etc.
00:46:38.960 --> 00:46:51.280
If you are a student or even if you're just somebody who's on the lookout for your next opportunity, if the financial barrier is the thing that's preventing you from going, go down to the bottom of the page and there's a link to request a free ticket.
00:46:51.440 --> 00:46:53.440
Let us know why that would be helpful.
00:46:53.599 --> 00:46:57.360
We have yet to decline a single person who made that request.
00:46:57.599 --> 00:47:04.559
The reason why is I want people to get together and meet people that are from the community and say, hey, these are people that I want to hang out with.
00:47:04.800 --> 00:47:08.159
So doing what I can to grow the community that way.
00:47:08.400 --> 00:47:18.960
As well as when we were in Seattle, we had people from Apple and OnePassword and all sorts of companies that all lived in Seattle, never met each other.
00:47:19.280 --> 00:47:27.280
XRuby came from you know a lack of regionals and also hearing meetup organizers struggle to get people out every month.
00:47:27.519 --> 00:47:30.800
Asking me to do something every month is a big ask.
00:47:31.039 --> 00:47:35.679
Asking me to come out once a year to an event, way more likely to be successful.
00:47:35.840 --> 00:47:42.480
I can make that exceptional and have somebody watch the dog drive an hour to Madison and go do that.
00:47:42.639 --> 00:47:44.880
I'm not going to do that on a random Tuesday night.
00:47:45.039 --> 00:47:56.079
Unless you're living in a place like New York City or San Francisco where you just have the density of people there already, it's hard for meetup organizers to gather people regularly.
00:47:56.239 --> 00:48:00.719
And so I feel like that has broken down that sense of local community.
00:48:00.880 --> 00:48:07.679
That's what Exoruby is trying to help people do is to rediscover, oh, there are a bunch of people around here doing the same thing that I am.
00:48:07.920 --> 00:48:16.400
Even in the follow-up conversations on LinkedIn and whatnot, you know, people have said I came to a technical conference I didn't expect to leave with local friends.
00:48:16.639 --> 00:48:27.280
I think that anything that we can do to focus on more local, more community, more interaction between people is, I think, how we solve for a lot of divisiveness, etc.
00:48:27.599 --> 00:48:28.800
That's what we're trying to do.
00:48:29.039 --> 00:48:30.159
That's a great story.
00:48:30.320 --> 00:48:32.000
And it's a great way to end things.
00:48:32.239 --> 00:48:37.360
Jim, really appreciate you coming on the show, talking about a range of topics with us.
00:48:37.599 --> 00:48:42.000
Would love to have you on again and uh looking forward to seeing you out there in the community.
00:48:42.239 --> 00:48:42.800
Fantastic.
00:48:42.880 --> 00:48:43.920
We'll see you on the road.
00:48:44.159 --> 00:48:44.960
Yeah, same.
00:48:45.119 --> 00:48:46.400
Thank you for putting on XO.
00:48:46.800 --> 00:48:47.920
I hope it's great.
00:48:48.480 --> 00:48:48.960
Yeah.
00:48:49.119 --> 00:48:49.920
Thanks, Jim.