Let's delve into the vast realm of the ever-evolving digital landscape of AI tools that we should use judiciously! You wish ChatGPT wrote that, don't you?
Based on a Reddit thread, let's see what tools developers are finding helpful (and not)!
📄 Auto-Generated Transcript ▾
Transcript is auto-generated and may contain errors.
all right folks we're going to Reddit for today's conversation this one's going to be about AI tools and helping developers or not so the thread is really about someone asking sort of other developers opinions it seems like they're getting a bit of pressure in terms of trying to leverage AI tools to become more productive I think this is probably a theme that a lot of people can relate to depending on the company you're at uh there might be more sort of pressure from management so to speak that we should be doing more AI things and leveraging AI to be more productive um sort of a kind of common thing that I keep hearing coming up more and more so I feel like probably top of mine for a bunch of people this Reddit thread has 300 comments on it I'm not going to go through
every single one of them but my plan with trying to go through this because I made videos about this before and how I leverage AI in my own development and also like if at all if I'm using it sort of outside of just writing code as an engineering manager um so I kind of covered that but I figured this would be kind of cool to see other people's takes and if there's things that either I can learn from that or things I'm already doing or kind of uh pain points that I'm seeing other people have that I've also experienced so we'll start scrolling through this just a friendly reminder you have questions that you want answered related to software engineering career that kind of thing leave them Below in the comments or reach out to Dev leader that's my main YouTube channel as well and
that's basically on every social media platform just send me a message I'll keep it anonymous and if you're interested in resume reviews if you check out my main Channel Dev leader I do have a playlist that I'm starting and you can see if you watch a video how to submit your resume to that with that said let's jump into this so um the first person with a ton of up vote says I'm still giving these tools and they say mainly co-pilot a try no I work at Microsoft I'm not trying to push co-pilot or anything here I'm just reading the first comment uh trying to find out how they integrate with my workflow and this person says mainly doing front-end generally I only use it for tests and fixing obscure typescript issues which is probably 60% helpful um and then they say overall blindly thinking
AI must be used is some dumb so you can probably resonate with that at least a little bit right um I think blindly just trying to do or prescribe anything is like usually a usually a big no no um but kind of interesting so I know for me um I I've said in other videos I I use I think it's that v0 dodev I just know if I type in v0 it's going to where I got to go I think it's v0 um I don't do a lot of front-end work when I'm building in brand ghost if I have to do anything or even for my blazer blog um I go to vzer Dev because I have literally no idea how to make things look good for websites and I am the exact sort of definition of the person who's like hey llm do this
thing for me and I copy paste and it you know if it looks good it looks good I'm moving on um so interesting that they're not using doesn't seem like they're using AI tools for that but I assume maybe because they're comfortable with it like they're already sort of skilled at that they don't need AI assistance um but you can see like from what they said they are still trying to see how it integrates with their workflow so they are still experimenting and seeing uh how to go about uh leveraging these things um this person says I use it to generate mostly incorrect boiler plate um that I come back and correct that sounds like why are you doing that boilerplate code that is all like it's going to be incorrect like maybe they just mean they have to tidy it up let's keep reading
I've written agents that itely test their code in sandbox environments I find it all to be severely lacking I've developed several tools like agentic coding and 2D character generators where uh rather than regenerate the image the layers are adjustable I could elaborate but the direct answer is no it's not there yet usually I get down voted into Oblivion every time I mention my experiences a Dev somewhere so maybe some people have a success with this I don't know but I don't so yeah I guess interest I guess they're saying they're not being successful with it so uh I could imagine it by the way I realized some folks might not understand what boilerplate code is just based on experience level and stuff like that but this is going to be stuff that you find is quite repetitive that you kind of have to do to
get set up to keep moving so um a good example if you're a c developer this is applicable to other languages Maybe like Java if you have some information that you want a class to have and you need to expose that so it has like some State you would use properties and historically the way this would look is you'd have your class and they would have some private fields on them and then they would have uh public properties on them so you have Getters and Setters and really just to have one piece of information that you're kind of tracking in your class you end up having like you know like five spots in the code that you have to do just to get this kind of going like that's going to be boiler plate there's other examples of this but the idea is something repetitive
that you keep having to do so if you're using AI to generate boiler plate code cool that's helpful right saves time but then it's incorrect and then you have to go fix it anyway that sounds like um pretty um pretty inefficient so I can imagine that would be frustrating so I'm going to keep scrolling here um there's people just talking about like from their perspective boilerplate code and how that can be helpful um so maybe kind of worth touching on I think there are things like I I'm a net developer so I use C and in leverage. net but there's like there's probably a lot more that I could do with h Source generators I to this day I have not actually kind of written my own source generators or anything like that to be able to help um but based on how I develop
a lot of my applications and Services I think there's probably an opportunity where um like I think I could leverage Source generators more so Source generators would give us the ability to have code like write more source code and you don't need to see it until like it's basically compile time right so it gets created as it's being compiled for you and then it's included um so like I think that would probably be my next logical jump but I don't need AI for that um kind of interesting so co-pilot is great for several use cases yaml engineering or other boilerplate coat so someone acknowledging just like again getting through boilerplate sounds like they're having success with some type of boilerplate code uh you need to write lots of tests interesting I want to stay on this one for a moment before I I leave this
comment and then uh or you're learning some new technology and want to build something small and quick so okay I like these are interesting ideas you need to write a lot of tests I don't know um I think uh this is okay let maybe let me talk about my perspective on testing a little bit I like like I always talk about uh testing and software engineering as a means of building confidence and I like keeping my definition simple and kind of generic in general like that because I think that's what it ends up boiling down to so it's not like hey you need to have 100% test coverage or you must have x% unit test you know y% integration test or whatever um I think that if we approach testing as how do I make sure that I'm confident in delivering my changes or how
am I you like I think again that's what it boils down to if you are trying to answer that question and you're like well I don't feel we have enough unit test or I don't feel we have enough functional test or there's not enough tests in this area or whatever it is then go write them right so I use that as my litmus test now part of building that confidence is going through and and writing those tests and understanding now could you use AI to do it I I think so but this is the kind of thing where I would say if you're trying to build confidence I wouldn't say dear chat GPT go write me you know as many test cases as you possibly can and then copy paste them because there's in my opinion something about going through those test cases like building
up the test code that's calling it and then like seeing it work that to me is like really helpful in building the confidence not just having a green light so to give you an example could you imagine if you asked chat GPT to go write test and it gave you a 100 tests back for some bit of code and you're like hell yeah like that's a lot of good like test coverage and you're like this is going to be sweet but then you realize it's like not actually asserting the right things and all the test pass because it's just like asserting kind of dumb and then at the end of that you're like okay I have all these tests and I don't actually have confidence in what they do and what now right like you got code but is it giving you confidence so I
I think actually what I should try doing next time at because I I don't know exactly how this person's using right they said to write lots of tests my gut tells me they're kind of just copy pasting stuff out but um what I might try next time I have to go test something is give it the code this is for my own projects by the way um so I could give it like some brand ghost code and say hey like I want to go test the scenario sorry I am on call and just have to check that we're good um so give it some code and say like not just go write the test for me but like talk me through scenarios and things I should be thinking about to go test this so almost like rubber ducking to have that feedback coming in I
might try that instead so that might be something I do next time wouldn't recommend just blindly copy pasting just to have your test cases but that's that's my opinion on that um then they say or you're learning some new technology want to build something small and quick this is exactly um the case with the vzero dev stuff I'm just trying to get something going in the front end for my blog or doing a small thing in brand ghost like the other guys that are working on brand ghost with me are way better in the front end like it's almost like I don't have to do anything in the front end because I know they can but if I need to do something small and I just want to do it quick boom AI get it done um beyond that though I think that depending on
what it is maybe let me say if there's like a new fresh new like text stack or something I wouldn't be saying to chat gbt like hey like go give me the thing for it so this is what I want to differentiate here if there's something that I'm trying like uh we're using nextjs and so we're building in types script and so we have this kind of stuff in our front end if I just needed something small or even for the Blazer stuff uh for my blog right if I just need something small my perspective is I'm like I don't actually really care about investing time to learn right now I'm just trying to get an end result so I might go do that however if I was like hey I need to go build I want to give a good example here um okay
um in brand ghost I'm building more things with like cues and uh trying to get more around distributed systems to make sure that I'm feeling confident about some of these pieces what I wouldn't do is just say Okay um let me go pick a flavor of package and system for cues and and whatever else and then just say Okay chat GPT like go build it what I would do instead is try to ask it questions about the technology and maybe not specifically like which package I've picked and the reason I don't like that is I have found personally that when I'm asking very specific things about packages and or I've talked about this for like hitting apis I feel like sometimes it confidently gives you answers and because it's new to you you don't have a lot of information to like kind of check against
it you're like okay Chad gbt said so um but you might be copying a pattern or practice or something from like a couple years ago or for apis it's like that doesn't even exist anymore so I much rather use it to like go uh learn about a concept and then I can say okay now that I have a better understanding when I want to go explore some package that's doing queuing like if I wanted to compare rabbit mq which I've used many years ago if I wanted to go compare that to some other queuing technology that exists today okay great like get me up to to get on the types of concepts for queuing systems that I should be looking at now let me do a comparison maybe after I could if there's new things that I'm uncovering like I'm learning about some other queuing
system and I'm like hey that's weird like does you know does Rabbid mq have something like that or if I'm trying to do pros and cons analysis maybe I could ask it for some information but just to spit out code for something that will be critical and I'm trying to build up and I really truly want to understand it I'm not just going to ask it blindly sorry not going to ask it and copy code blindly this person says two places where I find it useful ideation and prototyping some of these tools are good at spinning up boilerplate uh and at least getting something running so you can actually test if a hypothesis might work yeah I think that's really cool um and for those of you that don't know before Microsoft I spent a lot of years prototyping stuff at a digital frenic company
so but then they say but rare to be useful at work unless you get to build a lot of prototypes yeah um and a lot of JS development is researching if a package is available for what you want to build blah blah blah so playing with AI for code generation feels a lot like trying out random packages I and I agree like that's like exactly why I wouldn't just take something out and then like use it and then move on it would be like spit out something let me see it working let me try it out because I need to go understand it more deeply then this person says sketching out documentation SL formatting uh give a prompt give get an outline for a scoping doc or a technical initiative proposal interesting that's kind of cool um yeah um they say or if I want
to give the impression I'm a type A coder with Annoying nitty suggestions I'll ask it to alphabetize properties and CSS module definitions or typescript interfaces but I think that's kind of cool on like uh sketching out documentation uh like an outline so as a content creator I've absolutely done this type of thing so to give you an example because I make these videos and they're just totally stream of Consciousness right usually you know if this is your first time here usually I'm driving in the car and just on the way to work and I'm kind of doing the same thing uh just not staring at the camera because I'm driving a car and then what I like to do is take some of the what I would consider the most I don't know um the topics of the week that seem to resonate the best
then what I do is on my main Channel I will do a live stream the following Monday which by the way if you're interested in this kind of thing but you would rather have like a live interaction with me I literally sit right here so you can check out my Dev leader Channel and every Monday unless I'm sick or there's something else going on so tomorrow which by the time you're watching this would be tonight for you um I will be doing a live stream and it will be on a topic that came from this channel so as a content creator I like to take the concepts and then what I might do is ask chat GPT like um especially if I have the transcripts of me just blabbing away here I can say hey go extract some of the key points right then I
write a newsletter article on it as well so I I have some framing for these types of things so I like doing this as a Creator now for work this could be interesting um I would use co-pilot because it microsof I'm like not going to put Microsoft stuff in chat GPT we have our own AI for being able to leverage internally and then honestly for brand ghost I wonder like I I truly wonder if there's an opportunity for for some of the core parts of our system now to start documenting them some of them have stood the test of time of like you know A Year Without much change so there it's not like when it was like getting rapidly prototyped in the beginning where it's like tomorrow it might be a completely different system so yeah maybe that will be something I start doing
more um another person says rubber ducking in my experience how I do this are there other ways yeah when I've made videos on this type of thing before that's something I recommend trying out is like is is just talking to it right like get other perspectives uh I know a lot of the time we're using these tools as like hey like go do this for me but instead we can also leverage it to get different perspective right and you could you could even say like you know um you could tell it or like what's a good way to explain this I'm not really good at prompting so I'm trying to think through this for the first time if you have a bias for something okay like and you know that there might be different perspectives on how to do something like you could even tell
it I want you to approach this from these different angles and then try to explain from these different angles and then maybe that's like having a conversation with people that in I'm not sure how I want to say this not that you want to like they you're trying to go debate people but if you were trying to think about designing something and you want these different perspectives like that might be a really cool thing to try and do so I might start trying that out a little bit more okay what else here um this person says I wouldn't say it's a massive productivity bump but it's definitely sizable okay uh I mostly use it for stuff like how do I do some basic thing in this language chat GPT has pretty much replaced Google for me because it's faster and mostly correct so I think
this is interesting the case where I like doing this kind of thing is um I was trying to explain this to my wife the other day actually and so because I'm sort of the engineer in the house and she'll say like I have to do the boy jobs um there are certain things that she will do and she she'll just say like help me and it's the expectation that I have to help her doesn't matter what I'm doing whatever like she ask for help she's getting help and there are times because of how I am where I like trying to teach her so that she doesn't need my help you don't have to wait for me I think the trick there is that she's not waiting for me it's because I have to help her immediately but if she were to have to wait um
instead of waiting I could say hey here's how you go do this pretty popular thing between us is like uh Excel formulas or Google sheet formulas so she'll say how do I do this and I'll say I don't know she well you have to know like I need you to get this done for me I'm like I I understand but you also need to understand there are things I don't know now what's really cool um is that what used to have to happen before like llms is I would go onto Google and I would be like okay like what keywords do I need to pick because I might not even know the name of what I'm trying to do but like let me pick some keywords and then start to see if I can go down a path we can shortcut that a ridiculous amount
now because I can just describe things to an llm like I could literally not know the keywords I have to use but I can describe a behavior so I can say into chat GPT like hey I need a formula that does this and then I can try to give it some examples and then then it will spit something out and then I might see again at least for me I'm not going to trust everything blindly but I might see some things and I'm like hey I didn't know that that was like a a function we could use like okay what's that function do so I can either ask chat GPT or I can go search it but at least I have a jump off point so that was one recent example with her where I was like hey I don't know how to do that
but we could go ask Chad GPT now I did end up catching her later trying to ask chaty PT things because now the question wasn't how do you do this it was how do I ask chat PT for this she's like I think I'm I have I've asked it but like I don't know if it's just she was spending like 20 minutes trying to craft a prompt and I was like man just like just send it and if it doesn't work just change it um but anyway it's kind of cool um but that's the kind of thing for searching for basic things that I think can be really helpful I might not know the phrase but if it's really simple in concept um great like something like a formula in Excel is not going to be like you know Earth shattering but it's a good
example this person says write a squl query for me that's more complex than a basic joint so I don't need to bother the data scientist on my team um I scanned this earlier and I can't see the comment but um I remember this line coming up and someone was saying basically like kind of Defending it saying like no you shouldn't do that um and then they were saying you know what's going to happen is you're going to have these squl query that like you don't understand and then then what's going to happen like now it's going to be the data scientist problem and have to go deal with this like you're creating problems essentially but this person defended it a little bit and it's sort of the same stance that I have because I do this I know how to write SQL um I when
I'm building stuff in CP and.net there's a popular U packages called Entity framework and with Entity framework you don't have to go write SQL you can just like use objects and it will go map it's an OM an object relational mapper and um you don't have to do anything with the database like you can do a lot and not know any SQL and I don't like using it it's not because it's not amazing it's like the most popular om that exists for net I just don't like using it personally I like having SQL queries but there are certainly SQL queries where I'm like I know I could go figure this out and I just don't want to spend the time so I will describe exactly what I want and because I understand things in SQL I have a easier job using the right language to
describe the the challenge that I'm trying to do and I've had really good success with chat gbt writing queries but for me it's not spitting out a query that I'm like oh man like I have no idea what the hell this is doing um and I would say I agree with the other person that if it's making stuff where you're like dude what is this maybe time to uh to Pivot a little bit then they say make this code more concise and functional because I know someone's going to bring that up during the code review I haven't really tried this I've talked about refactoring stuff so maybe um I think I might be nervous to do that a little bit so and let me elaborate I think if I had already written some like functional tests on something that weren't using mocks and had no
concept of like sort of any internal flow of logic just strictly inputs and outputs I would what I would probably do is have a commit with all that stuff working and then I might try giving uh some code to to chat GPT and saying like hey like go go make this more succinct but here's the thing like I would want to give it something more tangible like you can't just say make this better because it's so subjective and nebulous that it's like well what the hell is better right it writes it in C because you wrote it in Java now it's better um so like you'd have to give it some indication of like what is going to quantify as better um so I don't know exactly how I would do that right now but that could be an interesting experiment maybe I will try
that sometime where I feel like I'm in a good spot I got my test coverage in and then I can say like I don't know like go see if we can make this this method better I just want to make sure that I understand what better is maybe I could ask it to start instead of saying go make it better I could say hey if you were looking at this what things could we do to make this better then from there it's a jump off point where it might give me a couple of ideas I could even say give me 10 ways to make it better and not that I would go do those or something automatically but I might see how it's trying to approach it and then I could go oh like that's a good idea I could ask it more pointed questions
uh to try and structure what does better mean so I might try that sometime I think that's kind of cool but I would commit my code first and not just have it do it because I would be nervous as hell to currently maybe depending someone's watching this in like five years and they're like you know AI does everything perfectly then great like I am wrong if because I don't have a time machine but um at the current point I could absolutely see it just missing context and dropping a case that you're really caring about in your code so I think that's how I might approach that one Let's uh see if there's one or two more that we can pull up here I use co-pilot and it definitely uh works a lot faster or I definitely work a lot faster with it basically just populates
adapter methods Constructors om models and stuff really quickly so again more like some boilerplate stuff it's also good at generating my implementation from interface definitions some test cases yeah so um this is a thing that I do a lot and I should I shouldn't say do it a lot I have a lot of code that follows a structure where um I might have like an i as a net developer I do like a million levels of abstraction guilty um but I kind of like writing code that way it's my own personal stuff if I were in a team and people complained I would change it um The Other Guys in brand ghost are working mostly in the front end so I do what I want but um I I think the way that this ends up looking is I might have an API method and
I want to make sure that I can go into like a service layer that's not just like the the web facing part the reason I do this is because I want other hooks into this code so I need like different entry points but at some point then I'll be going down to a database right so if you imagine if I was like hey I need to be able to not only create this data because I have that code flow ites I need to update it so I would make my update Route then what I would start doing is basically generate I would type like the method name I want and use Visual Studio say generate method and just makes the signature but I would go into it and then let co-pilot see if they can figure out how it might go create the body of
that then it will try to pick names for methods that don't exist on like the repository that I have to access okay so go generate that in Visual Studio step into it and then see what co-pilot completes I've had success doing this and the reason or at least the reason I think it's worked well is because when I have some code that's already written in these different levels of abstraction if I already have a create method and now I'm doing an update method in the service it's like I see how I'm being called for create I know what I need to call on the repository to create but now that we're doing update it's like it can draw some parallels in terms of the structure and it seems to do a pretty damn good job so again this is more boilerplate stuff but I have
found a good level of success I am just checking notifications for work as they pop up because yes I am on call this week fortunately it's been quiet shouldn't jinx it but I just did um okay and then last one I'll read through because this video is getting up there thanks for hanging out with me um this one this person says it has been mandated where I work so I honestly feel like I'm just trying to keep up by using it that means I have to find ways to make it help me it's definitely not good at complex tasks it can be helpful with generating bass scripts SQL and automated tests again the testing part coming up be curious if you're the kind of person who has uh had Success With It writing tests I would love your honest opinion about how you um how
you feel confident in what the tests are doing and I I don't say that to challenge you I'm genuinely curious because uh like I said earlier I would just be nervous like it's it's almost like artificially giving me confidence so I don't know but would love to hear from you um this person also says doing formulaic or repetitive work so it kind of ties in with some of the boilerplate stuff uh and then explaining a specific function so again using it as a uh source of information to ask question questions not to do tasks or generate stuff for you so I think that that's super cool um I hope there's a couple of examples in there where you're like hey maybe that will that will help me um or you had similar experiences to some of the people where it wasn't working so well but
I yeah I'm going to wrap it up there if uh you have different scenarios where it is helping you or is absolutely not leave it in the comments I think that would be cool to hear and of course if you have questions comment below or send over to Dev leader which is my main YouTube channel and all of my social media so thanks so much I'll see you next time
Frequently Asked Questions
These Q&A summaries are AI-generated from the video transcript and may not reflect my exact wording. Watch the video for the full context.
- How do I effectively use AI tools like GitHub Copilot for writing boilerplate code?
- I use AI tools like GitHub Copilot mainly to generate boilerplate code such as adapter methods, constructors, and test cases. It helps speed up repetitive coding tasks, but I always review and correct the generated code because it can sometimes be incorrect or incomplete. This approach saves me time while ensuring the code quality remains high.
- What is the best way to use AI for writing tests without losing confidence in the test coverage?
- I believe AI can help generate tests, but I don't recommend blindly copying and pasting them. Instead, I use AI to help me think through test scenarios and understand what to test, almost like rubber ducking. Writing tests myself helps me build confidence in the code changes, and I use AI as a guide rather than a complete solution.
- How can AI tools assist developers when learning new technologies or prototyping?
- I find AI tools useful for quickly building small prototypes or exploring new technologies without investing too much time upfront. For example, I use AI to generate quick front-end code snippets or to get an overview of concepts like queuing systems. However, I prefer to use AI for learning and ideation rather than blindly generating complex production code, as I want to understand the technology deeply before implementation.