YouTube2Text

How to Build a Software Factory for AI Coding Agents — Transcript

by Boundary · 15,403 words · 2,214 segments · language en · Watch on YouTube

Full transcript

  1. 0:00You start with the normal software
  2. 0:01factory where a human builds the thing
  3. 0:03and then you swap it out with agent
  4. 0:04builds the thing. There's a couple
  5. 0:06different options, right? You could like
  6. 0:07build everything inhouse and then
  7. 0:10there's like the other side of the
  8. 0:11spectrum which is like buy everything.
  9. 0:13>> In terms of buy versus build, where do
  10. 0:15you land?
  11. 0:15>> The real answer is like you should have
  12. 0:17as an engineer choice and the ability to
  13. 0:19like work in open systems and plug these
  14. 0:22things together. So this was a really
  15. 0:24fun episode where we talked about
  16. 0:25software factory design patterns. We've
  17. 0:27talked a lot about the broad software
  18. 0:29factory. And today we zoomed in on this
  19. 0:31part where it's like agents building the
  20. 0:33thing and testing the thing and getting
  21. 0:34feedback. We talked a lot about how the
  22. 0:37boundary in-house uh software factory
  23. 0:39works and the architecture of it and
  24. 0:41contrast it to like sort of full stack
  25. 0:43cloud agents where you just buy
  26. 0:45everything and everything is managed for
  27. 0:46you. Um, so the architecture here was
  28. 0:48really interesting and then we kind of
  29. 0:50dug into like the four layers of the
  30. 0:52enterprise software factory, what the
  31. 0:54stacks are and some actual like
  32. 0:56implementation examples of like how you
  33. 0:58can mix and match parts of this stack
  34. 1:00and how different like open- source and
  35. 1:03closed source products like let you
  36. 1:05bring your own compute, your own dev
  37. 1:07environment, build or buy the harness
  38. 1:09and build or buy the uh control plane
  39. 1:11and orchestration. So a lot more detail
  40. 1:13there. We talked a lot in detail about
  41. 1:14the boundary software factory. Super
  42. 1:16fun. And then uh as a little bonus at
  43. 1:18the start you can see our take on the
  44. 1:20Financial Times article of uh hey is
  45. 1:22OpenAI taking market share from
  46. 1:24Anthropic and why and why are we also
  47. 1:26codeex build. So super fun episode uh
  48. 1:28excited to get into it. Uh let's go. Hey
  49. 1:31folks this is AI that works. We talk
  50. 1:33about AI that actually works uh beyond
  51. 1:35the demo for real production use cases
  52. 1:37enterprise whatever it is you want
  53. 1:38something that actually works well and
  54. 1:40is reliable. This is uh all we do. We do
  55. 1:42a lot of systems design. We do a lot of
  56. 1:44context engineering. Um, the very first
  57. 1:47uh conversations that led to the term
  58. 1:49context engineering existing happened on
  59. 1:50this show. Uh, I'm going to stop
  60. 1:53yapping. I'm Dex. I'm the CEO and
  61. 1:55co-founder of Human Layer. We build a
  62. 1:56multiplayer coding agent workspace. And
  63. 1:58Vibb here is
  64. 2:00>> I'm Vibb. I'm one of the co-founders at
  65. 2:02Boundary and we build a programming
  66. 2:04language designed for agentic coding.
  67. 2:06>> Amazing. Check it out. boundaryml.com.
  68. 2:09Is that right? Did you guys not get
  69. 2:10baml.com? Uh sadly, Bank of America has
  70. 2:14a slightly bigger war chest than us.
  71. 2:16>> We'll get it. That's your That's your
  72. 2:17goal, right? It's like by the end of the
  73. 2:19uh
  74. 2:21>> We are slightly bigger than them on SEO
  75. 2:23for Google, though. So, we do beat them
  76. 2:24on in almost every region. Yeah. So, if
  77. 2:26you Google Bam, we're now rank one or
  78. 2:28rank two and rank three and they are on
  79. 2:30like page two, I think.
  80. 2:32>> Um
  81. 2:32>> amazing. We have go Google BAML uh and
  82. 2:35help their SEO even more. Click the
  83. 2:37Boundary ML website. Go check it out.
  84. 2:39Programming language for agents. I've
  85. 2:40been building a bunch of internal tools
  86. 2:41in it. It's a lot of fun. Uh you can try
  87. 2:44human layer at humanllayer.com. Um
  88. 2:47someone asked me today about this
  89. 2:48article. Did you read the uh Financial
  90. 2:51Times article about how uh Fable and
  91. 2:54Opus are actually like losing market
  92. 2:56share and Codex is taking over.
  93. 2:59>> So [clears throat]
  94. 3:01like if you think about it, this is kind
  95. 3:03of interesting. I mean, I'll tell you
  96. 3:06honestly, like my mom knows nothing
  97. 3:08about Claude or Anthropic as a company,
  98. 3:11she only knows Chad GBT.
  99. 3:14>> Yep.
  100. 3:14>> If she ever wants to go ahead and build
  101. 3:16an agentic stuff, she would only ever
  102. 3:18use Shad GBT cuz it's the closest she
  103. 3:20can get. So, I suspect it's just a
  104. 3:23relationship of building a consumer
  105. 3:24brand versus an enterprise brand. like
  106. 3:26no matter what you do at some point if
  107. 3:29more people get exposed to your topic
  108. 3:31the consumer brand will grow bigger
  109. 3:34>> and that's I suspect that might be it
  110. 3:36>> I completely disagree I think
  111. 3:38>> really
  112. 3:39>> I think I saw the change in like
  113. 3:43December and January of this year where
  114. 3:47all of the best agent decoders the ones
  115. 3:50that are like
  116. 3:51>> 6 to 12 months ahead of the like SF meta
  117. 3:54they all switch to codeex So, okay,
  118. 3:56that's a totally separate thing. Uh,
  119. 3:58like Codeex is definitely I mean I
  120. 4:00switched to Codeex, too.
  121. 4:01>> Like, and I think
  122. 4:02>> No, yeah, because it's better.
  123. 4:04>> Well, I was actually hesitant for a long
  124. 4:06time cuz I could only get Claude to
  125. 4:07work,
  126. 4:08>> but for some reason I I kept on seeing I
  127. 4:10was like I saw Theo switch to Codeex,
  128. 4:13Dylan switch to Codeex. A lot of these
  129. 4:14people on Twitter that I was watching
  130. 4:16only use codec switch. Peter, well,
  131. 4:19>> that's a Peter was early. I had a
  132. 4:22conversation with Peter Steinberger in
  133. 4:23October of last year.
  134. 4:25>> Peter have totally different incentives.
  135. 4:28>> This was way before openclaw or
  136. 4:30anything. He was like when he was I mean
  137. 4:32he was working on like 40 side 50 side
  138. 4:34projects. This is before openclaw launch
  139. 4:36but I was like yeah we built this whole
  140. 4:37research plan implement system for
  141. 4:38claude and like it makes Claude so much
  142. 4:40better and he was basically his take was
  143. 4:42just like this was codeex
  144. 4:44five maybe uh maybe
  145. 4:47>> I don't know if codex is better than a
  146. 4:48fable back then or back then. No, it was
  147. 4:51Codex back then is not better than Faber
  148. 4:52now, of course. But he's basically like
  149. 4:54all that research upfront [ __ ] that you
  150. 4:56have to tell Claude to do, you're just
  151. 4:57compensating for the fact that you're
  152. 4:59using a worse model and if you like you
  153. 5:01ask Codeex to do something, it will just
  154. 5:02read stuff for longer, which is exactly
  155. 5:04what you want.
  156. 5:06>> Yeah. Um, so have you guys switched
  157. 5:08fully to Codex?
  158. 5:10>> We I so I I will use Opus models for
  159. 5:13like generic knowledge work type stuff
  160. 5:16like running the company and like like
  161. 5:18managing pipeline and things like that.
  162. 5:20Um, it's just like a little bit better
  163. 5:22at like tool use and things like that.
  164. 5:24Like barely noticeable. It's just like
  165. 5:25what I'm used to. Um, but 90 or 95% of
  166. 5:30the features I write are written with uh
  167. 5:32Terra or Soul.
  168. 5:33>> You know what's so funny?
  169. 5:35>> Yeah.
  170. 5:35>> Um, you know what I want to see being
  171. 5:37done is you know how people are like
  172. 5:39talking about startups like there's all
  173. 5:41these people on Twitter's like uh vibes
  174. 5:42slopping about how much revenue they
  175. 5:44make and people are like just post the
  176. 5:45revenue or it doesn't count. What I kind
  177. 5:47of want to see with people talking about
  178. 5:48AI models is I kind of want to see
  179. 5:51people posting their token usage or it
  180. 5:53doesn't count. It's like you can't say
  181. 5:54you're a Codeex man unless you like
  182. 5:57actually like for example you you can't
  183. 5:59say you're a CEX man until you post your
  184. 6:01token usage and prove that you're a CEX
  185. 6:03man cuz so many people just follow the
  186. 6:05hype without doing it. So I can never
  187. 6:07tell like for you I know you actually do
  188. 6:09it like in your case, right? That's Oh
  189. 6:12yeah, show us.
  190. 6:13>> I'll show you the token usage. There you
  191. 6:16go.
  192. 6:16>> Let's see.
  193. 6:17>> This is cool.
  194. 6:19>> Um,
  195. 6:22let's find Yeah. cost cost by model. I
  196. 6:24mean, so this is by spend.
  197. 6:26>> Um, but yeah, we're using a [ __ ] ton of
  198. 6:29codecs.
  199. 6:29>> There you go. Um, yeah. It's also
  200. 6:32interesting. It's not like you have
  201. 6:33stopped using the Opus models. It sounds
  202. 6:35like you use it more targeted though.
  203. 6:37>> It's a more like things that are UI
  204. 6:39focused will still use Fable or Opus.
  205. 6:42Like, okay,
  206. 6:42>> if I have Fable credits, I will let I
  207. 6:44will let Soul drive and then if I find a
  208. 6:46shitty UI, I will I will I will kind of
  209. 6:48like, okay, throw this out and then
  210. 6:50we'll we'll have it either invoke a
  211. 6:51Fable sub agent or I'll just start a new
  212. 6:53session with Fable.
  213. 6:55>> Yeah. I mean, what I find is actually
  214. 6:57like so I've been doing a lot of UI work
  215. 6:58myself as well, and for that work, I
  216. 7:00also end up using like the Opus models
  217. 7:02because like I feel like for whatever
  218. 7:04reason, Codex sounds a lot more like AI
  219. 7:06than Claw does when it's writing content
  220. 7:09>> when I'm writing things with it. And
  221. 7:10like or at least maybe I just know how
  222. 7:12to tweak codeex better to sound more
  223. 7:13like me or claude to sound more like me
  224. 7:15than I know how to tweak codeex better.
  225. 7:18Codex is kind of like but for
  226. 7:19engineering task it's not even a
  227. 7:20question like codeex is
  228. 7:23execution codeex is better.
  229. 7:26>> Yeah. Whether it's codeex or claude like
  230. 7:28I don't use I don't let the models write
  231. 7:30much. I basically like here's a
  232. 7:31transcript of a thing. I'll feed it like
  233. 7:33a transcript of an episode of this show
  234. 7:36and I will um give it a
  235. 7:41um I'll be like write the headers and
  236. 7:44write a little snippet like a a markdown
  237. 7:47comment about what goes in this section
  238. 7:49and the reference to where in the
  239. 7:51transcript it's from. And I'll have it
  240. 7:53write one little literally like two or
  241. 7:54three sentences at a time. And I'll
  242. 7:56polish them. And in one session I will
  243. 7:59have it write the thing. I will change
  244. 8:01it. I will be like, "Read what I changed
  245. 8:03it to. Do the next section. Don't [ __ ]
  246. 8:05it." And then like after four or five
  247. 8:08iterations, you start it starts in one
  248. 8:10session, you can start to give it a
  249. 8:11little bit of a sense of a tone in the
  250. 8:13patterns to follow.
  251. 8:14>> And then sometimes I'll flush that out
  252. 8:16to a doc that is like here's all the
  253. 8:18anti-atterns that you do by default. But
  254. 8:20it's like my writing process is like I
  255. 8:21cannot stand like three pages of Claude
  256. 8:24or or codec slop. Like I just I won't
  257. 8:27read it. I will. So, like I have to do
  258. 8:29it really small increments at a time,
  259. 8:30otherwise it's overwhelming.
  260. 8:31>> Because otherwise, you just don't read.
  261. 8:33>> Otherwise, I'm just like, "Oh, I [ __ ]
  262. 8:35hate this. I might as well write this
  263. 8:36from scratch." And then I'm like, "Well,
  264. 8:37I don't have time to do that." Like, how
  265. 8:38do I get how do I get leverage from AI?
  266. 8:40How do I get it to like kind of like
  267. 8:42unblock my writer's block without me
  268. 8:44actually having to like without actually
  269. 8:46like having to fix every single issue
  270. 8:48that it that it introduces.
  271. 8:49>> I found that I can't really have my
  272. 8:51whole team switch. I still don't have a
  273. 8:53good way to convert any humans to like
  274. 8:56force them to go do the
  275. 8:57>> like to either model like to codeex or
  276. 9:00to claude. And the reason is like
  277. 9:02>> I think a large part of how these AI
  278. 9:04models work today and these AI workloads
  279. 9:06work is like they're kind of personal to
  280. 9:08every human
  281. 9:10and like for example like obviously like
  282. 9:11we land on two different spectrums of
  283. 9:13how we like to engineer. I I like to sit
  284. 9:15and think really hard about the problem
  285. 9:17for a while and like try and like remove
  286. 9:18as many roadblocks up front and you do a
  287. 9:20lot more iterative approach. Neither
  288. 9:22approach is necessarily bad or good, but
  289. 9:24like clearly like if I and like it's
  290. 9:26also not like both of us live in one
  291. 9:27world at all times. We live on the
  292. 9:29spectrum. We just have a tendency on one
  293. 9:31end or the other. But like if we for if
  294. 9:34you were forced to always plan upfront
  295. 9:37and do every single amount of planning
  296. 9:39up front and I was forced to always be
  297. 9:41iterative,
  298. 9:42we would kind of not enjoy the work as
  299. 9:44much. And I think that's the problem
  300. 9:45with cloud and codeex is you as an
  301. 9:47engineer got used to a workflow. It's
  302. 9:49like [ __ ] now I have to change again.
  303. 9:51[ __ ] I have to change again. I have to
  304. 9:52like get the tweaks and the nuance of
  305. 9:54the model right every single time.
  306. 9:56>> Yeah, there's intuition that you have to
  307. 9:58build up and you need it's almost like a
  308. 10:00separate mode of being like you're like,
  309. 10:02"Okay, I'm going to be less productive
  310. 10:04and the the the benefit is not what I
  311. 10:06actually produce. It is going to be the
  312. 10:09the intuition I build."
  313. 10:11>> Have you ever switched keyboards? Like
  314. 10:13every time you switch keyboards, like
  315. 10:14you're just like slightly less
  316. 10:15productive for a while. Like when I
  317. 10:17first used the Kinesis, I was like
  318. 10:19>> I literally just lost three months of my
  319. 10:20life.
  320. 10:21>> Like because I could not type like I
  321. 10:22used to type. I just feel so dumb for
  322. 10:24that three months until I finally got
  323. 10:26used to it. And I think that's kind of
  324. 10:27what switching models and providers are
  325. 10:29like.
  326. 10:30>> And yet I can't convince you to try Vim.
  327. 10:33>> Uh Vim is so hard. Vim is I cannot for
  328. 10:36the life of me understand HJKL. Like
  329. 10:40what the like this was designed for an
  330. 10:43era with no mice.
  331. 10:45>> Can I show you? Can I show you
  332. 10:46something?
  333. 10:47>> Okay, while you do that, let me read
  334. 10:48some of the questions that are popping
  335. 10:50up. Um, Matas was asking, "Do you guys
  336. 10:54use Soul with sub agents or just soul
  337. 10:55alone?" I use Fable for code writing,
  338. 10:58research, and web search sub agents and
  339. 10:59it beats Soul by a mile, but within the
  340. 11:01same harness
  341. 11:03um uh without using uh sub agents like I
  342. 11:07don't know how you make anything happen.
  343. 11:08So, here is my most recent workflow for
  344. 11:11big stuff is like
  345. 11:13>> basically like I do some research and
  346. 11:16create a product outline back and forth
  347. 11:17and build a canvas that looks uh
  348. 11:19something like let me see if I can pull
  349. 11:22something up. Uh oh, I updated
  350. 11:26um let me find a good PRD. Uh show me a
  351. 11:31workflow.
  352. 11:32>> V3 task launcher.
  353. 11:37No, not this one. Actually, this
  354. 11:39probably has it in there. The Yeah, the
  355. 11:41PRD.
  356. 11:43So, I will work back and forth and build
  357. 11:45like a bunch of like interaction mocks
  358. 11:46with the model. Like, okay, here's how
  359. 11:48it works. Here's the different parts of
  360. 11:50this. Here's the visual stuff that we
  361. 11:51need to add.
  362. 11:53>> Not fully in like again like these are
  363. 11:55HTML mockups. They don't have to be
  364. 11:56faithful. It's just like get the
  365. 11:58direction
  366. 11:59>> and then I will have Soul and Fable
  367. 12:00implemented overnight. I'll literally
  368. 12:02queue up a fable session and I'll be
  369. 12:03like implement and then I'll cue another
  370. 12:06prompt that is like okay review it.
  371. 12:07Okay, another prompt and it's like use
  372. 12:09the codeex CLI to have C codeex review
  373. 12:11it and then compact and then do it again
  374. 12:13and then do it again and basically like
  375. 12:15queuing up like 15 prompts to let them
  376. 12:17just argue it out overnight
  377. 12:19>> and then I look at what they built in
  378. 12:20the morning and I look at at a human in
  379. 12:22the loop like polish okay make this look
  380. 12:23like this this thing is broken and then
  381. 12:25once that's ready I'll go make the PR
  382. 12:27and if it's 20,000 lines of code I will
  383. 12:29actually work back and forth with the
  384. 12:31models are really good at this like how
  385. 12:32do I break up this work into separate
  386. 12:34PRs where do the migrations go and then
  387. 12:36we merge like a one to 3,000 line PR at
  388. 12:40a time.
  389. 12:41>> Okay. But I've Okay, so I've got a
  390. 12:42question for you. When you do this
  391. 12:44workload, um
  392. 12:46>> what's your wall time of landing it?
  393. 12:49>> Like all the work?
  394. 12:54>> It's It's hard to say because I am I
  395. 12:56will have like bursts of like two days
  396. 12:58of a lot of coding and then I'll have
  397. 12:59like four days of like doing like CEO
  398. 13:02[ __ ]
  399. 13:03>> Um
  400. 13:04>> that's fair.
  401. 13:05>> The feature that this is about I think
  402. 13:07This was finished. This part took
  403. 13:10probably like a day or two on and off
  404. 13:12with doing other stuff. And then this
  405. 13:15took like a day. And then I ship the
  406. 13:19first five PRs, maybe like one a day in
  407. 13:21addition to doing other things. And then
  408. 13:24Kyle is picking up the last three PRs
  409. 13:26and like polishing it and getting it
  410. 13:27ready to like turn on for customers.
  411. 13:28>> Oh, you're literally the manifestation
  412. 13:30of a CEO that says, "I vibe coded
  413. 13:32something. Can my engineer go implement
  414. 13:34it?"
  415. 13:35That's what you're doing.
  416. 13:37>> I implemented the first five pull
  417. 13:38requests. I laid the I laid all the GR
  418. 13:40and then we got to PR number five and
  419. 13:42he's like I don't like how this is
  420. 13:43architected. I'm like great. You can fix
  421. 13:45it.
  422. 13:45>> But it was digestible, right? That PR
  423. 13:47where we had to like
  424. 13:49>> I'm just No, this is the thing though is
  425. 13:50like prototyping is great and like it's
  426. 13:52a great way to figure out what you want.
  427. 13:54It's a great way to see what's possible.
  428. 13:56But like I'm not asking anyone to review
  429. 13:58a 20k line PR because it's it's like I'm
  430. 14:01not I'm not gonna like have the same bar
  431. 14:03of quality. The person who's reviewing
  432. 14:04it is not going to have the same bar of
  433. 14:06quality and they're going to they're
  434. 14:07going to resent it. So you got to make
  435. 14:08these like models are really good at
  436. 14:10making these things digestible. We don't
  437. 14:11do this for everything. I'd say 90% of
  438. 14:13what we ship is small enough that you
  439. 14:15could just do it in one pass. But if
  440. 14:17it's huge and it's prototype and it's
  441. 14:18experimental and it's just like I need
  442. 14:20to create the vision for what this is
  443. 14:22beyond just those HTML mockups, then
  444. 14:24it's super valuable.
  445. 14:26>> Yeah, I actually agree. I find it's very
  446. 14:28like kind of what I'm hearing you say
  447. 14:30and I'm going to repeat it back to you
  448. 14:31and see if it this is what this is what
  449. 14:33I heard
  450. 14:34>> which is you basically go through you
  451. 14:36get an idea you spend a lot of time on
  452. 14:38like model auto looping to produce a
  453. 14:41pretty good spec. Then you implement the
  454. 14:44whole spec end to end and it produces
  455. 14:46basically a slot PR.
  456. 14:47>> But the slot PR allows you to decide
  457. 14:49whether or not the features are exactly
  458. 14:51what you want them to be and you keep
  459. 14:53iterating on slot PR.
  460. 14:55>> Then you basically
  461. 14:56>> this is pretty cheap.
  462. 14:58>> This this this part is very cheap in
  463. 15:00terms of human time and we have subs and
  464. 15:01it's like we use those tokens anyways.
  465. 15:04>> Um but the engineering happens here.
  466. 15:06[clears throat]
  467. 15:07>> Yeah. Yeah, but once you have the slot
  468. 15:08PR, then you say, "Okay, this is a slot
  469. 15:10PR. Use this as the spec and say that
  470. 15:12you were going to implement this from
  471. 15:13scratch. How would you redo it?"
  472. 15:15>> And like what are the faces down into it
  473. 15:19pieces?
  474. 15:20>> Yep, that's right. It's like how well
  475. 15:21it's like how do you break this down
  476. 15:22into digestible chunks and like what are
  477. 15:24things that we can incrementally ship to
  478. 15:26users that maybe add incremental value
  479. 15:28or uh or at least like easy to digest
  480. 15:31and review.
  481. 15:32>> I want to show you something really cool
  482. 15:34actually. Uh this is kind of something
  483. 15:37uh I know I know we were talking about a
  484. 15:39bunch of stuff
  485. 15:40>> but I actually um so we've talked about
  486. 15:42this a little bit
  487. 15:43>> which is on the idea of like um
  488. 15:48okay I'm going to screen share. We've
  489. 15:49talked about like uh our one of the
  490. 15:51things that we're running into now uh
  491. 15:54for context is like we're kind of
  492. 15:56running into this issue where we get a
  493. 15:57bunch of like tiny PRs and like the
  494. 15:59amount of tiny work is like
  495. 16:00overwhelmingly large. Uh and each of
  496. 16:03those tiny work items will improve the
  497. 16:05system. It just takes a while to go do
  498. 16:06all of them. So like we've been uh we've
  499. 16:08been trying to make our software factor
  500. 16:10a little bit better. And I wonder if
  501. 16:11you've seen this kind of thing before
  502. 16:12and if you guys have considered this
  503. 16:14where basically like users report
  504. 16:16feedback.
  505. 16:17>> Yep. And every single feedback that
  506. 16:19comes in, we basically like the idea is
  507. 16:22you can't trust any feedback ever
  508. 16:23because all feedback is basically
  509. 16:25untrustworthy because users are
  510. 16:27reporting stuff who knows how. So we
  511. 16:29like immediately check if the feedback
  512. 16:30is already fixed on the latest version.
  513. 16:33>> And if it is, we can just notify that
  514. 16:34user really quickly. If it's not, we
  515. 16:36basically try and search if it's like an
  516. 16:38existing repro or new one.
  517. 16:40>> And these are like basically like we put
  518. 16:42as like percentages of like how correct
  519. 16:43is every single subsystem meant to be
  520. 16:45here. like this this will likely be
  521. 16:47wrong at some cadence because like you
  522. 16:49know like you might like maybe this
  523. 16:50feedback report in like you think it's
  524. 16:52fixed but it's a flaky issue
  525. 16:54>> dduping is going to be buggy like I've
  526. 16:56never seen a good dduping agent for this
  527. 16:58and the key ones are bad agents are
  528. 17:00>> bad if it ddupes half of the things then
  529. 17:02you've saved yourself a lot of time
  530. 17:04>> exactly so then you do this then you
  531. 17:06create like a really really good repro
  532. 17:08and I think we can spend a lot of
  533. 17:09engineering to make this repro really
  534. 17:10really good uh just by like producing
  535. 17:13like n others then you actually create
  536. 17:15an issue So the idea is like an issue
  537. 17:17isn't created from feedback like issues
  538. 17:19are created post feedback and then you
  539. 17:21just constantly check basically on every
  540. 17:23single PR every single one is run and we
  541. 17:26just check if every issue is fixed
  542. 17:27always.
  543. 17:28>> It's very cheap. It's like CPU time uh
  544. 17:30to measure it. We don't have like web
  545. 17:32browsers or anything to go check. Uh for
  546. 17:35some stuff we do and that isn't
  547. 17:36>> and you just like keep basically like
  548. 17:38prioritizing the work. You assign a
  549. 17:40human to it. You basically communicate
  550. 17:42with the system and you either like put
  551. 17:43a plan together or you like just fix it
  552. 17:45and then you just like do the whole
  553. 17:46merging system. But like we tried to I'm
  554. 17:49have you I mean you guys have built
  555. 17:51tried building something like this
  556. 17:52before, right?
  557. 17:53>> Where was the bottom?
  558. 17:54>> This is I mean like
  559. 17:56>> you have at the very top an important
  560. 17:58piece of text which is for issues with
  561. 18:00clear code repros.
  562. 18:03>> Uh where do I where do I have that?
  563. 18:04Yeah. Yeah. I mean
  564. 18:05>> at the very top above feedback reported
  565. 18:06like if it's easy to reproduce then this
  566. 18:08whole thing works. If it's hard to
  567. 18:10reproduce, then uh then you need
  568. 18:12something else
  569. 18:13>> or you need you need to send an agent to
  570. 18:15see if it can create one.
  571. 18:18>> Yeah. Yeah. And that's kind of what the
  572. 18:19whole like creator repro is cuz like I
  573. 18:22don't trust any feedback files by users.
  574. 18:24So we kind of just need to spend a burn
  575. 18:25our own tokens to try and produce a
  576. 18:27clear repro and you can't produce for
  577. 18:29clear repro then you assign a human to
  578. 18:31it. So like this is the thing we've been
  579. 18:33working on internally and like it's like
  580. 18:36the next version of agent tries baml but
  581. 18:37for like human file feedback and I was
  582. 18:39like
  583. 18:39>> I was going to say this this feels
  584. 18:41shaped very similar to the
  585. 18:42infrastructure you wrote for agent tries
  586. 18:44BAML and now it's just like cool let's
  587. 18:46add another like input stream which is
  588. 18:48human tries BAML
  589. 18:49>> or humans agent tries BAML.
  590. 18:52>> Yeah, it's that one more so than
  591. 18:53[laughter] anything else. But it's like
  592. 18:56it's fascinating because like this PR
  593. 18:57review part is actually the thing that
  594. 18:59we're really trying to bottleneck and
  595. 19:00like I actually learned this concept
  596. 19:01from you when we were talking about this
  597. 19:02in the team. What we were talking about
  598. 19:04a lot is like how do we push the human
  599. 19:06time as low as possible.
  600. 19:09So you'll notice like a large part of
  601. 19:10this is like assign a human to this like
  602. 19:13a shepherd is like down here
  603. 19:16and like really this is assignment but
  604. 19:18then we actually ping the shepherd when
  605. 19:20this happened in Slack. We're like hey
  606. 19:21here's a bug fix. Here's the repro.
  607. 19:23Here's the bug fix. go read the PR or
  608. 19:26this is really hard. Here's a plan. Can
  609. 19:28you work can you either like download
  610. 19:29the plan into your local agent or like
  611. 19:31tell me this plan is good and I'll go
  612. 19:33implement it.
  613. 19:35>> What's the um what's the uh accuracy
  614. 19:38rate of your classify issue difficulty?
  615. 19:41Cuz that seems like an is that a human
  616. 19:42task?
  617. 19:43>> No, we're going to do an agent task and
  618. 19:45I think we'll actually what we're going
  619. 19:47to do with this is actually a twofold
  620. 19:49idea and like we're still playing around
  621. 19:51with this. So, we're building like evals
  622. 19:52for this actually internally.
  623. 19:54>> Yeah.
  624. 19:55>> Um, and now we have enough issues as a
  625. 19:58database that we actually like have eval
  626. 20:00which is kind of nice. Like our first PR
  627. 20:01just went out and I think where they go
  628. 20:05like what's cool about this approach
  629. 20:07that we're doing.
  630. 20:08>> By the way, I only see your Excal tab. I
  631. 20:10don't know if you're trying to show us
  632. 20:11something else.
  633. 20:11>> Uh, let me pull this over here.
  634. 20:14What's cool about this PR for example
  635. 20:16that we're making now is all these PRs.
  636. 20:18This is the one rule that we have which
  637. 20:20is like you have to push repros onto
  638. 20:22here.
  639. 20:23>> Yep.
  640. 20:23>> So you actually have to give us metrics
  641. 20:25for every single version of this
  642. 20:26pipeline. So then we can decide whether
  643. 20:27or not it's good or not. And like this
  644. 20:29is the dduping PR for example. Like
  645. 20:32obviously the dduping PR we know is low.
  646. 20:34It's lower than we expected. So like we
  647. 20:36want to do it even better.
  648. 20:38>> Yep.
  649. 20:39>> Right. But like
  650. 20:41>> Yeah. So we don't actually know what the
  651. 20:43XT rate here is yet. So, we're still
  652. 20:45going to be playing with this um to
  653. 20:48figure out what the accuracy rate is,
  654. 20:50but I'm hoping we can get to at least
  655. 20:52like 60% correct and that is enough. And
  656. 20:56we can measure it always by lines of
  657. 20:58code. If the fix is more than 60, if the
  658. 21:00fix ends up being mclassified as a small
  659. 21:02issue and ends up being 500 lines of
  660. 21:04code, we just we can just force classify
  661. 21:06it as the other one. So, it's not that
  662. 21:08hard.
  663. 21:08>> Yeah, that makes sense.
  664. 21:10>> Um
  665. 21:11>> I'm going to show you one. None of this
  666. 21:12was what today's ep Oh, one more. Let's
  667. 21:15go.
  668. 21:15>> So, uh, if you come,
  669. 21:16>> we got a little distracted as as you
  670. 21:19guys could see
  671. 21:19>> from the chat. If you type Vimtutor,
  672. 21:23>> it is a interactive guide that teaches
  673. 21:25you Vim. And if you do this for 10
  674. 21:27minutes a day, uh, you're welcome.
  675. 21:31>> No, no, no. Amigos, we're we're we're in
  676. 21:34the voice era. You don't need Vim. You
  677. 21:36just need voice.
  678. 21:38>> Voice tutor. Um,
  679. 21:39>> voice t. That's what [clears throat] I
  680. 21:41need. I need a voice that tells me how I
  681. 21:43should go talk to talk to other agents.
  682. 21:46>> Make you more clear. Uh yeah, me and
  683. 21:48Kyle were joking about like giving the
  684. 21:49agents a/ bro skill that they can give
  685. 21:52back to humans of like that was super
  686. 21:54unclear. I need you to like uh speak
  687. 21:57more like articulate yourself more
  688. 21:59clearly.
  689. 22:00>> Honestly, that would probably fix
  690. 22:02context problems more than anything else
  691. 22:04would. It's probably a good idea.
  692. 22:07>> Yep. Cool. Okay. I want to talk about
  693. 22:10today our topic which is software
  694. 22:12factory design patterns. So we've talked
  695. 22:14a lot about the software factory in
  696. 22:16various different versions and like cool
  697. 22:19you start with the normal software
  698. 22:20factory where a human builds the thing
  699. 22:22and then you swap it out with agent
  700. 22:23builds the thing and you have all these
  701. 22:25pieces that like make up your your your
  702. 22:28software factory and then you make the
  703. 22:29agent test the thing and then like this
  704. 22:32part is now fast but the review part is
  705. 22:34still slow and like we've talked about
  706. 22:35this a bunch of times. Um, I want to
  707. 22:38come and talk actually a thing that we
  708. 22:39haven't really done is like zoom in on
  709. 22:41this part of the factory. Um, which is
  710. 22:44like agent builds the thing. And the way
  711. 22:48that I think about this is basically
  712. 22:50like there's a couple different layers.
  713. 22:51We've talked to a lot of different teams
  714. 22:53and we'll talk about kind of like
  715. 22:54there's there's a couple different
  716. 22:55options, right? You could like build
  717. 22:58everything inhouse,
  718. 23:00uh, which I think is probably what your
  719. 23:02team has done. Um and then there's like
  720. 23:04the other side of the spectrum which is
  721. 23:06like buy everything.
  722. 23:08So build everything in house might make
  723. 23:10like what do you guys use for your like
  724. 23:12um sandbox execution
  725. 23:14like where where do your cloud sessions
  726. 23:16run
  727. 23:17>> for like agent tries?
  728. 23:18>> Uh we we buy MacBooks and Mac minis.
  729. 23:22>> Okay. So your compute is like agent
  730. 23:25sessions run on MacBooks
  731. 23:30>> and like basically when an agent session
  732. 23:32runs on demand like it I imagine it sets
  733. 23:35up some kind of developer environment.
  734. 23:38>> Uh yeah and stuff like this.
  735. 23:41>> Yeah. But it's all kind of already
  736. 23:42pre-installed on the MacBook. So like
  737. 23:44part of this is like speed is why we
  738. 23:46have this
  739. 23:47>> cuz like this core stuff is preset up
  740. 23:49and there's no boot up time in that
  741. 23:51case.
  742. 23:52>> Yep.
  743. 23:52>> Right. Um, and that's kind of nice. And
  744. 23:55then the other reason that we use
  745. 23:56MacBooks is because like we just had
  746. 23:57some extra MacBooks lying around.
  747. 23:59>> Yep.
  748. 24:00>> And then for the harness, you use cloud
  749. 24:03code primarily.
  750. 24:04>> Cloud code uh cloud code and codeex.
  751. 24:07>> I don't know. I don't know what the
  752. 24:09latest one is, but it's agnost. It's
  753. 24:10like we it's just like CLI you swap out.
  754. 24:14>> Yeah. So you use the CLI with some sort
  755. 24:16of some sort of headless mode that like
  756. 24:18streams out JSON or something, right?
  757. 24:20>> Yeah. Exactly. Uh we use headless mode
  758. 24:22that stream.json via the file. It dumps
  759. 24:25all the chat logs like the chat
  760. 24:27transcript, you know, like the JSONL
  761. 24:30file. So we just read that
  762. 24:32>> and then Yeah. So then you just tail
  763. 24:34tail the JSONL file or you like you
  764. 24:36scoop it up once the session is done.
  765. 24:38>> Yeah, exactly.
  766. 24:40>> Um cool. And then like do you have
  767. 24:43customizations that you add on there? I
  768. 24:45call it like the outer harness, right?
  769. 24:46So you have like skills you're
  770. 24:48injecting. Do you inject any MCPS or
  771. 24:50anything like that?
  772. 24:51>> We actually have like actual while loops
  773. 24:52that we have that we've built around
  774. 24:54this. So like for example to drive
  775. 24:56things to completion.
  776. 24:58>> Um
  777. 24:58>> Okay, cool.
  778. 24:59>> So like like for like we have a pull
  779. 25:01request bot like code rabbit that we
  780. 25:03use.
  781. 25:04>> Uh we want to merge after code rabbit.
  782. 25:05That's a while loop. That's like a
  783. 25:07hard-coded Y loop that actually says
  784. 25:08this. And like if the Y loop hits like
  785. 25:10max iterations like three,
  786. 25:11>> then what we do is like but then we boot
  787. 25:13it out and we ask a human to take a
  788. 25:14look.
  789. 25:19Cool.
  790. 25:20>> That makes sense. Um
  791. 25:23>> uh
  792. 25:23>> we don't merge automatically. Uh we do
  793. 25:26have a human hit merge.
  794. 25:28>> Yeah. Yeah. Okay. But it's like fix code
  795. 25:30rabbit until mergeable.
  796. 25:31>> Yeah. Like basically do not notify a
  797. 25:33human until code rabbit is happy.
  798. 25:37>> Uh and then we have
  799. 25:38>> or until three iterations get hit.
  800. 25:40>> Yeah. And then uh we have another thing
  801. 25:42that we're actually about to add now in
  802. 25:44this new loop that I built which is like
  803. 25:46our CI/CD takes a long time. So we want
  804. 25:49a human to hit that they're happy and
  805. 25:51after a human hits that they're happy
  806. 25:53this agent is supposed to just
  807. 25:54constantly merge against our main branch
  808. 25:57and keep it up to date so it can just
  809. 25:58mer drive it to merge.
  810. 26:01>> I see. So you're merging from main into
  811. 26:02the other thing and like basically
  812. 26:04looping this part.
  813. 26:06>> Yeah. So after the human is happy it's
  814. 26:07basically like I I want this to merge.
  815. 26:09just babysit this thing until it merges
  816. 26:11in cuz we have a merge queue and like
  817. 26:13sometimes conflicts happen etc.
  818. 26:16>> So this is the last part that we're
  819. 26:17adding now and we think this is just
  820. 26:18going to help. It's basically just a
  821. 26:20better a it's an agentic merge queue.
  822. 26:22That's how you can think about it. This
  823. 26:23>> Yep. Okay. And where does this run?
  824. 26:26>> Um and actually all this is uh going to
  825. 26:28be
  826. 26:30it's the same machine. It's the same
  827. 26:31thing, right?
  828. 26:32>> Um so does this run like so this is this
  829. 26:35is separate from from agent tries BAML,
  830. 26:37right? This is separate from the factory
  831. 26:38stuff. This is like running on someone's
  832. 26:40workstation.
  833. 26:41>> No, this actually we don't want it to
  834. 26:42run on your workstation. We want it to
  835. 26:44run on a non on a on a work on a like a
  836. 26:46sandbox type machine.
  837. 26:49>> Okay. So, do you run it in GitHub
  838. 26:50actions or does it run on the same
  839. 26:52MacBook where the agent
  840. 26:54>> runs? Everything is running on the same
  841. 26:55MacBook.
  842. 26:56>> Yeah.
  843. 26:56>> Okay. So, you just have a pool of
  844. 26:58MacBooks that run any generic agent
  845. 27:00task.
  846. 27:02>> Yeah. the agent loop for example. I bet
  847. 27:04that one could run as like a pure web
  848. 27:06layer because like GitHub is automerge.
  849. 27:08So we could just do like automerge and
  850. 27:10then go do it and then but right now
  851. 27:12like that's kind of how we're thinking
  852. 27:14about it.
  853. 27:15>> Okay. Um and then like my last question
  854. 27:17is like okay so you have this MacBook
  855. 27:21and then you have you know your you know
  856. 27:23Rust tool chain etc set up.
  857. 27:26>> Yeah. Uh,
  858. 27:31and then you have your CC/codeex
  859. 27:35like your like inner harness. You have
  860. 27:37your like
  861. 27:38>> outer harness. And then you basically
  862. 27:41have like I guess like how does how does
  863. 27:43this system know that there's a new
  864. 27:45thing to work on? Is it pulling some
  865. 27:47queue or like
  866. 27:49>> there's some there's some way to turn
  867. 27:51this it runs a web server on it locally
  868. 27:54>> and then we use some like herder or
  869. 27:56something. So, we're running like a web
  870. 27:57server.
  871. 27:59>> Okay. So, there's a there's a web server
  872. 28:01that you can on each MacBook.
  873. 28:04>> Yeah. Yeah. And then there's like
  874. 28:06another way that we I forgot the app we
  875. 28:08use. We use some app that basically
  876. 28:09makes that app that makes that thing
  877. 28:11like
  878. 28:12>> uh accessible
  879. 28:14>> like a tail scale or enrock or
  880. 28:16something.
  881. 28:17>> It's not either of those, but it's
  882. 28:18something else. I don't remember it off
  883. 28:19the top of my head. I would um but we
  884. 28:21use something that makes it basically
  885. 28:22like behave like a remote server that's
  886. 28:24like deployed somewhere. You have some
  887. 28:26sort of like privately accessible like
  888. 28:28thing you can open in a browser.
  889. 28:31>> Yeah. Well, it's it's a REST API. So
  890. 28:33like there's no we don't build a UI for
  891. 28:36it. I mean we could but like we could
  892. 28:37sort of react off of it but like yeah
  893. 28:39it's a rest API.
  894. 28:40>> Okay. So what sends requests to this?
  895. 28:43>> Uh
  896. 28:46now we have yeah well now we have
  897. 28:49another web server that we actually host
  898. 28:51that's a pure rest endpoint. So now
  899. 28:53there's a web app that we build.
  900. 28:56Um yeah, and this web app is the thing
  901. 28:59that like listens to linear, listens to
  902. 29:01Slack, listens to kind of everything and
  903. 29:03that communicates with these.
  904. 29:05>> Okay, cool. So this is actually like on
  905. 29:08on the host.
  906. 29:09>> Yeah. Yeah, exactly.
  907. 29:10>> And then you have basically a cloud web
  908. 29:12server that receives like web hooks from
  909. 29:15Slack and Linear.
  910. 29:16>> Yeah. And GitHub and all the other
  911. 29:18stuff.
  912. 29:19>> Yep. Okay.
  913. 29:22>> Yeah. And it also has its like own
  914. 29:23endpoint that you can communicate with
  915. 29:25if you want.
  916. 29:27>> Yeah. So you have this thing as kind of
  917. 29:28like what I would call your like
  918. 29:30dispatcher.
  919. 29:32>> Yeah. Yeah. It's also the thing that has
  920. 29:34a database and everything on there.
  921. 29:36>> Yeah.
  922. 29:36>> Um so like
  923. 29:38>> so yeah this is the this is basically
  924. 29:39what we call like the orchestration
  925. 29:41layer. Um, and basically the the the
  926. 29:44kind of thing I was like want to get
  927. 29:46across is like you can buy all of this,
  928. 29:48right? If you use like cursor cloud
  929. 29:50agents or cognition or whatever, you get
  930. 29:53you get all of that, right?
  931. 29:54>> Mhm.
  932. 29:56>> Uh,
  933. 29:57>> yeah. Every single one of these is
  934. 29:59viable. 100% viable.
  935. 30:01>> And so like basically what I what I get
  936. 30:03into is like what is the what I'm trying
  937. 30:04to like elaborate here is like what is
  938. 30:06the um what is the what are the building
  939. 30:09blocks? What are like the core
  940. 30:11interfaces inside the software factory
  941. 30:13so that if you decide there's some part
  942. 30:16of it that's hard and you want to build
  943. 30:17certain things and buy other things like
  944. 30:19what does that all look like? And I
  945. 30:20think I've sent you this picture before
  946. 30:21but I'm going to I'm going to draw it
  947. 30:22out here for the for the fans.
  948. 30:24>> Yeah. Well, people
  949. 30:27>> here I'll let you draw it out and then
  950. 30:28I'll just chat.
  951. 30:30>> Yeah. People are asking them questions.
  952. 30:31I'll just answer them along the way.
  953. 30:33What steps you use to run evals?
  954. 30:34Honestly, the eval system is pretty
  955. 30:36simple and you're seeing that we're
  956. 30:37making more rigorous in the PR that I
  957. 30:39showed earlier where now we actually
  958. 30:40have like benchmarks that we're trying
  959. 30:41to set of like we download past issues.
  960. 30:44We see if they reproduce and what the
  961. 30:45rate is. So like now we actually just
  962. 30:47build tests around them and we have like
  963. 30:48benchmarks for like what percentage of
  964. 30:50tests pass and we have like a pass rate
  965. 30:52and stuff that we're building out. Um
  966. 30:56all the code is actually open source.
  967. 30:57You'll be able to go see it if you want.
  968. 30:59Uh do you use containers with G Visor?
  969. 31:02Uh we do not use containers. I mean
  970. 31:03these are all trusted systems. So the
  971. 31:05reason for example that you saw earlier
  972. 31:06in my in my Excala draw that I was
  973. 31:09showing is like raw feedback coming from
  974. 31:11a user is completely untrustworthy. We
  975. 31:14run our own prompts to create repros and
  976. 31:16those repros are things that we trust.
  977. 31:18So we never execute raw code off the
  978. 31:20prompt up there. We don't want to. So
  979. 31:22this is why it's like slightly more
  980. 31:23trustable. So we can just run it
  981. 31:24directly on the machine.
  982. 31:26Uh, I guess someone could try and
  983. 31:28Bitcoin mine it, but I think Claude Code
  984. 31:29and stuff are like smart enough to like
  985. 31:31not try and do that and we don't really
  986. 31:32accept remote code.
  987. 31:34>> Uh, and then do we have a sandbox or
  988. 31:35Dro? No, we don't use any sandboxes or
  989. 31:38anything else. We just run it directly
  990. 31:39on the MacBook because again, like I
  991. 31:40said, it's trustworthy. So, we don't
  992. 31:41have any issues on this.
  993. 31:44>> Yep. And so, like again, you can buy or
  994. 31:46build that. You could throw it in
  995. 31:47Daytona. You could throw it in your
  996. 31:48Kubernetes cluster. You could throw it
  997. 31:49ETP, Freestyle, whatever it is. Uh, but
  998. 31:51you need a place for the aven isolates,
  999. 31:54right? Like some people have done this
  1000. 31:55thing with jetpash where like the agent
  1001. 31:57runs it doesn't even have a real Linux
  1002. 31:58file system. It's literally just tools
  1003. 32:00that look like a file system.
  1004. 32:02>> Yeah. And then Simon asked the
  1005. 32:03interesting question like how do you
  1006. 32:04treat issues that are dependent on
  1007. 32:06external sources, data providers and
  1008. 32:08such. The thing is like we don't um
  1009. 32:10lucky for us we don't have that much of
  1010. 32:12a problem because we're building a
  1011. 32:14programming language. So a lot of stuff
  1012. 32:16is like either self-reroducable or not
  1013. 32:18and it's very clear when it's not and if
  1014. 32:20it's not we'll just bump it up to a
  1015. 32:22human.
  1016. 32:23>> Like external data source will just go
  1017. 32:24to a human and a human can make some
  1018. 32:26educated decision on that kind of
  1019. 32:27problem.
  1020. 32:29>> Yep.
  1021. 32:29>> I think I think the folly that a lot of
  1022. 32:31people make is they try and make a
  1023. 32:33system that is fully automatic. That is
  1024. 32:35much harder than getting a system that's
  1025. 32:3795% automatic.
  1026. 32:40So like that's how we're we're aiming
  1027. 32:42for that latter bit. We're not trying to
  1028. 32:44be fully automatic. We sadly, not sadly,
  1029. 32:46I guess luckily will actually keep
  1030. 32:48employing humans for a while because I
  1031. 32:50like people and I like making friends
  1032. 32:53>> if for no other reason.
  1033. 32:54>> Um, yeah. So, anyways, yeah, the the the
  1034. 32:57comput stuff is basically like you can
  1035. 32:59build it, you can manage your own
  1036. 33:00compute, whether it's EC2 or your own
  1037. 33:03like Kubernetes cluster or literally you
  1038. 33:05have a stack of MacBooks in the office
  1039. 33:06like you can buy it and run it in your
  1040. 33:09infrastructure. So I know like people
  1041. 33:11like Daytona will like basically give
  1042. 33:12you like kind of a black box and you get
  1043. 33:14an API and just be like hey I need a
  1044. 33:15sandbox and they'll just spit it up for
  1045. 33:16you but it runs in your AWS cloud or in
  1046. 33:19your data center or on your like rack
  1047. 33:22and office
  1048. 33:23>> or you can buy where it's just like I
  1049. 33:26don't want to run any infrastructure. I
  1050. 33:28have like here's my stuff and here's
  1051. 33:29like the vendor stuff and I just send a
  1052. 33:31request and all the execution happens
  1053. 33:33like in their thing.
  1054. 33:35>> Yeah. Like basically it's like you can
  1055. 33:37do as much BOC as you want.
  1056. 33:40>> Yep.
  1057. 33:41>> Uh and this is like a very
  1058. 33:42well-established domain. And
  1059. 33:45>> I'm gonna ask you a question.
  1060. 33:47>> How do you decide how much BYOC you
  1061. 33:49want?
  1062. 33:50>> So this is this is kind of what I want
  1063. 33:52to get at is like if you understand
  1064. 33:53these like four layers or five layers of
  1065. 33:56the stack, you can make the decisions
  1066. 33:59based on your needs. Um, and I think the
  1067. 34:02most interesting part of this whole
  1068. 34:03thing that I think is the most
  1069. 34:05controversial is the idea of the dev
  1070. 34:07environment. Um, because the dev
  1071. 34:09environment has many layers, right? It's
  1072. 34:11like, okay, like what like language run
  1073. 34:14times
  1074. 34:15do I need to actually be able to uh like
  1075. 34:19compile and test my software? There's
  1076. 34:21like how do I like test it from the
  1077. 34:25outside? So for BAML is very verifiable,
  1078. 34:27but if I need to run a web app, I need a
  1079. 34:29way not just to like send work to this
  1080. 34:32workstation, but I need to be able to go
  1081. 34:34like look at what the agent is building
  1082. 34:35and see a preview of it, right?
  1083. 34:38>> You have like a lot of a lot of larger
  1084. 34:40teams have like internal services where
  1085. 34:43like you might run like four layers of
  1086. 34:45your stack when you're developing, but
  1087. 34:47actually the app has like 50, you know,
  1088. 34:5050 plus services that it needs to run
  1089. 34:52and these are all shared.
  1090. 34:55>> Yep. Uh, you know what's
  1091. 34:56>> like shared dev? We call it like a dev
  1092. 34:59cloud or something like this.
  1093. 35:02>> You know what's um Okay, I'll I'll let
  1094. 35:05you keep going. Actually, I want to keep
  1095. 35:06I want to see where this goes.
  1096. 35:07>> Yeah. Yeah. Yeah. Yeah. Uh just in the
  1097. 35:10interest of time. Um, basically my take
  1098. 35:14is like once you're going into the
  1099. 35:15vendor's cloud, if if it's running here
  1100. 35:17and you need to test it, like telling
  1101. 35:20telling Daytona or whatever, hey, I need
  1102. 35:22to install like I need to use this base
  1103. 35:24Docker image cuz it has Rust
  1104. 35:25pre-installed at a specific version that
  1105. 35:27we like is easy, but when you get to the
  1106. 35:29point where like I need to like poke
  1107. 35:30holes in my in my uh in my like cloud to
  1108. 35:34allow this running thing in someone
  1109. 35:36else's compute cloud to access uh the
  1110. 35:40shared things that my stack pack needs
  1111. 35:42cuz we have a 100 repos and I don't want
  1112. 35:43to run all of them in the sandbox. Uh
  1113. 35:46this becomes like quite a bit of
  1114. 35:48friction and the the need to basically
  1115. 35:51like debug oh the rust thing is not
  1116. 35:53working on this thing because they're
  1117. 35:55using like a fake Linux kernel that
  1118. 35:56doesn't support this sys call or
  1119. 35:58something. Uh basically like uh it it
  1120. 36:03can cause a lot of friction and my one
  1121. 36:04of my thesis is like you are going to
  1122. 36:06want to own this uh unless you're
  1123. 36:08building like tiny little toy nex.js JS
  1124. 36:10apps and you're like, you know, in the
  1125. 36:12like majority like in distribution set
  1126. 36:15of stuff, you're going to start to hit
  1127. 36:17friction unless you can own this in a
  1128. 36:19really clean way. Does that make sense?
  1129. 36:21>> I agree.
  1130. 36:23>> Cool. Um, the next layer is the harness.
  1131. 36:27So, this is like basically and I I think
  1132. 36:29we probably split this into like in
  1133. 36:30yours we kind of split it into like
  1134. 36:31inner hardness versus outer harness. you
  1135. 36:33have like the core cloud code or codeex
  1136. 36:36or um this could be like or you can like
  1137. 36:40or amp or devon or factory. You can like
  1138. 36:43buy this from a vendor who builds a
  1139. 36:44harness or you could like build your own
  1140. 36:47on top of like open code PI custom
  1141. 36:49things. And basically like you can you
  1142. 36:52can you can kind of say like okay cool
  1143. 36:54there's the
  1144. 36:56inner harness is really thin and we
  1145. 36:58build a bunch of like outer harness
  1146. 37:00stuff or you can basically buy an inner
  1147. 37:03harness that comes with a ton of stuff
  1148. 37:05like a browser and testing and stuff. Uh
  1149. 37:10oh my god I can't type.
  1150. 37:12And then you can have your outer outer
  1151. 37:14harness be like very thin where it's
  1152. 37:16like just your skills and stuff.
  1153. 37:19Does that make sense?
  1154. 37:21>> Yep.
  1155. 37:22>> Yeah. You have options here how you do
  1156. 37:24[clears throat] compaction, how you do
  1157. 37:26testing. Yeah.
  1158. 37:27>> Uh what's fascinating here is like I
  1159. 37:29don't know if anyone in the audience has
  1160. 37:31ever worked at a like Google or
  1161. 37:33Facebook, but if you have then you might
  1162. 37:36see a lot of this stack is literally
  1163. 37:37something that you have probably worked
  1164. 37:38on before. And Google, for example, they
  1165. 37:40buy you a really nice MacBook, but you
  1166. 37:42never code on your MacBook. You always
  1167. 37:44get what's called a cloud top. And every
  1168. 37:46single time you get a new environment,
  1169. 37:47you actually set up a whole new cloudtop
  1170. 37:49and you just set that up repeatedly. And
  1171. 37:51Facebook's the same way. And like that's
  1172. 37:53just how your default coding. And like
  1173. 37:56same thing here, like when
  1174. 37:57>> no one ever has
  1175. 38:00no one ever has code checked out on
  1176. 38:02their workstation because like they
  1177. 38:03basically don't want you to take the
  1178. 38:05code outside the building. Well, that's
  1179. 38:07one part of it, but also it's just like
  1180. 38:08too big. Like you can't have that. And
  1181. 38:10then the other thing that's really
  1182. 38:12fascinating to me is like
  1183. 38:13>> whenever you make like web services and
  1184. 38:15you go do them, you get default URLs
  1185. 38:17that are attached to you. So like my uh
  1186. 38:20uh my I don't I don't even remember what
  1187. 38:22my LDAP was. I'm pretty sure it's like
  1188. 38:24what my user ID was. Like I got a
  1189. 38:26subdomain that's like myeldap.c.google
  1190. 38:30or some internal Google domain.com. I
  1191. 38:32could send that around to people. So if
  1192. 38:33I ever build like an internal UI, by
  1193. 38:36default it's sharable in my whole
  1194. 38:37company if I want it to be. And you get
  1195. 38:40>> you can just share that URL and a PM
  1196. 38:42could go look at the web app or whatever
  1197. 38:43it was.
  1198. 38:44>> Exact. And what that means is like any
  1199. 38:46service I want to point to, I can have
  1200. 38:47my own version of the service or I can
  1201. 38:49have a hosted version of the service
  1202. 38:50that I point to by default and it's
  1203. 38:51always kind of just works
  1204. 38:54>> um in that way. And what's funny to me
  1205. 38:56is it feels like we're all trying to
  1206. 38:58reinvent that kind of golden stack where
  1207. 39:00like you go in, you press a button, you
  1208. 39:01get a cloud top issue to you, you can
  1209. 39:03start coding on it, it does the work,
  1210. 39:05you can access it from anywhere. You can
  1211. 39:07see all the code on it from the same
  1212. 39:08editor that you're the same editor can
  1213. 39:10just switch to like different machines
  1214. 39:12really really fast.
  1215. 39:14>> And then um on top of that you get all
  1216. 39:16these like nice little web systems where
  1217. 39:18like it just points the right database,
  1218. 39:20right URLs and like sharing and
  1219. 39:21everything is provisioned. You can't
  1220. 39:23share URLs publicly unless you
  1221. 39:25explicitly escalate them to a public URL
  1222. 39:27that's sharable. So, it's internet only.
  1223. 39:30>> Anyway, I just find it so interesting
  1224. 39:32that like we're doing all this stuff and
  1225. 39:34like there are a couple companies that
  1226. 39:36have done this like perfectly already by
  1227. 39:38necessity of their work. But it's also
  1228. 39:41it's like there's something to be said
  1229. 39:42for like you might not be Google and you
  1230. 39:44might be able to get away with basically
  1231. 39:46like a full stack cloud agent that does
  1232. 39:49all of this kind of like for you because
  1233. 39:51you don't need that flexibility.
  1234. 39:52>> Yeah. Yeah. Yeah. Exactly.
  1235. 39:55>> Um cool. The last piece here is I think
  1236. 39:57the most interesting and underserved
  1237. 39:59piece. I'll take the pitch part of this
  1238. 40:00out but is basically the control plan,
  1239. 40:03the orchestration layer. Uh, and so like
  1240. 40:07basically the idea here is like you want
  1241. 40:09to be able to dispatch new work. You
  1242. 40:11want to be able to see what's you want
  1243. 40:12to be able to look at the session
  1244. 40:13traces. You want to be able to look at
  1245. 40:15the plans and architecture docs that are
  1246. 40:18being made. You want to be able to like
  1247. 40:20schedule things to run every night or on
  1248. 40:22a cron or in response to web hooks. You
  1249. 40:25want to be able to like review and
  1250. 40:26iterate on the code itself. uh sort of
  1251. 40:29like a PR shaped thing but like doesn't
  1252. 40:32necessarily need to happen in GitHub.
  1253. 40:34There's like permissions and audit and
  1254. 40:37who can talk to what and who can see
  1255. 40:38which services and like managing spend
  1256. 40:40and budgeting. And then there's like
  1257. 40:43this idea of compounding engineering. I
  1258. 40:44we'll start high level. We'll dig into
  1259. 40:46like whichever one of these you think is
  1260. 40:47the most interesting. Compounding
  1261. 40:48engineering is we talked about this on a
  1262. 40:50an episode like a month ago of like how
  1263. 40:52do we how do we build a memory system
  1264. 40:54where it's like hey if all your
  1265. 40:56engineers across your whole team are
  1266. 40:57yelling at Claude all day and they're
  1267. 40:59all saying the same thing or codecs or
  1268. 41:01whatever it is how do you incorporate
  1269. 41:04that into your uh your outer harness
  1270. 41:07basically.
  1271. 41:08>> Yeah. Um this is I I I mean if I were to
  1272. 41:11go and write the layers of stack I could
  1273. 41:13not come up with a better representation
  1274. 41:14of the stack. Um
  1275. 41:16>> there is there is one argument to say
  1276. 41:18that like the dev environment is
  1277. 41:21actually part of the outer harness and
  1278. 41:23it doesn't it doesn't sit underneath the
  1279. 41:24harness. It's actually part of the
  1280. 41:25harness. But uh
  1281. 41:27>> I disagree.
  1282. 41:27>> We'll we'll we'll avoid that that
  1283. 41:29semantic right now.
  1284. 41:30>> I I I disagree. I think it's I think
  1285. 41:32it's better to have the separate layer
  1286. 41:33because it's like
  1287. 41:36when I get a company laptop for example,
  1288. 41:38there's a bunch of crap I have to
  1289. 41:39install. I just want that installed.
  1290. 41:42>> Yeah. There. And like to me like what
  1291. 41:43else goes in the dev environment is like
  1292. 41:45identity provisioning like that all goes
  1293. 41:47into the dev environment not the harness
  1294. 41:50and that's why I think um
  1295. 41:52>> you mean like authenticating to internal
  1296. 41:54services and integrations and stuff.
  1297. 41:56>> Yeah. Just like identity attached to
  1298. 41:57that environment. There's some sort and
  1299. 41:59that implicitly gives you internal
  1300. 42:01services. It gives you access to certain
  1301. 42:02API keys, gives you access to certain
  1302. 42:04scopes like all the stuff you might
  1303. 42:06expect.
  1304. 42:07>> Um but that belongs in the dev
  1305. 42:09environment layer. It's not in the
  1306. 42:10infrastructure layer. it's not in the
  1307. 42:11harness layer. Um because like I want my
  1308. 42:14harness to not have to think about
  1309. 42:16certain provisioning.
  1310. 42:18>> Yep.
  1311. 42:18>> Um and
  1312. 42:19>> one other thing I think is interesting
  1313. 42:20on the dev environment side, then I want
  1314. 42:21to flip it to the audience and hear like
  1315. 42:23which parts of this stack are the most
  1316. 42:24interesting to drill into. Um are you
  1317. 42:27familiar with the idea of like pets
  1318. 42:28versus cattle?
  1319. 42:30>> Okay. While while you describe a new uh
  1320. 42:33concept to me, um I will read the
  1321. 42:35comments. Describe the concept to me.
  1322. 42:38>> So yeah. So
  1323. 42:38>> I have no idea what this is. basically
  1324. 42:40this idea of like you kind of like have
  1325. 42:43some number of server you like prod
  1326. 42:45web01
  1327. 42:47you have prod web 02 you have like a set
  1328. 42:49of servers that have like roles in your
  1329. 42:51infrastructure
  1330. 42:52>> okay
  1331. 42:53>> uh and like if one of them goes down
  1332. 42:55it's like cool I got to go rebuild prod
  1333. 42:57web 03 cuz the disc filled up or
  1334. 42:59whatever it is
  1335. 43:00>> okay what's cattle
  1336. 43:02>> and cattle is basically this idea of
  1337. 43:03like you don't care if it goes away
  1338. 43:06you've designed your
  1339. 43:07>> oh yeah it's like web previews for
  1340. 43:09example web previews on PRS or cattle.
  1341. 43:12>> Exactly. So it's basically just like web
  1342. 43:13and then you have some like you know
  1343. 43:16>> random UID or something. Yeah. Yeah.
  1344. 43:18>> Yeah. And then you just kind of have
  1345. 43:20infinite of these and these are usually
  1346. 43:21cattle is more like okay we have a
  1347. 43:23script that can provision these. No one
  1348. 43:24has to go SSH into the server and set it
  1349. 43:26up.
  1350. 43:27>> Uh and like basically just on demand. So
  1351. 43:30like I would say your MacBook setup
  1352. 43:31today is actually more of a pet setup.
  1353. 43:33And I actually think this is a great
  1354. 43:35place to start. I think you can get very
  1355. 43:37far with like basically like if if you
  1356. 43:40bought a new MacBook and you wanted to
  1357. 43:42add it to the stack, you would go
  1358. 43:44someone would go like pull it up and
  1359. 43:46manually set it up. You don't have a
  1360. 43:47button you can push that makes it ready
  1361. 43:49to receive like workloads, right?
  1362. 43:51>> Well, there's a repo that you download,
  1363. 43:53you start running uh some start some
  1364. 43:56script and it just provisions it
  1365. 43:57automatically.
  1366. 43:59>> Yeah. Um
  1367. 44:00>> but you do have to download the repo and
  1368. 44:01go do that. We made it. It's not like
  1369. 44:03someone has to go basically chef or
  1370. 44:06>> you need the hardware.
  1371. 44:07>> You need the hardware to go run it. Uh
  1372. 44:09which means and we own the hardware.
  1373. 44:12>> Yeah. So when I worked it, we basically
  1374. 44:14like we built a system to turn
  1375. 44:16everybody's workstation in like
  1376. 44:18undergrad in college. We we worked it
  1377. 44:20for the library and we basically built a
  1378. 44:22system to turn all of the workstation
  1379. 44:24from pets into cattle
  1380. 44:25>> cattle. And we had this like literal
  1381. 44:27station in the basement where like
  1382. 44:29whenever someone's machine got corrupted
  1383. 44:31or got a virus or whatever it was,
  1384. 44:33instead of going in and trying to fix
  1385. 44:34what was going on, we would literally
  1386. 44:37pop two drives in the in the bay, clone
  1387. 44:39from one drive to the other, bring them
  1388. 44:41a new drive, put it in their machine,
  1389. 44:43and be like, "Cool, go download your
  1390. 44:44[ __ ] from the from the file share."
  1391. 44:47>> Yeah. Yeah. No, I I I agree that dev
  1392. 44:50environment should be more cattle than
  1393. 44:51pro uh than bats. 100%. I actually like
  1394. 44:54when we build our dev environments and
  1395. 44:56like we have a similar stack to you. I
  1396. 44:57run some stuff in EC2. I run some stuff
  1397. 44:59in XC.dev.
  1398. 45:00>> We actually treat it like pets for now
  1399. 45:02because we don't have [ __ ] thousands
  1400. 45:04of work workflows starting up and down.
  1401. 45:06I just leave one server running all day
  1402. 45:09>> and when I need to run stuff on it, I
  1403. 45:10run stuff on it.
  1404. 45:11>> When I need to authenticate to GitHub
  1405. 45:13again, I just log in and reauth to
  1406. 45:15GitHub. It's
  1407. 45:16>> another great analogy for everyone else
  1408. 45:18is like I would say like AWS Lambda
  1409. 45:19functions or cattle. like an EC2
  1410. 45:22container you own is more pet than
  1411. 45:24cattle.
  1412. 45:25>> It's it's kind of in the middle. Uh but
  1413. 45:27it's it's kind of in that same kind of
  1414. 45:29workflow.
  1415. 45:30>> Um we've got a couple questions uh in
  1416. 45:32here that I want to go over.
  1417. 45:33>> Uh it's like um it's a weird network
  1418. 45:36cluster. My factory ended up as a tail
  1419. 45:38scale sprawl. Tunnels to extend. Uh
  1420. 45:40tunnels are Yeah, I mean yeah, we don't
  1421. 45:42use tail scale for that reason. Like
  1422. 45:43it's kind of annoying. Um Sedarth has
  1423. 45:46some things. It's like uh I sort of
  1424. 45:48understand how software factories can
  1425. 45:50behave in a single repro. How do you
  1426. 45:52deal with multiple repros when you have
  1427. 45:54like multiple things to be completely
  1428. 45:56honest sadly my recommendation is uh
  1429. 45:59you're going to be sad because you're
  1430. 46:01not using a monor repo. So the best
  1431. 46:03thing you can do and I know Dexter has
  1432. 46:05helped teams that have tons of like
  1433. 46:07micro repos
  1434. 46:10teams with 80 repos and or 100 repos or
  1435. 46:13whatever it is. So like my
  1436. 46:14recommendation would be like simulate a
  1437. 46:16monor repo as much as you can and you
  1438. 46:18can do that in many ways. You can get
  1439. 46:20like a checkout of you can go to a
  1440. 46:22folder where you sim link all the monor
  1441. 46:23repos in there. You sim link it and
  1442. 46:25treat it like a monor repo. You can have
  1443. 46:27an actual monor repo that actually like
  1444. 46:29just contains a list of sim links to
  1445. 46:31every single repo that you have and it
  1446. 46:32just like
  1447. 46:33>> with sim links
  1448. 46:35>> like cloud can traverse your workspace
  1449. 46:37pretty easily. So if I come here and
  1450. 46:39look at the code here we literally this
  1451. 46:41is our template for this. We don't use
  1452. 46:42this anymore cuz this is built into
  1453. 46:43human layer now. But uh yeah, we
  1454. 46:45basically say like if you're using
  1455. 46:47especially if you're doing research and
  1456. 46:48you want to go find the stuff, it's like
  1457. 46:50cool, you're in a coordination repo for
  1458. 46:52multiple repos. They're all like one
  1459. 46:54level up basically. And so the way the
  1460. 46:56way that you lay things out on disk is
  1461. 46:58basically like source repo one, repo 2
  1462. 47:01coordination. They don't need to be in
  1463. 47:02the same git tree. You don't need subm
  1464. 47:03modules. You don't need sub trees. You
  1465. 47:05don't need sim links. As long as the
  1466. 47:07model knows all of the things that might
  1467. 47:08be in scope and you give it a like part
  1468. 47:11of your workflow that is like go do
  1469. 47:12research and understand what matters to
  1470. 47:14this uh this is like it's really not
  1471. 47:17like a product thing. It's literally
  1472. 47:19just like a cool just tell your model
  1473. 47:21where the other [ __ ] is and like
  1474. 47:22>> you still uh while you say that actually
  1475. 47:24you still don't need one
  1476. 47:27like control file that tells you the
  1477. 47:29organization structure and the layout
  1478. 47:30system that you're going to have.
  1479. 47:32>> Yeah. Right. So this is like but like it
  1480. 47:34doesn't have to be sim linked into every
  1481. 47:35repo. You don't need every repo to have
  1482. 47:37like a doubly linked like two-way
  1483. 47:40reference to all the other ones. We just
  1484. 47:42run all of our session you just run all
  1485. 47:43of your sessions from one coordinate and
  1486. 47:45this can be a separate repo with just
  1487. 47:47this cloud MD in it
  1488. 47:48>> or it can be or it can be one you know
  1489. 47:52the repo that everyone uses the most and
  1490. 47:54then sometimes you touch other repos
  1491. 47:55well you put all the config there and
  1492. 47:57even if you're not touching that main
  1493. 47:58repo you just you have one canonical
  1494. 48:00place where you start agent work from
  1495. 48:02and then you give it the ability to find
  1496. 48:04those other repos. The sandbox thing
  1497. 48:06gets a little trickier if you're doing
  1498. 48:07on demand sandboxes because like do you
  1499. 48:09really want to clone 200 repos onto the
  1500. 48:11box every single time? Well, that's
  1501. 48:13going to make your thing slower and you
  1502. 48:15need more disk and things like this. The
  1503. 48:17alternative is like make the human pick
  1504. 48:19which repos are relevant, which works to
  1505. 48:20a point, but as soon as I want to like
  1506. 48:22take advantage of the fact that agents
  1507. 48:24can help me be productive in code bases
  1508. 48:26that I'm not an expert in. Now we're
  1509. 48:28back to like, oh, if I missed a thing
  1510. 48:30that was important, then I'm back to
  1511. 48:31like, oh, I need to go talk to the
  1512. 48:33person or know, I need to have that
  1513. 48:34intuition about the codebase to know
  1514. 48:36that. And like we really want to
  1515. 48:37>> enable you to leverage agents to do
  1516. 48:40this. So, this is another time where
  1517. 48:41it's like
  1518. 48:42>> you could do cattle, but then you're
  1519. 48:44bulk cloning all the repos all the time
  1520. 48:45and have to keep them all up to date. Or
  1521. 48:47you could do pets and just have them all
  1522. 48:48checked out.
  1523. 48:49>> Yeah. Um, what I would the other thing I
  1524. 48:50would recommend is please don't use subm
  1525. 48:52modules.
  1526. 48:53>> Uh, when you use subm modules, subm
  1527. 48:54modules are horrible because they pin
  1528. 48:56the specific commits in every repro.
  1529. 48:58You're going to be a sad sad cookie.
  1530. 49:00Unless you're
  1531. 49:00>> sub trees are good though.
  1532. 49:02>> I know a lot of people who are who are
  1533. 49:03skilled with this stuff that do a lot of
  1534. 49:05work with get sub trees and I've
  1535. 49:06actually played with them and like I
  1536. 49:07think I think it's an option that makes
  1537. 49:09>> I haven't actually used sub trees. So,
  1538. 49:10I'd be I I'll have to go check it out
  1539. 49:12and see how they're different. How are
  1540. 49:13they different? Do you know off the top
  1541. 49:14of your head?
  1542. 49:15>> I I did the tutorial like a month or two
  1543. 49:18ago. I I I can't I I can't do it justice
  1544. 49:20today, but it's it's somewhere it's a
  1545. 49:22it's kind of like a sub a work tree and
  1546. 49:24a subm module had a baby.
  1547. 49:27>> I see. Okay. Yeah. Cuz the biggest
  1548. 49:29problem I have with subm modules, it's
  1549. 49:30just like you you have to like commit in
  1550. 49:32two places every time you update the
  1551. 49:34every time you update the module, the
  1552. 49:36subm module and their actual repo. And
  1553. 49:37it's just like not fun. Yeah, sub trees
  1554. 49:40have a little bit of that. But I think I
  1555. 49:42think also I've heard from people who do
  1556. 49:43a lot of this and like who especially I
  1557. 49:45think Mos Mike Hostetler was on an
  1558. 49:47episode like six months ago where he was
  1559. 49:49showing his like Ralph loop with git sub
  1560. 49:50trees set up to help people basically do
  1561. 49:52agent work across all their reps.
  1562. 49:54>> You want to pull up your thing really
  1563. 49:55fast? I have a couple other interesting
  1564. 49:56you scaladraw that you had. I had a
  1565. 49:58couple of things I was going to do.
  1566. 50:00>> People have got some other interesting
  1567. 50:01things of like uh where do you see the
  1568. 50:03software factory design pattern evolving
  1569. 50:06in the near in the near term. Honestly,
  1570. 50:08I think the biggest thing that's going
  1571. 50:09to happen is more people like actually
  1572. 50:12what's funny is I should actually just
  1573. 50:13paste our our workflow into here because
  1574. 50:15it's basically the same. It's like a
  1575. 50:17more micro version of a part of this
  1576. 50:19stack.
  1577. 50:20>> Yeah.
  1578. 50:20>> So, I'll put that in here really fast.
  1579. 50:22But like when I think about this,
  1580. 50:25when I think about the evolution, I'm
  1581. 50:26curious about your thoughts on this
  1582. 50:28evolution.
  1583. 50:29>> Yep.
  1584. 50:30>> Uh let me Sorry, I'm coming to the
  1585. 50:32Excala draw and I'll post it down here.
  1586. 50:33There you go. It's at the bottom part.
  1587. 50:36>> Nice.
  1588. 50:37Um when I when I go think about this
  1589. 50:42um
  1590. 50:44uh when I the way I see this evolving is
  1591. 50:47one it's going to become a lot more
  1592. 50:48frequent.
  1593. 50:49Like every company is likely going to
  1594. 50:51build some sort of internal agent that
  1595. 50:53does something like this. And like I
  1596. 50:54personally don't think the whole thing
  1597. 50:56is viable. Uh, and the reason I don't
  1598. 50:58think the whole stack is viable is
  1599. 51:00because every company has some weird
  1600. 51:03quirk about their um internal stuff.
  1601. 51:06That is how their setup works and
  1602. 51:08everything. So, it's like
  1603. 51:11you just can't know everything. Like for
  1604. 51:13us, like someone asked earlier, how do
  1605. 51:14you deal with issues with external
  1606. 51:16resources? Well, like
  1607. 51:17>> we're lucky we don't have that problem
  1608. 51:19or it's so rare for us. We don't have to
  1609. 51:20design around that system.
  1610. 51:22On the other hand,
  1611. 51:24>> this is
  1612. 51:24>> this is why I'm so obsessed with like
  1613. 51:27defining these building blocks. Yeah.
  1614. 51:29And like defining really good interfaces
  1615. 51:31between them. So like the interface here
  1616. 51:34is is an interesting one. Like ACP tries
  1617. 51:37to do this uh but ACP is kind of
  1618. 51:40>> on hit X on Riverside again please.
  1619. 51:43>> I can't see it full screen and I want to
  1620. 51:44see Dexter's diagramming and max
  1621. 51:46potential.
  1622. 51:47>> Yeah. So like between the control plane
  1623. 51:49and the harness you have something
  1624. 51:50called ACP as an option. It's quite
  1625. 51:52narrow. Um I think we need like a
  1626. 51:54thicker version like a wider version of
  1627. 51:56this interface
  1628. 51:57>> for a like coding harness to talk to a
  1629. 52:01UI or an editor or a web app. Basically
  1630. 52:04it's like a protocol for things to talk
  1631. 52:06along. You also have things like AGUI
  1632. 52:08which again is great for broadcasting
  1633. 52:10the UI and the events but actually like
  1634. 52:12the
  1635. 52:13>> the challenge I have is neither of these
  1636. 52:14support hooks which means like something
  1637. 52:16that is like job it is to life cycle a
  1638. 52:19harness and like its events and do
  1639. 52:21special things in response to like I
  1640. 52:23don't know in human layer we have a
  1641. 52:24bunch of hooks of like
  1642. 52:26>> yeah go ahead
  1643. 52:26>> do you know why though I think it's
  1644. 52:28because every single harness is
  1645. 52:30literally basically its own bespoke UI.
  1646. 52:33>> Yep. and like converting every like
  1647. 52:35claude code and codeex do not have the
  1648. 52:37same hooks and pi has totally different
  1649. 52:39hooks.
  1650. 52:40>> Open code has a plug-in system that's
  1651. 52:42like the hooks are like a completely
  1652. 52:44separate concept.
  1653. 52:45>> Yeah. And I think this is kind of where
  1654. 52:47it like all these things die which is
  1655. 52:49that it's not a
  1656. 52:51>> there's no standard for this there and
  1657. 52:53and rightfully so like every harness has
  1658. 52:56different trade-offs. Like clawed code
  1659. 52:58is much much more like you bring it and
  1660. 53:00it's good like it's guaranteed to be
  1661. 53:03good.
  1662. 53:04>> Yep.
  1663. 53:04>> Whereas like uh pi is more like you have
  1664. 53:07to configure every little thing and that
  1665. 53:09allows you to have
  1666. 53:11>> like it comes with control but you have
  1667. 53:13to you have to build more stuff or but
  1668. 53:16also you have to build more stuff.
  1669. 53:18>> Yeah. Exactly. Right. And I think that's
  1670. 53:20why like you can't really do this cuz
  1671. 53:22the abstraction layer in which you
  1672. 53:24represent everything there is just not
  1673. 53:27that good because it and and it by
  1674. 53:30design can't be that good at least in my
  1675. 53:32eyes uh not right now but also like you
  1676. 53:34know I used to think about web and then
  1677. 53:35I finally learned about react I was like
  1678. 53:36oh [ __ ] they actually did solve this
  1679. 53:38hard problem by inventing this concept
  1680. 53:40of state turns out state is all you need
  1681. 53:42and everything else kind of just
  1682. 53:43devolves from that in a really nice way
  1683. 53:46and like whether you like react or
  1684. 53:47angular doesn't really matter but like
  1685. 53:48web web systems generally are state
  1686. 53:50driven engines and that was a novel
  1687. 53:53concept.
  1688. 53:54>> So like you just got to think about
  1689. 53:55what's the boundary here to think about
  1690. 53:57and I don't know what it is and I think
  1691. 53:58that's why it feels like you guys I know
  1692. 54:00do a lot of work of wrapping every
  1693. 54:02single one of these harnesses and making
  1694. 54:03it good to plug into.
  1695. 54:06>> Yep.
  1696. 54:08Yes sir. So um I think that's most of
  1697. 54:12what I had. I mean are there more are
  1698. 54:13there more comments in the chat? I mean
  1699. 54:15like yeah the the interface between the
  1700. 54:16harness and the dev environment is
  1701. 54:17something like the Linux kernel and like
  1702. 54:19I don't know the dev environment the
  1703. 54:21infrastructure
  1704. 54:23>> infrastructure is mostly like how do you
  1705. 54:25go set it up it's like what APIs do you
  1706. 54:27have what control do you have how do you
  1707. 54:28go build this
  1708. 54:30>> there is something called compute SDK
  1709. 54:32that tries to be this which is basically
  1710. 54:35like one library for oh it's become a
  1711. 54:38they made decided to be a benchmark
  1712. 54:40instead of a instead of an SDK but it
  1713. 54:43used to be
  1714. 54:44>> like it doesn't really matter for that
  1715. 54:46layer. Like it's the same reason that
  1716. 54:47you don't like yes it's nice to be able
  1717. 54:49to abstract over like GCP and AWS but
  1718. 54:52thing is once you're a big enough
  1719. 54:53company you're basically either a GCP
  1720. 54:55shop or AWS up no one really needs
  1721. 54:58>> to swap stuff over that often and when
  1722. 55:00you do use
  1723. 55:01>> the AWS interface is already pretty
  1724. 55:03good.
  1725. 55:04>> Yeah, that's kind of what I mean. Like
  1726. 55:06if you're using Daytona then Daytona
  1727. 55:07interface is good. If you're using like
  1728. 55:09GCP, the GCP SDK is good and the GCP
  1729. 55:12CLIs.
  1730. 55:13>> So like all these things ship CLI. Go
  1731. 55:16ahead.
  1732. 55:16>> We used to have this rule of like at
  1733. 55:18Sprout, we said don't wrap interfaces
  1734. 55:20with other interfaces or don't wrap APIs
  1735. 55:22with other APIs. It was like okay cool.
  1736. 55:24like we have the official Twitter SDK
  1737. 55:26and then I'm going to make our version
  1738. 55:28of the Twitter client which just wraps
  1739. 55:30some of the methods that we need and all
  1740. 55:32the data is just passed through with a
  1741. 55:34little bit of like transformation and
  1742. 55:35it's way better to just like
  1743. 55:37>> just call the official SDK at every call
  1744. 55:40site. You don't need to like put an
  1745. 55:41abstraction in front of it if it all it
  1746. 55:43does is like actually create
  1747. 55:45>> like okay now I have to like do extra
  1748. 55:48work every time I want to add a new call
  1749. 55:50to a new endpoint on Twitter. That's
  1750. 55:52kind anyway that was my spiel about
  1751. 55:53where I think the interface stuff was
  1752. 55:55going. In terms of buy versus build,
  1753. 55:57where do you land? Obviously, I know
  1754. 55:59you're biased, but that's okay.
  1755. 56:00>> I mean, I think the idea is like I think
  1756. 56:03when you use a f fully verticalized
  1757. 56:06cloud agent, some of the challenges you
  1758. 56:08will hit is there's friction in defining
  1759. 56:10your dev environment. There's friction
  1760. 56:11in having limited like choices on
  1761. 56:13compute. I think what Devon and
  1762. 56:15Cognition are doing is really
  1763. 56:16interesting in terms of like letting you
  1764. 56:18run what they call like outposts or
  1765. 56:20workers where it's like okay you can run
  1766. 56:22the compute and the outpost will bring
  1767. 56:24the harness and the tooling into your
  1768. 56:28level of compute and you and the harness
  1769. 56:30can kind of co-own the dev environment.
  1770. 56:33Uh, and so like things like that I think
  1771. 56:35we're going to see more and more of and
  1772. 56:37like the the conversations we're having
  1773. 56:38with a lot of people and like trying to
  1774. 56:40figure out is like what are the right
  1775. 56:41interfaces and I think what a lot of
  1776. 56:43people are starting to realize one more
  1777. 56:46time or I can sure
  1778. 56:48>> most people are either like buy the
  1779. 56:50whole thing or build the whole thing and
  1780. 56:53I think the answer is like you should be
  1781. 56:55able to instead of having like it's like
  1782. 56:57it's like composition over inheritance
  1783. 56:59right it's like rather than having to be
  1784. 57:00like okay whatever layer I buy at I have
  1785. 57:03to buy everything below it. And so it's
  1786. 57:05like, oh, if I want orchestration and I
  1787. 57:07want to be able to ping agents from
  1788. 57:09Slack, I either have to build the whole
  1789. 57:11freaking thing or I have to buy the
  1790. 57:13whole freaking thing. And like the the
  1791. 57:15real answer is like you should have as
  1792. 57:16an engineer choice and the ability to
  1793. 57:18like work in open systems and plug these
  1794. 57:21things together.
  1795. 57:23>> Uh so like what's interesting for us is
  1796. 57:25like uh our a you're Devon is kind of at
  1797. 57:28these three layers, right?
  1798. 57:30>> Yeah.
  1799. 57:31>> And they do the infrastructure too. No,
  1800. 57:32they do the cloud sandboxes. Yeah, you
  1801. 57:33can move that.
  1802. 57:34>> Yes, but I think they kind of own they
  1803. 57:36don't want to own all of it. It's like
  1804. 57:37optional for them.
  1805. 57:39>> Uh I I think in most cases they they
  1806. 57:43want to own it. Uh just because it's a
  1807. 57:45better experience. Like it's easier if I
  1808. 57:46can just sign up and like send a Slack
  1809. 57:48message and see work start getting done
  1810. 57:50versus like the price.
  1811. 57:53>> Huh.
  1812. 57:54>> For enterprise customers, I think they
  1813. 57:55just run the whole thing on prem. Um but
  1814. 57:56yeah, enterprise customers. Yeah.
  1815. 57:58>> So enterprise wants to bring the compute
  1816. 57:59and probably bring parts of the dev
  1817. 58:01environment. Yep.
  1818. 58:02>> Yeah. Like for us, what's interesting is
  1819. 58:04like when we build our agent drives BAML
  1820. 58:06stack, what we're really building is
  1821. 58:07this this kind of we're building like up
  1822. 58:09here and we're kind of like we don't we
  1823. 58:11explicitly do not want to own this
  1824. 58:13layer. We don't want to own
  1825. 58:14>> because you want to use the harness that
  1826. 58:15everyone else is using
  1827. 58:16>> and like really
  1828. 58:19well I want to make it swappable cuz
  1829. 58:21yeah cuz the harness is going to change
  1830. 58:22like all the time. And really I don't
  1831. 58:23really want to own the compute sandbox.
  1832. 58:25I just do this because of like
  1833. 58:26convenience. Like whether we run on a
  1834. 58:28box or not, I don't really care.
  1835. 58:30>> But these are the parts that I I find
  1836. 58:31valuable. It sounds like
  1837. 58:33>> the layer that you're trying to help is
  1838. 58:34like, hey, you for human layer
  1839. 58:38>> uh human layer,
  1840. 58:40>> you just wanted to buy the
  1841. 58:42orchestration,
  1842. 58:43>> but you wanted to bring your own
  1843. 58:44harness.
  1844. 58:46>> Yeah.
  1845. 58:47>> This is kind of what you're trying to
  1846. 58:48help plug into.
  1847. 58:49>> Yeah. and Devon is there and like cloud
  1848. 58:52cloud automations like cloud background
  1849. 58:54stuff is like cool you can do like cloud
  1850. 58:56code as a building block
  1851. 58:59>> or you can bring the entire cloud code
  1852. 59:01st Oh oh that's not good or you can like
  1853. 59:04>> I got it
  1854. 59:04>> basically I got I got stop I don't want
  1855. 59:07that one you can have like basically
  1856. 59:10like clawed uh what do they call it like
  1857. 59:13automations or I think they call them
  1858. 59:15routines or something but it's like
  1859. 59:17basically like where they'll bring the
  1860. 59:19compute environment and stuff too.
  1861. 59:22>> Yeah. And I'm going to do one more thing
  1862. 59:24really fast. Um, put this up here. And
  1863. 59:27like I would say like there Claude has
  1864. 59:28cron jobs and stuff that you can do and
  1865. 59:30they're trying to like plug into this
  1866. 59:31part over here, right?
  1867. 59:33>> Yeah, exactly.
  1868. 59:34>> Craw where they're trying to be like
  1869. 59:36>> so you can if you want to be the full
  1870. 59:39Cloud stack and like uh I know Pearson
  1871. 59:40Marks does this the the Jelly Pod guy.
  1872. 59:43He was demoing this at the last thing.
  1873. 59:44like he uses the full cloud stack and
  1874. 59:46like he knows it's separable but he
  1875. 59:47likes cloud code as a harness. He thinks
  1876. 59:49the dev environments there are good
  1877. 59:51enough for him and the compute on demand
  1878. 59:52is great and he can schedule automations
  1879. 59:54on it and so he his you know composed
  1880. 59:57stack happens to be all in the cloud
  1881. 59:59ecosystem.
  1882. 1:00:00>> Exactly. [clears throat] Um I'm going to
  1883. 1:00:02go read some comments because we got a
  1884. 1:00:03bunch more really fast.
  1885. 1:00:05>> Some people are building both. They're
  1886. 1:00:06like fully multiplayer. It sounds like
  1887. 1:00:08there's a product there that's kind of
  1888. 1:00:09cool. if you can drop in the chat if
  1889. 1:00:11it's interesting. Uh given that we have
  1890. 1:00:13a choice that it stack would a lampstack
  1891. 1:00:14equivalent emerge I think so I actually
  1892. 1:00:17think we will get an equivalent to a
  1893. 1:00:18lamp stack here over time. Um
  1894. 1:00:20>> you mean nextJS
  1895. 1:00:22next.js superbase and uh work.
  1896. 1:00:25>> No no no no I actually I don't know
  1897. 1:00:27about that because that's not really
  1898. 1:00:29what this is about. This is like the
  1899. 1:00:31harness the dev environment the
  1900. 1:00:32infrastructure deployments like dev
  1901. 1:00:34environment is much more closer to
  1902. 1:00:35docker for me
  1903. 1:00:36>> like the infrastructure
  1904. 1:00:37>> application stack but the yeah
  1905. 1:00:40>> the yeah like for this like
  1906. 1:00:41>> software factory stack
  1907. 1:00:42>> software factory stack yeah exactly uh
  1908. 1:00:44ATB is like a thing that we call like
  1909. 1:00:46agent tries BAML which is like our own
  1910. 1:00:48software factory that we built to
  1911. 1:00:49automatically improve the BAML
  1912. 1:00:51programming language
  1913. 1:00:53and then yes these videos are recorded
  1914. 1:00:55if you want to check them out they're on
  1915. 1:00:56the YouTube channel I'll drop them off
  1916. 1:00:58in a bit
  1917. 1:00:59>> we post them on Twitter as well.
  1918. 1:01:00>> Yeah. And then is there an open-source
  1919. 1:01:03project for control plane orchestration?
  1920. 1:01:05I think the reason that there isn't an
  1921. 1:01:07open source project for control plane
  1922. 1:01:08orchestration right now
  1923. 1:01:11um is because like one like no one you
  1924. 1:01:15don't want to use someone else's control
  1925. 1:01:16plane because it's so easy to write code
  1926. 1:01:18now unless you actually get all the
  1927. 1:01:21integrations built with it. And right
  1928. 1:01:23now everyone is everyone that's doing
  1929. 1:01:25that to some degree wants to make a
  1930. 1:01:27product and they have some value to
  1931. 1:01:28serve. So like they want to sell it to
  1932. 1:01:30you and that's not an unreasonable
  1933. 1:01:31request. There's a lot of good design
  1934. 1:01:33and intuition that goes into it and like
  1935. 1:01:36>> there is um we met the open inspect guy
  1936. 1:01:39last last week but he's that's open
  1937. 1:01:42source but it's another full stack. His
  1938. 1:01:44his is like okay cool we bring I think
  1939. 1:01:46it's like basically like it does all of
  1940. 1:01:48this and you bring the compute to run it
  1941. 1:01:50on basically.
  1942. 1:01:51>> Yeah. Exactly. And like I that's what I
  1943. 1:01:53mean like there is stuff but it's so
  1944. 1:01:55easy to build now that I would just
  1945. 1:01:57build like for us for example like we
  1946. 1:01:59just decided the two layers of the stack
  1947. 1:02:00we care about and we just plug and play
  1948. 1:02:02and like you ask me like why would like
  1949. 1:02:04I actually have thought like should we
  1950. 1:02:06use human layer stuff for part of our
  1951. 1:02:07control plane and like the only reason
  1952. 1:02:09we don't is because like
  1953. 1:02:10>> they don't have an API surface that I
  1954. 1:02:12can't like plug into my slack into our
  1955. 1:02:13GitHub issues into our BAML CLI. So now
  1956. 1:02:16we have to build this whole layer around
  1957. 1:02:17this and I think the input control plane
  1958. 1:02:22Oh yeah, but the point is like we still
  1959. 1:02:24have to build an input control plane to
  1960. 1:02:26define what we consider an issue. Like
  1961. 1:02:28maybe we could use human layer for like
  1962. 1:02:29the good once an issue is good, but for
  1963. 1:02:32that untrustworthy feedback that we get
  1964. 1:02:34from a another user's agent.
  1965. 1:02:37>> Where do we run that? Like that's a and
  1966. 1:02:38this is the same reason that we don't
  1967. 1:02:40just use linear pure linear for this
  1968. 1:02:41anymore because like we have two
  1969. 1:02:44different versions of issues and when
  1970. 1:02:46you ask like is there an open source
  1971. 1:02:47project the problem is every company's
  1972. 1:02:49working style has different definitions.
  1973. 1:02:53Yeah, this is David Cross's thing of
  1974. 1:02:55like software should be extensible now
  1975. 1:02:57that agents can write code. Like why are
  1976. 1:02:59you going to make me plumb some like
  1977. 1:03:01wissy wig like integration manager of
  1978. 1:03:04like cool when a linear web hook comes
  1979. 1:03:05in transform it in this way and then do
  1980. 1:03:08a workflow. It's like just let me write
  1981. 1:03:09the code for that.
  1982. 1:03:10>> Yeah, exactly. And Matas is asking like
  1983. 1:03:13do I see an open source I do personally
  1984. 1:03:14see an open source solution happening
  1985. 1:03:16and like I suspect companies like you
  1986. 1:03:18will probably eventually support
  1987. 1:03:19something like this because like it's in
  1988. 1:03:20everyone's best interest to go do that
  1989. 1:03:22and if you have a good prod stack you
  1990. 1:03:24would build a good open lure solution
  1991. 1:03:26but I think it's really hard to upfront
  1992. 1:03:28build an open source solution like part
  1993. 1:03:29of what I really admire about the work
  1994. 1:03:31that Dra has done is that like they're
  1995. 1:03:33working with real companies and real
  1996. 1:03:35companies have real products and instead
  1997. 1:03:37of optimizing for one company what they
  1998. 1:03:39can do is they can take the learnings
  1999. 1:03:40across like 10, 20, 30, 40, 50, 100, a
  2000. 1:03:43thousand companies and build the best
  2001. 1:03:45interface that really serves across all
  2002. 1:03:47of these. And then you can imagine like
  2003. 1:03:50an open source thing being much more u
  2004. 1:03:54um able to being built like you can't
  2005. 1:03:57build React the first time the web was
  2006. 1:03:59invented. You [laughter] really have to
  2007. 1:04:00watch a lot of stuff happen right and
  2008. 1:04:04wrong before you see that happening.
  2009. 1:04:06>> Well, and I think step one is the
  2010. 1:04:08interface layer. like MCP did this
  2011. 1:04:10really interesting thing where it
  2012. 1:04:11created this really explosion of
  2013. 1:04:14ecosystems that let both like agent
  2014. 1:04:16client and agent harness builders and
  2015. 1:04:19integration builders like mix and match
  2016. 1:04:22with each other really easily. And I
  2017. 1:04:24think basically like there's a lot of
  2018. 1:04:26things that we're working on is like
  2019. 1:04:27less like what is the what does the
  2020. 1:04:29product look like at any one of these
  2021. 1:04:31layers and more like what are the open
  2022. 1:04:33interfaces that enable people to have
  2023. 1:04:36choice and be able to buy versus build
  2024. 1:04:39any part of this stack for the parts
  2025. 1:04:41they want control over without having to
  2026. 1:04:43uh
  2027. 1:04:44>> without having to uh to to go all in on
  2028. 1:04:47like let's say the cloud stack or the
  2029. 1:04:50the codec stack or the open inspect or
  2030. 1:04:52build the whole thing themselves.
  2031. 1:04:54And it still is to show like how nice do
  2032. 1:04:56Claude and Codex want to play with each
  2033. 1:04:58other.
  2034. 1:04:59>> Yeah.
  2035. 1:04:59>> Like if they don't want to play nice
  2036. 1:05:00with each other, they will keep breaking
  2037. 1:05:02APIs and open.
  2038. 1:05:04>> This is why Claude doesn't support
  2039. 1:05:05agents MD cuz they're like we want
  2040. 1:05:06Claude MD to be the Cloud thing and
  2041. 1:05:08everyone else can use the other file,
  2042. 1:05:10but we're special.
  2043. 1:05:12>> Yeah. And like they've just decided
  2044. 1:05:13that's the case and it's annoying,
  2045. 1:05:15>> but like we'll just have to kind of see.
  2046. 1:05:16And yeah, Eric has this great thing.
  2047. 1:05:18like the browser wars because the thing
  2048. 1:05:20is like in the past the companies
  2049. 1:05:22believe owning the browser was worth it
  2050. 1:05:23and it turns out like it was right. If
  2051. 1:05:25you own the browser you can make a lot
  2052. 1:05:26of money
  2053. 1:05:27>> by doing that. Um and owning mobile was
  2054. 1:05:30worth a lot of money. I think a lot of
  2055. 1:05:33people are betting that owning the
  2056. 1:05:34harness is going to be worth a lot of
  2057. 1:05:36money.
  2058. 1:05:37You want to see something one last thing
  2059. 1:05:39that's kind of interesting before uh we
  2060. 1:05:41close it out for the day.
  2061. 1:05:42>> You talked about a question from Eric
  2062. 1:05:44real quick and then yes which is is
  2063. 1:05:46human layer composable decomposible? So,
  2064. 1:05:48so human layer owns the uh orchestration
  2065. 1:05:50layer and it can also we have a harness
  2066. 1:05:53uh but it's swappable. You can use cloud
  2067. 1:05:54code, you can use our harness, you can
  2068. 1:05:56use codecs. Um we kind of have noped out
  2069. 1:05:59of the like we'll eventually have
  2070. 1:06:00managed cloud sandboxes and stuff but
  2071. 1:06:02our kind of take is like if you're
  2072. 1:06:03serious and like the customers that we
  2073. 1:06:05work with all of them would prefer a
  2074. 1:06:08good interface on top of compute and dev
  2075. 1:06:10environment that they own basically.
  2076. 1:06:12>> Yeah. Exactly. Yeah. It's just way
  2077. 1:06:14easier. like I don't want to deal with
  2078. 1:06:15setting it up on someone else's
  2079. 1:06:16infrastructure.
  2080. 1:06:17>> You got one more thing.
  2081. 1:06:18>> I I'll show you extendable software. I
  2082. 1:06:20was going to make this a whole podcast.
  2083. 1:06:21So if it's interesting, let us know and
  2084. 1:06:22we can make this a whole thing. Um I've
  2085. 1:06:25been playing around with this concept a
  2086. 1:06:26lot.
  2087. 1:06:27>> Um so when I think about extendable
  2088. 1:06:29software, I think the best way to extend
  2089. 1:06:31software is let agents write code.
  2090. 1:06:33>> It's called code mode. You've probably
  2091. 1:06:34seen it. So in this case, here's like a
  2092. 1:06:36string that an agent wrote. It does some
  2093. 1:06:38code. It does some stuff. And I'm
  2094. 1:06:40basically just going to start
  2095. 1:06:42mcking with this string in really
  2096. 1:06:44interesting ways. So I'm going to pass
  2097. 1:06:46in some code that I'm additional code
  2098. 1:06:48that I'm going to dynamically generate.
  2099. 1:06:49So like if I do like name two uppercase
  2100. 1:06:54just run this really fast
  2101. 1:06:57and I'll run uh dexter. So when I run
  2102. 1:07:00this I have compilation errors. U
  2103. 1:07:07let me just do one grap instead.
  2104. 1:07:12H we changed our API to be only reflect.
  2105. 1:07:15So I had to replace all these
  2106. 1:07:20when I run this code.
  2107. 1:07:23Oh, never mind. I got nothing good to
  2108. 1:07:25show. I apologize.
  2109. 1:07:26>> Uh this is broken for whatever reason.
  2110. 1:07:28Uh but anyway, we'll do an episode on
  2111. 1:07:31this
  2112. 1:07:31>> about how to run like dynamic code
  2113. 1:07:33generation, how to actually have your
  2114. 1:07:34app be extendable from a really extend
  2115. 1:07:36from a really interesting perspective.
  2116. 1:07:37We I just upgraded BAML version so I
  2117. 1:07:39can't show this yet I guess. uh I should
  2118. 1:07:41stop running local dev is what I've
  2119. 1:07:43really learned. But um I think
  2120. 1:07:45extendable code is definitely going to
  2121. 1:07:47be one of the most interesting features
  2122. 1:07:48out uh out ever because like like for
  2123. 1:07:51example you in human layer how great
  2124. 1:07:53would it be if people could define their
  2125. 1:07:54own columns and their own like you could
  2126. 1:07:57be like hey here's a small little code
  2127. 1:07:59workflow that I want to run
  2128. 1:08:01>> for doing this and like they can just go
  2129. 1:08:02say like oh here's an agent loop that I
  2130. 1:08:04want to add on because that's kind of
  2131. 1:08:05what cloud automations is effectively
  2132. 1:08:10but just done kind of shittily like a
  2133. 1:08:13cron job a chron Crown job is basically
  2134. 1:08:14like code that says while true at this
  2135. 1:08:17time run this piece of code. That's like
  2136. 1:08:19the ultimate crown job.
  2137. 1:08:21>> Yeah. In a scalable, you know, fault
  2138. 1:08:23tolerant way where like if the server
  2139. 1:08:25goes down at that time, it still runs a
  2140. 1:08:27minute later on another server.
  2141. 1:08:28>> Yeah. Yeah. So that's the hard part
  2142. 1:08:30about the execution. But the extendable
  2143. 1:08:32part is what I really want because if I
  2144. 1:08:34can only write the workflows that you
  2145. 1:08:35let me write,
  2146. 1:08:36>> I'm kind of sad. But if I can write the
  2147. 1:08:38workflows I can write on your stack and
  2148. 1:08:41I can buy the reliability from you, then
  2149. 1:08:43buying the reliability is totally worth
  2150. 1:08:45paying for,
  2151. 1:08:46>> right?
  2152. 1:08:47>> I mean, I think it comes into like this
  2153. 1:08:49idea. I mean, in in our own code bases,
  2154. 1:08:51I know many people have talked about
  2155. 1:08:53they have like viable zones and they
  2156. 1:08:56have no vibe zones, right? They have the
  2157. 1:08:58the functional core and then they have
  2158. 1:09:00an interface and things like pragmatic
  2159. 1:09:02code can sit on top of it. And there's
  2160. 1:09:04no reason not to basically create space
  2161. 1:09:07for users to deploy their cut like
  2162. 1:09:10instead of user files a bug and if it's
  2163. 1:09:12in the no slop zone our factory builds
  2164. 1:09:13it chips a feature goes in the next
  2165. 1:09:15release. It could literally be like in
  2166. 1:09:17real time it's just like cool these
  2167. 1:09:19parts of this have you know sandbox
  2168. 1:09:21execution adapters where your agent
  2169. 1:09:23writes code and that modifies your app
  2170. 1:09:25in real time. But getting the interfaces
  2171. 1:09:27right and figuring out okay what is the
  2172. 1:09:29core versus what is the code and what
  2173. 1:09:30are the interfaces that are available in
  2174. 1:09:33that code is is uh it's an interesting
  2175. 1:09:35space that yeah I think I think we've
  2176. 1:09:37both been exploring a little bit uh and
  2177. 1:09:38excited to I don't know I I don't have
  2178. 1:09:40any like cool like demos of that yet but
  2179. 1:09:42I think Ree from Exeutor actually built
  2180. 1:09:44something like this where like the way
  2181. 1:09:45you customize and configure exeutor is
  2182. 1:09:47just by dropping TypeScript files in
  2183. 1:09:49your directory. Yeah. I I think there's
  2184. 1:09:51like no other way around this is like
  2185. 1:09:52long term what you want to do is you
  2186. 1:09:54just want to be like here's my code and
  2187. 1:09:56every piece of software effectively
  2188. 1:09:58turns into like a harness.
  2189. 1:10:00>> Yeah.
  2190. 1:10:01>> And open code like the whole point of
  2191. 1:10:03those things is like hey you want to
  2192. 1:10:04customize the behavior. Cool. Have your
  2193. 1:10:06have your agent write code and it live
  2194. 1:10:08reloads into the agent and now you have
  2195. 1:10:09new extensions.
  2196. 1:10:11>> Yeah. Exactly. Because like nothing else
  2197. 1:10:12I think is like that's like the most
  2198. 1:10:15interesting stuff in my in my eyes about
  2199. 1:10:17like how people build apps. It's like
  2200. 1:10:19the like React built like the uh
  2201. 1:10:21interactive web and I think we're about
  2202. 1:10:23to have like just like extendable
  2203. 1:10:24software as like a common place like VS
  2204. 1:10:27Code amazing because you can add
  2205. 1:10:28extensions. Tails Tailwind comes out you
  2206. 1:10:31can have it work in VS Code without VS
  2207. 1:10:33Code updating
  2208. 1:10:34>> and that's like magic.
  2209. 1:10:36>> Um cool we're way over time.
  2210. 1:10:38>> Oh [ __ ] we are. It was a really fun
  2211. 1:10:40conversation today. I love today's
  2212. 1:10:41conversation. It's been so long since
  2213. 1:10:42we've had one of these. Yeah, had a good
  2214. 1:10:44time.

About this transcript

This page contains the full transcript of How to Build a Software Factory for AI Coding Agents by Boundary, generated from the public captions YouTube serves with the video. The transcript has 15,403 words across 2,214 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 translate the transcript into 100+ languages.

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, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.