
Building a Software Factory that actually works (Full Course)
Montag, 14. September 2026 · 31 min
Kapitelklicken springt direkt hin
Shownotes
Get Your Complete Financial OS at startup-ideas-pod.link/brex_SIP
I welcome Ras Mic back to the pod to explain the phrase "software factory." Mic shares his screen and walks through the exact system that he runs today. His factory has four steps: isolate, build, prove, and ship. He keeps the whole system in five or six markdown files, so it works with any model and any harness. By the end of this episode, you can boot up your own factory, run many agents in parallel, and trust the code that comes back.
Create your own Software Factory: startup-ideas-pod.link/ras-software-factory
Timestamps
– Intro
– Software Factory Definition
– Why the Software Factory Matters
– Step 1: Isolate With Git Work Trees
– Step 2: Build With the Code Structure Skill
– Step 3: Prove With Evidence-Driven Testing
– Step 4: Ship With Grep Loop and Greptile
– The Physical Factory Analogy
– A Software Factory Is Markdown Files
– Closing Thoughts
Key Points
• A software factory is a workflow of skills and domain knowledge, so it runs with any model and any harness.
• Isolate: every feature starts in a fresh git work tree branched from origin main, so each agent keeps its own station.
• Build: a code structure skill makes the agent write service layer code that a human developer can read.
• Prove: the agent records a before state and an after state as video, screenshots, or numbers.
• Ship: Greptile scores the PR, and the agent loops back to build until it earns five out of five.
• Mic runs up to 15 features in parallel and reviews the visual proof instead of the raw code.
The #1 tool to find startup ideas/trends - ideabrowser.com
LCA helps Fortune 500s and fast-growing startups build their future - from Warner Music to Fortnite to Dropbox. We turn 'what if' into reality with AI, apps, and next-gen products latecheckout.agency
FIND ME ON SOCIAL
X/Twitter: twitter.com/gregisenberg
Instagram: instagram.com/gregisenberg
LinkedIn: linkedin.com/in/gisenberg
FIND MIC ON SOCIAL
X/Twitter: x.com/Rasmic
Youtube: youtube.com/@rasmic
Transkriptvom Podcast bereitgestellt · Zeitmarken springen hin
What are software factories and why is it going viral? I mean, it's basically this concept that allows you to use AI agents to actually ship software that isn't sloppy at all. That is more like a factory, more like think about an assembly line and you're just instead of building physical products, you're building software.
And that's kind of the dream. I mean, if you're able to just create this factory that builds software and it's valuable software and you can create multiple apps that generate revenue and add value to people's lives, that sounds pretty good to me. So in today's episode, I brought on Ross Mike and he clearly explains the entire process.
By the end of this episode, you're gonna understand how to set your own software factory up yourself. So enjoy the episode. I can't wait to see what you build. There's a reason why this concept is going viral, and I'll see you at the end. Today's episode is brought to you by Brex. My company's been on Brex for a year and a half, and I started because I kept hearing companies like Vercel, OpenAI, Anthropic were using Brex, and I figured if they're using it, why shouldn't I?
It's been a game changer. The thing that got me is how smooth it is. It's got high limit cards. It's got banking. It's got AI that handles the back office busy work like expense reports, which I don't want to do on its own. It's really just built for this agentic world. If you're building something new, it's time to get Brex.
Check it out at brex.com slash solutions slash startups. Link in the description. Mickey, welcome back to the pod. By the end of this episode, what are people gonna learn? We're gonna understand what this bizarre phrase software factory means. I'm actually gonna show you how I run mine. It's a lot easier than you think, and it's definitely model and harness agnostic.
So you don't have to purchase some different product to have a software factory. It's gonna be fun and it's gonna be simple. Okay, so you're gonna explain what it is, why it matters, how it works, how to think about it. By the end of this, people are just gonna be able to boot up their own software factory if they want, or if they think, you know what, this Ross Mike guy, I don't like software factories, I don't like what he's saying, they can pass.
A hundred percent. A hundred percent. With the term software factory, there's been a lot of like startups who've started. And, you know, I'm not here to knock anyone's hustle. But a software factory is completely harness and model agnostic, meaning it doesn't matter what model you use. It doesn't matter what harness you use.
It should work. Right. Because a software factory is more about someone's workflow, skills and domain knowledge and. And it's packed up in specific skills that they use in their development process. Now, I want everyone to think like the last app that they built. You probably went on Codex, Cloud Code, Cursor, whatever it is.
And you just typed, right? You said, I want to build this. And it built it out for you. You saw it. And you didn't like it. and then you made some changes, right? And you saw the changes, maybe you liked it, you deployed it to Vercel or to production, and you're good to go, or you kept on iterating. That's the process.
The whole point of a software factory is in each step of the development process, how can I best maximize the model's capability to get the greatest output, right? And also, how can I move fast, right? Because if we're using the term factory, there's some sort of structure and speed and conveyor belt nature that allows me to ship as quick as possible without losing quality.
That's the long bloated Michael Schimelist definition of software factory. I haven't lost anyone, hopefully, Greg. That was perfect. Okay, so understood. But like, why does that matter? The reason why it matters is intelligence is continuing to increase. We have amazing models like GPT-6 Astra. A good software factory allows you to systemize and use these models in a very efficient way versus just typing in and continuing to go back and forth.
And I think it's better I just show you how mine works. to give people an idea. Now, I'll give my skills are available for free, no charge, nothing like that. But I don't want you to blindly copy me. I would like for you to think about it, understand the process, and then apply it yourself. That being said, I have about five or six files that make my software factory.
I have an agents.md file, and for everyone who might not be aware of what an agents.md file is, it's basically this one document, this one markdown file that's injected into the system prompt, that's inject, sorry, not in the system prompt, that's injected into the agent chat every time you communicate with an agent.
So every time I say hi, if there's an agents.md file, before the hi is sent, the agents.md file is sent. And what's cool about this file is I can sort of dictate how I want the agent to act. And we actually did a video not too long ago, Greg, where I talked about most people's agent.md file is useless because they were telling the agent.md file what the code looked like and already information that's in the code base that the agent could already know about.
But if you look at mine, there's a simple workflow. And this workflow is something that's not native to the agent. So it explains clearly how to do it. And I'll walk you through every single step. The first step is isolate. There's a skill called new feature. And this is what it does. It says every new feature starts in the fresh get work tree branched from origin main.
So agents can work in parallel without conflicts. Never build on me. And if you know, when Michael is on Greg's channel, there's always diagrams. So we're about to draw. So with the first step, when I'm working on a project and I tell it to work on a feature, the first thing it's going to do is isolate.
And what this basically means is you can think of Greg and Mike's app. You can think of Greg's and Mike app like the journey being, you know, we started here, we started prompting here. And this is when we launched the production. We've got thousands of customers. The way most people work with their agents is at every single step of the journey, they're building a feature.
They're building a feature. They're building a feature. And it's a very linear process. Right. One feature at a time, one feature at a time, one feature at a time. And if you ever try to work like like with on multiple features the same time, sometimes there's conflicts, there's issues. People have, you know, oh, my agent deleted this file that overwrote this file.
What this first step, isolate, does is the following. I'm going to show via diagram. So let's say Greg was like, I really don't like our landing page. And I'm telling Greg, our API calls can be faster. When Greg works on this feature, what the agent does using myagents.md is it's going to create a new branch.
And you can think of a branch as a copy paste of the exact moment where the app is. So Greg is going to work on a new branch, a new work tree of the app. A work tree is basically a copy of the app. Like you can think of someone copying a block of text, pasting it in a new document, working on that document, and at some point going to merge it back in the original document.
So that's what Greg is doing. He has a new document working on that feature. And guess what? Mike has another feature has to work on. So I can do it at the same time or I can do it a different time. I now have my own branch. Here's what's cool. Me and Greg and another person or you yourself with 50 different agents can work on multiple features and there's not going to be an issue of one agent overstepping on another agent's work.
This happens a lot to people. If you ever see tweets, Greg, of people saying, man, like I was working on this and the agent deleted a bunch of stuff. Almost always it's because people have their agents working on different features on the same branch. And the agent will do what you tell it to do. So you told it to update the landing page, but then you also told it to make the API calls faster.
And now it's noticing, oh, these pages, the way they're calling the API suck. Let me delete these and write these again. But then it was working on a design on that page. So issues start to arise. Isolate allows me to work on multiple features at the same time, parallelly, without having an agent overstep on an agent.
This is the first step of my workflow. This isn't native to the agent. So this makes sense to exist in the agents.md file. And when Greg is done or when I'm done, and I'll explain like the workflow for this, but just to close the loop. When Mike's done, all I do is... Merge these changes back. And then what Greg's done, he can either do it before me or he can do it after me.
But we're merging into the main document and there's not going to be conflicts because we worked on a copy at first. So this allows me to ship fast with multiple agents. If I show you, and I can maybe show here, if I show you my terminal, if you notice there's four tabs of Bezalow, three of them finished, but I literally have four different features on the same exact app.
One's working on an email client. The other one is working on a computer environment, a Linux environment. The other one is doing a landing page update. So I can work on these confidently while still having isolation. It's not native to the agent. Thisagents.md plus the new feature skill allows me to do that.
I'll pause here. Any questions, Yeah, I mean, it's like crystal clear. I think it's, the way I think about it is if you actually had a team of engineers and you were trying to build an app, you obviously wouldn't be building it all on main and having everyone just being pushing to main and stuff like that.
That just doesn't make sense. I think... I'm non-technical and I think you have all of a sudden all these non-technical people starting to build apps and they're running into this. You basically made mention, you're kind of like, oh hey man, sometimes it happens that agents overwrite stuff. I mean, the truth is 95% of the time, you're gonna have agents kind of mess up and overwrite things.
To me, this makes a lot of sense and it's sort of a bigger idea, which is how do you structure the way you work with agents to be more like a team versus just more like a team? Yeah, I mean, it's a better name. Team is better than isolate. I might take the team. But that's basically... Well, that's why I'm the marketer and you're the engineer.
But yeah, that's basically what it is, right? Isolate sounds like some sort of like whey protein that I'm going to enjoy. So if you guys check the link, there will be a name update very soon. But that's basically what this does. It allows for me to have multiple agents working on different tasks all at the same time without overstepping each other.
Right. And there's also a cleanup process I won't get into. Like once the branch, like once the work is merged in, the work tree gets deleted, all that type of stuff happens. So that's step number one. Number two is the actual building. And this I find has this was a skill that I shared originally way back, but now it's part of my workflow and I shared with everyone is code structure.
We're going to talk about models soon, but one thing about the models is they are great at doing the work. It just might not be done the best way, right, especially when writing code. There's, for example, Fable is, I would say, one of the first models to really write code that I would say, huh, right?
Like this is better than some of the best engineers I've seen, right? Like Fable runs, writes really good code. But even Astra, which is workhorse, most powerful model, my favorite model, some of the code quality decisions it makes is, and it's not that the model's not capable. The model is just getting it done.
And if it could get it done in a sloppy way, it'll get it done in a sloppy way. What the code structure skill does, it writes it in what's called a service letter architecture. Won't bore everyone, but basically it's written in a way where let's say you needed human intervention. You hired a developer.
Very easy for the developer to catch on. Or you yourself are a developer. Very easy for you to catch on. But even for your agents, for them to come back to the code and read the code, they'll be like, oh, like, yeah, like, it makes sense. Like, I've had, like... I've had GPT 5.6 Sol write code and it works.
It does what it's supposed to do. But then I'll have Fable review the code and Fable will be like, this is disgusting. Like there's duplications, there's functions all over the place, there's dead code, right? So just because it works doesn't mean it's written well. This skill doesn't. gives the agent a guideline on how to write code.
So going back to this diagram, again, I'm working on a new feature, right? The first thing that happens is isolate. The second thing that happens is, and I'm gonna, I hope people are seeing the factory nature of it. The second thing that happens is the building. And in building, we're using a skill called code structure.
And basically in this process, when I'm telling the agent, oh, build me this landing page, build me this feature. For example, I've been working on this app. And the one feature that I wanted built is I wanted a skills like repository where I can have different agents of mine connect to this app and store the skills.
And I basically told the agent, build me that. And as it was writing the code, it kept referencing the code structure skill. So it started to write code in a way that me as a developer, I can review. But, you know, God forbid, I need to hire somebody to review the code. It's not going to be the slop cannon where they're confused and they don't know what to do or they overcharge you.
It's written in a way for a developer to understand. And I find that if you use another agent that doesn't have context on your code base, it will understand it very well. So first, we isolate. Excuse the bad name. Second, we build. Right. And all of these are done in an opinionated way that allow the agent to move fast and to do the thing as best as possible.
I think this makes sense, right, Greg? Yep. Keep going. So step number three is prove. Here's the thing. You know, agents can't pinky promise, right? So like if you push an agent enough, well, GPT-6 Astra is... the reason why it's a big leap in model capability is like, it is the least hallucinating model, which is fantastic.
But like that model aside, most models you can kind of push to like lie or to believe something, or sometimes it'll straight up be like, oh, I actually realized I didn't do this work for you. So one thing that I have the agent prove is, agent do is to prove the work that it did. And this is probably my favorite skill.
There's two skills involved in this, evidence-driven testing. And basically what evidence-driven testing does, if your machine has the capability to do it, it will literally record the before state, meaning before the feature, or let's say you're trying to fix a bug, it will record the bug in action.
And what it will do after is after it's done fixing, it will record a working version after, right? So this is what evidence-driven testing does. It proves that the fix actually was made because you'll be surprised sometimes the agent will write the code, And it'll think it worked, but it didn't test it or it didn't prove that it worked.
And it just told you it worked. So I need to make sure that the agent actually proved this work. But let's say your machine doesn't have the capability to do that. There's another skill called before and after. And I can actually let me pull up a PR to show this, Greg, because I think it is better show you than I tell you.
This is a PR my agent made. I didn't make this. The agent made this. And I wanted it to create an admin email page and connect to an email service that I made. Look at what it did. It showed me a before state where the page didn't exist. It just, it didn't. And it shows me the after state, right? So for every feature that I'm building, every PR that I'm doing, I am getting a before state and after state.
And the reason why this helps, this helps me like, I'll be honest, I'm not reading all my code nowadays. Like I might like, okay, did this, like, let's see, like, barely. It's a skim, it's a skim situation. I'll be honest, the skims have even become less and less now. But a lot of the things that I'm doing now is I'm working on the front end where I make sure that it's following my code structure skill and I make sure I'm getting before and after screenshots.
Right. I can even pull up. Let me pull up another example. Here's a more prominent example where I was working on a specific computer feature where I wanted to give my agent a computer. And it just didn't work. Right. The first run didn't work. I didn't even have like my software factory set up. I was working on a different machine and it pushed the code and it didn't work.
As you can see, nothing's going on. I told my agent it didn't work. Use the skills, use the factory. And this is the after screenshot with it actually using. The app, right? So these skills, the proof and the before and after force the agent to give me factual, like a before and after proof, whether it's a video or it's screenshots.
And there are times where it'll do the before, but then it'll do the after and be like, oh, I just looked at the after screenshot or the after video and I didn't really finish the feature. So go back to what? It'll go back to build it. Right. This is the factory nature of it. I didn't have to tell it.
Oh, yeah, you failed your before and after. Go finish. The skills are written in a way where the agent knows, OK, the before and after criteria hasn't been met. I have to go continue on building. Right. So this. gives me a visual representation of the work that's been done. It makes reviewing, especially if you're a non-technical person, it makes reviewing easier because, you know, I just look at some screenshots or a video, right?
So in the building process, at some point, I'll have a PR where I get to see before and after. And even though I might not understand all this mumbo jumbo, It will show me visual proof that the work's been done. Now, I already hear somebody asking, what if the proof is not visual? And there's actually a PR.
I'll show someone performance. I think it's this one. Okay, so I wanted to do another example here. I wanted to do a performance update, meaning for one of the apps I was building, the clicks weren't snappy enough. Like you can see now everything is snappy, it's loading fast. That wasn't the case. So I told the agent, fix it.
And it did. And it did end up giving me screenshots. But let's say this was like something that it couldn't give me screenshots for. It will write tests and then it'll give me the results. In this case, it checked the speed at which the page was loading before. In this case, one of the pages, 850 milliseconds.
This is a sin in web development. Like this cannot happen. And mind you, this was written by GPT 5.6 Sol, right? Great model. But it got it down to 60. 817. 61. So I have, again, actual proof by the agent that it's done what it said it did in the review process. I'll pause right there. Anything I've missed so far, Greg?
So, you know... If you're trying to build a software factory, trust obviously is going to be a big part of that. And I think what you're saying is, hey, if you're going to have all these agents building features, building apps, we need to be able to trust the things that it's going to create. So what you're saying is, Here are a couple of skills that allow you as like the agent manager, where in this case, Mickey, you're like you are the agent manager, right?
You're not you're you're not deep in the code anymore. You're kind of just looking at what's happening. And what's cool about the before and after visual stuff is, it's kind of good for millennials and Gen Z or people on Instagram stories or Snap stories, stuff like that. It's almost like you're just like clicking through story to story.
Yes, yes, no. It's bite size. Basically, that's literally it right there, right? It's allowing me to build trust with the agent because... And what's funny is like you said earlier, and it kind of clicked in my head. This is what like normal organizations used to do with their engineers, right? It's like you build a feature, and then there was someone whose job, like a senior engineer, whose job was to review your work.
And you would have this PR with this description, and it would show, okay, basically, this is the work that I've done, and this is the test that I've written, right? So... It's basically the same thing, except now we're doing it with machines. Like that's essentially it. And an example of the video, this is me using Kerser Cloud Agents.
It says proof of improvement. And like this is a video of the agent at work using the app, right? So this allows me to your point, like Instagram, TikTok, I can watch this and see, all right, okay, the agent actually built this and it works. This makes it easy for me to not have to read code and I can just merge away and live my best life and go outside and touch grass.
So there's that. Now we have one final step, which is the ship step. Now the ship step I mentioned before and after, but there's this skill called Grep Loop, which uses a third-party service named Greptile, which is a code review agent. Now you don't need to use a code review agent, but if you're really serious about building software and it's going to be used by users, I highly suggest using some code review agent.
Greptile is my favorite. Code Rabbit, Macroscope, there's tons of good ones out there. But me using Greptile, they have this skill called GrepLoop. And basically what this does, and I think I'll show it with this PR. Greptile leaves these summaries and then it gives feedback. For example, this was the initial feedback it gave on the PR.
Okay. There was some issue with, you know, pagination right here. Some menu space wasn't preserved. So it gave this feedback, meaning the agent that wrote the code missed these things. And that's fine. It happens, right? Even humans miss these things, right? But what happens is Greptile not only gives feedback, it gives a confidence score.
Now, this is a five out of five because after the feedback was given, if you see my name and then this line over here, the feedback was addressed. My agent addressed the feedback. But before the feedback was addressed, this score was a three out of five. What that tells my agent is that there are things that it missed and it needs to look at it.
What the grep loop skill does, and by the way, this happens automatically. Someone doesn't have to write grep loop. The agent will do it automatically. What it does is as follows. It says it opens the PR with the before and after proof embedded in the description. Whenever the change has a visible surface, measure numbers or output pairs, when it doesn't, it'll give you numbers, right?
Or screenshot. And then look what the agent does. It runs grep loop or grep loop apps. The difference is grep loop apps. If your file changes like 10,000 lines plus, that skill activates it. You don't have to worry if the agent does it itself. But look what it does. It says Greptile reports five out of five until resolved comments finished by presenting PR URL.
Basically, what this means is it will the agent will take the feedback it got. It will go back to build. So check this out. Let's say we're at the point. Let me write this down. We're at the point where I've built where I ship. Right. And it's now running GrepLoop. When I get a feedback score, a confidence score, and it's a three out of five, what now happens, remember we were talking about loops?
This is actually a good loop. What happens is this goes back to building. Now, the agent goes back to step two. It starts to build. After it builds, what does it do? It proves, and then it shifts. And here's what happens. Automatically, the agent will wait for a new score. Okay. Greptile then gives us a four out of five.
We caught some things, but there's one final thing we missed. Go back to building, right? It builds, it proves, and guess what it does, Greg? It ships. And now I have a five out of five. When I have a five out of five, what's left now is for me to merge. And I think maybe I have an open PR right here so I can show you what that looks like.
What's left for me is to just click merge. When I click merge, what happens is, this is finally back in the main copy of the app, of the main version of the app. And I did this while working on 15 either simultaneous version, sorry, features, 15 different features with different agents, sub agents, all that type of stuff.
What this allows, and this is the factory nature, it allows for an agent to have an isolated instance where it can work on its own. It has guidelines on how to build. It has a methodology to prove its work. And then it has an external service proving its work, checking its work. And if its work is not up to standard, it has to continue in a loop working until that standard is met.
Once I get a five out of five, this is when I enter the picture. This is what a software factory is. Notice we didn't talk about model. We didn't talk about harness. It's all workflows, skills, and a little bit of domain knowledge, right? Not everybody works the same. This is how I work. But I found great results with this.
I'll pause right here, Greg. Let me know what I need to further explain or add on. What's clicking in my head is just really this... physical factory analogy for a software factory. So just to like summarize, I'm going to tell you how I'm, I'm singing. I want, I want your thoughts. Um, So the isolate piece in the step one, that's like a factory taking a custom order and giving it its own station so it doesn't mess with the rest of production.
So you called it a work tree in software. It's a branch, a work tree, an isolated environment. But that's the basic concept. Number two, build. Build is the assembly line. So the agent is actually cutting and welding and assembling and wiring the product. Obviously in software, you're not doing that.
You're writing code, you're changing files, you're adding structure to things. You're actually creating something that's real in a software sense. step three is the proving step, which is basically a fancy way of saying quality control. Basically, right? Like before anything leaves the factory, someone has to test it.
You're not just going to like create a product and not have people test it. Like, does it turn on? Does it, does it fit? Does it break under pressure? Like all the things I, you know, I'm, I'm picturing like a car factor or something like that in software. Um, You can run tests, you can preview it, you can do logs, and the screenshots you showed.
And then lastly, the shipping piece. It's basically like once it passes quality control, it's going out the door, but there's going to be some things that you have to let go. you're going to have to merge it. You're going to have to deploy the PR. You're going to have to do release notes. You're going to have to, you know, give feedback back to the product team because maybe it doesn't pass quality control and then you have to like do that loop again, right?
Exactly. I think I might actually rename everything you, like I've written to what you said because like now I'm realizing like, oh yeah, my names are terrible. What Greg says makes sense. That's exactly how this works. Cool. So basically what we're doing here is we're taking a factory and we're making a software factory.
Basically. So, and this is why like I've seen it get not to knock people, startups and products and stuff like that. Like a software factory is not a product. It's not a special harness. It's not a like, oh, this company built a software. No, a software factory is literally... just a bunch of markdown files.
And this is also another insane thing off topic, maybe a different video is some startups are now an agent with a couple of markdown files, right? We've really entered that time. So I hope this made sense for everyone. And this excites everyone. I'm very excited with the time we're in right now, because a lot of things are possible now.
100%. This is insane that you're actually able to do this. It's cool that people like you are sharing this because I think it's worthwhile. I want to just do one quick note on Greploop or any code review software. I think if you're serious, no affiliation with Greploop or anything like that, but I think if you're serious about creating software, having some code review software software is pretty like I don't understand why you wouldn't use a grep loop a code rabbit one of these tools something right like it makes sense like because again if you have like you know we in business and then I know because a lot of business people are watching you know we take the service we provide and all that stuff seriously but it seems like with building software like we just don't care right and if you have people who
who are going to use your app, like, I don't know, like, there's a level of like empathy I have for the user on the other side. And, you know, like a lot of these like startups, because they've raised bajillions of dollars, like they have a lot of free tiers, like, you know, you can cycle through free tiers and use a bunch of this stuff for free, right?
So I highly encourage if you're building something that you're serious, you're passionate about, I would use a code review agent of any kind. Yeah. Cool. Thanks for coming on. Thanks for sharing the sauce. I'll include links for where to follow Mickey on the internet, on YouTube, all those places, his software that he's creating to go give him a follow.
And dude, I'll see you next time. I appreciate you, Greg, as always. Thank you, everyone, for showing love and watching. And yeah, we'll see you in the next one.