Code and the Coding Coders who Code it

Episode 47 - Jason Swett

Drew Bragg Season 1 Episode 47

Join us for a fascinating episode where we explore the development of SaturnCI—a new and user-friendly Continuous Integration tool that arose from frustrations with existing solutions like CircleCI and GitHub Actions. Our guest, Jason Sweat, shares his passion for creating a platform that not only simplifies the user experience but actively incorporates feedback from early adopters. Through candid conversations, Jason recounts his journey as a content creator in the Ruby community, and how it inspired him to address the shortcomings he observed in CI tools.

We delve into the technical challenges faced as SaturnCI grows, particularly those relating to user scalability as it onboarded new customers. Jason offers valuable insights into his tech stack choices while drawing attention to the importance of creating streamlined interfaces that cater to developers' needs. The conversation shifts to the foundation of community through his upcoming Sin City Ruby conference, showcasing the efforts made to facilitate connection among participants and ensure each attendee leaves with new friendships and knowledge.

Toward the end of our episode, we touch upon Jason’s unique approach to outreach through his snail mail newsletter, where he shares insights and stories beyond technology. This creative endeavor highlights how stepping away from screens can cultivate a deeper connection with the audience. With an inviting conversational tone and enriching discussions, this episode is packed with valuable insights for anyone interested in CI tools, community-building, and finding the courage to innovate within your space. Be sure to subscribe and share your thoughts with us!

Send us some love.

Honeybadger
Honeybadger is an application health monitoring tool built by developers for developers.

Honeybadger
Honeybadger is an application health monitoring tool built by developers for developers.

Disclaimer: This post contains affiliate links. If you make a purchase, I may receive a commission at no extra cost to you.

Support the show

Ready to start your own podcast?
This show is hosted on Buzzsprout and it's awesome, not to mention a Ruby on Rails application. Let Buzzsprout know we sent you and you'll get a $20 Amazon gift card if you sign up for a paid plan, and it helps support our show.

Speaker 1:

Hello everyone and welcome to another episode of Code and the Coding Coders who Code it. I am your host, drew Brag, and I'm joined today by my friend, jason Sweat. Jason, you are everywhere on the internet. You do a ton of things in the community, but there may be some people who don't know who you are, so could you do a brief introduction for those listeners please?

Speaker 2:

Sure, I'm one of those content creators. I suppose you could say I've heard about that. I've got a podcast, a YouTube channel, I do blogs, I've written a book called Professional Rails Testing and I'm generally active in the Ruby community. I go to conferences, speak at conferences. Between the years of 2022 and 2025, I host my own conference, and that's me. All right. Great 2025, I host my own conference, and that's me.

Speaker 1:

All right, great. So for anyone new to the show, the way this is going to work is I'm going to ask Jason three questions. I'm going to ask him what he's working on, what kind of blockers he has. If he doesn't have a current blocker, what is a recent blocker he had? How do you go about solving it? Then the last question is what's something cool, new or interesting that you've recently learned or discovered or built? Doesn't have to be coding related, but it is code and the code encoders who code it. So it totally can be. So let's get started, jason. What are you working on right now?

Speaker 2:

I'm working on building a continuous integration platform, so if you've used GitHub Actions or CircleCI those kind of things, it's an alternative to those and it's called SaturnCI. The reason I built it is I'm somebody who's very sensitive to deficiencies in UIs and stuff like that and I feel, like CircleCI and GitHub Actions, they're a little bit no offense janky, and so I wanted to build something that was nice and smooth and when a test suite fails, it shows you the failure without having to dig for it and stuff like that.

Speaker 1:

Yeah, what a concept we have talked a lot about GitHub Actions works, but it's just not, like you just said, dig for your test failures, or it's not that pretty or it just feels like an afterthought. So I feel you on the UI, there definitely could be better ones out there. I don't think I've used Circle At least if I have, it hasn't been for many years. But that definitely sounds like a cool project. You said you wanted to build it because UI deficiency in other products. It's one thing to say like, eh, nothing out there is really great UI wise, so I'm going to build a whole new CI suite. Was there anything more than that? You were just like no, I need a weekend project. We're going to do this.

Speaker 2:

Well, I've been trying since about 2008 to build a successful business. Okay, sure, I've cycled through a whole bunch of ideas and we can talk about that, but I had this idea maybe around the time that GitHub Actions came out, which, if I'm not mistaken, was 2018. When GitHub Actions came out, I'm just like I shouldn't bother competing with that, because GitHub can just do anything. They have so much bandwidth. But then years went by and GitHub Actions, I don't think, ever really changed Not in a way that I noticed at least. And I was also inspired by the guys who made Tuple. So Ben Orenstein and friends and they have that podcast, the Art of Product, and I think they talked on that podcast about how Ben kept waiting.

Speaker 2:

Slack bought that screen sharing program I forget what it was called, but there was a popular screen sharing program that was great. Then Slack bought it and just kind of buried it and Ben kept waiting for something better to be made. People kept not making anything and he's like, well, people keep not doing this. So I guess I'm going to try, and so I think there was a little bit of a lesson there. You shouldn't necessarily worry about somebody else beating you to the idea, because companies have their own agendas and even if they can, they're not necessarily going to make it a priority to build the thing that you're thinking about.

Speaker 2:

And so that's what happened with GitHub Actions. It just stagnated from my perspective and I'm like well, I don't think they're going to beat me to this anytime soon, probably not ever. I don't think it's even in their DNA to build something that resembles the thing that I'm thinking of. And so, in 2023, I got just so frustrated with GitHub Actions that I'm like screw it, I don't care if it's a bad idea, I don't care if it's dumb, I'm just going to do it. And so I've been working on it for like two years or so. At this point, somewhere between one and two years and I finally have people actually using dollars valuation. Well, maybe I can make this into something real. And so for the last little bit, it's just been pedal to the metal, working on this, trying to get it viable as fast as I can.

Speaker 1:

Getting real users using a product always seems to be like a big milestone for people's products, especially when you start getting feedback from those users. Have you gotten a lot of helpful feedback of like, either oh, I am on the right path here or oh, I made some assumptions that ended up being wrong and I had to pivot a little bit. Or what was the initial user feedback like?

Speaker 2:

I'm getting a little bit of feedback in the form of people telling me things, but I'm getting more feedback just in terms of objective results and stuff like that, objective observations. So, for example, the customer I'm onboarding right now, he has an app that's some years old. There's I don't know like 1500 tests in the test suite years old. There's I don't know like 1500 tests in the test suite, saturn CI itself, which I run. On Saturn CI, it only has a few hundred tests and the test suite runs in a short amount of time. It's pretty lightweight, whereas this new one that I brought on it is really taxing the system, and so, as a quick example, saturn CI will stream the system logs of the runner that's running the test.

Speaker 2:

For Saturn CI's own logs, that's fine, but for the logs on this project, it just bogs down the browser's memory because there's so much stuff, the browser's memory because there's so much stuff, and so I'm gonna have to figure out some tricks. Okay, don't actually stream the entire log file and let it accumulate as it goes. We're gonna have to, like, show you the most recent little bit and constantly be trimming off the back of it and then, when you scroll back up because you want to see the past, it's going to have to, like infinite scroll, dynamically load that kind of thing. So one category of feedback I've been getting is just this scaling stuff. When I get a new user and their data is at a different scale than what I've had to deal with in the past, that's obviously a sign that I need to change that area that's a good issue to have, though having scaling issues just means that you're bringing on people and you're solving those problems early on.

Speaker 1:

I have an assumption here it's a rails app, so you got your rails app and then you've got databases and all the other stuff going on. What's the tech stack look like across the board?

Speaker 2:

yeah. So I'm keeping it as simple and lightweight as possible. It's rails on postgresql, no front-end framework. I'm using hotwire on the front end and that's working great for me. On the back the things that run the.

Speaker 2:

That was obviously not a super straightforward thing to figure out. I'm using Docker and Docker Compose for that. So instead of having like a YAML file where you put your configuration, you just have a Docker file and a Docker Compose file, and a lot of people have that already. So you can kind of just copy paste your Docker file, can kind of just copy paste your docker file. And I give you a sample docker compose file. So if you have postgresql on your app, then you just put that in the docker compose file. If you have redis, you put that in the docker compose file, whatever dependencies you may have.

Speaker 2:

Anyway, when a test suite starts, I spin up a digital ocean droplet, so I spin up a DigitalOcean droplet, so I spin up a virtual machine and then on that virtual machine I run your test suite using your Docker Compose configuration. The surprising thing was it actually works and it's not insanely complicated. There were some details and stuff like that. The big picture is just start a VM, run Docker Compose and that works. So that's that aspect of it. And then on the front end this is controversial but I'm using maybe it's controversial, I'm using no CSS framework or anything like that. I'm just hand coding all the css.

Speaker 2:

Because if you've ever worked on a project that has twitter bootstrap and then they decided they wanted to switch to tailwind, most likely now they just have both and they're probably never going to get off bootstrap. They're probably just going to limp along with both these at the same time and then in five years, when there's something else now they're going to have all three and it's just going to be a mess. And I found in Rails upgrades it's usually not Rails itself that causes the most pain in the upgrade process, it's the third party dependencies. So I'm going as few dependencies as possible and as few gems as possible. I'll only add a gem as a last resort.

Speaker 2:

A lot of developers, especially when they're newer, they encounter a problem and they're like what gem can I use to address this issue? But it's like no, no, that's not the question. The question is, how do I solve this problem as a last resort? If you have to use a gem, it would be dumb not to then great, but I'm not going to bring in a gem for, like, I don't know what's the thing. People bring in gems for a lot Auth. I do have a gem for that. Okay, yeah, I was going to say I was going to say bold move.

Speaker 1:

bold move, maybe like pagination or something.

Speaker 2:

Yeah, pagination or admin dashboards, things like that, oh yeah, yeah, I'm definitely not using a gem for that stuff, definitely not coding that stuff.

Speaker 1:

Okay, yeah, my mind immediately went to auth. I was like hand rolling your own auth. All right, all right, jason, Cool cool.

Speaker 2:

I'm crazy, but not that crazy.

Speaker 1:

All right, all right. Now you're getting traction with it and getting such good feedback and already scaling up. Another thing that I know you're working on that I'm just going to just go ahead and throw into the mix for you is you have a conference coming up, indeed, and I am very excited for it, and I want you to talk about it to get me even more excited and to get listeners excited in case they're not going for some reason.

Speaker 2:

Yeah, so I run a conference called Sin City Ruby. It takes place in Las Vegas.

Speaker 1:

Really Sin City in Vegas? Who would have thought?

Speaker 2:

Sometimes people need it spelled out yeah, and it has taken place in 2022 and 2024. We had to skip 2023. And now it's happening again in 2025. And I don't know if you happened to catch the tweet, drew, but this Sin City Ruby will be the final Sin City Ruby.

Speaker 1:

I did hear this yeah, I almost thought you weren't going to do it again because the Tropicana is gone. And then I saw you were going to do it with the NGM and I'm like, yes, it's back. And then I saw the it's the last one and I was, oh no. I have thoroughly enjoyed this conference every time I've been there.

Speaker 2:

Much appreciated. Glad you've enjoyed it. Yeah, the destruction of the Tropicana is not unrelated, because we were getting a pretty good deal with the Tropicana, relatively speaking the MGM. It's going to put us at a lot of financial risk. It's not something that I want to experience Again. It's not fun to have the prospect of losing enough money to buy a brand new Mercedes that kind of thing.

Speaker 1:

Yeah, I can feel you on that. That would definitely be a scary bit. How is your speaker lineup looking? I know how your speaker lineup is looking. I'm saying this mostly for the listeners, because it's always such a good mix that you have and I think people need to hear about it, so they go.

Speaker 2:

Yeah, it's interesting. We've had a ton of interest in speaking this year, way more people interested in speaking than I was able to have speaking slots and it's always a tough choice because I handpicked the speakers. There hasn't been a CFP for Sin City Ruby. It's kind of like picking your favorite kid or something like that, and in the first Sin City Ruby it was who do I include in this thing? And now it feels like who do I have to exclude from the speaker list? Anyway, we have Irina Nazarova, ceo of Evil Martians, and if you've been in the Ruby community, you've probably seen Evil Martians all over because they do a great job of getting themselves out there. Chris Oliver, who you probably know from Go Rails and Hatchbox and Jumpstart Pro. Jason Charns, a fellow podcaster of ours, although he recently stepped down from the.

Speaker 2:

Remote Ruby podcast Freedom.

Speaker 1:

Dumlao. Yeah, the Ruby Central board. He's newly on there.

Speaker 2:

And then Prathna Shiva. I think this might actually be Prathna Shiva's first conference talk ever. She reached out to me in 2024, I think and wanted to speak. I was like, well, we're all hooked up for this year, but maybe next year, and I had Pr brothna on my podcast and that was a great episode and so I thought she'd make a great speaker too. So she'll be coming in 2025. Let's see that's five as a pair. We're gonna have alan reidel hoover and feto von zastro.

Speaker 1:

Fido Von Zastro.

Speaker 2:

Yeah, great pair Love their talks. Yeah, so that'll be nice. And then, for the first time, I myself am actually going to be giving a talk. Yeah, that's awesome. Yeah, I don't know what on, but Okay, you got some talk to figure it out. Okay, yeah, and I think that's it. We really shrunk the speaker roster this year, partly because last time the schedule was sufficiently tight that I went out to lunch and made it back late to my own conference and I had to start without me.

Speaker 1:

I remember this I did like how chill it was, though last time it had a very nice pace to it. I know we got a little off schedule, but because everyone was flexible it made it feel very chill, Like we could have conversations between each speaker and whatnot. So I think the shrinking as much. As it's a bummer to have to exclude people from the lineup that otherwise would be an awesome talk, it is also very cool to be at a conference and have that chill time and have that gap between speakers. So I'm with your decision.

Speaker 2:

And I would have had you. The only reason is I don't like you.

Speaker 1:

For anyone who doesn't know, I got my start speaking at Sin City, ruby. I'd never spoken at a conference before. I told Jason this and he was great. I'm putting on a conference. You should come speak, and my silly little game show that has now morphed into a keynote for this past RubyConf was born, so anybody who has seen the game show can blame Jason Sweat for manifesting that thing into reality.

Speaker 2:

Yeah, and you did it at Sin City Ruby in 2022 and then again in 2024. Is that right yeah?

Speaker 1:

Yeah, A little more polished in 2024. I had a few more reps under my belt so I sort of knew what I was doing now.

Speaker 2:

Well, and then I had the privilege of seeing you again at RubyConf in Chicago last November and it was cool. I got like a front row seat to watch your maturation from the first one ever to the way it is now. You could like be on TV. You're like great at it.

Speaker 1:

Thank you. Thank you, it is a lot of fun. I've gotten really good feedback. I iterate on it, so it's nice to been able to kind of give the same talk multiple times. I think some people get two or three times to give a talk. Maybe, if they're lucky, I've done it, I think, six times. Now I don't think I'm going to submit it anymore. That's not true. I'm going to submit it to Ruby Kagi next year and just see if that's something they would be interested in. I met one of the organizers and he really liked the show, so it's probably not as technical as it needs to be for Kagi, but I can adjust it a little bit. I'll have to ramp up some of the questions. It's technical, but Kagi's a lot of core committers and folks who know their stuff, so yeah, and have you solicited input from other people to try to get really hard, interesting questions?

Speaker 2:

Yeah, someone always sends me a input from other people to try to get really hard, interesting questions.

Speaker 1:

Yeah, Someone always sends me a question or two after I'm done, and anytime I'm about to do it I'm like, hey, if you've run into any weird Ruby, pass it along. I have a lot of weird Ruby snippets because of doing the game show. Just not all of them work well as a game show question, especially because the goal isn't necessarily to stump everybody and make everybody feel like, oh, I don't know Ruby, because I don't get these. It's more to have fun and get the audience engaged and the folks up there talking and whatnot. So you always try to find that balance of. This is weird, Ruby, and really unexpected. But can I come up with good enough answers? Or can I get good red herrings in my answers? Or can I set the question up enough that you're looking at it and going, hmm, I wonder what it could be, because there's that bit and then there's this bit and yeah.

Speaker 2:

So yeah, it's fun to see the thing at the beginning and it's what the heck is this? How could that possibly be valid syntax? And then you see what it does and you're like, huh, that's interesting. And now that I dragged us down this rabbit hole, maybe we should share. What is this that we're talking about? What is this talk?

Speaker 1:

that you give. This is who wants to be a Ruby engineer. This is a Ruby game show based on who wants to be a millionaire, but with Ruby syntax. So I take a small snippet of Ruby from the weirder side of Ruby and you have four answers that come up on the screen. You have to guess which one it is, and there's power-ups. You get to poll the audience. You get to select someone from the audience. When I had the privilege of doing it at RubyConf in Chicago as the keynote, I actually had some of the Ruby core team there to do 50-50. So they would eliminate two answers that they know it's not and then you could select from the two there. So yeah, it's a fun little adventure with weird Ruby syntax.

Speaker 2:

Yeah, I quite enjoy it.

Speaker 1:

And I wear a sparkly jacket, can't miss that, yes, in which you look absolutely smashing.

Speaker 2:

Thank you, sir. Yeah, so anyway, that's Sin City, ruby. A couple more quick notes about it. As there was last year, there will be arm wrestling. Fantastic, you can arm wrestle my wife and she just might beat you. She arm wrestled two gentlemen last year and conquered them both. And then I arm wrestled Obi Fernandez and that was a tight race. I prevailed in the end, and then everyone in the audience was understandably intimidated and nobody else would arm wrestle me. And then I pulled out a 20 bill and I'm like 20 bucks to anybody who can beat me. And then justin bowen with his powerfully muscled arms came up to the front and just destroyed me and it was a spectacle.

Speaker 1:

The whole thing was these are the things I'm going to miss about Sin City Ruby, it's in Vegas, so it's just a little weird. It's such a good conference, it's a chill conference. Everyone has so much fun at it hanging out after. Because you're in Vegas, of course, you always have such a great speaker lineup. Not saying that because you've had me speak twice, I just mean, like Jason Charns, at last year's, while giving a talk, he dressed up, not he came to the talk dressed up. While giving the talk got into an Elvis costume.

Speaker 2:

There are pictures it was amazing, yeah, and none of this stuff is recorded. You just have to be there in person.

Speaker 1:

Yeah, because what happens in Vegas, there in person, yeah, cause what happens in Vegas stays in Vegas, exactly.

Speaker 2:

Just to paint the picture for you, if you haven't been to Vegas, this year it'll be at the MGM grand, so that's right on the Vegas strip. And so at lunchtime or whatever, we just let everybody loose. You go do lunch on your own and there's just tons of stuff within walking distance so you can go grab whatever. This year there's going to be like a three-hour lunch break. You can really just not worry about time and just go hang out with people, because the number one thing about Sin City, ruby, my hope for everybody is that you come there and you come away with at least one new friend. And so we do things to try to facilitate that, like the three-hour lunch. We have something else. We added it last year. I call it forced socialization. And so in the morning we put people into random groups of five or six people and we give you some prompts, say your name, where you're from, all that kind of stuff, and people get talking and then, after 15 minutes or whatever, we rotate and get into different groups. People really liked that. That was a way to meet new people.

Speaker 2:

Sometimes it can be weird at a conference. It's like what do I just walk up to some random guy and introduce myself. I do that, but not everybody wants to do that, and so by like throwing you into these random groups, we force you to meet people and make friends and since we do it in the morning of the first day, you can hang out with those people for the rest of the conference. And, by the way, it's a maximum of a hundred attendees, so it is a very small conference and you'll get to meet just about everybody else at the conference, including the speakers. There's not a two-tiered social system where there's this upper echelon of speakers only hanging out with each other and then the plebeians are in this separate area. Everybody's there together.

Speaker 1:

Yeah, I didn't know if you were going to keep with the limit, because that has been a very nice component of it in the past. It's so small, you're able to talk to everybody and get to know everybody because it's so small. But I know, going from the Tropicana to the MGM, maybe it's not going to be as small this year, but 100 is a great number for a conference. You really get the opportunity to talk to everybody, including the speakers. So I like that.

Speaker 2:

Yeah, and I guess, lastly, I should. Unless there's anything else you want to talk about, I should share the URL and stuff like that. Syncityrubycom is where you can go to find out more about it. It takes place April 10th and 11th 2025. Yeah, syncityrubycom for the tickets and all the other info and stuff like that.

Speaker 1:

Fantastic, awesome, looking forward to it. Putting on a conference. You are working on a product Saturn CI. You've recently written a book, so if not have a current one, you have at least had some kind of cool blocker. So what kind of blockers do you have or have had recently that we can get into?

Speaker 2:

Yeah, I don't know if this counts as a blocker. I think of it more as a bottleneck. With Saturn CI, my CI platform, I'm having a bottleneck on the product side, where you put new users on it and it places new demands on the product and I just have to scramble to catch up. So that's where I'm at right now, scrambling to catch up. There's all sorts of stuff that maybe used to be okay when there were, like, not as many people using it. It was just me and maybe one other person kind of halfway onboarded. This recent one is the first real, real customer, and so this is like a whole new level. So I'm going to have to deal with all these scaling issues and just all these other shortcomings.

Speaker 1:

So are you working on Saturn full-time, like it's your full-time job, or is it sort of still side project-y?

Speaker 2:

At this particular moment in time I'm unemployed and so I'm working on it pretty much full-time. I have been since mid-January and it's late February as we're talking now. So for about the last month I've been working on it not full time, because I've been interviewing and I've been doing a lot of networking calls and I still do my podcast and all my other business that I do, but I've been working on it very steadily over the last month.

Speaker 1:

Okay, and do you think that that has helped? This is sort of a weird question, so I'll explain my thinking. Do you think that being able to work on it full-time has helped you move a little bit faster with it? Oh yeah, when you do get the chance to sit down with it, you're so just in the zone and ready to rock and roll that you get so much more done on it, even though you're only working on it for 10 hours a week. Then you do it your 40 hour a week job, where you're like I have to do this. You don't lose steam as much. So I didn't know if it was. Yeah, I'm working on it full time, but I'm actually not as moving as fast.

Speaker 2:

Yeah, there's a danger of that. It's what Parkinson's law work expands to fit the time available or whatever. I don't think I've succumbed to that. I feel like I'm not pushing myself. I feel like I'm being pulled along. Honestly, it's just such an exciting thing. I mentioned that I've been working since 2008 on building a successful business and from 2011 to 2015, I worked on scheduling software for hair salons. There's all kinds of reasons why that was not a great idea. Long story short, it's hard to sell to salons. In 17 years, this is the first thing I've had that really seems clearly viable. It can really be something. It's getting traction. I have good reason to believe that the ceiling for it is very high. I can see the pot of gold at the end of the rainbow, so just like, how fast can I get there? I'm trying to not waste a single minute Every second that I'm working on it. I'm just super focused and going as fast as I can.

Speaker 1:

There's also something to be said, because I hear this from a lot of folks who built a product. When you build a product that you built to solve your own problem and then it just so happens that a lot of other people have that problem too and you can solve their problem. But then it just so happens that a lot of other people have that problem too and you can solve their problem. But when it was born of the desire to, like you said, I didn't like what else was out there, so I built my own. I feel like that always seems to be where the success comes from. I solved my own problem and now I get to solve other people's indirectly, almost.

Speaker 2:

Yeah, I might put it slightly differently, in that there's a lot of ways that you could solve your own problems that wouldn't lead to anything all that good. You know you can build your own bug tracker, like developers famously do, and that doesn't have a very high hit rate because so many people do it and it's just not a great business idea. I would more say that how do I put it? Not everything that's a scratch your own itch kind of thing is guaranteed to be a success. But when you have an idea that gets traction and it happens to be something that is scratching your own itch, then that's great because it's an advantage over the hair salon software, where I'm not using it myself. I just have to go research and find out what they need. With this, I know what I personally want. That doesn't mean I'm not going to do research and find out what other people need and want also, but since I'm so familiar with the space, I'm going to have a really clear vision of how it needs to be.

Speaker 1:

Yeah, I can see that. Strong opinions, clear vision, same thing sort of in a way. Right, You're driving the whole thing based on your opinions and you are very well known in the space as the Rails testing guy. So you building a testing platform or a platform that runs tests makes sense and I can see how your vision would help guide that product to be a high quality product yeah, yeah, and I hope that that reputation that I have helps grease the wheels a little bit.

Speaker 2:

I don't want to set my expectations too high as to how much that might help, because I found that a lot of that stuff frankly helps less than you think it would, but it definitely is helping me get my like first customers. It's usually not that I'm like broadcasting k saturn ci is available and people are like coming to it. It's more like through doing the podcast and going to conferences and stuff like that. I have friends and I can go to these friends and acquaintances and say, hey, I'm working on this new thing. Would you humor me and try this thing out?

Speaker 1:

Having a broad network like that of essentially your customers, right, you don't have that network with a hair salon. I don't know about you, but I go to the same salon and the same hairdresser every like three to six months whenever I get around to getting my hair cut, so I don't exactly have a large network of hair cutter-y folks.

Speaker 2:

Yeah, and you're not hanging out with your hairstylist on the weekends?

Speaker 1:

probably Right, but you have a very large network, so that helps. Yeah, so feeling good about it, great. Any other blockers of note, whether it be with Saturn or with the impending conference, or even if it was a blocker that you ran into that sparked your interest when you were writing the book?

Speaker 2:

Oh man, here's a big one. Here we go, so kind of two instances of the same blocker. This book, Professional Rails Testing I have it in my hand right now. It is only like half the size that I intended it to be, but I just had to get it out. I'd been working on it for I don't know like a year or something like that, and to get it to the size and scope that I originally wanted would it take another year. At least, that's not the right move. I don't think I want to get that out there now. So I released it in this size.

Speaker 2:

So if I were able to duplicate myself, I would have my other copy of myself write the rest of this book that I originally wanted to. And then there's another book that I've had in the queue for years now. I even went so far as to announce that I was writing it and then that became Vaporware. But the working title I have in my head is Designing Rails Applications, and actually it's not a working title. I have in my head is designing rails applications, and actually it's not a working title I have just in my head. I actually have the start of this book in my editing program and that book you can kind of guess what it might be about, but it's about software design as it applies to rails applications. I can't imagine in what scenario in my life I would have the bandwidth to actually write this book, but if I can somehow make that happen, that's definitely on my list.

Speaker 1:

If you had infinite free time, maybe we would get that book. That would be a good book. I always like when folks release a design, or like Vladimir has the layered application design with Ruby on Rails. And there's a bunch of different design books out there and they're all just a little bit different. They all take their approaches and from their experiences. When you've had a long enough career, you've seen so many different approaches and maybe why this one doesn't work or this one does work, or this works for me, might not for you, but this works for me. And here's why and it's so great to have so many of those books out because you can start to see a pattern here Everybody, regardless of how they do their approach, lands on this bit or that bit, they do this thing that way or this thing that way, and that can help guide your decisions too. But when you start to see the pattern of, ah, these very smart people all do these few things the same exact way, is when I feel like the real takeaway comes out interesting.

Speaker 2:

I think that exact statement you just made is a big part of why I want to write this book, because if there is a prevailing view among the smartest seeming authors and stuff like that, does that mean it's a good idea? Not always, and I think often there are cases when there are lessons or principles that are expounded by these people that are not good, and so we need the intellectual toolkit to be able to tell the difference between what's a good idea and what's not a good idea, independently of where it's coming from.

Speaker 1:

Yeah, I hope you find some free time to write your book, because now I want to read it.

Speaker 2:

Yeah, I will mention a different book that exists already that you can read. It's called the Beginning of Infinity by David Deutsch, and I've mentioned it several times in my snail mail newsletter and in the one that you're going to get in the mail soon. Drew, I'm mentioning it multiple times again. I'm just obsessed with this book. It has given me so much food for thought. But it's not a programming book. It's like a physics book or science and philosophy book I'm not sure what kind of book it is, but it's not a programming book primarily. But I've learned a lot about programming from it and just about the world and how to know what's true and stuff like that. It's had a huge impact on me. So if you're interested in that kind of topic, I highly, highly recommend the Beginning of Infinity. Beginning of Infinity.

Speaker 1:

I will definitely be checking that one out, which I almost feel like you just spoiled. The next question what is something cool, new or interesting that you've recently discovered or learned about or built? That book would have been a perfect answer, but what is something cool, new or interesting that you want to share with us?

Speaker 2:

This has nothing to do with computers, but it's the first thing that popped into my head. So, as you know, drew, my wife and I mostly my wife we run a farm Yep, we raise chickens, ducks, quail and now rabbit. Rabbits are delicious, yeah, and I had not had a lot of experience with rabbit before. I'd had it at restaurants a couple times. And then we bought a rabbit many years ago and I cooked it somehow, I don't really remember. But then we just did a big batch of rabbits last season, and our farm has restaurants as customers now, and so we're going to be trying to sell these rabbits to restaurants we already have now. But we wanted to sample our own product. How can we sell this to restaurants if we haven't even used it ourselves? And so I took a rabbit and I'm like all right, what do I do with this thing? And so I took a rabbit and I'm like all right, what do I do with this thing? And I heard that they eat rabbit in France.

Speaker 1:

They eat rabbit in lots of places, a lot of places, yeah.

Speaker 2:

But I'm like okay, let me look up a French rabbit recipe. And so I looked it up on YouTube and I found a recipe and I followed it as best as I could, because it was not in English, it was in French. Actually, you are bold, sir. What I could kind of see is okay, you put this big of a dollop of sour cream in there or whatever Real scientific of you?

Speaker 2:

yes, yeah, I made this one recipe. It was called okay, so apparently the word for rabbit in french is le pont. It was called rabbit with mustard or something like that, le pont au moutard, something like that. I don't know how to say it, but I made it and it was really good, awesome. If I had had it at a restaurant, I'd be like this is food from a restaurant.

Speaker 1:

This is is good.

Speaker 2:

Very nice work then. I was very happy about that. So that's my new interesting thing.

Speaker 1:

There you go. Yeah, I've only ever done rabbit as a stew, Rabbit stew. Every time I've had rabbit it's been in a stew.

Speaker 2:

Yeah, I think that's kind of where it shines.

Speaker 1:

It's a meat that bodes well for a stew.

Speaker 2:

Yeah, you don't see a lot of like rabbit sandwiches Like for a stew. Yeah, you don't see a lot of rabbit sandwiches Like a fried rabbit patty?

Speaker 1:

No, no, not so much. Not so much. They turn out great stews. In my opinion, that might be a bit of a controversial take, since rabbits are cute and adorable and you're not supposed to eat cute and adorable things, allegedly.

Speaker 2:

Yeah, that part of it's a little bit tough. We actually pet them and take care of them. We don't go so far as to give them names and stuff like that. I have developed a complete heart of stone. Sometimes I have to euthanize our farm animals and my pulse just stays completely steady. I don't care, I don't care. I told somebody the other day I was having lunch with a friend of mine and I'm like you know what I think if it came down to it and I had to, I could kill a guy and I wouldn't really feel bad about it. And I think he was actually disturbed by that and he backed away a little bit. Yeah, watch out.

Speaker 1:

You'd probably feel something Depends on the scenario. Depends on the scenario, for sure. But I feel like, even if you think, oh yeah, I've killed a bunch of animals, I could kill another human, I think there's just something about when it's another human, you relate to it a little bit more.

Speaker 2:

It's just a weird feeling well, I know people who have killed people. I'll ask them anyway it got dark fast.

Speaker 1:

Alright, I'm gonna. Alright, I'm gonna bring it around, I'm gonna do one. Normally I don't do this, but I do feel like I need to plug your newsletter because you have the most unique newsletter that I'm subscribed to and that is because your newsletter comes to my house not through my email but through snail mail and I get to away from my computer, as far away from my computer as possible, get to sit in my comfy chair and open your physical letter and, on paper, read your newsletter and it's such a wonderful experience and it's so funny to read about, because you do talk about technology in it. But it's funny to read about technology by avoiding technology. But I do think we all spend so many hours of our day and so many days of our week in front of a computer that to be able to consume something like that away from the computer is so great. I guess I got to ask what was the spark there. What was like hey, I am going to do a newsletter, but I'm going to do it through snail mail.

Speaker 2:

Well, a big part of it is exactly what you just said, and I appreciate that so much. I was hoping that people would feel that way about it. I have never been somebody who enjoys reading ebooks on the computer. It just feels wrong or something. I much prefer reading a paper book off the computer. And so I thought, if I feel like that, probably other people feel like that too.

Speaker 2:

I kind of started the newsletter as a way to promote my consulting services. It's kind of a Trojan horse to promote my consulting services and I was originally going to handpick maybe like 15 people who would receive this newsletter. And then, almost as an afterthought, I put a link online that said, okay, I'm doing this thing if anybody else wants to get this newsletter. And then, almost as an afterthought, I put a link online that said, hey, I'm doing this thing if anybody else wants to get this newsletter. And I had 400 people sign up. Wow, yeah, I was very surprised.

Speaker 2:

Each one of these gets sent in the mail. It's not free to do that. So this was like 500 bucks a month in postage. So my wife after a few months was like, hey, you can't do this anymore. So I changed it to a paid newsletter. So now you can go to codewithjasoncom and there's a link on there for the snail mail newsletter and it's 50 bucks a year for the newsletter and then you get it once a month and it is very freewheeling in the content. I have an email newsletter but I kind of have to stick to the script, because if I start talking about rabbit recipes and stuff like that, people will be like what's this? And they'll unsubscribe. But a piece of paper doesn't have an unsubscribe link and so I can just go nuts with the content. And so when people get it for the first time, they're usually like whoa, I didn't know you'd be writing about plants or whatever the thing is I write about.

Speaker 1:

Yeah, I like it. It does have technology in it, it does relate to what Jason Sweat is known for, but it's also got good other content. The recipes is always fun like hearing what you're experimenting with or what's going on in the farm or anything like that. So that's my shameless plug, but I'm plugging your product in my own show. I don't know. I think if anybody doesn't know that that exists, they should sign up because it's great.

Speaker 2:

Thank you for that Much appreciated and again, dear listener, codewithjasoncom. And then there's a link. The letter is called Nonsense Monthly. There's a link. The letter's called Nonsense Monthly. It's a fitting title. It is a fitting title. If I were not lazy, I would already have nonsensemonthlycom hooked up, but I don't, so you'll just have to go to codewithjasoncom.

Speaker 1:

So, since we are close to the end, is there anything that you want to talk about and if not, where can people find you for both?

Speaker 2:

I think we mostly covered the things that I wanted to touch on. Excellent, I think. If I can just reiterate one thing, that book the Beginning of Infinity is so good If you're interested in books. The Beginning of Infinity by David Deutsch, and then he wrote one before that called the Fabric of Reality that I would have read before the Beginning of Infinity had I not messed it up. But if I went back I would read them in that order because that's the order they were written in. But that's great. And then, also completely unrelated, there's this band that I found, and in the YouTube comments I found this person who said my entire personality now is making sure people listen to this band, or something like that. So my entire personality has been making people read the beginning of infinity, who, my knowledge, no one has yet. But also this band they're called the last dinner party.

Speaker 1:

Have you heard of them, drew? No, I have not. The last dinner party dinner party, what genre? What are we talking about here?

Speaker 2:

I don't know, when I first heard them I felt like they were kind of goth rock kind of okay. They've also been described as baroque baroque from a high level.

Speaker 1:

They're here as rock band, so it's a rock band, so at least there's that okay, but I could see yeah, from the country of england and they're just really good.

Speaker 2:

In all the youtube comments of every video there's all these people who are like I thought music was dead, but finally there's an actual good band. I haven't heard music this good in like the last 20 years. I haven't liked any new music the last 20 years and this is finally a new artist that is not just good but historically good. I'm going to say it's just amazing. It's been blowing my mind. I've been listening to their album nonstop since I found it several months ago.

Speaker 1:

They're just so good, Awesome. I will have to check them out. So we've got the book, the band. You are full of cool, newer, interesting things to share with us. But anybody who wants to attend Sin City or get on your newsletter or get your book or any of the other things, listen to your podcast. Where can they find you on the internet?

Speaker 2:

SinCityRubycom for the conference and then CodeWithJasoncom for everything else For everything else Awesome.

Speaker 1:

So, listeners, I hope we'll see you at Syncity, ruby, especially because it's the last one. Speaking of last ones, real quick, will you be at the last RailsConf? I'm?

Speaker 2:

definitely going to try to.

Speaker 1:

I was hoping for a definitely yes, but definitely try to is good enough. I'll take that. It's fine, you know where it is right, everyone knows where it is now, it's in Drew Bragg, adelphia.

Speaker 1:

Drew Bragg, adelphia. It's in my backyard. Yes, very excited that we're finally because we've never had a Ruby or RailsConf in Philadelphia somehow. So it's finally, through lots of annoying messaging and bothering at in-person convince Ruby Central to do it in Philadelphia, and I cannot be more excited, though. Great, I'll see you at Sin City, hopefully, see you at RailsConf and listeners, we'll see you in the next episode.

People on this episode

Podcasts we love

Check out these other fine podcasts recommended by us, not an algorithm.

Remote Ruby Artwork

Remote Ruby

Chris Oliver, Andrew Mason
Ruby for All Artwork

Ruby for All

Andrew Mason & Julie J
IndieRails Artwork

IndieRails

Jess Brown & Jeremy Smith
The Bike Shed Artwork

The Bike Shed

thoughtbot
Code with Jason Artwork

Code with Jason

Jason Swett
The Code Gardener Artwork

The Code Gardener

Alan Ridlehoover & Fito von Zastrow