Menu
Sign In Search Podcasts Charts People & Topics Add Podcast API Blog Pricing
Podcast Image

Coder Radio

639: RubyLLM with Carmine Paolino

21 Jan 2026

Transcription

Chapter 1: What is RubyLLM and who is Carmine Paolino?

3.085 - 9.997 Mike Dominick

All right, folks, I have Carmine Paulino, the author of Ruby LLM. Carmine, I love everything about that name.

0

11.96 - 32.514 Carmine Paolino

Thank you. Thank you. So hi, everybody. I'm Carmine Paulino. I am indeed the author of Ruby LLM and also the author of Chat with Work, which is an AI assistant for your workplace. This is where Ruby LLM was actually extracted from. So my journey started... Really early. I started at the age of around five by writing my first batch scripts.

0

32.734 - 44.533 Carmine Paolino

So not real programming, but just something really easy to get into the folders of my favorite games. And then after that, I just love computers. You know, they were the coolest thing that I could possibly find.

0

Chapter 2: How did Carmine's journey in programming begin?

44.573 - 69.825 Carmine Paolino

They were the most interesting thing that I could possibly find. And it felt like magic. So after that, I did a lot of things. So I studied actually computer science, obviously, in university. And there, at my last project, I discovered Ruby. But not because I was asked to, but because, well, my professor wanted us to use PHP. And I was like, hell no, we're not going to use PHP for our project.

0

69.845 - 70.065 Mike Dominick

No, no, no.

0

70.872 - 95.119 Carmine Paolino

And this is because this was 2009 at the time and I was reading Hacker News and Ruby was all over Hacker News all the time. Yep. It was great. Long story short, like we did our project in Ruby. We fell in love with Ruby. Some of our teammates actually, which used to know PHP, they went into Ruby jobs after that. I instead did a master in AI.

0

95.619 - 118.733 Carmine Paolino

And so I used Python for the last decade or more actually. And well, I did a lot of things in Python, especially in modeling of AI models. So I was a machine learning scientist and engineer. I was a little bit in research too, in big companies, in small companies, in consultancies, all kinds of little things. I even started my own company in 2021.

0

118.713 - 144.102 Carmine Paolino

which helps supermarkets, you know, reduce their waste, their food waste, because we ordered the right amount of food using AI. That was all Python AI microservices. And now I started something all by myself, no VC backed. you know, just bootstrapped. And since I could choose whatever I wanted to do, and I could do it in the technology that I wanted to do, I obviously chose Ruby.

144.662 - 168.08 Carmine Paolino

And that's Chat with Work. And then what I noticed is that I didn't find the libraries that I wanted to use out there. So there's nothing that really fit my taste. And so I decided to build my own. And that's how Chat with Work actually started. So what does Chat with Work exactly do? So Chat with Work is an AI assistant for your workplace.

168.52 - 193.692 Carmine Paolino

Essentially, it has the same interface as ChatGPT, but you can chat with your documents. So it has a bunch of tools. It has a search tool, a read tool, a list tool for, for example, Google Drive. And in the future, I'm going to expand it with multiple other services, connectors like Slack, like GitHub, like Teams, like OneDrive, potentially.

193.672 - 201.621 Carmine Paolino

So that you can ask any questions about any of the files that you have or any of the chats that you have in these workplace software.

202.722 - 215.056 Mike Dominick

Awesome. So it's looking at your own data, your own files, and it's context aware of your firm, right? Your enterprise. Yeah, that's right. And from that, you extracted Ruby LLM.

Chapter 3: What inspired Carmine to create Chat with Work?

552.502 - 578.975 Carmine Paolino

And on top of that, we have all the migration generators so that you can create your models that have all the different fields that we require. And then in the end, in your controllers, you just have an access, let's say chat, if it's a chat or access message, if it's a message. And so it wires up everything together with Ruby LLM. So you don't have a large amount of code in your app.

0

579.497 - 607.004 Carmine Paolino

It looks nice. It does exactly kind of what you expect if you use the conventions that we have. And you can also wire it up in different ways in case you have like namespace models and things like that. Nice. On top of that, we also have a chat UI, which is admittedly and also on purpose, not the prettiest. It's similar to, you know, a Rails generator. So it just has the basics, right?

0

607.525 - 632.374 Carmine Paolino

And it can get you started. So actually in two minutes or less, you can go from zero to having a Rails app with a chat UI in Ruby LLM. And it uses just a plain old vanilla Rails, which is plenty. You know, so we have support for hotwire and turbo directly in that generator. And again, it's a minimal amount of code.

0

632.962 - 633.403 Mike Dominick

Awesome.

0

Chapter 4: What features does Chat with Work offer for workplace productivity?

633.443 - 654.084 Mike Dominick

So it sounds like if you're writing, let's say, an internal, I don't know, ERP system, right, in Rails for an enterprise, you could just set this up, set up the generators, set up the models, point it to whatever document store they have, and your end users don't even have to know what's going on. They just see a chat interface. That looks like the rest of the application.

0

654.164 - 663.683 Mike Dominick

And I imagine you could do anything, right? Let's say you have, you know, give me the sales numbers on avocados for the last quarter or something like that, right?

0

664.565 - 686.902 Carmine Paolino

Right. Well, in that case, you would need to wire up some tools. So LLMs in the chat UI are just LLMs by themselves. They don't have any system prompt. They don't have any tools attached to them. So you're basically going to chat with an LLM, just like you go to chatgpt.com, but this time in your own interface, which makes it really cool and interesting.

0

686.922 - 705.178 Carmine Paolino

And you can put it wherever you want, as you said. Now, if you want to interact with your data, what you need to do is to create tools. or at least one of the ways that you could do it is to create tools that then you can give to the LLM to actually use. And this is actually how I built Chats with Work as well.

0

705.278 - 733.759 Carmine Paolino

So at the moment, I have the search tool for Google Drive, which enables the LLM to search in Google Drive. But the LLM is going to decide when it's going to use that tool. and how to use that tool. So which keywords should it use, which other arguments should it use, et cetera. And that's why I think the most important part of AI development and the philosophy behind RubyLM is that it's

733.739 - 748.677 Carmine Paolino

teaches you to not think too much about the grunt details of the API of the specific provider, but just think about the description of the tool. Think about the description of the parameters of the tool. Think about your system prompts, right?

748.697 - 769.744 Carmine Paolino

Because these are the most important things that you should think about when you develop an AI, because these are the things that determine ultimately how useful that AI is going to be for you. And so I developed a little DSL for making tools and you can basically specify it in a very simple way. All of the documentation is on rubylm.com.

770.224 - 781.135 Carmine Paolino

So if people want to check it out, how to do that, I think that's the best. It's probably easier to, to, to go there than for me to just spill out some Ruby in a podcast.

781.155 - 785.92 Mike Dominick

I think, yeah, I think it would probably be easier. Yeah. And I saw you have a params DSL, which looks.

Comments

There are no comments yet.

Please log in to write the first comment.