YouTube2Text

How I go FAST with AI - 14 tips — Transcript

by Convex · 3,231 words · 496 segments · language en · Watch on YouTube

Full transcript

  1. 0:00It's such an exciting time to be a
  2. 0:01developer right now. There's so much
  3. 0:03learning and experimentation going on as
  4. 0:05everybody grapples with these new
  5. 0:06superpowers that we've been given in the
  6. 0:08form of agentic coding. How do we best
  7. 0:10harness these incredibly smart, but also
  8. 0:13sometimes incredibly dumb machines to do
  9. 0:15our bidding?
  10. 0:16Well, probably like all of you guys,
  11. 0:18I've been trying to work this out
  12. 0:19myself, and I'm still discovering new
  13. 0:21techniques, but there are a few things
  14. 0:23that have stuck with me now across a
  15. 0:24number of different projects that I
  16. 0:26think are worth sharing with you guys.
  17. 0:28So, that's what we're going to look at
  18. 0:29in this video, 14 tips for getting the
  19. 0:32most out of agentic development. Things
  20. 0:34that I personally have learned over the
  21. 0:36past 6 months and use just about every
  22. 0:39single day.
  23. 0:40Now, although this is a Convex channel,
  24. 0:42a lot of these tips I'm going to be
  25. 0:43giving here are not Convex specific at
  26. 0:45all, so do stick around because they
  27. 0:47will still be valid for you.
  28. 0:49There's some real gold in here, so stick
  29. 0:50around to the end as I'm really keen to
  30. 0:52hear what you guys think and also hear
  31. 0:54what your tips are because I'm still
  32. 0:56learning, too.
  33. 0:57But, as this is sure to be quite a long
  34. 0:59one, make sure you grab yourself a
  35. 1:00lovely cup of tea, drop me a like and
  36. 1:02sub, and let's get into it.
  37. 1:07Before AI, we used to spend a lot of
  38. 1:09time in the planning and preparation
  39. 1:11stage of a project. And we did this
  40. 1:12because the cost of implementation was
  41. 1:14just so high.
  42. 1:16Developers' time was and is expensive,
  43. 1:19so having them sit there and code
  44. 1:20something that in all likelihood will
  45. 1:22get thrown away was seen as wasteful and
  46. 1:25counterproductive.
  47. 1:26Well, you can probably see where I'm
  48. 1:28going here with this because everything
  49. 1:29has changed with AI.
  50. 1:31The cost of implementing something is so
  51. 1:33low now that I have to continually
  52. 1:35resist the urge to perfect my planning.
  53. 1:38That's not to say that planning isn't
  54. 1:39useful for some tasks, so but most
  55. 1:41things I would rather just have my agent
  56. 1:43just knock it out quickly, let me have
  57. 1:46it give it a go, and then see whether it
  58. 1:47works or not, and then if it doesn't
  59. 1:49work, just throw it away.
  60. 1:51And if I'm unsure about the change,
  61. 1:53whether it's going to work or not,
  62. 1:54sometimes I might just push it out live
  63. 1:56and just see how it goes.
  64. 1:58And if it doesn't work, I might just do
  65. 2:00another push or update to fix it or
  66. 2:02change it.
  67. 2:03So, in my opinion, in general, if the
  68. 2:04cost of reversing a change is low, then
  69. 2:08just go for it. You can always just undo
  70. 2:10it later.
  71. 2:13A really cool thing that I've been doing
  72. 2:14lately is strongly encouraging my agents
  73. 2:17to add a before and after screenshot to
  74. 2:20pull request changes that involve front
  75. 2:22end or UI in some way.
  76. 2:24This serves a few purposes. Firstly, it
  77. 2:27acts as a sort of end-to-end test. By
  78. 2:29forcing the AI to generate screenshots,
  79. 2:31it forces the agents actually run your
  80. 2:33application, and make sure that the
  81. 2:35project still works, and the changes
  82. 2:37look like what is expected.
  83. 2:39Secondly, it lets me actually do a quick
  84. 2:41smoke test to make sure that the changes
  85. 2:43actually look how like I expect them to
  86. 2:45look like, because sometimes I'm running
  87. 2:48eight agents in parallel, and I can kind
  88. 2:49of lose track of which ones I've
  89. 2:51actually checked and verified or not.
  90. 2:54It might seem a bit wasteful, but I
  91. 2:55actually sometimes just iterate using
  92. 2:58that screenshot in the PR. I just ask it
  93. 3:00for changes to come back, and then it'll
  94. 3:01regenerate new screenshot, and then I'll
  95. 3:03have more changes, then it'll generate
  96. 3:04new screenshot.
  97. 3:06Oh, and finally, when working in a team,
  98. 3:08a quick screenshot is really powerful to
  99. 3:10let your teammates know and and see the
  100. 3:12the results without having to run the
  101. 3:14code themselves, which saves a bunch of
  102. 3:16time and energy for for them.
  103. 3:21Okay, this is a Comet specific tip, um
  104. 3:23but basically, if you're going to read
  105. 3:25any of the changes that your agent poops
  106. 3:27out, make it the schema changes.
  107. 3:30This is for two big reasons.
  108. 3:32Firstly, my current attitude with AI, as
  109. 3:35I mentioned before, is that I'm just
  110. 3:37much more willing to accept what it
  111. 3:38gives me without reading it properly if
  112. 3:40the cost to reverse it is low.
  113. 3:43But once data enters your tables in a
  114. 3:46specific shape, it's much harder to
  115. 3:49reverse that particular change, because
  116. 3:52if you change the shape later,
  117. 3:54um then it's going to break that
  118. 3:55existing uh contract. To update that
  119. 3:58schema later is generally going to
  120. 4:00involve a three-part migration, which I
  121. 4:02recently covered in depth in this video.
  122. 4:05So, because migrations are
  123. 4:06time-consuming,
  124. 4:08uh depending on the number of rows that
  125. 4:09you have in your table, then I consider
  126. 4:11this as a high cost to reverse.
  127. 4:14Because Cortex is such a nice type
  128. 4:15system, you get strong types that kind
  129. 4:18of flow out from your schema into your
  130. 4:20functions, and then finally down to your
  131. 4:22front end. So, I found that one of the
  132. 4:24biggest places I can leverage my fleshy
  133. 4:26meatbag brain is by thinking about the
  134. 4:29schema as much of the rest of the
  135. 4:31application structure tends to just kind
  136. 4:33of flow and follow on from that. Oh, and
  137. 4:35one quick last little tip here while I'm
  138. 4:37talking about schema, I've actually
  139. 4:39found it really beneficial to enforce
  140. 4:41this humans must approve schema changes
  141. 4:43rule by adding it to the agents.md file.
  142. 4:47By doing this, it forces the agent to
  143. 4:49pause before it
  144. 4:52commits any
  145. 4:53code that's going to require a schema
  146. 4:55change.
  147. 4:58One way to get the most out of AI is to
  148. 5:00treat it as a collaborator, rather than
  149. 5:02just a code implementer.
  150. 5:05Have it interview you when you're trying
  151. 5:07to explore the problem space.
  152. 5:09This forces you to consider things that
  153. 5:10you might not have considered before,
  154. 5:12and gives the LLM additional context
  155. 5:14behind the intention of your prompts,
  156. 5:16not just the literal request. This
  157. 5:18technique has become really popular
  158. 5:19lately thanks to the excellent work of
  159. 5:21Matt Pocock's Grill Me and Grill Me With
  160. 5:24Doc Skills.
  161. 5:25If you haven't tried them yet, I
  162. 5:26recommend you give them a go. They're
  163. 5:28short, but super powerful, and really
  164. 5:30open my eyes to the power of this
  165. 5:32interviewing technique.
  166. 5:33If you don't want to install a skill, or
  167. 5:35you can't due to the environment that
  168. 5:36the agent is running in, then you can
  169. 5:38just simply ask the AI to interview you,
  170. 5:41which I found tends to work really well
  171. 5:43as well.
  172. 5:44And finally, this technique is really
  173. 5:46great for non-coders who might just be
  174. 5:48starting to explore the AI properly. We
  175. 5:51probably all have a few of those in our
  176. 5:52lives, but just encourage them to have
  177. 5:55their AI interview them. Uh I think that
  178. 5:57they'll be quite a surprise by what is
  179. 6:00possible.
  180. 6:04If you're using AI to build Convex apps,
  181. 6:06discriminated unions are one of the best
  182. 6:08ways to encourage your agent to create
  183. 6:09reliable, maintainable code.
  184. 6:12Let's say we have this jobs table. It
  185. 6:13can have a few different status values.
  186. 6:16But now we want to go ahead and add some
  187. 6:18more data that can be set when the value
  188. 6:20is one of those statuses.
  189. 6:22By the way, this is what we used to do
  190. 6:23in SQL land all the time with nullable
  191. 6:26columns. With SQL, though, the issue is
  192. 6:28that this is not really clear what data
  193. 6:31should be set in each of the status
  194. 6:32types, if the data should be cleared
  195. 6:34when the status changes, etc.
  196. 6:37And if you're confused when you look at
  197. 6:38it, then there's a good chance that the
  198. 6:39AI is going to be confused as well.
  199. 6:41Now, a better way to do this would be to
  200. 6:43represent your job as a discriminated
  201. 6:44union of states like so.
  202. 6:47Now, the entire table is one big state
  203. 6:49machine, where each job can be in one of
  204. 6:51each of these states.
  205. 6:53And the nice thing about modeling your
  206. 6:55data like a discriminated union state
  207. 6:57machine is that you can do type
  208. 6:59narrowing in TypeScript to only get the
  209. 7:01fields that exist in that state.
  210. 7:03And as extra bonus points, we can use
  211. 7:05exhaustive type narrowing to make the
  212. 7:08TypeScript compiler yell at us if we
  213. 7:09miss out a value.
  214. 7:11This is much more clear for you and your
  215. 7:13agents, and as it can see exactly what
  216. 7:15the valid states are and what fields
  217. 7:17should or should not exist at each
  218. 7:19point.
  219. 7:22When working on a
  220. 7:24particular task with an agent, it's
  221. 7:25important not to distract it with
  222. 7:27something that might not be relevant to
  223. 7:29the current goal.
  224. 7:30Things like refactoring code or fixing a
  225. 7:32bug you spotted or tweaking the UI,
  226. 7:35these are all things that can cause your
  227. 7:36current agent thread to use up its
  228. 7:37valuable context and lose track of what
  229. 7:40it was actually doing.
  230. 7:41To prevent this, instead have your agent
  231. 7:43briefly record this new work in a GitHub
  232. 7:46issue to do later.
  233. 7:48I call these side quests, and I even
  234. 7:50formalize them in the agents.md, and I
  235. 7:53find it super useful when working on AI
  236. 7:55with in long-running projects.
  237. 7:57When you pair this with the post-merge
  238. 7:59reflection tip, which I will talk about
  239. 8:01in a minute, I I find that the agent's
  240. 8:03often creating its own side quests to
  241. 8:06improve itself as the project goes
  242. 8:08along.
  243. 8:12This is another technique I've been
  244. 8:13using quite a lot lately, and I haven't
  245. 8:15seen talked about too much. It turns out
  246. 8:17that the image models that we have
  247. 8:19access to in CodeX and Nano Banana and
  248. 8:20others are really great not just for
  249. 8:23working out what you might look like if
  250. 8:25you stacked six cats on your head,
  251. 8:27but they're also great for designing
  252. 8:29your UI.
  253. 8:30I personally like to use CodeX for this
  254. 8:32because the image tool is included with
  255. 8:34the generous subscription tier, which is
  256. 8:35important because I could be generating
  257. 8:37a lot of images here.
  258. 8:39But just give this a go in one of your
  259. 8:40projects. Say, "Use the ImageGen tool to
  260. 8:43come up with some ideas for how this app
  261. 8:45can be redesigned. Try five different
  262. 8:47styles. Show me how it look on mobile,
  263. 8:49tablet, and desktop sizes in portrait."
  264. 8:52It works really well, and you can end up
  265. 8:53with some really incredible-looking
  266. 8:54designs.
  267. 8:55I find it really interesting that the
  268. 8:57image models are really good at design
  269. 8:59compared to the LLMs.
  270. 9:01Maybe it's because the actual hard bit I
  271. 9:03found is that once you have a design,
  272. 9:05actually then getting the agent to turn
  273. 9:07that design into reality is the tricky
  274. 9:10part.
  275. 9:11So, this is something that I'm still
  276. 9:13kind of a bit of a work in progress
  277. 9:14with,
  278. 9:15and it takes a little bit of a back and
  279. 9:16forth to get this right. Maybe something
  280. 9:19like the slash goal style loop here to
  281. 9:21have it to continue take screenshots and
  282. 9:23iterate until it gets close might help.
  283. 9:25Maybe you guys can let me know down
  284. 9:27below whether you have found really good
  285. 9:29techniques for turning a screenshot into
  286. 9:31an actual design.
  287. 9:34As they say, two heads are better than
  288. 9:36one, and one technique I found myself
  289. 9:38doing a lot lately is if I'm not 100%
  290. 9:42confident in my agent's plan, be it
  291. 9:45Codex or Claude, then I might ask it to
  292. 9:48talk to another agent to confer with it
  293. 9:51and see what it thinks.
  294. 9:53So, for example, if I'm using
  295. 9:54GPT-5.6-Soul
  296. 9:55and it comes up with a plan, but I'm not
  297. 9:57sure about it, then I might just say,
  298. 9:59"Please use the Claude CLI, use the
  299. 10:01available model to double-check this
  300. 10:02plan."
  301. 10:03And vice versa, if I'm using Claude, I
  302. 10:04might say, "Please use [music] the Codex
  303. 10:06CLI, use GPT-5.6-Soul-X-High
  304. 10:09to do to double-check this plan."
  305. 10:12I tend to find that this results in some
  306. 10:13new things being caught or new
  307. 10:15perspectives on the problem, and gives
  308. 10:17me just a little bit of extra confidence
  309. 10:19that what we're going to be doing next
  310. 10:21is the right thing to be doing.
  311. 10:26I used to hate being forced to comply
  312. 10:27with strict linting rules and
  313. 10:29requirements in somebody else's code
  314. 10:31base.
  315. 10:32I always felt like it it just kind of
  316. 10:34slowed me down and forced me into a into
  317. 10:36a way of coding that just wasn't mine.
  318. 10:38Well, now that AI's writing all the
  319. 10:40code, I love linting. In fact, I love
  320. 10:43all kinds of static code analysis these
  321. 10:45days, be it type checking, linting, code
  322. 10:47base coverage, etc.
  323. 10:49The more of these deterministic tools
  324. 10:51and processes I can apply to my code
  325. 10:52base, and the more obnoxious I can be
  326. 10:54with that, the more confidence that I
  327. 10:56have that what the AI is writing is
  328. 10:59going to be good to go and not result in
  329. 11:01a big ball of unmaintainable spaghetti.
  330. 11:04On a long-term personal projects I'm
  331. 11:05working on, I have a TypeScript ESLint
  332. 11:08Prettier follow, not to mention all the
  333. 11:10unit test, integration test, end-to-end
  334. 11:12test, behavior tests I also run.
  335. 11:14For linting, as well, be it ESLint Biome
  336. 11:16or something else, don't be afraid to
  337. 11:18have your agent create new linting rules
  338. 11:20to statically enforce whatever rules you
  339. 11:22want to see encoded in your project
  340. 11:24structure.
  341. 11:25I used to find writing linting plugins a
  342. 11:28bit of a headache and too much effort to
  343. 11:29go to, so I never really did it, but now
  344. 11:31that we've got agents that can just kick
  345. 11:33it out very quickly, you might as well.
  346. 11:35And follow, by the way, is a really cool
  347. 11:37Rust-based static analysis tool that
  348. 11:40comes preloaded with a whole heap of
  349. 11:42best practice code quality rules out of
  350. 11:44the box.
  351. 11:45And finally, I have my agent apply a
  352. 11:47number of these pre these checks as
  353. 11:50pre-commit hooks using Husky.
  354. 11:55This is a Convex specific tip, but make
  355. 11:57sure you use the Convex plugins for
  356. 11:59Codex and Clojure code if you're going
  357. 12:00to be doing any sort of serious Convex
  358. 12:02work.
  359. 12:03We've been putting a lot of work into
  360. 12:04them lately, and we think that the the
  361. 12:06Codex and the Clojure code are going to
  362. 12:07be increasingly become like the entry
  363. 12:09point for folks when working on Convex
  364. 12:11projects.
  365. 12:12The plugin format is iterating rapidly
  366. 12:14inside these tools, but the Clojure code
  367. 12:17plugin is got some really nice
  368. 12:18functionality that allows you to listen
  369. 12:21for runtime or OCC errors in the
  370. 12:23background, and then it automatically
  371. 12:25informs agent for ways that it can fix
  372. 12:27or make improvements.
  373. 12:29So, make sure you get them installed.
  374. 12:33Code review bots have become a bigger
  375. 12:35and bigger part of my coding loop as I
  376. 12:36rely on them more and more to catch
  377. 12:38things that agents miss while
  378. 12:39implementing.
  379. 12:41I have a couple of them just follow me
  380. 12:42around on various projects, and it
  381. 12:44seems like they do catch different
  382. 12:45things, so more bots equals betterer for
  383. 12:49now.
  384. 12:50By the way, I did do a couple of videos
  385. 12:51on comparing code review bots on Convex
  386. 12:53code a few months back if you're
  387. 12:55interested in seeing how the various
  388. 12:57bots stack up.
  389. 13:00Storybook is for some reason a
  390. 13:01controversial tool with developers. I
  391. 13:04have no idea why, because I personally
  392. 13:05love it, and I've used extensively on
  393. 13:07many different projects
  394. 13:08before and after AI.
  395. 13:11It allows you to experiment with lots of
  396. 13:12different ideas in isolation from your
  397. 13:14main app.
  398. 13:16And when you pair it with a
  399. 13:16discriminated union-based schema that I
  400. 13:18talked about earlier, it can be a super
  401. 13:20powerful way to explore, design, and
  402. 13:22debug the various states that your front
  403. 13:24end can be in.
  404. 13:26Maybe people used to object to it
  405. 13:27because of the extra verbosity and
  406. 13:30overhead of having to structure your
  407. 13:31components in a way that's compatible
  408. 13:33with Storybook.
  409. 13:34I don't know, but in the age of AI, it's
  410. 13:36super fast to create stories and
  411. 13:39structure your code in a way that's
  412. 13:40compatible. So, I always pull it into my
  413. 13:42projects that has any be any sizable UI
  414. 13:45now.
  415. 13:48A big part of any project, be it
  416. 13:50human-centric or AI-centric, is a
  417. 13:52process of actually improving the
  418. 13:54process itself.
  419. 13:56That's why I like to to improve try to
  420. 13:58improve the process by having a
  421. 13:59post-merge reflection pass.
  422. 14:02I make the agent write on the PR and in
  423. 14:04the thread whether there's anything that
  424. 14:06could be improved with the process
  425. 14:07itself. Like, is there any missing
  426. 14:09tests, any remaining work that should be
  427. 14:11followed up, any docs or tooling needed?
  428. 14:14Then periodically, I have an agent go
  429. 14:15through all of these reflections and
  430. 14:17propose a series of changes so that
  431. 14:20future development and PRs go more
  432. 14:21smoothly.
  433. 14:22And this sort of like closing the loop
  434. 14:24with something I remember doing when we
  435. 14:26used to work in an an Agile environment.
  436. 14:28>> [music]
  437. 14:28>> You know, we would always dedicate some
  438. 14:30time at the end of a sprint to reflect
  439. 14:31upon the sprint process itself and see
  440. 14:33if there's anything we could improve on.
  441. 14:35Not sure if there's something that Agile
  442. 14:36practitioners still do or not, but I
  443. 14:38feel like in the age of identical
  444. 14:40coding, like I feel more like a project
  445. 14:42manager than a coder and and thus I
  446. 14:44think it's reasonable to introduce a a
  447. 14:46few of these techniques that I used to
  448. 14:47use when I was working on teams
  449. 14:49previously.
  450. 14:52This is a bonus tip as I haven't
  451. 14:54actually tried these ones out myself,
  452. 14:56but a colleague mentioned that if you
  453. 14:57are looking for bugs in code, it's
  454. 14:59actually better to start off with the
  455. 15:01position of pessimism than an optimism
  456. 15:04one.
  457. 15:04For example, rather than saying, "Please
  458. 15:06look through this code for bugs."
  459. 15:08Instead say, "There are some bugs in the
  460. 15:10code. Please find them."
  461. 15:12So, I'm being more pessimistic by
  462. 15:14telling it there are bugs in the code
  463. 15:16even though I'm not really sure. And
  464. 15:17apparently, this results in finding many
  465. 15:19more issues than the optimistic route.
  466. 15:22Apparently as well, you can find more
  467. 15:24issues if you tell that your agent that
  468. 15:26another agent, not it, wrote the code.
  469. 15:29For example, if Fable is reviewing a
  470. 15:31code, uh tell it that GPT wrote it, and
  471. 15:34often it will find more issues that way.
  472. 15:37Again, I haven't tried this a lot myself
  473. 15:39yet, but it's really interesting hack,
  474. 15:41and I will definitely be trying it out
  475. 15:42more in the future.
  476. 15:46Well, that's about it for now. I think
  477. 15:48I've covered some of the most important
  478. 15:50key learnings I've discovered so far
  479. 15:52while working with AI.
  480. 15:53I will no doubt have many, many more
  481. 15:55over the months and years to go on, so
  482. 15:57expect more videos like this in the
  483. 15:58future.
  484. 15:59And if you did like this one, make sure
  485. 16:01you do drop me a like and sub, uh so not
  486. 16:03to miss out on the next one.
  487. 16:05And by the way, if you have tips
  488. 16:07yourself, then please do share them in
  489. 16:08the comments down below. I'm always
  490. 16:10looking on ways to improve my own
  491. 16:12process, and keen to hear about your
  492. 16:15techniques.
  493. 16:16But, I think I'll just leave it here for
  494. 16:17now.
  495. 16:18Thanks for watching. Until next time.
  496. 16:21Cheerio.

About this transcript

This page contains the full transcript of How I go FAST with AI - 14 tips by Convex, generated from the public captions YouTube serves with the video. The transcript has 3,231 words across 496 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.