Developer Side Projects: How Does AI Fit Into The Mix?

Developer Side Projects: How Does AI Fit Into The Mix?

• 300 views
vlogvloggervloggingmercedesmercedes AMGMercedes AMG GTAMG GTbig techsoftware engineeringsoftware engineercar vlogvlogssoftware developmentsoftware engineersmicrosoftprogrammingtips for developerscareer in techfaangwork vlogdevleaderdev leadernick cosentinoengineering managerleadershipmsftsoftware developercode commutecodecommutecommuteredditreddit storiesreddit storyask redditaskredditaskreddit storiesredditorlinkedin

So you're a developer and you heard you need to have some side projects... What should you focus on, and how does AI fit into this now?

📄 Auto-Generated Transcript

Transcript is auto-generated and may contain errors.

Hey folks, I'm headed to work here. I'm going to talk about something I was thinking about over the weekend and kind of similar to the one of the last videos I was making where I was talking about AI usage, but I figured I'd spend a little bit more time talking about a different angle on this stuff. So, I'm going to talk about side projects and um I'll spend the first little bit of this video talking about um probably like for I don't know, especially if you're more junior um my my take on side projects and the value of it of them, sorry. uh versus kind of how I'm starting to approach this stuff because I don't want to just jump into the the second half of this because I feel like it will be kind of misleading and I think that it warrants a little bit of discussion from from both sides.

So side projects um when a lot of us are talking about people building side projects a lot of the reason that we say to do this is so that you can build experience right um one of the the most common things we hear is like well you know I I've never done that before I don't have the experience like I you know this vicious cycle of if I don't if I've never done it before I can't put it on my resume um like Okay. But like the one thing that's in your control is that is that you can go build some of this stuff outside of work and it's not I get it. It's not the same as like having professional experience doing something, but it's significantly better than zero experience on a resume and you actually get to practice doing the real thing. So regardless of whether or not you can make it shiny or not enough for a resume, different story.

But the fact is that if you go working with these technologies, building these things, you are gaining real experience. So um you know when we talk about side projects like this for me is the primary motivator uh especially for more junior developers, right? And this is applicable even beyond junior developers. Like you might have people that are a few years into their career and they're going, "Okay, like I've been do I'm just making this up, right? I've been doing a lot of back-end development and I really want to switch over to like front-end development, but like kind of stuck in my job because I only get work that's for doing backend like like what's going to happen here? Like how can I ever go to apply to like a job where there's more front-end development if uh if I never get that experience?

And it's like, yeah, of course, there's things that you can try doing at work to try seeing if there's opportunities where you can get some work that's like that, by all means, and I encourage you to try. But at the end of the day, if that's not going to be possible or there's no, you know, your manager doesn't support it for some reason, then okay, like the thing that's in your control is that you can go building stuff outside of work. And I I also understand I know everyone will come from different walks of life, you know, might say, "Well, I you know, I work two part-time jobs. I go to school and uh and I have this internship and I like I cannot spend time on things outside of work." And it's like, okay, maybe the reality is right now you can't and like that sucks, but like your current situation is also not forever.

And you can take that same mentality and say, "Cool." Like, "Can I replace something from my current situation with time spent building things?" And acknowledge that that's not forever because it isn't. So, I don't mean to minimize like people's time spent on different things, but um I think that if you if you need to do something bad enough, you find ways to make it work. This is prioritizing. So again, just to reiterate on this part that the side project thing is very much like a tool for building experience. And to kind of segue a little bit more into AI, this is why when we're talking about these things, especially for more junior developers or anyone who's trying to learn things, it really does not do you as much of a favor to have AI just spit out a working solution, which I mean, good luck anyway.

Um, but like it it doesn't really do you a huge favor because like let's let's think about this for a second. Like if you if your goal and it's all about what the goal is. If your goal is I want to go learn this technology, right? Forget AI. Imagine you go to a website that's like, hey, you can download all this source code for these different projects that use this technology. And then you download the code to your computer and you go, I have it. I have the code. You run it. it works. And you go, great. Like, did you learn the technology? Like, probably not. We probably learned the least amount possible. Now, you go use AI and you do a similar thing where you're starting from a fresh canvas and you go, "Dear Mr. or Mrs. chat GPT, I would love if you could go use React and build me a website that is a to-do app because I was told I need to learn React and I need this app.

Let's assume that it makes it perfectly for you. What did you learn? Right? You have to think about what the goal of the project is because a lot of people will then say, well, well, I need the thing to put on my resume. And then you'll hear this other argument of like, well, to-do apps and stuff, that's stupid. Everyone can do a to-do app. Like, don't put that on your resume. And I mean, I partially agree, but also partially disagree because I'm not looking at resumes looking for who's got a cooler app idea. I'm not hiring you for your app. You built a to-do app. Cool. Tell me why you did that and what you learned. Like that's what I want to see in the side project section that you're trying to learn other things because you're you're sort of enhancing the other areas that you're trying to learn in.

I don't care that it's a to-do app. If you said it's a to-do app and then you had a oneline thing that said chat GBT made the code and I didn't learn anything. Well, I mean that's pretty useless. But you could take the most boring app ever. You could say, "I made a to-do app and then I tried rewriting it in four different languages because I wanted to see how these languages differ and or I use four different text stacks." Like, that's pretty interesting. It's It's still a to-do app and it's still boring, but that's not the point. It's what you're trying to do with it. You can take a really boring vehicle, and when I say vehicle here, I mean like a to-do app or whatever. Like that. That's the vehicle for your learning. You could take something that's boring. You make a calculator, make a to-do app, but you use that boring vehicle to go like learn interesting things.

You can introduce complexities and other ways to go learn about a technology. It's just giving you a vehicle to go learn the technology. That's all. So, I think this gets confusing for people because they're like, "Well, I'm not supposed to make a to-do app because it's boring and it's not going to stand out on a resume." And it's like, "Yeah, probably won't unless you have something interesting to talk about with it." So, why the hell were you making a to-do app in the first place? Just to check a box for your resume. It's like, that's a pretty crappy box to check. But, it also doesn't mean you have to go build Facebook or YouTube because then what? Like, that's so extreme the other way. If you said I built Facebook or I built YouTube, I would say yeah, like explain to me how you did that.

Well, I used chat GPT for the whole thing. And it's like, well, that like how much of that did you understand? Like could you even walk me through what your code does? If not, then like what the hell are we doing here? So, there's a balance. And I think like I said, I would heir on the side of like you're using side projects as a vehicle for learning, which means you better be getting stuck, right? People avoid getting stuck like the plag. That's literally like the best opportunity for your learning is when you're stuck on stuff and have to get out of that. So, so where does that take us? So, I got a lot of side projects. I've had a lot of side projects for a long time. Um, and but I'm in a little bit of a different situation. I'm not uh immune to what we were just talking about.

Certainly not. Um, and as someone who is an engineering manager working with engineers in different areas of different things, different domains, different tech stacks, like I pride myself in being able to remain as technical as possible, right? I write I don't write code at work, but I write lots of code outside of work. Um, I love building stuff, but I need to in my in my opinion, I need to stay relevant in the tech side of things. Not because I'm going to be coding at work, but because I need to be able to understand effectively what the engineers are working on. Now, you can there's so many varying degrees of this, right? I've talked about this where I've had like one of the best leaders I ever had. Um I can't remember what his background actually is, but he was a he was a product guy and um you know didn't code.

We we were never talking about like code specifics, but he was very very good at communicating. um we could need each other at the right level, talk through things. If I had a really difficult technical challenge I was working through, I would need to uplevel what I was talking about so that he could understand it. And if he didn't, he would just tell me like, hey, like not making sense, like can we like can you explain it a different way or he would try to ask things back to see if he understood? But um again, extremely effective at communication, amazing leader, didn't program. I literally don't know if he's ever programmed, and like I literally don't care because it didn't matter.

Um so for me though like I I look at how I operate and for me it's very important to um to continue growing skills on the people side right so that I can be an effective communicator so that I can have empathy so that I can understand people better and better so I think that's the most important part as engineering manager but I don't want to lose sight of the technical stuff Now some other challenges that I need to like kind of mix in here are that I do want to someday have my own business and like for me I am building brand ghost on the side. Uh I would need significantly more users to replace my day job. So I don't look at brand ghost as like you know a couple more months and I'm I'm out of here Microsoft like it's not it's certainly not like that.

Brand ghost is the thing that I build because as a content creator, this is my solution to my content problem, right? It's it's a problem I have found in content creation. I've lived through it. I know other people are living through it. And I said, I'm going to build a solution for this. And of course, it would be incredible if more and more users continue to use it. But like it's a it's a difficult situation because like in order for me to uh do marketing and sales that I would need to do like I would need to quit my job to be able to do sales and marketing effectively to to be able to ramp that up. So it's going to be something that takes a long time and that's just like how it is. So again, that's not I'm not building brand ghost as like a what's the quickest way that I can get out of Microsoft and like retire to do my own thing kind of thing.

Um it's just it's a gap that I saw and I think it needs to be filled and I'm going to be the person that fills that gap. So that's certainly more of a business though. And on my failed previous attempts for other things where I saw gaps, I built a nutrition platform that would help generate meal plans. Yes, you can use chat GPT for that, but do you trust the numbers and stuff that come out of chat GPT? I don't know because do you trust the numbers that you see on labels? I don't know if you should either. So, um I was trying to come up with a solution to this, but I was too focused on building like technology that was it was more fun to do that than me trying to do sales and marketing. And I'm really trying to avoid that with brand ghost because it's just self-sabotage, right?

It's basically being lazy and saying like, well, sales and marketing is hard because I'm not good at it, so let me just not do that. And I have to keep reminding myself don't fall into that trap. So I need to treat Brand Ghost like a business, right? So I sometimes refer to it like a side project because that's how it started. But I need to treat it like a business. And if it's a business, in my opinion, it's not an effective strategy to try experimenting and learning um and just like using it as a playground if it's a business. There are some things where I'm like, "Sure, I'm going to have to learn new stuff inside of Brand Ghost." And that's okay, but I'm not like like in Meal Coach for example, I was like, "I got to build my own caching layer from scratch." Like, why would I do that?

There are so many other like caching solutions that are better than something I could whip up. Like, it doesn't it's not a good business move, but it's fun for a side project, right? So I have brand ghost one of the things I'm building but at this point in my life there's a lot of other like little things that I think would be fun but then it's like okay time constraints right so I work my 9 to5 I have a wife we have animals I do content creation I trying to create more courses I I think in the one of the last videos I was putting out I currently have like uh these two YouTube channels, right? So, Code Commute and I have Dev Leader, which is my main channel, but I'm splitting Dev Leader up into two other channels. So, Dev Leader will be across three channels plus Code Commute.

So, there's a lot of stuff going on. I write a newsletter every week. That's one evening of my week. Every night gone. I live stream once a week. That's another evening of my week gone. When I say gone, I just mean from a time commitment perspective. So, I don't I don't got time to go building all these fun ideas unless I won the lottery and I don't have to work my 9 to5. But what's kind of interesting is that if these AI tools stop sucking so much that I actually have an opportunity to build some of these things. And the reason I said that this is different for me is that all the examples I gave at the beginning, this is what I'm trying to encourage more junior people to do to go learn. Go build things. Go get stuck. Go learn. For some of the stuff I want to build, it's not that I don't know how to do it.

It's that I don't think it's a good use of my time compared to other things that I'm doing. Like right now, as a like a side project kind of thing. Brand ghost is the most effective thing for me to spend my time on because it's the next thing for me that is a business that can generate money and set me up for future success. It it just makes sense for me to spend more time on that. But I have a couple of other things and I'll talk about them and they just don't make sense for me to spend a lot of time on. Maybe what they could be good for is YouTube content. Maybe I will do that. I'm just kind of thinking about that now. That could be really fun and a good excuse to spend some time on it. But I think um I think what I'm going to try to do is use AI agents to kind of chip away at this stuff.

I desperately need to get them set up. And I was really ranting about this in the last video. I really need to make sure that they're set up to stop making the dumbest mistakes over and over and over again because then I'm going to have a few projects going where all that I'm doing is like sitting there reviewing code that's always wrong seemingly and uh we got to get past that hump. But I am a strong believer we'll get there. So let me talk about some of the things that I'd like to build. Um the first one I've talked about this already. It is a um it's like a SQL workbench tool. So for MySQL users, if you are familiar with the the workbench tool they have, there's lots of other tools like this. It's an app. You connect to the database server. You can pick your your database schema.

You can go query. You can insert stuff. You can make new tables. You can just basic. It's like Visual Studio for for your your database or VS Code for your database. And um I wanted to build something that there's so many features in those tools where I'm like I don't I don't use like nearly I probably use like 1% of the of the functionality, right? I want to browse tables, you know, create, edit, delete tables. I want to run queries, but the thing that I really like doing um is being able to optimize queries. Now, I am not a SQL expert. I've been using SQL for many many years, but because I don't live in and breathe SQL, it's just one of those things where it's like I know I need an index on this. I know like certain things like dos and don'ts, but I'm not a professional SQL developer.

So, there are times where I have a query and I'm like, man, this thing's slow. And I really don't think it should be slow. Like, there's no good reason for that. So you can do something called explain query plan. It will show you like you know what indices and stuff are being used where there aren't indices. And what I was doing and I did this with uh brand ghost very effectively was I would give the database schema to chat GBT. I would give it the query and then I would give it the um the query plan results. So I'd say like this query is going slow. here's the schema, here's the query, and here's the the query plan. And then it would go, oh, like you're you're missing an index here. And then I remember like a lot of most of it was like missing indices.

And I was like, no, that's ridiculous. Like I have I have indices on those columns. And it would be like, yeah, but you don't have an index across both columns. So like the way that you're joining that data is on both and you need an index on both. And I don't like I actually don't think that was something I knew. I thought that if you had it on one or the other or sorry, individually you'd be fine. No, I don't know. Maybe I've just always thought that and it's always been wrong. Maybe that's specific to MySQL and not did a lot of SQLite development before. I don't know. But that's cool. Like I was wrong and it like really called that out for me. or it would reorganize things and say like the way that you're doing this if you pull this out and query it this way instead you'll actually save a lot.

Um, but it was this iterative process and I wanted to build this workbench application that basically put the LLM chat for this directly into the workbench so that it can go run my queries for me because the other thing and this is where chat GPT and this this workflow was falling down was it would optimize stuff and then I would get to the point where I'm like wait a second I have different results coming back like my the shape of my data is wrong now or I'm missing just missing records. So I want to build into the tool like it will probably use semantic kernel and um and basically try to compare two queries and say like go run one query run the other compare the data set you're going to profile both you have the query plan for both and then feed that into

the LLM so that it can iterate on it and um I think that would be a fun tool I would use that do I have time to go build that? No, I just I simply don't. So, I started that a few weeks back now because I've already talked about this. I used um Claude Flow over Claude to be able to get that done up. Um, and there's like a working well I say working prototype. I've never even connected it to a database, so I doubt that it actually works, but it runs. It's a WPF application. It runs. It has like the layout's all looking pretty good. Like, it looks like a real application. I just haven't really tried it. And again, that just goes back to I simply don't have time. So, that's one thing. And I would love to just have AI agents chip away at that.

So, that would be super cool. Um I'm going to as I go through these projects, one thing I'll mention and I try to wrap it up with this is I don't have a good feedback loop. So let me come back to the feedback loop part. Um there is another thing that I want to build and I started it briefly over the weekend because I was thinking about this problem that I have with AI agents. Um, right now when we're running these agents in swarms, they're supposed to have like a shared memory. And I don't I don't know the guy like I know I see him on LinkedIn, but the guy who makes Clawed Flow, I'm sure he's very smart. Um, I don't mean for this like I I feel like I don't have a good way to say this without it sounding condescending, so I don't I just disclaimer.

I don't mean for it to be, but um the thing is is broken. Claude flow is just like it seems like it's always falling apart. And what I mean by that is like it's supposed to kick off a bunch of agents to run together and that's great. Um, but like we updated and there's a bunch of us that are like the shared memory part, which is the entire point we're trying to use it. Like the shared memory doesn't work. So you go run these agents and across different sessions, you're basically like retaching them everything that you had to teach them. And I I know the clawed file, but like even with stuff in the clawed file, it's simply not enough when operating across the codebase. From my experience, it's just not because I have stuff in the cloud file that says like don't use these packages, only use these packages.

Doesn't listen. Um, so um I said I want to go build an MCP server that's basically like a hive mind memory. So, it's going to be called Vesper. And I started the prototype for that. And basically, you'd be able to bring your own database or use a SQLite database. You just set a connection string. And um you'd be able to have, you know, when you're talking with the LLM or it's learning things, you can get it to save memories and then that way it can recall them later for usage. Um I don't know the effectiveness of this yet. Why is this lane stopped? Oh man, you know, it's Monday. Um, so yeah, it's going to be an MCP server. Um, but this is like I was in the previous video, I was saying this weekend all the the AI tools were just like completely the bed.

Super frustrating. So, I have a project, but like man, I don't like I was trying to get it to write tests and I probably spent a full day cuz I'm just doing it on the side like you know periodically checking in and it's like I can't even get this thing to have passing tests and it's like trivial stuff. It's like table doesn't exist. I'm like did you even make the schema? Like why why do I have to tell you these things? It's just it seems very weird, which is ironic because I'm trying to build this thing so that it will help me with uh agents going forward. So anyway, that's Vesper. Um that's definitely much more of a prototype. The other one is too, I guess. But um you know, Vesper could be a really cool thing that's helpful for me. I'm sure there's tons of other people doing this already.

I haven't hunted around. I just figured I'd try making it, so why not? Um, and then the third one is going to bring me back to my roots, and that's going to be my role playing game. So, I was looking this weekend um the the repository for my role playing game hasn't been touched in 4 years. And um it's built in C. It's made for Unity. Uh it looks like it's it's not presentable. It's very terrible. Um, so that's why like you don't you don't see me showing it because I spent a lot of time on the game systems because that's the fun part for me to build. But I had this like sort of dilemma this weekend because I was like, hey, like I don't have time to build this, but it's never going to make any progress if nothing's coding on it. So then I was like, well, do I start it from scratch?

And then I'm thinking, man, like there were so many hours poured into building it. And I followed a lot of patterns that like I absolutely would not do now. So many because I was trying them out. I always used my my game development stuff to try patterns out. So for example um I would put like interfaces for things go in a whole separate project file so that you you were forced to like separate your implementations from interfaces and like I just followed that not because I thought it was the best thing to do but because I was like I want to see the limits of this but like I just wouldn't do that now and like I would rather make progress on other things than kind of test that hyp.

hypothesis like I've tested it doesn't work very well kind of as I thought there's li like significant limitations to it but there was a lot of nice things like it really got me thinking about how to organize code so it helped but I just don't want to do that now so in my head I'm like oh that would be so much work to go change but I'm like but I don't have to do that like that can be the job of AI I can just go tell it the new patterns and say like, you know, start migrating this part, start migrating the next part or build up the migration plan and chip away at it. But like I don't have to be the one to do that boring work to go, you know, delete half the project files and move the interfaces around. Like I don't have to do that.

So then I'm like okay well maybe I you know maybe I um reuse the existing stuff and we'll start migrating it and then so like clone the repositories down um it's built across three separate major like solutions. one of them, and I'll explain why. The the one is a like base RPG framework. So, it's totally agnostic to whatever type of role playing game you're trying to make. And that way, if I have the one that I'm building and I wanted to make another one, maybe I want to make a space themed role playing game, I don't have to go start everything from scratch. I have like basically these common systems that I can I can reuse. So, that's one. And then the next part, the next layer is um one sec. People weren't making any space. Um and I have to get off the highway in a sec.

The next part is like um the game specific logic, but it's like it's not um it's not the input, it's not the visuals, it's like it's like the game it's like the game logic that can't be made configurable and cannot be pushed into the common RPG code. So, in an ideal world, I'm pushing as much like like game systems into the common RPG code so that I can reuse them, but like there's going to be some things that where it just doesn't make sense and I need to have game specific logic. So, it goes in this next layer. And then the third layer is really like um like where Unity comes in. And I want that to be as thin as possible. And the reason for that is that I want to be able to not be completely tied into a game engine because even this weekend when I was like maybe I should do this and I should have AI chip away at it.

I was questioning should I toss out all the Unity code and pick a different engine? And like I wouldn't have even had that option if I hadn't thought about how I was writing the code before. If it was all in unity and all coupled to unity, I would probably be like, "No, man. Like, we got it. We have to stick with unity. There's no other choice." So, I wrote it this way on purpose. So, these three levels. Um, but the challenge I have right now is like I I went to go open the Unity project in the latest version of the Unity editor. So like four years have uh have gone by and like the the project is just completely not compatible. So I um I have to do a hybrid. I think I think I need to create a new Unity project.

I need to bring over all of my existing code like start migrating it the Unity part and then however I was doing like package management and stuff I have to revisit that. Um, so I I think that what I will do is I'm probably going to have to spend a little bit of my own time to get this set up so that it can um that it can run. And then sorry, I got to move over. And then I'll once it's kind of running, I'll get to a point where I can ask, you know, I'll just start assigning stuff to AI to chip away at it, including like migrating stuff that I don't want to touch. So, when I get this stuff up and running, I have to keep in mind that like, you know, minimize the amount of migration that I'm doing. I'll just defer that to AI.

So, as long as I can get it to a point where it's like I can run it in Unity, we're laughing. Um, my camera's about to die here. Oh no. Okay. Well, let me let me wrap it up super quick because it'll probably just die while I'm talking before I get to the office. But the last part I wanted to say is I don't have a good feedback loop for this stuff. And that's the crappy part because I can go assign stuff to these agents to go do, but what I'm noticing is like 85% of the time, maybe even higher. Like 95% of the time it's not quite right. 95% of the time it could be close but not quite right. But it's actually more like, you know, a significantly lower percentage of time. bus. Come on, man.

Um, it's actually more like 95% of the time I'm uh a significantly higher percentage of the time I am like having to sit there and go back and forth with it and like be like, "No, that's not right." So, I can't just like let it go and then check in on it after it's done like 2 days worth of work or something because it will be so far off the rails that like it doesn't make sense. So, I need to find a good way to have a feedback loop and I I haven't figured out what that is. Now, one of these is a desktop application, one of them is an MCP server, and the other one's a Unity game. I don't know. I don't know how I'm going to do this to get a good feedback loop, but even ideally, if I had more confidence in the test cases that were being created, like I think that would help.

Like, I feel like it's kind of stupid that I have to go tell the agents, did like, did you run the tests? and they're like, "Oh, yes. Let me try that." And then they'll be like, "Yes, the test pass." And then I I go to the code. I'm like, "The code doesn't even compile. What do you mean the test pass?" And it's like, "Oh, you're right. I should have tried compiling it first." And then I'm like, "Okay." So then it's like, "Oh, I have like, you know, 2,000 errors to fix." So then it tries to fix them. And then I'm stuck in this cycle of like, "Did you even compile it? Um, did you even run the tests?" And then eventually when we get to tests being run, I'm like, can you at least look at the output of the test and go fix it?

Because before the agent memory issue that I was talking about, I got to a point where it was writing tests and I was just copying and pasting the test output and being like, here's the here's the stack trace, go fix it. And it could. So why do I have to do that? So anyway, to wrap this up, because this camera is about to die, that's the part that I really have to focus on, but I'm I'm hopeful that I can basically have some side projects that get chipped away at over the next few years, right? Um I think that'd be really cool instead of having these ideas that kind of just go off to die. Um so thank you AI. We're still early. We'll see how it goes. Thanks for watching. I will see you next time. Take care.

Frequently Asked Questions

These Q&A summaries are AI-generated from the video transcript and may not reflect my exact wording. Watch the video for the full context.

How do side projects help junior developers gain experience?
I believe side projects are a primary tool for building experience, especially for junior developers. They allow you to practice real technologies outside of work, which is better than having zero experience on your resume. Even if you can't get certain work experience at your job, building projects on your own is something within your control to gain practical skills.
What is the best way to use AI when learning new technologies through side projects?
Using AI to simply generate working code doesn't help you learn much. If your goal is to learn a technology, you need to engage with the process, get stuck, and solve problems yourself. AI can be a tool, but if you just have it build a project for you without understanding, you miss the learning opportunity. The project should be a vehicle for learning, where you explore and understand the technology deeply.
How do you manage time and priorities when balancing multiple side projects and a full-time job?
I acknowledge that time is limited due to my 9-to-5 job, family, and content creation commitments. I prioritize projects that align with my goals, like Brand Ghost, which I treat as a business rather than just a side project. For other ideas, I consider using AI agents to help chip away at them, but I focus my time on what will bring the most value and future success rather than trying to do everything myself.