Should a New Coder Use AI? ![rw-book-cover](https://img.youtube.com/vi/NrBQI9So5lM/maxresdefault.jpg) Welcome to Syntax. Today we got a potluck episode for you. This is where you bring the questions, we bring the answers. We got lots of really good questions, including somebody tried to hack us and we dive into the the code that they wrote. They tried to use an XSS and we'll we'll detail it and sort of explain what that is. Really good questions about like are people really running five agents at once and what does that look like? You know, like how do you possibly review that much code? Um, if you're running five at a time, what are the different types of pageionation? Someone asked like there's there's cursor base and there's page base and offset base and there's there's infinite scroll and there's money that is being played into it as well. Uh, should a new coder use AI for coding? Like what do you think? Right? Like if if you're just learning to code, if you you got HTML, CSS, JavaScript, should you be using AI or not? Skilling up from PHP and jQuery. Someone wants to get a new job but their their skills are a little bit out of date. What do you do in that case? And then finally, like seems like you got a lot of side projects and and stuff like that, Wes and Scott. How do you possibly manage that with kids and a family? All that good stuff. So, those are the questions. Let's get into the first question, which is from Paige Netheringhouse always submits the best questions. I just went and DM'd her because I was like, >> making the job easy, Paige. >> By the way, if you've got a a potluck question you'd like us to answer, go to syntax.fm FM and there is a button in the URL bar or not the URL bar the the menu that says potluck. Click the button, put your question in the box and we will answer it for you. By the way, somebody tried to cross- sight script us. Um, which I put it I put it in this episode. We're going to we're going to debug why somebody cross-ite script us, but Paige says, "Hey Scott and Wes, I want to ask if you use multiple AI agents while you're writing code with cloud code, cursor, etc. I've become a big fan of using cloud code to work on features day-to-day, but I still don't trust it to write new code unsupervised that follows conventions that are already established in the codebase. Use existing utility functions, keep the code dry, it wasn't repeating itself, etc., etc. TLDDR: I prove every code change Claude makes before it does them, and I want to watch it like a hawk to avoid the sight of refactoring and rewriting uh at the end of the features online. However, um I see folks are how they're able to spin up multiple agents and work on five separate features at once. AI companies like Cursor are touting how devs can have multiple different LLMs working on the same feature and then pick the implementation they look best. Yeah, that's that's a thing in cursor. You can you can like set it up to rip on like you can say, "Hey, make five and I'll choose the best." Um, to me it seems like a recipe for a fatigue from trying to review all of this AI generary code, too much context switching, etc., etc. Am I being too controlling by h handling all of my agents to higher standards than ever other devs? I'd like to think not. Um, and it just goes on to say like, are you guys using multiple AI agents at a single time? And I I I wrote a bit of a book to this because I I feel like this is is a such a good question for kind of where we're at right now. Everyone's talking about how like you got to have five running at a single time and if you're not you're you're falling behind. >> Totally. >> But I find and I'm curious what you think about this Scott is I find that the longest part of AI generated code is on either end. First it's planning what needs to happen for the thing. So whether that is is code styles, whether that's how you need to actually solve the problem, um whether that's what the actual problem is and and how to interact with it and and what packages to use, etc., etc. That like making sure that you type everything in what is actually happening and giving it all of the context up front is is probably takes the most time, right? Um and then the second last second longest part is is actually reviewing it after the fact, right? like testing that it actually works, that it didn't make a mess somewhere, that it didn't just copy paste and duplicate a whole bunch of styles and and make a problem for for down the road. But I do I was just saying this like Scott and I were working on this like syntax codebase. Um, we got an episode coming up on that, but that was a codebase that was like very well defined with like how how pages are made, how components are made, how CSS is done, how mutations are done. And because Scott spent a whole bunch of time up front sort of like detailing how how rigid it will be, I found that it did a very good job at not perfect. Um there's certainly some messes that we made, but >> I think it it because it was a had everything sort of documented as to how it should work ahead of time. It it actually did a better job than a lot of these other like green field projects where it just kind of goes nuts on it. Right. So multiple agents at a time. What do you think? I am not at a spot where I'm running five of them at a time because simply like the actual generation of the code is not the the slow part right now, right? It's it's simply the two things that I talked about. So much of software development is not just writing code. It's it's me thinking about like what's next? So what I'll do is I'll let an agent rip and while it's working on that problem I will then shift to looking at okay what am I working on next how should I approach something what needs to be done can I log some issues do I need to talk to somebody on Slack about this this specific problems that is where I find it it is really really helpful where I can like just like where time where I would normally just be like actually writing the code I can then just like while that thing is running I can go switch to what is next? And because of that, I can often like not running two or three at a time, but they do overlap each other. And a lot of that work tends to overlap each other and thus make it faster. Oh, yeah. You know what? It depends on on what it is. The things that I care less about, I can run more on. Projects that are either personal software that I I don't care how sloppy it is. Sure, I can run a whole bunch of stuff on it at once and just be like, "Oh, something's going wrong. Fix it." Blah blah blah. But like for real software, for real things I care about. No. No. And and I am on it pretty hard. In regards to your point about the the Sinhacks, you know, making messes and stuff, part of the reasons why we had messes even with was it not even due to the AI. It's because the scope of the project had changed a lot. There were established patterns in the code uh uh that needed to adjust quite a bit. And like because of that, I think these would have been bugs and issues that normal devs would have had as well as AI. So like to me like I I I wouldn't have even assigned a lot of the issues that we had there to be those types of things. Uh you're 100% right. I had a a tweet uh the other day that was Let me read the tweet here. Let me just read my own tweet to validate this here, which is uh some of y'all I use y'all ironically, but uh some of y'all have AI doing everything for you and are still lazy. And that is exactly what I'm talking about with this tweet in this situation because the work upfront and the work at the end greatly impact the work in the middle. If if you plan, if you have strong preferences, if you have things laid out, uh if you have good patterns already established in the codebase, if you have the correct context priming and all of those things, your end results of working with the AI are going to be endlessly better. And not only that, if you have a very clear understanding of the task at hand and how to solve it, the results are going to be way better as well. We should do a whole episode on this. In fact, I've been planning one on like working with AI tools effectively in coding. Some of the biggest problems people have in this regard in terms of being lazy are one assuming tools are going to fix all of your problems. you're just going to say, "I'm going to throw some skills or some MCPs or some some whatever at this thing and it's just going to do it." No, you need to have clear instructions. You need to know what you need to accomplish. And if you don't know how to accomplish it, you need to work with the AI to do that research upfront. Because I think some of you all are are using these prompts as like make this feature just go do it, you know, and then not being happy with the end results because the AI will be lazy. It will duplicate utilities over and over again. It will write sloppy code in various ways. The tools can help, but they're not going to save you. Doing that work up front is going to be the thing that makes it possible. When I started on the Syninhack platform, I wrote such detailed byhand planning documents of how the flows work, how the game works, all that stuff. And uh I do think that helped any kind of AI work that we did with it to complete things cuz it had that information there. >> Yeah. >> So, it depends like uh I'm not typically uh doing a lot of agents yoloing on stuff. I'm not just going to throw a bash loop and give it a name of the AI repeatedly working on something. I'm going to uh validate these things every step of the way uh for code and I'm going to do the work up front. I'm going to give it clear prompts and I'm going to have very clear instructions. Speaking of which, Wes, >> you know what does a great job of this is Sentry. And Sentry actually just has a new CLI that came out, the Sentry CLI, which is really, really good at this kind of stuff because it can give you the root cause of bugs and uh it uses the SER, their AI seer to give you the root cause of a bug and return that directly from the CLI, which works really well with some of these AI tools because you could say, "Use the Century CLI, get me all of the errors, catalog them as tasks and however you manage tasks. I use something called dex and then use the uh sier root cause in the descriptions and then you can go and have that fix bugs really easily. So century does such a good job of having all that information. But again >> to to reiterate my point, you're priming the AI with all of the the information that's needed. It has the bug, it has the root cause, it has the files, it knows what to do. It can go off and do it. And if you don't do that work up front, either by hand or with a CLI or with Sentry or whatever, >> it's just not going to work out as well. One more thing I'll I'll say about that is like that's more I think the use case for running multiple agents at once. It can even be like be automatic, right? Like you could just say like, oh, something's logged in in Sentry, just automatically maybe try to suggest a fix. And sometimes it's as simple as just like checking if a property exists before assuming that it that it is there, right? But like like a lot of people and I have not gone down this path yet, but a lot of people are like setting up multiple work trees on their thing. So like a work tree is in Git, if you check out a work tree, you're essentially just like duplicating the code into a second folder. So you can have like two or three versions of your codebase running on your computer at the same time or like wherever it is that you're running these agents. It might be in like a cloud as well. If you set up your like thing properly um with like work trees and your npm scripts are aware of of the work trees then you can run multiple at a time. But I've not gone down that path just yet. One more thing, I know we're talking a lot about this, but I I think like another huge use case is simply just like those bugs that you have been meaning to fix for a very long time, but just like haven't got around to it because it's like I don't know, takes a little bit to get set up. You got to research it. You got to and it's it might be relatively two or three line fix, but the the overhead of just having to get into it is the reason why you just never go and fix it. That is such good stuff that you can just set an agent on and and let her rip. Like even what do we have? Like the sound was too loud on on on one of our like audio things that played and uh yeah, I could have like branched out and and made a pull request and all that, but like just let an agent rip on it, find out where in the codebase it is, and it's just a simple just one thing. Make the volume 20%. Boom. >> Yeah, let it go. Hit the merge button. >> Word. Next question here from Max. I see a lot of websites use pageionation or infinite scroll, but I don't think I've seen any good explanations of it anywhere. Why do websites use pageionation? How would you decide on a good page side and when it might be a better idea just to show everything at once? Ooh. Okay. So, for me, I'll tell you this. This is definitely a vibes thing. I'm sure there is a hard number here, but for me it's a lot of dog fooding your own stuff, using your own work, your applications, seeing what feels good, what feels bad. The things that work well for I would say something like infinite scroll is more of like like a feed, right? A feed is always going to just continue to give you the next thing. It's like a neverending well of content. You can just keep mindlessly scrolling it. hard lists of lot of data. To me, that that tracks more for pageionation because you will want people to be able to navigate to a specific page. Like syntax has nearly 1,000 episodes now. And we wouldn't put our main listing of all of the episodes as an infinite scroll because you could never say link to page 19 and and get like the early or those episodes here or there. Uh to me that makes sense for pageionation. However, how many do you have is totally a vibes thing. Like for instance, the the syntax uh listing I believe is uh a three card per row and then therefore it makes sense to have multiples of three, right? >> It never works with responsive though. You always got >> when you go down to two and you've got like that weird that weird one thing missing. >> Well, you know, you just go from three to to Yeah. No, you have some views where the CSS looks bad. No, I to me personally that that's it and that's the distinction. But a lot of that comes from just using your stuff and knowing what feels good and what doesn't feel good and predicting the needs of your users, right? We should also say there's there's kind of like two types of pageionation, right? There's there's offset pageionation where like you have listing 1 to 10 and you have 10 per page and you click on page two and then you see 11 through 20, right? That that's offset. Where offset pageionation does not make sense is where the content is updating frequently, right? So you might be, for example, if if you had a list of like like tweets and and those are updating every minute or so, um you might be reading page like 1 through 10 and then you push page two and then the 10th one from the page one is now now the 11th one, right? >> Because it it got pushed down. And if that's the case, you have to use something called cursorbased pageionation where instead of saying give me the 50th uh one, give me 10 from the 50th one forward when you sort by date, etc., you simply just say give me all of the items that are between these cursors. Meaning that like this is the ID of the last item that I saw. Now the next page will be the items that are are after that. And and often they simply don't even have like page numbers associated with them. They are simply based on like the piece of content that you are viewing and and that's helpful if you want to bookmark something long term um or if you have constantly updating data. My favorite pageionation is infinite scroll but when they update the URL because I find like a lot of infinite scroll if you accidentally bump something. I was we we were looking at the restoration hardware website with my wife the other day >> and they have I don't know probably 80 different items in their um sideboards category side tables and sideboards and we were scrolling for like probably 10 minutes and I clicked something by accident and it was over it. That was it. I screwed it up and I had to go back and I spent like three minutes trying to get to the freaking bottom of the thing and it just kept loading more in and what they should have done there is that every single time that you load a new page or you pass a new piece of content you should just update the the URL with push state so that if somebody then refreshes that page you go back to where you were in that in that specific that was that was a problem with Pinterest as well. It's less of a problem with like discovery things where you're just like I don't know the speed is different every single time that I refresh it. >> Yeah. I I mean that that to me is like a clear situation. A product listing is a clear situation where I don't think you should have infinite scroll. That's just me. >> I think it's fine because also people might get to the bottom and not realize there's more or like every time somebody gets to the bottom there's a choice in their head that says do I stop or or do I do anything? But if there's always just more. That's why like Tik Tok does so well, right? There's always more. There's always more to consume and it's very hard to snap out of that loop to say should I keep going. Other thing is about pageionation is that like this is maybe less of a problem now, but like like ads. People used to put three items on a page because every time you cut the next that page impression. So, a lot of the pageionation on the web right now is simply just sticking around because there's somebody that works in ad sales that does not want their page impressions to go down the slightest amount. >> Uh, ads. Yeah. Wow. >> Kaylin, this is a really good question. How much would you use AI like cloud code if you were learning to code today? I am learning to code having completed the web development boot camp, JS, CSS, and HTML. I have a basic level of Python. I am debating how much I should be using AI to help program in a paralysis analysis situation. Should I fully embrace AI and be prompting with cloud code to develop projects or do I just like put that aside and and simply learn it myself? This I honestly have changed my opinion on this many times over the years, right? Because there's something to be said for like no, don't touch it. like learn the fundamentals first and then like suffer through that and then you you can use it. But the reality of a lot of that is that everybody else is using it and you are probably going to get like left behind in a lot of the things. But if you simply are just boop boop boop into the box and and hoping the answer comes out and not actually learning anything and not actually like solving any problems, you're not going to make it, right? because there are much smarter people. There are much more experienced people in this industry that will be able to do that as well and they're smart and they can they can solve problems, right? >> Yeah. >> How so? Like should you use it? I think you should use it to help you to research to find problems to understand features. I use AI all of the time to sort of supercharge my learning and understanding of of areas that I do not quite understand. Right? like you are a problem solver and part of that problem solver is understanding the codebase, understanding what errors might be, understanding how these pieces work together and AI can really help you with that, right? Like yes, it can write the code for you as well, but like one huge thing is that it can help you figure out how to solve a problem and how to do that research very productively and not get like not get hung up on these just obtuse problems. like like we used to spend days I used to sometimes have bugs that would would give me days and days of of problems where like now it's just oh what do you think this could be how do these things interact you know like help me debug this add some logging into here it's it's just so much faster to be able to do those things so you have to as a as a web developer getting into this industry you have to figure out how to solve problems how how to become smart in this and this is a tool that you're going to use how to do this. If you use it simply as a crutch like it almost comes back to this like like a calculator and like learning math, you know, like my kids are are are learning multiplication and division right now. And it's like yes, of course you can just boop boop boop those numbers into the calculator. >> Yeah. >> Spits it out. >> But like you you kind of do need to understand how this stuff works and and why it is working. Not because you're going to need to do long division one day um without a calculator. You you have one in your pocket, but because the way that you think and solve problems with that in your head, that's such a such a crucial skill for life. So, that's that's my thoughts there. Um Oh, yeah. I have some more more examples here, but you go ahead, Scott. I've been ying. >> Yeah, you can continue afterwards. You know, I I think that like I 100% agree that like your brain needs to work through concepts for you to be able to even know like what the problems are, what the solutions are, what the general flow is of things. And the way that I use AI personally to help me discover those things without it doing things for me is taking things that are difficult for my brain to really parse and break it down into ways that I can learn more better. So like for instance, one of the things I I really like diagrams for stuff. I really like bulleted lists. I really like technical explanations in code. What I don't like is big paragraphs of text. Um, again, I talk about dyslexia on this show all the time, but when I see a big paragraph of text, I I lose my place in it. I retain nothing. And another big problem is that a lot of developers are not good at technical writing in a way that makes things approachable. They're either too close to the problem or they're too nerdy to even really understand what the average person is going to think about while they're like trying to learn a tech. Like people who are are kneedeep into difficult technical problems are often times going to give explanations of how things work in a way that makes sense to them. And because they're so much smarter than most people, it's not going to land. So, I really use AI to distill, not to be like go into the AI and be like, tell me about this, but to give the AI someone else's documentation that I'm having a hard time parsing and saying, break this down into bulleted lists. Uh, create diagrams for me. Create like asky diagrams of how this thing actually works, what connects, what are the major technical pieces here. What are the things and how do they speak to each other? uh like those types of of questions that you can ask to the AI when you're presenting it with actual documentation for it to get its information from and it's not like uh going to be hallucinating, you still still have to like validate these things. But like >> if you just ask an AI like how does this thing work? It will often just tell you even if it doesn't have the information in front of you. But if you present it with hard documentation and say, "Read through this documentation and distill it into diagrams, give me bulleted lists, technical explanations, blah blah blah." To me, that's how I personally use it. And then that way, I'm reading, I'm consuming, my brain is doing work, not >> just fix a problem for me, whatever. Because you do need to know how this stuff works. Uh, today you still need to know how this stuff works. one example in the Synhax platform that we we just made on. So part of the platform is is taking a target and taking what somebody had coded and and comparing them, right? We we we export them to a PNG. Um and then you you basically diff them and figure out what the score is. Um, and one of the problems we've had in the past is like slight variations in it could like like a box shadow that's 10 pixels more than it should be or a color that is slightly off. Those things can just throw it off and it's just like kind of unfair because like you clearly got it but it wasn't it just wasn't wasn't great, right? So like I I started that like okay we need to build like an algorithm to compare these two things. Um so I I asked like look what are ways to compare things, right? and and we figured out like there's actual pixel dipping uh just straight up is this pixel red and is the other one red? If so, then you got it. If not, you didn't. Um then there was also this structural similarity index measure. Um and then there was also like weighting the pixels a little bit differently and and and figuring out like if the pixels are up and down, but like so I researched that with AI and I figured, okay, these are a couple different ways. So I said, all right, let's let it rip. Give me example in in each of them and we can I was able to test them all fairly quickly. And then we realized like, okay, like the the structural similarity doesn't work in a lot of cases, right? There's so many little edge cases. So, we threw that out. The actual like straight up pixel diffing not very good. And then the actual like weighted comparison algorithm it made, it wasn't very good either at all. Right? So, like but that wasn't a waste. That was really quick research that I did and it was able to scaffold it out. Then I we did a whole bunch of work or our I did a whole bunch of work on figuring out different weights and and how to weight different types of pixels and if there's transparency weighted a little bit less and we got it to a pretty good spot and then we all tested it and then we found like some major flaw where like if you set the background image it would bring you to like 98%. We're like yeah or or background color. And we're like, "No, I spent so much time on just like trying to figure out what a good solution for this was." And like, of course, I asked the AI and it it just kept spitting out these just garbage solutions there. >> And then the actual fix was just like like Scott, CJ, and I we just like talked about it for like probably half an hour >> and we're like, can we scale up the score? Maybe figure out what the score is with the background. And then but like that like half an hour of actually problem solving and looking at it and figuring out like why is it causing this? What are our possible options? Um and then finally we had this idea. We'll talk about the actual solution in another episode. But the actual solution that we came up with then we just type that solution into the box and it was able to actually generate the code for you and it worked. It works awesome now. Very happy with it. So like >> that I feel like that's a pretty good explanation of like >> problem solving but still using the AI to help you solve the problem, you know. >> Yeah. Yeah. I do think that is it. You you should be like using it to help you save time, not to to do things for you. I mean Prime said it really well like it's making you dumb if you're just letting it push all the buttons for you. >> And especially if you're first starting, man. Yeah, it is crazy. I keep going back to that tweet about people being lazy now that they have access to AI because like that really like with this Cloudbot stuff, man, people would rather hot potato all of their data through Discord servers, through other people's servers when like you could just tell the AI to write you a chat and have it available with Tailscale or whatever >> and people are just like, I just want it in my uh Discord because that's crazy. Like, okay, but now you're you're just sending your like these same people are the same people who don't understand that >> whatever personal data they're plugging or or API keys or whatever are not just going now to anthropic and open AI servers. They're now going and saving permanently on Discord servers and going through that. It's just increasing your attack vectors. It's increasing your insecurity. Like, you got to know how this stuff works. You got to use your brain, people. And I think that's becoming such a a major problem just yeah there's so there's so many instances of that if you are a developer thinking that I find this stuff so hard to talk about because I'm so bullish on it but I also like I think so many of these people are like wrong if if you think that you're a developer and that it's just going to do absolutely everything for you it certainly is doing a lot more for you and it's certainly affecting the job landscape and and everything in web development. But if if you think that it's going to just absolutely just totally do everything for you and you're going to just sit pretty and allow it to to do that, you're going to be in in a bit of trouble. >> Yeah. And that's actually one of the things that drives me nuts about people leaving negative comments about us talking about AI on this YouTube channel. We have like I feel real measured takes. Not only that, but we we we understand how these things all work and connect and you you either get criticized by the people who are don't have the technical understanding and are yelling everything or you get criticized by the people who on the other end just see all the other grifters and annoying people and just going to lump you into that category simply for saying the words AI like >> yeah they're oh you it outputs bad code you're in trouble like >> yes >> yeah but also it's really really good. Like, have you have you seen some of the stuff it can do? It's very good. I I don't think you're giving it enough credit. >> Yeah. >> Yeah. >> Yeah. Makes me frustrated. Cool. >> A nonI question next. >> Yeah. Nona non nonAI question next from Will. Uh, hey Weson Scott. I went the traditional route. CS degree theoryheavy curriculum solid fundamentals. It absolutely gave me a framework for thinking and learning and I don't regret it. But man, a lot of the practical stuff was left for me to figure out on my own. Yeah, that's totally it. With the job market the way it is, I don't I didn't even bother applying. I set up my own LLC and started building clients right out of the gate, which meant learning real world development immediately. For example, in school, client side and server side validation was drilled into us, which is great because we always wrote it ourselves. Zod was never mentioned. validation schemas weren't a concept and I heard someone casually reference them after graduating and had to stop to Google what they even were. The rabbit hole changed how I build forms entirely. Same thing with email. I was taught use SMTP for contact forms and transactional email. Full stop. Basin form spree send grid postmark. None of them ever came up. Even more surprising, no one talked about SPF, DKIM, and Demark deliver. >> We have an episode on all of those things. Deliverability wasn't a topic. Spam folders weren't a topic. You just send an email and hope for the best. Now, I'm about half a year out of school, running my own shop, and I keep wondering, what else am I missing? What didn't schools teach us that actually matters day to day? You know what's funny, Wes? I was on the board of the web development curriculum, I believe, at the University of Florida. I should know this. I should But it was it was just long enough ago, like 10 years ago, that I I I've completely forgot. But I used to go to meetings for this thing, and it would be me and like six other developers. I remember just thinking like they need so much help with this curriculum. they're doing things even even back then and things were moving fast 10 years ago but like >> still I remember thinking like wow this curriculum is so out of date with what I use day-to-day what most people are using day-to-day the types of technologies that they were teaching uh like web design and Photoshop and stuff like that even though like that was just like part of it and and this was past the time Figma existed sketch existed Illustrator we were vectorizing everything that's beyond on the web topics. So, universities specifically move so slow us on this practical stuff, the stuff that you hit. I would say so much of what I've learned that's been applicable in my early career was all learned from mentors and my boss and like my various bosses and co-workers at different jobs. like I don't think I would have picked up JavaScript frameworks as early as I did if the guy sitting next to me wasn't experimenting with early Angular or uh the other guy was checking out React the moment that it was announced. So like part of this needs to be fixed by having a more solid network of people to bounce ideas off of or people to follow and listen to who are trying interesting and different things. So, like I I don't have a good answer for the actual question here. I I do think you just need to continue to gain experience, but don't because you went off to do your own thing and you have your own clients, you have the potential issue of like remaining in a vacuum. So, just do your best to make sure that you don't get stuck in that vacuum. Uh Wes, do you have an answer to the actual question? >> I did I did literally exactly this. I straight out of university started like freelancing, running my own company. It always grinds my gears when people are like they should teach X, Y, and Z in school. And yeah, but like school teaches you to theory, like how to think, how to research, how to how to tackle things. And the fact that they didn't teach you Zod and like all these really specific things, >> technical details is those are simply just implementation details and there is no chance that they can fit an entire career's worth of learning into like a like a three-hour class once a week, right? Like I've taught many people in my life in person and in my courses. And what a lot of people like email me being like, "Well, I know absolutely everything to be a web developer after taking this course." I was like, "No, no, absolutely not." Like, it's going to teach you like, "Here's how to put these pieces together. Here's how to learn. Here's how to debug." And then the rest of your career is simply going to be learning new things. This stuff changes absolutely every single day. You're picking up new approaches. And the fact that you were taught client and server validation, great. Now you can go figure out, okay, what are people actually using? You have to go and build stuff to actually figure out how these things work. you got to hit problems with spam to have to dive deep into what the hell SPF, DKM, and and Demark is. That is your job as as a web developer. So, I don't think like yeah, I think sometimes these these universities like teach you old stuff and it's really hard to keep curriculum up to date, but I don't think they've really did you too dirty when you like your job as a web developer is just to get out there and and to just consume all of the stuff and to learn it all. So, Yeah, trial by fire. Someone tried to XSS us. I thought this was kind of interesting. We'll put we'll put the um thing up on the video, but I'll explain it as well. Is when people submit pot questions, you can type whatever you want in the box. And somebody wrote uh closing text area open script tag fetch web hook. Some URL and then encode URI component document.cookie. So what they were trying to do here is they were hoping that we were pulling in this user input and simply just setting it as as HTML. And this used to be a much more prevalent thing where frameworks didn't take care of it for you. meaning that like if you are displaying some text from a user and and inputting it as HTML, if somebody were to type HTML into that box, they could possibly run JavaScript code on your your browser, right? And and what this one was trying to do was to try to run a script tag that when loaded runs a fetch request, takes the entire document cookies, not server side cookies, just just simply client side cookies that you can access with JavaScript. Um, and then send them over to this random website, which it seems like it's been taken down already. Probably was some sort of bot. But that was kind of interesting. And if we were to ever build something and like we've done this in React, we have something called dangerously set inner HTML. That's exactly why it's called dangerously set inner HTML because if you were to take this comment and dangerously use it as HTML instead of just dump it into like a React component, then it would it would execute the JavaScript and run that fetch and you would be be out of luck. So kind of interesting one. You don't see XSS too often because like all of the frameworks make it very hard to actually XSS yourself. But it's it's still doable, especially with like a lot of these uh AI agents where they are returning markdown. If you're not properly sanitizing that markdown, that could have like a script tag in it and then that would execute when it's turned into HTML. >> Yeah. All right. Next one from toxik nilot which is Scott Tolinsky backwards apparently. Uh syntax history question. When you first started the podcast who was on your list of potential co-hosts and who did you consider like adding a third host? I will say this when I independently came up with all of the ideas and concepts of logos and everything for syntax on my own independently. That didn't happen by the way. Uh I I thought of every single I think Wes was the last person uh on the list and I didn't consider him until everyone else had said no. The podcast did not exist in any form outside of Wes and I uh having good vibes and having a good rapport and being fans of podcasts and having strong opinions on podcasts. If it wasn't Wes, I wouldn't have done it. Uh I didn't even consider. Yeah. >> Yeah. Not literally nobody. And I think that that's just so much more common in the industry. Yeah. Sometimes people have ideas and then they go search for the people. But often a lot of great companies, a lot of great projects, they simply just come out of two people shooting the chatting, and then realizing, "Ah, we think the same way. We would work well together. Um, we should we should do something. So, that was I thought that was kind of an interesting one. >> The fact that it was organic makes it so much better. All of the best things in media art are organic. You know, like I'll never understand when there's like uh in in music when somebody is like an industry plant and become successful like Drake, right? Like how do people >> sucks? How do people fall into that and be like, "Oh yeah, this industry plant that is like the art for me." Like that just speaks to me. This person >> most people unfortunately it is >> freaking the AI music on Spotify kills me and it's so popular >> musicians all the best bands were just people who found each other organically and it worked. So like I'm not calling this podcast art although I am. I I just think that that's how it operates for me personally. >> Yeah. I And for me as well, like I I don't think that I would be able to disingenuously do something like that like like be an industry plant or like you see it on TikTok as well where where people are able to simply masquerade as something and it make it work. One really interesting thing is is Finn Mckenty. He had this YouTube channel called Punk Rock MBA and he I don't know almost half a million subscribers, hundreds of videos about the history of of punk and hardcore and and everything like that. And then one day he simply just stopped and said, "I actually wasn't really into that music at all, but he just like was just this crazy like knew everything about it and did amazing research." And I don't know if that is true or not, but part of me like I know the guy and I I think like part of me thinks that it is it is true and he figured out this one industry which is crazy to go into the punk hardcore scene >> and just be an absolute not necessarily con, but just like I am doing this because I realize this is a niche and I am going to absolutely kill it in this niche. Um, and he did that and then he stopped and he's like I'm going to do something else. Like I I did really well in that. I don't know if I could ever do that, you know. >> No, that's not for me. Yeah, the vibes has got like Vibes has got to be on for me. Yeah. >> Yeah. Christian says, "Hey guys, I've been working as a front end dev, a small software house for about five years. I'm looking to move to a larger company. I'm finding it difficult given my background. I'm overqualified for junior roles, but due to the tech stack, PHP and jQuery, I don't fully meet expectation for mid-level positions in bigger companies. How would you suggest approaching the situation? I feel like we've we've talked about this 7,000 times on this podcast is that you are a problem solver and your tools are are out of date. All right? Obviously, people still use PHP, but like that stack of PHP and jQuery is is very old by now, right? Like like we are many like React is what like 12 15 years old by now. your tech stack is out of date and and you need to scale up and and very quickly on on modern tech stacks because that is a like you probably have several decades old of like you probably missed two or three waves, you know, you missed GraphQL. Uh what else? What else did you miss? You know, we're on local F first now. So, I would probably you just have to you got to build the side project. You got to scale up. You got to get better at this things. You got to build something. And if you can't do it at work, you got to go and build a couple little side projects so you can scale up and understand how these things work, right? Like I would probably do a good balance of keyword stuffing because like this is don't choose I'm I'm curious what Scott thinks as well, but like if you are going to build a side project, you kind of have to aim it at what do employers want um and not necessarily just what you personally want to use. And I think today that would probably be React, Drizzle or Prisma using vanilla. >> Drizzle >> and Tailwind. >> Yeah. See this but like the thing is that Prisma is even if you don't like Prisma, it's absolutely used and used in so many massive companies right now and that's that's a a very hierable skill. Zod is really popular. And then like you have to scale up on using AI API. So integrating these AI LLMs into products as well as using LLM AI coding tools to to build your things. I think if you were to get good at all of those things, you'd probably be ready for applying to these mid-level jobs. >> Yeah, I have I'm the worst person in the world to give this advice cuz >> I was going to say some like obscure unreleased library that has eight downloads. >> Yeah. Yeah, it it is so funny. I was just talking to Courtney about this and I was talking about the Clawbot stuff which is now Open Claw and I was She was like, "Well, maybe this time you being uh way too early on something will actually come in handy because >> it did." >> Yeah, it did. Yeah, for sure. It Yeah, very funny. Like that is a problem of mine. I I I'll just I'll agree with whatever your take was here, Wes, because otherwise I don't I don't think I have a good one. I like the the cutting edge stuff as well too, but like if you're if you're trying to feed your family and get a job, like you have to kind of look at like there's the old saying is no one ever got fired for recommending IBM. >> Yeah. >> And like you have to understand what are these larger companies that don't move as fast as us. I have the issue of I I was described by one of my professors as quickotic to a fault where I'm so overly optimistic about things like oh of course this tech is going to take off. Oh, of course this is the way of like I I am firmly optimistic in those ways and that leads to me to become supremely blind as to practical choices on things. So, I I'm not the most practical dude. That's definitely the truth. Next question here from John Love. I've been following you and heard that you all have kids, jobs, and a lot of side projects. I am in a similar boat, but I have no idea how to make time to truly dive deep on a side project or learn how to set up hardware, etc. How are you able to balance your time between family, work, and extracurriculars, so to speak? the the biggest thing for both of us I would say is that a big part of our jobs is to explore and to learn and to teach and you don't do that without getting deep into side projects as a part of my job. Um, so while I am maintaining code bases and I am working on things longterm and managing the syntax team and that kind of stuff that does take up time, but I would say and obviously recording the podcast, I would say it's still a good 50% of my time is spent exploring and diving into topics and getting to work on side projects as a part of my actual job. So the things outside of that though oftent times now are like diving more into like what are things that I can do with my kits. Like my 3D printing stuff is entirely like a project to do with my kids from the start. Um to the point where both of our kids can load and unload the 3D printer. They they can do things with it. They can choose what they want to print. They can explore ideas on it and those types of things. Um, coding side projects oftent times are like the things I actually get into that aren't workrelated are things that are making my day-to-day life processes better. Like for instance, a thing I just built that was uh going to be very useful to my wife and I is we're going on a a big trip this year to celebrate our 40th birthdays. And I was like, you know what would be really cool would be like a trip hub where every single day of the trip has the itinerary. It would have on maps all the locations and then if you select a day, it would have all the addresses and phone numbers of anything you're doing that day. It would have budgeting built in so you could see how much the entire trip will cost. I could use AI to estimate costs of dinners and stuff like that. Like point it to the restaurants and say, "Hey, estimate me a cost of dinner for all these restaurants." And it's like that is an app that my wife can get behind because it is uh taking the things that I'm bad at, which is planning and augmenting them so I can help her uh plan better and therefore is an a useful use of my time. That's not just me wasting time on my computer when I'm outside of work. >> Yeah. People ask me this all the time and I would say my like most biggest frustration in life is simply just not having enough time to do all the things that I want to do. And probably everybody has that. Um but >> I don't know some tips that I do have is >> I like to start an idea, dive in, master it and and finish it, right? Like I'm not into 10,000 things at once. I'm simply just like, I want to learn this. I dive in. I I figure it out. I move on and and I move on to the next thing, right? I've done that with electronics, small engines, 3D printing, home Renault, cooking, like so many different things. And then I just feel like I have a very good like I still do lots of 3D printing, but I'm not like I'm not learning the 3D modeling software for hours on end. Like I I know how to use it now and I'm pretty good at it and and when I need to do something that that uses that, then I can can get into it. The other thing is is like I go so much based on excitement by trying things and and just dipping into different things. You're going to trip upon something that is exciting and and once you hit that, you're going to you're going to find time, right? Like it's the same thing with like literally anything in life, you know, like working out or whatever is like as soon as you like it like like something clicks in your head where like yes, this is this is great. >> You're going to you're going to figure out how to find time for those types of things, right? Like sometimes I have like four hours of screen time on my phone every single day and I sit in front of a computer all day, right? There's probably an hour or two there that I can can squeeze it out, right? Next tip is asynchronous learning. Like listen to podcasts, YouTube videos, like there's so much dead time that you can have asynchronous learning whether you're driving or just like even just like standing in line at the grocery store. I will just whip open an article and just like just start pawing through it, you know, because >> Can I interrupt here with something that I did yesterday that I'm not super proud of? There was a a long line at the pharmacy at Target, like like 15 people and since setting up my tail scale network, I have open code serve running. I was vibe coding in line at the pharmacy instead of just like existing there. I was like prompting AI agents to to work on something stupid and I'm just thinking to myself like I can't shut this off right now. Why can't I shut this off? That that's a problem I think. >> Oh, that's crazy. My last tip I have here is just cutting out as much like stuff that you don't like. Like I I seem it seems like I like a lot of stuff but like I don't know I don't know anything about movies. I don't know anything about pop culture. I don't know anything about hockey or anything any sports. told me the other day that the Olympics are on. I had no idea that there was Olympics this year. And those are not bad things. Like I'm not saying like don't watch hockey cuz like like do whatever the hell you want with your life. Um those are very enjoyable things for a lot of people. They're just not for me. Um and and I have different weird interests that I'm able to to talk about rather than like hockey players and and movies. >> See, I need those things. Otherwise, my brain would just be >> Exactly. Yeah. and you know what it is for you, you know. >> Totally. Yeah. Yeah. That is my get out of my my head kind of moments that I need. >> If I have like a long stressful day, my go-to is not to watch TV. Um or to like watch like a brain like a lot of people are like, "Oh, I love watching like Love Island or like these like brain dead TV shows because it just is a way to shut my brain off." And like >> if I'm like feeling stressed out and my wife's like, "You want to just like watch a show or whatever?" I'm like, I kind of just want to like write an article or watch a YouTube video on 3D printing or something like that. Like that's what it is for me and and I know that about myself. >> We're currently watching Singles Inferno on Netflix, which is it's a Korean dating show, which is so I love I love Singles Inferno every year just because it's so different. Like if you were to put I always think about like you were to put one American on this show and it would be like a a a bomb going off because of just how insanely different the dating culture is. It it's so interesting. But I love I love that kind of trash TV. That's me. Jason Bourne says, "I've been playing around with Transformers.js. This is a JavaScript library that will allow you to um load in LLM models from generally from like HuggingFace. It's built by hugging face. Um, and you can just like run them in JavaScript, whether that's in the browser or in Node.js. I'm working on a personal dev site. The idea is to use a small in browser meod feed it my CV and LinkedIn data and then build a chat GBT style rag search that can answer questions about my work history mostly in a fun way to learn rag in LLM and something genuinely useful for recruiters and potential clients. I've had a very rough working version. and I've embedded my CV data into JSON and pass the relevant chunks to the model from console logs. It does seem to retrieve the right context, but the responses come back as I don't know or say there's no context. Um I can't tell if this is a prompting issue, a limitation of smaller models or I need a larger model with better reasoning. So this is kind of interesting. So rag, what that means is that you take something like we use we use rag on we don't actually have it on the syntax site right now but I've used it with the syntax transcripts where you take like like what's called an utterance like two or three sentences that somebody has said um and then you can you you vectorize that you store in a vector DB and and that vector is just a a representation of what you said in numbers um and then it's it's mapped in like a thous0 in different dimensions and you can use vector search to find things that are are similar to that, right? So you I could search for like like react pitfalls and then it would bring up all the utterances where we talked about things that are similar to that without actually having to like say the words react pitfalls. So what he's done here is he's is he's vectorized his whole LinkedIn and and and cover letter and all that stuff. And then what you do is before you you run the LLM chat, you you do a vector search based on what the user has asked and then you put those retrievalss. It's called retrieval augmented generation. You put those things that you found in the prompt and then you ask the question given this data and it'll spit out an answer for you. Right? So he's having a problem where it's like yeah it gets the right context but it's it's not doing it. So like your rag might not be picking up the right bits. So when I was doing the transcript utterances, sometimes it would find the the actual utterance that I wanted, but it was missing context from like maybe what was said before or after. So I modified it so like yeah, you can get the one utterance, but maybe pull the last two before it and the other two after it and then use that as as context. If you are 100% sure that you're getting all the right context, then yeah, the model is probably just not good enough. I don't find that transformers.js JS in local models is very good for simply just straight up chat. where transformers.js JS in smaller local models make more sense is that models that do a very specific thing. Um depth detection, face segmentation, object detection, toxicity detection, uh text to speech, um translation, things that are tuned and trained exactly to do one thing well and not I I find it not as good as like these like just massive LLMs that you can give it text and it will return it to you. So, yeah, get a bigger model. >> Get a bigger model. Yes. All right. Uh, last one here is yearning for the past. Uh, the question is, why are Chad Whitaker videos showing up on the syntax YouTube channel? His videos are so out of touch with the rest of the content. I was excited to see another Syntax video on my feed only to be disappointed that it wasn't Wes, Scott, or CJ. They are who I want to see and who I want to hear from. Well, thank you for saying that you want to hear from us. I I will actually talk about the Chad stuff because Chad is a really talented uh developer. He has such a long history and knowledge of open source and does all of the open source funding stuff at Sentry. Now, uh there was an opportunity for Chad to be able to share some of that knowledge on uh syntax. So, I I I'll say first and foremost that when it came up uh to have that opportunity to have Chad share some of his knowledge, um he produced a little bit of a pilot for us and I was like, "Oh, this is great. This is a change of pace from what we have on the show or on the channel. It covers things that frankly the three of us are not as deep into as as Chad was. And through that process, I do think we all learned that it it wasn't necessarily a good fit, despite the fact that I think Chad's content is great, and I I think it's uh very undervalued. I I think if you're out there, you should go listen and subscribe. Um, and so because of that, Chad is going to be continuing his content, but he is doing so on his own channel, which we'll link in the show notes. So, I I think we got that feedback, but also I I do think, you know, you're right. probably wasn't a good fit because it was too different. And I'll say I'll say straight up that was my choice. And I I think that I thought it was going to be a nice contrast, but ultimately I I think it was probably better uh for him to continue producing it in a way that's like >> Yeah. And it's it's doing better on his own channel as well because of this finicky finicky algorithm. >> Yeah, totally. So we'll link that up. And if you're interested in Chad's stuff, if you're interested about open-source topics, like Chad went to Ukraine and interviewed the Drizzle folks, like he's done some amazing stuff on on his channel. So follow that channel. Uh he'll be continuing to do it there, but if you weren't a fan of that content for whatever reason, you won't be seeing it as a part of the normal syntax feed going forward. Uh sick picks. I I'm going to sick pick. I feel like something I've talked about a few times on this show, but I don't know if I truly did as a sick pick. my terminal screen. You can see it tells me when my next uh Penguins hockey game is on. They're playing the Islanders on February 3rd. And this is just one of the many screens that this little thing has on it. It's a really simple device. It's a e- in with a battery and a USB to charge it. One on and off button. You can write your own software for this thing super easily. And I'm a huge huge fan of this device. It's one of the few things that I keep on my desk. And yeah, it has the Penguins game on here right now, but every 15 minutes it changes to a different screen, whether that's how many days are left in the gear or my calendar or what the weather is for the next week or all kinds of stuff. And it's so easy to code your own of anything you want on here. GitHub contributions. I have like YouTube subscribers, that kind of stuff. Um, so check it out. TR RML. I think this is like if if I would have had this for our our gift episode, I would have said this was like a perfect holiday gift, but I did ask for this for Christmas myself. So, um, really neat stuff. Sick. Yeah, I really I really want an e- in display. That seems so cool. Somebody asked a pot question about a different e- in display. So, maybe I'll take a look at that as well. Speaking of electronics, I'm going to sick pick my soldering iron. So, ooh, in the past I have I have one of those like USB C like soldering iron pens and it works great, but I find that I don't always have the right cable for it because it needs to be like um like a power delivery cable. And then I also find that I have to find the power bank um and then sometimes it's in my backpack or whatever. And I find that like I don't use it as much cuz I have to like run around looking for everything that I want. So, I've had this also have had this one for many years. This is a Ryobi soldering iron and I use this one all the time. It gets hot very quickly and it just like works. I have tons tons of these Ryobi batteries. You can just slap one in. It's always in my workshop. It has a nice it's has a stand in itself, you know. So, if you are going to be buying a soldering iron, don't buy one. The ones that plug into the wall are great, but like I hate having to find a plug cuz >> Yeah, same. You can never like you have to solder it right next to the plug or find an extension cord. The these battery ones are absolutely perfect. The battery lasts like I don't know many hours of soldering. It auto shuts off. It's just a fantastic little thing. So whatever you don't have to get the Ryobi one or you can get the DeWalt or whatever version of it. But I've just been very happy with this sort of package as a as a soldering iron. >> I've been having the worst time soldering. I feel like that is one skill that I've tried to hone. I've watched YouTube videos. I've practiced. I've tried all I'm so god awful at soldering. >> I do have one of those. Yes. Not that one in particular, but I do have a feeder like that. Yeah. >> Yeah. Are you using the little USBC one? >> Yes. And it gets hot fast. It's nice. It's got a nice little tip on it. Yeah. >> Yeah. It's It's tricky. It is It is a hard thing to learn. Mine aren't perfect, but I feel like after I don't know 10 years of doing it, I've I've gotten pretty good at it. Yeah, I've been garbage since day one and and still. Yeah. >> Awesome. All right. Well, thank you so much for tuning in. We will catch you later. Peace., Should a New Coder Use AI?, YouTube, 01kh9rrw1eb2b5sr37tkx0nnr7.