Code with Jason
Code with Jason
319 - Kellen Presley of Rhizome Compliance
Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.
In this episode I talk with Kellen Presley about Rhizome Compliance, an anti-money laundering platform. We discuss the challenges of gaining initial customers, leveraging AI with Ruby on Rails, and the evolving role of developers in the AI age.
Links:
- Rhizome Compliance
- RubyConf 2026
- Nonsense Monthly
Snail Mail Newsletter Pitch
SPEAKER_02Hey, it's Jason, host of the Code with Jason podcast. You're a developer. You like to listen to podcasts. You're listening to one right now. Maybe you like to read blogs and subscribe to email newsletters and stuff like that. Keep in touch. Um email newsletters are a really nice way to keep on top of what's going on in the programming world. Um, except they're actually not. I don't know about you, but the last thing that I want to do after a long day of staring at the screen is sit there and stare at the screen some more. That's why I started a different kind of newsletter. It's a snail mail programming newsletter. That's right. I send an actual envelope in the mail containing a paper newsletter that you can hold in your hands. You can read it on your living room couch, at your kitchen table, in your bed, or in someone else's bed. And when they say, What are you doing in my bed? You can say, I'm reading Jason's newsletter. What does it look like? You might wonder what you might find in this snail mail programming newsletter. You can read about all kinds of programming topics like object-oriented programming, testing, DevOps, AI. Most of it's pretty technology agnostic. You can also read about other non-programming topics like philosophy, evolutionary theory, business, marketing, economics, psychology, music, cooking, history, geology, language, culture, robotics, and farming. The name of the newsletter is Nonsense Monthly. Here's what some of my readers are saying about it. Helmut Kobler from Los Angeles says, Thanks much for sending the newsletter. I got it about a week ago and read it on my sofa. It was a totally different experience than reading it on my computer or iPad. It felt more relaxed, more meaningful, something special and out of the ordinary. I'm sure that's what you were going for. So just wanted to let you know that you succeeded. Looking forward to more. Drew Bragg from Philadelphia says, Nonsense Monthly is the only newsletter I deliberately set aside time to read. I read a lot of great newsletters, but there's just something about receiving a piece of mail, physically opening it, and sitting down to read it on paper that is just so awesome. Feels like a lost luxury. Chris Sonnier from Dickinson, Texas, says, just finished reading my first nonsense monthly snail mail newsletter and truly enjoyed it. Something about holding a physical piece of paper that just feels good. Thank you for this. Can't wait for the next one. Dear listener, if you would like to get letters in the mail from yours truly every month, you can go sign up at nonsense monthly dot com. That's nonsensemonthly.com. I'll say it one more time. Nonsense Monthly dot com. And now without further ado, here is today's episode. Thanks for having me. Thanks for being here. I've been doing kind of a series of podcast episodes with people I've connected with on Reddit. I've been interviewing people with Rails-powered businesses, and you are just such a guy. Tell us about yourself and your business.
SPEAKER_00Sure. Yeah, so I have been involved with Rails for quite some time. I think I got started in 2007. So it's been a long journey with like Ruby and Rails. And most recently, about two years ago, I founded Rhizome Compliance. So we're sort of an all-in-one anti-money laundering compliance platform. And so what that means is we're trying to catch criminals and people who are trying to move illicit funds through the financial system. So if you're familiar with like, you know, most people's entry to it is through Ozark. If you see an Ozark, we're trying to catch the Marty birds of the world, or the Walter Whites, if you will. So criminals that are basically moving money through the banking system, or we work with a lot of crypto companies and things like that. And there are different laws and regulations in every country around how you're supposed to handle detecting that kind of activity. And so that's what our platform does. And Rails has been great for that. It allows us to move super quickly.
SPEAKER_02So I have to ask, how did you get involved in this particular kind of business?
SPEAKER_00Yeah, so originally my sort of entry into finance was through crypto. I got into Bitcoin back in like 2011. And you know, it was very like idealistic at that time, and I thought it was gonna change the world. And uh yeah, so I ended up working for like a merchant services company uh in that space, they do payments. Um and uh yeah, that just got me into fintech. And a lot of times in shops there's like this compliance need that is sort of a backburner thing for engineers, they don't really want to work on compliance or understand it. And so I just kind of fell into doing projects around like we uh monitor transactions for suspicious activity and um there's reporting requirements and things like that. So I just kind of like happen to fall into this compliance role at four different companies now, um, and was able to sort of take the common pain points around compliance for all of those and and distill it down into this platform of Rhizome.
SPEAKER_02What made you want to do it as your own business? That's not something everybody wants to do.
Why Compliance Became The Product
SPEAKER_00Yeah, I think really what it was for me was like I enjoy working with customers. I didn't think that I did as an engineer. It wasn't a focus for me early on. Um but once I started doing it, I you know, there's there's an appeal to working with people directly, solving their problems. A lot of times, you know, folks in like banking and finance, they don't have great tooling. And so if you can solve their problem, it's there's a very rewarding kind of feeling there where you're helping them. And um so yeah, I I had a knack for it and I I enjoy doing that. And so um I think that sort of like bridges the gap from being like solely an engineer to someone who's more customer-facing and gets a kick out of that kind of thing.
SPEAKER_02And how did you get your first customers? That's like the hardest part. I um as I may have mentioned in that same Reddit thread, so you might be aware, I've been building my own uh CI platform for the last couple years, and I'm working on getting my first customers. This isn't the first time I've gone through this sort of thing, but it's really hard to get those first customers. How did you do that?
SPEAKER_00It is, yeah. So uh I mean I think it's similar to a lot of founders' journey where it's it's a combination of personal network, um, cold outreach, a lot of like just LinkedIn, just harassing people on LinkedIn to be honest, and saying, like, hey, I've got this idea for a product. Are you willing to give feedback? And you know, it's a small industry around uh the type of compliance that I do, so um people are willing to kind of hear you out and give feedback and give ideas. And I think once they realize like you're sort of competent at what you do, and like I've been fortunate enough to work with some pretty large companies in the space, so um there's you know some connections that I've been building there, and it's just uh it's a slow, it's a slow grind, but it's it's moving in the right direction.
SPEAKER_02Yeah, some kinds of products require more trust than others. Um like I'm trying to think of an example of something that doesn't require much trust to just try out. Right. But some products are like that, but others are like, okay, if I use this product, I'm kind of like um well, there's there there's some kind of risk that you have to take as a minimum, and so you really have to uh you aren't just gonna randomly try something just for the heck of it one day. Um it's it's probably gonna be a scenario where like you know somebody personally and you're like, hey, will you maybe kind of as a favor to me like give this thing a go and see if it might seem viable? It's is that kind of how it went for you?
Landing First Customers Through Trust
SPEAKER_00Yeah, absolutely. And you know, I was lucky enough early on to find a sort of service provider that saw the value in what I was doing at the time and got really excited about it. And so there's this adage in sales like sell to one who can sell to ten, right? So if you can get in with a service provider who has a book of business already and and sees like the the advantage of what you're doing, um that was huge for us because um we're able to indirectly through them serve like a dozen different uh money service businesses. And um, like we just had one the other day, we helped somebody who they were delinquent in filing all these uh reports that are sort of like mandated, and we helped them file like over a thousand reports in one day. So that was like a milestone for us. Yeah. Um, so it's cool to be able to do that. You know, I'm not great at sales being an engineer, I'm still learning how to do it, and so being able to work with people who know how to do it and can sort of like complement you know what I'm trying to do, that's that's a huge unlock.
SPEAKER_02Yeah, there's this podcast I used to listen to called I Love Marketing with uh Joe Polish and Dean something. I think I remember, I I think I mentioned this show before in the podcast, and I could remember Joe Polish's name, but not Dean's name at all. Now I at least remember Dean, but not the last name. Anyway, um he said that uh Joe Polish said that sales is applied psychology, which I thought was a really interesting comment, and I think it's spot on. And so I think that like anything I can learn from like sales books and stuff like that is helpful, but then just like psychology in general, I find that really helpful. Um, but I also find that like a lot of this stuff is like not written in any book, right? And you kind of have to learn it by figuring it out from first principles and just like thinking about stuff. I don't know. Do you feel that way?
SPEAKER_00Yeah, so I mean, my like biggest advice for engineers that are trying to get into like you know entrepreneurship is like hang out with the salespeople in your company, find out what they do, figure out how they do things, sit in on demos. Like that was something I never took advantage of. Um, you know, at former employers, it was like sales was seen as like this distasteful thing, and I have a lot more respect for them now. And uh, you know, it's it's if you have the opportunity to kind of sit in with like a sales engineering role, even um, I think that's a huge um uh way to like sort of upskill because in this like age of automation, you know, software might be automated, but uh no one's buying anything from the machine anytime soon. It's all about that trust and that relationship. Um and so yeah, that's a huge component of it. Um like when I first started, I would run demos in such an engineering kind of way where it's like, look at all these features that we have, it's so cool. And that's like not what sells it. It's like this feeling of like, okay, do I want to work with this person? Do I trust them to have my back when there's like a regulatory component to it? So it's it's a lot different than I thought it was going to be going into it.
SPEAKER_02Yeah, um, that's interesting. I'm I'm curious how much your approach mirrors mine. So, like one of part of my approach, uh, and this will become self-referential very soon, um, is to find people who are using Rails who are in the right uh position in the company. So, like CEO, CTO, somebody who has the authority to say we're doing this, right, and also to write a check. And so I made a post that said, like, hey, I'm looking for Rails powered CTOs, CEOs, whatever to come on my podcast. And then I just happened to find some post that said, Hey, what are you building? And I found people on there, and I'm like, Hey, do you want to come on the podcast and and talk about this? Um with the grand plan of some of those people I meet that way will become we'll just become like friends. And so like I'm not trying to sell them anything on day one or anything like that. Certainly not. Because people people can see right through that when you do that.
SPEAKER_00If they catch any whiff of sales, they're gone. Exactly. Or you know I think uh your approach seems really solid. Like, I'm gonna look into Saturn CI. I think is this like your main distribution channel for sort of getting the word out, or do you have other like I'm curious what your sort of sales workflow looks like?
SPEAKER_02Yeah, yeah. This is one of them. This is one of the main ones. I have a huge advantage in having this podcast because it's it's basically like a um a free pass or a uh a ticket to be able to reach out to almost anybody and say, Do you want to have a conversation and get a yes? You know, not every single person says yes, but like easily 90%. Um and the funny thing is, like the more prominent they are, it's almost the easier to get them on the show because those are already the kind of people who do this kind of thing. Whereas I think I had a lower hit rate on Reddit just asking random people, do you want to come on my show? Because it's like, I don't know if they're the kind of person who does that kind of thing, you know. Right.
SPEAKER_00Um, but hit or miss, I think it's you know, for me, like LinkedIn is the only game in town for like SaaS, kind of like Enterprise. I've gotten a few things from Reddit, but it's um I don't know, it's more like general population, it's not necessarily like where decision makers are always hanging out. Um so I love testing stuff on Reddit, it's great for that. Like I'll put something out there and someone will just absolutely tear into you if they think you're off base. And so it's a great way to like kind of test marketing material and then uh you know put it on LinkedIn when it's a little more polished, I guess.
SPEAKER_02Yeah, yeah, that's a good point. And different different kinds of people hang out in different places. I imagine for the people you're going after, Reddit is gonna be um much less of a fruitful place than for me going after developers. Specifically, there's the slash r slash rails and slash r slash Ruby. Those are the two places I look. Um but to answer your question about like the general sales and marketing picture, um I'm taking kind of a manual first approach, like that Paul Graham do things that don't scale approach. Yeah. So the very first thing was just to reach out to people I already knew. Um because again, they already have trust and all that stuff. Um they might be willing to do me a favor, all that. And so I got a good amount of people in the funnel that way. By good amount I mean maybe like five people or something like that. Um and then I could say that like out of those people, one person stuck, which is fine. That's about what you could expect, I think.
SPEAKER_00That sounds good to me.
Learning Sales As An Engineer
SPEAKER_02And now I'm expanding that circle. It's like, okay, I've already gone to most of the people I I know who I think would be a good candidate. Um, and now I'm going a little bit more outward and reaching out to people who are in the community um and and doing things like this podcast that we're doing right now. Um and then in parallel to that, I've gotten my marketing site up and I've been working on blog posts. I've had a lot of success in general with writing before. Um my blog at codewithjason.com is fairly well known in the Rails community. Um and and I've had success in selling like books and stuff like that via that. So I'm like, okay, that has worked in the past. Let's do more of that, do more of what works. Absolutely. Um, and there's more to the picture, but it's not it's not flowing through my mind very easily right now. Those are the top two things in my mind. How about you?
SPEAKER_00Yeah, I mean it's a lot of cold outreach, uh, but nothing beats like in-person. So like I'm speaking at a conference in September, and you know, just a few minutes in a room with the right audience is worth you know, weeks of cold outreach because people hear from you and it's like, yeah, this is an interesting product, but who are you? You know, why do I trust you? And so, yeah, just being in the right room with the right people, um, especially in the age of like so much automated outreach, people are just being like absolutely inundated with uh cold emails, cold LinkedIn messages. It's it's nonstop. Um, you know, I get a message every other day for somebody that's trying to offer development services, and it's like, really, we've got that. That's the one thing that we have no issue with. Um, so you know, my heart goes out to some of those people that are trying to sell just like general application development these days. Um I mean, it's got to be one of the one of the hardest uh pitches to make right now.
SPEAKER_02Oh yeah. I've talked to people who run agencies, and I understand it's gotten a lot tougher uh now that there's AI and clients' expectations are different, and the job market is different and all that stuff. The the market for um software services is different. Right. Um You said you're speaking at a conference. What kind of conference is it?
Outreach Channels That Actually Work
SPEAKER_00Oh, it's for it's around money laundering specifically. So um, you know, a lot of times uh like smaller institutions don't really have the sort of IT infrastructure that you that they might want. Um and so a lot of it is like educating them on things that they can do, like, hey, you have all these reports that you need to file, there's a way you can automate that and not have to have someone like manually copying you know data from one form to another. Um or you know, like uh there's new innovations around like transaction monitoring, so that's a big one for us where you know you can use um AI to sort of like detect uh suspicious patterns that wouldn't normally show up. Um you know, like a lot of times like the old way of doing it was very like threshold-based. So if a customer like moved a certain amount of funds within a time period, it would create an alert and say, hey, take a look at this. Like this is out of the norm for that, right? And then someone would have to look at it and say, like, oh, this is a large equipment purchase, or this is, you know, there's a legit reason for this, but someone still has to like go in and look at it. And so what we're trying to do is make that decision faster. Like you still need a human in the loop to make that decision, but you might be able to pre-qualify it by saying, like, hey, we we looked at their prior activity and this kind of fits something that they do every few years or whatever it is, right? Um there's a huge opportunity there for for automation. Um and so yeah, that's been exciting, and it's cool to have those discussions with people who don't know necessarily what's possible. Um and so yeah, bringing some of these like new solutions to market has been pretty fun and pretty rewarding, and um there's definitely an opportunity to speak about it. Uh, it's something I'm trying to get better at as a founder. Um I'd much rather be behind a screen than in front of a microphone like any day of the week, but uh it's good to like stretch those muscles and kind of uh you know uh push that that side of the business.
SPEAKER_02Yeah. Yeah, I definitely am the same of what I found that I was able to kind of cultivate uh an enjoyment of it. Um and it's kind of like I wanted the rewards more than I had an aversion to doing the thing I didn't want to do, you know?
SPEAKER_00Yeah, I like that way of looking at it. It's very psychological.
SPEAKER_02Yeah. Yeah, and so uh none of my talks, I don't think, have ever been great. Um, but uh an okay talk that exists is better than not not doing a talk at all.
SPEAKER_00Absolutely. And you're cultivating it, like you said, you're growing. I've heard it said that you know, uh being like a founder or being like a a business person, if you will, sort of exposes the parts of your personality that you might need to work on a little bit, which is like how you come across and how you know, like seeing myself on camera for the first time. Do these silly ads that are like a minute or two long and they kind of show different features and uh you know put those out. And it's it's really painful. It was like a horrible thing to watch myself on camera the first time, and it slowly gets easier and easier. It helps like to me when I first put something out, no one cares. And then you're like, okay, that wasn't so bad. Like I have to make people care. It's not they're not gonna suddenly just like think it's really interesting just because I put it out there. And so then it's like it sort of breaks the seal, and then you become more comfortable like putting your s putting your face on the product and putting your name out there, and uh it's it's been a a slow, a slow process, but uh fruitful.
SPEAKER_02Yeah, the humbling and freeing realization to make is nobody cares about you, like at all. Yep. You're just some random guy and like nobody cares.
Conferences And Modern Transaction Monitoring
SPEAKER_00I will say though, like with the ads and stuff that I've done, um, you know, it's you can get discouraged. Like as a founder, you put something out and it gets like five views, right? Um, but then I sometimes I get in a discussion with people and it's clear that they've watched our material. And so, you know, if putting something out that only a hundred people see, if those hundred people are the right people, it's not a waste. Like it, you know, a lot of times people come to you pre-qualified because they get what you're doing from whatever little drip of material you've sort of put out there. Um, so that was like a big surprise for me. It was like sometimes I'll I'll start to explain how something works, and it's very clear that they've already kind of like done the research, and so that's uh been an interesting like learning, I guess.
SPEAKER_02Interesting. Yeah, to me it goes back to the do things that don't scale approach. Because like in the beginning, who cares uh about the like ROI for that particular activity that you did? Yep. Like I would I would spend so much time, like if you asked me what's the maximum amount of time you'd be willing to spend with a customer in order to to get it to all work out, and it's like almost unlimited, right? Because when you have no customers and you're trying to get like your first five or ten, like I would do anything to get some of those customers. It's irrelevant uh whether I get like a positive ROI on that specific customer because it's more like you're making an an investment in the entire business by getting yourself through that really rough period where you just have to get the first handful of people in there one way or another. Um I I I see that kind of thinking a lot where it looks like the ROI is upside down, so people don't want to do it, but I I don't think that's the way to think about it.
SPEAKER_00Yeah, totally. I think uh I wish more people understood that working with startups is like augmenting your own team, right? Because that like you said, you will go to great lengths to make sure it's successful early on. I I told people uh when I was getting started, like, I'll trade your data for my expertise. Like I'm not even gonna charge you if it means I can see what your transaction uh typologies look like and sort of dig into like what the real data looks like because it's enabling the entire business you know from that point forward. Um so I'll always work with startups now, knowing like the amount of hustle that you get from a founder who will not sleep unless you know it's a successful rollout, right?
Startup ROI Thinking And Customer Data
SPEAKER_02Yeah, yeah. Um so where where what stage are you at with the business and with sales and stuff like that? Are are you still at the stage where you where you're trying to get those first the first handful of customers? Are you past that stage? Where are you at?
SPEAKER_00Yeah, so my whole goal with this all along was to just be able to pay myself like uh whatever salary I would have been making, you know, in industry. And uh I'm very close to that right now. Like I I can't complain, like you know, the budget's still a little tight, but like I'm very close to where I need to be. Um so everything going forward is is basically just protecting myself from churn, right? Like I'm you inevitably lose people over time, maybe they outgrow our solution. So yeah, just having like that cushion uh in place. And uh I'll still do the free thing if it means expansion into a new market. So there's like remittance corridors and things where it's like, you know, we're seeing a ton of money move between country A and country B. If there's a way I can get in country B, as someone who's done like this international filing thing in the past, like I'm open to that discussion, right? Like it's all about what we can do to sort of enable the next phase of growth. Um, but for now, yeah, it's like I'm I'm happy uh sort of paying myself and not having a boss other than my my customers, I guess, or your boss. Um but yeah, I've I I don't have a good term for it yet. I've heard people call it uh either like a skeleton crew uh or a ghost ship. I've heard someone say that recently. I'm running a ghost ship. Sounds very haunted as a term. I wish there was like a better name for it. But uh yeah, like it's a solo peneur thing with AI enablement, I guess. And um yeah, that's to me, it's like the future of a lot of these companies where you hear about you know, some company that's making hundreds of millions of dollars with like five employees.
Solo Founder Economics And AI Multipliers
SPEAKER_02Uh yeah, and I think that is gonna become more common. Um like I've said since very early on with AI, I think it's gonna be a a multiplier. Like it'll make the whoever's already the most productive, it's gonna make them a million times more productive. Um the the people at the bottom end are are gonna just create a bigger mess faster. And if if you're already creating negative value, you're gonna create more negative value, then the people in the middle are just gonna stay there. Um I'm I'm curious about how things have progressed for you over time because AI has gotten, from my perspective, so much better over the last you might call it two or three years or something like that. It's gone all the way from like I didn't really have an interest in using it at all because it just wasn't there yet, to it's helpful, but it's often frustrating, to it's blowing my mind on almost a daily basis. Um, first of all, how long have you been working on the product and like how has your relationship with AI changed over that time?
SPEAKER_00Yeah, so it's funny. Uh when everybody had the Chat GPT moment, uh I guess it's been about three years, uh, I immediately resigned from my current employer and was like, I'm gonna do something with this. I don't know what it is, but this is this represents a shift in the landscape, right? Um, and then I tried a bunch of different ideas, threw a bunch of things at the wall, and ended up going back to what I had done professionally. But since then, I mean I've always been trying to build in a way that's um sort of uh AI efficient, if that makes sense. So one of the things, and we could talk about this, I think uh Rails is a huge advantage, right? You hear people saying now, like, oh, you could do so much with AI, one person can make an amazing product. And like as a Rails developer, we're kind of going, like, wasn't that always the case? Um, but now it's like even more. Um and so one thing that I've done that I've gotten so much mileage from is having a proper like form builder model in the product. And so what that does, it uh you know, like you can you can imagine at this. So I think form is a reserved word in Rails, uh, but I we call them steps in our system. And so we have steps that are comprised of different fields, and the fields can you know be have different data types, it could be a string field with validations on it, things like that. But it's a composable layer where you can define an application in a way that's prompt efficient, if that makes sense. So that's something that I've always tried to design for is you know, um, can I represent this application in a way that is uh declarative and that I could send to an AI and say, hey, you know, uh what can we add to this that uh that makes it work a little bit better? And so I don't know, I I don't know if I'm doing a great job of explaining it, but having a sort of meta representation of our application has been a huge uh benefit for being able to iterate quickly. Um I mean I think Ruby's already like a prompt efficient language, um, but or token efficient, I should say. Um, but having like that meta layer on top of it has been huge.
SPEAKER_02Um Yeah, um I I think I totally get what you're saying, and I'll give an example of how I took a similar approach with Saturn CI and maybe tell me if this is basically the same idea or similar. Um you know it's a CI product, and so I'm I'm using it on itself, and so I'll make a change and then push it, uh, and then I'll watch for the test run to finish, and either it'll pass or it will fail, and then if it passes, I can merge and move on. If it fails, then I need to fix what went wrong or whatever. But it's annoying, it always has been, to like switch back and forth between the terminal and the browser to be like, okay, is it done yet? Blah blah blah. Um, so I'm like, and and it it became really painful. Um the uh using AI really shone a light on this painful part of the process, and I'm like, this is stupid. Like, why don't I just uh make an API and have an endpoint where it has any failures, and like to test file names and lines and stuff like that, and I can tell Claude Code do a push and then just pull for the result, and if there if it passes, merge and push, if it fails, fix whatever went wrong and repeat the loop. Um so I did that, and naturally I had clawed code help me build the API. Um and side note, if you hit the API unauthenticated, it'll say, Hey, look in this, it's basically saying, Hey, Claude Code, look in this specific path for the credentials and try again with the credentials that you find there. So another like AI targeted thing. And that has been great. Is that a similar idea to what you're thinking about?
Designing Rails Apps For AI Agents
SPEAKER_00Yeah, totally. So I'll I'll give another example of something we just did recently. I've been writing agents, and like they're not in our product per se, but this is like a you can imagine having like a CS role, a customer support agent. Um so one of the things is it sounds very similar to that sort of like uh it's like a REPL loop, like a re you know, it's iterating. Um we'll take customer data, a lot of times they'll give us a spreadsheet and say, like, this is what our transactions look like, how how we store them in our system. And it's on us to map it into our system so you could just like upload it and everything works. So I have an agent now that basically takes a spreadsheet and and then it does a similar thing where it goes out and says, like, okay, how do I use Rhizome? There's some guides on that where it says like, okay, here's where you upload a spreadsheet. Here's how you um pull from an endpoint to see if what you just uploaded looks correct. And if it doesn't, keep looping until you've you think you've mapped the the columns in the spreadsheets in the right way. And so it'll just, it's incredible actually. Like this is kind of new, but I'll I'll give it customer data anonymized so there's no like PII in it or anything. But then it will just keep doing this thing where it's like, okay, I think this goes here, maybe not, and then it'll pause when it's done and it'll say, Does this look right? And you can say, Well, you're close, you know, map this field from from here to here instead of what you did. And it goes, great, let me try that. And it'll basically just keep uploading data, deleting it, trying again, like in a sandbox environment, until you go, okay, that looks good. Now create a mapping for this. So that anytime like I upload that kind of spreadsheet in the future, it's got this machine-generated mapping that would have taken like a customer support rep you know days to come up with and probably would have had problems with it, right? They would have missed something, something wouldn't have got mapped right. Um, all that to say, I mean, this is like another example of the ghost ship where that would have been somebody on staff that has to know CSV and JSON at the least, right? And it would take them a couple days at least to get something like that working. Um so yeah, exposing like having like the Rails app expose guidance to um to an agent, whether it's through MCP or even just like a markdown file, saying, here, try this. Um that that's something that is uh very rewarding, and that that sort of like iterative loop is uh very powerful.
SPEAKER_02Yeah, and how can we generalize this stuff? So like what I'm thinking about is there's there's maybe two concepts. This is just a rough draft that I'm thinking of out loud, but there's like access and abstraction. So I'll just take my API example because I'm familiar with it. That was a case of giving the LLM access. You know, it it doesn't have the ability to like go log into the UI and look at the UI and stuff like that. Theoretically it could, but it's it's a lot better just to have an AI endpoint. So it I gave it easier access, and then I put a layer of abstraction over the information. It's basically saying, like, hey LLM, here's exactly what you need to know. I'm giving you the essential information, and I'm gonna strip away any non-essential details, because that's what abstraction is. And it makes it it it it basically it's the difference between handing somebody like some lettuce and a carrot and an onion or something, and making a salad with the vegetables pre-cut and stuff like that, so you can just they can eat it right away. That kind of idea. It yeah, I I I think that, you know, as we've been saying, it's really powerful.
SPEAKER_00Yeah, absolutely. And uh it keeping things concise is the challenge for these agents, and that to me has always been the challenge of software engineering is keeping things as simple as they could possibly be. Um, you know, if it fits in a prompt, or if it fits in the context window, it probably fits in your brain too. And so distilling things down to the absolute bare minimum is where you get the most mileage from these things. When you start overloading it, you know, you're gonna get wacky results. Like I'll have an agent, like it'll suddenly start writing Python, and I'm like, no. This is a Ruby app, right? Like keep the scripting in Ruby, and uh so you know you have to like correct it from time to time. And it does some pretty wild things, but uh for the most part, it's it's been incredible what it can what it can sort of discern from even sort of crummy instructions, you know. Yeah. I think a big part of it too is like saying, like, okay, here's phase one of what I want you to do, and then refer to this document when you get there as to what phase two looks like, right? So you can have these aging flows that sort of they're only looking at one small piece at a time when they're trying to eat the elephant, so to speak.
SPEAKER_02Yeah, something I did very early on was I started saying to the LM before you do something, repeat my request back to me and ask me if it's right. That helps a lot. And it gives me the ability to um just just crap out whatever half-baked thing I have in my mind, and maybe it can kind of fill in the blanks for me. And that allows me to work at lower RPMs. Because you know, AI is is a productivity booster in multiple ways. One, it allows you to do the same stuff faster. Um, another is that it allows you to do like bigger, more ambitious things, I I I should say more difficult things that require more knowledge and stuff like that. Like uh I don't think I would have built a CI platform without AI. It just seems too hard. And now that I'm into it, like I know it's too hard. Yeah, um, but I can do it because of because of AI's help. Um, so there's that, do the same stuff faster, do harder stuff, and then the third thing is do the same stuff but at lower RPMs. Because if you can work at lower RPMs, then you can work longer without like getting mentally exhausted and just saying, all right, I have to close the laptop and go do something else.
Abstraction And Short Prompts That Win
SPEAKER_00Right. Yeah, it's that loop again of uh keep working on this till the tests pass, or keep working on this till the data's uploaded, and you can walk away and grab a cup of coffee, take a walk. Uh it's nice for that. But tell me if you do this, because I I this is something I find myself doing all the time. I'll let the AI just just do its thing, right? Like uh implement this feature, won't even define it that clearly. Do your best, walk away from it, and then I'll come back and look at what it did and completely like sometimes there's insights in there, but usually just like completely trash it and then do it myself. Because I find that it will it'll find things that I might have missed or it'll expose something with the way I asked that was off, right? And then it I don't know. I find myself doing that a lot. I'll just let it kind of do its thing and then I'll look at it, I'll take it as advice for like something I might implement, but then I don't actually end up using like almost any of it.
SPEAKER_02I think that sort of thing used to happen to me more. Yeah. It happens to me less now that AI is is smarter. Interesting. You know, this this new um Claude 4.6 uh model that came out on February 5th, 2026, for those listening in the future. Um that's that model is is better. Um and I keep it on a pretty short leash. Right. Um and the thing is, you know, you say like uh give it a prompt, let it do its thing, step away for a minute. I used to do that, but now it's too fast. Like interesting. I almost it like almost feels worse because like I give it a prompt and then it's like okay, I'm done. I'm like, fuck, well, I I didn't want you to be done yet. I wanted like a little break because it feels it feels like more stuff is happening if it takes a long time and then it comes back. It's like, oh, you were actually like doing some hard work because it took a while, but now it's just like I ask it what to do, and it just immediately does it, and then the the ball is in my court again. I'm like, oh, this is kind of worse, even though it's better.
SPEAKER_00Yeah, it does remind me of when I was like managing a team of devs and you have to keep the pipeline full, like you have to have a pretty deep backlog to keep everyone busy. There are those times where you're like, well, I don't have anything to prompt it with right now. Like I I haven't done my homework of like filling up the you know backlog enough. Uh that that's definitely something I experience often. But I always say I don't like it touching my critical path. There, there's a compliance component to my product, which is like I I don't want Claude anywhere near the actual reporting aspects of our software. I like to use it on the periphery, so it's great for saying like generate tests for this controller or whatever. That's I mean, I'll never go back, right? Like you can never go back to like writing unit tests again. Um but when it comes to critical path, I'm just afraid of it. It it's really good at adding stuff. It's not good at taking like a scalpel to your implementation and and boiling it down to like just the brass stacks of what you need.
SPEAKER_02One of my yeah, yeah. One of my very least favorite things about LLMs, at least as of right now, is their proclivity for writing what I call speculative code. Just like code that's just there just in case. Like, oh, if the argument that's passed is not a string, then exit. It's like, okay, but it's like never not gonna be a string. Yeah, like that's just noise. Like, don't do that. It's better now though. I found it's better now, maybe partly because the model's just better and partly because I I like very emphatically in many places in my uh agent markdown to tell it not to do that.
SPEAKER_00Yeah, sorry, you kind of broke up there for a sec.
SPEAKER_02Oh, sorry. Um yeah, have have you experienced that same thing where it writes that like just in case kind of code?
SPEAKER_00Yeah, it's uh it's not like I I think it was like I forget the guy's name, but he wrote the book like Confident Ruby, or there was a guy at Confident Ruby. Oh yeah, Abdi Grimm. Yeah, that's him. Uh it doesn't write confident Ruby. It doesn't write, in a lot of cases, like very idiomatic Rails. So again, I'll take what it gives me and sort of like massage it into something I'm more comfortable with. Um but yeah, I have to tell it a lot of times like, you know, don't assume this is gonna be blank, because it's clearly being like initialized somewhere to never be blank, you know, that kind of thing. Um I do wish it was a little better at like sort of picking up. Like the idiomatic patterns in an app and and applying that, but I think it's just it's the context thing, right? You'd have to define it in your agent file or whatever the way you want it to be done.
SPEAKER_02One thing I did, it took me forever to get around to setting it up, uh, was just to put RuboCop on it so that it would catch all the little things. Like it's weird, and I expect this will go away as time goes on, but like LMs will often add like trailing white space on a line. Yeah. And just other things that like I don't really want, things that are inconsistent, stuff like that. And that's just one little thing that helps that I uh Ruboclop and a um pre-commit hook so that I can never uh commit something, something nasty. At least not something that RuboCop would catch.
Where AI Helps And Where It Hurts
SPEAKER_00Yeah, that's we use like the pre-commit hooks really heavily um just to save budget, I guess. Maybe uh we'll have to look at Saturn and see if we can upload some of that. But uh yeah, um there's a lot of things like that. I I try to use it more, yeah, like on the periphery of the app, but also like there's a lot of applications for this. Like I use it for marketing. So uh something I used last week, um, people love infographics. So I spun up a Rails app with Claude to generate infographics from like the latest data. Um and it's awesome at that. Like it's like a little self-contained thing that's not gonna spill over into my main sort of business logic. And it's like now it like uh something will happen, and I'll just like generate an infographic and I can post that on LinkedIn and say, hey, look at this. Like we're showing insights about the industry that it's something I cooked up in like an hour with AI, right? As opposed to, I don't know, like in the old days, you'd have to like sit there and head scratch over like what am I gonna post today to stay relevant and kind of keep what we're doing like top of mind for people. Um, so there's a lot of things like that where it's just it can fill in a lot of these roles that are not core application logic.
SPEAKER_02Yeah, how do you get it to create an infographic?
SPEAKER_00So they're like for for us, um I we're mainly Canadian, so there's uh the regulatory body here is FinTrack. And so if you're not like running a program in the way that they want you to run to catch money laundering, they'll assess a fine and it's they put you on this naughty list that they'll publish your company name for five years, they'll they'll some of the fines are getting pretty large, they might find you like 100k for you know not vetting customers correctly or not reporting things you should have reported. And uh so I I just had like wrote a little app said, go scrape this page, find all the monetary penalties and put them in some nice graphs and and show them in a way, like we split it across industry, so you know, like, okay, casinos versus um crypto companies versus like all these different uh verticals. Like who's who's getting the like regulatory focus in terms of um like this these crackdowns that happen? Um and so it's great. Like our customers love that because they're like, you know, how much of a focus is the payments industry for regulators right now, and they can sort of see a quick breakdown. Um so that kind of thing where it's like you have to be a little creative with it, but it's not just like, hey, write unit tests for me. There's there's just so many applications that I'm constantly thinking of things that you know just this didn't exist like last year.
SPEAKER_02Yeah. Is it just like, hey, AI, take this raw data and make a visual representation of it, or is there some intermediate tool that that uh you can generate graphics with and it knows how to like manipulate that tool or whatever, if that makes sense?
SPEAKER_00Yeah, exactly. It's like so there's a scraper that gets like some HTML data, turns it into JSON, and then there's another piece that feeds that JSON to a charting application, and uh yeah, I turn them into um PNGs. And I don't even know how it works, I don't care. You know what I mean? Like it's it's not touching my app and it's not necessarily a security risk. Um and so yeah, like let it rip, you know? Uh-huh.
SPEAKER_02So yeah, it's crazy how much leverage you can get, and I'm always on the lookout for like what am I leaving on the table? What kind of stuff sh could I be doing that I'm not doing? Yeah. Um I I'm not sure. Um right now it kind of feels like well, the the one place I'm lacking right now is uh you know, there's these uh clawed skills, and I guess skills are uh a tool agnostic thing. You can I've applied these same skills to uh codecs, because I use codex at my day job and then clawed on Saturn CI, and I share the same skills with both. Um, but I don't nearly have that stuff dialed in as as much as I know that I could.
SPEAKER_00Yeah. I've taken it just writing a bunch of little Ruby scripts that uh interface with my app like over API and then giving somewhat vague instructions in like uh agent.md saying, like, you know, use these tools, don't uh worry too much about how they work, but this is how you pull data from us, this is how you push data in. Um yeah, it's been great for that. We can uh you know, like you you used to use like a faker to generate uh you know test data. It's it's the greatest faker in the world, right? Like generate me a spreadsheet in this format that I can test against, and um you know, then I can tweak it and and do different things to kind of like exercise my app in the way that like a QA engineer would have.
SPEAKER_02Interesting.
AI For Marketing Infographics And QA Data
SPEAKER_00So um yeah, there's there's so many things you can do with it, and uh, we're still sort of figuring out how to piece it all together and and where the humans fit into it, right? Like uh I kind of think of like the architect with AI is kind of like the good guy with a gun uh policy. Like it in theory it can happen, but like you have to be really careful with how you uh guide these things. And it it really it sucks to be a junior coming up uh in this industry right now. I don't know how we mentor people to get up to speed anymore. It's um the temptation to use these tools to not have to learn to think is very high as well. Um and how are you gonna get a job? It's just yeah, it's hard. Um I noticed on uh LinkedIn the other day somebody posted uh they had Cloud like port SimCity from the original sort of assembly and C to JavaScript. And porting was how we used to get people up to speed, right? It was like take this application that already exists, move it to another system. That's how you learn how to be an engineer. And now that's going away. Like uh there's just so many things like that where it's uh sort of devastating to be breaking into this industry.
SPEAKER_02Yeah, from the education side, I you know, I don't know, because I can't go back and be a beginner. Right. Um but it it certainly in some ways it seems like it could be better. Because it's like when you're starting out, uh a big part of the frustration is like I just want to get something to work and get that like complete feedback loop and the dopamine hit of doing some work and then getting the reward for having done that work. And now you can just say like, hey, make me a tic-tac-toe program or something like that, and it'll give you the whole thing. Um that specific kind of action is like, okay, I I didn't learn anything by doing that. Um but it can at least grease the wheels, and like if you there there's that really common thing for beginners where you get just hopelessly stuck on something, like you get some error message, or you paint yourself into a corner with your own poor design of your code or something like that. I imagine an LLM would be so helpful in getting you unstuck from those things. So I I think that helps a lot, although again, it deprives you of these difficult learning opportunities. And then again, just getting your first job, like who wants to hire somebody with uh very little experience uh in this age where um well just the job market in general, even for really experienced developers, is super brutal now. So it's like if it's even hard for people with 10 or 20 years of experience to get a job, like how are you gonna fare if you're brand new? I don't even know. Like, are new people actually entering the industry now? I I don't know if that's really something that's actually happening. I don't know.
SPEAKER_00We're gonna have to get there again, right? It's gonna, you know, it's cyclical, right? We're gonna have to hire new people if we want to ever have seniors. So yeah, I don't know how that works or what that looks like. I know like working in Ruby shops most of my career, we it was very much like you would hire people to train them on Ruby because they didn't know it, they knew Java or they knew Python or something else. Um, and so it that was like a big part of like running a Ruby shop. It's like you're training the next generation of like Rubyists from whatever they're used to. So we need that kind of like approach again where it's like almost uh a community-minded uh experience. I I don't know. It to me, it's like we've got to figure out what these tools, like how they're used in a more efficient way to get something out of people that are just learning. Um but you have to like wield them carefully or you're not gonna learn it. You know, you're you're you're not gonna train your brain to think like an engineer if you lean on these things too heavily. So that's definitely a concern. And maybe it all goes away, right? Like maybe even the seniors are automated in two years and this is all for naught. And uh, you know, it'll be like knitting, like hand knitting, like a scarf. Like it's just something you do as a hobby. Um I'm okay with that. I'll still do it. I enjoy it, but like, yeah, it's it's all these existential questions that are coming up, right?
SPEAKER_02Well, how often now do you find yourself actually writing code by hand? I personally almost never do that anymore.
Juniors In The AI Job Market
SPEAKER_00I write code by hand daily, uh, because again, I I there's there's a risk for certain parts of our app where I just don't I don't trust the LLMs. Um yeah, I mean it's good at what it does, but there I have pretty clear boundaries about like what I don't want it to do. Um and a lot of times like I'll let it go on a branch and and then I'll um I'll be working on it in parallel myself and then compare what it did to what I did.
SPEAKER_02Oh, interesting.
SPEAKER_00Yeah, so that that really works well. And it's like, oh, it caught this like edge case that I would have missed, or or this is completely wrong, or it gave me an idea about how my approach was wrong, right? Like it's just this sort of like back and forth.
SPEAKER_02Um regarding the trusting, you know, same with me. I I trust the LLM like zero in a way, everything it does is suspect. Um but there's no part of my application that I consider off limits for it. Um I'm gonna ask a dumb question, um, but I'm just curious your response to this. Like, we have version control. Why can't you just let it make a small change and then just look at what it did before you commit it?
SPEAKER_00Oh, for sure. I mean you have to review what it does, like very with a very skeptical eye. Um, but a lot of times I just look at it and throw it out, right? Like it's like it it hits the uh trash right away for me because I'm just looking for it to test my assumptions about like what I'm trying to do and my approach.
SPEAKER_02Okay.
SPEAKER_00But I don't know, maybe I'm a dinosaur too. That's entirely possible.
SPEAKER_02It's so interesting learning about people's different um approaches to all this. Right.
SPEAKER_00Um because not everybody in a new language I would lean on it a lot more, right? So I've been working with Ruby for so long that I can interpret a stack trace in my dreams. Like if I'm in Python, it's it's literally backwards, right? The stack trace looks foreign to me and I don't know what it's trying to tell me. Um so I could see it being like if I was like working in a new language, I would probably want it hooked into my error log and trying to like autocorrect things as they come up. Um, but with Rails, it's second nature. So if I see something, I'm like, oh I know I called something on nil here, and it's like I know exactly where to go and exactly what to fix. Um so that's a difference, I guess. Like having stuck with it for so long, um, it's it's just pretty easy at this point.
SPEAKER_02What I absolutely do not understand, and based on what we've talked about, I would guess that you're in the same boat, is the people who are just writing like tens of thousands of lines of code every day and just letting the LLM have at it. It's just like, what?
SPEAKER_00It makes no sense to me. There's this trend of posting like your token usage and like it's some badge of uh achievement, like, oh we we burned like two million tokens on this, and it's like, okay, so link your app. I want to see what it what what what are those two million tokens buying you, right? Um it's kind of like even back to days of like TDD, like your test won't tell you if your app sucks. It'll tell you if the test pass, it won't tell you if the user experience was good or not. And so I don't know, to me it's the same kind of fallacy of like we burned all these tokens and well, what do we have to show for it, right?
SPEAKER_02Right. It's like that Bill Gates quote of measuring progress by lines of code is like measuring the progress of an airplane by weight. Right. It's like, no, that's that's you think that's good to have used more tokens and to have written more code, but that's bad. Like the smallest amount of tokens you've used and the fewest lines of code to do the same thing, like that's better, because otherwise you're just adding things that are superfluous or a liability. Uh that's really not the thing to want to see go up.
SPEAKER_00Yep. There's no code like no code. So uh get a get patch that's more red than green is is always my goal. Um, you know, what can you what can you distill it down to? That's the radical simplicity uh approach.
Simplicity Over Tokens Closing Links
SPEAKER_02Absolutely. 100% agree. Um, well, we're close to time, so we should probably wrap it up soon. Before we go, uh are there any links or whatever that you'd like to share where people can learn more about you and what you're up to and all that?
SPEAKER_00Sure, yeah. Check us out uh riseomcompliance.com, all one word. And um I'll just say to the builders out there, especially like now with these new tools, if you're maybe you had an idea for an app all these years that you never approached because it had a financial component to it, um, we can help with that compliance side of things. Um so maybe it's time to dust off your idea for an exchange or a payment processor or you know, something that's a little heavier than like a typical CRUD app that uh you've maybe shied away from in the past. Uh check out Resum Compliance. We're focused on you know startups and uh small to medium businesses who uh don't want to pay you know like crazy prices just to be able to test an idea and not run afoul of regulation. So um yeah, I would encourage you to check us out. Uh we do it all from like the customer onboarding piece, transaction monitoring, and then we'll help you file reports all over the globe. So um yeah, hopefully uh you know someone out there is listening who could use us and uh give us a shot.
SPEAKER_02All right. Uh well we'll put that stuff in the show notes. And Kellen, thanks so much for coming on the show.
SPEAKER_00Thank you, and best of luck uh with your product. I hope to hear one day how you you know hit like some exascale uh and you're just doing you're doing great. And I love what you're doing for the community, by the way, uh, with uh RailsConf and for Ruby. Oh, thank you. Uh it's it warms my heart to see like people getting into Rails for the first time. And I think you know, people like yourself are out there, Chris Oliver and others who are like doing so much for Ruby in general. Um I love to see it, and I hope to see this community just grow and thrive. And uh we'll be onboarding new new juniors into the into the Ruby ecosystem for years to come.
SPEAKER_02Yeah, and and dear listener, if you're not aware, um I'm co-chairing RubyConf 2026, which takes place in July in Las Vegas. Uh so if you're gonna go to RubyConf, dear listener, I will be there too, and I hope we can meet in person. Um, do you know, Kellen, if you're gonna make it to RubyConf?
SPEAKER_00Uh I've got some other compliance focused things this year, unfortunately, but uh I'd hope to maybe next year, actually. Uh when we get a little more comfortable with our sort of margins and uh yeah, it would be great to to uh kind of like rub shoulders with uh other Ruby minds and and maybe even uh present a topic or two that could be a lot of fun.
SPEAKER_02Yeah, yeah. Um all right. Well, it's been wonderful talking, and uh thanks again for coming on the show.
SPEAKER_00All right, thanks so much.