How I go FAST with AI - 14 tips — Transcript
Full transcript
- 0:00It's such an exciting time to be a
- 0:01developer right now. There's so much
- 0:03learning and experimentation going on as
- 0:05everybody grapples with these new
- 0:06superpowers that we've been given in the
- 0:08form of agentic coding. How do we best
- 0:10harness these incredibly smart, but also
- 0:13sometimes incredibly dumb machines to do
- 0:15our bidding?
- 0:16Well, probably like all of you guys,
- 0:18I've been trying to work this out
- 0:19myself, and I'm still discovering new
- 0:21techniques, but there are a few things
- 0:23that have stuck with me now across a
- 0:24number of different projects that I
- 0:26think are worth sharing with you guys.
- 0:28So, that's what we're going to look at
- 0:29in this video, 14 tips for getting the
- 0:32most out of agentic development. Things
- 0:34that I personally have learned over the
- 0:36past 6 months and use just about every
- 0:39single day.
- 0:40Now, although this is a Convex channel,
- 0:42a lot of these tips I'm going to be
- 0:43giving here are not Convex specific at
- 0:45all, so do stick around because they
- 0:47will still be valid for you.
- 0:49There's some real gold in here, so stick
- 0:50around to the end as I'm really keen to
- 0:52hear what you guys think and also hear
- 0:54what your tips are because I'm still
- 0:56learning, too.
- 0:57But, as this is sure to be quite a long
- 0:59one, make sure you grab yourself a
- 1:00lovely cup of tea, drop me a like and
- 1:02sub, and let's get into it.
- 1:07Before AI, we used to spend a lot of
- 1:09time in the planning and preparation
- 1:11stage of a project. And we did this
- 1:12because the cost of implementation was
- 1:14just so high.
- 1:16Developers' time was and is expensive,
- 1:19so having them sit there and code
- 1:20something that in all likelihood will
- 1:22get thrown away was seen as wasteful and
- 1:25counterproductive.
- 1:26Well, you can probably see where I'm
- 1:28going here with this because everything
- 1:29has changed with AI.
- 1:31The cost of implementing something is so
- 1:33low now that I have to continually
- 1:35resist the urge to perfect my planning.
- 1:38That's not to say that planning isn't
- 1:39useful for some tasks, so but most
- 1:41things I would rather just have my agent
- 1:43just knock it out quickly, let me have
- 1:46it give it a go, and then see whether it
- 1:47works or not, and then if it doesn't
- 1:49work, just throw it away.
- 1:51And if I'm unsure about the change,
- 1:53whether it's going to work or not,
- 1:54sometimes I might just push it out live
- 1:56and just see how it goes.
- 1:58And if it doesn't work, I might just do
- 2:00another push or update to fix it or
- 2:02change it.
- 2:03So, in my opinion, in general, if the
- 2:04cost of reversing a change is low, then
- 2:08just go for it. You can always just undo
- 2:10it later.
- 2:13A really cool thing that I've been doing
- 2:14lately is strongly encouraging my agents
- 2:17to add a before and after screenshot to
- 2:20pull request changes that involve front
- 2:22end or UI in some way.
- 2:24This serves a few purposes. Firstly, it
- 2:27acts as a sort of end-to-end test. By
- 2:29forcing the AI to generate screenshots,
- 2:31it forces the agents actually run your
- 2:33application, and make sure that the
- 2:35project still works, and the changes
- 2:37look like what is expected.
- 2:39Secondly, it lets me actually do a quick
- 2:41smoke test to make sure that the changes
- 2:43actually look how like I expect them to
- 2:45look like, because sometimes I'm running
- 2:48eight agents in parallel, and I can kind
- 2:49of lose track of which ones I've
- 2:51actually checked and verified or not.
- 2:54It might seem a bit wasteful, but I
- 2:55actually sometimes just iterate using
- 2:58that screenshot in the PR. I just ask it
- 3:00for changes to come back, and then it'll
- 3:01regenerate new screenshot, and then I'll
- 3:03have more changes, then it'll generate
- 3:04new screenshot.
- 3:06Oh, and finally, when working in a team,
- 3:08a quick screenshot is really powerful to
- 3:10let your teammates know and and see the
- 3:12the results without having to run the
- 3:14code themselves, which saves a bunch of
- 3:16time and energy for for them.
- 3:21Okay, this is a Comet specific tip, um
- 3:23but basically, if you're going to read
- 3:25any of the changes that your agent poops
- 3:27out, make it the schema changes.
- 3:30This is for two big reasons.
- 3:32Firstly, my current attitude with AI, as
- 3:35I mentioned before, is that I'm just
- 3:37much more willing to accept what it
- 3:38gives me without reading it properly if
- 3:40the cost to reverse it is low.
- 3:43But once data enters your tables in a
- 3:46specific shape, it's much harder to
- 3:49reverse that particular change, because
- 3:52if you change the shape later,
- 3:54um then it's going to break that
- 3:55existing uh contract. To update that
- 3:58schema later is generally going to
- 4:00involve a three-part migration, which I
- 4:02recently covered in depth in this video.
- 4:05So, because migrations are
- 4:06time-consuming,
- 4:08uh depending on the number of rows that
- 4:09you have in your table, then I consider
- 4:11this as a high cost to reverse.
- 4:14Because Cortex is such a nice type
- 4:15system, you get strong types that kind
- 4:18of flow out from your schema into your
- 4:20functions, and then finally down to your
- 4:22front end. So, I found that one of the
- 4:24biggest places I can leverage my fleshy
- 4:26meatbag brain is by thinking about the
- 4:29schema as much of the rest of the
- 4:31application structure tends to just kind
- 4:33of flow and follow on from that. Oh, and
- 4:35one quick last little tip here while I'm
- 4:37talking about schema, I've actually
- 4:39found it really beneficial to enforce
- 4:41this humans must approve schema changes
- 4:43rule by adding it to the agents.md file.
- 4:47By doing this, it forces the agent to
- 4:49pause before it
- 4:52commits any
- 4:53code that's going to require a schema
- 4:55change.
- 4:58One way to get the most out of AI is to
- 5:00treat it as a collaborator, rather than
- 5:02just a code implementer.
- 5:05Have it interview you when you're trying
- 5:07to explore the problem space.
- 5:09This forces you to consider things that
- 5:10you might not have considered before,
- 5:12and gives the LLM additional context
- 5:14behind the intention of your prompts,
- 5:16not just the literal request. This
- 5:18technique has become really popular
- 5:19lately thanks to the excellent work of
- 5:21Matt Pocock's Grill Me and Grill Me With
- 5:24Doc Skills.
- 5:25If you haven't tried them yet, I
- 5:26recommend you give them a go. They're
- 5:28short, but super powerful, and really
- 5:30open my eyes to the power of this
- 5:32interviewing technique.
- 5:33If you don't want to install a skill, or
- 5:35you can't due to the environment that
- 5:36the agent is running in, then you can
- 5:38just simply ask the AI to interview you,
- 5:41which I found tends to work really well
- 5:43as well.
- 5:44And finally, this technique is really
- 5:46great for non-coders who might just be
- 5:48starting to explore the AI properly. We
- 5:51probably all have a few of those in our
- 5:52lives, but just encourage them to have
- 5:55their AI interview them. Uh I think that
- 5:57they'll be quite a surprise by what is
- 6:00possible.
- 6:04If you're using AI to build Convex apps,
- 6:06discriminated unions are one of the best
- 6:08ways to encourage your agent to create
- 6:09reliable, maintainable code.
- 6:12Let's say we have this jobs table. It
- 6:13can have a few different status values.
- 6:16But now we want to go ahead and add some
- 6:18more data that can be set when the value
- 6:20is one of those statuses.
- 6:22By the way, this is what we used to do
- 6:23in SQL land all the time with nullable
- 6:26columns. With SQL, though, the issue is
- 6:28that this is not really clear what data
- 6:31should be set in each of the status
- 6:32types, if the data should be cleared
- 6:34when the status changes, etc.
- 6:37And if you're confused when you look at
- 6:38it, then there's a good chance that the
- 6:39AI is going to be confused as well.
- 6:41Now, a better way to do this would be to
- 6:43represent your job as a discriminated
- 6:44union of states like so.
- 6:47Now, the entire table is one big state
- 6:49machine, where each job can be in one of
- 6:51each of these states.
- 6:53And the nice thing about modeling your
- 6:55data like a discriminated union state
- 6:57machine is that you can do type
- 6:59narrowing in TypeScript to only get the
- 7:01fields that exist in that state.
- 7:03And as extra bonus points, we can use
- 7:05exhaustive type narrowing to make the
- 7:08TypeScript compiler yell at us if we
- 7:09miss out a value.
- 7:11This is much more clear for you and your
- 7:13agents, and as it can see exactly what
- 7:15the valid states are and what fields
- 7:17should or should not exist at each
- 7:19point.
- 7:22When working on a
- 7:24particular task with an agent, it's
- 7:25important not to distract it with
- 7:27something that might not be relevant to
- 7:29the current goal.
- 7:30Things like refactoring code or fixing a
- 7:32bug you spotted or tweaking the UI,
- 7:35these are all things that can cause your
- 7:36current agent thread to use up its
- 7:37valuable context and lose track of what
- 7:40it was actually doing.
- 7:41To prevent this, instead have your agent
- 7:43briefly record this new work in a GitHub
- 7:46issue to do later.
- 7:48I call these side quests, and I even
- 7:50formalize them in the agents.md, and I
- 7:53find it super useful when working on AI
- 7:55with in long-running projects.
- 7:57When you pair this with the post-merge
- 7:59reflection tip, which I will talk about
- 8:01in a minute, I I find that the agent's
- 8:03often creating its own side quests to
- 8:06improve itself as the project goes
- 8:08along.
- 8:12This is another technique I've been
- 8:13using quite a lot lately, and I haven't
- 8:15seen talked about too much. It turns out
- 8:17that the image models that we have
- 8:19access to in CodeX and Nano Banana and
- 8:20others are really great not just for
- 8:23working out what you might look like if
- 8:25you stacked six cats on your head,
- 8:27but they're also great for designing
- 8:29your UI.
- 8:30I personally like to use CodeX for this
- 8:32because the image tool is included with
- 8:34the generous subscription tier, which is
- 8:35important because I could be generating
- 8:37a lot of images here.
- 8:39But just give this a go in one of your
- 8:40projects. Say, "Use the ImageGen tool to
- 8:43come up with some ideas for how this app
- 8:45can be redesigned. Try five different
- 8:47styles. Show me how it look on mobile,
- 8:49tablet, and desktop sizes in portrait."
- 8:52It works really well, and you can end up
- 8:53with some really incredible-looking
- 8:54designs.
- 8:55I find it really interesting that the
- 8:57image models are really good at design
- 8:59compared to the LLMs.
- 9:01Maybe it's because the actual hard bit I
- 9:03found is that once you have a design,
- 9:05actually then getting the agent to turn
- 9:07that design into reality is the tricky
- 9:10part.
- 9:11So, this is something that I'm still
- 9:13kind of a bit of a work in progress
- 9:14with,
- 9:15and it takes a little bit of a back and
- 9:16forth to get this right. Maybe something
- 9:19like the slash goal style loop here to
- 9:21have it to continue take screenshots and
- 9:23iterate until it gets close might help.
- 9:25Maybe you guys can let me know down
- 9:27below whether you have found really good
- 9:29techniques for turning a screenshot into
- 9:31an actual design.
- 9:34As they say, two heads are better than
- 9:36one, and one technique I found myself
- 9:38doing a lot lately is if I'm not 100%
- 9:42confident in my agent's plan, be it
- 9:45Codex or Claude, then I might ask it to
- 9:48talk to another agent to confer with it
- 9:51and see what it thinks.
- 9:53So, for example, if I'm using
- 9:54GPT-5.6-Soul
- 9:55and it comes up with a plan, but I'm not
- 9:57sure about it, then I might just say,
- 9:59"Please use the Claude CLI, use the
- 10:01available model to double-check this
- 10:02plan."
- 10:03And vice versa, if I'm using Claude, I
- 10:04might say, "Please use [music] the Codex
- 10:06CLI, use GPT-5.6-Soul-X-High
- 10:09to do to double-check this plan."
- 10:12I tend to find that this results in some
- 10:13new things being caught or new
- 10:15perspectives on the problem, and gives
- 10:17me just a little bit of extra confidence
- 10:19that what we're going to be doing next
- 10:21is the right thing to be doing.
- 10:26I used to hate being forced to comply
- 10:27with strict linting rules and
- 10:29requirements in somebody else's code
- 10:31base.
- 10:32I always felt like it it just kind of
- 10:34slowed me down and forced me into a into
- 10:36a way of coding that just wasn't mine.
- 10:38Well, now that AI's writing all the
- 10:40code, I love linting. In fact, I love
- 10:43all kinds of static code analysis these
- 10:45days, be it type checking, linting, code
- 10:47base coverage, etc.
- 10:49The more of these deterministic tools
- 10:51and processes I can apply to my code
- 10:52base, and the more obnoxious I can be
- 10:54with that, the more confidence that I
- 10:56have that what the AI is writing is
- 10:59going to be good to go and not result in
- 11:01a big ball of unmaintainable spaghetti.
- 11:04On a long-term personal projects I'm
- 11:05working on, I have a TypeScript ESLint
- 11:08Prettier follow, not to mention all the
- 11:10unit test, integration test, end-to-end
- 11:12test, behavior tests I also run.
- 11:14For linting, as well, be it ESLint Biome
- 11:16or something else, don't be afraid to
- 11:18have your agent create new linting rules
- 11:20to statically enforce whatever rules you
- 11:22want to see encoded in your project
- 11:24structure.
- 11:25I used to find writing linting plugins a
- 11:28bit of a headache and too much effort to
- 11:29go to, so I never really did it, but now
- 11:31that we've got agents that can just kick
- 11:33it out very quickly, you might as well.
- 11:35And follow, by the way, is a really cool
- 11:37Rust-based static analysis tool that
- 11:40comes preloaded with a whole heap of
- 11:42best practice code quality rules out of
- 11:44the box.
- 11:45And finally, I have my agent apply a
- 11:47number of these pre these checks as
- 11:50pre-commit hooks using Husky.
- 11:55This is a Convex specific tip, but make
- 11:57sure you use the Convex plugins for
- 11:59Codex and Clojure code if you're going
- 12:00to be doing any sort of serious Convex
- 12:02work.
- 12:03We've been putting a lot of work into
- 12:04them lately, and we think that the the
- 12:06Codex and the Clojure code are going to
- 12:07be increasingly become like the entry
- 12:09point for folks when working on Convex
- 12:11projects.
- 12:12The plugin format is iterating rapidly
- 12:14inside these tools, but the Clojure code
- 12:17plugin is got some really nice
- 12:18functionality that allows you to listen
- 12:21for runtime or OCC errors in the
- 12:23background, and then it automatically
- 12:25informs agent for ways that it can fix
- 12:27or make improvements.
- 12:29So, make sure you get them installed.
- 12:33Code review bots have become a bigger
- 12:35and bigger part of my coding loop as I
- 12:36rely on them more and more to catch
- 12:38things that agents miss while
- 12:39implementing.
- 12:41I have a couple of them just follow me
- 12:42around on various projects, and it
- 12:44seems like they do catch different
- 12:45things, so more bots equals betterer for
- 12:49now.
- 12:50By the way, I did do a couple of videos
- 12:51on comparing code review bots on Convex
- 12:53code a few months back if you're
- 12:55interested in seeing how the various
- 12:57bots stack up.
- 13:00Storybook is for some reason a
- 13:01controversial tool with developers. I
- 13:04have no idea why, because I personally
- 13:05love it, and I've used extensively on
- 13:07many different projects
- 13:08before and after AI.
- 13:11It allows you to experiment with lots of
- 13:12different ideas in isolation from your
- 13:14main app.
- 13:16And when you pair it with a
- 13:16discriminated union-based schema that I
- 13:18talked about earlier, it can be a super
- 13:20powerful way to explore, design, and
- 13:22debug the various states that your front
- 13:24end can be in.
- 13:26Maybe people used to object to it
- 13:27because of the extra verbosity and
- 13:30overhead of having to structure your
- 13:31components in a way that's compatible
- 13:33with Storybook.
- 13:34I don't know, but in the age of AI, it's
- 13:36super fast to create stories and
- 13:39structure your code in a way that's
- 13:40compatible. So, I always pull it into my
- 13:42projects that has any be any sizable UI
- 13:45now.
- 13:48A big part of any project, be it
- 13:50human-centric or AI-centric, is a
- 13:52process of actually improving the
- 13:54process itself.
- 13:56That's why I like to to improve try to
- 13:58improve the process by having a
- 13:59post-merge reflection pass.
- 14:02I make the agent write on the PR and in
- 14:04the thread whether there's anything that
- 14:06could be improved with the process
- 14:07itself. Like, is there any missing
- 14:09tests, any remaining work that should be
- 14:11followed up, any docs or tooling needed?
- 14:14Then periodically, I have an agent go
- 14:15through all of these reflections and
- 14:17propose a series of changes so that
- 14:20future development and PRs go more
- 14:21smoothly.
- 14:22And this sort of like closing the loop
- 14:24with something I remember doing when we
- 14:26used to work in an an Agile environment.
- 14:28>> [music]
- 14:28>> You know, we would always dedicate some
- 14:30time at the end of a sprint to reflect
- 14:31upon the sprint process itself and see
- 14:33if there's anything we could improve on.
- 14:35Not sure if there's something that Agile
- 14:36practitioners still do or not, but I
- 14:38feel like in the age of identical
- 14:40coding, like I feel more like a project
- 14:42manager than a coder and and thus I
- 14:44think it's reasonable to introduce a a
- 14:46few of these techniques that I used to
- 14:47use when I was working on teams
- 14:49previously.
- 14:52This is a bonus tip as I haven't
- 14:54actually tried these ones out myself,
- 14:56but a colleague mentioned that if you
- 14:57are looking for bugs in code, it's
- 14:59actually better to start off with the
- 15:01position of pessimism than an optimism
- 15:04one.
- 15:04For example, rather than saying, "Please
- 15:06look through this code for bugs."
- 15:08Instead say, "There are some bugs in the
- 15:10code. Please find them."
- 15:12So, I'm being more pessimistic by
- 15:14telling it there are bugs in the code
- 15:16even though I'm not really sure. And
- 15:17apparently, this results in finding many
- 15:19more issues than the optimistic route.
- 15:22Apparently as well, you can find more
- 15:24issues if you tell that your agent that
- 15:26another agent, not it, wrote the code.
- 15:29For example, if Fable is reviewing a
- 15:31code, uh tell it that GPT wrote it, and
- 15:34often it will find more issues that way.
- 15:37Again, I haven't tried this a lot myself
- 15:39yet, but it's really interesting hack,
- 15:41and I will definitely be trying it out
- 15:42more in the future.
- 15:46Well, that's about it for now. I think
- 15:48I've covered some of the most important
- 15:50key learnings I've discovered so far
- 15:52while working with AI.
- 15:53I will no doubt have many, many more
- 15:55over the months and years to go on, so
- 15:57expect more videos like this in the
- 15:58future.
- 15:59And if you did like this one, make sure
- 16:01you do drop me a like and sub, uh so not
- 16:03to miss out on the next one.
- 16:05And by the way, if you have tips
- 16:07yourself, then please do share them in
- 16:08the comments down below. I'm always
- 16:10looking on ways to improve my own
- 16:12process, and keen to hear about your
- 16:15techniques.
- 16:16But, I think I'll just leave it here for
- 16:17now.
- 16:18Thanks for watching. Until next time.
- 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.