Free YouTube Transcribe

Video transcript

How I Actually Code with AI as a Senior Software Engineer

HAMY LABS · 3,273 words · 15 min read

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

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

Recently added transcripts

Browse the whole transcript library

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com, free, unlimited, no sign-up.