Fixing Bugs In Production - Principal Software Engineering Manager AMA
November 5, 2024
• 198 views
Why do so many of us keep saying build software to become a better developer?
You're going to learn a LOT more about REAL types of situations.
Using a tutorial can be helpful, but when you're only used to following the happy path...
You'll be in for a ride!
In this livestream, I'll discuss a recent experience in BrandGhost where a simple fix became a LOT more complicated because of real constraints.
As with all livestreams, I'm looking forward to answering YOUR questions! So join me live and ask in the chat, or you can comment now and I can try to get it answered while I stream.
View Transcript
all right just getting things kicked off here I got to start the chat on a couple different places go live on Instagram we'll see what's up I'm going to refresh my chat because it says they're not all connected yet but let's give her a go still says five out of six oh interesting says LinkedIn is like uh oh no they're all connected now it's just restream being kind of silly hi I guess everything's working now that's great um welcome uh I have Vinnie in the background who's decided to join me today you can see oh he's on the other side there Vinnie um you probably can't see veto he's the other cat we have and he's also hanging out he's laying down pretty funny hey infected FPS good to see you it's been a little while uh for folks that are joining uh if you
want to do me a favor say hi in the chat lets me know what's actually working across the platforms because who knows anymore sometimes uh I go through these and I don't see the messages which is pretty crappy um but yeah I as I go through these live streams if this is your first time here definitely like feel free to ask questions the entire time uh the principal software engineering manager at Microsoft I've been doing the software engineering kind of thing for a while now managing engineering team so if I can help answer questions I would rather spend time doing that than anything else that I plan to blab about um and yeah hopefully the cats are chill the whole time when I have done this is the first time they've joined this stream but when I stream in the morning and I code uh
veto in particular likes to get pretty crazy so um he becomes he's he's noisy that's the problem he like he meows and it's like you can't make him stop so uh infected FPS yeah I actually I didn't stream the last couple weeks because I was in Hawaii which is awesome thanks for asking uh yeah Hawaii was awesome but then when I came back I also like we traveled back on the Monday so uh was kind of crappy for missing that uh awesome LinkedIn chat is working Conrad good to see you it says for oh my chat's not up in the the thing one sec you I don't know if you can see but it's saying LinkedIn user for a couple people or the same person so I'm going to double check what's going on there oh a did yeah good to see you awesome um
yeah I don't know why it's restream is not working on the chat so thanks for letting me know um so the topic of conversation uh for today is just like I do a lot of the time I go over the newsletter article I put out and uh like I said if you'd rather just ask questions and stuff uh by all means I would I would rather spend time on that but the last newsletter article I put out I'll put a link to it this is not pressure for you to subscribe to it I realize newsletters aren't for everyone um but if you're ever curious what I'm going to be streaming about at this session it's unless something else comes up it's likely going to be the newsletter that I put out on the Saturday before so um this one is going to be about a
example scenario that caused me some grief and I want to relate that back to being more general advice for um for software Engineers that are practicing and trying to get better at their craft so that's what I'm going to be talking about uh I don't know if I have any other blabbing to do before I get into it I can't stop looking at this cat though because he's so cute one okay one more thing about the cats cuz I'm very proud about this we have three dogs two of them are are my dogs one of them is my wife's dog from before we we met and my two dogs they don't even care about the cats it's like they don't acknowledge they exist but the big dog my wife's dog she's an Alaskan malam she's like 130 something pounds or something she's she's a big
girl and she has been obsessed with the cats and this was our first weekend since we've had the cats and it's been months the first weekend where the big dog was not just trying to absolutely Nom the cats so we actually had our our our baby gate open that we used for keeping the cats upstairs oh veto is trying to join me um and Arya who's the big dog was not um eating them like they were actually in harmony which is nice so very proud about that one sec here's veto he's a good boy okay see you later veto yeah now he's going to start yelling at me um okay so to kick things off uh you oh Conrad you have a dog her name's her name's Hannah what kind of dog do you have Conrad we love animals in this household yeah we got
three dogs and two cats now so uh we're we're starting our Zoo slowly um we did look into to getting seals but we discovered that um you cannot legally get a seal unless you have a zoo so our dreams were crushed uh but I have said this either in a live recording or something else before but uh if you see me just disappear and it's because I've won the lottery and I don't have to work or do anything ever again just know that I will be opening up a zoo and I will have seals because we love seals but anyway enough about that we love animals um let's get into the topic so um for folks that don't know uh so I work at Microsoft and on the side like I love like I'm I'm an engineering manager but I love building things and I
don't think I'll ever stop because I I just really enjoy it and when I started off being an engineering manager one of the things for me that was challenging was like I was working at a startup and I was coding like 50% of my time was coding 50% was you know managing engineering teams and like the reality is you can't you can't do that effectively and as the team scale it really does not work it's not really fair to people um for for folks that say like oh like engineering manager should be coding a lot of the time that works if you have a small team and it works if it's kind of like a new kind of project that you're kicking off but the reality is you should be building up that team of of more talented skills Engineers so that they can be
doing that work and your goal as an engineering manager is to help them grow in their career and help them to do their best work possible so if you find that you're still coding and you have a decent sized team that's mature on a mature project like if you're still coding you're probably honestly not spending enough time with your team or you're just working extra hours and what it was for me in the beginning was not spending enough time with my team because I didn't understand how much peopling was involved and then beyond that I mean even at the beginning like I I worked for eight years at that startup and basically worked um sorry the cats attacking the Whiteboard basically worked like I don't know uh at least 8 hours a day to like 16 hours a day so almost always it was like
12 to 16 hour days but I loved it but um now that I work at Microsoft like I don't code at Microsoft uh at all but um work with the engineers oh man one sec he's going to knock this whiteboard down it's going to be bad news and that's veto or sorry this is Vinnie Vinnie's the fat one but that whiteboard is going to fall on him saved his life okay so the tricky part is that like because I'm not coding at work uh I still love to code right so like I love building things outside of work a couple years ago I was trying to build a nutrition platform it was called meal coach uh it was not a successful sort of uh business model but uh learned a lot doing it um you know I really enjoyed it but it's not something that
was working but when I started doing know the cats have learned to whiteboard yeah someone uh was saying that I should have my cats and I should make YouTube videos with cats and I said I'm going to have them doing programming tutorials so um that's right the cats are being trained to take your jobs but um I like building stuff so uh when I started doing content creation uh one of the things that I realize is if I want to be sustainable doing it I I need I need better tools um and I need to systemize what I'm doing because a lot of people might not realize this like I have only been doing content creation kind of in the capacity that I am doing it for just under two years now but I started Dev leader like whatever in like 2013 and it was
just my blog I was trying to you know learn in public about becoming a new engineering manager but I knew if I wanted to take it seriously getting back into it I needed systems so I was basically Building Systems around trying to make sure that I could put my content out across platforms and this is how brand Ghost came to be so brand ghost is the SAS that I am currently working on outside of work it is something that supports my content creation so depending on how you got here um if you see what I'm posting and stuff online everything I post that's not a comment everything I post is through brand ghost like 99 plus percent is and so brand ghost is my crossplatform publishing uh tool and it lets me create content like focus on creating content and then it goes out on
a schedule automatically my wife is home so the cats are now I don't know if you can hear it through the mic or if the no the mic's not picking it up I was trying to watch the the limiter but anyway they're attacking the door trying to get out so I build brand ghost because it helps support my content creation this guy is making so much noise I can't even think and the idea well I should explain the platform brand ghost is built on asp.net core we have a front end that's in nextjs um but this is all the preamble to explain what's coming up here so brand ghost has a core component to it that is auler so if you understood what I was saying about like content going out on a Cadence it's because it has thiser that's running to make sure that
it can post content at the right time yeah that cat I'm I'm watching the limiter it's not picking it up which is good I set it up properly but my wife is I I can hear her coming up the stairs maybe she'll take the cats so the schedule is this core piece of technology that we have and like I'm trying to trying to frame this because if we have something like this in production we have to be be very careful if we're touching it because if it's not working properly we have all sorts of problems and when it was just me and just my content going out whatever I can deal with it right it sucks if I miss a day or post at the wrong times or something like I'll deal with it but we have users and like now we have this responsibility
to the users that this stuff's got to work I'm streaming but if you want to take the cats because they're thank you appreciate it yeah they sound so sad um my wife saved me um so it's a core piece and like I said because we have customers we need to make sure that they're doing you know it's doing the right thing they're getting their post out because that's why they're using the platform okay awesome so where am I going with this well we had this fun thing called Daylight Savings Time recently and daylight savings time is a total pain in the ass now I didn't even realize this but I think folks in the UK have um daylight savings time changes if I understood correctly it's like the last Sunday of of October or something like that it's not like a yeah infected FPS fun
Fun's a good word I like using fun um the the uh the issue that happened was we had a user in the UK say hey my post didn't go out and I'm going like in my head I'm like no like I know the schedule is running like that seems suspicious uh but then I keep reading the the message in the support chat and it's like oh no no it it posted it posted an hour late and they said it doesn't seem that it's respecting Daylight Savings Time change and I went that doesn't make any sense like and here's here's why because it's a little bit of a weird problem I'm thinking okay that doesn't make sense to me and the reason that it doesn't make sense is we don't have anything stored in local time um this has been a philosophy that's worked very well
up until this um but basically when you're dealing with dates and times if you normalize everything to being the exact same so using UTC uh what is that s s for universal time something I don't know basically it's there's a zero offset for your times okay so if you're in a different time zone like uh if you're in Pacific time you're going to have some offset what are we now only six hours off from it instead of seven point is if you were to have all of these times all over the place like how would you know truly what time it is you need to normalize it to something so normalizing things to UTC is very helpful because when you're building a system you can think about things in the same time zone right you don't have to do the calculations along the way and
try to transform things instead what you do is because most users don't want to read time in UTC you at the very last stage transform it for them so you would say oh here's Nick's data and you could do all your process say in UTC you could have it going between your front and your back end in UTC and right before you want to put it on the screen to the user you go wait which time zone is this user in oh they're in Pacific okay great transform this into Pacific because that's how they want to see it or maybe I took my computer and I went to the east coast coordinated universal time seems like the acronym is not coordinated though yeah uh that weird I let me hold on let me because that sounds right UTC acronym yeah the official abbreviation is for
coordinated universal time is UTC uh that is odd who who did that we we couldn't just have a cut acronym it's now UTC that man that hurts my brain okay so like and you probably have noticed this like if you have a device like you have your phone or you're you looking at your email and stuff if you go between different time zones if you traveled with your device it will change what you're looking at like the time will reflect based on where you're at and this works because when we're talking about events that have happened right so for example I started this live stream at a particular time if you wanted to know what time it was at where you are you would take the UTC representation of that and apply your time zone offset and then get the time and that way like
something like scheduling a stream to go live the server would store this in UTC and depending on any client that wants across the world right across these different time zones depending on when they want to see that presented to as an option to view they can see it in their preferred time zone it's not I'm I I know I'm like maybe I'm over explaining this for some people but like that's the general idea right you keep things normalized and then you translate them right before hits the user screen now when we've been talking about brand ghost features one of the things that we've done a comparison with is things like Outlook or like an email client and we do this because um there are some there are some similarities right like when we talk about brand ghost for having recurring content it's kind of like
scheduling a recurring meeting right and we we like comparing it to even the user experience of doing this which is why we're actually transforming a lot of our ux to to have this familiar feel of like working with an email client like you go to a calendar and then you would interact with the calendar to do something and it's just a familiar thing right like why are we Reinventing the wheel in terms of usability for things that are like well established um if you if you oh uh Conor I'm in Poland it's 4 4:18 a.m. what are you doing man you gota you got to be sleeping don't you that's I don't is that early is that late that's like the most I don't know like if it were three might say hey you you stayed up really late but 4:18 a.m. what are you
st is that are you staying up late or did you wake up super early it's there's no in between on that one um well thank you for being here at 4:18 in the morning so when we think about like a calendar perspective right U the thing I was trying to say is like the the you the user experience for that's been solved um and when we want to create what we call topic streams that are recurring a calendar is a very good fit for that from a usability perspective but there is a difference and I want to talk through the calendar uh perspective when it comes to meetings because I think this will explain why we built things a certain way so and maybe some people haven't done this and I'm sure though lots have or have observed it but if you are working somewhere
or even if you're not working you've just done this with a calendar you can schedule a meeting or an event in your calendar and when you want to make it recurring uh so say you set it for 3:00 whatever your time zone is and you say I want it to repeat once a week at 3:00 as an example what happens is that when the time zone changes is what sorry I shouldn't say time zone what happens when daylight savings time changes your meeting's off by an hour so when it's off by an hour and people at like at corporations that work across geography like cross time zones have experienced this like when things are off by an hour like if your time how do I explain this properly it's really complicated thing to explain but basically if everyone's not shifting at the same time your
meetings get offset and they're recurring at the same time technically now here's where it gets really messy with brand go is that when we schedule content we also anchored it I'm using the the the term anchoring because I don't know a better word for it but we are anchoring or have been anchoring when you want to post content from a UTC offset okay so whatever like for me if I wanted to post something at 3:00 uh on Mondays I would calculate from my time zone what the UTC offset is and say okay every Monday from this UTC offset post this content the tricky part and why this doesn't work is that the UTC offset is fixed and that means that me Nick if I had stuff last week posting at 300 p.m. that has some UTC offset today even though daylight savings time has changed
it still has the same UTC offset in my scheduler which means everything is now posting 1 hour off uhoh okay so this is the context this is the problem that we're trying to deal with what's really interesting about this problem is that it's very easy to fix so I was going somewhere with this I promise it's a very easy problem to fix because I've already explained what the problem is and technically what the answer needs to be I don't want it to be anchored to UTC it doesn't make sense to be anchored to UTC because I actually want it to adjust with me right I I'm in Pacific time I want it to be three p.m Pacific now depending on what time of year it is the offset from uh from UTC will change because of daylight savings time if you're living in a region
that doesn't have daylight savings time you're very fortunate but that's not what we have here so that means for me my content will shift by an hour over daylight savings time so to fix this like I said it is very easy I need a setting that says I Nick want content to post in Pacific time and then when we go to save your schedule for when you want to post all that we need to know is what time zone were you interested in posting at and we will make the offset from that time that's it that's it so instead of anchoring it to UTC we number one we anchor it to the time zone that you want and number two I just have to change the query from the database in their scheduler to use that time zone I convert it in the query and
everything works so once I realize what was happening and I so I have a a YouTube channel that's called code commute if uh I should just mention it now because if you enjoy like how I'm talking through things but you want more stream of Consciousness you don't care if it's live it's called code commute I'll just put a quick link to it uh in case you're curious um but code commute is uh like a vlog that I do when I'm driving two and from work and I talked about this in code commute but I said like when I realized what was happening the fix for this was like I think within two hours I had it fixed I had it tested with functional tests they could prove at different times of the year in different time zones that everything would post at the right time
awesome right like crappy problem easy solution feels good but it's not that easy because it's never that easy and that's going to be sort of the meta point the takeaway that I want you to have from this this live stream and so I'm going to Pivot a little bit I'll talk about the solution after it's not really that important um unless you're really curious about brand ghost but the the idea here is that I have a fix that's very trivial to do in code and it can be tested I have a lot of confidence like specifically in this code that I touched and Conrad I want more yes okay well I will I will go back to it I promise um so it's an easy fix it's testable these are all awesome things but the meta Point here that I want to to get across
is like when we're dealing with real systems like real software there are other constraints involved so if we back up from this example if you if you're new to software development say you I don't know uh there's a bunch of people watching this stream right now and it's recorded So more more people will watch it if you are someone who is watching this because you're like hey I want to get into software engineering I'm newer to it um you've probably heard this a ton where people will say like don't just you know don't just read about things don't just watch videos I mean you're watching this stream right now though um it's not that these things are wrong it's just that people will say you should be building things like try to build software so that you can get better at it and there's a
reason for that and that reason is that it's going to teach you things that are real so when we're dealing with things like lead code and solving problems this way and these are like sort of contrived scenarios um yes being able to code something is better than for practice at least better than just like just trying to read about it or just watching a video it's because those things like they will show you a concept they'll show you the happy path and if you're not actually coding it you don't get the hands-on experience but not only that you don't get the failures to learn from lead code is sort of I don't even want to say a step forward I don't like lead code at all but lead code is is a different step you get to try things so you get to try and
fail that part's really good for learning so I I think that's really good it's just that a lot of the scenarios aren't really real and I know we do this in interviews and I hate it um if it were up to me we would not do lead code style questions and software engineering interviews but it's unfortunately not up to me it's an industry thing where it really sucks but so practice your elad code for your interviews but my point here is like one example here is you don't get the real scenarios and the other example Le is like you're not actually practicing stuff so both of these are things that can help but if you're trying to build real software so not just a leite code thing you're like hey I'm going to I'm just making this up I'm going to go build an asp.net
core application that's going to be a Pokemon database and then I'm going to build a front end uh in whatever like I going to pick a mobile technology uh for Android and I want to build an app that can I can scroll through my my Pokemon database awesome that's going to teach you a bunch of stuff and it's not just like oh you pick some mobile tech stack it's not just hey you're going to learn asp.net core that's cool but it's going to teach you about how these things work together and if you're trying to build more on top of these things it's going to teach you how your code base evolves the first time you do this kind of thing you might work through it and it's cool and then like I don't know after a couple months you look back at it and
you're like holy crap like how did I write code like that I copy and pasted everything it's you know 20,000 lines long and like for what and you're looking at it going oh I could do this way better now you start refactoring things and like these types of experiences you literally don't get exposed to if you're just reading about stuff watching videos and even if you're just doing leite code like you don't get scenarios like this where it's a real thing the same thing could be said if you were building something and you were like hey I want to go add this feature onto it okay cool did you plan for that feature in the beginning like yeah probably not that's okay how do you go make it work right like what does it look like to go add to your Pokemon database now you're
like okay this is cool but like what if I could have a Tracker now so I have this big database of Pokemon but like I want to because I'm trying to catch them all I want to be able to record for me how that how that's doable and then later on you're like my buddy also wants a Pokemon tracker so I should give him this app now I need accounts but like I didn't I didn't design accounts into this what do you do do you just like give up and start a new one and you could that might be a good option or do you say maybe I can refactor this code to try and make it support this type of thing then I can add that feature in so building real things will give you these opportunities that you can go practice scenarios that
will come up literally in real life in your career and the unfortunate news is that no stuff that happens in your career is not going to be like I wish it were but it's not going to be as clearcut happy path follow the tutorial and it's just all going to work there's going to be stuff that doesn't go right it's not going to be smooth all the time but that's okay because you're going to be a software developer and you're going to be very good at problem solving and hopefully you enjoy this kind of thing so like it's okay but you have to expect that this is going to happen and if you're not taking the time to practice this kind of thing you might feel kind of surprised that it's not all like just happy path the entire time it might feel frustrating so
you might as well spend the time practicing it okay so going back to Brand ghost Nick has this problem now well he has a solution Nick has a solution that comes with a problem and the problem is that I can't just deploy my fix infected FPS says that's been my biggest challenge with mentoring or Junior devs is breaking the bo of the oh is there a tutorial for this mentality yeah um but what's good about that at least is at least in that example and I I know where you're going with this so I'm not I'm not trying to say you're wrong or anything what's good about that example is like is there a tutorial for this means at least they hit a problem because sometimes people will say I want to get good at programming and that's I mean that's commendable right like that's
awesome it's good that you're taking steps to do this but they get stuck in tutorial hell where they're just watching videos reading articles and then they're like okay but like you know I feel like I could be making became more progress and you're like cool like what have you built and they're like haven't I haven't I haven't made anything and it's hard because watching a tutorial or reading an article watching a live stream about some bald guy I can say that now because I'm bald some bald guy blabbing about software engineering is like like these are things that can help but they're not going to be the best way to learn and the unfortunately the best way you learn is by messing up a whole bunch you just keep messing up and you will keep learning unless you decide to just keep messing up and
not learning from anything you're doing in which case you're doing it wrong but when you're making mistakes and having these failures these are opportunities where you need to struggle through it a little bit and by struggling through it you go oh like now I really get it so to infected FPS is point if if all the junior people that he's working with and by the way I'm assuming your gender I don't see I can't see your picture so if you're not a he I apologize um if infected FPS is working with Juniors and they're always like oh I just need the tutorial to unblock me um yeah at some point that's like that's not going to be super helpful they got to struggle through it a little bit and then yeah like if you need a tutorial to get you unblocked like that's cool but
you got to feel that pain a little bit before you start going okay that's really going to sink in with me so I got this problem now where I can't deploy my fix does anyone know why I can't deploy my fix because if you know please tell me and then I can fix it no but seriously um the the requirement for my fix is that I need to have things anchored to the time zone that I have selected now we have me that's using the platform and we also have a bunch of users that are using the platform guess what we didn't plan to do because we didn't need to do it I don't have anyone's time zones that they want to be posting in on the server side I could go push my code up but it's not going to help at all because
I don't know what time zone they're in so yes there are things we can do but we need to go build more features in order to be able to allow people to go configure their time zone so the point here is that it's not that this is the end of the road for brand ghost or everyone's screwed it's totally fine everything still posting for people that got affected by time zone issues I made sure that I communicated to all of our users hey here's what's up the easy solution is if your stuff is off by 1 hour just open everything pick the right time and save it again you just bought yourself another six months or so good news so it's not the end of the world but um it means that we need to as the brand ghost devs we need to make sure
that we're building in the feature that allows people to do this from there we need to also make sure that if there's an automatic migration path so if I can automatically do this for people great like I don't want to have them set a time zone and then I'm like uh by the way like you still got to go or reset all of your schedules like that sucks if that's all we can do that's all we can do um but that's still something to be sorted out I have some ideas around it but the reason I'm explaining all of this to you I mean the details like I said they don't matter but the reason that I'm explaining this is like it's actually just not that simple and it's not that simple because it's a real life system with real users and real constraints that
you otherwise just wouldn't give a crap about if you were building this and it was just something that you toss together then like you might say yeah like it's just my stuff like whatever I can miss posts for an hour for 15 minutes while I update my time zones and my my schedule like yeah what's the big deal but it is a big deal because it's live and people depend on it and the problem gets worse and worse the more users we have so like now you have this other time constraint of like how long are you going to let this wait for like if we were like ah have a fixed for but we're not rushing and we go another six months and we have a million users that would be super cool by the way so if you want to post content on
social media and uh you're willing to accept that currently if you sign up your stuff is still going to work in the right time zone I promise but if we if we have more users the problem becomes bigger because I have more data that I have to migrate it uh on Tik Tok it depends when the PBI is planned I don't know what a PBI is sorry um if you tell me what a PBI is I might know and I apologize that the uh the Tik Tok chat doesn't go to the the common chat crossplatform but oh product backlog I've never heard it called that interesting well the product backlog item is going in right now uh no but seriously though we're actively working on this to make sure that we have a migration path so I do like I said I have the coded
fix for uh the entire to work we need to put in a feature to the UI to allow time zone settings that's the minimum because uh if we had that we could say to users hey set your time zone and update your schedule and you'll never have to worry about it again so uh actively doing it and it's because we want to keep growing users and the more users we have the bigger the problem becomes so again the The Meta around this right like try not to focus too much on the on the exact scenario The Meta here is that like when you have to factor in real world constraints Things become you have to get more creative right because if I could have just pushed this fix up this would have been done Friday night Friday night after work before I wrote my newsletter
I wouldn't have had a newsletter to go out right like this is a great topic for a newsletter so it's perfect timing but um it was it was an easy fix that's the point that I'm trying to make is the fix is easy the code was easy but actually in the real world when we have to think about other constraints you have to get creative right and uh you can have some really cool engineering challenges that come out of that and some solutions that come out of that so um it's something good to practice and I think that you get that practice by building stuff so um that's actually it for the um the newsletter topic so hopefully that was kind of interesting um I do because I have to get some YouTube stuff done I apologize but uh I got another I got 20
minutes left I was going to stay on for a full hour so uh as I'm doing uh some obligatory stuff if you have questions or stuff that you want me to talk through just add a comment in the chat I'm I got a whole bunch of screens where I can see what's going on and I am watching the chat I didn't watch on Instagram oh no okay no one said anything on Instagram Instagram's bad for comments you guys got to do better um yeah if you got anything you want to ask about um career stuff uh software engineering related happy to go through it let me know um otherwise I'm going to do some obligatory stuff let me switch this over hopefully this works by the way that's my newsletter with my stupid face I actually had hair in that picture which is cool I
don't have that anymore um but no I'll I'll just advertise a little bit on courses because it's actually good timing I have one more course that's about to release so if you want to see the courses that I have available most of them are on C so there's the link to that I am building out courses with Ryan Murphy who is a another engineering manager at Yelp and um he's got a lot of content that he puts on LinkedIn uh awesome guy so we have nailing the behavioral interview we have one more that will be launching very soon that's actually one of the things I'm doing after this live stream is finishing that up so if you're interested in learning either C or you want to uh have some career advice we do have courses on that we'll be building out more uh career Focus
courses so do check that out I realized my camera's gone that's the small one that's the big one that's me sorry about that um so there's that uh brand ghost is here so this is brand ghost if you're curious I will also put this in the chat uh if you don't like making social media content then you might not find that interesting um if you are a small business owner and you want to have some help automating your content schedule because you're like I don't got time to to post stuff uh feel free to check it out there's a 30-day trial um yes Conrad I can add you on LinkedIn um if I jump over here this is code commute this is my stupid face again um but you can see like I'm driving to the office um and I like to talk software engineering
otherwise hopefully you probably came here from uh my YouTube channel if you haven't uh this is my YouTube channel um I have a lot of CP and.net tutorials there that you can check out and I do also post like some career advice and stuff as well so hopefully you find that helpful but those are my obligatory things to share out I do see some messages came in so let me go through them uh I'm going to start on on Tik Tok because it's only fair because the chat is not going through for everyone uh so on Tik Tok I'm eight years software engineer but I start losing confidence okay um maybe if you want to add more context I can try to offer some advice or perspective but this is a very common thing uh it might be something like impostor syndrome kicking in uh
depends on like I said if you offer more context I can try to help navigate that a little bit more um but usually so like a lot of people will go through impostor syndrome but if I think about uh someone joining a team for example so if I had someone new joining a team it doesn't even matter their level of experience but in the beginning of being on a team uh what I would generally try to do is make sure someone could have uh some repeated exposure to an area of the product or service so that they can build up confidence in it and that way if I'm the opposite is if I'm moving someone around a lot it's really difficult for them to feel like hey I'm really getting this and like sometimes that can work well for some individuals they want to kind
of sample different areas and get some bre under them uh but I find a lot of the time having more focused uh you know engineering in a particular Spa can help so uh if you are being moved around a lot it might rarely feel like you're building up expertise and that could make it feel like you're losing confidence um it could be the environment you're in there's many factors but if you're okay sharing more context oh okay so the the extra context I'm a net developer working in great environment so that's good um but with different Technologies it make me feel like you don't know a lot okay so it sounds like the Technologies are changing a lot um so that I don't know how much flexibility you have but I would if you haven't shared this with your manager this is something that I
I would share with your manager and saying like if you're working with a bunch of different Technologies right like is there an opportunity for you to focus right if you can focus on a particular area or particular part of the teex stack so you can start to learn some of these Technologies a little bit better that ideally would in my opinion help you get some of that confidence built up because what happens is if you don't have a lot of repeated wins where you're like okay I did it like that was good I can do it again if you're not building that momentum and every time you're like hey that was hard and then you get put into another spot you're like man I don't know this like that was hard like I got through it but that was hard when does the confidence get
built you end up needing to remind yourself after a long period of time you're like hey this keeps happening and I keep doing like I keep getting through it so maybe I know more than I think right but um in the past two years worked with snowflake uh Informatica now data bricks with all the Azure stuff yeah so again my recommendation here is to try and have a conversation with your manager about getting the opportunity to do a little bit more Focus work and trying to build that up um again this is just a like I'm reading a couple messages on a live stream but uh I don't know if you've had conversations like this with your manager hopefully you you feel like you're comfortable and that you can uh you did say it's a great environment so that makes me assume that you can
have open conversations with your manager for context if someone came to me so if this individual said hey Nick like it's a one-on-one or they just wanted to have a chat and they said hey Nick like I I'm I'm not feeling confident in the stuff that I'm doing uh I would be approaching this the same way and what I wouldn't do is say well that sucks like guess uh guess we're going to have to think about like low rewards for you or brush up on your resume or something like that like my job as an engineering manager is to make sure you can do the best work that you can right so if you're telling me you don't feel confident then I would want to try and work with you to try and build that confidence up so like I said I think uh try
to make sure that you have a conversation with your manager about that so that you can see the opportunities they can align you to um if you don't feel comfortable with that maybe that's something that we can investigate too but I think um I think that's the the the path I would recommend uh it sounds kind of funny and I I don't mean for it to sound like overly generic but um I want to share this just for context because if you're like that's the the most generic dumb advice I've ever heard Nick um I've done for the past few years at Microsoft I've done early in career uh mentorship okay so um oh copy and paste the links here yeah yeah yeah sorry one sec I'm I just read the messages so this is my YouTube channel this is code commute and I already
put brand ghost in there above so hopefully um hopefully that helps so I've done early and career mentorship at at Microsoft for a few years now and uh we do group discussions and sometimes there's good participation other times people are pretty quiet which is fine but I do one-on ones with the individuals in there as well and I I don't have like exact stats on this but the the number of times where I have individuals like they don't report to me right this is just a volunteer thing where I can be a mentor to them when people are like hey like I got this going on um and we're digging into it one of the things that I've started or asking early is like like hey have you talked to your manager about this and the overwhelming number of responses that are no it's interesting
right like and I I have to remind them like hey I'm not your engineering manager so like I I don't know how comfortable you are with them but you seem comfortable enough to talk to me about it is it just because you're you don't know how to approach your manager or is your manager a jerk like I don't know these things so they have to figure out how to have this conversation effectively with their own manager but my point is like a lot of people for for whatever reason happen to try avoiding the interaction with the engineering manager in a lot of these cases that we'll be the absolute best person to give them some guidance on it so just a heads up that's why it sounds generic but honestly for my experience that's the way I've seen it oh so yeah if you're so
that's me but with being a consultant If You Bing this you you'll get replaced um yeah like I mean maybe and don't take this the wrong way maybe it's an opportunity to try I'm not saying for right now but maybe you want to think about trying uh to find opportunities that are not Consulting then in fulltime because if Consulting and I'm not saying that you're not capable of this so please don't interpret that the wrong way if you're finding that Consulting is putting you into situ that you are not confident in that's going to mean that you're going to have a hard time performing so if you're going to stay as a consultant you might want to see if you can narrow your focus in what you're Consulting for uh or try to see if in the future you can align roles that are more
um uh more static in nature so again this is just general advice I'm not saying leave your job I'm not saying you're not capable of that but Consulting in this fashion might put you into situations more often than not where you're like I feel like I don't have control and it's a lot of different things so again just something to think about um infected FPS I need to try and find time to get more into the Dome uh Dome train courses been having to do stupid AWS sh for work because they want uh everyone to get AWS certified I mean like yeah why would you use AWS there's there's Azure out there so no i' I've used a lot of AWS before um we built meal coach using everything in AWS uh I had a good experience using it um we buil brand ghost entirely
in Azure and I have a good experience doing it um you know things are very similar obviously could uh I just realized uh Conrad I'm I've been putting the links in the chat are they are they not going to LinkedIn maybe that's why they're not going to LinkedIn of course okay give me one sec sorry um I'm just going to take one moment to do this so I don't forget because I will um so there's Dome train coures uh this is brand ghost sorry folks I didn't realize that this uh the crossplatform chat is kind of funny like it it mostly works but like I should have read this like on my screen you can't see it on the on the video but it actually has a check mark beside which platforms it went to but what it doesn't show was an X beside the
platforms that it didn't go to so I didn't realize it wasn't going places so there's that one and then the last one I'm putting one more link sorry folks now they're coming through on the share chat because oh this is so silly I thought more people were typing it's literally just me sending messages um okay and then infected FPS If Only They used Azure instead yeah maybe someday they'll switch but um no I've had a I've had a good time using Azure um I don't at work I don't work on Azure at all right that's not even uh the space that I'm me I work in Office 365 so yes I know Azure is Microsoft but uh it's not like I wouldn't be offended if someone was like Hey Azure is hard to use I don't like it I'm like sorry um not not my
team it's a it's a huge organization though so it's just that it's a very different part of Microsoft from where I'm at uh I don't know how to pronounce your name on on Tik Tok I apologize it looks like it might be pronounced like zarif like a zed sound for the or Z depending on where you live uh sound for the X hello good to see you I am just wrapping up unfortunately um so again I got a few minutes left if folks have questions they want me to go through uh Conrad I'm glad the links went through for you X stands for H oh I did not know that so was your name pronounced harff then did I say that properly that's very interesting I've never seen that or heard or heard uh oh awesome cool I did say it right cool um I'm
glad I by the way I'm glad I did that because I am I'm very nervous to say people's names sometimes on like live streams it's not so bad because like infected FPS for example like I'm assuming that's not infected FPS is birth name uh but I always am nervous if something is potentially someone's birth name I like I it's like a a fear that I made for myself and it's like I think anytime I've heard people say like hey you should just try I'm like I get it but like I feel bad I don't want to see him insulting for not getting it uh and harif is saying trust me 100% of people copies okay um cool okay do are there any other questions from folks um Herff I know you just joined I'll give you an opportunity uh if you have any questions about
software engineering that you'd like me to answer I kind of went through a newsletter and stuff already so um I'm about to sign off but I'm happy to answer any last minute things oh uh just a question wondering if mongod DB or postgress is better to learn cool um so if the if the question is about better to learn if it's about better to learn uh I would say uh probably postgress just because uh squel in general now that's not to say one of these is absolutely better than the other one of them is a document store the other one is a relational database although I think postgress I don't use postgress but um I think postgress can do document storage as well so uh I think postgress you there's probably stats if you really cared like on uh and I don't know what they
are but on which ones used more um I think postgress is incredibly popular though so if you wanted my personal opinion uh I would say go with postgress to go learn um but if you're trying to ask about which technology is better you would have to do a comparison to go pick out what you want to optimize for um now the reality of this is like I don't know what you're trying to build in the scale of it if this is just like a for fun project or something that doesn't have you know uh hundreds of thousands of users or something the uh the short answer is it doesn't matter so it's you're not going to have like scalability problems that can't be solved just through doing things more optimal versus switching an entire uh Tech stack over so um yeah my personal opinion would
be postgress uh I think there's a lot more I've asked people about this on social media by the way it's not just my personal opinion but I have put polls out about people uh like which database Tech they use or if they like relational versus uh object stores and I I thought his like maybe a few years back I would have assume that more people were saying hey like we moved away from relational databases and stuff but it feels like it's the exact opposite like there's a lot of people that are saying like I only use SQL wouldn't touch a document store but there's a time and place for stuff right they have different characteristics uh like I said I don't know I think postgress does support document storage so maybe uh there's something I don't really realize okay what about backend what stack is
good for backend you think over long and skill ability um I don't know enough about uh I've never even said this word out loud is it Jango or do you pronounce the d this is super awkward because this is one of those words I've been reading for years I have never heard anyone say it and I have never had to say it out loud and I know I'm not the only person and especially if you play video games and stuff there's probably things you've like read on maps and video games and you're like I don't know how to say it but they call it Django okay cool I'm not I'm not far off the mark then uh the D is silent excellent okay that's what I assumed cuz Django would feel kind of silly but maybe that's what they want to do so uh I
I've scaled apps using node um not to like to hundreds of thousands of users or anything but again both of these I've never used Django before and I could tell you you could probably scale it and not have to worry um so I wouldn't I just wouldn't worry unless you're already dealing with a production system that has you know tons and tons of users and you're trying to migrate then I would say you got other things to worry about but that's actually sort of of what this conversation was uh earlier in so I I think you just joined right so the conversation from earlier in the Stream was that building real things has real constraints and unless when you're asking about picking these Technologies it might not matter at all right now and you could just get going and it's better to not be paralyzed
trying to pick the best one because there isn't uh but if you had an existing system with lots of users now you have real world constraints this is where you need to do a better analysis and understand these things so uh I'm not trying to give you a shoddy answer uh herf um I'm trying to let you know that if you're just starting out trying to build something pick a preference if you're like I want to know what's going to be the most uh like the best skill to build you could do a little bit of research and look for uh what What's in demand like node versus Django if I had to guess postgress a node off the top of my head but I don't have the data in front of me so um I don't if you're just starting out though you're not
going to have an issue with scaling either of those for what you're likely going to build but yeah uh I've had success building with react in the front end uh sorry I realized folks can't see what harff is posting in the chat unless you're on Tik Tok but uh I've had success building and react in the front end uh we did react in the front end Noe in the back end and then uh that it's it's a confusing to say that comprised our frontend service and then we had like an asp.net core backend uh I build everything in net and C so uh when I build stuff with uh with my friends and stuff outside of work that's what we use um we're using currently asp.net core in the back uh I don't know why I always pick MySQL or my SQL however you want
to say it I don't know why I pick it I just do uh I have nothing against post I just happen to pick my SQL and I go with it uh and we've never hit scalability issues and maybe one day if we do we'll say crap I should have used postgress but we're not there um but yeah that's that um Alexa uh which certificate is good for developers so um and sorry uh on on harth uh your question there for react uh for Tailwind or Daisy UI uh I would I don't know what Daisy UI even is and for total transparency I don't do any of the frontend work on brand ghost because I suck at it not a good excuse but that's the reality um we have we have Tailwind usage though so purely based on the fact that I've never heard of Daisy
UI I would say Tailwind but it's not a good reason I'm just letting you know that honest truth um uh Alexa uh was asking about um what certifications are good um total transparency I have uh from people from engineering managers and hiring managers I've talked to recruiters I've talked to and from my own personal experience I have never looked at certifications to hire people now that's not to say there's no value in them but instead of approaching it as which one should I go get to be more hirable unless you're applying to jobs where you are seeing these listed as a requirement change the narrative around instead instead of saying hey which one of these is going to get me hired say which one of these do I feel like is a good learning path for me I have talked to different developers that love
getting cert uh different certificates because they go through the process and they find it's a really good guided learning for them and if they wouldn't have taken the certification they never would have done it like to me that's a very good reason to go get it but the reason of hey can I be more uh you know will be more attractive to be hired this way I would say like from my experience it's never it's never come up as like oh this person has at least 10 uh certifications that can be different I have heard people say for uh when they're hiring for like pure like Cloud Administration and stuff like that that might stand out but otherwise um I don't see a ton of value unless you get the value out of the learning process so that's uh that's my thoughts on it um
okay folks we're at the 8:00 Mark in Pacific time uh sometimes I would go later in fact I was trying to do like two hours at a time I'm hoping I can get back to that next week but uh I have to finish up a course I have to get my YouTube thumbnails and titles sorted out with my editor because we're going to try and make I'm going to try to get him to do my thumbnails now because I suck at thumbnails my YouTube Channel's for the first time hitting a uh it's not accelerating in growth anymore it's actually slowing down so that's kind of a bummer so uh that's a that's my fault I am bad at making thumbnails people don't click them if you don't click my videos they never get seen so so we're going to work on that but that's what
I got a drop for so uh I do appreciate you all being here um I'll be doing this next week at the same time and if you uh Azure Sears same thing Conrad um I don't see I don't see any value from a hiring perspective in my experience on any certification just being transparent again not to say that there's no value for you to learn not from a hiring manager perspective in terms of uh value at um tomorrow morning I am going to be doing another live stream so it'll be 7 a.m. Pacific I'm going to be live streaming it will be code focused I was trying and will continue to try and go through what's required to migrate my WordPress blog over to uh Steven I can't say his last name he said it was I think like a six or seven out of
10 it's not Gil geel something I don't know I can't say it properly he's an awesome net Creator um he has a Blazer blog engine we're going to work through a little bit more migration stuff on there um yeah maybe I will try to demonstrate migrating like a couple of blog posts and the processing that has to go through and we'll see how it goes um so Conrad uh just to answer this question but when there are 200 candidates for one position I think it's important this all depends on if you know how the the filtering works so if you and I I don't at every company right even at Microsoft I don't know how it gets filter down in theory the logic is sound if you have 200 candidates and you look at it like a filter and you say 200 candidates at the
top of the filter and the only way to get to the bottom of the filter is if you have more qualifications logically this makes sense in practice I don't think that's how it pans out so if the filtering process that happens during recruitment was perfect this way and we were trying to always optimize for who is the most qualified and being more qualified bent looking at certificates then you could make the argument that to get further down the final yes the only way is who is going to come out on top has uh all equal experience plus certifications yep pans out uh what I am trying to suggest though is that I think there's a lot more randomiz that occurs unfortunately and I would say that I would personally I would recommend people spend more time trying to learn by building things if you find
that getting certification or C certificates certifications if you find that going through that process is valuable for you to learn then I 100% say go do it otherwise I am being totally transparent I have never been in conversations in 12 years of being a software engineering manager where it's ever come up that we talked about uh certifications that anyone's had so just full transparency again if there's Cloud practitioner roles or things like that that might be something try to see if the job description is asking for it uh if you have the time and you have the money to go do it if it costs uh Conrad I 100% agree with you anything extra is better any anything extra is better I don't I'm giving you my opinion on this because I don't want to go tell everyone go spend your time and money on
it if I don't think it's going to translate well if you can afford to do it and if you can afford the time and it's a good learning experience on top of that then please um please do so hopefully that helps uh okay folks thanks so much uh if you want to tune in next week that's great if you want to join me for C
Frequently Asked Questions
What is the main topic of the live stream?
The main topic of the live stream is about fixing bugs in production, specifically sharing an example scenario that caused some issues related to scheduling content and how it relates to general advice for software engineers.
How does the host manage their time between coding and managing their engineering team?
As an engineering manager, I initially struggled with balancing coding and management. I realized that as my team grew, I couldn't effectively code while managing. My focus shifted to building up my team and helping them grow in their careers, which is now my primary responsibility.
What is Brand Ghost and how does it relate to the content shared in the live stream?
Brand Ghost is a SaaS tool I developed to support my content creation efforts. It automates cross-platform publishing for my content, allowing me to focus on creating rather than managing the logistics of posting. During the stream, I discussed a bug related to scheduling posts that highlighted the importance of handling time zones correctly.
These FAQs were generated by AI from the video transcript.