Intro0:00
Um, hi everyone. So, I'm Johan from Poolside. If you haven't heard of us, we're one of the handful of companies that are making their own foundational model from scratch, their own LLM and coding agents. Check us out if you're—if you're not aware, it's some cool stuff, and you should hear more soon.
But what I want to talk to you about today is this: you have people seeing AI and using AI and getting vastly different experiences. If you're on Reddit, if you're on Twitter, you're going to see people that say, "Oh yeah, I'm never, like, touching code anymore.
Two Camps0:38
The AI is doing everything for me, it's fantastic." And others that say, "What are you talking about? I'm trying it in my production app, it produces absolute garbage. What are you guys working on, Todo Apps? What are you doing?"
And there are multiple ways to try to—to understand what's going on there. One way is to say, "Oh, this guy is a shield from OpenAI trying to sell you AI." Or, "This one is an anti that doesn't care about anything and is just, like, lying.
He didn't even try it." Another is to say, "Well, maybe someone is working on a Greenfield app, and that's nice and easy." Whereas someone else is working on Brownfield, on a legacy application. That's complicated, and agents are not there yet.
But personally, I think that doesn't quite hold up. We've seen people using AI in legacy applications with good success. I have myself, so at least on my own experience, I know that can work. So what's the difference? What's the difference, really, between Brownfield and Greenfield?
Brownfield vs Greenfield2:00
The difference is that with Greenfield, the agent's intuition is correct. The agent's writing the code and expect, you know, "If I write the components here, if I write this service, it's going to work. I think that's going to be fine."
And he'sright, because it has very good intuition. On Brownfield, however, there will be dragons. You're going to have things that the agent is not expecting. Maybe, you know, like, dead ends, code that's not used anymore, things that he's not aware of in different parts of the code that he hasn't even looked at.
And that's where the big difference between those two is the feedback loop. And everybody sort of, like, somewhat talked about it in the background of the talks we've seen over the past three days. But I think that's the difference with getting these results.
So you've got your agent that says, "Yeah, I've implemented the new OAuth flow, and it's all working perfectly." What the agent means, really, is, "Well, to the best of my capabilities, to the best of what you have given me, that sounds like it should work."
Maybe the agent was able to verify its work. Maybe it wasn't. But as far as it knows, it's working. If you're a skeptic of AI, you're going to see that first quote, see that it's indeed not working, and just sees, you know, "I'm a liar, I'm incompetent," or, like, "You cannot trust the AI."
And that's, I think, where this cleavage in between those two types of users—like, the first category is going to see some things, "Oh yeah, actually, you know what, it's not working, agent. Can you try again? Check those logs," or whatever.
Whereas those ones are just going to give up. But I think we can make this still better. At Poolside, I've created a little CLI tool called Spoolside. Yeah, I might be good at programming, I'm not good at naming things.
Spoolside3:39
That basically allows it to test our applications effectively. Some of the stuff you've already seen in things like GStack, for instance, being able to take screenshots of the applications, being able to take a snapshot—that is to say, like, a very token-compressed version of what's going on on a web page—and use it.
But our application is not a web page. It's an extension within VS Code. So already, like, it takes an extra step to get there. But with that, our AI can interface with it just like it would with a normal web page.
But we take it further. We have a thing to extract logs from different services, from the backend, from the frontend, ways to restart different services, high-level commands. "Can you access this specific menu? Can you go to this page?
Can you send a message to the agent? Wait for it to reply. Send another message. Upload an image." And do that, and it can stack things, like, somewhat efficiently, a bit like we've talked with coding tools this morning.
And that's pretty useful, because then the agent is able to test what it's doing. If it's working on a bug, it can actually reproduce the bug before it starts working on that. The agents are very eager, "Yeah, I know what's going on.
You just need a margin there. You just need to go and add this call. But until it reproduces the bug, I don't trust you." And that's the big thing. It's maybe without that, the agent is able to still have good intuition and fix the issues, but I don't trust it, and then I'm going to have to go and verify it myself, and I'm wasting time, and I cannot then take that agent and start running it overnight, for instance.
This is a first step to trust. And the point of this is not
AIX Engineers5:43
Spoolside. It's not something you're going to find on GitHub to use for yourself. It's to build your own. I think, as engineers, that's our new role. We are going to have to focus less on the product and more on trying to make the AI work on the product.
How can we make it easy for it? That can be those tools. That can be improving the code base so that it's easier to work on. That can be improving knowledge bases. You can implement this as a CLI, as a skill, as an MCP.
In my case, it's a CLI because I like things simple. But, like, there are many different variations of it, and I think it's going to be different from people to people and problem to problem. But yeah, I think in 2025, we had product engineers that were, you know, like, very focused on doing everything with the product.
But now that AI is getting quite good, you want to focus more on making sure that that velocity is not a trap, that you're not going to multiply errors or compound errors, that you're going to actually verify what you're doing, making it easy for you to verify as well with, like, presenting the work that the AI done and everything around that.
And so I think we're all going to become AIX engineers, essentially. And yeah, it's a bit like when you're in an airline and they say, "Oh, you put your mask on yourself before you feed. You put your mask on your children."
It's the same with AI. You need to put the mask on the AI. You need to make sure that it's self-served before you try to work on features. Even if it slows you downright now, it's an investment that pays off as soon as you start multiplying agents and running things over time.
And that's me done with two minutes to spare. So thank you very much. Any questions from anybody? Yes.
Thanks for the talk. When you're thinking about what to put in the CLI, it sounds like you have a bunch of base primitives, for example, screenshots, logs, etc. Where do you draw the line? What's your mental model for building those mechanical primitives versus putting together, like, checking in, for example, unit tests or integration tests?
Q&A7:40
Like, how ephemeral are these things relative to actually at the limit, like, checking them in and always running?
I think they're quite ephemeral in the sense—and that, I guess, is a personal preference—but I do feel like automated tests can be sometimes a bit too rigid and hard to predict and hard to, like, work over time. So I like some things that mimic the way I would test it, like a human would go and test the application.
The way I find those is, in the first stage where I work with the AI, I even though, you know, like, I can see that the button is a bit to the left and I want to tell the AI that, what I want is the AI to realize that by itself.
So whenever I can tell her that sort of problem, I take a step back and try to think on how to make the AI realize the problem by itself. Another thing is reattractive loop. After you've done that many times, look, pass over your logs, ask an AI, "Oh, did you notice any issues, any, like, any sync?
Are you doing sleep?" For instance, calling sleep(15) everywhere is a thing that, like, there is something that should be weighed for whatever, like a comment that could be there. Is there anything that you keep doing over and over, like running storybooks?
And another thing is really think about, like, your own product. If you're making, say, a game in Unity, like, do you want an ASCII representation of your 3D world for your AI? If you're making something with lots of permissions, different logins that your AI can take very easily.
It's really your new role to think about all of that. That's what I think, anyway. And I think we're it for time. Thank you very much.





