
Developers
Jun 19, 2025
Monsey
Vibe Coding
Exploring the realities of “vibe coding,” best practices for integrating AI into development, and how engineers can leverage AI as a learning superpower.
[ PRESENTATION ]
Video Transcript
All right, everyone. Thanks for coming and listening. I don't know if anyone gets this, but if they do, this is my favorite video on the internet. Look it up later. It's great. So, basically, he is somebody that claims to be really successful even though he has no technical ability and that is like the claim of vibe coding a little bit, but you know, we'll get into that. All right. So, before I get into vibe coding, I just want to start off with my impression of AI in general. So, I don't know if anyone else experiences this but talking to AI sometimes becomes very disconcerting. There's something very strange about it almost like you're talking to a crazy person like someone that's insane. So, and why is that? So, you know, like it once lied about CSS. It just straight up made up a CS out of whole cloth. And that was before it was an AI agency. You didn't see it right away. So, it's actually very disappointing. I saw the code. I was like, "Ah, that's great. I didn't know that existed." And it didn't. So, that was very upsetting. But you look at like why are you lying? You know, like you know linear algebra. Why are you lying about CSS? And it's such a like it's a disconcerting feeling. And so it's important to understand what AI is actually doing when you interact with it. So, without getting too technical because I don't really understand it myself, but the concept is that it tokenizes all of your language and it and it builds up a sentence or your answer based on based on based on you know the predictions of that of that matrix, right? And it's and it's amazing and it's amazing but it's only it's guessing and it's guessing really well. So, so that that's a clue of how it should be interacted with that it is a it will produce copyable things and the best way to use it is something that's easily falsifiable. I was speaking to lawyers, they're in, you know, a little trouble because people going to people are going to get caught quoting cases that don't exist. It's going to happen. It's going to happen a lot. So, how do you know how do we avoid that? Again, it doesn't use it doesn't it doesn't actually it doesn't also there is no memory. It's not learning from your interaction at all. That's a misunderstanding when you when it's the the why it loses context so powerfully is because every prompt in a conversation is just is just adding on to the previous prompt and it's not it's not understanding or becoming better because of your prompts. All right. So, Okay. So, I had I saw this video the other day and I just wanted to and I wanted to speak about I wanted to just show this quickly if the internet will load. Generators aka vibe coding have gotten so good. Check out what Gemini can do now. If you go to 2.5 Pro, the latest model, come over here and create a canvas and say generate a LinkedIn clone, what you will discover is that it can produce this massive amount of code. And when you preview it, look at this. This is literally a LinkedIn clone down to creating posts, down to your profile section, even a Okay, so he's here giving the impression that he recreated he recreated LinkedIn. But what he's really showing over here is a is a tsx file with no back end. So so he hasn't re what he hasn't recreated LinkedIn. So I wrote a little I wrote a comment over here. I said nice work. One second, just saying calling it a LinkedIn close feels misleading. It's more like a model car versus a real car. Front end grammar business logic database and then I wrote I said the hard part is database logic and and database design and then I wrote comment cleaned up by a assistance. I asked to generate a more polite response. So what do I mean by that? I'm saying this is not the guy didn't it's it's nonsense for for for for a couple of really interesting reasons. One second. I just want to get back to So firstly, it's not terribly interesting. LinkedIn's front end is available online. It's a it's a publicly referenceable file. I'm saying not we you can see the HTML and the basic functionality. It's also it's also it's also when you say recreate LinkedIn. So when you're asking the AI to recreate in LinkedIn from the front end perspective you're giving a lot of information but from the back end's perspective you're not really asking it anything because that is not a that is not there is no question there. The B the business logic of every business is is is is very is is is is much more specific question. So it's not even that the prompt can't give it to you. You're not even asking for that. So So and by the way I checked this like last night. I was like I went on to lovable and I'll show you and I was like let me just make sure I can't actually vibe code the whole app that I'm claiming you can't actually vibe code. So I was like go make me this app. And I was like oh no I have to change my talk. And then I look at the files and no it's like and then I read the prompt and it's like we created your app for you. I was like I was like created next.js with a full back end and like so then so then like and it's like okay we created for you and then like right then it's like now you have to connect it to your superbase account. Also we decided to go with flight instead of nextjs because you know to keep things simple we made you a front-end application and we we decided that you have to use like a a front-end framework to connect to back end. So which is so so we'll get into that but and then I saw this also I'm just going into like the non-technical stuff first to like you know to to bring out our point. I watched this video of this lady saying like and I all the haters out there hate vibe coding. I just vibe coded this conference and like you know you you software developers the gatekeepers like always like we can do this now and and whatever. So I'm looking at that I'm like when did you think that we didn't want you to understand technical things like do you when when I was in that product meeting with you trying to explain to you why it's so hard to migrate databases with no downtime do you think I wanted you to know less technical things when you were rolling your eyes? I'm so glad you're here with me dealing with null pointers and and and and errors like we're not we're not gatekeeping but that is not it is not interesting to produ Yeah, you can produce like a conference landing page but what what is the value in that and we and we'll and we'll get to that. We'll get to that soon. Um okay, one second. I wanted to show this is I I I have permission to show you this by the way. Um one second. So, a friend of mine, this is this is the last point and then this is the last point and this point. But so, a friend of mine messaged me today. He's like, "I just vibe coded an application and and uh and it's like a whole CRM for my wife's like patient management." And I was like, "It's amazing." And I was like, "Oh, maybe she liked up the the the vibe here." So, this is this is him. I asked So, one second. So, I asked him what backend he used. Now you shouldn't laugh too much. No, you should. We we deserve it. All right. Um I don't know. I don't know anything but uh um I don't know if there's any real back end. Basically, what I'm using is tailwind for the front end. And then I think for the back end, I'm using what's um does it make sense to be that I'm using HTML? Would that be JavaScript? Um I think I have a JSON package in my thing. And and I wish I knew. I was really safe. And um what was it other thing? I don't Yes, but that's for the JSON. But uh yeah. So, okay. So, so there so there has to be so we have to define what the what the value over here because I don't I don't think it's worth this but let's go let's go v one second. I just lost the okay fine okay so this is really I I really I covered this like and the other thing is I've seen online you know real problems of people just exposing their keys and like it's just it's just unbelievable anyway so that's not for us because we're We're we're engineers. I don't know if anybody ever had this. Like I've been playing around with it and like this is you know this is this is that's real. I'm saying fine. So So now I might be giving the impression I'm making fun of this vibe coding stuff and um and I don't I don't like the using AI. Um so I just want to show you this video for a second and then comment on this just for a second. Oh, one sound where like most of the code is written by AI and I don't mean next 12 to 18 months we'll reach the point where like most of the code is written by AI and I don't mean like auto. So I saw like Satia say the same thing. He said like 30% of the code is AI and he and Mark Zucker was like maybe 50% of the code is AI and when I looked at that I was like that's it? I mean they're not talking about my code because it's you know probably closer to 80%. I'm saying so so I'm very bullish on on on AI. So what so how do I how do I um advance this this this this contradiction? Um so and I meaning everything you see here tonight was you know AI like I'm saying I can't spell I'm thinking what like the so so I'm very very bullish in AI. So what is the so so so what do I think AI is for? So firstly AI is for us like it is for learning it is it is it is what we dreamed of. It is it is a learning it is a learning superpower. I remember like at at my current job they like we're building this um backend lambda in C. I've never dealt this dependency injection. I've never I never compiled C before like I never worked in it and yeah in like in like a week I had like a working Lambda that and that's running all of um all of uh you know like stripe verification in in in um in Autotrader. So, it's a pretty used back end and it I just wrote it because I don't know I knew how to write it in JavaScript and I was like, "Hey, I need to do this." So, Kusha wanted to do and then when it broke I was like, "I don't know." I mean, I had somebody help me with some uh tree shaking, but you know, that's that's insane. But but the but the um and then and then let's say like all your dumb questions or or the questions that you felt were dumb are now now have answers because of because of AI. And now you can like dip into you know like this is like I want to give an examp couple of examples. So I I'm trying to work on I'm working on this VR base medish just uh like uh like base you go into take swarm off the shelf and and and go through um one second. How do I get out of this again? Uh what? Second. Uh so this this is a like something I built with 3JS and and um this is Web XR. So, you can like go in, you can Now, it doesn't look like much and it and it's because it isn't, but um you can open a safer inside there and you can turn pages. This is going to look very funny. I'm just warning you. Um like the turning the turning is not the turning is not right, but you can you can go there and these and I didn't use like a graphic generator for this. Meaning this this this is like this is raw um this is raw code and geometry. So I would never have been able to just step into this API like without spending a long time like studying it you know I mean who has the time to do that but now with um now with uh now with um now with AI you can learn you can pick these things up like really fast so anything you wanted to know any language C you wanted to learn C you can learn that it's not it's not a problem anymore you you'll you'll be able to follow steps you're an engineer and so obviously you could have done that before right but now your the point of entry is so much is so much faster Um, one second. Okay. Um, oh, one second. So, so for I think for for any sort of what did we see from like the LinkedIn and the and the regular CRM stuff is that we do two types of um engineering work. we do some type of engineering that's off that's in um original very rarely do we do that I mean that's the core business logic of a lot of of a lot of applications is somewhat original but most of the work we're doing is just copying expected patterns like signups and CRM and you just right you're not like you know we're going to do we're going to put the um password and then the username like no one no one's going to do that right so so just that's that's that's the way it's set so so AI can immediately produce it for you and so like I have this I have this little startup um that uh you know is a uh is a um like a point click clair um uh um uh integration. I know how to do that ago if you if you if you ever want to know but um so it's a point click care um in integration and um the front end of it is just like a CRM. So if you and we're going to do this later but if you know how to like if you have a if you have good typing and you have and your code is pretty clear on how you're and how you're pulling things. So then then you're saying, "Hey, spin up the CRM." Takes a second because you because your code is set up is set up correctly for that. Um SDK integrations, right? You never have to like look up docs anymore. Hey, Amazon, how do I um grab like a signed signature from you and then upload like a URL? Do I have to like read the docs for that? No. Never again do you have to do that because for the most part it would just it would just know that. We just saves it saves a ton of time. Um it would die. Yeah. But then but then like then you like Google I'm saying it it eventually gets it right for that type of thing and most and also gets you so it I didn't say this before but like for for tasks where you need 100% accuracy so AI is useless but like I record like a podcast right so um it's called the Wilson shop show um the the um the uh I use some I I use something called Riverside FM and what's so amazing about it is that it produces like um a uh um the transcript for you and you can edit in the transcript. The point is that you don't if you need 100% accuracy from from AI, so then it's then it's useless. But for us, if we're getting if we can get to 80% 90%, that's perfect. And then we just we just we'll just finish it. Okay. Um how much time do we have? I want to make sure there's time to code. Um one second. So So what how do I think you're you're supposed to you're supposed to um you're supposed to use AI. So firstly like there's there I don't believe there'll ever be an AI engineer because you can't produce you can't ship something without someone being responsible for it and and the responsibility hasn't shifted. You have to know what your code does. You know there if you're if you're like clicking like there's there was this meme if you're clicking like when I AI code I click accept all it's going to be it's going to be um it's going to be a disaster. It's just it just I I had a I had a project where I was trying to do that and like I had to start again. It was just like it it just it just ran away from me. And and what you end up doing is your code immediately becomes your code immediately becomes legacy code. The idea of like someone just vibe coding. If I if we open up those TSX files, they're like um they're 30, you know, they're they're like long components. They're not splitting they're not splitting it up unless you ask it to. And then if you're going to do more and more and more of that, you're just going to end up with like reams and reams of of of code that you never want to you never want to look at again, right? Why do you why do you hate jumping into legacy code? Because it doesn't make sense. There's zombie code everywhere. Your code will become legacy code in a second if if you if you love it. So you have to you have to understand everything that um that you do. Um one second. And then what I've discovered is that good coding practices are even better with AI because having good readability allows you again for yourself to be able to jump back into code bases um to be able to but but have once it's refactored so that the AI always understands better what you're asking it to do when you're looking at that. So if you if you have like a huge HTML L file and you're like clean up like the um clean up the testimonial section AI doesn't really know how to do that. But if you're in if you make if you make the testimonial section into component and then you say hey make this you know make this better or whatever. So then you're then then then your chances are are 100fold that it's that that it's going to get it right. Okay, cool. So now um I want to do a quick example of how I do this of how how I think we should do this and then we'll take questions. And by the way, these are just, you know, my haharas on the topic. You know, this it's a very new it's a very new new thing. And um I'm interested to hear what everyone else has to say. One second. Okay. Oh, wrong one. Okay. I spun up this um Vite project today. One second. with these prompts. Like I just wanted to start it off. Um I'm not cheating here. I just wanted to make sure like we could just get it going. Okay. Um one second. Fine. So I'm just going to get one. I'm going to start off. I cannot hold this. I can't hold this and do n word. What? I mean if you um one sec. No, this is just I'm just using I'm just using co-pilot. Oh, oops. Yeah, yes, I know about that. Okay. Still needs to be bigger. Really? I don't know. That's I think that's that's as big as we're going to go. Um Okay. One second. Okay. I'm going to start with my first prompt. Okay. Um No, one second. Um Okay. Superbase. Sorry. One second. Sorry, I'm just getting it to connect. Okay, one second. Um, what's going on, Coladney? Okay. So, I'm going to connect to my Subbase account. All right. So, create um a super a setup with these creds. Okay. We're going to make an ideas board. Let's see if the internet's working over here. Otherwise, I'll show you. Okay. So, once to install Superbase. Very good. And then it's going to set up the the account. All right. So, we're installing Superbase. So far, we are um view. Oh, come this side. What are it doing there? No, I I told it to add. Okay, fine. Is that it? Okay. Um, let's see. Okay. So, let's see what I'm did. Okay, fine. So, here's I always like to So, let's see what it did. Um, okay. So, it set up the client and then it and then it um fine. So, let's see that. What What am I showing? What are you Yeah. Just make this font bigger. Oh, can I make the font bigger? Can people can not see? Is that better? Yeah. Okay, fine. All right. Okay. All right. So, commit. Okay. Fine. Commit that. Really? This is so lazy, right? I just don't want to type. Commit that. Not a chance. I'm showing you that you can do like I'm trying to I'm trying to show the real We're vibing over here. I'm saying commit that. No. What's I don't know what the problem is. Anyway, fine. All right. Okay. Cool. Now, okay. So, now we should be Now we should be connected actually. Do Do I want to Am I Am I running? Yeah. Um Okay, fine. All right. Cool. All right. So, now I'm gonna before I I'm not even giving it my whole um one second. Uh sorry, I just had my type. I'm sorry. One second. Oh, there we are. Um okay. So this I I I made a little before but I'm just giving you a type from my um the idea table. Okay. So I'm saying okay make this type type from the ideas table and make um um hooks. My spelling is terrible with with I'm okay with make hooks. I'm I'm going to tell it to make hooks. It's a CRUD operations for this uh table. Okay. So right now these this is just like very boiler plate. Okay. Okay. So, here's the type and now my hooks are coming in. Okay. Um now I don't like this because it is I want I want an abstraction I want to write an abstraction for um like I don't think I should have the superbase stuff directly in in the in the hook. So um uh one second for the super base calls can uh consent. Okay. So let's see refactor that. So like when those if you there are a lot of good code out there. So if you're if you're if you're sending it to good coding practices, it's going to it's going to know know what to do. All right. Okay. So now it created the um the hooks and the idea service. One second. Did I delete that? Import. What? No, you can't that I don't want um has it has to fix that itself. That's that to do that anyway. But I'm gonna I'm gonna I'm gonna ask it to fix that line. Yeah. No, right. Ask it to fix the line. All right. All right. All right. We're doing this together. Just in the thing. Just say there's an error. Fix it. Yeah, that's uh we know. We know. We know. There you go. Oh, it's so dumb that it didn't even. Okay, I think we're going to do one actual of our own edit. What? Keep going. Let's see if No, no, no. I'm just going to put that there. I think we can I think we're allowed to do one um uh one one actual edit. I think that's fine. I think no I'm saying we're not truly that's that's my point right okay fine so we have these two these two files and then um want to fix the same thing over here type cool and that is not used brilliant okay excellent um okay so let's commit that let's commit commit that Now, if we really want to be cool, we can um we can if we really want to be cool. Now, this is the best part about um about this is that didn't save. That's weird. Um no, I don't think so. Anyway, so let's um Okay, let's make tests for both both of those. Oops. I I I meant uh what did I mean? That's really funny. I just wrote cheer instead of uh um I'm pulling a blank. What am I supposed to What was I saying? Um Right. Right. Cool. to the tools you're using. Yeah. Okay. Yes, that's a really good point. So, I'm using so I'm so so I didn't speak about this. So, let me just show you what I'm using over here. This is VS Code and um down here it say it has like ask mode and um and agent mode. Um so, so agent mode is the one that will actually change code for you whereas ask is just like is just I'm talking. Copilot is a little different. Copilot is like is more like an autocomplete. Um so what are you using co-pilot? This is this is co-pilot but as an agent. So and I'm using I'm using Gemini for the um for the model. I found that like none of these things matter in the sense that in the sense that they're all they're all the same. They're all like okay like you you all basically the same. I've used cursor I've you know I've used cursor wind surf the model like I've used claude and gemini. I haven't noticed like a major difference between the two. I don't know if anyone disagrees. Um, and that's fine. So, you see like we're using like this. We're now we've now we've now generated the business logic. We've now generated the the um the and the tests. I um I I suspect that when we do run the tests, they won't they won't work. um because because there'll probably be something with some mocking but so usually with testing this is like very this is very powerful that usually with testing you have to get one test right so I usually write I usually figure out with mocking write one test the most basic test just to get all the the mocking run and then you can just say hey I just generate like a million tests and and and and because they're they're b it's basically the same it's basically the same thing so that just so so so again once you do one thing correct so then it it solves itself. Then it's good if you if you tell like if you tell the model write think outside the box and think of every single use case then sometimes it's pretty good. Well, it's good it's good if you wrote but it's good if you wrote the code right. Meaning like if you if you if you say test this huge form for me that's useless. But if you but if you refactor it properly and you say okay test this button and it's statically typed so then it sees inputs to the button and it sees the typing on that button. So then it's very easy for it to figure out what all the all the all the tests are because this is a submit button. So the more like that I'm pointing out, the more declarative your code is, the more refactor your code is, the easier it is for for the fiery to just know what know what you want and and and it's easier to do that because wow, it really doesn't like um saying the type I'm saying. You're right. You're right. You're right. But anyway, um okay, so these are the tests. All right, fine. Now I want to I want to um Okay, cool. Now, now let's uh create front end. Um want it to notice board um with a posted notes and a plus at the bottom. Want to create um each should be each card should does it work better. No, I I I don't I don't find that at all. I don't find that at all. Now, what's going to be generated now is going to be horrible, but that'll be fine because we we'll fine tune it. Um All right. Um cool. Um, okay. one and one other thing I I wanted to mention which which I'm hopeully hopefully we're going to get to is that so um I don't know about you but I used to rely on like a lot of a lot of open source for like like dumb dumb things and even let's say you know like I never did time stuff I just always just use momen js until they got deprecated I had like a I had like a test to you know make one of those things on had like specific business rules if if it's like right away then it's like a few minutes ago and if it's like a week ago then you say that in words or whatever and I just like took I took the uh I took the rally card and I put it straight. That type of stuff is like where AI shines. And you don't even need to you can just get it to work with the date API. You don't have to like you can get much closer to the metal. You don't have to like oh I need to use this like stupid um thing because I'm too lazy to learn how to manipulate dates or whatever. Now you can you can get that. So we're going to hopefully we'll we'll play with that soon. Okay. So let's see um if it actually built something that' be pretty cool. One second. I just need to make this one second. It's not um It's one second. Okay, let's see if it runs. I'm I'm be I So this is like a good example of how code one second I can't for some reason my it's like blocking but I can't get to my terminal here. Oh, there. No, but it's like it's like hiding my Oh, I don't know why the thing is doing that. What? No, I can't. But I'm saying I don't know why it's like blocking me. Oh, there. Once I just run it, then I'll I'll Okay. One second. Let's see what I made for sure. No, it's it's it's it's uh I think it's still building. I can't see. One second. I'm sorry. I don't know why this thing isn't I can't Anyone know why my thing is doing this? It's like I just run in a terminal. Uh that's one thing very good was running twice. So he's running over there. Okay, I don't want to I don't want to use too much of your time because I because I I did one second. Let me just see that. Okay, if this if this is not working, I don't want to waste too much time. I don't want I want to get the questions. So, I'll show like something else I generated beforehand, but Oh, no. This No, this is not it. This is not it. That's No, this is It's the wrong I'm in the wrong one. I'm in the wrong directory. One second. Let me cut that one. One second. No, here. Here we are. Okay. Copy. Um, sorry. One second. Okay. So, nothing is showing yet. So, I just want to Okay. Um, one second. Let's see. Showing it. Okay. So, in the meantime, I want to show you what I what I built what I built last night on this because this could take a little bit of time and I don't want to take all the time of the um of the talk because we got I got the the back end part of it. So, let me just show you the code that I generated for the front end I generated last night. One second. Yeah. I'm going to move it over. Okay. Um, one second. Sorry. I'm just going to show you the code for this. Why is it not Why is it not letting me here? Okay. So, this is the code. So, we're going to get to the front end. I It's taking a little time. I never really load live coded this before, but this is the um this is the lovable project I did. And this is the um this is the code for that. Um and you see it like lets you build um I'll show you the code it generates for that. Um one second. And just to show you that again this is the type of code it's going to produce. Um, one second, right? Which is and this is and this is not bad. But this is immediately the way the way I would work with this is is is is to refactor this because this is the type of thing that could easily get away from you. But like right now on the first iteration, this was the first first iteration. If you refactor this again and you iterate over that, then it's then it's fine. So this is this is this is produced by lovable and and mine would produce a very similar thing if we gave it another 20 minutes. I don't want to take all of your time but again this is um this is this is pretty good and and this is an expected pattern and um and if you have the front end and then you built up the back end like we did um not really a full back end but if you if you build it up like that then you have clean code and you have beautiful code and then you have um something something ready like to to prototype right away. Um and and and to build up components like this is fantastic because you have piece after piece um and you have everything you need. So this is the way I like to do it. This is the way I've been using it. This is the way um you know I ship to production like this um a lot. Obviously I do a lot more of the actual coding here. We're trying to really freewheel um but but that is the uh that that is the point. And the point is that and the point is just to end off that this is this is positive because this is going to be a multiplayer. people are going to go online, start these ideas, see what they look like, and say, "I want to build that." And they're going to need someone to build that. And and people that really understand code will have a superpower. The is not going to replace engineers. It's going to take engineers that actually understand what's going on and be and be and be so valuable. And so, and so I feel bad for engineers that are coming up now with with with like only AI. It's like, no, maybe they should they they should take a diet from that because they really need to understand what's going on. But for but for engineers that that that do understand code that that want that keep up their best practices this is this is this is this is this is what we dream of. This is these are our wings. This is this is fantastic. And so um yeah that's that's like to end. All right. Any any questions?
Video Transcript
All right, everyone. Thanks for coming and listening. I don't know if anyone gets this, but if they do, this is my favorite video on the internet. Look it up later. It's great. So, basically, he is somebody that claims to be really successful even though he has no technical ability and that is like the claim of vibe coding a little bit, but you know, we'll get into that. All right. So, before I get into vibe coding, I just want to start off with my impression of AI in general. So, I don't know if anyone else experiences this but talking to AI sometimes becomes very disconcerting. There's something very strange about it almost like you're talking to a crazy person like someone that's insane. So, and why is that? So, you know, like it once lied about CSS. It just straight up made up a CS out of whole cloth. And that was before it was an AI agency. You didn't see it right away. So, it's actually very disappointing. I saw the code. I was like, "Ah, that's great. I didn't know that existed." And it didn't. So, that was very upsetting. But you look at like why are you lying? You know, like you know linear algebra. Why are you lying about CSS? And it's such a like it's a disconcerting feeling. And so it's important to understand what AI is actually doing when you interact with it. So, without getting too technical because I don't really understand it myself, but the concept is that it tokenizes all of your language and it and it builds up a sentence or your answer based on based on based on you know the predictions of that of that matrix, right? And it's and it's amazing and it's amazing but it's only it's guessing and it's guessing really well. So, so that that's a clue of how it should be interacted with that it is a it will produce copyable things and the best way to use it is something that's easily falsifiable. I was speaking to lawyers, they're in, you know, a little trouble because people going to people are going to get caught quoting cases that don't exist. It's going to happen. It's going to happen a lot. So, how do you know how do we avoid that? Again, it doesn't use it doesn't it doesn't actually it doesn't also there is no memory. It's not learning from your interaction at all. That's a misunderstanding when you when it's the the why it loses context so powerfully is because every prompt in a conversation is just is just adding on to the previous prompt and it's not it's not understanding or becoming better because of your prompts. All right. So, Okay. So, I had I saw this video the other day and I just wanted to and I wanted to speak about I wanted to just show this quickly if the internet will load. Generators aka vibe coding have gotten so good. Check out what Gemini can do now. If you go to 2.5 Pro, the latest model, come over here and create a canvas and say generate a LinkedIn clone, what you will discover is that it can produce this massive amount of code. And when you preview it, look at this. This is literally a LinkedIn clone down to creating posts, down to your profile section, even a Okay, so he's here giving the impression that he recreated he recreated LinkedIn. But what he's really showing over here is a is a tsx file with no back end. So so he hasn't re what he hasn't recreated LinkedIn. So I wrote a little I wrote a comment over here. I said nice work. One second, just saying calling it a LinkedIn close feels misleading. It's more like a model car versus a real car. Front end grammar business logic database and then I wrote I said the hard part is database logic and and database design and then I wrote comment cleaned up by a assistance. I asked to generate a more polite response. So what do I mean by that? I'm saying this is not the guy didn't it's it's nonsense for for for for a couple of really interesting reasons. One second. I just want to get back to So firstly, it's not terribly interesting. LinkedIn's front end is available online. It's a it's a publicly referenceable file. I'm saying not we you can see the HTML and the basic functionality. It's also it's also it's also when you say recreate LinkedIn. So when you're asking the AI to recreate in LinkedIn from the front end perspective you're giving a lot of information but from the back end's perspective you're not really asking it anything because that is not a that is not there is no question there. The B the business logic of every business is is is is very is is is is much more specific question. So it's not even that the prompt can't give it to you. You're not even asking for that. So So and by the way I checked this like last night. I was like I went on to lovable and I'll show you and I was like let me just make sure I can't actually vibe code the whole app that I'm claiming you can't actually vibe code. So I was like go make me this app. And I was like oh no I have to change my talk. And then I look at the files and no it's like and then I read the prompt and it's like we created your app for you. I was like I was like created next.js with a full back end and like so then so then like and it's like okay we created for you and then like right then it's like now you have to connect it to your superbase account. Also we decided to go with flight instead of nextjs because you know to keep things simple we made you a front-end application and we we decided that you have to use like a a front-end framework to connect to back end. So which is so so we'll get into that but and then I saw this also I'm just going into like the non-technical stuff first to like you know to to bring out our point. I watched this video of this lady saying like and I all the haters out there hate vibe coding. I just vibe coded this conference and like you know you you software developers the gatekeepers like always like we can do this now and and whatever. So I'm looking at that I'm like when did you think that we didn't want you to understand technical things like do you when when I was in that product meeting with you trying to explain to you why it's so hard to migrate databases with no downtime do you think I wanted you to know less technical things when you were rolling your eyes? I'm so glad you're here with me dealing with null pointers and and and and errors like we're not we're not gatekeeping but that is not it is not interesting to produ Yeah, you can produce like a conference landing page but what what is the value in that and we and we'll and we'll get to that. We'll get to that soon. Um okay, one second. I wanted to show this is I I I have permission to show you this by the way. Um one second. So, a friend of mine, this is this is the last point and then this is the last point and this point. But so, a friend of mine messaged me today. He's like, "I just vibe coded an application and and uh and it's like a whole CRM for my wife's like patient management." And I was like, "It's amazing." And I was like, "Oh, maybe she liked up the the the vibe here." So, this is this is him. I asked So, one second. So, I asked him what backend he used. Now you shouldn't laugh too much. No, you should. We we deserve it. All right. Um I don't know. I don't know anything but uh um I don't know if there's any real back end. Basically, what I'm using is tailwind for the front end. And then I think for the back end, I'm using what's um does it make sense to be that I'm using HTML? Would that be JavaScript? Um I think I have a JSON package in my thing. And and I wish I knew. I was really safe. And um what was it other thing? I don't Yes, but that's for the JSON. But uh yeah. So, okay. So, so there so there has to be so we have to define what the what the value over here because I don't I don't think it's worth this but let's go let's go v one second. I just lost the okay fine okay so this is really I I really I covered this like and the other thing is I've seen online you know real problems of people just exposing their keys and like it's just it's just unbelievable anyway so that's not for us because we're We're we're engineers. I don't know if anybody ever had this. Like I've been playing around with it and like this is you know this is this is that's real. I'm saying fine. So So now I might be giving the impression I'm making fun of this vibe coding stuff and um and I don't I don't like the using AI. Um so I just want to show you this video for a second and then comment on this just for a second. Oh, one sound where like most of the code is written by AI and I don't mean next 12 to 18 months we'll reach the point where like most of the code is written by AI and I don't mean like auto. So I saw like Satia say the same thing. He said like 30% of the code is AI and he and Mark Zucker was like maybe 50% of the code is AI and when I looked at that I was like that's it? I mean they're not talking about my code because it's you know probably closer to 80%. I'm saying so so I'm very bullish on on on AI. So what so how do I how do I um advance this this this this contradiction? Um so and I meaning everything you see here tonight was you know AI like I'm saying I can't spell I'm thinking what like the so so I'm very very bullish in AI. So what is the so so so what do I think AI is for? So firstly AI is for us like it is for learning it is it is it is what we dreamed of. It is it is a learning it is a learning superpower. I remember like at at my current job they like we're building this um backend lambda in C. I've never dealt this dependency injection. I've never I never compiled C before like I never worked in it and yeah in like in like a week I had like a working Lambda that and that's running all of um all of uh you know like stripe verification in in in um in Autotrader. So, it's a pretty used back end and it I just wrote it because I don't know I knew how to write it in JavaScript and I was like, "Hey, I need to do this." So, Kusha wanted to do and then when it broke I was like, "I don't know." I mean, I had somebody help me with some uh tree shaking, but you know, that's that's insane. But but the but the um and then and then let's say like all your dumb questions or or the questions that you felt were dumb are now now have answers because of because of AI. And now you can like dip into you know like this is like I want to give an examp couple of examples. So I I'm trying to work on I'm working on this VR base medish just uh like uh like base you go into take swarm off the shelf and and and go through um one second. How do I get out of this again? Uh what? Second. Uh so this this is a like something I built with 3JS and and um this is Web XR. So, you can like go in, you can Now, it doesn't look like much and it and it's because it isn't, but um you can open a safer inside there and you can turn pages. This is going to look very funny. I'm just warning you. Um like the turning the turning is not the turning is not right, but you can you can go there and these and I didn't use like a graphic generator for this. Meaning this this this is like this is raw um this is raw code and geometry. So I would never have been able to just step into this API like without spending a long time like studying it you know I mean who has the time to do that but now with um now with uh now with um now with AI you can learn you can pick these things up like really fast so anything you wanted to know any language C you wanted to learn C you can learn that it's not it's not a problem anymore you you'll you'll be able to follow steps you're an engineer and so obviously you could have done that before right but now your the point of entry is so much is so much faster Um, one second. Okay. Um, oh, one second. So, so for I think for for any sort of what did we see from like the LinkedIn and the and the regular CRM stuff is that we do two types of um engineering work. we do some type of engineering that's off that's in um original very rarely do we do that I mean that's the core business logic of a lot of of a lot of applications is somewhat original but most of the work we're doing is just copying expected patterns like signups and CRM and you just right you're not like you know we're going to do we're going to put the um password and then the username like no one no one's going to do that right so so just that's that's that's the way it's set so so AI can immediately produce it for you and so like I have this I have this little startup um that uh you know is a uh is a um like a point click clair um uh um uh integration. I know how to do that ago if you if you if you ever want to know but um so it's a point click care um in integration and um the front end of it is just like a CRM. So if you and we're going to do this later but if you know how to like if you have a if you have good typing and you have and your code is pretty clear on how you're and how you're pulling things. So then then you're saying, "Hey, spin up the CRM." Takes a second because you because your code is set up is set up correctly for that. Um SDK integrations, right? You never have to like look up docs anymore. Hey, Amazon, how do I um grab like a signed signature from you and then upload like a URL? Do I have to like read the docs for that? No. Never again do you have to do that because for the most part it would just it would just know that. We just saves it saves a ton of time. Um it would die. Yeah. But then but then like then you like Google I'm saying it it eventually gets it right for that type of thing and most and also gets you so it I didn't say this before but like for for tasks where you need 100% accuracy so AI is useless but like I record like a podcast right so um it's called the Wilson shop show um the the um the uh I use some I I use something called Riverside FM and what's so amazing about it is that it produces like um a uh um the transcript for you and you can edit in the transcript. The point is that you don't if you need 100% accuracy from from AI, so then it's then it's useless. But for us, if we're getting if we can get to 80% 90%, that's perfect. And then we just we just we'll just finish it. Okay. Um how much time do we have? I want to make sure there's time to code. Um one second. So So what how do I think you're you're supposed to you're supposed to um you're supposed to use AI. So firstly like there's there I don't believe there'll ever be an AI engineer because you can't produce you can't ship something without someone being responsible for it and and the responsibility hasn't shifted. You have to know what your code does. You know there if you're if you're like clicking like there's there was this meme if you're clicking like when I AI code I click accept all it's going to be it's going to be um it's going to be a disaster. It's just it just I I had a I had a project where I was trying to do that and like I had to start again. It was just like it it just it just ran away from me. And and what you end up doing is your code immediately becomes your code immediately becomes legacy code. The idea of like someone just vibe coding. If I if we open up those TSX files, they're like um they're 30, you know, they're they're like long components. They're not splitting they're not splitting it up unless you ask it to. And then if you're going to do more and more and more of that, you're just going to end up with like reams and reams of of of code that you never want to you never want to look at again, right? Why do you why do you hate jumping into legacy code? Because it doesn't make sense. There's zombie code everywhere. Your code will become legacy code in a second if if you if you love it. So you have to you have to understand everything that um that you do. Um one second. And then what I've discovered is that good coding practices are even better with AI because having good readability allows you again for yourself to be able to jump back into code bases um to be able to but but have once it's refactored so that the AI always understands better what you're asking it to do when you're looking at that. So if you if you have like a huge HTML L file and you're like clean up like the um clean up the testimonial section AI doesn't really know how to do that. But if you're in if you make if you make the testimonial section into component and then you say hey make this you know make this better or whatever. So then you're then then then your chances are are 100fold that it's that that it's going to get it right. Okay, cool. So now um I want to do a quick example of how I do this of how how I think we should do this and then we'll take questions. And by the way, these are just, you know, my haharas on the topic. You know, this it's a very new it's a very new new thing. And um I'm interested to hear what everyone else has to say. One second. Okay. Oh, wrong one. Okay. I spun up this um Vite project today. One second. with these prompts. Like I just wanted to start it off. Um I'm not cheating here. I just wanted to make sure like we could just get it going. Okay. Um one second. Fine. So I'm just going to get one. I'm going to start off. I cannot hold this. I can't hold this and do n word. What? I mean if you um one sec. No, this is just I'm just using I'm just using co-pilot. Oh, oops. Yeah, yes, I know about that. Okay. Still needs to be bigger. Really? I don't know. That's I think that's that's as big as we're going to go. Um Okay. One second. Okay. I'm going to start with my first prompt. Okay. Um No, one second. Um Okay. Superbase. Sorry. One second. Sorry, I'm just getting it to connect. Okay, one second. Um, what's going on, Coladney? Okay. So, I'm going to connect to my Subbase account. All right. So, create um a super a setup with these creds. Okay. We're going to make an ideas board. Let's see if the internet's working over here. Otherwise, I'll show you. Okay. So, once to install Superbase. Very good. And then it's going to set up the the account. All right. So, we're installing Superbase. So far, we are um view. Oh, come this side. What are it doing there? No, I I told it to add. Okay, fine. Is that it? Okay. Um, let's see. Okay. So, let's see what I'm did. Okay, fine. So, here's I always like to So, let's see what it did. Um, okay. So, it set up the client and then it and then it um fine. So, let's see that. What What am I showing? What are you Yeah. Just make this font bigger. Oh, can I make the font bigger? Can people can not see? Is that better? Yeah. Okay, fine. All right. Okay. All right. So, commit. Okay. Fine. Commit that. Really? This is so lazy, right? I just don't want to type. Commit that. Not a chance. I'm showing you that you can do like I'm trying to I'm trying to show the real We're vibing over here. I'm saying commit that. No. What's I don't know what the problem is. Anyway, fine. All right. Okay. Cool. Now, okay. So, now we should be Now we should be connected actually. Do Do I want to Am I Am I running? Yeah. Um Okay, fine. All right. Cool. All right. So, now I'm gonna before I I'm not even giving it my whole um one second. Uh sorry, I just had my type. I'm sorry. One second. Oh, there we are. Um okay. So this I I I made a little before but I'm just giving you a type from my um the idea table. Okay. So I'm saying okay make this type type from the ideas table and make um um hooks. My spelling is terrible with with I'm okay with make hooks. I'm I'm going to tell it to make hooks. It's a CRUD operations for this uh table. Okay. So right now these this is just like very boiler plate. Okay. Okay. So, here's the type and now my hooks are coming in. Okay. Um now I don't like this because it is I want I want an abstraction I want to write an abstraction for um like I don't think I should have the superbase stuff directly in in the in the hook. So um uh one second for the super base calls can uh consent. Okay. So let's see refactor that. So like when those if you there are a lot of good code out there. So if you're if you're if you're sending it to good coding practices, it's going to it's going to know know what to do. All right. Okay. So now it created the um the hooks and the idea service. One second. Did I delete that? Import. What? No, you can't that I don't want um has it has to fix that itself. That's that to do that anyway. But I'm gonna I'm gonna I'm gonna ask it to fix that line. Yeah. No, right. Ask it to fix the line. All right. All right. All right. We're doing this together. Just in the thing. Just say there's an error. Fix it. Yeah, that's uh we know. We know. We know. There you go. Oh, it's so dumb that it didn't even. Okay, I think we're going to do one actual of our own edit. What? Keep going. Let's see if No, no, no. I'm just going to put that there. I think we can I think we're allowed to do one um uh one one actual edit. I think that's fine. I think no I'm saying we're not truly that's that's my point right okay fine so we have these two these two files and then um want to fix the same thing over here type cool and that is not used brilliant okay excellent um okay so let's commit that let's commit commit that Now, if we really want to be cool, we can um we can if we really want to be cool. Now, this is the best part about um about this is that didn't save. That's weird. Um no, I don't think so. Anyway, so let's um Okay, let's make tests for both both of those. Oops. I I I meant uh what did I mean? That's really funny. I just wrote cheer instead of uh um I'm pulling a blank. What am I supposed to What was I saying? Um Right. Right. Cool. to the tools you're using. Yeah. Okay. Yes, that's a really good point. So, I'm using so I'm so so I didn't speak about this. So, let me just show you what I'm using over here. This is VS Code and um down here it say it has like ask mode and um and agent mode. Um so, so agent mode is the one that will actually change code for you whereas ask is just like is just I'm talking. Copilot is a little different. Copilot is like is more like an autocomplete. Um so what are you using co-pilot? This is this is co-pilot but as an agent. So and I'm using I'm using Gemini for the um for the model. I found that like none of these things matter in the sense that in the sense that they're all they're all the same. They're all like okay like you you all basically the same. I've used cursor I've you know I've used cursor wind surf the model like I've used claude and gemini. I haven't noticed like a major difference between the two. I don't know if anyone disagrees. Um, and that's fine. So, you see like we're using like this. We're now we've now we've now generated the business logic. We've now generated the the um the and the tests. I um I I suspect that when we do run the tests, they won't they won't work. um because because there'll probably be something with some mocking but so usually with testing this is like very this is very powerful that usually with testing you have to get one test right so I usually write I usually figure out with mocking write one test the most basic test just to get all the the mocking run and then you can just say hey I just generate like a million tests and and and and because they're they're b it's basically the same it's basically the same thing so that just so so so again once you do one thing correct so then it it solves itself. Then it's good if you if you tell like if you tell the model write think outside the box and think of every single use case then sometimes it's pretty good. Well, it's good it's good if you wrote but it's good if you wrote the code right. Meaning like if you if you if you say test this huge form for me that's useless. But if you but if you refactor it properly and you say okay test this button and it's statically typed so then it sees inputs to the button and it sees the typing on that button. So then it's very easy for it to figure out what all the all the all the tests are because this is a submit button. So the more like that I'm pointing out, the more declarative your code is, the more refactor your code is, the easier it is for for the fiery to just know what know what you want and and and it's easier to do that because wow, it really doesn't like um saying the type I'm saying. You're right. You're right. You're right. But anyway, um okay, so these are the tests. All right, fine. Now I want to I want to um Okay, cool. Now, now let's uh create front end. Um want it to notice board um with a posted notes and a plus at the bottom. Want to create um each should be each card should does it work better. No, I I I don't I don't find that at all. I don't find that at all. Now, what's going to be generated now is going to be horrible, but that'll be fine because we we'll fine tune it. Um All right. Um cool. Um, okay. one and one other thing I I wanted to mention which which I'm hopeully hopefully we're going to get to is that so um I don't know about you but I used to rely on like a lot of a lot of open source for like like dumb dumb things and even let's say you know like I never did time stuff I just always just use momen js until they got deprecated I had like a I had like a test to you know make one of those things on had like specific business rules if if it's like right away then it's like a few minutes ago and if it's like a week ago then you say that in words or whatever and I just like took I took the uh I took the rally card and I put it straight. That type of stuff is like where AI shines. And you don't even need to you can just get it to work with the date API. You don't have to like you can get much closer to the metal. You don't have to like oh I need to use this like stupid um thing because I'm too lazy to learn how to manipulate dates or whatever. Now you can you can get that. So we're going to hopefully we'll we'll play with that soon. Okay. So let's see um if it actually built something that' be pretty cool. One second. I just need to make this one second. It's not um It's one second. Okay, let's see if it runs. I'm I'm be I So this is like a good example of how code one second I can't for some reason my it's like blocking but I can't get to my terminal here. Oh, there. No, but it's like it's like hiding my Oh, I don't know why the thing is doing that. What? No, I can't. But I'm saying I don't know why it's like blocking me. Oh, there. Once I just run it, then I'll I'll Okay. One second. Let's see what I made for sure. No, it's it's it's it's uh I think it's still building. I can't see. One second. I'm sorry. I don't know why this thing isn't I can't Anyone know why my thing is doing this? It's like I just run in a terminal. Uh that's one thing very good was running twice. So he's running over there. Okay, I don't want to I don't want to use too much of your time because I because I I did one second. Let me just see that. Okay, if this if this is not working, I don't want to waste too much time. I don't want I want to get the questions. So, I'll show like something else I generated beforehand, but Oh, no. This No, this is not it. This is not it. That's No, this is It's the wrong I'm in the wrong one. I'm in the wrong directory. One second. Let me cut that one. One second. No, here. Here we are. Okay. Copy. Um, sorry. One second. Okay. So, nothing is showing yet. So, I just want to Okay. Um, one second. Let's see. Showing it. Okay. So, in the meantime, I want to show you what I what I built what I built last night on this because this could take a little bit of time and I don't want to take all the time of the um of the talk because we got I got the the back end part of it. So, let me just show you the code that I generated for the front end I generated last night. One second. Yeah. I'm going to move it over. Okay. Um, one second. Sorry. I'm just going to show you the code for this. Why is it not Why is it not letting me here? Okay. So, this is the code. So, we're going to get to the front end. I It's taking a little time. I never really load live coded this before, but this is the um this is the lovable project I did. And this is the um this is the code for that. Um and you see it like lets you build um I'll show you the code it generates for that. Um one second. And just to show you that again this is the type of code it's going to produce. Um, one second, right? Which is and this is and this is not bad. But this is immediately the way the way I would work with this is is is is to refactor this because this is the type of thing that could easily get away from you. But like right now on the first iteration, this was the first first iteration. If you refactor this again and you iterate over that, then it's then it's fine. So this is this is this is produced by lovable and and mine would produce a very similar thing if we gave it another 20 minutes. I don't want to take all of your time but again this is um this is this is pretty good and and this is an expected pattern and um and if you have the front end and then you built up the back end like we did um not really a full back end but if you if you build it up like that then you have clean code and you have beautiful code and then you have um something something ready like to to prototype right away. Um and and and to build up components like this is fantastic because you have piece after piece um and you have everything you need. So this is the way I like to do it. This is the way I've been using it. This is the way um you know I ship to production like this um a lot. Obviously I do a lot more of the actual coding here. We're trying to really freewheel um but but that is the uh that that is the point. And the point is that and the point is just to end off that this is this is positive because this is going to be a multiplayer. people are going to go online, start these ideas, see what they look like, and say, "I want to build that." And they're going to need someone to build that. And and people that really understand code will have a superpower. The is not going to replace engineers. It's going to take engineers that actually understand what's going on and be and be and be so valuable. And so, and so I feel bad for engineers that are coming up now with with with like only AI. It's like, no, maybe they should they they should take a diet from that because they really need to understand what's going on. But for but for engineers that that that do understand code that that want that keep up their best practices this is this is this is this is this is what we dream of. This is these are our wings. This is this is fantastic. And so um yeah that's that's like to end. All right. Any any questions?
Inside Look
















[ OUR SPONSOR ]
Proudly Sponsored By
Devx Staffing
Support Their Work
About the company:
At Devx Staffing, we find and hire the current and future software superstars of the technology industry and match them with top-notch businesses who are ready to scale up.
Devx Staffing
About the company:
At Devx Staffing, we find and hire the current and future software superstars of the technology industry and match them with top-notch businesses who are ready to scale up.

Precise talent for your
teams needs
© Copyright 2024, All Rights Reserved
Precise talent for your
teams needs
© Copyright 2024, All Rights Reserved
Precise talent for your teams needs
© Copyright 2024, All Rights Reserved



