BrandGhost

All About Vibe Coding - Engineering Manager AMA

It's all the rage these days and everyone from your hair stylist to your fish groomer is talking about it... Vibe coding! What the heck is it? Who is it good for? Are the vibes immaculate? Let's find out. As with all livestreams, I'm looking forward to answering YOUR questions! So join me live and ask in the chat, or you can comment now and I can try to get it answered while I stream.
View Transcript
Hey, interesting. So, what I did was I turned off some of the other things. Um, I was trying to stream to Tik Tok and to Rumble this time, and I turned off the other ones. So, I wonder if Tik Tok is just busted. Anyway, um, let's get this rocking and rolling again. Sorry for the delay. We'll get live on Instagram as well. Just refreshing the chat. You gotta love technical glitches. Um, okay. I think we're good. Let's get that out of the way again. So, thank you Substack folks for joining. Uh, hello to everyone else. Had a bit of a technical glitch. I thought that I would uh spice things up today and I would try uh connecting Reream directly to Tik Tok, which did not work. And then I also had it uh connected to Rumble, which I've never used before. Let's see if I can turn on Tik Tok if it'll just work. Maybe not. Hey, it's I'm doing it after the fact. It says that it's trying to do It says it's sending data. Let's try Oh, it says too many channels is what it says. Interesting. Okay, we're going to Tik Tok. Sorry, Rumble. I don't even know what's Rumble anyway. I've made an account on Rumble, but I don't think I've used it. Um, I had to try to see where this lands. Awesome. Well, thanks for joining, folks. Infected FPS, welcome. Good to see you back on the live stream train. Alan Johnson, greetings. Justin Bentley, good to see you back as well. Let's vibe. Yes, indeed. Uh, and then as Jesse was saying, had to join just to see where this lands. Yeah, it's it should be interesting. Um, TT2 Slow on Instagram, good to see you. Yes, it's been a little while. I haven't really I've been here. It's you. It's you that hasn't been here. Um, so yeah, folks that are new to the live streams, I try to frame them as much as an AMA as possible. Uh, oh, Devin says, "Rumble doesn't like it if you start the stream after the schedule time." Interesting. I did do it on time and I don't think I had a schedule, but I think Reream is telling me in the user interface I have too many channels connected, but when I was starting it from OBS, it was just saying it failed and wouldn't tell me why. So, um, completely unrelated, but USB is the worst specification ever created. Um, awesome. And hey folks on LinkedIn. Okay, so if you're new here, uh, AMA format for sure. The topic is going to be about vibe coding. Um, and so if you're on Substack, you already know what I'm going to say. If you are Oh, Rumble is a cesspool. Okay, well, let's forget Rumble then. Um, not that I want to send I almost pasted a password into the chat. We don't want to be doing that. Um, I wouldn't even know what password I have to go change. Uh, this is where my newsletter is for folks that are interested. It is essentially always going to be the topic of the live stream. You don't have to subscribe to it if you don't want email newsletters. Substack folks are you're already on Substack. So, thank you. Um, but if you just want to know what the topic's going to be, then you can check out uh the link that I put in the chat. if you can't see the chat or you can't click the chat because I mean you can see it up here but uh if you aren't on a platform where the chat's available like I think LinkedIn is kind of weird like this um Substack sorry uh TT2 Slow who's on Instagram also you can't be clicking the chat you can't even see it because it's a vertical video for you but um it's weekly.devleer.ca CA. Like I said, you don't have to subscribe if you're just like, I wonder what the live stream's actually going to be about. There you go. And yeah, it's going to be about vibe coding. And so, this is a weird one. Um, probably weird for many people just because it's a whole whole thing right now. Uh, it's the latest craze, I suppose. Um, but yeah, I guess there's a lot of opinions floating around for folks that um that follow on different platforms and stuff. I have another YouTube channel that's called Code Commute and Code Commute is about general software engineering topics. It's like a vlog format and I basically just answer questions for people or I go on to Reddit and just respond to uh to Reddit forum posts. And uh in this particular case this past week, someone was like, "Hey, want your opinions on vibe coding." And I was like, "Oh man, I knew this was coming." Um, but if you're on social media and kind of like looking around at like software engineering topics, you've probably seen vibe coding like flooding everywhere. And I think I want to say like rightfully so, but I don't know. Um, I feel like there's a lot of really strong opinions about why vibe coding is such a bad, dangerous thing. But especially on code commute, I try to make sure that I'm as much as possible like trying to share different perspectives even if they're not um ones that I like strongly align with. I still I think it's important that we like I can talk about my own perspective and then I can say here's a different view of it or you know multiple angles and that way it's not just me saying it's my way or the highway. It's you know we try to look at things as objectively as we can. Um and TT2 Slow says and yes I'm uh started taking a software engineering class through Edex edex. I'm not sure what that is. I've never heard of that but that's that's awesome though. He says, "I've uh I've not heard of it, but I have no idea what I'm getting into." Fair enough. Um you and most other people, so not to worry, but vibe coding. Um so for folks that are happy to to participate in the chat, um infected PS is saying perfect timing on the topic considering Prime and who's Tes TJs? I don't know who that am I how do you spell it out phonetically because I feel like I'm dumb because I don't know who teaches is uh week long Jan to vibe code a game. Okay. Uh we long jam maybe. Um does vibe coding even actually function on a code base the size we support? Tried using new codebase feature in GitHub co-pilot in our codebase and gave me the spinning wheel of death. Good vibes only. Yeah. Oh, that's Brad. That's my skip level manager. Brad's here. everyone hide. Um, yeah. So, that's a good thing that we should talk about because like, oh, maybe let's back up a little bit. So, for folks that are in the chat, um, what are like, let's start. What are your thoughts on vibe coding? Have you vibe coded something before? Um, ju just tell us, Junior D, to start looking for cleaner jobs, otherwise no jobs coming anytime soon. Um, no. So, did I just waste my money from learning don't train? No, absolutely not. Um, there's a few folks that join pretty regularly that are still kind of looking for jobs and stuff. There's a lot of doom and gloom around software engineering. Everyone's afraid of AI, but all the graphs that you see. There's like a graph that's been circulating for weeks or months now, and it shows this like really big climb up and then like it drops off and everyone's like, "Oh, it's because AI like people keep forgetting to show the graph before that 5-year period." Um, and there was this thing that happened, I don't know, like roughly 5 years ago that shut the entire world down, forced a lot of people to work more remotely. There was also a drop off in the very beginning because companies and stuff were shutting down because the whole world was shut down and then this really fascinating thing happened where like there was like tons of software development jobs. I don't know if anyone remembers this by the way. It wasn't uh it wasn't AI. So just something to consider. Uh the landscape is definitely different. Did my stream freeze? So, I hope I'm not going to have another week like last week, but I just looked at one of my incoming feeds and it like shows me pointing up and it's stuck. So, I hope it's not uh I hope it's not stuck like that for everyone. Um anyway, yeah, I'm just going to go back through the chat and see what people are saying on vibe coding. Oh, and infected FPS. T aka pronouncing TJ. Okay, got it. Um just got my autonomous camera finished. Awesome. Um, idiots, idiots everywhere. That's my very public opinion. If you need a graph to know vibe coding is stupid and dangerous, you're the reason software engineering won't die. Um, okay. Well, I'm I'm going to talk about that. Uh, Jesse, because I I think that there's some interesting alternative takes on this. For the record, I think that it can be very dangerous. Devon says, "If you play pay close enough attention to people doing vibe coding, there are some successes, but there are also some horrific failures." Turns out that writing apps without understanding code isn't great. Yes. So, we'll dive into that. I've already put my opinion out on on previous streams yet, but basically great for getting an MVP going, but once you get into actual code, it starts becoming a detriment. Uh Devin says it did momentarily. Oh, momentary hiccup. Okay. Well, hope sorry if I have issues on the stream. I don't have any excuses this time around. Um, Richik says, "I'm a junior C# developer slowly picking up stuff and vibe coding. Only works if you really know your stuff. Like really know your stuff. If you can read code and make sense and find problems, you can vibe code." Seems good. Not the network. Yeah, it's uh So, for those of you that don't know, I uh I work at Microsoft. I'm I work in Substrate, which is Office 365, and I work on the routing plane. Um, and Brad, who's in the chat on LinkedIn, is my skip level manager. So, we're always around like networking and Brad has a sort of ownership over like security, networking, and routing. So, I'm I'm a small part of that. Uh, so yeah, the hashtag notthe. It's not us, right? Um, it's not coming through through Microsoft. So, can't can't be our responsibility. Um, it was the exceptionally irresponsible investment from VCs in Silicon Valley. tax code change regarding software R&D2. When is Microsoft going to rewrite the Windows kernel using Vibes? Someone should make a a programming language called Vibes, right? Um or like a Is there a meme coin that's Vibes or something? Maybe we need that. Um okay, so we'll get into it. I think there's a few interesting opinions kind of floating around in the chat. um I feel like relatively representative of um you know some different things that I've seen floating around and you'll see that I I feel like there's a couple people that kind of took a middle ground right where it's like it's not like vibe coding itself is not the root of all evil but like it is a tool and it's a tool that you can misuse like all tools um and if you have some tools and you use them properly they can be helpful so it's kind of the different perspective that I'll get into. Um, but yeah, I I started off my article by kind of trying to give a definition of what I perceive vibe coding as. We talked about it a little bit on the last stream and then it became the topic for this stream. Um, but I kind of framed vibe coding essentially like being able to go talk to your favorite LLM if that's chat GPT co-pilot claude um, whatever it happens to be. Obviously, Copilot's the best, right? Shameless Microsoft plug. But if you're using your favorite LLM and you're basically asking it to start building parts or the entire part of your application and you take the code and then you paste it somewhere and then you go back to the LLM and you say, "Now do this and then you copy paste it over." Um, you know, you keep doing this and essentially just rely on the LLM itself to build the application for you. Right. So, there is very little um sort of input from you into the code. Maybe there's typos of the odd thing that you're fixing up, but you're essentially relying on the LLM to build everything for you, right? Um just going back to the chat. Uh I mean, you can use a hammer for every problem, but you're going to turn all those problems into nails. Yeah. Yes. A great example for my uh for my experimenting stood up an API with connection to Reddus and and some simple services vibe coded that in like a day once I started to get into refactoring to proper implementations it was always working against me no matter how prescriptive I got. Interesting. Okay. So I think that's a really cool so I think my hopefully my definition kind of made sense. uh if folks have a different thought on that um would be curious to hear. But that's kind of my working definition. The you know the quick summary is the LLM does all of the work for you and you're barely checking any of it and you just keep keep taking what it gives you. So I chose to start off my article on why vibe coding is awesome. And I did this for like a primary reason was to challenge myself because um I think probably like many people that have uh experience writing software pure vibe coding is like probably seems like we're seeing a lot of people misuse it, right? Um, I I suspect the overwhelming majority of people that are vibe coding are probably building stuff that should never see the light of day. Um, should definitely not go into production. But I think that's probably why a lot of us with some experience are saying like, hey, maybe this isn't such a great thing. But I wanted to challenge myself and say, can I start talking about what I think are the positive things? Um, so the two two things that I called out in particular, I said there are two major reasons I think vi vibe coding could be great. Uh, and I said that doesn't mean there aren't more. So if you have perspectives on why you think vibe coding is good, feel free to put that into the chat, too. I'd be very curious to hear. Uh, we are going to get into the other side of this as well, like where it's dangerous, maybe why not to use it. But if you have some use cases and I know infected FPS shared one where he was using something uh sorry was using vibe coding for something made some progress right was able to make a bunch of progress in a day but then he called out the flip side as well but if you have some positive experiences share that'd be great to hear but the two that I said kind of stood out to me were was number one dramatically reducing the barrier for entry uh for people getting into development and I know that some people don't like this. Um, you know, it's some people will say, well, the barrier is there for a reason, right? Maybe not to have a huge barrier where you're trying to turn people away from like ever getting into software development, but people, I think, are are suggesting rightfully so, that software engineering as a field, as an industry, is more than just writing code. And I absolutely agree when I'm talking about the barrier to entry being reduced. The reason that I like this is because I spend a lot of time over I don't know how many years now. um probably like most of my career, so just shy of like I don't know just shy of 15 years spending time trying to like basically help junior people whether that's their junior as developers or they're like hey I was thinking about getting into this don't know where to start don't know what I'm doing I spent a a large part of my career if not all of it trying to help people kind of get past that barrier this kind of thing started when I even when I was like I don't know back in like high school and stuff outside of even software development and it would be things like tutoring and math. I don't like math. I happened like certainly wasn't good at it in university by any means but when I was in high school I was able to fasttrack math and I was doing math tutoring and stuff like that. And I always found like a common pattern was that people would just write themselves off and they were like their own biggest barrier. So they would be saying things like for math, let's say, like oh no, I'm too stupid for that. Like I'm just don't get it. Like I'll never be good at it. They have a million excuses and it's like they wouldn't even try, right? They they already have it in their their mind. They're like I'm not going to be good at it. I won't bother. So, the reason that I think that as a barrier to entry thing is is helpful is because I have spent so long trying to help other people get started on things and just realize like there's enough other barriers to entry for everything. So, like we don't need to create artificial ones for ourselves, right? I write articles and I made videos on like you don't need to have like a strong math background to be a programmer. Is it helpful for logical thinking and reasoning? Yes, absolutely. But like do you need to do you need to be like good at calculus or like discrete math to be able to be a programmer? No, not at all. Like I am not good at those things anymore and I can still program. So being able to reduce the barrier with, you know, being able to leverage something like vibe coding where you're saying to an LLM, I would like to be able to do something here. Please give me some direction like immediately barrier reduced. You start seeing things come together. Not saying they're good things necessarily, but things start to come together. Brad says, "Look, vibe coding gets people interested just like Photoshop got people interested in graphic design." That was Brad. Uh, I've got experience with my son which has made him more interested and we push stuff to his own repo and he's stoked. I think it's awesome. You got to be curious to try new things and leverage new tools. Yes. Um, now I might challenge Brad a little bit on this because we're not sitting together in the office, but I think Brad is in a great spot when he's talking about his son here because he's able to probably give his son feedback as necessary, right? Having a ton of experience. So, I think that's a like a super cool example, right, where you can get people interested kind of like say like, "Hey, look, here you go. Here's here's a little bit of something. You want more?" I think that's super cool. And Brad can offer guidance. And I think that's awesome. And probably where people get more nervous about this is they're like when there isn't the guidance. So, if like if Brad's son was like, "Hey, look, I I published a published my own app to Azure and thanks for your credit card, Dad." Brad might be like, "Wait a second, what do you mean?" Um, but you know, like I think that's where we start to have more concerns, but in general, like having that barrier reduced, super awesome. Uh, an example that I like to think about kind of going let's as a software developer when uh uh like is it pronounced Dolly, the like the image generator? Like so as a as a YouTube creator, right? I don't know if you've seen my channel. The original thumbnails were just like absolutely terrible. Thankfully, I have a video editor that's making thumbnails for me now, but I was like, "Okay, I need a stupid picture of my face because that's what YouTubers do." And I'm like, "I can't do anything artistic because I suck at art." Notice the negative selft talk. Me already creating a barrier for myself. So, I'm like, I need a title on there. I need to be making a stupid face. And I had some thumbnails like this. Then when Dolly came out and it wasn't it was like version two cuz whatever the first version was was like nightmare fuel. It was like like melted images together of like random things and I was like I don't know how anyone's ever going to use this. But when the second version came out it was nuts. And I remember going, "Oh my god, for the first time, I can actually talk to AI and have it make a picture for me." Because I am not good at drawing. I don't spend time drawing. I don't spend time doing digital art. So, I don't mean to to say that I could never be good at it, but I've never spent the time practicing. I don't want to commit the time to try and get good at it. I find it very frustrating. But I did notice that when I could prompt Dolly and actually have it create things for me, all of a sudden I was like, I'm able to do this. So I had, as Brad was describing with Photoshop, I sort of had this moment with with Dolly where I was able to like start doing something with it. And it seemed like suddenly I had like power at my fingertips. Now, did that mean that all of a sudden artists around the world went out of jobs? No, it just meant that I finally was able to start creating some things and feel like I could do something. The barrier was reduced. So, that was my first point on this. There's a lot of stuff going on in the chat, which is awesome. Um, I'm just kind of scrolling back through. Devon's saying team serve 30 internal departments, different domains, and our tiny apps. we could have written was limitless. Yeah. Being able to vibe our way into a bunch of quick and dirty utilities would have been awesome. Yeah, I think you know use case-wise, especially if they're small, like sure, why not? I think that's a really cool use for it. Um, where's team droid? I missed it. Oh, there we go. So, we should use it for bootstrapping the project. Uh, fingers crossed it leads me to something I understand. Otherwise, I would end up refactoring, debugging for weeks. Um, yeah, I think you can use it for for bootstrapping things, right? Um, I think it depends like so I I think I don't know if I wrote about this in here. Um, yeah, I did. I I wrote literally did the it's been a while, couple days. Um, rapidly prototyping was the thing that I wrote about. So, I just want to see if I'm going in order here. I got one more thing to talk about uh for actually no, it is the next part. rapidly spin up a functional application. So, it is the next part. It's a good segue. Sorry, my mind is everywhere. So, um Oh, coding mountain man, your your thumbnails look good. I was just thinking before I clicked your vid. Well, thank you very much. Uh I'm using Canva now instead of generating stuff in Dolly. Uh, but I do my thumbnails for like live streams and then on all the recent videos, my my video editor does them now and he's significantly better at creating thumbnails than me, which is good. Unfortunately, it cost me money and YouTube does not pay very well. Um, the issue with your analogy is that it's okay if there's a margin of error in your generated image. Yeah, for sure. I'm not uh so the analogy is to illustrate a barrier to entry if that makes sense. I'm not trying to draw an analogy and say that just because the barrier is reduced means you get good code because you can make the argument you don't need AI to have someone write shitty code, right? Um, so you it's like it's a it's an analogy. It's a comparison, but it's not meant to be a direct drop in replacement. Okay. And then, yeah, so Alan Johnson says, "Yeah, the trouble with vibe coding is it's being pedled like snake oil, and that's extremely unfortunate." Yeah. So, I think that's uh I think that's part of it, right? is like we especially with social media we have a lot of people um yeah people are treating it the same I I agree right reminds me of garlic orange juice tasty not not going to cure cancer quit saying that it will shrug yeah so we have a lot of this stuff that is unfortunately like perpetuated uh in media on social media you'll have people in you know people with a lot of reach or like CEOs of companies uh people that are, you know, startup founders of the next thing trying to be able to say, "Hey, look, no, like this is the solution or we just vibe we just vibe coded our way to do this." It's we just have too much um there's a lot of AI hype, right? And there's a lot of people with ve vested interest in certain AI things where they're um I think being very misleading or maybe they actually believe it and I'm not sure which is scarier to be honest. Um, so yeah, there's there's a lot of stuff that I don't think is good in terms of how this stuff is being portrayed, but um, let's go on to the rapid prototyping stuff because I think this kind of is a segue for what some people were talking about in the chat. Um, so one of the questions was around um, bootstrapping some things. Now the example that I wanted to talk through was rapid prototyping. And for some extra context, um prototyping prototyping is not necessarily something where depending I don't know how many people have like spent time actually like prototyping uh like I want to say like seriously like either in terms of their career or doing that is like a more strategic thing versus just kind of messing around. Um when I did prototyping work like professionally the idea was that prototypes are meant to generally answer business questions right so you are trying to in my opinion you're trying to code as little as possible to be able to answer a business question and that question can change it can evolve you could get your question answered with writing no code maybe it's literally like we're putting a PowerPoint presentation together, showing it to to clients, and then getting that initial feedback. Like, yes, that seems like it would be something that would solve our problem. Okay. So, now like the next step is like how what's the next amount of investment we want to do to be able to get more questions answered. But the idea is that you want to be able to pivot as much as possible or as much as necessary, I suppose, and answer your your most important questions with as little effort as possible. Because if you were to say, "We think we have a hypothesis that this would be something we want to go build." And then you spend all of the time engineering it, trying to make it perfect, whatever that means. And then you get it in front of people and they go, "Well, no, or there isn't actually a market for it. Like why did you waste all the time doing it?" So in my career the way that's looked is that a core part of the business will be operating on steady state things and then we would be able to sort of partition out some some engineering resources to be able to prototype things and that would often mean like pulling up a tech stack that was like we don't even know anything about this uh or some good examples like one that came to mind I think I talked about it in code commute was we had to do like um OCR like object character recognition, optical character recognition, I can't remember what it stands for, but essentially being able to take pictures that have text in them and extract the glyphs so that you can form actual text to operate on. Um, so I was working at a digital forensics company and the idea was that if they had images, right, lots of images show up in these cases and if someone had a picture and there was uh some signs or something or there was any text because maybe there was a picture of a book or whatever it happens to be. Being able to find words unlocked something really interesting because if you had text, you could keyword search it. Now you could keyword search pictures. It's not going to mean an exact match necessarily, but if there was some text that could line up, trying to find and make correlations between anything could be dramatically like more efficient than you searching for it just by scanning through everything one by one. So, what do we know about OCR libraries? Well, we knew absolutely nothing. So, we had to go crawl the internet looking for different options. What's paid? What's free? What are licensing terms? and then go run analysis on these things to go see what's most effective, what types of images do they work well on. So, we had to go prototype a bunch of different things and then measure and experiment with them. All right, so this is one example. Um, but the the idea of being able to vibe code in this case would have saved so much time because you instead of you going, hm, let me go like search the internet to go find the thing now go read documentation, go try and figure it all out, go st like tinkering and standing things up. You just ask the LLM, right? you just say like in the OCR example, give me give me 10 different OCR libraries um you know that are either and give me a variety of like paid for options, free ones, open source like different licensing terms, whatever you want gives you a list and you say great now I want you to build me a sample application that can um given a set of pictures whatever can perform the OCR on it and then you could even say like I'd like to go help help me construct a benchmark for this, right? And then you basically just walk it through what you wanted to do. And I think honestly we could have done like OCR investigation and analysis instead of it taking weeks or something. Could have been in a couple days or something like just completely different. So that's one example. I'm just going to go back to the chat because I saw Brad say something else in here. So um no, I think I might be really good at code refactoring. I need to take this C++ code to Rust. Uh I don't think it's ready yet, but my money will it will get there. Yeah, I recently asked to convert an API from one vendor to the next and it did a good job when I provided the API documentation. Yeah, the really interesting thing about that I mean it makes sense. Um but I I feel like I don't remind myself enough about this. If you give it something like an API and even if you like give it some, you know, you talk about the API or what it does, that's extra context for the LLM, which is helpful. But if you could give it the documentation for the API, just like so much more structured context around this, it can just do so much better, I find. Um, and Brad says it can save time and solve the the blank canvas problem. Absolutely. Yeah. Um, AI is not a magic lamp you rub against wishes. It's a statistical model. Yeah, I wish it was a magic lamp though. That'd be kind of nice. Um, solutions it throws are going to reflect the data it's being exposed to with the highest frequency. Yes, that's true. And also just a note on that from Allan. Um, I think something interesting to call out too is like um around the framing of like the I don't know the right way to say this, like the effectiveness or the quality. Maybe the quality is what I want. The quality of the output of the LLM. Not only is it based on what the data that's been put in, but if you're ineffective at prompting it, right? you say like, "Hey, I want you to go make this thing." Like, and you're not giving it a lot of constraints. It's like, "Sure, like, here's a thing." It does what you said. And you might say, "Well, that sucks. Like, that's crappy code. Why would you have written it that way?" And then some people just disregard it. And it's like, hold on. If you actually told it more specifically what you want, then it probably could do a better job. So, I think your point is very valid about the data that it's exposed to, right? the frequency of that, but also we have to keep in mind how we're prompting these things to try and extract some of that. Um, in fact, IPS says a lot of the issue with perpetuation is that we keep seeing these dead simple done a million times projects, but now with AI handwave, uh, and assisted coding, I have yet to see someone do something more than another AI rapper to toss on the pile. Um, yeah, the good thing about vibe coding is there's a bunch of people to try to prevent you from doing so. Yeah. Um I usually use it for uh configuration help. Ah refactoring second set pair of eyes and explaining topics. Yes. Um more recently I've been trying to challenge myself to make sure that like I've been programming for a long time now but I'm trying to make sure that I do follow up and ask the LLM more things. Right? So when I'm exploring stuff, I even will say like, you know, I've been prompting it and I'm like, here's all the stuff that I've been thinking of. And I will say, is there any other information that you would consider? Any other questions that I should be talking about here? And trying to see if there's other like perspectives because this is the kind of thing if I were coding with friends and building stuff, that's what I would be doing with them or my colleagues, probably a better example. I just I don't code at work. Um, but if I were coding things with other people, the goal would be to try and incorporate other perspectives. So, instead of me just telling the LLM, it's really nice to be able to say, "Hey, like give me some other ideas." And then it's like, "Oh, I never thought of that." Or maybe some that um I'm like, "Oh, duh. Like, I should have asked that. Like, I know better." But in other cases, it's suggesting things where I'm like, "Oh, crap. I didn't even think about asking that. like probably pretty good. Um, I'm doing tons of MC work in Rust and it can help scan through tons of data sheets really quickly. I can't imagine letting it actually choose registers and then and then just running with it. Um, Postman. Yeah. Yeah. Jesse says, "Knowing that you have a prototype is important though." Important distinction, right? Um, by the way, just wanted to say thanks to Microsoft for all the contributions to the Rust ecosystem. Yeah, we'll we'll take credit for that. Uh, specifically Brad and I will take all of the credit. We'll we'll pass our regards on to I'm just kidding. We can't take credit for that specifically. Um, the LLM is your rubber duck. Yes, Alan. So, that's a great way to put it. Um, a lot of the time historically, I have not been doing that as much as I should. And I think that um one of the things that like I can really get a lot of value um is by by rubber ducking with the LLM. Vibe coding in my opinion is uh is coding where someone knows nothing on the coding process and literally can't understand the code. We know what we're doing as devs. These aren't the vibe coders you're looking for. Yeah. So this it's true though, right? like we're we're in a situation. I I'm assuming most people on this stream are are developers. I know we got uh well I think he might have dropped off but uh buddy from Instagram is trying to get into software development. Um so he would say like no I don't know anything. Um but you know a lot of us that are on this stream right now or in the chat are people that that have coded before right? have built systems have maybe some people are junior and that's fine but we've been exposed to some of these things so we're at least in a position where many of us can start to kind of challenge what we're seeing right and as Brad was kind of saying like most people when they're talking about vibe coding the overwhelming majority seem to be this group of people that's like I don't actually know what's going on but look at me I'm a developer now which again I like the idea the barrier can come down and people can get into it. What I don't like is when people start using that as an example to say hey look we don't need software engineers because just because code can be created does not mean no more software engineers required. Young Bird says how long until our tech infrastructure collapses from five coder engineers. Well hopefully there's enough things in place that prevent us from getting that far. Um, honestly, I know there's like people are genuinely getting kind of concerned about this because they see how much vibe coding over the past I don't even know how long now is picking up uh trending on everywhere right now. I I think like fair reason to feel concerned, but at the same time, um I don't I don't know who's going to be building other systems on top of vibecoded stuff that we feel like we can't trust unless more people push up vibecoded stuff faster than people can stay on top of and the LLMs get trained on it and then we all fall apart. So maybe it'll happen. Um, I bet it would be good for pseudo code or for parsing feedback and generating user stories. That's an interesting one too. Um, especially um given like feedback is obviously like natural language. People have written it out. So being able to extract concepts and patterns and stuff could be could be great. Um, I think that's a very interesting idea. Yeah, lots of lots of cool stuff in the chat. Thanks for thanks folks for sharing. Um, I was I was going to share a recent vibe coding example. Um, to to kind of uh acknowledge what Brad was saying about the audience though, right? Like again, I am someone who does develop software. So, and maybe this is maybe I'll pause because this is an important distinction to try drawing at this point. It came up earlier in the chat. people had this uh this notion of like, hey, look, if you're brand new or you don't really understand what's going on. It seems like vibe coding can be kind of dangerous, right? You're taking code, stuff's happening, you don't really know what's going on, and you say, "Thank you. Next, like, give me the next piece. Let's keep adding more stuff to this." You might see something that looks like it's working, but again, there's a lot more going on under the hood that you might not understand. And when you start to get too far away and this thing's got legs now, it's like, you know, at what point do you start going, hm, is there any amount of robustness here? Is there any amount of security? Like, are there any safeguards? Like, there's a lot of stuff that we have to consider. In my case though, as someone who does develop software, I can at least put some of my own safeguards in place before going off the rails. But uh my most recent example um I think I actually did this on Friday evening before writing this newsletter article. Um, I was challenging myself to there's I've talked about this before and it's kind of awkward and I'm a little bit embarrassed to to explain this, but when it comes to like uh the way I define it as like mapping coordinate systems, when I have to write code that maps coordinate systems, even if we're talking about like arrays, okay, so like something that's very simple, it doesn't even have to be like two-dimensional, just taking array segments or Like if you're like a C developer talking about spans of things, um even substrings and stuff, this is something that I need to draw pictures for. If I don't have a picture, everything falls apart for me. I don't know why, and it took me a long time to realize this, but especially when playing around with like making video games and stuff, it's the most obvious one for me. If I have to have like a camera that moves around in its own coordinate system, like a world coordinate system, like my my brain just stops working. I have to draw pictures anytime I'm coding stuff like that or else I just can't make it work. So, um, Brand Ghost is the sort of the application that I've been building that lets me post to social media. If you've been on the live streams before, I talk about it at the end every time. Um, but in order for brand ghost to do its job effectively, the goal is that it should be the least amount of work possible for the content creator or the business running their social media to take a picture or whatever they want to do and they want to post it to a platform, right? The the less work that the user has to do, the more effective our tool becomes. Because if I said, "Look, we can post to 10 social media platforms for you, but that picture, it's not the right aspect ratio over here, and that's the wrong file format over here, and the maximum file size, it's not going to be okay on this platform." Every time you wanted to go add a picture into our platform, you'd be like, "This sucks. Like, it's it's too much effort. Thank you for being able to post it everywhere, but no thanks." It would just be a pain in the ass. And we want to make sure that we can reduce that problem as much as possible because as someone that posts to every social media platform, having to do it manually, I know it doesn't sound like it's a lot of work to go copying and paste a post and upload a picture, but when you're posting like five times a day to 12 plus social media platforms, now I do it for two personal brands in a business, it's like 25 social media accounts every day. I'm not doing that multiple times a day. It's it's insane. So the goal is to do it once, right? So the idea is that right now when you upload media to Brand Ghost, it doesn't actually try to change the format of anything you've sent. Most recently, I realized I don't know why Tik Tok is like this. I don't think Tik Tok allows you to post PNG pictures, JPEGs. WEBP, not PNG. Why? I have absolutely no idea. It's like one of the most popular picture formats ever. Doesn't work on the API. So, I said, "Okay, on the fly, I'm going to convert this simple library to do it." Great. But then I realized this problem I already just explained to you, which was on different social media platforms, we might have aspect scaling challenges. And this is where it comes back to my my sort of embarrassing problem is that to map these coordinate systems, my brain just doesn't work. And I'm going, if I wanted to write something that could automatically aspect scale things and fit them sort of without having to scale them up, but they could add padding and stuff like that. You better vibe code this Tik Tok issue. You You want me to do it live? So, I uh in all honesty, I have it on my other computer, but ChatGpt is not loading my conversations, and I don't know why. I put it into like a a project in chat GPT, and it's not showing it. Um, and I don't know why that's the case. I'm just double checking right now as I'm saying this out loud. Maybe we maybe we'll do it maybe we'll just do it live and see what happens. I'll redo it. I've already kind of gone through it though. So, spoiler alert, what I wanted to show on the stream and yeah, we'll do it live. Why not? Um, and that way when it messes up, Brad can see me in the office. So, yeah, nice one, buddy. Um, but the idea was that I asked Chat GPT, I said, I have this scenario where I want to be able to aspect scale things. I want to be able to add padding as necessary. I never want it to scale up and pixelate. assume I have a library to do the picture conversion. I need you to do this for me. And I gave it some guidance. And then I just kept rolling with it. And I was like, okay. But the difference is I can I can see the algorithm and I can see what it's doing and go, oh, that's not going to work. Or maybe that would be a good option to include. I know I said we didn't need to worry about it, but let's have an option for it. But I had that feedback loop that I could rock and roll with. So maybe let's try vibe coding it. I'm going to check the chat before I go. Um, oh, nice. Cheap viewers on stream, boo. Very cool. Well, you are blocked forever. There we go. Um, out of context, what do you think about Blazer Hybrid? Should I go for it? Um, I'm a net developer, so my vote is always net ecosystem. Um, entropy. To answer your question though, I think the the reality is like it's going to be context dependent, right? If you are a .NET developer um and you want to stick to .NET I think Blazer Hybrid could be great. Um if you're building stuff in a team and you have other people that know you know different tech stacks and stuff um by all means like kind of get their feedback and see what what makes sense for the team. uh to give you full disclosure like brand ghost when I started building a UI for it. I started in Blazer and then when I had a couple of friends that wanted to build alongside me I hadn't actually done like much at all in the user interface and they were like hey we can go faster in React and TypeScript and I said great I can't. So if you guys want to build the front end do whatever you want. So they went with React and Typescript I can I can navigate. It's not my favorite but I can move around. So, I think it's going to depend on your needs. Um, I do enjoy Blazer. My entire blog is in Blazer. Um, one sec. So, if I flip over to here, oh, only available to members. I'm not going to log in on my own site. Um, let's go back over here. Let's pull up another post. So, so this this entire website is is in Blazer. Um, it used to be in WordPress. Steven Giesel has a Blazer blog engine. Uh, so I took that uh he's actually really awesome to work with. I was giving him feedback and stuff and he built out some features like that uh that payw wall that we just saw. Um, that was something I was like, "Hey, like when I go to move over from from WordPress, I really want to make sure that I can have a payw wall." So, he built that feature. Um but yeah, this is all it's in Blazer. I I love it. Um because it's all C for me, super familiar. And then when there's any fancy like front-end stuff, I say fancy. This website's not fancy at all. Uh I vibe code that with vzero.dev. I just go there and I say, "Here's some code that's there and I need it to look like this." And then I don't even know what I'm copying and pasting. And it works. like 99% of the time it's awesome. So, um yeah, I like using Blazer, but I'm biased. Uh chatb killing my vibe coding often. Uh should I expect you to talk about how these things have raised the bar for junior roles? Employers literally need employers literally need the whole IT role team dev like they require lots of stuff. I'm not sure if I understand the second part of that. Let me keep reading though. It's miserable finding entry-le job because every job posting has tons of vastly different requirements that seem unrealistic. Yeah, I think so. Um, what I would say uh can't even imagine trying to get a junior role right now. Companies are insane in their requirements. Yeah. Okay. So, one thing that has always been the case and I'm not saying people always get up in arms when I say this kind of stuff. I'm not saying it's easy to get jobs right now. Disclaimer, full disclosure. That's not what I'm about to say, so don't come at me with your pitchforks. Um, it has always been the case where on job descriptions they ask for requirements that are over. Even on junior roles, it's always been the case. Is that happening more now? Probably. Are the requirements more exaggerated? Probably. But they're going to try and do that because there is a ton of volume of applicants. So, I know I know Devin knows what I'm going to talk about here because Devin watches like all of my code videos. He's probably heard me say this a trillion times now. Um, but the the reality is when you have so many people that are applying to a job position, people need to find ways to reduce the number of candidates that they're sifting through. Now, I'm not saying how they are doing that is good. It's not what I'm saying. That's why I said don't come at me with your pitchforks. Not saying what they're doing is good. I'm not saying that it makes sense that they have an entry-level role and then say you need 5 years of experience. Why would that make sense? That's not entry level. But when you have so many applicants, if they just keep increasing the bar, it deters people from applying. it becomes a higher bar that you have to pass and then you'll have people rightfully so saying, "Well, that's unfair. That's unrealistic." Yeah, you are absolutely right that it's unfair and unrealistic. Those jobs are still getting tons of people applying for them. It's it's just the reality of the situation. So, you're able to look at this in a couple of different ways. You can say, "Well, I don't have that experience. I'm not going to apply." They say that it's a requirement. I don't have it. I'm not going to apply. Now, you have people that are competing against you that are doing the opposite of that, saying, "I don't have that experience. I'm applying. I'm just going to apply anyway." Statistically, because there's so many applicants, people are bound to get interviews at some point by doing this. They're just increasing the likelihood statistically. I'm not recommending that people do this because it defeats the whole it's like what what's the point of even having any requirements on any job role if anyone's if anyone and everyone is just applying. It's just challenging because if you're trying to like play by the rules and other people aren't, then you're going to be at a disadvantage in this case. It's really crappy. But I think that when we see some of these requirements coming out on job descriptions, especially for juniors, they're completely they are completely unrealistic. Um, I don't know the job descriptions that we had up, but over the last 16 months, like just over 12 months, I would say, but I'm saying between 12 and 16, I've hired junior developers. I've interviewed junior developers. We've hired junior developers. I don't know what the job description said because they were put up before me. I just kind of either reviewed uh candidates after or did the interviews, but I didn't put the job description together. So, people are still applying for them. Like, this is at Microsoft. There's other companies, too. So, the positions are there. I just think that right now I don't know if I want to offer advice on this necessarily, but I think I think the advice I would have is like if you feel like you are qualified for what the job is about, regardless of the actual X years of experience, especially for an entry- level role, I would just apply personally. The worst that could happen is that they ignore you or they say to you, "Wait a second, you don't have five years of vibe coding experience." and you go, "Oh, you caught me." Like, move on to the next one. But, um, WordPress ecosystems mostly fronted stuff. Not what I want to do, but can't be picky in this job market. Yeah. The other thing, so to Young Bird's point, um, sometimes what I've been kind of saying to people is like, everyone has different circumstances, especially like financially and stuff. So, when people ask about advice for jobs, it's tricky because I don't want to tell someone who's like, "I've been out of work for x months or potentially years and they're like, I don't have an income." And I don't want to be like, "Oh, just wait it out." It's like in some situations that might not be a strategy that makes any sense. So, it's really difficult to offer like general advice that's applicable to everyone because it's very situational. Um, so in some cases being able to, you know, if you're not in love with WordPress, but there's an option there for you to get your foot in the door and be doing that, that's still work experience you can be building up. It doesn't mean you have to do that for forever, right? But at least you start to have something that's at least in the space. You're building up experience, you're getting your income, and like it doesn't mean stop trying to explore other opportunities and stuff. Um, yeah, that Brad, uh, Brad just said advice is default aggressive and be actively working on your craft. Yeah. So, that's Brad's advice. There you go. Um, yeah, it I I think that makes a lot of sense, right? But I think the key point that he said is actively working on your craft. I have uh I'll plug it at the end, but I've been doing like resume reviews on my main YouTube channel, and there are people that have submitted resumes that don't have um that don't have side projects and stuff. And I realize that everyone's circumstances are different in terms of time and what they can allocate and all that. like um when I I don't know when I was a more junior developer like I didn't have responsibilities aside from like a couple thousand dollars in student loans thanks to internships. I didn't have a girlfriend, a wife, kids, anything like that. I ended up getting a dog four years into into working. Like I had no other responsibilities. I didn't have to worry about anything. Um so for me to go code stuff on the side, it was like I got lots of free time. um other people don't. But on in the resumes that have come in, I've had people submit résumés that don't have side projects, and it's like the the reality is that you're going to be competing against other people that do. So sometimes people will say, "It's not fair. I don't have time to do that." And the difficult thing that I have to remind people is like it's it's not necessarily about being fair. It's not like that's outside of your control. What is in your control? Because that's all that you can really do. That's all that you can change. You can't say it's unfair that someone else had time for side projects and I don't because yeah, like that does sound unfair, but like what's anyone going to do about that? The only person that can make a change there is potentially you, especially if you want to prioritize your time differently even in the short term. Um, let's go back into the chat here. Uh, why is this controversial? It's an employer's market right now. Yeah, of course they're going to set the bar high. It's not because of AI, that's market saturation. Yes, I like I agree. Um, but Allan, I think, yeah, it's I think it's controversial because um my take on why it's controversial is that people are they're upset, right? And I've noticed that when people get stuck, they start to instead of trying to This is why like in a lot of my videos, especially on code commute, I end up trying to tell people focus on what's in your control because what happens is people get frustrated and then instead of going, okay, like what can I do? They feel like I've done everything. I've tried everything. So the only other option is that we have to look outside of ourselves and start blaming things. And I realize that for people that are frustrated, they're probably like, "Well, Nick, you're an then." But like that's the point is that you can literally only do what you can control. So, um, you do not get to control what the employer sets as their minimum requirements. That's not up to you. But you can choose whether or not to apply there. That is in your control. Uh temper expectations about kinds of companies you want to go for. I got my current job in in 22 answered like two C# questions. Shot the breeze the panel. Yeah. So there are companies out there looking for for good people. It's it's hard, right? I it's it's hard to talk about this stuff because everyone has these challenging situations and you know it's kind of just the reality of the job market right now. It's very tough. Um, okay. I said we were going to try to vibe code this. Technically was going to end my stream. Um, that's not the screen I want. Not a GPT. One sec. Sorry. I just realized I'm not sharing my screen either, so you can't even see. Okay, let's Okay, so does this mean that AI is the reason behind raising the bar? No. Um, it's not necessarily the reason why. Um, could be for some companies. I'm sure it's part part of it. Um, but there is there is a massive influx of developers. There are a lot of people, and when I say this too, I don't want people to it's not meant to be like offensive or anything like that. There were a lot of people that entered the market thanks to things like coding boot camps, right? So, I'm not saying coding boot camps are bad, but I think a lot of coding boot camps uh are predatory. I know plenty of people that have gone through coding boot camps, they've been very happy with that. But I think a lot of boot camps have been predatory and they basically tell people like, "Hey, in like only a few months, you know, we're guaranteeing you like a highpaying software engineering job." And it's like, it's just not it's just not a good way to look at things. Like people don't like when I do this comparison, but I'm going to do it. Um, I was programming when I was 14, and by the time I got my first full-time job, I would have gone through high school, five years of university, and then got a full-time job, however many years that is, nine years of programming. And I was building stuff on the side the whole time. And if we don't like that answer, okay, because I had internships, then then it took me four years and then I got an internship in university because I was in an internship program where you're basically forced into getting internships. The system forces you into it. So I graduated university with two years of work experience. That was my cheat code. I graduated and had two years of work experience. So when people are saying like, "I went to a boot camp for a few months and I'm expecting to get a job." I'm like, "I don't know how, honestly." But I feel like people were deceived, right? Like I was told I will be an expert. I I was told I'll be able to you'll be able to build things. But the problem is you and many people that went through the exact same thing all now have a very very comparable set of skills and no one has differentiated themselves and there's been a massive influx of individuals like this. It's not to say that they're not capable or they can't do amazing things but in terms of showcasing your abilities and your work experience everyone that went through that is at the same spot. And a lot of this is like, well, I am a a front-end like JavaScript developer and I can build React apps. And it's like, yes, there's many people that just went through this. And I think a lot of that is contributing to this. Okay. Um, lots of people in school are told that development is the only job they should have. Let's see. Vibe codings. Okay. Let's get to the vibe coding. Okay. Okay. Okay. Um, no pressure, Nick. No pressure. Okay. Vibe code away. Okay. So, basically what I did was something like this. And I wish I had my chat, but maybe this will be maybe this will be better. Okay. Don't mess up, Nick. Don't mess up. Just just vibe code. Sorry. If you're on Substack, um you won't be able to see any of this. If you're on uh Instagram, you get a very narrow window of what I'm going to type here. So, folks on Substack, so sorry, but this will be um on YouTube and stuff if you want to check it out. It's all recorded and saved after. So, what I wanted to do was something like this. Um, and this is awkward because I have to say it out loud and type it because I don't want to be silent as I type here. But the idea was like I would like to create an algorithm that can resize um resize input pictures. And then I need to give it some constraints, right? Because like that's very generic. Um, so I do not ever want to upscale a picture because I do not want to lose I don't want to lose resolution. So if we scale something up, it's not really going to help. Um, I want to ensure that I can maintain aspect ratios. Um, and that's not even the right thing. I need more context. So, and I need to explain it to folks at the same time to you so you know what I'm trying to get at. I want to be able to take a picture and let's say it's um 9 by 16. So, if it's 9x6, it's going to be uh 9 wide 16. So, it's going to be portrait. But if it's 16 by9, that's the destination. Like, that's a that's a really weird one, right? Uh 4x3 and 3x4 might be more tolerable. or if you had 3x4 4x3 and you want to make it square that might be more tolerable too but the idea is that I want to give it anything and it can add in padding on either side and and size things properly. So um I want to ensure that I can maintain aspect ratios of the original image. So um the extra context I want to give here. So the context for using this algorithm is that destinations have a set of aspect ratio or I'm going to say set of target aspect ratios and sizes that are supported. However, I I want my algorithm to al alorithm typing is very hard. I want my algorithm to support any um size and aspect picture as the input. I'm going to pause there for a second. Um and then so entropy is asking will it create multiple versions like uh 64x 641 128 x1 128. So this is a really good question. Um the answer to this is that we might wanted to do that later. So I think that warrants uh asking this question though which is going to be I wrote here that a destination can have a set of target aspect ratios and sizes. So, um, I need the algorithm or let me just say I need it to I don't want to keep typing algorithm and embarrass myself. I need it to pick the closest um match matching target aspect ratio and size based on the input. And now here's uh actually I should add one more thing. Assume I have a library that can perform the resize of the image but I need to give it the proper dimensions. Now what I did the first time through this was that I asked it like are there other things that we should be talking about or do you have all the information you need? So are there other other requirements that you think we should consider and this was step one. I'm going to check the chat. Um so I'm actually working on resizing images right now except I'm working with massive multi- gigabyte images. Need to down sample and scale. Yeah, like that's the kind of thing like I would not would not be good with. um early in my career accidentally wrote an image resizer because my dumb self didn't know system drawing could do it for me. Yeah. And like so I spent a lot of time when I was a lot more junior building like 2D video games and stuff and anytime I had to work on drawing code I was like I never want to do this again. Um so okay the current requirements no upscaling that's correct. Maintain original aspect ratio that's correct. Um, this one might get confusing because it needs to actually go to the target, but the original I don't know if it makes sense, right? Um, the original image needs to be not stretched, right? So, we need to put padding and stuff on. So, we'll see if it it asks that padding support. Oh, right away. Right. If an image doesn't perfectly match, uh, center it and pad it with a background color. Yes. Like that's what I want. Um or do you always want a tight fit? See, like this is this is good. Consider adding. So what does this mean though? Or do you always want a tight fit? Letter boxing not allowed. No, we do want padding because if it needs to do a tight fit. So I want to say no cropping. We cannot crop the original picture. Hey T man, good to see you. Welcome back. Um, optimization preference, minimal scaling versus minimal padding. Ah, okay. So, it wants to understand what to optimize for. And I wonder if this is picking up on my other chat, like if it has a bit of a shared memory, because uh, one thing I'm noticing is that it's uh, it's suggesting these as parameters. And when I did this the first time, it absolutely didn't. and I said maybe we should add them as parameters. Um, so I think that's cool. Cropping, no. So I'm going to tell it no, we don't want cropping. Um, and for context, the reason I don't want that 40 does have memory. Does it have memory across um across other chats though, I'm assuming it does based on what I'm seeing here because it seems kind of suspicious that it's saying some of these things. Um, so yeah, we're going to say no to cropping. Yes, but only for photos. Okay, good to know. Thank you, Tay Man. Um, cropping support, no orientation awareness. Some images might be rotated. Oh, I'm I'm curious about that. How does it auto detect the orientation fallback strategy? What if none of the target sizes work without upscaling? Um, I don't think that this is possible. The reason that so if I don't know if people have read this part out loud is trying to say hey look if we if we only have the option to upscale and I said no upscaling what should it do but I think that that's not correct because I think that we can always downscale the image and pat I think. And the reason I'm saying this is because it asked me something suspiciously close last time and I told it that and it was like, "Yeah, you're right." And I was like, "I don't know if you're just hallucinating alongside with me or if we're actually on to something here." So, we're going to do it again. So, let's go back through this list. Um, padding support. So, yes, I want to do padding support. So to answer your questions, one, I do want padding support. What did they say? Center it um center it and pad with the background color. That is an optional. We only ever want to center when padding. So I don't want to anchor it to like the top left or the bottom right or anything weird like that. Um, and by the way, I don't even, this might not even be considered vibe coding because I'm actually having a conversation with the LLM, so maybe experiment ruined, but this is how I was approaching vibe coding for what it's worth. Um, optimization preference. So, yes, let's have this as an option. Let's have the fit preference as an option. Let's have an optional. What was number three? That's cropping. We do not want to support cropping for. Sorry, I can't remember all of them. Um, I'm going to say no, there is an orientation. Let me let me ask it. Uh orient this um number five was fall back strategy. Um are there no I don't think there are scenarios that we cannot support. Um we can always scale down and and add padding. And number six was what? Um let's see. Definitely not live coding. You're actually reading the code. Ah, sorry guys. I ruined it. Uh, but I maybe that's a like important distinction though, right? Um, this is how like when I did this on Friday, I sat here for a little bit and just had this conversation back and forth with it. I didn't even add the code into my codebase. was just playing around with it, trying to see what it would spit out and going, "Okay, like that's getting closer to something I'm interested in." But what what it saved me from doing is like I know C. I've been programming in C for since 2007, how 18 years or something. Um, so I can program in C# if I have to mess around and like try to get the syntax for the library right and look up API docs, like I don't want to mess around with that for now. The part that my brain doesn't work properly for is the resizing, the scaling. Um, the part we're going to get to hopefully very soon is like when we want to ask it to draw onto the canvas, I need to know a source rectangle and a destination rectangle where to pad, which is technically just filling in the original or the the destination canvas. My brain is not going to work properly. I already know this. When it comes time to putting the sort of uh the source rectangle onto the canvas in the center, I don't know how to how to do that. Like I really it's a very embarrassing thing for me to admit, but I know what I don't know. Oh, Lyla just broken. Yla is my my dog. We'll see if we can get Yla on the camera. She doesn't like being picked up. Say hi, Laya. Okay. She goes like rock solid when you pick her up. She's like, "Nope, I don't like this." Um, okay. Um, this spat out some stuff. Right there it is. Okay. Key behavior is preserve aspect ratio. Never upscale. Padding. Yes. With optional background. Always center the image. Yes. No cropping. compares portrait versus [Music] landscape. I don't feel Oh, it's gonna say this. Yeah, I don't think this is what I want. Um, please do not include orientation. Um, ah, yes, that's cool. working with a ton of metadata from JPEG. Yeah. So, when I was working in digital forensics, uh the like using XIF data was always really cool. um being able to plot stuff on a world map and stuff. Uh which is like fascinating because um you could you could see especially when we were like getting test data and stuff, you could see like people would use their their device, take pictures uh and you could literally tell like just where people are going. And if you combine that with a timeline, you can tell a whole story about like where someone's going around taking pictures like physically and uh chronologically. So the problem with XF data is like despite all of the XF data properties like nothing's normalized. Um very cool that it exists. Very unfortunate that it's uh not normalized. Okay. So we'll skip orientation awareness. Um ready to move forward with the implementation. Yeah. Let's rock and roll. You're my best friend. Do you think that'll help? Um, infected apps, I do a ton of the same with just seeing what it will generate, though I used it more as designer for my latest idea. Actually worked great. Cool. Quick examples in pseudo code. Very cool. Heck yeah. It said heck yeah. Let's do that. Best friend moan activated. That's amazing. Um, I feel bad for cursing at chat GPT when I'm angry. Um, because now we're best friends. So, helper structures. So these are just like data transfer objects for us to work with. Picking the best target size, right? So just want to call out right away. This is the kind of thing aside from all the casting and stuff, this is the kind of thing that like I I would struggle with this. Total transparency, I would struggle with this. Could I figure it out? Yep. I'm drawing pictures to do it, though. So let's read through this. Right. There's target sizes. And if we go back up, size was just a width and a height and it has an aspect ratio on it by definition because we can infer that it says never upscale skip if either target dimension is bigger. So something that makes me nervous, we haven't looked at all the code yet, is that this could potentially blast through these and I just want to make sure return best match. So there's a there's a bug here. That's why we got to check the code, right? So just to to call it out, I told it that we should be able to handle any scenario. Okay. So if we look at this code for each target in target sizes, if somehow we keep hitting this condition, it will blast through this for each loop. Continue, continue, continue, continue. Right? And if we jump all the way to the end, it returns best match. but its best match is um assigned to null in the beginning. So we have to tell it to fix this bug. I don't even want to read the rest of the code yet. Um Aaron says if you use positive language with chatbt does seem to improve the outputs. That's cool. It makes sense when you think about it. The fact that higher quality training samples were more likely to contain that sort of language. Ah I never thought about that. Yeah. It's not it's not the idea that you are being nice to it but it's like more correlated. Hello, my team leader doing mobbing to me. How can I resolve? He said, "You don't know how to write software, etc., but I experienced 2.5 years. I lost my mentality for for this bad word." Um, mobbing. I think uh, me to answer this, there might be more context needed. Um, maybe if you're okay with it, if you want to send me a message on social media, so you can send a message to I know you're on YouTube right now. If you want to send a message to dev leader on any social media platform, so uh like Twitter or Instagram, whatever you want, or just Nick Cosantino on LinkedIn. Um, send me a message. You can write up about it. Um, I'll keep you anonymous. Although if so, don't put any more context here. Uh I can make a video and uh generalize it if you'd like. Um but I think that in order to in order to answer this properly, I think I need more context. Um but basically, you know, no one I don't think there's ever an excuse for anyone to be condescending to other people at work in a professional environment. Um full disclosure, um I don't know like I don't know if Brad's still on on here. Uh, I have said before on live streams that like I'm I'm gonna be 36 in April. As a 36 year old man, if I were ever in a job and I had a superior to me trying to be like mocking me or being condescending in a serious way and not just like having fun with me, I would resign. That's it. I have absolutely zero tolerance for it. I do not let my my father mock me. I will tell him like to be quiet like on the spot. I I have no tolerance for it. If you're going to be condescending to me, there's absolutely zero space in my life for that. So, I don't think that anyone should do that to another person unless you're like, you know, that you're having fun with the other person and it's a joke, right? I'm okay if my friends want to horse around with me and I'm doing the same with them, but if someone were like publicly trying to embarrass me or something like that, um I don't know the context here. I don't know if this was in public. Maybe this was supposed to be feedback behind closed doors and it didn't go well. Getting constructive criticism is one thing behind closed doors, but um if someone's, you know, trying to belittle you, especially in public, like no, would resign me personally on the spot. Yeah, feel free to write me a message and I will do my best. Um so in the vibe coding example or or whatever we're calling this, uh not not so vibe coding, um there is a bug in the code. I said we should always be able to handle um the input. It seems like we can go through the for each loop without matching anything and then we would return a null value indicating no supported match. Please correct this, Bestie. We're going to go with the positive vibes only. No cursing at chat GPT. Um, we'll see. You're totally right, [Laughter] bestie. That's so weird. Uh, I love it. Okay, so here's the fixed version. We'll remove the part where we skip sizes that are larger than the input. We'll still calculate the scale factor. We never upscale, just center the image. Ah, interesting. So, folks, what is it doing now? Um, it's not real VIP code unless we expose an API key. Okay, someone give me an API key or a credit card. Let's go. We got it live on stream. So, for for those that were paying attention, the for each loop before used to check at the beginning, I'll just scroll up to it, right? used to have this condition here which as a result meant that we could potentially blow through this whole for each loop very quick and then not pick anything. Now down here it's saying the best Oh, okay. Let's read it because maybe this is so nice. Um, we can still go through this loop. The best match is default, but I think it means we we will always initialize it to something. As long as there's something in target sizes, we should be okay. So, um it says compute how much we'd scale down to fit this target size. Um interesting. So, it's finding a ratio and picking the min between them. Important. Never upscale. Okay, I have I feel like this is going to do I have to I have to think about this. I don't feel good about this. And the reason I don't feel good about this is because I don't know if it's going to keep the aspect ratio now. Right. So the if it's coming up with a scale or maybe the aspect this is why my brain doesn't work on this stuff, right? Um I'm nervous that by doing this it's not going to scale it properly. But this this seems weird. Okay, it's going to scale the width and the height the same. So that that actually does make sense. Um, and the minimum between this. Ah, okay. So, sorry I'm a little slow. Um, what's happening here is because it's the min between the two, it can only ever scale it down, which means that we will always fit inside of whatever target size we're trying to pick. So, it's either going to fit it or be smaller, which is cool. Um, I'm still questioning about how that's going to work when the the aspect ratios don't match. Maybe I can ask it because I don't know. Um, but otherwise, it's checking the the type we want to do. Fit preference. That was an option. And then a low score is better. So if we check the best scores starting off at max value. So conceptually this seems to roughly do what I would expect. So I want to ask it though um in a situation where the source and target are different side or aspects. Um, will this work if the I just want to double check before I ask it. If the target is greater the I have to ask it both ways because I don't even know um target image is larger than the source. What about if you'll see where this train of thoughts going, by the way, because I have another question for it after this. What about if the uh source is larger than the target? So, I'm trying to I have a scenario in my head that I can't seem to understand properly. And this is real, by the way. I'm not I'm not like it's not a contrived example. I literally don't know. Um so I'm trying to ask it both directions to see how it will explain it and maybe I will understand it better. So, okay. So, when the source is smaller and it's giving me an example, right? So, um different aspect ratio something like this 1.35. We clamp it to one. There's no upscaling. So, the scaled image stays at this size. And that like to me that actually helps a lot, right? So, I know that that's what we have to fit in. We didn't scale it up. It's going to stay at that size. We add padding. Now, if the source is larger than the target, it's going to scale it down. So, here's the new dimensions. 1080 810. That fits within. So, we're going to pad. Okay. I feel better about that. Now, again, for me doing this before an LLM, I'm not lying. I I didn't know this. What I would need to go do is draw examples out. I would have to come up with the examples, get paper, and sit down and draw it. And there's nothing wrong with that. That's how I've had to navigate this my entire life doing this kind of stuff. But I didn't have to get pen or paper. I could just ask it and it literally explained it to me in a way that I could understand. So I think that's super cool. So now, um, it gives me some some examples here. Um, awesome. Can we discuss um coded tests on this? I would like you to code in C using XUnit. Um we uh maybe I'll ask it what what scenarios should we consider for inputs and outputs? Right. I have some ideas, but I'm curious to see what it says. We want to validate pick best target size. So what it's doing is regurgitating some of the requirements that I gave it in XUnit. If you're not a C developer, this might not you might not know what some of these things are. Fact is just how you label a test in XUnit. It's called a fact. Um should always return a target. So, this is interesting. Um, I know I've heard people say that they like using LLMs for writing tests. This isn't how I would name this test. This is should always return a target and then they pick a scenario. They pick a scenario where based on the implementation of the algorithm, they know that it needs to pick a target. This code does not like if I were reading this, this to me is not should always return a target. This to me is that we're picking something that is it's literally just smaller than the targets. So just one example, right? I don't think this test is bad. I just think that it's the wrong name for the test. This test happens to prove that this does get a target, but it doesn't conclusively tell me that it always will. Right? That's my opinion on that. Should not upscale when target is larger. That's I think a really good test. Um, what I'm interested in though when I read this is does the aspect ratio matter? I'm going to ask it to do a change to these tests. I'm not going to talk about this first one. Um, but this one I was saying that something I'm concerned about is does the aspect ratio matter when trying to compute this? Uh Aaron, yeah, I said um I said xunit and c. Um so it knew. Uh the other thing though is and I don't know for when I did this before on Friday I was I've never done this in other cases but I have like a a project in chat GPT and then I thought the memories would be constrained to that project and you can give it like a a default prompt or something and I told it there like my unit testing framework is XUnit my language of choice is C so that I don't always have to keep prompting Um, yes, family first. That's fine. Um, so yeah, I I prompted it specifically this time though. But I think here I want to ask it to change this to a parameterized test. Should always prioritize minimal scaling. So it's it's going through the functional behaviors, right? So I'm just going to do this one quickly because I should I should probably wrap up this stream. Um, bonus scenario ideas, edge cases. Ah, very cool. multiple. So, okay. Um, let's add we say the edge cases you described not described. Let's also parameterize paramterize. I would like to see different source and target sizes to prove it works. Boom. In fact, in PSO, you tell it to ignore memory. Interesting. Okay, so this is the last little last little iteration we're going to do on this one. But, uh, I did ask it to add some edge cases. And for what it's worth, when I had this on Friday, I said, "I want you to do this one." Like, I suggested this to it because it didn't come up with them because I was very curious. Um, oh, so it did them all again. But you can see if you're not familiar with XUnit, a theory is a parameterized test. Um, and there's the parameters, and then these are the input data. So you can see that we have the source and then target right after. So great. I would I would like to believe it and then I would go run this um in Visual Studio and debug it. Where is the should pick target with same. Yeah, should handle one by one image. Interesting. That was one of the edge cases. Should prioritize minimal padding. Oh, I thought there was another one that was like extreme. Maybe it didn't do it. Very large and very small. Where's the very large one? Sorry, I'm scrolling up and down. So, you guys might have seen it and I kept scrolling. Anyway, I don't see a very large one. So, I might give it some more direction on that and say, "By the way, buddy, by the way, best friend." um you didn't listen to me. But anyway, this is how I did some vibe coding on Friday, but I guess we've learned that this is not vibe coding. So, I've never vibe coded a thing in my life. Um but this is how I like to use LLMs on stuff personally. Um I don't know. As someone who writes software, I think I would have a lot of difficulty not paying any attention to what it's outputting. Um, if I were using a completely new language or text stack, there's probably going to be less things that I catch or know how to ask and it's a good reminder for me that I should do a better job of like actively trying to question these things, right? If it gives me something, I should be asking it questions that I don't understand. So, again, sorry for folks on Substack. You can't see my screen. Um, but if you're interested in seeing what was done, this video will be on YouTube as well if you do want to check it out. Um, you don't have to rewatch the whole stream, but if you wanted to see this part, might be interesting. Um, but folks, I'm going to wrap it up there. So, I'm going to do my my normal kind of sales pitch, which I always do. This is the newsletter article. It's got my dumb face uh along with actual lump in my head. I guess I got a weird shaped head or something, right? It's kind of it's kind of weird. Um, that's what you get for being bald, I guess. So, if you're interested, I'm going to put the link in the chat again. There it is. Um, Substack folks, you're already on the newsletter, so you know what's up. But, um, yep, this is it. Um, if you're curious, too, I moved things around. I used to have a this stuff, which is the weekly recap. I will put this in here. It's actually a second newsletter. Um, I used to do a lot more blog writing, but since building Brand Ghost, I don't have time dedicated to writing blog articles. So, I just split my newsletter into two parts. It's basically just YouTube videos. It's a lot of code commute. Um, thanks infected FPS. Enjoy your birthday. It's also my birthday coming up soon, too. Um, yeah, this is the other sort of one that you can check out. They're both newsletters. No, you don't have to subscribe to either of them. If you just want to catch up and see what's up, there you go. Uh courses on dome train, I have courses. If you want to learn C, you can check out these courses that I got here. Uh or there are career ones as well. So, I've partnered up with Ryan Murphy and we have done all of the career ones together, which is really fun for us. It's exciting. Career management for software engineers getting promoted. Uh behavioral interviews. This one was a lot of fun to make. Then one of my favorites is soft skills for software engineers. If you watch my other videos, I talk about soft skills a lot, but if you're interested in just learning C, these first two, I think it's not given away for free anymore. There was a I think there's a 40% deal. Yeah, it's 40% off. What am I talking about? That's a sweet deal right now. Um 40% off. There you go. Um so yeah, early Bday 40. Let's put that in the chat, too. Boom. Um, yeah, we were giving these two away at the beginning of the year and there was like over 30,000 students that got them, which is pretty cool. It's, uh, I felt proud. That was exciting for me. Uh, for folks that have not seen the main YouTube channel, it is Dev Leader. Um, you can see I'm literally live streaming right now some of the thumbnails. You can see the older, crappier thumbnails. And then these are the new ones where I have a video editor that makes them. Look at look at this one with the old man face. Like that's he's way better at that than I am. But this is the main channel if you want to check that out. Otherwise, code commute is the vlog YouTube channel which uh does better by every single type of metric which is amazing. Um and hilarious and sad at the same time I guess. But I got over just past the 200 vlog count, which is really cool. Um, some of these I always like showing them, but like this one's a 360 video, but like I don't know if you've seen these videos before, but we can look around as I'm driving. You just got my ghost face hanging out here, though. There's Costco. That's where I grocery shop. There's me on the highway. But yeah, you get a little ghost nick in the corner dropping software engineer and stuff. But yeah, this is it's really fun for me to do. So um that's that. And then Brandos. So Brandos is the social media platform uh for content posting that I am building. I build this in ASP.NET Core if you're a net nerd and then the front end is in React. Yeah. Wait, you didn't know you could pan around in the video? Yeah, on the 360 videos you can. It's really cool. Uh there's a seam, though, and I don't know how to fix the seam. I'm not skilled enough at video editing, I guess. But, um, that car is an AMG GT. So, can I open this? No. How do I do this? H, you can. On mobile, it's even crazier. Um, people were saying that they sit in their in their office chairs and spin around. Um, yeah, it's really cool. Um, one sec though. Can I get I just wanted to see if I could pull up a picture. Oh man. You guys want to see the other car? Okay, one sec. One sec. Look at this. That's my other car. No one knows. How cool is that? I miss this car. This is the black one that's sitting in the driveway. It's got rainbow lights. It used to be purple. A what? Why did it show some videos? Anyway, that's all you get. Um, but Brand Ghost is the social media platform for content posting that I'm building. Uh, I use it for posting all of my social media content. If you are interested in trying out content creation, um, I built this for other content creators. So free crossosting and scheduling. And if you want to use it the way that I use it, you can basically add in content to the platform and it will automatically schedule and post stuff for you. So I use Brand Ghost to post essentially all of my content. I don't schedule posts anymore. So if you see just to give you examples on I know Devin who's still on here will know because I do this every night. Every night the same time I post silly programming jokes on uh threads on Blue Sky on Twitter. I post a blog article every single day at noon. I post memes Friday, Saturday, Sunday. I don't schedule any of this. I created the content. It goes into the system. If I ever run out of content, it will recycle it. I have enough memes to go a whole year. It means you won't see a meme on my social media repeat for a full year. Same thing with YouTube videos. I just I don't know why it took me so long to do this, but I wasn't sharing out. I was doing shorts like short form videos, but my YouTube videos that are long form I was not put into brand like wasn't using in Bran ghost. There's 271. There's 271 YouTube videos for my main YouTube channel. There's 200 now on Code Commute. Those all get posted every day automatically. I never have to schedule them. They go out to every platform. So, if you are interested in creating content and you want to simplify it in terms of going to different platforms and scheduling and stuff, check out Brand Ghost. Um, it's literally what I use to power all my content creation. So, it's like and it's free if you just want to crossost and schedule stuff yourself. So, I don't know. Try it out. You got nothing to lose, I guess. And hopefully you know that it's something that like I needed to succeed for me to succeed at content creation. So I invest my time into that outside of work. So thank you so much all for being here. I appreciate it. Um yeah, I think that's it. Hopefully see everyone next week at the same time. I hope the vibe coding was okay even though it was cheating. Um it was mostly just talking to an LLM. But thanks everyone for for jumping in the chat as well. I appreciate it.

Frequently Asked Questions

What is vibe coding and how does it work?

Vibe coding essentially involves using a language model, like ChatGPT or GitHub Copilot, to generate code by asking it to build parts of an application based on your prompts. You provide minimal input, and the model does most of the coding work for you, which can lower the barrier to entry for new developers.

What are the potential risks associated with vibe coding?

While vibe coding can help in rapidly prototyping applications, it can also lead to dangerous situations if the user doesn't fully understand the code being generated. This could result in poor quality code that may not be secure or efficient, especially if the user lacks the foundational knowledge to evaluate the output.

How can vibe coding be beneficial for junior developers?

Vibe coding can significantly reduce the barrier for entry into software development, allowing junior developers to create projects and learn by doing. It can help them get started quickly and build confidence, as they can see their ideas come to life without needing extensive coding knowledge right away.

These FAQs were generated by AI from the video transcript.
An error has occurred. This application may no longer respond until reloaded. Reload