BrandGhost

Building Complex Side Projects With Purpose - Principal Engineering Manager AMA

Everyone keeps saying you gotta go build side projects so you can use them on your resume to stand out... But what should you build? How complex do you need to make it to stand out? Let's start by revisiting what the goals of the project are. As with all livestreams, I'm looking forward to answering YOUR questions! So join me live and ask in the chat, or you can comment now and I can try to get it answered while I stream.
View Transcript
All right, we're getting the bits flowing through the stream. Just got to check the different endpoints here and we'll get going in just a moment. There's Instagram. There is Substack. I think we're doing it. I think it's working, folks. Welcome to the live stream. This is an AMA format live stream if you've never joined before. So, welcome. Um, for a little bit of context, if you're new to these, I generally will talk about an uh a topic from like my newsletter that I put out on the weekend, but it's like I said, it's an AMA format. So, jump into the chat, ask any questions you'd like. I'm going to share out the article for the topic today. This one is about building side projects. And this like many of these newsletter articles and these topics that we do on this live stream, many of them come from Code Commute, which is a YouTube channel I have. And I answer Q like it's a Q&A format vlog. Yeah. Infected FPS. It's Monday. Welcome. And so, and actually I'm going to refresh my chat because it says there's no one in the chat, but that's impossible if someone's talking in the chat. So, um, on Code Commute, it's a Q&A vlog format. So, people submit questions. I answer them on Code Commute, uh, which is a way that I can scale answering questions for folks, but it's also a way that I get to think through things and then I can write newsletters on them, do this live stream, lets me process things and kind of think through them a little bit. So great for me, hopefully helpful for other people. Hey Andreas, thank you for being here. It's going good. Um I I'll start this off by saying I have just completed one month of being on call. I had a backup then primary shift then backup then primary shift. Um so it's a lot of on call stuff. So happy to be done that. And um yeah, the only like like the only thing that kind of sucks with being on call is just like some of that stuff bleeds over. Um and then after a day of that, it's kind of like I don't want to want to do anything else. So for me, it's not that it's not like, you know, supporting the service isn't something I'm happy to do. It's not like that. It's more just like it's the after the on call part where my brain is fried and I'm like oh like I just you know instead of working on brand ghost or instead of focusing on YouTube videos like I'm behind on doing resume reviews for uh the path to tech channel. Um and it's just it's the side effect of being on call and that's part of the part of the job like uh it's okay. I understand like in this case I had someone who needed their their on call shift taken and um the reality is like as an engineering manager this is the kind of stuff that I expect that like I will need to do it that's okay I said it's part of the job um but I I also need to make sure that I take some time and and my manager is awesome you know we were talking today he's like by the way he's like make sure you take some time like it's not a thing where someone's sitting there being like no work more work harder um so you know I it's great to feel supported that way. Um it's not like oh man I have to just remember to to take care of myself but like like my manager is very aware. So um yeah it's just yeah Devin said it right like it's mentally exhausting even if nothing happens. I had one of the days in particular was silent but it's still like I need to make sure that like okay what am I where am I going? Am I around a phone? uh if I need to step physically outside of the house like do I have my phone with me like I wanted to barbecue and it's like it's not like it's hard like if I just step outside bring my phone with me but it's always like you got to think about these things I want to hop in the shower I got to shower okay like make sure your phone's there make sure it's on like you know you're just kind of waiting to be paged and it's the reality of it so sucks but it's okay it's done um yeah infected FPS I thought had it bad enough with being on for release on one Saturday per month. And it's interesting like I come before Microsoft and people that have been on the live streams and on code commute and stuff know this already but before Microsoft I worked at a digital forensics company and it was not a the stuff that I was working on was not a live service and we'd ship you know once a month kind of thing or we do once a month for a major release and then hot fixes and stuff in between or as needed but really you'd have like one big release a month and um that's a very different world than having a live service like when we talk about things like impact right I just want to give you some some different perspective on this because I I think it's a really interesting contrast the work that I was doing before was building desktopbased software and the use cases I felt were like extremely impactful because we'd be creating software where police officers and law enforcement investig stigators. They can literally help save children from pedophiles, which in my opinion, like I can't think of a better mission to get behind than that. Like truly amazing. And then so the impact is great, but the number of people that you're delivering software to is a smaller number, right? The if you think about that number of people in those types of roles compared to at Microsoft now, it's like I work on the routing plane for Office 365. So we serve literally trillions of requests per day to people across the planet. Now that's incredible from a scale perspective. That's incredible from an impact perspective. But what's interesting about that is like you don't feel as connected to the customer just by nature of like being a platform team versus a product facing kind of thing. But from an on call perspective, yeah, very different. Right. If we were to go release software at the digital forensics company, of course, we're putting in all the effort to make sure things are tested ahead of time. Like my teams in particular spent a lot of time, you know, trying to lead the path for like automated tests. So really, really need to lean into that, especially when you have something that's like a search engine for digital forensics. And um so you know if something's going to be wrong or we miss something or there's a regression, cool. Like we're on it right away. But it's a very different world with that versus like you have a service that's on 24/7 serving traffic across the planet. Like yeah, it's just it's different uh different demand from an on call perspective. Hey, a random programmer. Good to see you. Thanks for being here. Um Devin says, "It's easier than the old days. I had my cell a pager. Then you'd carry the on call a cell pager. Yeah. Feel like lugging around Batman's utility belt. Yeah. I've never I've never been on call with a pager, but I'm aware of times where people kind of had that. So, um, live stream's not running on YouTube, Ryan. I think that's because it's on a new YouTube channel, and that's a good reminder that I need to, um, do a better job. So, uh, for folks that are coming here from not YouTube, one sec. Um, I'll do a few more posts about this. Um, yeah, exactly. Andreas just said it. So, this is the YouTube channel. It's called Dev Leader Podcast. Um, maybe I should do a post on my main channel right now. So, thank you for reminding me. Um, and I Yeah, I need to I don't want to spam people with this stuff because I realize people are like, "Yes, I've seen it, but I should know this as a content creator." like basically less than 1% of people that follow you see the stuff that you post. Just the way it works. Uh that's code commute. I got to switch my accounts here. Give me one sec, folks. I just want to It's not really fair for people that, you know, are on the main channel and aren't aware. So, I just want to post this super quick just Oh, I can I can do this. A reminder that the live stream is on the new podcast channel because I can type without my hands. Um, there we go. Um, you can't see what I'm typing because I'm not sharing my screen. Um, I'm just putting that right here and then we'll be on with it. Uh, thanks folks in the chat for the reminder. Cool. Okay, back to the live stream. So, yeah. Um, on call. Glad to be done. Um, there's a lot going on. So, the topic that I have for today is about building side projects. This is something I've talked about a lot on every platform. And this one is from, like I mentioned at the beginning of this stream, from a topic that came up on code commute. And the the the part that I thought was interesting about how this question came up was that someone wanted to talk about uh like should I build like how complex should I make my side projects? Um and it's to me it's very interesting because I thought that that was like I I've talked about building side projects. We've talked about adding complexity, but the meta point for this whole conversation, if you just wanted the the TLDDR was it's like um I think that if you are trying to build side projects, the goal is not to add complexity, but certainly if you're trying to learn new things and try out technology or coding or architectural patterns, whatever, the side effect is generally that you're adding complexity to things. Um, so I'm going to talk through that. Um, just checking the chat here. Yeah, Devon, if there's only I was I was laughing because I was talking and read this at the same time. Yes, there is a platform for posting stuff to all sorts of social media platforms. One of the limitations right now is that YouTube does not have an API for their community posts and I'm really hoping they changed that because they they updated how the community works. Like I'm pretty sure other people can post on my community tab. I think at least on my main channel and I think on code commute they they gave me an option at some point and they said by the way like this is changing do you like do you want to enable that and I was like sure why not but I don't think people even know that or I don't know if they tried it and got rid of it but no one ever posted on my it's I feel like it's my my wall my Facebook wall on YouTube. Um Ryan, awesome that you Okay, you made it to the the podcast channel. Yes, live stream uh live stream will generally be on like every Monday it's going to be on this channel if you're watching it on the podcast channel. Um for if you miss the context and I should remind people the reason for doing this split is that uh from talking with some folks uh from Vid IQ essentially they are um they're a YouTube analytics platform. They do uh YouTube videos for for YouTube creators and they have coaching as well. Um, I started working with the coach again and talked to them about the analytics and stuff on my channel and they were pretty confused. Um, because they were saying, "Hey, based on how much content you do, um, they were saying the quality of the videos and stuff is good." They're like, "Something seems wrong with your channel." And it's actually not the first time I've heard this. I've heard people like other YouTube creators going like, "I don't know what's up with your channel, man. Like, it doesn't make sense." And I don't know, like I feel like people are just trying to, you know, blow sunshine at me and rainbows and like that's very flattering, but it's also kind of frustrating because like at this point across my like across code commute and across my main dev leader channel, there's over 600 videos. I'd like to think that I've done an okay job creating content. I don't know. I know I'm not the best at it, but like trying my best here. And the channel like dev leader has essentially plateaued. And when they were looking at some of the analytics, they noticed a couple things. And I realized for some folks, you might have heard this already, you might not care. Just trying to give some insight. We'll get through this hump. I promise. The um what they noticed was two things. One is that um because I post my stuff to social media right away when I bring in people from outside of YouTube if they are clicking on videos and this is more common say I post something on LinkedIn or Twitter someone will be like oh what's this video click oh never mind and click off um I am basically doing a poorer job than what YouTube does to serve my videos and the problem with that is when people click off the videos right way. It's telling YouTube people aren't interested. But what YouTube is really good at is actually finding the audience for your videos. So, I have been for the past two and a half years telling YouTube, "Don't worry, I got this, bro." And then it's like, "Okay." And then it happens and I basically am telling YouTube no one wants to watch my videos. So, that's one part. And I have like literally the data shows people dropping off. I lose 60 to 70% of people that click on a video in 30 seconds. It's terrible. So, that's one part. The next part is that the mix of content across my channels is too varied. So, most people that came to my main channel, Dev Leader, came there for C and Net tutorials. That's how I started on YouTube. But um for folks that watch code commute, right? Like there's over 300 vlogs there and I don't talk about how to program in C and any of those. So my goal with the content I try to create is that I do want to be able to share with people different experiences for my career. Been an engineering manager for 13 years now and I feel like I can offer more than C tutorials. But I also love programming in C and my main channel will remain as such. So splitting the channels lets people that care about those topics subscribe to them. So it sucks for the people that like it all cuz now it's kind of like hey just subscribe over here too. Um it's not my goal to like push people to go subscribe to more channels. It's literally like please only subscribe to what you want to watch. So the one channels for ré reviews. If you're like I don't give a crap about ré reviews, please don't subscribe to it. please don't because it will be telling YouTube like, "Hey, give this video to this person and you'll never watch it." And then YouTube's like, "Dude, your videos suck." So, um, hope that helps explain. Thanks for bearing with me as I transition through it. Um, it's frustrating and I'm hoping that like like I'm not going to stop making the content for the different channels. I'm just trying to organize it better and then hopefully hopefully the channels actually start performing better because um it's yeah it's truly frustrating. Um the just a little bit more perspective the rate of growth of Dev Leader my main YouTube channel has not changed. It's actually slowed down over the past uh like about I don't know two years ago I was getting roughly like 500 subscribers a month 4 to 500. I'm less than that now. So, it's actually slowing down instead of having like a, you know, the more content I do, more exposure. Hopefully, you kind of get this exponential curve until it levels off or whatever. Haven't achieved it. So, um, YouTube sounds too convoluted. Yeah. Cool. Um, bunch of stuff coming in here. Uh, Fernado, uh, thanks for doing AMA, how do you interview, uh, for engineering role? Do you ask hard lead code questions? Great question. I do not because I think that lead code is the worst thing to ask people for a software engineering interview. So um for context I have you know when I have interviewed even during my internships uh you know many hundreds of years ago I was asked lead code style questions. I have been in interview loops and I have at one point you know that's what I thought you had to do. So, I would ask lead code style questions, but I quickly realized like I'd have people that were otherwise like they seem like great engineers and they would freeze up and like I I'm the same way. Like I pro I program every single day. I love to program. I was an engineering manager in an IC in parallel for eight years and I have not slowed down on programming. If you were to ask me elite code style question right now, I would probably bomb it. But like I can build software systems. So it's a very big disconnect I find. And um I have I've had peers from university lit I'm not making this up. They would tell me like struggling with programming, not sure how I'm going to get a job. And they would just try to like focus purely on lead code and be like I don't know how to build software but like I'm just going to grind lead code, land jobs. and then they're like, "I hope I learn cuz I got in." I don't ask lead code style questions because I think they're useless personally. I think if you enjoy doing them as a hobby, awesome stuff. I think if you if you find that they help you think through problems and improve your problem solving, awesome. Go do that. I think they are a terrible test of how to build software. That's it. So, I don't ask Le code style questions. The programming questions that I ask in interviews are generally quite basic and then I expand upon them. So I might talk about a data structure or an algorithm. Very simple case. I tell people in the interviews I am not giving you trick questions. So if you feel like anything's trying to trick you, please pause ask me questions to clarify. There are no tricks. As we go through it, if they're doing well, I will say great, you know, let's try to add some constraints to this or let's add a different scenario. How would you change your design here? What does a code need to look like? What tradeoff are you making? So, I change constraints, but I let them know like, hey, like this part that you were doing, great check. Let's move on to the next. It's not like, oh, you didn't think about this constraint. It's like, no, I'm literally changing the requirements to see how the code evolves. and we walk through that. Um, and it's what's really cool is that I can take similar questions and ask them to junior through like more experienced software developers and scale the complexity. I find that works really well to gauge coding. Um, I've talked about this online before. I find that you would be amazed how many people are like, "Oh, I've been programming for years and years and years." If you've heard about this, like the fbuzz question or fop, it's nuts. Um there are people I said in whatever is your favorite programming language and there's this question called fop or fsbuzz. It's basically a for loop in an if statement and then like a print to the console. And you'd be blown away by how many people in their favorite language cannot do it. And I don't care if they like they usually it's like print the even numbers and they say fizz and the odd numbers say pop. and when they're together it says fop or fsbuzz. Like I don't care if people can't they're like I don't know how to check for even numbers. Like I don't care. People can't even write a for loop in their favorite language. It's nuts. So um you know you there's some things you can do to gauge like minimum level of like have you actually programmed before and then I can scale them up. Um but anyway that's that's my answer to that. I do not ask uh lead code style questions. Um, Andreas, big fan of code teammate. Awesome. Thank you so much. I I'm glad that you're enjoying it. Um, yeah, Deon, lead code is an amazing filter for me to decide if I should even apply. I actually, like as an engineering manager, I get asked lead code style questions. I've shared this before. or I think when I applied to uh when I first applied to Meta, they actually the same day that I was scheduled for my interview, they sent the update that's like your interview's coming up and immediately after they were like your interview's been cancelled and I'm like so I don't know what meta I think since then I've learned that even for engineering managers they do ask like a coding question which will be lead code style. Microsoft did, Google did, and Amazon, I think, for an engineering manager role, is the only big tech company that I interviewed with that did not ask a lead code style coding question. I don't know why as an engineering manager I am being asked a lead code style question because that is the biggest waste of everyone's time ever, but not for me to decide. Um, infected FPS, entirely agreed. much more impressed by newer folks who built an entire site or something like themselves. Bonus points if they dip into DevOps server. Yeah, this is the kind of stuff that like I'm curious about. I care about. Um, Young Bird, finally got to work on the API rewrite project at work and man, .NET Core is so much better than .NET Framework. Yeah, there's some improvements. Finally dive into your C# videos. Awesome. Let me know if um, and I mean this seriously, like if you're watching a C video on Dev Leader, the main channel. Um, if you have questions, you're like, "Hey, I can't find a video or can you make a tutorial on this?" Just comment on a video, ask for it. Um, I mean this genuinely for like all of my content. If you're watching something or reading it and you're like, "Hey, do you have something for this?" If I don't, like I will go make it. My goal is not to just go make content that's like, "This is for me." Some stuff I do because I'm like, "This will be a good tutorial for me to watch later when I forget." I'd much rather make content that you want to watch. That's the whole point of me doing this. So, just ask for tutorials. I'll go make them for you. Um, Python all day. No way. Get that out of here. Just kidding. There's there's a place for Python. It's just not uh not with me. Um, love the uh enterprise bisa project so great. I haven't I have not seen that. Um, that sounds funny though. Um, Andreas, I'm trying to get into fintech, they go hard with leak code questions. Yep. It's just a big thing and I I'm really hoping, especially with AI becoming more prevalent, that we just move away from this cuz it's the worst. It's the worst filter. I can't I don't know how we got so far in software engineering and that's still like a thing that we do. Um uh GD 2005 is the side project guidance only for engineering or other fields like marketing. Um you know what let's let's let's talk about this because this we're we've been doing a bunch of stuff from chat which I really appreciate. I think we can absolutely apply this to marketing. Uh GD 2005 if you're willing to hang around and by all means if you got better stuff to do that's totally cool. My channel is essentially for software engineers. But I think that this type of at least the guidance that I want to talk through here I think is absolutely applicable to other things. The examples are, you know, they're software engineering focused, but the meta points I think that you can apply to other things. So if you're willing to hang around, I'm willing to try and as I'm talking through put a spin on it for marketing and other stuff because I think why not? I think the meta points are are equally as valuable. So, let's let's kick things off. Infected FPS, thanks for the link. I will check that out. Um, cool. So, building side projects the right way. I have it up so I can kind of get ideas for my newsletter article. I'll share it again if folks want to read it. Friendly reminder, do not subscribe to it if you don't want an email newsletter. It's literally free for you to check out like a blog. Um, if you want to check it out before the live streams, if you want the email, then by all means, please subscribe. I It's like YouTube, right? If you don't want it, please don't subscribe and never read it cuz what's the point? Um, but it's totally free. There's over aundred newsletter issues. The only paid part is to get access to Discord and then you get an archive of the over hundred newsletter articles. Um, I was actually looking forward to a masters in marketing. and did some research and found that the side uh projects definitely aid your resume. Yes. So, absolutely. Um and I I think you know I don't have be totally transparent. I've never applied for like sales marketing jobs or anything really outside of software engineering. So, I don't know how much the how much employers will go look into that kind of stuff. But a lot about what I want to talk about here with side projects is like like understanding what the goal of your side project is and then working towards that because I think people miss this. This question came up on code commute and I think it's originally from Reddit. I think I don't think that someone submitted this to me but they were saying I want to understand like how how much complexity do I add to my side projects and I think that this has come up because people have in their mind like you know for programmers it's like oh like you know the go-to things are like a to-do app or a calculator and it's like these aren't complex like that's not going to stand out on a resume like um who cares right like I need something that's obviously more complex cuz that's going going to catch people's attention and the again I will say the meta point for this whole talk is that complexity is not the goal but you may find that complexity is a side effect and that's okay when we're building real software systems the goal is not to add complexity we don't want that to happen when we're doing it with our side projects I say that it may be a side effect because you're using a more simple thing to build and then you're going oh I want to learn this technology let me go apply apply this technology or this pattern to this simple thing. So, you're complicating that simple thing, but you're using it to go learn. So, why side projects still matter? Um, I think there's a lot of benefits to building side projects. One is, of course, that many people will say like, "Hey, you have something that you can add to your resume." Okay. Um, the reality is, especially for people that are more junior and you're trying to go apply to jobs, you're like, I don't like I don't have the work experience to put onto my resume or the work experience you have, you're like, it doesn't feel relevant. By the way, if you want tips on uh writing résumés and and examples like go to dev leader path to tech, it's one of the new YouTube channels. I move my resume reviews there. I can give you examples concretely where people have work experience that's not techreated. It's not related to their domain. And it's like look, you can take some really awesome experiences that you had and then showcase that because that can be really valuable in software engineering. And for the individual that has the uh wants to get into marketing, right? Same thing. If you have other job experience it does and it's not marketing like what are things that are important in marketing right do you have any examples of working with stakeholders maybe you maybe you worked uh in a bank or you worked doing something else maybe it wasn't like a career for you but you have these other examples where you can say I worked with stakeholders from different backgrounds and stuff like that and or I was responsible for like organizing projects and stuff bring that kind of stuff into your resume right So with resumes and side projects, we have the opportunity to showcase some of these things. But I often think that people have the wrong goal. And I see it a lot, and I'm not saying that everyone thinks this way, but I think it's pretty common that when people think about what they're going to show off on their resume, they're like, I need to have something that's super fancy. I need that because my goal is to stand out. So they start going, "Okay, I need to have my portfolio built out. What's like a what's a really cool like idea that I can go build?" And then they sometimes get into like this idea that it needs to be a business like okay, well, how am I going to get users for this? And like basically they get caught up with like I need to have a business basically so that I can show that on my resume because that's going to be my portfolio. And I think it's the wrong goal. I think if you want to go do that, that's totally cool. I don't ever want to discourage anyone from doing that. I just don't think that it is the it's not the it's not the right goal for your resume. If you have it, by all means, use it. But if you don't have it and you're like, I don't know how I'm going to start a business and get thousands of users to for an app for my resume, don't make that your focus. I think it will be very, very distracting. I think that one of the biggest goals for projects on your resume is to showcase that you were willing to go learn something. You're trying to learn something. You don't have the professional experience doing it. So, how do you get any experience that's not professional? You can go create it. Is it equal? That's arguable. Some people will say no. But what's better than zero experience? Some experience that you create yourself. So with software developers, if we're able to go create applications, right? You never made a mobile app before. Cool. You're trying to get a mobile job. Cool. What could you go do today, right? Like you could go research, you go ask chat GPT. Like I want to go make mobile apps. Like where do I start? Right? Like start somewhere. You start building this experience for yourself. And all of those things that are stepping stones for your learning. Those I think are really important things that you can start to to gather, you can organize and put those as projects on your resume. Um, pausing for a second. Um, I've actually so GD 2005, I've actually put in my college leadership roles, internships, education scores. Perfect. Yep. Um, for like education and stuff, I I think especially in the beginning that can be helpful. Um, over time I think it becomes less relevant. internships. Great, because that can help demonstrate that you've had like actual practical experience. So, that's awesome. Um, I'm just reading uh Young Bird thoughts on doing freelance side work as entry- level dev. Have an opportunity to fix and help deploy some replet sites for a friend. Yeah, do that. Um, we're going to get getting burnt out in strict deadline type situation. Okay, it won't be burnt out, but it won't be a strict deadline type situation. I think if you have capacity for it and you want to challenge like absolutely I think there's a lot of interesting learning opportunities because that kind of stuff is real right that's another thing like going back to I was just saying like around creating creating these experiences for yourself like okay if you wanted to go learn how to deploy software and have it running and maintain it like you could go make an app and go do that and try deploying changes and doing database migrations all this kind of stuff for sure. And Young Bird, it sounds like in your case, I feel Young Bird, like feel like we're almost on a firstname basis, except I don't think your name's actually Young Bird, although that would be cool. Um, you're you're sort of you have this opportunity presented where you could go do that. And I think that if you're just conscious around like your time investment and what that looks like, that could be a really awesome learning opportunity. That could be something you put on a resume, right? Um, so I I definitely think so. Uh, reference to what you describe, I think we sometimes as software engineers just constantly complicate our lives. Yeah, we're really good at it. We are very very good at it. Uh, Gestall says, "I have too many going on right now. Balance is key for sure." Yeah. Um, 100%. So the one of the ideas that I want to get across to folks is that I personally as someone who is looking at résumés, I do not need or like it's not my goal to go sifting through résumés to find who has the app with the most users. Like again, it's cool if you have it. I'm not trying to say like that's not a good experience or that you are dumb or silly if you try to do that. Not at all. I think if you have it, show it. But if you don't, I would encourage you to think about projects as a vehicle, hit my mic, as a vehicle for learning new things, patterns, um, technologies, uh, could be working on a different stack altogether. Right? On the marketing side of things, I don't have enough experience in marketing because I have zero. Um, I don't have enough experience to give you examples of different things you can go build. But I think this is coming up actually in this um maybe. Yeah. Okay. Um it's literally the next section in my in my newsletter. So, okay. I don't know anything about what you need for marketing. I don't know exactly what employers are looking for, but this still applies. So, if you don't know and you're like, "Okay, I need to go build up experience." How would I do it as someone who's never done marketing before? If you're interested in marketing, you probably have a much better idea than me. But I would go look at the job descriptions for the jobs you want. They're going to be calling out certain things, right? For for software developers, it's going to be like text stacks or different experience like you got to know Git or know this programming language or know React and uh not Python. Just kidding because someone was talking about Python. Um you know, you got to know ASP.NET Core because it's the best. like they're going to call all these things out and you might go, "Oh crap, I don't have any experience with that. I've heard of some of these things, but no experience." So, same thing could happen in marketing. They're going to say, "You need to have not going to make up the examples on the spot and pretend like I know what I'm talking about, but there's going to be stuff in the job descriptions you'll see coming up and you'll go, "Hey, it seems like that's a common thing, and I don't have that experience. I should probably go learn about that." So I think number one is kind of looking for the places that you want to be in the roles that you're interested in and then looking at what skills or technologies or these examples of things that are being looked for. Make a list of that. Do like a like literally go make a mind map or something like go write this stuff down and go organize like put tallies beside things that you see coming up and then group things together. Like organize this in a way that works for your brain, right? So, you're identifying these are areas that I want to go apply to. These are things that they're calling out as things that you should know or they're they're looking for these things. Now, think about where you're at. And if the answer to that is zero, like I don't have any of these things being talked about, no worries. If the answer is somewhere between zero and most of those things or all of those things, great. But there's still this opportunity. And I just want you to think about what that gap looks like. Okay? Now that you've identified some gap between what you currently know or think you know and what they're asking for, pick a couple of things. You could start with literally just one thing and that's going to be the thing that you're going to focus on. So the goal of your side project is not going to be how do I go get a million users or for marketing like how am I going to get again I'm terrible at this. How am I gonna get my first billboard or my first magazine or my first published article or my first social media campaign? Like I I don't think you have to jump all the way to that. And in fact, I think that's probably not a great use of your time. I think the the better use of your time is how can I start learning about this skill and applying it in a practical way? And whatever you go put together the first time, it's probably gonna suck. And that's totally cool. Totally cool. Uh, does that mean you can't even use that for your your resume? Absolutely not. It's probably going to suck. That's cool. Um, can you refine it? Can you do it again? Can you try it a different way? Maybe you go, "Cool. I just I tried um just building a mobile app and I I you know was trying out I don't know Zamarind and you know then someone was telling me about Cotlin so I was trying that out instead and I was walking through tutorials and putting some simple things together. Whatever you're building in the first place it's probably going to suck and that's totally cool because the goal that we set out was not to go build the next trillion dollar app with a bajillion users. The goal was to go learn about it. Okay? And there is nothing wrong with doing projects for learning. In fact, I think that's arguably one of the best reasons to go do projects. And I will try to bring it back to the marketing thing, right? If you don't have the experience doing some of those things, how can you try creating that experience? How can you look at that gap between where you're at, what's being asked for, and say, "How can I try to do something like this?" Okay. So, I think I have an example. I was saying, oh, like your first social media campaign. Okay, well, you don't have customers or maybe you do. I don't know. But if you don't have customers and you wanted to get into like social media marketing, like what if you came up with a a strategy? You're like, I'm going to sit down and design a social media campaign for for some business. It could be a real business. It could be a fabricated one. And just go through the process of like, what things do I need for this strategy? What's the goal? where what platforms are we going to reach out to? Like put all this together. Does it matter that you didn't get paid, you know, a million dollars to go do this for, you know, for Nike? Like, literally doesn't matter. But you have something where you can say, "Hey, look, I learned about all this stuff. Go do a handful of these things. Try out different stuff. And then go reflect on the stuff you did, and you'll probably say, "Hey, that first one sucks." Cool. What would you do differently? What did you learn from doing a few of them that now you can go reflect on the first one and see what you would improve? Because we're going to be doing this for the rest of our lives in our careers where we're learning new skills and new things and we're going hey man that thing that I thought was so good like in software it feels like last week it's like that thing I thought was so good is terrible now. Um but it's it's a constant learning and I think that's one of the things I just want people to keep in mind as we go through this. Um, I love Git. Uh, make a mermaid chart if anything. One fun outside project for marketing might be to take a current marketing effort for that org and then create a review. Create a review. Uh, a way you might make it better. Yeah, I like I think exactly right. You if you don't have the real professional experience or you haven't been given that opportunity, it doesn't mean that you can't go learn these skills and practice them. And that's why I said like I'm actually very glad that someone joined that's not from a software background or or maybe you are and you're just interested in marketing. I don't know. But I think that we can very much apply these same things. It's just that the focus of what you're trying to learn is different. We're going to go create these experiences for ourselves and go learn and then we're going to talk about those things on our resume. If I'm reading a resume and I see that people have some side projects and they're calling out the things that they were trying to learn, especially as a junior, I'm like, "Hell yeah, this person is eager to learn stuff. They're investing time into it." Like, why would I not be super interested in what that person's doing? I don't care that they didn't get a million users. I've been programming for over 20 years. I've been in the industry for 15 years now. I don't have a million users for the app that I'm building on the side. I don't have I don't have a hundred thousand users. I don't have a thousand users and I've been doing this for a long time. I shouldn't have that expectation that a junior developer coming in is going to be doing that. It's ridiculous. Um so, um Ryan says, "I make that point because we in software engineering role, we are always told to go recreate a platform in another language that we're focusing on learning." Yeah, it's a it's a really good way to go understand things, right? Um I've talked about this probably on this live stream if not on code commute, but uh there and I've actually posted about this on LinkedIn too. Um you'll hear it like the phrase like don't reinvent the wheel. Very very important software engineering and other places as well. But if you're building software that you need to ship, right, and there's paying users and you have a live service and you're trying to keep things going to go say, "Hey, like let's just go invent our own logging framework." Like, they probably don't do that because there's probably so many good totally free awesome options. You don't need to do that. But a really great way to learn is to go take things apart. Go build your own so you can see what's involved in that. And a lot of the projects that I did early on, in hindsight, I'm like, I'm actually really glad I did that. While I was doing it, I really don't know what was going on in my brain, but I'm like, I want to go why I don't know why I do that. I might want to build my own UI framework. Like, what why would I want to do that? I really don't know. But I became obsessed with it. And it was like I built a lot of stuff in Windforms. And I talked about this on something, right? Like I was taking concepts from Windforms and trying to build a an a UI framework in Unity. They have their own already and I wanted to build my own. I don't know why, but I spent a lot of time like trying to build my own versions of things and I learned a ton doing it. So I do recommend that. I think that's a great example, Ryan. Um the I put an example in uh in the newsletter that came from from code commute as well and I said that like this doesn't have to be something for just juniors. So if you're watching this and you're like okay like interesting advice but like hey man like I've been in the industry for 5 10 years whatever totally cool. Um, this can still be very applicable to people of all sorts of different levels because especially if you are transitioning to a different, I don't know, you're going to a different company or a different team and you want to change the domain you're in. And we can still apply this to marketing. I gave the example of like social media marketing. You want to do like uh I don't I don't know enough about marketing, but you want to do like print or like digital and it's not actually social media. like you're gonna have to go through a similar exercise where it's like what are the things that I know what are the expectations that these job postings have for these roles you know working in this domain that I want to be in what's the gap and how can I start closing the gap by trying these things out what's cool is that you might have especially with more experience instead of picking like one thing you're going to go tackle you might tackle a couple so to give you an example Um, when I was going from magnet forensics to Microsoft and I had a little bit of downtime, I actually said I want to go learn some new things, but I said I'm going to pick some things that are consistent. So, I will use C. I wanted to do some mobile development. So, I use Zamarind. So, the language C was familiar. But I hadn't done iOS or Android development in a long time. Um, I picked Firebase because I had no experience with Firebase and I deployed to AWS because I hadn't used AWS, but I could pick enough different things and then anchor myself in something I'm very familiar in. And that way I could go learn a bunch and not be like, I can't get anything done. If I can program in C and tack in other stuff, I'm laughing because I'm very comfortable in C. But you have that possibility when you've built up a lot of experience. You can go learn a bunch of new things at the same time or at least practice them. Right? So the example I gave from code commute that I put into the newsletter article was I would just a random example of like okay you want to get into like move into security. Um that's what yeah I I said in security. So, you've been at work for 5 years. You want to get into security and like okay like you see on the job postings, right? This is the first guidance. Like there's some something about pentesting. There's vulnerability scanning tools. You're like, I don't know any of these things. Um, you need to understand how traceability works so that you can as someone who's investing their time into security, you can understand how to go, you know, solve live site issues where there's a breach or like sort of like it's forensics of the service and you're like, I don't know any of this stuff, but like they were talking about, you know, some uh, you know, they mentioned some programming languages. You're like, okay, I know those. Cool. Like don't don't go focus more time on those. you you're comfortable with those. What are the things that you don't know? And then I said from there, what you could do is try building a basic app. So, you know that to-do app that people say, "Hey, man, like if you can't put a to-do app on your resume, why not go put a to-do app there and then go layer in one of these fancy traceability frameworks and then learn how that's going to go log stuff. How are you going to start scrubbing logs to make sure that you're not putting in like personal identifiable information to those? Are they secured? Are they encrypted on the endpoint where they're put? Did you make sure that in your cloud deployment for your to-do app, which is ridiculous? Did you make sure that you lock down everything in the cloud deployment so that you can't get into it unless you're fully authenticated? There's the right rules. You see how overly complex that is for no reason. It's not a good way to make a to-do app, but it's a really good way to go learn about all these other things. Um, Devin, awesome. Thanks for being here. I appreciate you. Um, we got a block, whoever that is. Get out of here. Um, Ryan says, "You have to build a foundation for your house before you can put up the walls." Yeah. Or another phrase, "You have to learn to walk before you can run." Exactly. So, again, if you are newer to this kind of stuff, it's totally cool. Start small and just try putting some things together. And it's okay if it's bad because you're going to be spending your career making improvements and learning things. So totally cool. But I I wanted to share that yeah, it doesn't apply to just junior people. You can go through this this approach at any level, especially if you're trying to transition to new areas. Um so the complexity part just to bring it back to that it's the goal is not how do I go make this thing complicated. The goal is in my opinion if you pick an easy I'm going to call it easy vehicle for developing things. So, um, let's go back. I want to use the I think the marketing examples are cool because it's challenging for me to think through. Um, but okay, we want to do a social media campaign. So, pick something that's like say you're familiar with LinkedIn or you're familiar with Twitter, whatever. You're like, I'm going to do or Pinterest maybe because a lot of people do like marketing for Pinterest. I'm going to pick Pinterest because I'm very comfortable with Pinterest and I'm going to pick um shoe. I don't know, shoes, because I I'm really good with Pinterest and I really know my shoes. But what I'm going to do is I'm going to pick a an example where there is a struggling shoe brand because I need to I want to build up some examples where I can talk about a brand that's struggling for some reason and how I'm going to guide them through creating more content tailored to a particular audience. I'm going to put this strategy together. So you pick what seems like a simple vehicle, right? Something that you have a good foundation on and then you layer on these things that are potentially more complicated. And that way you're practicing these other things that you don't have experience doing. Having a simple foundation that you're comfortable with means that you can spend your mental energy on the more complicated things. Otherwise, if I said to you, "Yeah, you got to go build that that app with a million users." I don't know. I don't know about you, but like could you go build, you know, an Instagram clone? Sure. That's going to be a challenge on its own. Now, the real challenge is how you going to go get all those users because now it's not just building the app. It's sales. It's marketing. Like, good luck. You're going to spend so much time and effort in these other areas that are probably a distraction from what you're truly trying to learn. Um, I have thought about this, Ryan. So Ryan says, "Have you ever thought about doing reviews of side projects that customers have built in C#?" Um, yes. Uh, and so you mentioned customers, but like yeah, just like users. So one of the things that I was planning to offer to my Discord community, um, was like, hey, we could even do like live code review sessions if people are comfortable. Um, but like I don't know, like this is one of those things where um like the resume reviews I think are working. Um, I'm hoping on the new channel it brings a better like more engaged audience for that. Um, there's something that I can sustain. I I think that doing like what I would enjoy doing for like a code review is actually like a live session and then kind of walking through that code like I would if I had someone on my team and I was reviewing their code. Um like I I would enjoy that. I don't have a I guess I don't have like a pipeline of projects like that and I don't know where I would put that from a content perspective, but I would be interested in it because I I think it would be valuable. Maybe I could do like some of these live streams like once a month. I could do like a a code review or something. I don't know. Maybe something like that would be cool. Uh Jab, I don't know if I can say your name properly. Sorry, Jabuan. Jabwan, um, I love kids. I'm making a kids education app using Angular Node. Awesome. Uh, yes, Node is used in the industry, but I'm making the Oh, thinking to move it to Java. Very cool. Okay. Yeah. Like, so, and so this is interesting, right? I want my resume to stand out. Now, the question that I would have for you is, are you pl and it's there is no wrong answer here. I just want you to think about this. You said, I want my resume to stand out. I think that's great. Are you applying to jobs where you're going to be programming in Java? If the answer is no, then I would say what you think may stand out may not may not necessarily be helpful for you. I'm not trying to tell you to not do it. I'm just trying to get you to think like for who is going to be looking at your resume, right? That's all. Um I think that's a really cool exercise to do that. I I haven't ported anything in a long time. Um, in my career, I've done a bunch of porting from from different languages to C, and I've ported some C# code to Java at one point. Um, so yeah, it's it's a good exercise. There's probably some stuff you could do there. Um, okay, cool. Yeah. So, you know, if you're going to be if you're thinking about using both, great. I think it's a super cool opportunity to do that. Um, what's in Oh, I totally left this out. I think it's in the newsletter article. I apologize. I was just going to mention, you know, you might be able to use AI to help you with some of that, but I wanted to talk about um using AI for this kind of stuff. It wasn't the focus of this newsletter article, but it's come up before in other contexts. So, here's a here's a a question to think about. Um so the question is if the goal of building the side projects is for you to learn and practice a new technology tool set a new approach. Right? Again if we're talking about for the individual who wanted to learn about if this can work for marketing. Um you're trying to learn something new and get some practice with it. The question is, can you and can you or should you use AI for this? And I want to leave that as an open question. Would love to hear your thoughts in the chat if you're willing to to participate. Um, AI, you say yes. So, can you slash should you maybe you have a different answer for both of those use AI when going to build side projects like this? And I will remind you again, the goal as we've been talking through this is that the side projects are for you to practice getting experience and learning about like a new technology approach, tool set, that kind of thing. Can you andor should you use AI for this? So, I will let folks put their thoughts into the chat. Um Um, awesome. Well, thanks Ryan. I appreciate that. Um, yeah. And like it's hard too because it's kind of seems kind of funny like the the subscription costs, they're not a lot, but at the same time like then someone would say, "Well, why even then why have it if it's not a lot?" Like why not just make it free? There are some things that I put behind pay walls because um a couple reasons like one for like the community that I was I've been trying to put together is I I don't I want people to take it seriously, right? And like it's weird and I've learned this from building some uh like side project like brand ghost, right? I have learned that it's very interesting from a psychology perspective. If there it's even a dollar, if someone has to part way with money, it changes their value perception of what's being offered. And to give you an example, if someone sent me a resume because I get lots of or over the over the years, I've gotten lots of resumes where people are like, "Hi, like I don't know you. Here's my resume. Please tell me what to fix." I'm like, "Dude, I don't even know you." Um, if like if I said it's going to cost you one cent for me to review your resume, I guarantee you these people would be like, "Absolutely not. Nope, not for 1 cent." And I'm like, "Well, then you don't think it's worth 1 cent for me to go do that? I certainly don't think it's worth you. My time is 1 cent. It's not a good exchange." So having some stuff that is is paywalled at least lets me see like who's kind of serious about it. But I struggle with it because like as a content creator, like I I lose I'm fully transparent on all of the content I do, I lose money except for courses. And the only reason courses make money is because they're on a platform that's much larger than what I have. So I do I kind of struggle with like paywalling stuff and charging people. So, it's not my my goal cuz it kind of feels like I'm I don't want to like feel like I'm trying to squeeze money out of people. It's kind of gross. Um but anyway, um Ryan, I will give that some thought. Um even if it's not, you know, like behind a paywalled community or something. I think that I will I'll give that some thought. Um make AI. Okay, so I like it for getting a starting point. It would be silly if you weren't. Make AI produce some basic structure to start from. Uh, Jaban says, "I'm and sorry if I'm getting your name wrong. I apologize. I'm actually using AI, yes, but only to guide me in a sense of trying to get an understanding where to go if I get stuck." Okay. I've gotten 10 times better to notice that AI is still wrong sometimes because I kind of know what I want. Um, your resume famous, bro. Yeah. Cool. Okay. So, it's a bit of a um I was trying to give a bit of a trick question. Oh, there's another one. In my experience, AI has been very helpful in describing general uh workflows that I'm unfamiliar with for my side project. Tell me get started. Okay. I think that if you're only AI generating, this person I think is saying exactly what I'm about to say. I think that if you're only AI generating all of your side project code, then you're kind of defeating the purpose though, since the main goal of a side project is to learn. Try to use AI the way I might use Google or Stack Overflow more as a search tool than as a replacement for my own work. Absolutely. So, thank you everyone for participating in the chat on that. Um, so I Okay, and a random program says, "I used to be quite resistant to AI, but the newer models recently have taken an approach where they teach you and I utilize it most of the time. I love Gemini Learning Coach, for example, for that." Great. So, again, thanks everyone for for jumping into the chat on that. Um, it was a bit of a trick question, right? Like I think the framing of what I said was like, "Hey, like you're here to learn, right?" And so I think a lot of people automatically want to jump to well no no AI like we can't use AI because everyone says if you use AI you don't learn and it's like it's a tool right um Ryan says using AI to augment your coding experience is completely different than using AI to code it all doesn't allow you to learn grow yes exactly so it's just a tool how you use it changes what's going to happen so if you're going okay this bald guy on YouTube said I got to go make side projects. And he said, "I got to go pick a simple thing like a to-do app." And then he gave a silly example with security and layering on some like security tech stack. And well, I can use Claude to do that. I can use Copilot to do that. I'm going to have the best resume. Like, no, you missed what I was saying, right? The goal is not just to go produce things to put on your resume. The goal is that going through that process of producing the things is going to be the experience that you get. The entire point is to go learn. So it's not wrong to use AI. And I don't I shouldn't say right and wrong. In my opinion, it's not defeating the point if you use AI, but it is defeating the point if you use AI just to like blast out whatever the code is and you copy paste it over. So absolutely if you're getting like you want to be getting stuck when you're doing this stuff. People don't like it because it's friction. It's awkward. We all want the shortcut. If you want the secret shortcut to getting better at stuff, it's accepting that you must get stuck. You need to get stuck because when you're getting stuck and searching for ways out, this is going to be the part that's reinforcing what you're learning. So if yeah like please like don't tr I know as humans we want to avoid that because it's uncomfortable right of course if we're solving a problem how nice would it be if you could just go and then you have the answer problem solved but when you do that you don't learn things or if you do the learning process is going to take much longer so I feel like absolutely if you want to use AI ask it questions get it to explain things in different ways. I think that's totally fine. But I think that if your if your mindset is I just want to go, you know, make things make things have AI make things so I can put it on my resume, I think that's probably what you're you're going to be missing out on. So, um, got 23 viewers on live stack. What's live stack? I don't even know what that is. Substack. Are people talking on Substack? Should I go there? I'm assuming that's what you were talking about. Sorry. Oh, and there's they have a live chat on Substack now. What? They didn't have that before. And I don't know if people were Yeah. All good. All good. I don't I don't know if people were chatting on Substack. Now I know I'm gonna have to watch this, but my live chat on Substack is empty. So for folks that are on Substack, I'm so sorry if you were sending messages there. Literally, there's nothing in the chat. So very, very sorry. But I have it open now and I can see it. Um hopefully they'll do an integration with um Reream. I use reream to go to all these platforms and they have like this shared chat. So hopefully that make that better. Um infected FPS as an AI side project is definitely good to have these days. Okay. And that's another thing too. Um a project using AI versus using AI for your project. Right? So even for me like I am trying to build stuff that's using like how do I integrate with an LLM? Uh in C we have something called semantic kernel that I'm trying to play around with more. Um, you need to add the link to this YouTube channel to the Substack. I don't know what you mean. Uh, I am so sorry. I need to add Do you just mean to share it in the chat for people? If so, I can definitely do that. Um, but anyway, I apologize for the folks on Substack. Um so okay I wanted to share because this is something that I I I have lots of side projects too and I I started a new one um which is something that from building Brand Ghost um if for folks that don't know me from like my C stuff I talk a lot about building plug-in architectures. It's a way that I I personally build most things. I like um I like for dependencies to sort of get discovered and automatically registered. Um I think about things in very modular ways and uh plug-in architectures really support that for me. And um so I in brand ghost and basically everything else I build I follow a lot of these really common patterns I reuse over and over. And so I decided um yes that's u a random programmer is bringing up exactly what I'm going to talk about. So let me share my screen. So I have this thing that I started extracting and it's called needler because I wanted to come up with a stupid name for something that's dependency injection related in injection needler. Clever, right? One of the classes is called syringe. Like it's it's got a little stupid guy. Um I said chat GPT. Um okay. Uh thank you. No, I I I appreciate that. Yes, you're right. The the other YouTube channels linked on Substack. Thank you so much. I will make sure to go update that. Um so needler is this thing that I started building. Um and you can see like on my screen, right? side project to factor out the dependency injection logic from Brand Ghost into a reusable set of packages. So, um I've built many things and they follow this exact same pattern. I've been evolving it a little bit over time and I said it's probably time for me to go pull this into a package and that's so that I can use it. I started building a little thing in semantic kernel to play around and I went man like I need to go automatically discover my plugins and stuff. So, I got to go copy this code. And I said, why am I doing this, man? Like, you know better. You're a software engineer. Like, go extract this stuff. Um, so anyway, it's an opinionated framework and and I'm going to have some YouTube videos coming out on it this week. And the idea, I'm not sure, are a lot of people in the chat like C developers? I don't know, especially um for these live streams. I feel like it's a mixed audience, but in in C, especially for ASP.NET Core, I got to talk with my hands. One sec. Okay. Um, you have like your web application builder, and then you can add services onto it. When we say services, we just mean classes, right? So, you you add a class on, you can say if it's a singleton or transient scope, and you're building up this dependency injection container. And the way that this looks traditionally is that if you want stuff to work with dependency injection, you keep adding a line that says add to container, add to container, add to container. And it gets nuts. But people said we can solve this. We can use extension methods. So you take all of these things and you group them together and you say, I'm going to put this behind an extension method over here. Now, now you shrink that code back down. Heck yeah. But the problem keeps coming back because you keep adding more stuff into your application. You keep having more extension methods. You're sort of just moving the problem around. So, um, with Needler, what I decided like the way that this works, can I just pull this up? Can I do that? Cool. There's the repository. Um, there's a little guy again. So, the way that it works is that, um, you can configure it. Let me zoom in a little bit. So you can configure a builder to make a web application and you never if you don't want to you never have to explicitly register the stuff onto the dependency injection container. It just goes and finds it for you. This one uses something called screwdor which is a uh it's a framework that already does a bunch of this but I have a version of it where you don't need screwdor. You can see that it um this one also does the same thing. Where's another example? One sec. I got to update my documentation. Oh, here's a here's a good like um ASP.NET application. So, you make the syringe, which is really just it's a a fluent builder syntax, right? And this one has basically no configuration. It's the most simple version. You just say build the web application for me and then go run it. So notice between these two lines, I don't have any services registered at all. Zero. There's nothing that says add scoped, add singleton. There's nothing. It's all done for you automatically. And again, this is opinionated. So some people will say, I don't want my stuff to work like that. Totally cool. You might not like this. And that's totally fine. But I like it. That's how I build stuff. So if I wanted to go now register routes. So if I wanted uh a weather set like this is literally taken from the sample weather application in ASP.NET core. So um we can go add a minimal API and we do that by defining a plugin. So plugins are used to execute some logic. In this case, this is a web application plugin. And this one will go fire when we're configuring the web application itself. And if you're familiar with ASP.NET Core, when you are registering minimal APIs, you configure them on the web application. So, we're going to go add that. But now, you'll notice on this um sorry, my Substack live stream is going black on my computer, and I don't know why. I don't know if that's actually happening on the actual stream. Um, so what's interesting to me about this is like we can see on this minimal API like, hey, that needs a weather provider that's supposed to come from dependency injection, but Nick, you never added it up here. So, what's going to happen, right? Well, what Needler does, and Screwor again does a very similar thing. Uh, you can use Screwdor with this or not. It's up to you. But it will go look for these any classes you have. There's some rules around how it works, but it says this is something that we should go register automatically to the dependency container. So, I don't have to ever go type a line of code that says add it to the dependency container. It just does it. And that way, as I'm building out more and more plugins and different functionality, new features to my application, this amount of code in my entry point stays the same. That might be not a big deal to you, but it's a really big deal to me because I cannot stand adding new functionality into my app and then going to a common spot and going, "Let me add this extra line to turn it on. I can't deal with it. Drives me nuts." So, needler is a way that I can go define things and they automatically get registered onto it. So, um that is been my approach with this. And like I said, it is totally opinionated. This is the kind of thing like I use it in brand ghost. I've evolved this pattern over time and I just said I'm going to start extracting it. So the pattern is using brand ghost. I still have to go back and actually refactor the code to go consume this package. Um and then you know for the new things going forward like I mentioned I was building something in semantic kernel. Semantic kernel has its own set of plugins. They're different. And I said, "Okay, well, if I want to automatically register semantic kernel plugins, I probably need to have something in needler, another package added on that can go do automatic discovery of semantic kernel plugins." So cool. Thanks. Uh, I appreciate on the Substack update. So, um, yeah. So, and I see a random programmer. Um, you mentioned like interested in contributing. I I don't know yet. Um, if you if you want to look through and you want to propose things, I know you I saw you mentioned documentation and stuff there. Um, cool. I I'm not opposed to it, but I haven't wrapped my head around around that. So, I'm not saying no. Um, I don't know how the repository is set up right now, but if you're looking through, send me a message on pick a platform. Just mention who you are uh in case it's not the same username and stuff. Happy to chat about it. Um, also there's a talk of plugins reminding me to try and find your older articles on that as a starting point. Yeah. And I think that like I haven't written technical articles in a long time because they take a lot of time and effort. Uh, and that was when I started doing content creation more seriously after like a year of it. I said that's the first thing that I have to cut. It's too much time and not enough um like return on the time I guess. So, um I'm overdue for for some of that, but I'm hoping that I can make some more videos cuz now I have like for making YouTube content, it's kind of tricky because I'm looking for examples of things, but when they're my own things, it's very easy to come up with the examples. I'm hoping I can do some more plug-in architecture stuff and then use Needler as a bit of a platform for it. Not because I need people to use it. Honestly, if zero people ever touched it, totally cool because I need to use it. I'm still going to. Um, quick question, Nick. So, sometimes you may want to decouple a service from the application for testing purposes. Is there consideration for that or uh or that's a possible update. So, yeah, the um the way that I do this and I got to block this person again. Man, this is the worst. Um so what I've been doing more and more is and I've I talk about this a little bit across different uh forums I guess but the I generally will try to write code that I consider is unit testable and that means that ideally I should be able to if I need to test code that is isolated that can mean using interfaces that often means that I'm not using static classes again some C# sharp concepts here like I don't say file.create create I don't say um like any static access to to something that's going to touch the environment. Try to avoid it as much as possible. I will often wrap those things and that way I have isolation. Um, if I'm using third-party things, if the third-party thing that I am using does not have an interface, that's generally one of the opportunities I will use to uh, again, not a rule, but generally I'll say, hey, look, if it doesn't have an interface, if I want to go write a test on this thing, I'm telling I'm basically admitting I need to directly call into this. I can do that with databases now, which is great because we can spin up Docker containers very quickly. A lot of advancements that way. But if I have a third-party package and all they give me is a class and if I interact with that class, it's calling out to the internet, need an interface on it, I need to because I need to be able to separate that out because I don't want to do that in my tests. So that's one part. The next part though is that I often do write functional tests and I should put some examples together with this. But what I will generally do is I have a container builder. Thanks Ryan. I appreciate you being here. Uh I will use my my service provider, right? So build the container, use my service provider, and then in my tests, my functional tests, I will resolve the service that I'm trying to test from that container the same way that it looks in the real application. Where I need to, I will register on a mock of that interface for a third party service so that I can mock out only the thing I care about and everything else remains the same with real classes. So as an example, if I need to interact with a database, I'm not going to mock that. I will I will spin up a database. And so that might be a scenario where I resolve the service and I don't have any mocks. But if if I need to resolve that service and it interacts with that third party thing that's going to touch the internet, I am, you know, I'm going to resolve it, but I'm going to register a mock onto that container first so that it overrides that. If that sounds super confusing, I will make a video and hopefully it helps. But that's kind of what I would recommend for decoupling that kind of stuff from a testing perspective. Um, time check. Um, I'm going to sign off. So, Gassan says, "I had the longest debugging session this weekend for a tech archaeology project this past weekend. What was the tech archaeology project? It sounds like you were working with some legacy code, which is always fun." Um, love to hear more about it, folks. I'm going to start signing off though, so give me one sec. You know what I forgot to do? I don't know if folks remember from last live stream. I should have kicked this thing off. I literally opened up a clawed code terminal and I wanted to do the same thing where we start the stream off and we have AI start to make something for us, but I didn't didn't remember to do it. So, just to go through the list of offerings because that's what I do. Um, this is the newsletter. If you're interested, you could check that out. If folks, if you're on Substack, you already know where things are at. Um, that newsletter goes out every Saturday. If you don't want an email newsletter, don't subscribe. You can just check it out like a blog post. Literally, I'm on the page right now. There you go. There's the article. They are paywalled after over a month or so. So, that's that's the reason to subscribe to the newsletter. Thank you so much. Um the um the other channels I got going on. So if you're watching on YouTube, uh you're already here. This is Thanks, Infected FPS. This is the Dev Leader podcast. This is where I am hosting all of my uh software engineering interviews. Um this is a brand new channel, which is like the views aren't so great unfortunately, but got to start it. Um and this is where I do the live streams from now, so you could check that out. Um, Dev Leader is my main YouTube channel. So, this is where I have all of my car uh.NET and AI programming tutorials. So, let me get a link to that in the chat. This is where everything used to be hosted, but kind of moving away from that now. So, you should only really see like programming tutorials on this channel if you are interested. Okay, next up we have Dev Leader Path to Tech. This is one of the other YouTube channels I spun out and this is where I'm doing all the résé reviews. So, um if you're interested in having your resume reviewed, check out this channel. Um I am trying to curate the resume reviews into categories as well. So, if you want to learn about mobile résumés or Azure, whatever, I'm trying to just make sure I have examples. I have to catch up on the resume reviews. I apologize after being on call for a month. I'm hoping that I can catch up now. So, that's the resume review channel. Code commute is the one where I do vlogs. So, often I am driving to work, from work, to CrossFit, from CrossFit. But this is a vlog Q&A channel. So, if you have questions you want answered, you can basically write them on a video. Or if you want to be kept anonymous, you can go to codecommute.com. You can check this little box here. You can write a question. I will make a vlog for you, post it on YouTube, and keep you anonymous. So, if you write stuff in here, um, I'm going to keep you anonymous because I won't know your name, but I'm not going to say names if you list them or whatever. But, uh, this is my way to try and scale helping people because a lot of the times people have questions that are very, very relevant for people, uh, like other software engineers or aspiring developers. So, um, I, you know, would love to try and answer questions that you have. That's where you go for that. Code commute is on Spotify if you're interested. So, you can just search for Code Commute on Spotify. Same with the Dev Leader podcast, by the way. So, if you're like, "Hey, I like the material, but I don't want to watch it on YouTube because I don't have premium." Just head over to Spotify. Both are there. Finally, courses. Um, I do have Courses if you're interested. And there are some other courses as well for uh general software engineering where I partnered with Ryan Murphy on those. So this for me like this is the thing that that pays for my content creation. I basically take the money that I make from courses and then I put it back into content creation. So helps me pay for my video editor um helps me pay for software that I use um and subscriptions that I use for content creation. So very much appreciated and hopefully it's helpful for people. Um I will answer your question in just one moment. I think that's a fair question to ask. The final thing I'll mention is that I have brand ghost. So if you're interested in doing any content creation, posting to social media, maybe you have a small business and you're finding it kind of challenging to post content regularly. I use Brand Ghost for all of my content creation. It's the platform I built that has allowed me to scale my content creation. So, if you see me posting on Twitter or LinkedIn or did you know I have Facebook? Did you know I have Pinterest? I bet you didn't know that. Um, I post to my own Reddit profile. Uh, I used to post to Tumblr. Tumblr blocked me. I think someone reported my account or something, but I had I had people that were messaging me on Tumblr. Um, Brandos post to all these platforms. Uh, like all the icons you see there, we're adding more. And so if you're interested in having some support with being able to post content on social media, check out Brand Ghost. It is totally free to use to crossost and schedule. No strings attached, no credit card required. If you want the more advanced features, those cost money um because it's not free to host. So, but that's all. I have one more question in the chat. It says, "Sorry if it's a bit of a weird question. No such thing. That's okay. Do you think having a project that isn't directly backend or even web or dev related like a small game at all does any good being on a resume if mainly applying for backend positions of course um I would say absolutely yes and the anecdote that I will give you is that and I've talked about this it's like people might know this story my first internship I got because I had a game terrible game not complete um and I had it on my resume and the the the CEO of the company, the founder, said, "Bring something for show and tell." So, I brought my crappy little 2D game. It looked like Pokemon. It's a role playing game. And he had me walk him through what I built, why I chose certain things. We had a conversation about it. And that got me the internship. He said, and I will always remember this, when I got hired, he said, "Are you surprised that you got the offer?" And in a like, not in a cocky way. I said, "Well, I'm not really, but only like the reason for that is because I thought the interview went really well, right? If the interview was terrible, I would be very surprised that I got the offer, but going through the interview, I was like, this seemed like it went really well." So, like, no, I'm not surprised. And he said um he said that position was supposed to be for mid and upperyear students and this was my very first internship my like my first semester well first internship semester at University of Water there's six internships so it it worked like it let me get the job I went back for another semester after that but I think games are such an interesting way to go learn how to build software. So, I think if you have it, use it. Um, I speaking from my experience that worked really well for me. I have used games as side projects my entire career because they let me have a playground for building things. I can try out new packages, new architectures, new frameworks. You can take the same thing, rewrite it in a different language. It's just an awesome thing to go like move and play with code. So, um I recommend it because I think it's a great learning tool and it's worked well for me. So, um I have not storyboarded before. Um it's a the game itself is will never likely be released. It's probably never going to be very good, but um the it was fun. It's always been fun to build and it's been a lot of learning. So, I will always recommend that to people. But I hope that helps folks. I'm done for the evening. Thank you so much for being here. I hope to see you all next week, same time. Sorry if you weren't aware about the channel switch, but it's on the Dev Leader podcast YouTube channel. Apologies. I will try to share out more on that. And if you're interested in this type of content without the back and forth, uh you can check out Code Commute during the week because it's a similar type of thing where I'm I'm blabbing the whole time. you just don't get to chat with me because I'm driving a car and that would be absolutely reckless. So, we don't do that. But, thank you for being here. I appreciate all of you and I will see you next time. Take care.

Frequently Asked Questions

What is the main goal of building side projects according to the video?

The main goal of building side projects is not to add complexity but to learn new technologies, coding practices, or architectural patterns. While complexity may be a side effect of trying to learn something new, the focus should be on the learning experience itself.

How should I approach applying for jobs if I have side projects that aren't directly related to the positions I'm applying for?

Absolutely include those side projects on your resume! Even if they're not directly related to the job, they showcase your willingness to learn and your ability to build something from scratch. For example, I got my first internship because I showcased a game I built, which sparked a great conversation during the interview.

Can I use AI tools while working on my side projects?

Yes, you can use AI tools to assist you in your side projects, but the key is to use them as a resource for guidance rather than relying on them to do all the work for you. The goal is to learn, so getting stuck and figuring things out on your own is an important part of that process.

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