Build vs Buy for Developers - Principal Software Engineering Manager AMA
July 9, 2024
• 191 views
career advicesoftware engineeringsoftware engineermicrosoftmsftAMAask me anythinglive streamlivestreamsoftware engineering managerengineering managerengineering manager day in the lifeprincipal engineerprincipal software engineerengineering managementengineering management careerbig techbig tech amadevin aicognition labsdevin cognitionaicognition aidevin software engineerai software engineerartificial intelligence
This is an AMA livestream! Come with your questions about programming, software engineering, career progression, etc... Happy to help share my experiences and insights!
Today we focus on:
- My newsletter points regarding build vs buy for software engineers
- Jumping into articles/posts from LinkedIn & Reddit
- Answering YOUR questions
View Transcript
press there we go cool I think that's all of them let me make sure I'm going to get the chat pulled up here as well there we go oh Instagram thinks that I am a robot of course ah yes I just did a capure for Instagram live and and it asked me if I was a robot and and of course as you might have guessed I am not but it disagrees it says user agent mismatch so one sec I got to make sure that I can get this on Instagram as well it's kind of annoying you do all of this set up ahead of time so that oh it's actually going to Instagram that's perfect it just crapped out of my browser so anyway glad that's out of the way so the other little weird thing going on here is that it looks like the
autofocus on my camera as of tonight right before starting this has gone so if I get close it's not focusing anymore I can't I can't hear the little motor moving or anything so uh oh got to figure that out but that's a problem for another day so this uh this live stream is going to be about my last newsletter which was build versus buy for software engineers and I wanted to talk about this from the perspective of being a software engineer at a company as well as when we're talking about building your own things or building side projects and that kind of stuff like when should you start grabbing stuff off the Shelf versus taking stuff and building it from scratch so that's one part it is an AMA of course so the live stream that I do at this time every Monday uh at
9:00 p.m PST is an AMA so do jump in with any questions and stuff you have I'm happy to go over those and the other thing that I started doing last time was going over to Reddit and it's because the main content takes about 45 minutes to an hour for me to kind of go through depending on how many questions there are and I figured hey it could be kind of cool to get some extra insights as to what's going on on Reddit I know uh people go there a lot for information so I figured uh there's r/ experience devs and I think that's a good one for just kind of going over some different topics there so we'll be doing that after I go over the primary content so if you haven't read the newsletter I'm just going to paste it in the chat
um this is just so you can follow along uh especially if you're watching the recorded version of this this is what I'm referring to U and with that said hey on Instagram hello I like getting the the chats from Instagram sometimes I just see people joining and leaving and stuff and I can't tell if they're sending messages so good to see you okay so I sent the link if you're on Instagram or Tik Tok I don't think the link comes through but if you want to find out what I'm talking about specifically if you go to weekly dodev leer.com that hurts my my feelings or reproduce content so I'm going to have to appeal for that at some point that's kind of funny I guess I'm unoriginal that hurts okay so anyway let's get over to the topic and it's build versus bu so the
start of this that I want to focus on is how this comes up traditionally in software engineering um when you're working at companies right so at companies one of the things that we have to think about is keep keep a business alive now if you're working at larger companies generally there's a little bit more flexibility because there is money coming in um so I'm going to start on the other side of this if you're working at a small company the build versus buy conversation becomes very interesting because you have very limited resources right so uh if you're watching this whether it's live or you're watching the recorded version depending on what types of companies you've worked at or if you haven't yet you know landed your job your first job uh this stuff might not be OB obvious but um startups maybe it is going
to be obvious startups generally are fighting to stay alive right so not every startup has you know millions of dollars of investment and uh even the ones that do um it's kind of funny right if they're not actually generating profit uh where's all that money going it's you're kind of just burning through it so you need to get to a point in a business where you are generating profit now with that said the tricky part is that when you want to go build things with a team of software Engineers you have a team of people and you may or may not have money so sometimes when you're making a decision like hey we want to go build some system or we want to build a product we need uh different tools you might want to use libraries that uh have licensing fees um you I'm
just trying to think of a couple of examples we uh speaking of Licensing fees I've seen where we needed to make a decision about building our own Licensing in house versus not so you need to up with these decisions right you're probably I don't think anyone right now is making their own database I'm going to come back to this one later but you know you have to make decisions about what technology you have available to you at startups and small companies where you don't have a lot of resources this gets kind of tricky and that's probably obvious but what I wanted to talk about here that isn't so obvious is potentially how you make that decision right so um if you don't have a lot of resources in terms of funds if there's options out there where you can go um buy different options you
may not be able to get the best of the best right you're a small company it might not make sense for you to go Splurge any cash that you have go more in debt trying to get something just because it's top-notch right so sometimes you might incur what could be perceived as some tech debt right away because you're like we're going to get this thing to get us going and it's not going to be the best of the best maybe we can get that later but you have to make a decision about what's going to keep your company alive so the other thing that can come up again assuming that you can't afford the best of the best is you might say hey look we can actually whip something up fast enough just to get us going and it might seem like a weird decision
because if there's already something off the shelf why wouldn't you take it and the reason might be that if you're thinking about the supportability of that kind of thing you might say it's going to be so much overhead we're not going to have enough flexibility these are all different things you have to think about so I'm saying these things out loud not because I think the best way is to go build all of your own stuff or it's always to go buy the best of the best I'm saying these things out loud because these are constraints and what I was writing about in my newsletter sort of in the introduct uh in the introduction is that when we talk about software engineering one of the things we don't talk about a lot is the engineering part we're so focused on you know what code and
you know how we're going to write stuff and uh the best practices in terms of styling or who's got the best language and whatever right it's like we focus so much on code and not so much on the actual engineering part and I'm not saying that in your job you don't do this hi dark devil on Instagram good to see you um I'm not saying that you don't do this where you work I'm just saying that I experience a lot of this in interactions on social media where everyone's just talking about code now you'll probably notice if you follow me I talk about soft skills and stuff a lot as well because I think that's really important but the other whole thing that sort of the undertone of software engineering is engineering and my perspective on this is that when we're talking about engineering we
have to think about constraints when you don't have constraints you can do anything you want and when you start saying whether something's better or worse well given what constraints right what are you optimizing for if you had infinite time to go build stuff then like yeah you could go build perfect code right whatever that happens to look like but the reality is we don't have infinite time we don't have infinite money these are constraints we have to work within you don't have a team that's uh infinitely scalable you might have a team that doesn't have certain skills in certain areas we have constraints so I think when it comes time for companies to decide about build versus buy you need to go through this decision-making process about where your company's at what you're able to do with the resources you have you want to be
able to have some sort of trajectory to figure out like how long do you need this thing for right how how core is it to your business because the other thing might be that when you're looking at options you might say it does make sense for us to go build this because this could be part of our core offering so the comment I made earlier about no one's role in their own database well it might be if you plan on you know making your own company around a database Tech there's dog fluff on my nose super distracting so at bigger companies I kind of mentioned this earlier there's a lot more luxury right you have more money more resources um you can take a little bit more risk because if your company's generating money you're kind of I don't know what the like a good
analogy for this is right but when you're talking about a startup you're kind of having one big bet that you're placing that's the startup itself so much dog here and at big companies usually it's not just that you have one bet anymore you have probably something that's core to what you're doing and you have a lot of smaller bets that are going on or many big bets in parallel right so if we talk about big Tech like say Microsoft where I work it's not just windows it's not just Azure it's not just Xbox it's not just Microsoft Office there are so many big bets going on some bigger than others right co-pilot is a very big bet so we have to make decisions about what's core to our business how we want to spend our time spend our resources and spend our money but there's
a lot of factors you have to consider so that was kind of the preamble to why I wanted to talk about this but the little twist that I wanted to add on to this especially when people talk about this kind of thing online is that this is just one perspective we're talking about it from when you're working in a company and I know at least for my core audience there's a lot of people that don't have jobs yet right they might be very new software Engineers aspiring software engineers and if you are reading things about build versus buy and you're not thinking about more context you may be misinterpreting or maybe not valuing things in a way that maybe I might recommend and that is you have a different lens to look through when you're building stuff on your own so myself others included talk
about you know one of the best ways that you can learn is going to build software and I stand by that but if you're like okay well I want to do what Nick's saying and I need to go build my you know my projects and stuff is Nick saying like I should go pick something off the shelf for every single one of these things right because Nick was saying like Okay we have to think about the constraints I don't have money I have to go pick something that's cheap and free and uh open source or I have to go do this I have to go do that because you're thinking about the lens of same thing that a company might have and I want to separate these things and the reason is that you can actually learn a whole bunch by doing things the exact
opposite that I might recommend for a company so what does that mean well I was saying you know I picked a database that might be a bad example unless you really want to dive into making your own database but this is where I had a couple of uh options that I listed uh from my own personal experience and I'm going to go through some of those now and see if I can expand on them a little bit more as I talk so one of them that I spent some time on early on was Json der serialization and actually it started off not with Json because it's is going back a little bit further um when more things were in XML not like xml's totally dead but I think Json kind of won out uh in that bit of a race there so um I was
starting out by writing my own uh XML serialization and deserialization code and today would I recommend doing that like not I wouldn't go write your own XML parser from scratch right there's a lot of tools that you have but if you were someone that was just starting out and you wanted to go learn how this stuff works writing your own XML parser and something that could serialize and deserialize uh data to and from XML I think could be a very interesting project to go work on right it's not something that I would recommend for a business business like why would you go spend time and money doing that there's there's all sorts of free open source packages so you know why would you and a lot of languages just have it built in so why would you go do that would be a waste right
unless of course your core businesses you're going to write the best Json serialization in the world in charge for so for me it was really coming down to I was building video games really basic crappy video games they're still not finished after 20 plus years they never will be finished but I was building these things just because they were like a playground for me like kind of having like an infinite set of Lego bricks and I just wanted to go build stuff and I was getting to the point in my my games that were kind of silly um they were role playing games so if you could picture something that looked like Pokemon but you know you could go attack skeletons and stuff like that um I needed to be able to save my games right I needed to be able to do that I
wasn't really experienced at the time with working with databases and I had high iCal data and I said hey I think XML will be a great fit for this so I was trying to build things uh that would go serialize that and deserialize it now I would love to say at the time that I sat there and evaluated like would it be a good idea for me to go write my own XML serialization should I just go leverage something off the shelf that will do this perfectly for me and um I mean I didn't do that maybe I should have could have saved myself more time but um it was actually a great learning experience right so I think that being able to do that kind of get my hands dirty with it was it an effective use of time for me delivering more on
the the silly video games I was building absolutely not like that certainly slowed me down because I had to go learn about this stuff but was it valuable for me did I learn a lot and the answer to that is absolutely yes so that's what I want to call out and you're going to see this pattern with the other examples right that when you are starting out as a software engineer or even if you're more experienced you just want to learn about stuff I think that making your own version of stuff can be extremely powerful so from Twitter good morning learning to write a parser AKA alexir Etc is a basic praxy that every programmer should know yeah and like one of the things that we did uh you know in in University for me when I was going for computer engineering um this was
one of the earliest courses we had in University was that we had to go write uh leir and I remember being like why why would I ever want to go do this but it's really interesting right it's not they weren't teaching you that to say hey look now you can go out into the world and you're going to go write all of these lectures and change the world like that that wasn't really the point but when you go through the exercise you're learning a lot about how uh basically for lack of better phrasing I guess I've never really had to say this out loud but you like you learn how like languages are formed and we're not talking about like English language right but you're talking about how you have different markers or the syntax and the grammar of the language you're working with and
that can be very powerful it's a really interesting perspective that you may not have had until you go building one of these things and understand how that stuff works so um for me in University it was a very brief exposure to that and I don't think I I valued it at the time it was kind of like this feels like a waste but I can remember building my own XML stuff and being like like it was exciting and I don't know why XML is not exciting but I think it was exciting because I was building this game I wanted to see it kind of get further and building an XML parser was part of that so um I wrote um and I kind of tied the Json and XML part because I I was building it for XML and then later kind of moved over
to Json and continue that sort of effort but along the way for me uh I'm talk my my framing here is CP because a lot of my own person personal development isn't C but I learned a lot about reflection so uh one of the interesting things was being able to like dynamically uh like hydrate if I can call it that like hydrate the properties of objects and things like that or knowing which properties and uh members of an object need to be serialized out and written out to XML or Json gets very interesting once you start having hierarchies uh when you have objectoriented languages that have references how do you make sure that you don't have a like a circular reference and you basically have like infinite recursion in your XML writing right lots of interesting things from that um I kind of wrote basics
of parsing as one of the other things um and then something that's kind of fundamental in a lot of programming not from a uh not so much from like a theoretical side but from a practical side is just like working with strings bites streams and C of being able to go between these different things um I think there's a lot of value in that so it just got me exposed to being able to work between different data types and and storing and transferring information uh different ways so I think that was a good experience like I said I wouldn't recommend that for a business it would just be probably for like 99.9% of business is a complete waste and that's not to say that you can't have custom parsing for Json or XML like there's going to be situations all of the time where you're
like oh crap like for you know for C developers system that the Json parsing or if you're using Newton soft still like you know it works 99.9% of the time but you have this weird Edge case and you have to go write your own little thing like yeah that's going to come up even for businesses too so I'm not saying that I'm talking about writing it truly from scratch hello X coding good to see you back dropping in all the time okay so the next one that was on my list was Network messaging and if you keep in mind that for me a lot of my uh you know things that got me excited in programming early on were building role playing games right every every kid who wants to build a role playing game first what's the first kind of role playing game they
want to go make it's an MMO right you want to be able to play a role playing game with your friends you're going to go build the next big MMO uh by the way it never happens um it's the most like overwhelming type of thing that you could possibly go try and build but I still recommend you try it so for me it was like okay I got this really basic role playing game but I need to be able to play with my friends all all of my friends that know I have this stupid role playing game um but it's just just the concept right I wanted to have fun with it so for me again it wasn't like what you might do in a business which is okay we need to have communication between different services or different modules in our code uh or
have to go build this distributed system or have um you know client client server um architecture peer-to-peer architecture there was no like no thought into that I guess it was really like the only things that could exist are like peerto peer and uh I guess client server and in the very beginning I was like it needs to be peer-to-peer I'm not even checking for what's out there I'm just thinking I know that to connect to things I need sockets and that's just where it started and where it kept going so for me it was a lot of time early on just playing around with sockets so playing around with UDP TCP communication again building from some of the XML parsing and stuff like that how do I take my data and make it so that I can write it over the wire right um how
can I I was starting to learn about managing state of connection so when you do have peer-to-peer maybe you're going to transition that model to being like one of peers is the server let's say okay well how do you manage the connection States how do you start managing game State and having that going across and updates across the connection that you have but for me it was really just about like working with low-level socket stuff and that was very eye openening right like if I think back to going through that and compar to like what we have now um I think there's people that probably do a lot of uh you know Network Pro programming where you're sending stuff over the wire and like you you may not even know how it works under the hood um I certainly don't in detail but like even
today with so many levels of abstraction like it's almost like you don't have to know it just kind of works so the reason that I recommend that people play around with this kind of stuff in personal projects again is that you get this appreciation for how things work right it doesn't mean that you have to go next time you want to go build something you must go build it using sockets from scratch because that's what Nick did Once Upon a Time I'm not suggesting that I'm just suggesting if you're interested in it there are always learning opportunities when you start breaking things apart and trying to build them for yourself because you start learning like how how might this library that you're using how might that manage State how might that you know go handle these different scenarios and you'll start to build it up
and realize like oh crap there's a lot more to this than I ever thought so um highly recommend playing around with networking stuff uh uh ex coding about socks I remember when build a chat system client service back in the days with with weather encryption interesting but yeah having chat is like is one of like these foundational things that a lot of us start with right like I got to build a chat app because doing your first hello world program is super cool because it's the first time you get something showing up on screen but getting your first message to go from one computer to another is like holy crap this is the coolest thing that could ever happen and it's just I mean it's pretty basic but it's it's really it's really exciting for the first time you do it so um I just
realized I had written some notes before about what you could do to extend it uh so back just to quickly jump back to the serialization stuff um I wrote like so what could you do if you wanted to go repeat this for yourself and kind of do better than what I did in terms of learning um one thing I think is kind of interesting is trying to Benchmark stuff so I wasn't really paying attention to Performance but you have lots of options off the shelf right so maybe you want to play around and try benchmarking things profiling them that's other sets of skills you can work on uh for C in particular like I mean at the time I was not thinking about allocations and stuff it was like whatever makes it work it's working right like I don't care it's a it's a game
that I'm you know playing I'm not even playing it I'm just trying to build it it's not it's not never going to be playable so I wasn't really thinking about allocations and stuff like that but if I were to go repeat that kind of process that's probably something that I would be thinking about uh especially again if you're I'm assuming a bunch of my audience is C developers but we have things like span now so how can you start to look at doing uh some type of parsing with like fewer and fewer allocations that could be very interesting and then something else I wrote um and personally I need to spend more time on this cuz I feel like kind of missed it entirely but Source generation right so I talked about some reflection aspects on the parsing side um and it could be very
interesting that if you have a known set of types that you want to be able to support for this could you write some Source generators that would make this more effective right you might get bit of like bloat in terms of the binary size but it might be way faster there might be some really cool things you could do there so those are a couple things to look into um on the networking side uh just to wrap that one up uh I wrote um I think if you're going to look into networking things yeah building it from scratch could be super cool in terms of learning um what you might want to do is also compare and contrast what's available out there right so maybe try your own just to see see what's involved and then once you get your your hands dirty a little
bit like maybe go see what's out there right see how they perform see how in terms of not only like when I say perform I don't necessarily mean uh I don't know like how fast it is although that might be interesting to you I I mostly mean in terms of like the feel of using it as a developer like is it does it feel good to use does it feel very cumbersome that if you want to go connect two machines you're like I have to do all this setup this sucks um so something to think about uh I wrote here I think a a deeper understanding of of the network layers because I don't think it's something that I really paid attention to it's kind of like I'm just getting this working if it works it works but might be something you want to dive
into more um and then yeah I wrote things like RPC other teex Stacks just for comparison so um I start uh sorry if I pronounce your name wrong burgard I started with messaging over serial connections everything I learned at this time is also true this time yep um have you had experience in the enterprise software space we sell Erp software I've love reflection and unloadable assemblies Blazer hybrid is V Next yeah I've I've only started recently this year uh with some Blazer stuff mostly for learning I have not uh I not built anything in Blazer professionally my professional software development was a lot of Wind forms a lot of WPF um so when you say in the enterprise software space like kind of I built desktop software for like law enforcement and government agencies for digital forensic so um yeah so a lot of our
like basically everything was on Prem um so yeah you used used a lot of reflection for different things um my teams did a lot of plugin this is why I talk about plugins a lot like my teams were um like heavily into building plug-in systems and we use a lot of reflection for that burgard okay parody checks and retransmission are handled by the tcv stack but yeah yeah you get you get some help along the way um which is good that's that's what it's there for uh but yeah it's I mean unless you want to go try building your own network messaging like there might be things that you're thinking about and you're like oh I would have to go do this or I'd have to go do that uh or you're not even thinking about it and you get some of that functionality out
of the different Tech that you're using even with TCP or UDP right so you might not learn these things unless you go try it and to be totally honest it might never be relevant to you I don't know it might never be relevant but I think that there's an opportunity when it comes to learning that um you could get exposed to some of this stuff and it could be very interesting okay one sec okay so this was this is another one I spent a long time on so user interface Frameworks um which seems kind of ridiculous that I would spend time doing this but again video game stuff right so I was at in this position where I'm building this silly video game and to be totally honest it started off in a uh in a Wind forms application so the user interface was just
in Wind forms and I was like no no no we can't it can't be a wind fors application because um I need a canvas that I can draw and yes you can draw on a canvas in win forms but I was like it's got to be it's got to be a real game so it can't use Wind forms it's got to be it's all got to be custom drawn and I remember being like well unreal is impossible I'm never going to understand that but at the time there was I'm not sure if anyone remembers this there was something called XNA that was available and I feel like it's sort of like the precursor to Unity that we have today but the XNA game framework was something that we had for C development where we could go make games and it was super cool so uh
not like definitely not as as powerful as Unity is but it was awesome like I could finally I could go write some stuff and start handling my painting could go draw Sprite sheets and things like that but what I needed because I started basically rendering a game where you could walk around so I'm like well it's a role playing game what do you need in role playing games well I need an inventory I need to hit I or B on the keyboard open up my inventory I have to be able to see yeah so burgard XNA to Mono game so yeah that's the evolution there I never actually got into mono game so um but I needed a user interface right so I needed to be able to say okay well I need an inventory I got a drag and drop um when I close
that screen I need like a main menu I need an options menu so all of a sudden I had to start going to build these things from scratch and because I had spent a lot of time in Wind forms and this was kind of before my WP F days a lot of time in Wind forms I was like well I know how those things work I can go build basically a version like a a simplified version of Wind forms inside of XNA and that's what I did for months so again my video game progression was totally stalled trying to build this UI framework so if you're thinking about this from the lens of like a business probably not a good move to go build your own UI framework from scratch there's lots of things that are out there but for me as a developer just
trying to learn things on the side so valuable in terms of how you might propagate uh events and things like that um just tremendous um and I'm sure if I looked at that code today I would probably throw up so um we got Newman on LinkedIn hi Nick can you please give suggestions on staying up toate with net and how someone can upskill their skill set yeah so this is uh like so I usually answer this question more in a general sense and it will apply here and we can put a net spin on it but this is something that I can't just give a blanket answer to and because some people be like well I can't possibly do that so the first thing that I think you need to ask yourself is like how much time can you dedicate to that because some people
might say well you know to like if I want to skill up and stay up to date like I actually don't have time outside of work and that in in like that in and of itself makes it extremely difficult if you're like I cannot find time outside of work it's impossible generally what I say is like well is that actually true or are you just not prioritizing your learning as much and it's not for me to say I'm not trying to criticize you I'm just trying to get you to think about it right so hey Nick I know I don't have time and the reason I like asking this is from I've been in the gym as long as I've been programming which is kind of funny so sometimes for people that are like hey I just want to get into the gym but like
I don't have time for it I'm like again is it something that you have time for and you're just not prioritizing it I think that's like the most common thing people say they want something but they're not actually valuing it high enough right so that's the first question is do you have time and if you don't have time can you make some from there how much time do you have and it doesn't have to be like you must have one hour a day or you must have three hours a week and it's got to be exact but like you probably want to figure out on average some minimum that you can commit to and think about a Cadence again it doesn't have to be rigid everyone's going to be different but the reason I'm telling you to think about this is because if you're just
like okay I'm going to I have to go build projects and watch these tutorials and stuff like when are you gonna do it like I want you to think about that and make an effort to say I'm going to carve out time to give you an example that might seem totally unrelated is at the beginning of this year I said I want to start live streaming I already do a ton of stuff I'm like I don't have time to live stream like when am I going to do it but I'm like well you know what at 9:00 on Monday I'm not actually doing anything I might be like you know creating content I might be like programming or something but I'm like I I do have time and it got to the point where I said I want to prioritize this more than doing those
other things that are filling that time I'm not the kind of person that likes to watch TV to relax like I need to be doing something so I'm like I'm going to start live streaming uh live streaming at 9 9:30 for an hour now I'm live streaming 9 till 11: on Mondays and starting tomorrow I guess it started last week but I I carved out calendar time Tuesdays 700 a.m. till 9:00 a.m. in uh specific time I'm going to be live coding on stream so it's not that I didn't have time it's just that I had my time replaced with other things I'm trying to prioritize it so that's on the learning front I want you to think about time that you can carve out it doesn't mean that you can't take a vacation or something can't come up but I want you to think
about that time as a priority that's part one part two is what are you going to do in that time and what I don't recommend to people um this is coming from someone who tries to make tons of videos and articles and live stream right like I'm not saying you know hang up on the live stream right now but I would say if you want to use that time effectively try building things I would like for you to spend that time building things I want you to be getting stuck on stuff because if you're not getting stuck and then getting unstuck you're probably not learning as effectively as you could so what I mean by that is like if you're watching videos and someone showing so say I put out tutorials on something right here's how you go do this in WPF or here's how
you make an asp.net core web app and you're like okay cool that makes sense like I get it thanks Nick um and then you just go watch another video hopefully you're binge watching mine though right that's the idea um but if you're just going video to video like you're not you're not doing anything you need to be applying what you have going on right so I'm not saying that you can't go watch things or read about things but you need to be applying so I highly recommend you pick something that you want to go build and this is going to be the basis so when you pick something that you want to go build then the question is well what am I going to build Nick um I say try not to focus on something monetary it's just not your goal I think your goal
if you want to skill up because that's what the question was if you want to skill up you just want to build something that's going to help you learn right like it doesn't matter if it's making money or not in fact I would just recommend forgetting that forget about the making money part about the thing you want to build if you want to skill up and if we're going to frame this around Net Tech like have you built anything in Maui yet have you built anything in Blazer yet have you built anything in asp.net core right go through this list start high level you might be able to say okay I have been building an asp.net core I want to spend more time there so how can I skill up even an asp.net core I would would say well have you gone through the the
release notes about some of the new features have you tried those out I personally haven't personally have you from the videos and articles you have seen have you tried out some of those uh those fancy nougat packages you've been hearing people talk about no okay so let's see how we can incorporate those so you get a feel for these different things but we need to go apply it to something so I highly recommend that when you want to go frame this up you can take anything and we can break it down into something that you can go work on okay so for example I'm I'm just looking at my screen Instagram okay I have I have an Instagram window pulled up so I can live stream and watch the chat if I said Newman go build Instagram that's the thing that you're going to go
learn uh and how to build something and skill up you might say well that sounds ridiculous that's obviously way too much and I go okay no problem like what pieces do we need for Instagram if we wanted to go make an Instagram feed where you could go upload pictures only right I want you to go make a picture uploading Instagram or you might say okay well I need a UI for it okay high level need a UI probably need authentication probably need some type of service or maybe you're like screw it I just want to make a desktop app right so you can start pairing these things down you might need a database to store this information right so start coming up with some highle pieces of your system it's almost like pseudo code for your system right like what things have to talk to
each other and you might say well that's still way too much stuff okay so um let's go think about uh the database right you need a database for it okay what database do you want to go scill up on right I use uh MySQL a lot I don't use postgress a lot why no good reason actually a perfect example I was putting out videos recently on mongod DB for this exact reason I said I don't use document stores a lot I know what mongodb is I just don't use it a lot I'm going to go start building something with mongod DB and it started with just having the the database interactions like a basic headless crud system where I could do stuff with it now I have a building block and that's just what I would recommend you do um I also don't and this
might be controversial for other people's thoughts cuz you might be like what it's going to look crappy on a portfolio we're not talking about a portfolio we're talking about Skilling up on stuff you don't have to finish the thing you're building the point of going through this exercise is trying to learn about it so if you're hitting a point where you're like I feel like I've learned some stuff I'm losing interest I don't really want to do this anymore um and you know it's really hard for me to kind of stay um on my task of my whatever my three hours a week of of coding and Skilling up okay maybe maybe for yourself write a little list of the things you learned however you want to do that reflection I think that's a useful exercise and then what's the next thing okay well we
said we were going to go build Instagram I I built some of the database for that we also said we needed authentication authentication sucks I hate working with o layers it's it's awful it's a um sorry terrible joke but um you might go say okay well what off libraries are out there what systems can I use right and then you go build a thing that works with that now this isn't necessarily how I would recommend going to build a full application right but my point here is if you want to go learn things I do recommend that you break them down into small pieces and then go tackle them pick a technology now as you're doing this what you might find uh this is I'm at the point now where if I want to go skill up on things personally um and I think it
was uh John Vander of latterly Io if you don't know who John is go to latterly doio he's got a lot of awesome information in our conversation together he said something that's my exact way of approaching uh building little side projects and his recommendation was like look you want to skill up on something pick a technology go build something but hold some of the other things consistent so for example I'm going to go build a a a mock Instagram app I'm going to use C because I know C I'm going to pick uh my SQL because I'm comfortable with it uh I'm going to pick I don't know some some off layer I don't like any of them I'm going to pick that but I don't know Blazer I'm going to build this thing in Blazer so you hold some variables constant and then you
pick the new thing and the reason this is really helpful is that you don't feel like you go to try it and you're like oh man like I'm totally stuck here I can't even get past step one I don't want to do this right you can lean into some of the other things get some momentum I know C I know how to set up this database because I've done it a million times for my SQL no problem but Blazer okay so cool I can write some CP code here but this UI stuff this is kind of funky like how does that work and you kind of lean on the other pieces that you're comfortable with and start developing so that was a very rambly answer but I hope that helps I'm just going to read the chat because there's some messages coming through uh ex
coding do an average of two hours a code A Day Live stream help me a lot for coding yeah learn from people on my stream learned from people on my Stream So X coding was doing the streaming is what it sounds like that's very cool um and if I may when I've been live streaming and coding there's people like I've worked in WPF for years and I've been trying to live stream some more in WPF because it's been a while and people on my stream are chiming in being like nope that's wrong here's the answer like I'm learning it's really helpful uh burgard says start simple rebuild some simple Unix tools and learn how hard it can be to implement them properly there you go right so that example is thinking through how you can go Implement some logic right and less about the different
technology necessarily depending on what the tool is right so that could be a good good uh good opportunity um but yeah X coding was the best learning curve so um Newman I hope that helps if you still have some thoughts or questions you know obviously chime in and and folks in the chat thanks for kind of sharing your thoughts too I needed that okay so user interface Frameworks is where I left off my list um I think when I kind of go through the list of what I was learning uh something I didn't mention was that and this is actually a it's a it's a gap for me to this day I've shared this before and it's kind of funny because it's it's like a it's almost like an embarrassing thing to admit but um I had to do a lot of what's a good
way to explain this like mapping cordinate systems right I'm pretty good at geometry especially for like 2D geometry if you put stuff on paper in front of me like I can understand things no problem um for some reason and I've never understood this geometry in code does not work in my brain it just stops working alt together and I never realized this like it's not something that I admitted to myself but for years if I ever had to go code something especially this would come up in games a lot I have to go map um between different coordinate systems to give you an example um if you have a window that you're drawing okay and you want to put some controls in there like the absolute location of where that control is in your overall screen that's a different coordinate system the location that it
is within your window right if you have a little popup or something so something that simple like I understand it but my brain cannot do it in code and when I say that what I mean is like I just struggle through it it's almost like I'm typing stuff and I run it and it's like it's completely inverted right left to right up and down it's just off and I'm like why like I can't understand why it doesn't click um so that's happened all throughout my career it's happened in Hobby projects I had a an internship where I had to World cord to screen cord yeah just it doesn't work in my brain I had an internship where I had to do annotations on PDFs so it was a it was a really cool um iPad application and they had this technology that was like end
to-end encryption until like literally it was rendered on the screen and I had to do annotations on it but guess what when you're drawing annotations and I had to be able to scale things up and down and translate them with like with your finger oh man um and this was an objective so do not recommend but it was really challenging for me um and even at that time I hadn't clued in I was just like this is hard it's always just felt like this is hard and it was only in the last couple of years I realized like it's this type of thing it's mapping coordinate systems in code I really struggle with so I make sure if I'm ever doing that now um and it's I should should add it's actually not just systems it could be um even if it's like say streams
of data if you wanted and this is why I'm a little bit nervous for spans what Instagram saying we suspect automated behavior on your account I'm literally streaming how does that make sense um okay my Live's still going okay so it's actually the same type of problem happens when I'm dealing with things like uh streams and if I wanted to do like sub streams and I think I was just about to say before Instagram was attacking me that uh spans are something that makes me a little bit nervous because I know that this is going to come up if I have to start talked about like allocation free stuff so I'm like if I want to start practicing doing that I know that spans are going to throw me off not because the concept of a span is too complicated but it's because I have
to map like these positions and it's it's going to mess me up so I know that when I do this type of thing I need to lean into just getting a piece of paper right from the start get the paper out draw it because if I'm just doing it up here no bueno from kick I'm about to join Amazon in a few months congratulations but I have no experience in developing stuff what should I use this time before joining that's fascinating I think um so I the I have a curious question which is if you if you haven't developed anything how how did you get into Amazon maybe you don't want to answer that I don't know um I this is a challenging thing to answer because I I can't tell you like what Amazon is doing or what your team's going to be doing
so it's not going to be tailored because I just don't know I don't know if you know but like maybe high level if it's like okay are you going to be going to develop uh backend services are you going to be developing front-end stuff mobile applications I just I don't know um if you have an idea the space that you're in and you're just like I want to start Skilling up and practicing like I might say do you know what language they're using like maybe pick that language to start with if you're like okay I know that language now and they're building uh backend Services I would say go literally build anything pick that language pick uh you know um some text stack for that language to go build backend services in this example and just start coding um like I was and you might
have joined the stream uh just recently but I was kind of going through this this talk about it almost like you don't need to have a finished product for learning just like literally start coding stuff trying to get some pieces worked together um yeah that's kind of a challenging one to answer but if you have any more context that you want to add into the chat I'm not trying to pressure you into sharing anything but if you have more context I might be able to try and give you a little bit more Direction so hopefully that helps to start um okay so yeah coordinate systems mess me up unfortunately burgard I'm from the SeaWorld supp pointer offsets uh and so on are my basic crafts yeah spany is really helpful especially for high performance parsing yeah like this is the thing I know the value
of it but I'm like I'm scared because it's going to hurt my brain as soon as I have to do offsets and things like that but it'll come um okay so to wrap up because I want to I'm going to spend the last 10 minutes or so either with more questions uh or just the sort of the summary of my article here because I have been going through this um and then we're going to jump over to Reddit or if anyone has articles you want me to like offer perspective on you can drop them in the chat I'll open them on another screen so I don't get like totally nuked here with like weird not safe for work stuff but um otherwise I'll jump over to Reddit after this there's a couple of things that I when I opened up experience devs I saw a
couple things that seemed interesting um the last part of my newsletter was talking about like you know the Fring that I just gave you as we walked through all of those it was kind of like hey look like it doesn't make sense for companies to ever roll their own thing right it's like you're not going to write your own XML pars or Json pars or why would you do that you're not going to go write networking from the ground up you're going to use some library for that right like why would you so what types of things do companies build their own of and it's a loaded question right there's because even the examples I gave you companies May build their own for for their own reason so I don't have every answer obviously but I wanted to share some examples that I've seen in
my own career so one of the first ones on my list was software licensing so tools that you use to be able to validate whether or not your customer has a license so I worked at a place we rolled our own we had it from the very beginning now why did we do that well it was a decision that was made at a startup I think before anyone was hired so we had Licensing in the product it was just there it just worked right so the person the developer who founded the company had Licensing in place and why did he make that decision I've never asked him but it was probably like hey look all the other things they're going to cost me money to go uh build like Licensing in or it might have been I don't know how to integrate these things I'm
a solo developer I think that I have a solution for this and it's going to work and it's going to be simple and then we had it now the interesting thing about that experience was that as the company was growing and we had this licensing thing that we had rolled our own version of it kind of took on a life of its own and it was always this thing where like we had licensing someone's got to go fix the licensing or add this functionality to the licensing and it got a few years in before it was like look we spend so much time like messing around with this licensing stuff like it might be time like it's no longer just this thing that is is getting us by and it's working it's like it's cumbersome it's problematic and not because the original solution was bad
not at all it was probably a great decision right I think there was a lot of great decisions a lot of maybe not so great decisions of that company but a lot of great ones because they went public they got bought back to private for $2 billion so whenever I reflect on the decisions that were made I'm like they couldn't have been that bad because it worked out pretty well so licensing that's one example um we ended up having to go uh Outsource and kind of buy some support for like a third party licensing framework so we eventually moved um another thing that I had spent some time on at a company was like a what you see is what you get editor so I think there's probably a lot of UI Frameworks that have like have this kind of stuff available now so um
you might have heard like wiy wig right like Wy s i wyg what you see is what you get and the idea is that you have a user interface and you can basically drop on other user interface controls and kind of lay things out right um you'll also see text editors they're like what you see is what you get so you can see the markup and stuff as you're going along so um I worked at a company where we had to go build our own version of this and like why like aren't there other things available well kind of um but for us it was like it was a very Niche customer and we needed to kind of restrict what they were doing building ATM M screens so the customers would be Banks they go customize their ATM screens um I don't know I can't
remember now I think TD Bank and Bank of America like I built I was an intern and I built the software maybe it's long been replaced but I built the software that Banks would use to go build their ATM screens which is kind of cool um so you know why did we not go pay for something I don't know we built our own in that case because it had to be tailored to our experience and we needed a lot of control on it uh Instagram comment what is Dev it's a it's a great question um I don't know how to answer your question are you asking what is development I'm not sure uh or did I label the I'm not sure if I labeled the live stream like build versus buy for I think I called it build versus buy for developers so sorry I'm
not trying to answer your question but we're talking about software development on LinkedIn what do you think is the best approach to working on a side project especially when there are limited resources and pressure from engagement uh I don't know what the last sorry I'm on LinkedIn can you clarify uh what you mean on the last part and pressure from engagement I don't know if I understand that so the question is like best approach for working on a side project limited resources so are you talking about a side project that work or are you talking about a side project on your own if you can clarify that I might be able to chime in more um bdev is the path to your device tree it's funny too because there's three chat streams there's one for Tik Tok one that's kind of combined for all the
other platforms and Instagram for some reason on restream does not go um to the common one so uh I think so dark devil on Instagram has rephrased what is devops um developer operations and the it's kind it encompasses a lot of things so it could be like if you think about the developer experience at a company you walk into a business you're going to start your job what's the first thing they get you to do get the tools installed okay well where do you get that stuff what tools are you using like this starts to become part of devops right where you're getting the code from how many repositories are there is just one like where these things located the people that manage that kind of stuff devops right you're going to go push up code you need the test to go run who's going
to take control of that devops who's doing the building devops who's doing um you know the deployment depending on what that looks like probably devops maybe it's packaging if it's a desktop app whatever right but devops are like it's usually like Tooling in systems internally that support developer operations so that's what devops is in in my words yeah sorry on LinkedIn if you want to offer more context sorry if I can't answer that as clearly uh as you'd like right at this moment but let me know um so I already mentioned the markup and annotation tools again there's probably lots of things that are available right now but we had to go build that uh custom uh they had requirements around how they wanted to serialize that stuff there were some other uh other reasons for it but we had to go build our own
um one that I wrote here is like there's actually a lot of different software applications now that are kind of like agent um agent based and what I mean by that is if you you're a network administrator or some other type of administrator for um a company you might want to have an agent running on machines to be able to go deploy updates or scan and like for virus scanning or just get metrics whatever it happens to be checking to make sure the mouse is moving you know that kind of stuff and the there's a bunch of software that is like for having agents on machines and when I worked at the digital forensics company we wrote our own agent so this was a a not quite a side project uh it was a side project that I worked on but it was only because
I was doing more work on the side not because I just felt like it so I wrote like a custom agent and for us it had to be very specific we couldn't take something off the shelf because we needed needed to very much control what that agent could do so even if in this example even if there was some company that was like look we have an agent that can um it can you know do updates on the computer we can go read process information we can do all this stuff it's still not enough unless I can write custom code inside that agent because our requirements for the digital forensics product were that we needed to be able to heavily control what and how we were doing those things on the computer so roll their own in that case um and then the final one
that I wrote here for something that companies often will go roll their own for was uh things like report creation now there is also a ton of options for going to create reports of different kinds right whether that's just a visualization in a browser or finding some way where you can go save that as a file there's so many options for that but still depending on what you have access to and how important those reports are you might need to customize so much that you're like we can't keep fighting with the tools we have and you know we've tried a bunch of different options so again at the digital forensics company we tried a bunch of different things um I think oh I don't know to this day they might have switched things out but we definitely went back and forth between starting our own
we're going to get something off the shelf and then it's like oh we need to customize it this way and we're like it just it just doesn't do that so back to Rolling our own so again you might make decisions as a business to say look the value is so great that we need to spend engineering resources on this we will continue to maintain it going forward even if there was something we could have paid for and been done with it so lots of different things to consider on Instagram so this is from Dev coder hi how to improve communication skills for developers talking with people um sounds kind of funny but uh yeah communication skills I think one of the most important things I can I can recommend uh for people is trying to think about your audience so think about who you're talking
to and uh communication needs to be tailored to your audience so what I mean by that is if you're a developer and you're like okay well I want to improve my communication skills with other developers okay great it means you can probably be technical with them right talk about code architecture things like that but there's a lot more context that needs to be given so is it a developer on your team okay yes it is is it a developer on your team working in an area that you're familiar with that they're familiar with and they're a similar level to you okay you can probably communicate close to how you're thinking because they understand a lot of the technical things but you also have to factor in things like how they like to be communicated with maybe their culture is different than yours right so you
have to be kind of open to these things and tailor communication to who you're talking to if you're working with uh say developers that aren't even in the area that you're working in they might be very technical but you're going to have to translate your domain knowledge into a way that they can understand right so if to give you an example you're not working in the same code base as me right so if I started telling you about the details of this class and how I structured some code you might say Nick like what do you want me to do with that and it's a good question because if I can't if I can't communicate clearly to you I don't know what I would expect so I think my number one piece of advice is truly trying to pay attention to your audience that you're
talking to I say the word audience but this can still be like a single person right so pay attention to who you're talking to think about what they might be expecting you could even ask them if you're truly trying to improve communication with a person you could you could say hey look I want to make sure that I'm communicating effectively this might sound awkward but like I don't think anyone would be offended if you were just like hey I want to be more effective at communicating like um how do you feel when I go into technical details or like you know you could just ask them different things about how you communicate so seems silly but you could just ask but that's my number one piece of advice is think about your audience tailor communication to them hello elow on Instagram as well so back
to LinkedIn this question so as an employee one is man mated to deliver on time but at the same time I need to work on personal projects ah yes okay so in this context I'm going to make the Assumption here that your personal projects are truly just outside of work how do you do that this is um something I said earlier on the stream I I don't know when you joined uh the stream of course Dev coder no worries um so if you were on the stream earlier one of the things I was talking about was this is something that you need to have an honest conversation with yourself about so for work for work there's expectations that you're delivering things and then the other statement here is but at the same time I need to work on personal projects okay so I don't know
what your work schedule is like if we make the Assumption it's a typical 9 to5 kind of working schedule okay what are you doing outside of work and if you go well I don't have time for the side projects or maybe you're saying I don't have time for side projects because I have to get my work done and it's taking more time so it it's all about priorities it's all about priorities we all have the same number of hours in a day and I'm not saying this to guilt you into it at all because everyone has different priorities truly right so I I got married last year and and not that it changed when I got buried so before we started dating like my wife and I started dating I didn't have have that priority in my life where I have someone else that I
need to go you know spend more time with do things with be trying to grow like our future together I didn't have that that wasn't a thing that took up time for me thank you ex coding I guess that that anniversary is coming up don't forget um so I didn't have that priority it meant and don't don't misinterpret I'm saying it meant that I had more free time for other things but my priorities have absolutely changed right I need to make sure that I'm investing into my relationship so uh wait wait for the kids yeah so I'm not saying like hey like you got to prioritize it and you should feel bad if you're not I'm just telling you that you need to think about how much time you have in the day right so if you're finding if you're finding that you don't have
time in the day is it because you're spending more time outside of work time doing work for example you have these deadlines you need to meet but you can't get that work done so you're working late to try and get it done if that's the case like there might be and there's a whole bunch of different ways this could look there might be something not great at work that needs to be optimized it might be something where you need to be more honest about timelines because maybe there's um either some something you need to skill up on at work because you're falling behind to meet those deliverables um that would be something I would talk to your manager about but outside of that if you have other things in your life that you can sort of reduce make more time for coding to skill up
that's what I would recommend so it's it is kind of a personal thing yeah so burgard time management has nothing to do with programming if people have no time for programming they also have no time for Sport fitness Etc yeah it's it's just it's the example I gave earlier right it's uh the same thing I don't have time to go to the gym okay is it true like or are you just prioritizing other things first it's not to make you feel bad about it but it's a time management thing and that in and of itself is a skill and it's not a programming skill it has nothing to do with your programming or which language you're using or anything like that it's just a skill that you need to work on so that's sorry if that's not like what you wanted to hear but I
think it's really about time management in the end okay uh I'm going to jump over to Reddit which is a scary place uh funny enough I don't like posting on Reddit I'll go read things from Reddit but I don't like posting there because people are just mean it's the last place on the internet for me to go post so if you're watching my stuff or you read my articles stuff I post I post on literally every platform every single one except Reddit kind of I post to my my own page on Reddit so I don't post I don't write like articles and like post them or I don't like commenting back on people stuff because I just feel like people are terrible on Reddit sorry if you're a redditor watching this but if you can just be nicer there's no no reason to be mean
um but I'm going to go over to Reddit uh I think I think that I fixed my camera so if I switch over I actually have to remember to start the virtual camera do that first Nick okay and then if I go over to this I'm still here right if you watch my other streams this wasn't working I got it I figured it out okay so this is my newsletter that I was reading through so again weekly. Dev leader.com advertisement before I go to Reddit if you want to learn C I have a bunch of courses on dome train well three for now but there's a getting started one so if you have never programmed before this is a great place to get started literally you don't need any programming experience then there's a deep dive one that follows so together there's a bundle on
these ones you can save 20% if you go check them out on dome train and then I have this refactoring one as well I'm currently working on my fourth course for Dome train I have a fifth one for right after that and uh the final thing I'll mention is that I have something else in the works on top of all of that so uh I have a bunch of exciting things coming up in terms of courses so if you can stand my voice you can put up with me and you like the way that I uh try to explain things then you can definitely check out what I got going on on doet tr.com I will drop this also into the chat there you go uh Dev coder on uh Instagram I don't don't do JavaScript courses so I apologize um You probably won't see
me code in JavaScript and I kind of poke fun at it it's not because I hate JavaScript or I think it's terrible sometimes you'll see me say things like that I don't actually mean it I understand that a large portion of the world uses it it's it's everywhere um it's just not a language that I like to use so um you probably won't see me coding it um now with that said if you're interested in more just like General software engineering Concepts I do have a lot of material on that and that can be applied across different programming languages and stuff so with that said we're going to Reddit no flutter courses so the programming specific courses are very much on C programming specific stuff on c um I one of the things I have coming up is not specific to programming languages but also
might not really feel applicable um X coding I hate it but I have to code in it sometimes oh I I lost the chat sorry guys there we go um last week I needed to build an extension for Firefox oo I don't even like Firefox um and okay so the other thing too sorry folks on Instagram because this is uh your feed is vertical you're not going to be getting the article uh as I start going through these I am going to read out portions of them so if you want to stick around because you're enjoying this uh sorry that you can't get the full thing so I do apologize for that um okay there was two that really stuck out to me here and I wanted to jump into them um this 10one uh post I haven't read either of these I've just kind
of read like um whatever is shown on the screen sorry I need water I'm dying here um I wanted to talk about this oneon-one I want to say one-onone one this oneon-one post there we go because I think that as an engineering manager I can offer perspective here um awesome thanks for dropping in X coding I appreciate it so one of the things that I I feel like I don't want to say I struggle with but I think a lot of my audien is uh a software developers which is great A lot of C developers and a lot of uh more Junior developers and I think they come to my channel and read my content and stuff because they want to see programming examples right like show me the code and I'm going look like I can show you code but I've been an engineering
manager for 12 years and I feel like there's some things that I could help you with from the perspective of an engineering manager so it's funny because I try to make content on it and it doesn't resonate with anyone and I'm like man like come on this is what I want to talk about so I want to talk about this one um like I said I only read what was in the preview there so uh I've been at my company for a while I obviously had lots of questions and processes to figure out of course this is very normal right collaborated collaborate closely with multiple teams good uh easy to address any inefficiencies her process is awesome as long as it doesn't interfere with other business priorities yep I think that makes sense and people are on board with it oh awesome Mohamed YF I
come from Instagram great yeah uh it's probably a little easier to see on YouTube um so work priorities are quite clear my growth path um is basically do more work that empowers other teams uh this by the way is an r/ experienced Dev so this person's probably not uh probably not Junior probably mid to senior level right and then they say and I don't have much to discuss there with my manager I would just be reiterating on what I'm already reporting on dailies or what we discuss in Cross team architectural meetings so when the time comes and my manager ask what do you want to talk about today I feel very anxious and try to come up with at least something otherwise I'm afraid that I look like I don't care or Overlook a lot of issues because surely people raise their concerns with managers
all the time right is there something that I should be discussing or is it a normal situation that you don't have a specific topic yeah so I see a lot of stuff right um I've been like I said I've been managing teams for 12 years now and the um the first eight years of that I was managing teams and I was a software engineer at the same time so uh that was a very unique experience because I got to see both sides of it right um those eight years and it was at a startup so I was working around the clock so it was like basically like a hundred years of work but it was a good experience because I got to see both sides of it and I think the first thing that I'm noticing with what this person's saying and I'm gonna kind
of go back up to it it says I would just be reiterating what I'm already reporting on for dailies or what we discuss in Cross team architectural meetings so it sounds like this person is viewing their one-on-one time with their manager as a status update report and this is unfortunate because I think this is probably very common and perpetuated even by managers themselves um I try to make it clear with people that like if you want to share status updates with me that's fine so I should back up I always tell people for 101's the floor is theirs all right if I need to communicate things to them I won't wait for a oneon-one if I need status updates on you know things where we're working with other teams or where you know we have deadlines we have to hit I will follow up with
people I will use the sync meetings right I won't use one-on ones for that kind of stuff because I don't need to there might be something in a one-onone where I'm like oh yeah like I remember this and I'll bring it up but it's not what I rely on for communicating things to people or getting specific feedback I will try to ask ad hoc when I need it because I want as much as possible I should clarify like I'm not perfect at that I'm not trying to sound like I'm perfect at that so if you're watching this and you report to me like you know that uh well hopefully you know I try to not do that 101s cuz I want that time to be for my team and usually what happens this is like it's a very common thing where people do what this
person's saying right they're going to just give a status update and like I said that's fine to me if people want to talk about that that's okay but something that I try to pay attention to is if that's the only thing we're talking about in one-on On's like consistently I will try to say hey like for the next one maybe we should maybe we should spend some time on and then I'll bring up something else and in particular one topic that should be brought up is career progression so this person's kind of saying like they feel like everything's going good um they said somewhere along here my growth path is basically do more work that empowers other teams okay so when I read this I think that makes sense especially if they are more like senior um I see people joining on Instagram sorry if
the feed looks a little cut off we're just going through some Reddit articles so they've been informed this is their growth path I think that's good makes sense at a high level do more work that empowers other teams but they're feeling like I only have status updates and like I'm just it's getting getting stale right so something that jumps out to me is like have you had a conversation about the work that you're doing tied back to that growth opportunity right are you you're doing work your manager knows what it is they're telling you do more work that empowers other teams so have you talked about that have you been explaining to them the impact that you're delivering there are they aligned with it do they like it doesn't sound like this person has clarified necessarily that the work they're doing is aligned to that
so that could be something now let's just assume here just because who knows right I I'm just guessing and we haven't read through any of the the replies yet let's just assume that that is has also happened with their manager it's so obvious that they know exactly what to do their manager's aligned with it so what are you going to use that one a one time for well I think that like the way that I would lean into this more is about finding further opportunities right you have been told what you need to grow but like what what other things could you be doing how could you be delivering more impact Beyond what's going on so I'm trying to think of some examples from Microsoft one thing that we really encourage are um basically like there's some like people engagement if I can call it
that and that might be things like mentoring programs other things like that like they're so good for helping they're like cultural initiatives right culturing people so they're so good for you helping other people right you have this opportunity where you can start to have a really interesting impact in different ways whether that's one-on-one mentoring someone I do early and career mentorship circles I didn't realize this other thing exists that I signed up for which is like um aspiring managers so I've signed up to do that which I think is going to be super exciting but like these are areas and you know for the manager one you probably need to be a manager but there's there's these other situ situations where you could be doing this as an engineer for just more growth right you could be trying to leverage this time for figuring out
how you can be more effective from your manager's perspective so I think defaulting to just status updates and being like I already give these what's the point it's kind of a kind of a dangerous spot to get into it's kind of complacent but I also don't blame this person because it's common I see it a lot and I also think that some managers like unfortunately don't don't know how to use one-on-one time effectively um you know you can't it's kind of ridiculous to say okay every one-on-one conversation we're going to be having career discussions if you're doing one-on ones every week and you're having career conversations every week it's probably it's probably going to feel very diluted like it's going to be hard to action things or get new insights week to week um so there might be periods where career conversations don't make sense
right so I just think that there's there's things outside of status updates that you could dive into um you could use the opportunity to um maybe provide some perspective that doesn't come up in meetings the same way like maybe you had side conversations you want to share feedback like positive feedback about people on the team that are up and coming right I worked with so and so they were really great on this project here's some feedback like there's so much other stuff you could be doing that's not just a status update so status updates are kind of a like I said a bit of a dangerous complacent thing to fall into um one on the topic of status updates if you want to talk about status updates something that you could do cuz again I don't tell people on my team no like if you
want to talk about that that's fine but something that you could do if that's a comfortable thing for you is like you could be asking like are these the right priorities right I've had situations where people are giving status updates actually even better example I was giving I've shared this before and I'll share it again but I was giving um an update to my own manager it's kind of meta right I was giving an update to my manager about a project that I'm responsible for and kind of letting him know the things cuz I new to the team at the time I'm still pretty new kind of letting him know like hey I'm getting into this this Project's making progress like talking about deliverables because there's um it's a it's a pretty big initiative at least for our org and I remember and I don't
want this to the come across wrong but he kind of cut me off when I was talking it was like basically said like well why is someone else doing that right so I'm giving kind status update I'm giving him the status update and he was able to redirect me me and he said like why is why is someone else doing that I said oh well we talked about it and I you know found the effective person to delegate it to and he just looked at me and was like no he's like I want you to do that and I say this the context here is like I with even in that conversation he didn't explicitly say the reason why but I know why from previous conversations he was realigning me he wants to make sure because we talked about my growth trajectory he wants me
to be more responsible for this thing not because the other person can't handle it or not because they wouldn't be a great fit for it but he wants me to demonstrate look I was able to go do this thing I was able to be more involved than just on the surface look right like having evidence for that and for me that was really good and like the takeaway here is like if you want to give status updates you could kind of get your man like you could challenge what you're doing and saying like does this make sense are these the right priorities is there something else that I could be doing that's higher impact especially as you become more senior um something I see that comes up a lot is that individuals be they have you you got a ton of stuff you're doing right
you got to juggle all these things but something that happens is that you you only have so much time and how do we make sure that you're working truly on the higher impact it items right because you might have built up all this knowledge and experience in this area that means when there's bugs or livite issues like you can jump in and fix them really fast and that's great but like if you can spend the time instead of doing those things getting the others brought up to speed on it and you spend more time as applicable as much as you can do this on the bigger impact things so to give you an example instead of someone who's a more senior ER being like you know in the past week I just fixed like 20 20 bugs and like that's good thank you for fixing
them but you know we talked about impact and like what about that architectural redesign for this other system we were going to build with these three other teams what what about that oh well I didn't have time because I was fixing the bugs and it's like okay well the bugs are important but like maybe if we would have talked about this we could have delegated some of that work got you more time for that high impact work still got someone else to fix the bugs that could have been a good learning opportunity for them so on and so forth so I think if you want to give status updates again this is going to be different from manager to manager the thing that I don't need is just tell me what you've done I think you can lean into a little bit more and say
like is it the right priority so I don't know what other people said on this I'm always nervous to scroll on Reddit it's an ad this is time for for small talk and getting to know your manager yep look how look how highly upvoted this is okay this is this is maybe a little bit much um the a for performative nonsense career growth okay so I think that there's value in this and I know some people are probably reading this like some of the comments like it's it's Reddit right I knew this was going to happen but time for small talk getting to know your manager someone earlier on Instagram said how do I improve communication skills one of the pieces of advice I gave was try to understand your audience right and you could just say okay well they're this role they know about
these things like that's how I'm going to communicate if you truly invest time into learning more about the people you're working with and I don't necessarily like go learn their whole personal life I don't mean that I just mean like just spend time getting to know them right like there is value in that so if you periodically need to have a one-on-one that's maybe a little bit lighter uh I know some people do like depending on your working style you could do a walking one-on-one if you're working in person that might be really casual that day and there's still value in that there's for me as a manager being able to learn about the people on my team and stuff on that kind of level and hear more about like different things that they're excited about like I I want to be able to know
the people I'm working with because it helps me communicate with them more effectively so this one's highly upvoted I think there's people that are kind of mocking it a little bit but like I think there's valum I'm a manager I one-on ones with all my reports some of them will be over 15 minutes some or sorry over in 15 minutes some will be an hour yep I see this type of thing all the time yep look when it comes I didn't write this when it comes to projects and day-to-day work I don't really want the status updates but I want to know how they feel about the status right are you enjoying this work are you bored or frustrated I hope this one has a million up votes I don't know what the rest of it says maybe spoke too soon but sure you might
be producing good results but is there a person who you really dis like or dislike working with and maybe there's something the manager can dig into to help right sounds wishy-washy but this is a good time to find out uh who sorry find out how you feel about things outside of we are on target yep as a manager I've learned that if you can encourage people in doing stuff they like doing you will get good results I wrote I'm pulling this up I'm going to LinkedIn we're going to LinkedIn now I'm gonna I'm gonna narrate a post I'm gonna narrate this post to you because this just really resonates um let me find it one sec it's it's just basically spot onto what this person's saying like I I agree with this so much I post too much okay one sec pulling it up here
okay oh I don't think it was even this man what one sec maybe I left it as a comment somewhere I thought it was in this post though um let me see I think it was in the original comment but I think this part right here is probably what I'm after as a manager as a manager I can't speak I'm too flustered a manager's job is to ensure their team can do their best work possible right you'll notice that when I say this this says nothing about like explicitly says nothing about a manager's job is to make sure everyone's performing and getting all of their things done uh at the highest possible rate and I think it's a bit of a misconception and I like I this is my like Phil philos uh it's my philosophy I told you I'm flustered is My Philosophy as
a manager that this holds true if you focus the other direction and you're focused just on output when that becomes your focus the output will drop I don't know at what rate maybe fast maybe slow but it's going to drop and the reason that it will drop is that you're not focused on the people people will lose engagement you will not prioritize things that keep them challenged uh interested learning they're not going to feel like they have growth opportunities they just feel like we are a cog in the machine that might get you short-term benefit maybe I I still don't really think so I think you need to focus on this part so if you read through the rest of what I wrote here I'm sorry I know the font is kind of small we can zoom in come on come on computer do the
zoom thing um so you need to align the team's work to the business goals sure but growth opportunities personal interests why the work is valuable career aspirations individual skill level in learning so balancing those things these are all critical things that you need to be able to do as a software engineering manager so oh enough of my Soap Box going back here as a manager I've learned that if you can encourage people in doing stuff they like doing you will get good results it's true it's just true I also hate taking a job away from someone who likes doing it but it's not always clear to me and what I might think is a burden might be the thing that they find the most satisfaction and doing so I even had conversations today in 101's with people about this type of thing where it's like
again you might be a more senior level engineer and you can you're like okay there's five bugs I can fix them super fast I know this area in the code this it just makes sense if I do it and like on the surface it might right for those are good reasons fix it fast you're familiar with it you can probably do it high quality great reasons but what's not a good reason is that might be taking away from some higher impact work you could be doing we could be trying to delegate that work to more Junior people that might want to skill up in that area um there was a scenario we talked about delegating work just as uh as individuals on the team right like um more senior people being able to kind of say hey like so and so on the team can
you go do this um I I said like depending on the situation like that can be totally fine I said even as a manager I like asking at the end of the day someone's going to do it and if I have to step in and be like so and so sorry you got to do this it's we got to get it done right but I like asking and I like asking because I have conversations in one-on On's trying to learn about what people like we talk about their growth opportunities and if I can ask hey look who wants to take on this work item it's about X Y or Z if someone on the team is like Nick and I talked about this this would be a good growth opportunity it's the it fits the boxes for this type of thing I would like to
see them be able to step in and say yep I can do that or if they just have an interest and they haven't yet talked to me about it they have an opportunity to jump in and do it so I love everything that this person is saying here so that's cool um training education progression is a good topic um even if it's if I just like thinking about something this person says this is interesting because I don't think I'd ever tell my manager that I like or dislike a person um and they they kind of corrected that right I don't uh it's probably is it the same person yeah it is they probably don't mean like hey like I hate I hate Jim Bob on the team right um but being able to express that you're feeling frustrated that there's friction there's nothing wrong with
that um expressing those kinds of things does not have to feel like I'm tattling on someone like we're all adults and hopefully the people that you're working with aren't just being outright terrible to you um but you know if you're working with people and it's being challenging like that that could be a great topic for your manager as a manager I would want to hear that what I like what I don't want to hear is kind of like what they're saying like hey like yeah it's really crappy working with Jim Bob he's the worst like okay why like what what is it about the interactions that aren't good and usually what I try to get people to lean into is like well you know have you have you talked with this person which is which is a fun conversation to have um for both of
us right it's a fun conversation for me to bring that up with the person and it's a fun conversation for them to go have with the other person and that could be an awesome learning opportunity most of the time I've talked one of the last live streams I talked about this most people will say well no no I haven't and I go great okay so like are you like hases ating like you kind of nervous is it awkward like maybe hasn't crossed your mind it's just kind of like a new feeling that's come up and usually people have you know something where you know maybe it's kind of feeling awkward to go do it which is fine it's not an easy thing but for the people that go have a conversation with the person causing some friction for them almost all of the time they
come back to me and they go oh I wish I did that sooner wish I did that sooner um you know we we're building up resentment or tension like over nothing um we see clearly now we got to talk about it actually they're they're pretty cool like you know I'm I'm okay to hear that stuff as a manager to hear like hey if there's some friction because I want to encourage you and kind of challenge you back to say hey like you know can we can we be adults here and you can try try it out and see if you can sort it out for yourself and if not if not if you need me to step in and try and help navigate this maybe I can have a conversation with that person in general maybe it's a theme I've been seeing like I can
try to help so I don't think there's anything wrong with sharing that this person says you sound like a great manager yeah that person is a great manager at least I sound like it so very cool um yeah and this person's also saying like it's incredibly normal for software developers right so I don't want to um I don't want to minimize that it's a very common thing I see so like don't beat yourself up if you're like oh man all I do is talk about status updates Nick was saying status updates are like the worst thing to do um it's just something like try to be cognizant of it and hopefully some of the things we talked about can can help shape your direction there okay enough of this one we're jumping over this one sounds like fun how do I best deal with technically
incorrect code riew comments without offending the person so I like that this person was aware enough to say that they don't want to offend someone that's cool I need more water I also I burnt the roof of my mouth at lunch today so I'm drinking a carbonated water and every sip I take I'm like I need that for my throat but the roof of my mouth is in shambles right now okay one of our developers often gives feedback that turns out to be factually wrong I am constantly trying to understand what the developer means sometimes for hours just sorry I shouldn't laugh at this just for myself or somebody else to realize that it's actually factually wrong actually factually like saying that a best practice has been violated when that is not the case at all but you of course open to feedback and so
you read the documentation to find out what best practice they mean it's a long sentence um because that person usually doesn't explain what exactly did wrong okay that's an interesting point here usually doesn't explain exactly we did wrong I want to ask them for for clarification but at this point I dread interacting further because it happens every time and often the person doesn't even answer when you ask for clarification so I did a talk about this a couple weeks back we talked about code reviews um did I write a newsletter on this as I try to pull it up because I'll link it in the chat um I think I did yes it was two weeks ago this is relevant boom so there's a link sorry if you're on Instagram or Tik Tok no link for you um it's a couple weeks back this one's
not not yet archived so at the end of this week that newsletter that I just linked will be archived just a heads up but in that one I talk about different things to focus on for poll requests and the live stream I did two weeks ago we kind of talk through this stuff so at this point you can tell from this person's interaction what they're experiencing is resentment if it wasn't obvious um they're feeling like look I know when I put up a code review like I'm G to pick on Jim Bob again like Jim Bob is he's gonna be on this again and every time Jim Bob leaves comments like man I hate working with Jim Bob like it just slows things down it's terrible can I find a way to not get Jim Bob on the review right I think when I was
doing the live stream about this some people were like yeah like I I totally know a Jim Bob I think we all do right you kind of a lot of us have been through this experience where you're like oh man you just dread that the one or two people that always kind of have this behavior on code reviews you're just like I hope I hope it's different this time and it ever is so what people generally start to do is they they avoid it right they it's a it's a crappy situation so people avoid it and I don't blame people for it you're like this sucks why am I going to put myself into this situation but the problem is that it doesn't make anything better you just keep avoiding it so this is like the advice that your best friend would tell you and
not just like our friend our friend would say yeah man I totally get it that sucks you should keep avoiding Jim Bob because he sounds awful but your best friend is going to challenge you your best friend is going to say something different because they want you to get better so this person's saying obviously I don't know the details you have to read and kind of make assumptions often this person doesn't even answer when you ask for clarification okay are you asking in a code review comment because code review comments are arguably one of the worst ways to communicate with people so did you ask in the comment did you ask in a chat message that you sent over could you send an email could you if you're using teams or slack or whatever could you say hey can we get on a call and
chat through this um do you have sync meetings like a stand up every day or once a week or whatever could it be something that you bring up and say hey like I still got my code review open I have feedback from Jim Bob hey Jim Bob I had a question about this I just wanted to see if we could sync up and and try to get some clarification on it because I heard what you said I just want to make sure I understand it properly there's a lot of things you can do so to say that a person doesn't even answer when you ask for clarification I'm not trying to minimize this person's experience but I I think what I would like to encourage is that they find other ways to communicate if that's not working there are probably other ways to communicate that
will work is sort of my recommendation here so I think you want to highle lean into not avoiding but finding ways to collaborate right we someone earlier on Instagram said how do you work on communication skills avoiding things does not help with communication skills you are literally not practicing the thing that you could be practicing and I'm not trying to say it's easy it's hard it's definitely hard it's awkward but the more you do it the less awkward it becomes it's like me talking to this camera right now on a stream right I've told people I don't like public speaking and then I started making YouTube videos consistently at the beginning of last year I started live streaming a couple months into this year you just got to do the things that you're uncomfortable with and then they become a little bit more comfortable and
you can stop avoiding people like this so this person let's dive into some of the other parts about this right so they're saying they're not answering we talked about some strategies there they're also saying um that the person where did they say it they said they don't usually explain exactly what you did wrong so this is feedback for everyone to think about when you're leaving code review comments like you don't just want to say to people like hey this is wrong hey we don't use this pattern hey no tests like you don't want to leave ambiguity there there's people that I've worked with now for a very long time and we can almost get away with that kind of stuff because we just understand each other very very well but you probably don't have this working relationship with a lot of people so I would
recommend not leaning into that you want to lean into overcommunication so for example let's say a best practice has been violated okay so what's the best practice you're talking about so hey hey not what's another name that's not Jim Bob um well use my name hey hey Nick hey Nick a best practice uh or not a best practice hey Nick it looks like um what's a good thing uh okay something that's relevant async over sync hey hey Nick it looks like async over sync is being violated here um this isn't a pattern that we we like to do in fact it's kind of dangerous period but we're not done that's the first sentence then you go like how are you going to help this person you want to overc communicate it's dangerous because here's what can happen and we talked about we you know we
came up with this pattern for not doing that and we can slowly move away from it here's when we talked about it and if you want to see examples of how you can do this and where we've started propagating this better pattern here's a link or two links to a couple examples now that person knows what you think is wrong with it so they Hey look it's a best practice being violated we kind of knew that from the example already but which best practice why it is a best practice that we want to have in place and the examples for how to go fix it and optionally communication from when that best practice came to be like you want to leave no room for people to be like dude what the heck are you talking about because the worst kind of thing is you go
okay like I'll just change it and you change it and then they comment in the same spot hey this is wrong still and you're like look man you might as well write the code you seem to know like no one wants to be in that situation so the advice for the other person is just overcommunication saying other people on the team just kind of see this this person is that way is anyone talking to this person about it like I don't I'm trying to read this again to to see I want to ask them for clarification but at this point I dread interacting so like they're they've given up right so I think that they are just missing out on this opportunity where they could be asking for more clarification and it mean getting uncomfortable and just picking a different communication pattern um when you
go to give feedback to someone like this you don't have to be mean about it right like even though you've kind of built up sorry there's something in my eye even though you might have built up resentment with this person and you're like dude like Jim Bob sucks so much like you're Nick is saying I have to get on a call with Jim Bob to talk about this no way like you I get it you dread it but like it's not easy to do but I think it will feel extremely rewarding and you don't have to tell Jim Bob hey Jim Bob I think you're a total can I say ass on YouTube I'm not sure I think you're an ass and you're you're mean to me and I don't like you on my code reviews you don't have to do that right you can
you can say hey look like thanks for all the feedback you're giving uh I want to make sure that I can action this accordingly but I've been finding that I'm not exactly sure like some of the things that you're that you're meaning so it kind of feels like I'm guessing it how you might want to see things done so I was wondering if um if we can find some different ways so that I can act on your feedback more accordingly right or if I can understand before you even act on if I can understand a little bit better where some of these things come from so do you think maybe we could talk about like can you link me to some of these best practices like you can explore the conversation however you want but you can basically try to help the person help you
and not be like hey Jim Bob I think you suck do better so you can make that conversation I get it right it's going to feel a little bit awkward but you can make that conversation something very positive for both of you that's what I would recommend what do the redditors have to say aside from We Hate Everything comment on each such comment please could you clarify if they don't respond ignore the comments Life's too short to calll anyone he doesn't go out of the way to communicate clearly um yeah I mean like I just think that this is a an avoidance thing life is too short to call to L who doesn't go out of their way to communicate clearly sure it just doesn't fix anything so I don't like this advice personally I see it's very highly upvoted because I think a lot
of people are avoiding this type of thing since this is one person that's happening a lot I would ask do you have any do you have to pay attention to their code reviews I'm I'm someone who tends to leave a lot of feedback on reviews but I try to be super clear this I love this sorry I'm trying to highlight just this part I do the same thing on code reviews when I'm reviewing a lot of the time especially now as an engineering manager when I'm not working in the code base if someone wants me to review something I leave a lot of comments or I can leave a lot of comments but a lot of the time it's just like hey did you think about this hey like nitpick or whatever and a lot of the time the service that I'm offering on code
reviews is just did you think about this or what about X it's not to say hey go fix all of this so like this person is saying I'm just trying to be very clear about the feedback and that way it's not you know not blocked on it but this I don't block over nice to haves ever this person's kind of saying the same thing like in terms of just like kind of moving on but I I have a nitpicker on my team and it's annoying he's sometimes wrong and sometimes right but I've started ignoring him when it's something that has no actual bearing yeah like I just I don't know I just wouldn't lean too hard into this I think that there is an opportunity for improving communication and I say that as someone who has like right now like I said I don't write
code on teams but man I see this kind of thing a lot and I think a lot of uh a lot of friction can be reduced to people just talk a little bit more but this person here saying like you know just ask for clarification answer a drop it any comment not being precise enough requires more claric more information I I agree don't put too much into the interpretation of chaotic communication it's not clear ask for more that's all there is to it I like that if the it's the reviewer's job to be clear in their comments stating what why and where also heavily agree with that this person wouldn't take a bug with it doesn't work figure it out yeah so I have to take the time and energy to explain or just drop it it interesting so anyway I think that's kind of
a cool one but my my advice here is not to avoid communication it's to it's to lean into it it will feel awkward it will feel it will feel uncomfortable the first couple times you do it but this is like any any skill we don't practice them they're going to feel awkward and kind of weird and the more you do it the more you're like this isn't so bad and look we get great outcomes when we do it so I think that's what I would recommend here okay folks those are two articles I don't think I have time for a third one here we got about five minutes left so I might double check on the chat if there's anyone with questions I don't see any on Instagram but if there's any other questions before I sign off I'm happy to answer and otherwise I'm
going to bed because I got to live stream in the morning you're going to be writing code and I got to wake up for that but I'll leave a couple more seconds here because I know the chat's delayed from my voice so I just want to make sure if people are scrambling to try and write something last uh last second to kind of get into here we can so leave this awkward silence for you no I'll keep talking so it's not super awkward but um what else is going on um I have a live stream when's this coming up I'm really excited about this one one sec I just got to find the event it's coming up on I should just check my calendar come on now it is on why can't I see it LinkedIn is failing me here ah the 19th I'm going
to put this in the chat too so this one is super cool I have a guest from Microsoft coming to join oh my goodness this is on LinkedIn so this is also if you're on YouTube if you just look at my YouTube channel um there's a live event there but this is the I don't trust this link from uh from LinkedIn anyway there is a link to the event on LinkedIn and I should try to just grab the YouTube One while I'm here but this is going to be a live coding event for Blazer which is super cool uh like I said very excited to have a guest coming on to do that and he actually is from Microsoft Works on the Blazer side of things and he'll be doing the coding I'm going to be doing the quest question asking so I think that's
going to be super exciting so here's the other link from YouTube if you want to check that out on YouTube but that is going to be on July 19th that's going to be in the middle of the day in Pacific time so it will be recorded if you can't make it and you want to check it out after that's totally cool too but he will be building a Blazer application I believe from scratch and uh I'm just going to be asking him questions um he's he works on the Blazer team and like he actually reached out to me uh and was trying to collect some feedback from ey Blazer usage so the Blazer team is very open to feedback I realize that a lot of people are probably like man like Blazer's got to do better like but like this is an example where we
have a a product manager who's going to be doing the coding and they want feedback they want to make a good product for people so if you can attend that I think it's going to be super exciting um if not it's recorded so check it out but folks I don't see any questions coming in chat across the different platforms so I will sign off here thank you so much if you are either up early in Pacific time I probably don't expect you to get on my stream at 7 in the morning but um yeah for other folks 7 a.m. PST I will be streaming it's going to be in WPF I'm probably going to try to embarrass or try not to EMB embarrass myself coding in WPF and we'll see what we can do so thanks so much I will see you next time take
care
Frequently Asked Questions
What is the main focus of the live stream?
The main focus of the live stream is discussing the topic of 'build versus buy' for software engineers, particularly from the perspective of working at a company and also when building side projects.
How should developers approach the decision of building their own solutions versus purchasing existing ones?
When deciding whether to build or buy, I recommend considering your company's resources, the core needs of your business, and the potential for tech debt. It's important to evaluate the constraints you're working within and to think about what will keep your company alive.
What advice do you have for new software engineers regarding learning and building projects?
These FAQs were generated by AI from the video transcript.For new software engineers, I suggest that you should not shy away from building things from scratch, even if there are existing solutions. This hands-on experience can be incredibly valuable for learning, even if it might not be the most efficient use of time for a business.
