Full transcript
Intro
0:00Hey y'all. Welcome back to the lab. In
0:01this video, we're going to be discussing
0:02how I actually code with AI as a senior
0:05software engineer. So, it's been a
0:07couple months since I posted stop vibe
0:09coding and I've been using AI daily at
0:11work and in my side projects. I wanted
0:14to give an update on how I'm actually
What I'm using AI for
0:15using AI in my workflows. First, what am
0:18I using AI for? So, I'm using AI to code
0:20daily, not in every task, but in lots of
0:23them. Some areas where I think AI is a
0:25great tool for coding. First is
0:26investigations and research around
0:28coding topics. Second is in actual
0:30coding faster prototyping and
0:32implementation especially for
0:33boilerplate heavy code as we'll talk
0:35about later and finally for reviews
0:37quick first passes to turn a first draft
0:39into a second draft investigations. So
Investigations with AI
0:41AI has largely replaced Google for me
0:44for common code related searches. So
0:46examples of this might be give an
0:47example of a try catch in language X.
0:49Let's look up an error with text Y. How
0:51to do an exhaustiveness check in
0:53Typescript things like that. And this is
0:55something that I predicted a year ago in
0:56how software engineers actually use AI
0:58to improve productivity and has
1:00generally remained true. AI is simply
1:02faster at information retrieval and can
1:04mold the answers to better fit your
1:06exact query which beats out sifting
1:08through several adinfested SEO
1:10tangentially related articles to try and
1:12craft an answer for yourself. Of course,
1:14AI still gets things wrong and is
1:17typically better at more surface level
1:18queries, but the speed on first
1:20retrieval is generally worth the
1:22trade-off as the harder queries that you
1:23know AI does get wrong would require
1:25additional research anyway and so it's
1:27already going to take you extra time.
1:28For those, I typically fall back to
1:30reading the docs because if the AI is
1:32getting it wrong, then it's likely many
1:33of the initial articles are wrong as
1:35well. And so, you kind of got to go to
1:36whatever that's called like a first
1:38resource um to get the actual answer.
1:40So, some tools I use for this is mainly
1:42Claude via the the chat. And as you can
1:44see, I have it bookmarked here because I
1:45use Claude so much. And then I'll fall
1:47back to chat GBT and Gemini depending on
1:49what's available. Um, for instance, at
1:51work, we don't have a cloud subscription
1:53for um the chat part of it. And so, um,
1:55we use GPT and Gemini instead and
1:58they're both decent. Um, although I do
Coding with AI
2:00like cloud better. Now, for coding. So,
2:01I use AI regularly to help code
2:03features. It's still not great at
2:05building large features in my opinion,
2:07but it is getting quite good at well
2:08scoped tasks and parts of features where
2:10examples exist for it to follow. And I
2:12think these well scoped tasks and places
2:14where it has examples are really
2:16critical for it doing a good job. And so
2:17that's really something to look out for.
2:19And in general, my process still follows
2:20my vibe engineering cycle, which you can
2:22read more about here. Uh the first is
2:24don't outsource the plan or thinking to
2:26AI as it's really not great at creating
2:28and maintaining direction or vision long
2:30term. And so that's going to be
2:31something that you still need to do. you
2:33still need to have an overarching goal.
2:34Um, what are we trying to achieve? How
2:36are we going to do it? What are the big
2:37milestones? Because AI just like cannot
2:39do that. What you should be doing is
2:40outsourcing specific, welldefined coding
2:44tasks to AI where it can be a big speed
2:46enhancer over manually typing this stuff
2:48out yourself, especially for things that
2:50are just tedious, um, things with a lot
2:51of boilerplate. And so, this is often
2:53going to mean that you need to build out
2:55like a first version of this, a proof of
2:58concept or something, um, initially so
3:00it has something to work off of. But if
3:02you've got 10 things all following the
3:03same pattern and you do one, AI is
3:05pretty good at doing um one to 10. And
3:08then finally, uh you should checkpoint
3:09your work regularly to avoid AI trashing
3:11all the progress you made. I see a lot
3:13of people they get like super deep into
3:14a feature, it's almost done, and then
3:16they ask it to like fix one thing and
3:17the AI kind of goes on like a death
3:19spiral and trashes everything they've
3:21done because it's trying to fix
3:22something else. And again, it's kind of
3:24lost that long-term direction and vision
3:27of what it was trying to do in the first
3:29place. And so lots of checkpoints are
3:31like really critical for not having to
3:32backtrack. Um if you play video games,
3:34you probably also incessantly save,
3:37although new video games are better at
3:38saving for you. And so you should really
3:40do that with AI here um as well. And so
3:42here's the kind of cycle that I use from
3:43like a high level. You know, I plan my
3:45project myself. I'm using AI for
3:47research and reviewing the project and
3:48you know, iterating on it. But um
3:50basically the the whole plan for a large
3:52feature or project I do. And then in
3:54each milestone and usually really a sub
3:56milestone, so a sub part of that
3:58milestone, I'll do a tight loop with AI.
4:00So um I'll give it a specific prompt. Um
4:02this will be like, hey, let's build out
4:03this part. Let's build like a unit test.
4:05Let's make this thing do this one thing.
4:06And so if it's very small and and
4:08isolated and pretty simple, I'll do just
4:11directly in the chat um because it's not
4:13too much to like put that in again if it
4:15if it fails. But if this is something
4:16that requires more context, like hey,
4:18reference this file over here and this
4:19file over here, then I will use a
4:20markdown file. And the reason I like a
4:22markdown file is if the AI goes off the
4:24rails, which it often will, um, it's
4:26easy to just be like, let's revert those
4:28changes and then I will make the prompt
4:30better to give you the context that you
4:32were missing and make you do it again. I
4:33always have it output its plan to a
4:35markdown file and then I'll review its
4:37plan and then make changes as necessary
4:39to the prompt. Um, so that it better
4:40understands what I'm asking it to do.
4:42And then I'll auto accept all edits. I
4:44think this is really critical because if
4:45you're trying to manually accept edits,
4:47you don't even see like the full thing
4:49that it's trying to do and it will also
4:50need to iterate before it gets to a full
4:52thing. It's kind of like jumping in to
4:54an engineer's feature and they're not
4:56ready to put it up for PR and like
4:57you're just going to get in the way of
4:59them getting to something reasonable
5:00that you should look at. And then at
5:02each juncture after it's done all the
5:03edits, I then review the code because
5:05that's a complete unit of something it
5:07thinks is is ready. And I'll trash it or
5:09change it. um trash it if it's like
5:11totally off and I need to actually
5:12probably change the prompt or go about
5:14it a different way, change it if it's
5:16close but it's just missing a few
5:17things. And then if it's made decent
5:18progress but still has errors, then I'll
5:20actually accept it and basically put in
5:22a temporary commit so that I can iterate
5:25on just the the parts it needs to change
5:27without getting rid of all the progress
5:28it's made. And that's kind of part of
5:29the checkpointing cycle that I use with
5:31AI. And then finally, I'll iterate to
5:33the next bit of the feature. Um, often
5:34it's going to be multiple passes with AI
5:36because it's like, hey, do this specific
5:37thing and then do this and then do this
5:39to actually get the full milestone out
5:41of the way. Um, but this way I think
5:43it's like heavily guided and so I am
5:46actively involved in the whole process.
5:47But I do get the benefits of like, hey,
5:49it's actually going and typing out all
5:50the code and doing the tedious work of
5:52that. Um, which I think does lead to
5:54some good compromises of like speed
5:56benefits, but also like not having to
5:58trash so much code because it just went
5:59off in the wrong direction. And I do
6:01want to call out that this is pretty
6:02similar to like my own coding process
6:04and I think how most engineers do um
6:06their coding workflows as well where
6:07like you start off by making a plan and
6:09then you're going to iterate towards the
6:10plan in very small batches. I'm a fan of
6:12atomic commits. So this idea of like
6:14we're going to commit progress and
6:15milestones that are part of a larger
6:17milestone we're doing regularly and
6:19trying to push that into main. I I like
6:20that. And then finally reviewing the
6:23code at each juncture and making changes
6:24is necessary because your first patch
6:26just isn't going to be right. as you as
6:28you move on, you're going to learn new
6:29things about the code and what you're
6:30trying to do and um edge cases,
6:32assumptions that you had. And so, you're
6:33going to have to go back and review
6:34anyway. It's just this time, you know,
6:36the AI is also in the loop here. I'm
6:38currently sticking with Agentic
6:40Workflows for coding. I personally don't
6:42like autocomplete features, whether it's
6:44for code or like in my text messages or
6:47like in my emails or like Google Docs.
6:48Like, I do not like autocomplete
6:50features because it breaks my train of
6:52thought. Um, which slows me down and I
6:54think just leads to worse quality
6:55overall. I do like agentic workflows
6:58because they can be called when I want
7:00them. So, I access them when I want
7:01them, they're gone when I don't, and
7:02they work in the background if it's my
7:04workflow better. I can go send it to
7:06like, hey, go do this thing, and then I
7:07can go plan something else or look into
7:09another bug I'm trying to fix or
7:10something, which I think is actually how
7:12I'm getting a little bit more of the
7:14speed benefits. And then I'm primarily
7:16using cloud code for this. I am open to
7:18experimenting with other tools like I
7:19want to try codeex at some point. Um,
7:21but cla code has just been the one
7:22that's been working well for me. I
7:24previously used Rode and Klein, but I
7:25just found that Cloud Code was smoother.
7:27It had a better integration and
7:28experience for me. And it also had
7:30better billing. I'm using Max right now,
7:32which has been really awesome. Although,
7:34you really got to check these like
7:35subscription things because sometimes
7:36you're just overpaying. Um, you can use
7:38like CC usage to check like how much
7:40you've actually used and see if it's
7:42actually worth the the plan that you're
7:44bought into. Reviews. So, I've started
Reviews with AI
7:46using AI as a first pass reviewer. And I
7:48got to say it's surprisingly good in the
7:50sense that it regularly catches things
7:52or has ideas that are useful. And I I
7:55think this is less up to how good the AI
7:56is and more just like having a second
7:58pair of eyes on a work. I have my own
8:00practices for reviewing my own code and
8:02my own writing to try and catch more of
8:03this stuff. So, for example, I like to
8:05review my code outside of the editor and
8:07in um GitHub or where wherever we're
8:10doing code reviews um because it helps
8:12me get out of like the code how I've
8:13seen it and kind of see it from a
8:15different perspective and that's often
8:16helps me catch more things. Similar with
8:18my writing, I don't review it in my
8:20editor. I'll usually review it in a
8:22different view whether it's like on my
8:23website or um in a different kind of
8:25markdown viewer just because it like
8:27looks different and so you'll actually
8:28catch more things that way. And I think
8:31the AI is pretty good. like it's not the
8:32best reviewer in the world, but it's
8:33pretty good for a similar reason. It's
8:34just like another perspective on the
8:36thing that you've written and so it's
8:38just going to catch things that like you
8:39didn't see or didn't even think about.
8:41And so my process for this is pretty
8:42simple. I'm just reviewing the code
8:44myself and I iterate like I always have
8:46done. But then I ask the AI to review
8:47the code itself and then provide me
8:49three things that could be improved and
8:51then I iterate on those. And some of
8:53these are useful. Usually like one of
8:54these is like, oh that's that's a good
8:56idea. Let me let me go do that. And then
8:57like the other two are kind of iffy, but
8:59depends on the state, depends on the
9:01thing. And typically I do get something
9:02useful out of it. And then of course
9:04after I do that I again do a final pass
9:06before I submit it to humans to review.
9:08I really think it's super important that
9:09you review your own code. Um and do
9:11these passes before you submit it to
9:12another human. Otherwise it's just like
9:14super inefficient especially if the code
9:16is like mostly AI um written because I
9:19think this is a thing a lot of like
9:20juniors and people new to coding are
9:21doing especially vibe coding. They're
9:23like oh look I've built this thing. It's
9:24awesome. And they don't even bother to
9:26review their own code and it's just like
9:27a bad experience all around. So for more
9:29on that, you can check out this related
9:31post to review your AI's code. For my
9:33reviews, I'm typically just using cloud
9:34code or whatever's in the command line
9:36there. If it needs context across
9:38multiple files and then if it's like
9:40very isolated and like it's easy to just
9:42like copy paste into a chat, then I'll
9:44just use the chat cuz that's also pretty
9:45easy. But the main point is that I'm not
9:47using anything fancy. Um I have gotten
9:49my eye on things like Code Rabbit, which
9:51kind of like lives in the review tool
9:53and like reviews your code itself that
9:55way. Um and Claude's GitHub integration
9:58at work. We've got um codecs I think
10:00like connected to the repo and it's able
10:02to like do a review on on PR which I
10:04think is really cool and I probably will
10:06use those more in the future. I think
10:08they're really great for work and like
10:09organizations. I don't know if I'd use
10:11them in my side projects so much because
10:12it is just so fast to be like give me a
10:14review in the editor and get instant
10:16feedback that way. So not too bullish on
10:17this, but I also think you get a lot of
10:19benefits from just using pretty um
10:21simple workflows here. Next, so that's
10:22how I'm using AI these days for coding.
10:24Uh, similar processes also apply to my
How much Faster I Am with AI
10:27writing, although I do all the actual
10:28writing myself as I kind of find the AI
10:30writing to be flat and kind of soulless.
10:32My wife actually just wrote a blog post
10:34and um, I was reading it and I was like,
10:37are these written with AI? Like I feel
10:39like if you read enough you can kind of
10:40tell something is written with AI. And I
10:43also feel like a lot of the benefits
10:45that I get for writing these posts which
10:47is just like you know really solidifying
10:49what I'm thinking having things to look
10:51back on as like a snapshot of what I was
10:53thinking at that time and actually like
10:54sharing original thought so we can
10:56develop ideas together. A lot of those
10:58get lost if you let the AI do all the
11:00that thinking for you. And so that's
11:01something like I want to avoid at least
11:03in my own blog posts. But I still use it
11:05for research and reviewing blog posts. I
11:07think it's great for that. um giving
11:08ideas for like how to simplify sections.
11:11Like AI is excellent for that. I think
11:13more people should use it. Um and
11:15they're writing for that stuff. I would
11:16estimate that AI is probably writing
11:18around 40% of the code I submit.
11:20Although that code leans heavily on
11:22boiler plate. So things like unit tests,
11:24um things like plugging in the boiler
11:26plate to like some framework that you're
11:27using, stuff like that, but not not
11:29usually the the actual logic. And even
11:32that stuff is heavily edited or iterated
11:34on before pushing the code. you know, AI
11:36loves to submit all these like useless
11:38comments. Um, it is pretty verbose. It's
11:41not really good at like looking through
11:42a bunch of things and like simplifying
11:44them um to their core. And so like raw
11:4740% but also heavily edited 40%. So you
11:49can even say that it it was all AI,
11:51probably not. But I still think it's a
11:53significant chunk of code. Um, and it's
11:55kind of cool because it can kind of get
11:57the first draft out and then I think
11:58humans are pretty good at being like,
12:00um, oh, I see what you're doing there,
12:02but like it should probably be something
12:04else. And so you can kind of fine-tune
12:06it to be more closer to what you want.
12:08And I think that's like a pretty good
12:10combination of the two uh skills. Now,
12:12as for how much faster this makes me, I
12:14would probably say about 20% faster. You
12:16know, AI helps me research and code a
12:18lot faster, but it doesn't necessarily
12:19help things get over the line that much
12:21quicker just because you have to go
12:22through those extra layers of review um
12:25with the AI. But still, I think it's a
12:27pretty significant speed up. And I think
12:29that the outputs are generally just
12:32faster for the same or potentially
12:34slightly higher quality. Um, just
12:36because you are spending more time
12:38reviewing, you can try out more things
12:40with the AI because you're not like, uh,
12:41that's going to take an hour to code
12:43out. I don't want to do that. You just
12:44send the AI, it'll get it done in like
12:4610 minutes and then you can um, see if
12:47that made sense or go back. And so I
12:49think you're able to prototype in a lot
12:50more directions. Um, but still like
12:52overall throughput I'd say is probably
12:54around 20% faster. So if you liked your
12:57post then you might also like stop vibe
12:59coding start power coding how to write
13:01quality software faster with agentic AI.
13:03You might also be interested in I vibe
13:04coded a C# library with cloud code and
13:06here's six things I learned and finally
13:08how to checkpoint code projects with AI
13:10agents save your work keep projects on
13:12track and reduce rework. So that's it
13:13for this video. Thanks for watching and
13:15I'll see you in the next