JV José Valim José Valim On Maintainable

“We don't allow pull requests for issues that are older than a week. So if an issue is older than a week, it means that implementation is not the blocker. If I could solve that by putting an agent at it, then I would have solved it already.”

Maintainable · Hands-On Engineering Podcasts · September 2026

“We don't allow pull requests for issues that are older than a week. So if an issue is older than a week, it means that implementation is not the blocker. If I could solve that by putting an agent at it, then I would have solved it already.” — José Valim, Maintainable

Asked how AI has changed maintaining Elixir, Valim said the uptick in agent-generated pull requests is fine in itself, and that the rule above is how the project puts back-pressure on drive-by contributions. What bothers him is different: when he replies to a contributor and gets an AI answer back. "I have AI at home and it's the same AI as yours," he said. "Me teaching somebody who's just relaying an AI is a waste of my time."

Transcript

Maintainable Around 36:41 into the episode
robby russell

I think that that's great. I've dabbled with some Elixir, I can't remember how long, maybe during the early part of the pandemic. I think it was some like doing some of the,

Jemma Issroff

was it the Cones? There was some project I was playing around with. I think I still have it. I'm probably in one of my developer machines here. But I was fascinated with it and then kind of got wrapped up in some other interesting curiosities at the time. So I'm going to have to maybe spend a little bit more time poking around with Elixir in the near future. Maybe it's a little fun experiment for myself. I'm curious. I don't want to be, I want to be mindful of your time too, but I'm curious about how you're thinking about software right now and maintaining open source projects and what that looks like in the age of AI. Because as someone that has an open source project that has had a lot of contributions over the years, it's over the years. It's been an interesting challenge to navigate how we're allowing and how we're handling like first-time contributions from people. Has that been impacted you at all in like your team at all in terms of like, it's great that you want to be inviting people to come in and participate, but it feels like, and I don't want to dismiss the contributions that they're trying to make just because if they're using AI or not, but it's just like also like, what's that process? What's that look like for you? Are you getting an uptick in unsolicited PRs from people?

José Valim

Yeah, we definitely got an uptick on PRs. As I said, like we have more people that they are automating like Fable or, you know, ChatGPT Sol to find bugs and send pull requests. And it's great because they are finding bugs, they are finding typos, they are finding things to improve. And I don't mind that. I think that's completely fine. I think what changed in the dynamic for me, really like the human dynamic, is that before, if somebody opened up an issue and or they opened up a pull request and there was something wrong with it, I always saw like that's an opportunity for discussion. That's potentially an opportunity for misunderstanding. It's maybe a potentially an opportunity for me to learn something because I'm missing a case. And I think that changes because so sometimes like somebody drops something and then I drop and I was like, hey, what about this? And then it comes like with an AI reply. It's where, so like my mental model broke. And at that point, it's like, I don't want an AI reply because the UI reply, like I have, I have AI at home and it's the same AI as yours, right? So it doesn't bring me anything to move that discussion to GitHub or to have a discussion on GitHub. Because if I need to ask something and I need the feedback from AI, I can just pop it up on my terminal, get the answer immediately and evolve from that. So for me, that's one of the things, that's the part that I don't like. And I feel it's frustrating when it's like, when I am kind of waiting for the human connection and then I get the AI in its place, which again, it's fun. Like if that's again, I'm completely fine if you want to do that, but I wish I could be informed so I know how to best invest my time. Because me teaching somebody else is that's just a waste of my time. And I know some projects, they have bigger issues with, you know, like AI iterations and AI having like generated issues. And a lot of the agents, they, I mean, they, I mean, most of the agents are going to pick it up. And that has helped put a little bit of back pressure on what the agent did is that we don't allow pull requests for issues that are that are older than a week or something. So if an issue is older than a week, it means that implementation is not the blocker. If I could solve that by putting an agent at it, then I would have solved already. We are in a good place. And there are some things where AI has been like, I mean, there are many cases where AI has been extremely helpful. But one of those cases. And then we have a bunch of machine learning models, both traditionals and like neural networks that they have the implementation in Python, right? And in this case, like LLMs can do like really, really well. And so this has been great because we have been able to bring a lot of new algorithms, machine learning algorithms to Elixir because we can look at the Python. So we can run the Python models, get the numbers that we expect, right? And add that to the test suite. So that has been like, just want to give like an example of where it has been.

Jemma Issroff

How when people talk about like, well, we talked to people, they're like, I think we're thinking about rewriting our application in a different language so that we can take advantage of this thing. And I'm like, can you not just bring that thing over to this language? And then that part is kind of like exciting to me that we have that opportunity to do that. But it's also, I understand sometimes I'm always like, if we're taking these ideas from other a little bit more modern and up to date on like keeping up on what's coming next and being a little bit more cutting edge, I suppose. And if we're just kind of like borrowing ideas from those other things, but I think we've always, that's what software ideas from like the best ideas that make sense for you. And so I don't know where I'm going with this train of thought, but just I'm excited about that part of it. I'm like, I'm like, oh, I could probably spin up a computer and just have it work on and see if that worked or not and improve upon it. And that's great.

José Valim

Yeah. Chris McCord, the creator of Phoenix, he has like a very good line, which is, it's very similar to that. It's like, well, you know, because when you have a smaller community like Elixir, sometimes the question is going to be like, oh, you know, like, does it have a package for that? And now, like, I think that's a way smaller concern. And I think, so even things like, like, if you want to talk to Amazon or Google, you can get their SDK. And you're going to bring like that massive amount of code. And even before AI, I would rather I can just write like 100, 200 lines of code that is going to use exactly the API that I need, exactly the way I need to control. And I think with AI, like a lot of the questions can be answered exactly like that. So, you know, what Chris says is like, you know, like if AI can write any code, if AI is going to be the one writing the code, then AI can write any code. So why not Elixir, right? Like, why not Phoenix? A lot of the objections people would have, it's like, oh, but, you know, I don't know it. Yeah. But if your assumption is that AI is going to write the code, then it doesn't matter, right? Then you should also revisit that assumption that, oh, because technology acts, exactly as I said, because technology X is missing, why I cannot use it. It's like, well, you know, just use AI then if that's your starting point.

Jemma Issroff

You know, you mentioned like you might prefer writing a couple hundred lines of code just for the particular API endpoint that you want to integrate with. Do you feel like that perspective is something that has evolved from some pain of having to work with packages in the past? And because I think a lot about that now, I'm like, like in the Ruby world, we're like, okay, when do you decide to reach for a specific Ruby gem or package for something in any language you're working with versus just now with AI, maybe we could just have our own implementation that we own and we don't have to worry about, like, I feel like it's an interesting question for teams to have to expand like or explore because when you bring in a RubyGem or something into your code base, it becomes now part of like all of the decision making around upgrades and updating everything and all these dependencies. So how do you think about that now? But how did was there anything that kind of shaped that?

Speaker names from our own diarization · position estimated from where the line sits in the episode

More from Maintainable