My AI Software Factory Ships Hundreds of PRs a Week (Here's How I Manage It) — Transcript
Full transcript
- 0:00Throughout this year, I've spent an
- 0:01insane amount of time working on my AI
- 0:03software factory, the system where I can
- 0:05send in any issue ticket, even an entire
- 0:08release, and it plans it all out and
- 0:10then builds it in an autonomous loop
- 0:11with all the verification that I need
- 0:13and human in / near the loop where I
- 0:16want it. As you can imagine, it takes a
- 0:19lot to make this kind of autonomous
- 0:20system reliable. That's why I've been
- 0:22spending so much time on it, especially
- 0:24with the hopes that I can give you a
- 0:26starting point so you can use this kind
- 0:28of system without having to go through
- 0:30all the growing pains that I did. And
- 0:32I'm still working on evolving this
- 0:34constantly. And so, what I want to do
- 0:35right now is give you a tour of
- 0:37everything that I'm working on to help
- 0:38me manage and evolve my software factory
- 0:41because I've been putting a lot of time
- 0:43into building this mission control
- 0:45dashboard that I think you'll find
- 0:46really cool and hopefully inspirational
- 0:47as well. So, this video is going to be a
- 0:49bit more unstructured than usual. You
- 0:52can think of this kind of like a dev
- 0:53log, but also I have a lot more to it
- 0:55that I want to show you because just
- 0:57generally what I'm working on now, I've
- 0:59seen the industry shift towards
- 1:01recently. All the companies I'm seeing
- 1:03that are building software factories at
- 1:04scale, they always end up creating some
- 1:06kind of dashboard like this to manage
- 1:09the system cuz the factory is a living
- 1:11and breathing machine. Even if you make
- 1:13something really reliable from the
- 1:14get-go, you have to constantly evolve it
- 1:17as you change your process and what
- 1:18you're building. And so, today I'll
- 1:19quickly go through a lot of the
- 1:21different components that I have of my
- 1:22dashboard here. Like this is the full at
- 1:24a glance view of the software factory
- 1:27workflow down to all the individual
- 1:28skills that I run through my agents. We
- 1:31can look at the key decisions that I've
- 1:32made over time as I've improved my
- 1:34factory. We can look at the individual
- 1:36laps for each one of the factories I
- 1:37have running here. Like there's two I
- 1:39have hooked up into this dashboard. We
- 1:41have the individual decisions that we
- 1:43make when the factory brings things to
- 1:45us, the high-level decisions that need
- 1:47our attention. A lot of why I've built a
- 1:50lot of this was because I found through
- 1:52all my testing and working with
- 1:53companies and implementing these
- 1:54systems, the only way to truly make this
- 1:56reliable is if we have some things that
- 1:59bubble back up to the human to decide.
- 2:02And so, it's all about how can we have
- 2:03the minimal set of decisions for the
- 2:06human that gives the most amount of
- 2:09control possible. We want things to be
- 2:11running as autonomous as we can, but it
- 2:13can't fully be a dark factory. At the
- 2:16start of this year, when I built my dark
- 2:18factory, it was the kind of system where
- 2:20there was no human in the loop at all. I
- 2:23built this all in public. I've covered
- 2:24this on my channel before about my
- 2:26initial goal with the dark factory,
- 2:28which I've renamed the software factory
- 2:30because I have added human in the loop,
- 2:32is you could give a PRD, just a
- 2:34high-level description of what you want
- 2:36to build. You barely had to do any
- 2:37planning with the agent, and then it
- 2:39would just go through everything
- 2:41autonomously. So, it's split the whole
- 2:42PRD into issues, go through each one
- 2:45with its own verification steps and code
- 2:47reviews, and then it would just merge
- 2:49everything straight to production. This
- 2:51is sort of the dream with generative AI,
- 2:53where it's reliable enough where you can
- 2:55go from idea all the way to fully
- 2:57shipped and validated code. Like, no
- 2:59human in the loop anywhere, not even for
- 3:01the merge. And as much as this can work
- 3:04for some things, like proof of concepts,
- 3:07it's really not enough. I've had to dial
- 3:09back the autonomy and add more human in
- 3:12the loop, which is what I've gotten to
- 3:13now with my software factory. Like, this
- 3:15system here that I'm now managing with
- 3:17the dashboard is what I found to truly
- 3:19work. Now, to be honest, initially I
- 3:21really didn't like the idea of having
- 3:22this kind of control plane over the
- 3:24software factory cuz I thought it would
- 3:25make it so that things are less
- 3:27autonomous and I have more of a
- 3:28responsibility to manage things. But,
- 3:31I've built it in a way where it's very
- 3:33easy to look at things at a high level,
- 3:35and it really does help me drive
- 3:36improvements to the factory and managing
- 3:39things as they are running. And it's
- 3:41really the only way to manage the
- 3:43complexity of the factory. I've worked
- 3:45hard to make things simple, and it's
- 3:47pretty easy for me to manage things now.
- 3:49But, there is a lot that goes on under
- 3:51the hood. I mean, think about it. We
- 3:52have to manage dependency mapping,
- 3:54running things in parallel to really
- 3:55scale it, figuring out how we set up the
- 3:58app validation for each piece of
- 3:59software we create, how we manage the
- 4:01staging environment, all the places we
- 4:03have human in the loop. And so, having a
- 4:05system like this to really help us keep
- 4:07track of things as they're running,
- 4:09bubbling up the decisions in a nice view
- 4:11instead of just always living in the
- 4:12GitHub issues like I was before. I mean,
- 4:14this is making a big difference for me.
- 4:17I've built my own second brain, and it
- 4:18helps me with a lot of my work. But, it
- 4:20only works for me. So, for this part of
- 4:22the video, I partnered with Victor, the
- 4:24AI employee our whole team shares. When
- 4:26someone on my team needs to know what's
- 4:28been decided or what's on their plate,
- 4:30they can't ask my second brain. They
- 4:31have to ask me and wait for my answer,
- 4:34at least until Victor. So, now Victor
- 4:36lives in our Slack. And for example,
- 4:38before every team call, we can have him
- 4:40draft the agenda, pull what's stuck in
- 4:41Jira, take a look at what's merged in
- 4:43our Arkon repository, look at our open
- 4:46questions in our threads. And for any
- 4:48decisions that we make in the call, we
- 4:49can just drop it right there for Victor.
- 4:51And then after the call, anyone on the
- 4:53team can ask Victor to turn our
- 4:55decisions into Jira tasks, or at least
- 4:57that's how my team works. And so, here I
- 4:58did it exactly as a teammate would. And
- 5:01so, he drafted the agenda earlier, and
- 5:03then I gave him the decisions, told him
- 5:05to make Jira tasks. And so, he proposed
- 5:07them, I approved, and now I have them as
- 5:10new tasks in Jira. My teammates used to
- 5:12wait 4 and 1/2 hours on average for me
- 5:14to get everything in Jira after a
- 5:16meeting. But, now no one has to wait for
- 5:18me, and it gets done in a couple of
- 5:20minutes. Victor is an AI employee that
- 5:22lives in Slack or Teams and is connected
- 5:24to over 9,800
- 5:26tools. And he does the actual work
- 5:28instead of just answering questions
- 5:30about it. And because he's shared,
- 5:32anyone on my team can hand real work to
- 5:34him, not just me. If you want to hire
- 5:36Victor for yourself, go to victor.com
- 5:38for $100 of his work for free running in
- 5:41minutes. Use my code colmadine100, and
- 5:44my link is in the description.
- 5:46And so, as you probably guessed, I am
- 5:48also using the software factory to build
- 5:51this dashboard. So, the mission control,
- 5:53this option in the dashboard, is the
- 5:55application itself that you're looking
- 5:56at right here. And it's also really nice
- 5:58because as I make my factory better and
- 6:00better, it's going to make this
- 6:02dashboard better and better, which in
- 6:03turn makes it easier for me to manage
- 6:05the software factory. So, it's this nice
- 6:07flywheel where it's almost going to
- 6:09become sort of self-evolving over time,
- 6:11which I'm really looking forward to. I
- 6:13mean, I just got started building this.
- 6:14Before I had this dashboard, I was
- 6:16managing everything directly in GitHub,
- 6:18which kind of worked cuz I would have PR
- 6:21comments for the owner decisions, and I
- 6:22could look directly at the merges to see
- 6:25how my laps are doing and things like
- 6:27that. But, this is definitely a lot
- 6:28better. And so, yeah, let me show you
- 6:30around a little bit. Now, the number one
- 6:32thing that I wanted for the home page of
- 6:33my system, what you're looking at here,
- 6:35is a high-level visualization of my
- 6:37entire factory, all of the decision
- 6:39points, all of the individual skills.
- 6:42Before I had this, it was hard for me to
- 6:44picture in my head the shape of the
- 6:45factory. So, in turn, it was also
- 6:47difficult for me to understand how to
- 6:49evolve things as I wanted to make my
- 6:51factory better. So, this has been a
- 6:53game-changer for me. So, I also want to
- 6:55cover the underlying infrastructure for
- 6:57the factory, how everything's stored in
- 6:59a Postgres database, and I'm using Arcan
- 7:01to drive it all. I'll get to that in a
- 7:03little bit. But, first, I want to blitz
- 7:05through a tour of all the different
- 7:07sections that I have of the dashboard.
- 7:09So, the first thing that I wanted after
- 7:10the main visualization is a tab to list
- 7:13the key decisions that I made for my
- 7:15software factory as I've evolved it over
- 7:16time cuz I talked to my coding agent
- 7:18when there's issues that come up in the
- 7:20factory, and I think about like, "How
- 7:21can I make the factory better?" And I
- 7:23want to document all that so I don't go
- 7:25back and try the same things that I've
- 7:26already tried. And I also want to see
- 7:28what improvements are currently being
- 7:30tested. So, there's all these different
- 7:31ideas I have for different changes I
- 7:33want to make to my skills or different
- 7:35steps I want to add, and I can manage
- 7:36the testing of all of that here and go
- 7:38and look through everything I've changed
- 7:40already. Like, the very first key
- 7:41decision that I made is using Arcan for
- 7:44everything. We'll talk about that in a
- 7:45little bit. And then, for all these
- 7:47decisions that I make, obviously, they
- 7:49produce different versions of my factory
- 7:51in source control. So, I have all the
- 7:52different commits, and I can take a look
- 7:54at the diff here between any two
- 7:56versions that I pick. And so, I can see
- 7:57if between these two versions, here's
- 7:59what's different with the workflows, the
- 8:01steps, the underlying prompts in the
- 8:02skills that I'm using for these steps.
- 8:04That's been very useful as well. I also
- 8:06have the overlying health of the
- 8:08dashboard. So, whenever there's a
- 8:09failure, what caused it? Twice it was
- 8:11because I hit my rate limits with Claude
- 8:13code. And out of the hundreds and
- 8:15hundreds of laps that I've been running
- 8:16over the past couple of weeks, 21 of the
- 8:18failures were because of issues within
- 8:20the workflows that I had to adjust. I
- 8:22also have a couple of tabs here to
- 8:23manage the ongoing runs of each
- 8:25individual software factory. So, these
- 8:27two tabs are custom depending on the
- 8:29factory that I select. And so, I gave it
- 8:32a PRD, it split it into tickets, and
- 8:34that's what we're looking at here. I'm
- 8:35working on doing more grouping. There's
- 8:37not too much grouping right now, but you
- 8:38can see a couple of instances here. For
- 8:41this release, I've worked on most of the
- 8:43issues already. So, there's a couple
- 8:45that need my attention. That gets to the
- 8:47owner tab we'll talk about in a bit. And
- 8:49then these three blue ones are the
- 8:50ongoing laps. And so, this one's in the
- 8:52middle reviewing the pull request. These
- 8:54two are currently in implementation. And
- 8:56then I can also look at the laps here to
- 8:58get more details on, you know, the step
- 9:00it's on and the key decisions that have
- 9:01been made like the complexity of the
- 9:03task. My factory is dynamic. It does
- 9:05different depending on how complex the
- 9:08issue is. Cuz we don't want to spend too
- 9:10much time on the really simple stuff,
- 9:12and we don't want the factory to just be
- 9:14a basic build and validate for the
- 9:15really complex stuff. So, we'll talk
- 9:17about the owner tab in a little bit with
- 9:19the key decisions that bubble up to us.
- 9:21The scorecard is really cool. It shows
- 9:23for this current version of the software
- 9:25factory, how many laps have we run, how
- 9:27many merges have we had in this specific
- 9:29code base, how long has this been going
- 9:31for. These are the key metrics that I
- 9:33look at to see if I need to make
- 9:35improvements to this factory version and
- 9:37what improvements I should make. And
- 9:39then for the testing here, these are all
- 9:41of the scenarios that it devises for
- 9:43regression testing and testing each
- 9:45feature as it's building out the code
- 9:47base. And so, I can also take a look at
- 9:48which ones it's deciding to run, cuz
- 9:50obviously for every PR we're not going
- 9:52to run every single one of these, and
- 9:54also the success and failures for all of
- 9:56them. And then I have the record of all
- 9:57of the versions and what changed for
- 9:59each one of them, at least what the core
- 10:00changes are. And then I have the rewind,
- 10:03which this is something newer I'm
- 10:04working on as well. It's using the
- 10:05branching in Neon, which is what I'm
- 10:07using for my back end and my Postgres
- 10:09solution. And so, this allows me to
- 10:12actually go back to different versions
- 10:14of the software factory. If I want to
- 10:16roll back or just test more on that
- 10:18version to compare to what I have right
- 10:19now. So, let me go back to the live
- 10:21branch. And with that, that's the
- 10:23high-level of my dashboard. I know that
- 10:25some of these things might be specific
- 10:27to me, but I hope you can take
- 10:28inspiration from a lot of these ideas
- 10:30for how I'm building in this
- 10:31observability and this easier way for me
- 10:33to manage the whole system. And so, with
- 10:36that, let's talk a bit more about the
- 10:37underlying infrastructure for the
- 10:40dashboard and the factory itself. You'll
- 10:42also notice here a lot of different
- 10:43mentions of Archon. Archon is my
- 10:46open-source harness builder. It allows
- 10:48you to take any AI coding process and
- 10:50turn it into a reusable workflow, and it
- 10:52handles a lot of the more difficult
- 10:53things with agentic engineering under
- 10:55the hood like work trees. So, we can
- 10:56very easily manage things in parallel.
- 10:58So, this is the backbone of my entire
- 11:01software factory. A lot of people ask me
- 11:02how Archon plays into it. Basically,
- 11:05there's not a single coding agent
- 11:06executed in my factory that is not done
- 11:09so through an Archon workflow. All of
- 11:12this is just a collection of Archon
- 11:14workflows that together drive the entire
- 11:16factory. All the planning, all the
- 11:18implementation, all the validation. And
- 11:20so, going into the Archon UI, which is
- 11:22separate, we can see all of the
- 11:24individual runs all the way down to the
- 11:26level of the logs for each run. So, we
- 11:28have full observability here. And my
- 11:30dashboard also links to this whenever we
- 11:32want to click into any individual step
- 11:35within each lap of the factory. Now,
- 11:37usually for this level of detail, you're
- 11:39going to have your agent dig into it,
- 11:40but I'm just showing that everything
- 11:42really is running Archon under the hood.
- 11:44My co-author of Archon, Rasmus, has put
- 11:47an insane amount of effort building all
- 11:50of the workflows that run my factory.
- 11:51It's here in the SDLC pack that ships
- 11:53default to Archon, and you can click
- 11:55into any of these, and I know you'll be
- 11:57impressed with every single one of them.
- 11:58There's so much care that's gone into
- 12:00each one of these workflows, and
- 12:02everything running in the factory is
- 12:03using one of these for each step. And
- 12:06the beauty of Archon is everything that
- 12:08we can observe down to the individual
- 12:10levels of the agent's tool calls and
- 12:12turns and decisions it's made is all
- 12:14stored in a Postgres database. So, I
- 12:16have my Archon hooked up here to Neon.
- 12:18And so, everything that happens in my
- 12:20software factory is stored here. So, I
- 12:23have full audit trails, and I can also
- 12:25digest this later to figure out things
- 12:27that went wrong, and make improvements
- 12:28to my software factory that way. Cuz if
- 12:30I'm not storing every agent turn and
- 12:32decision and tool call, I don't really
- 12:34have a way to know how things went wrong
- 12:36or why they did when I want to go back
- 12:39retroactively and figure out ways to
- 12:41evolve my factory. So, everything that
- 12:43goes on in Archon, everything that I'm
- 12:45seeing here in my dashboard is stored in
- 12:48Neon. For example, one of the things
- 12:49that used to be difficult for me to
- 12:51manage is all of the owner decisions.
- 12:53So, questions for me, blockers that need
- 12:55my attention. It's important to have
- 12:57this cuz it's not a dark factory. We
- 12:58need some human in the loop when the
- 13:00agent deems it necessary. But before, it
- 13:02was kind of difficult for me to manage
- 13:04things. Here's an example of what it
- 13:06looked like before I had the dashboard.
- 13:08I would have my agent mention me in
- 13:10either an issue or pull request. That
- 13:12was my key that it's my time to go in
- 13:14and resolve the issue, answer the
- 13:16question, either by talking to my
- 13:18manager agent, or posting a comment here
- 13:21in the issue or PR. And that works, but
- 13:23then I had to watch the repository
- 13:25closely, or look out for those email
- 13:27notifications when I mentioned, or the
- 13:29Slack alerts I had set up. It was okay,
- 13:31but I want to manage everything in one
- 13:33place. Not just the owner decisions, but
- 13:35everything happening in my repository,
- 13:37both for things that need my action, and
- 13:39just for my observability. And so, what
- 13:41I've done is I've taken advantage of
- 13:42Neon's functions, which is a part of
- 13:44their new backend with authentication,
- 13:46object storage, functions, AI gateway. I
- 13:49mean, it's incredible. There's a reason
- 13:50I use Neon for everything now. And so,
- 13:52specifically for functions here, I have
- 13:54a GitHub webhook that triggers a
- 13:56function whenever there is a new GitHub
- 13:58issue or pull request. And because I
- 14:00manage my entire factory with issues and
- 14:02PRs, that means that I now have a single
- 14:05entry point to process everything that's
- 14:07happening in my factory, and store that
- 14:09in the Neon Postgres database. And
- 14:11because my Archon runs are also stored
- 14:13in the Postgres database, I have a
- 14:15central place for literally everything,
- 14:17for all observability, and when I want
- 14:19to dive into things with my agent to
- 14:20make improvements to the system. And if
- 14:22we go to the monitoring for the Neon
- 14:24function, we can see every single minute
- 14:26there is a lot going on in my factory as
- 14:28all of these labs are running in
- 14:29parallel. And the way that my dashboard
- 14:31is able to receive this information so
- 14:33quickly as everything is changing is by
- 14:35taking advantage of Neon's new real
- 14:37time, which is in public beta right now.
- 14:39It makes any SQL query live data. So, I
- 14:42have these different SQL queries hooked
- 14:44up into my dashboard, so it's pulling
- 14:46all this information as things are
- 14:48happening with the underlying Arkon
- 14:50workflows. And so, obviously I don't
- 14:52really want to get into the weeds with
- 14:53the code here, but just showing you an
- 14:54example of what it looks like to run one
- 14:56of these queries with Neon real time.
- 14:59So, this is one of the SQL queries that
- 15:01my dashboard runs, and we can see the
- 15:03data come in in real time. Like there we
- 15:06go, we had a couple of new records that
- 15:07just came in. So, as things are
- 15:08happening with new pull requests, new
- 15:11issues, new comments, whatever it is,
- 15:13the dashboard is able to get that right
- 15:15away and display it to me. So, I don't
- 15:16just have a record of things, I can also
- 15:19watch things as they're going live,
- 15:20which is especially helpful as I'm
- 15:22working on improving my software factory
- 15:24itself. So, that's the dashboard and the
- 15:27factory at a high level to give you some
- 15:29ideas and inspiration. And I just want
- 15:31to keep you up to date with what I'm
- 15:32working on here because the software
- 15:34factory is the big thing that I'm
- 15:36pouring so much time into right now, and
- 15:38I'm giving it all to you. I'm
- 15:39open-sourcing this entire thing, so you
- 15:41can use the factory to build any
- 15:43software that you want while I work
- 15:45under the hood on making this more and
- 15:47more reliable using the dashboard to
- 15:49help me do so. Now, if you want to build
- 15:51your own software factory, you don't
- 15:52want to lean on my repository or Neon or
- 15:54Postgres or whatever, that's okay. Even
- 15:56if you just want to take my resources as
- 15:58a starting point, I would encourage you
- 16:00to do that. But obviously, if you want
- 16:02the most power out of the box, there's a
- 16:04reason why I'm building this as an
- 16:06open-source project. I would encourage
- 16:08you to use Neon. You need some kind of
- 16:10back end to store and process
- 16:12everything. It's not enough for it to
- 16:13just all live in GitHub. I mean, there's
- 16:15a reason why I've been partnered up with
- 16:16Neon for so long, and I'll have a link
- 16:18to them in the description. And so with
- 16:20that, if you found this interesting,
- 16:22you're looking forward to more content
- 16:23on my software factory and agentic
- 16:25engineering, I would really appreciate a
- 16:26like and a subscribe. And with that, I
- 16:28will see you in the next video.
About this transcript
This page contains the full transcript of My AI Software Factory Ships Hundreds of PRs a Week (Here's How I Manage It) by Cole Medin, generated from the public captions YouTube serves with the video. The transcript has 3,723 words across 513 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to choose a caption track available on the video.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, caption language selection, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.