I've Changed My Mind About... - Principal Software Engineering Manager AMA
April 16, 2024
• 144 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 AMA will be based on the topics discussed in my newsletter:
https://weekly.devleader.ca/
TL; DR:
- Composition over Inheritance
- Even rockstars need feedback
- Branding isn't only for marketing
-
View Transcript
e e e all right I'm just doing a double check here to make sure everything's going I streaming to a whole bunch of different platforms at the same time so everything's checking out uh and let me get this little chat window pulled up too cool um so this is going to Twitter LinkedIn uh Instagram I think slh hope um I can't really tell right now uh YouTube and twitch so hi uh I tried to put in the in the comments on LinkedIn and I couldn't seem to do it I just saw a message that said it fail but I'm going to be talking through uh my last newsletter that went out over the weekend which was about five things that I've changed my mind about and this was a topic that came up in the uh in the live stream from last week so someone
had asked in the chat kind of running out of time I think it was about 20 minutes over already um and they were like hey it' be kind of cool to hear about this and I was like yeah I think that'd be a pretty cool topic uh to try and just share different perspectives on so of course in in a career there's a whole bunch of lessons learned all the time uh you know how far do you want me to go back kind of thing there's even from internships and stuff right there's so many different things and obviously if I'm talking about five it's not there was only five things over the past I don't know like 12 plus years 14 years of being career there's a lot more but um I tried to capture a few things over a few different segments that I
thought would be interesting so they were out in the newsletter but I still wanted to make sure I could have some time to go through this and for folks that are new for the live streams that I've been doing I very much want them to be you know active participation so I am trying to watch chat and stuff so I think LinkedIn is the only one that doesn't have chat like I can't see that anywhere so apologies if you're watching on LinkedIn but if you want to engage you're and you're on LinkedIn and I can't do anything about it try checking out Twitter or YouTube and you can jump into the chat and stuff so if you have questions I will try to answer as I go through um if you've seen a picture of my my desk I've kind of posted it online before
there's a wall of monitors so I'm constantly trying to go look around and see where people might be asking stuff but I'll try to get to your question if I run out of time I will try to answer after uh so definitely happy to do that but with that said let's jump into the content because uh it was kind of fun to write this I thought it was a great question and I know that in my newsletters recently I've been doing a lot more talking about just like software engineering in general or I guess the last before this were really about how to get into career right how to get notice how to go through interviews how to start off while you're on the job whole bunch of different stuff like that and I realized more recently I have been talking about a lot of
software development like the programming part as much um I write a lot of Articles and do YouTube videos on that stuff but I figured it'd be kind of cool to touch on that in the newsletter a little bit and one of the things that I did want to talk through is kind of a a thing that comes up all the time especially when I'm chatting with more Junior folks but this concept of inheritance and composition in programming so uh I can't tell for who's watching this who is who is a programmer who's you know kind of whatever Tech background or whatever background in general you might have but this is something I think is really important to to talk through because at least from my experience and the experience that I've seen kind of other people coming into industry um you know obviously it's not
Universal but it still seems to be that the idea of inheritance in object-oriented programming is pushed like a lot and uh I think that people gravitate towards it maybe too much like it becomes a tool that you use for everything and for some reason composition is not talked about as much not used as much and people start to get some experience and they go oh crap like maybe I should have been using composition a little bit more so to back up a little bit for folks that aren't totally familiar what with what inheritance and composition are when we talk about inheritance inheritance and object-oriented programming talks about like an is a relationship so a typical example that comes up and I know that it goes a little bit more in- depth than this but a typical example that comes up when you're teaching beginners about
this is you would say something like a cat is a mammal and a mammal is a animal right they have this relationship between these types of things that is described by is a right a cat is a a dog is also a mammal right the mammal is also an animal so by definition then a dog you could say is an animal as well so you get this hierarchy built up and that gives you inheritance and the reason it's called inheritance with this hierarchy is because the car istics right the functionality characteristics of the things at the top of the hierarchy you get access to in the uh the child classes right so the descendants in the hierarchy I I'm not totally sure why uh most and I when I say most you know I'm I'm including myself in this mix I'll talk about this in
a little bit but it seems like a lot of uh you know beginner software developers latch on to this like this is the way that we must build things and the pattern that I see coming up a lot with that is that people hear about like this uh like don't repeat yourself principle or dry Dr right don't repeat yourself and the concept of that I think is valuable right if you are writing code and you find that you're kind of writing the same thing over and over in a bunch of different spots it probably not like it I don't like saying things are Universal rules it doesn't make sense to me but it probably makes sense that you want to pull that into a common spot to reuse it and that way instead of having like 15 different spots where you're basically doing the same
thing you have one spot because if there was a bug you might have a bug now in 15 spots that you have to go fix up there's a little bit more to this so if you're listening and going oh like that's you're missing the point like sure I get it but one of the common ideas here is that you're just trying to reduce the amount of duplication in general with nuances of course now one of the ways that you can do that is like I said you take your code you pull it into a method that you can reuse and I think something that happens and again I'm kind of I'm guessing at this so if you have access to chat and you have different thoughts on this please let me know um I think what happens is people see inheritance they go hey look
I can have a base class I can put the stuff that I want to reuse into the Bas class and that way I can have other classes that inherit from this to get that juicy goodness I can reuse that code because it's all in the bass class and then they start making things inherit from that and then they go oh like I just noticed that across these couple classes I have more code that's duplicated this is perfect I can use inheritance and push more into the base class right and then you keep building stuff and you keep making more child classes and in my article I kind of joke like you get so deep into this mess that like what are you going to do now like you have this hierarchy that's like 13 levels deep of things you have all this code that's you're
trying to push back up into this base class or something right and now all of a sudden you have a class that just tries to do everything because you keep putting all this code into it to reduce the duplication it ends up resulting in systems that are just like an absolute nightmare to deal with in terms of testing factoring extending and for so many different reasons it's not because the idea of inheritance is bad it's not like it's an evil thing but when you start using it as like the single tool to accomplish everything I just think that it doesn't fit very well and I can't remember who it was that was commenting and I think it might have been on on Twitter but someone was saying and I I apologize if you're watching this and I forgot uh you know the discussion we had
but this idea of like rule of like 5 to S no I think this was on LinkedIn my apologies I think this was Mohit so I think the idea was like in general I don't know where the rule of five to S comes from but like if you were to have hierarchies that were going past like five levels deep and I think five is already like that's a that's a no no zone for me um if you were having hierarchies like this you literally start to kind of break down in your understanding like it's already too deep when you go will beond that for the average person to kind of wrap their head around and I see this all the time still in code to this day like I'm not I'm not picking on the people that do it because I did this too like
I did this a lot and a lot of my experience early on in software development was building Wind forms applications if you've built in Wind forms the way that you put controls onto the screen and stuff all of that is done with like a huge object hierarchy and if you want to have more custom controls you can subclass the controls and keep this hierarchy going like it's a it's an inheritance party the whole way so I think a lot of my experience was that early on and I can remember my first job outside of University so I had six internships during University which is awesome for experience but my first job uh at a digital forensics company outside of University was was you know building digital forensic tools and I can remember I don't know how long it was into it maybe like a year
probably less than two years but I think probably over a year I had been kind of perpetuating this this idea that all of these call them like plugins for a lack of a better word all these plugins had this inheritance hierarchy to them and it was like we just reached a point where it was like this is ridiculous we can't we just cannot go down this path any further so it it became chaotic you can't extend things um now where I'm going with this by the way is that as I'm trying to help more developers especially more Junior ones get into the industry trying to you know bring down the barriers to say like hey if you're interested in programming you can you can do this if they're interested in objectoriented programming and I think people should get exposed to this I know there's functional
programming I'm not trying to say one is better than the other but a lot of people are learning object-oriented programming and if they're going through learning this I want to make sure that I do a better job of letting people know you have this other thing called composition which a lot of the time can be a better fit based on what I've seen people use inheritance for so I'm going to briefly touch on composition uh because I want to jump to the other topics as well and for the non-programmers you're probably like what are you talking about I don't give a crap so composition is a different relationship when it comes to object modeling it is not an is a relationship it's a has or is made of relationship these ones are a little bit funnier to try and come up with examples but it's
cool because you can look around a room and just pick things right um I don't have one of these in this room it just popped into my head but an engine for a car right an engine for a car is not just a one piece of metal thing there is a block for an engine which is a very big part of it but the motor right it's not just one thing you could say that a motor is made of or a motor has and then you could say that it has Pistons it has a cam shaft it has valves it has Springs like it is made of these things and I know that when we're talking about like inheritance and composition uh we're not building like you're not going to build an engine in code like that it's kind of a weird thing to say
but I think the idea of talking about physical objects helps a lot to understand these Concepts so composition is when things are made of other things composition can work really well compared to inheritance a lot of the time because you have smaller more purpose-built objects the code that's associated with those things the functionality is just a little bit more isolated right you don't have one object like directly depending on the existence of another object in terms of coupling like that when you start to build inheritance hierarchies that happens um and it's not a guarantee it's just like it's common but when you can start to compose things of other things it's almost like you can swap the pieces out that you're building and um I think again I strong if you're a beginner programmer and you're like hey like I've heard about composition a little
bit like I urge you please spend more time learning composition uh little bit less time on inheritance please and if you are more senior and you've maybe you've spent time teaching more Junior developers or you yourself had like an aha moment let me know um I'd love to hear kind of like how I can help bridge that gap for more Junior folks on on shifting over to um you know things like things like uh composition earlier I'm just checking I just realized I don't I can't tell if my my LinkedIn is oh it is live cool okay it wasn't updating that was kind of awkward okay that's the programming part I'll get that out of the way um the rest of this is more about like General software engineering and management so one of the the lessons that I learned pretty early on in my
career was about uh feedback and in particular for uh people that I would consider like you know like the rock stars the good Engineers right something that for context because I can't tell who's watching this right now right I don't know if you've heard kind of a little bit of my my career backstory but out of University I became a manager like very very quickly um and that's not because it was like I'm amazing or something like that it's because it was a startup they basically needed people that they felt could talk with the other developers well and because I was there at the beginning it was like we're hiring more more like do you want to be a manager or like you know we think you'd be a good fit for that and I have literally no idea what I'm doing for management because
I just graduated University and I've only been writing code and playing a lot of video games so um very new to me and they they suggested that because I am able to have good conversations and stuff and explain things to the other Engineers like might be a good fit for this so I had of a weird experience in my career because it was a startup um I I like to tell this because I know people have different experiences and startup in their careers right so I was at a startup and yes I was working all the time big surprise but the startup life for me working all the time was not forced it wasn't like look you got to stay late and do this just that's not how it was for me like I genuinely loved my job so it was like I would I
didn't have other responsib abilities either so I'd work I'd go to the gym I'd get groceries and eat sleep and then I'd work like that's all I did and it was fine so for me I spent a lot of time I had to balance writing software and managing people and if you haven't done this before I don't know if you're a new manager watching this right like if you're going from an an IC like individual contributor position and then going into management you need to understand that managing people takes a significant amount of time and a lot of the time we're not really ready for that because we're thinking like okay I still got to get my code added because like that when I land my code that's my value so let me get that done and then let me find the time for the
people right you're used to your value coming from your contributions it's not it's not wrong to Fe feel that way I think most people that have a technical background that go from a technical background I see into a manager feel that way it's normal say it all the time and it was no different right um what was happening was I had to learn I had to learn to balance this but when you're looking for shortcuts and stuff like you're trying to look to get your time back so when I would think about managing my team I was very fortunate to have like very good Engineers working on my team like my entire career knock on wood like awesome so what would happen is I'd go okay like I have to have these one-on ones I have to talk to them about like you know performance
and stuff like that but like they're doing great so like maybe I just back up like why should I interfere with them because if I step in to do anything like if they're already doing so awesome shouldn't I just get out of their way and let them be awesome right it's kind of the mindset that I had plus I was like I need to get time back to do other stuff too like this feels like a win just let them keep being awesome just check in the chat so T moving cool I'll come back to this question that's a good one um so yeah it's like the the the the Assumption was like if I move out of the way they can continue to do good I didn't make them good in the first place so just let them do it but it's a huge
huge error for for managers um I think again if you haven't done this before you haven't managed people um probably on the surface what it seems like is that the really awesome like awesome employees right their top performers always getting their work done really high quality like they don't need any effort or time investment the people that need the time investment are the people that are struggling like they have some challenges whether it's perform ments their difficulties getting ramped up like interpersonal stuff like I think people think that those are the really difficult situations that take all of the time to manage but the reality is like those ones those ones give you the obvious things to do right they do um if someone's struggling technically like what do you do you find ways to help them on their technical skills I mean there's more
to it than this but the the direction that you want to head in is at least more obvious right someone's struggling with interpersonal skills interpersonal stuff is very difficult to navigate but you at least know what to go look at and address how you go do it a different story but you at least know where to to start when you have people that are just overall awesome like where do you start right it sounds kind of funny but you know I think I have more experience now I'm sure if you are watching this and you have experence exping man experience managing teams you know this might be obvious to you now too but again the idea was that if they're doing good just get out of the way the reason it's not that simple right is that those people you need to keep engaged you
need to make sure that they're getting challenged you need to make sure they're learning and you need to make sure that they understand they have good career progression if you just back off and kind of say hey you're doing good keep doing what you're doing you lose all four of those things plus more right away right so it takes time to invest into those people and it's actually more difficult it's more difficult to do a good job managing those people because you do have to invest that extra time to go figure out okay what does get them engaged right they they seem to be doing good on everything but do they actually enjoy everything right if they're doing awesome and everything are they actually learning or are they just like I already know how to do this and I can crank it out super fast
like you have to spend the time with these people that you're managing to understand them better what gets them engaged growth opportunities learning like all these different things so for me this is a huge a huge error um I don't know exactly what it was that made me realize like hey I'm screwing this up I should be investing the time but um fortunately it was still relatively early in my career probably a few years in where I was like that ain't it like you got to spend the time helping these people too it it's just that helping them looks different than helping someone who might be struggling with technical skills so that was a that was a really good like you know change my mind about that kind of moment so I wanted to touch on that uh I'm going to pause to go read
the question from the chat again and answer it here so this is from from YouTube uh what is your tip for someone who moving from employment to self-employment how to find the right salary is there a formula for doing same job okay I want to make sure I understand this so going from employment to self-employment right you're going to start working for yourself this is this is a tricky one um the and I I don't know if maybe this was meant the other way around but maybe if it is you know going for self-employment and you're already employed this is a question that I can't give you an answer to like you know other people watching this the rule of thumb is just you need to make like X doll and you're going to be good um the way that you need to kind of
think through this is understand like the standard of living that you want to have right so if you are whatever salary you're currently making at because you said you're currently employed whatever you're making if you're going I'm I'm happy with this and going higher would obviously be nice I don't think anyone complains about that but you're like going lower like absolutely not it's kind of like what is your minimum that you're comfortable with um you need to understand that like I can't tell you that answer but you know mortgage payments car payments utilities like all this stuff um food um you got to you got to figure out what you need to be able to kind of get by and the the idea though is like if you're going to be self-employed like where where is your income stream right um are you going to
be doing like Contracting and is that Contracting like completely on your own is that like I don't know what the setup are you building something on the side that you want to be selling like there's a lot of things to answer here but the question itself was really about like finding the right salary I think a good starting point is seeing what you're making now and trying to figure out your comfort level now depending on what you want to do for work and what your work allows you to do legally CU I also don't know where you're from and labor laws and your employment agreement like you could be doing stuff on the side potentially you could potentially be doing that and if you were like I don't know if I want to take that step you could maybe start doing consulting on the side
again I'm not telling you to do this CU I don't know what's allowed for in your situation but you could try to do that and see like cool in my off time cuz you don't want this to overlap with your actual paid job that would be bad and no conflict of interest obviously but if you could be doing some stuff on the side and saying hey like this is actually going somewhere and if I were to I for me I would want to make sure that I'm kind of meeting my own you know current income level before making any dramatic changes but um I would use that as a baseline to kind of gauge how you want to make any changes there hopefully that helps a little bit I just saw more chat come in but I have no idea where that's coming from and
I can't see it it's too small so oh that is from LinkedIn oh it's a comment cool cool I can't literally the the arm of my camera is just like completely over the comments on LinkedIn so I apologize hello to Pakistan that's awesome that's really cool to to be able to engage with people kind kind of across the entire planet I'm hopeful that there's some other people on on this stream that are just like from um all over the place so uh hey Nick I just joined a company and they didn't have standards on how how they write code I have a lot of suggestions to improve workflow how can I present to my manager without appearing too pushy yeah this is great um I want to oh that that is precious hey I you're from LinkedIn I think right I I'm the last name's
not familiar but and your picture is small but I think I think we've exchanged conversations on LinkedIn so great to see you here yeah this is a this is a cool question um a couple couple things to think about right I think the idea that you mentioned like how do I not seem pushy I think this is important right um something that I like to think about and this is kind of coming from some of my manager perspective is like I'm going to come at this from a different angle right if because I've done this recently a couple of times at Microsoft I become a new manager on an existing team I have plenty of ideas from my own experience about like hey I wonder if we could I wonder why we do this I wonder should we try like all sorts of stuff comes
up but the idea is that you if you go into something and kind of demand or expect change sort of thing like obviously that's not a good fit you could come in with great like technically great suggestions and people will naturally kind of resist them if they weren't part of that ideation and especially if you don't have context from from other conversations that have happened before you've arrived there like there there's I would say kind of treading carefully is great but I also think that being quiet and not saying anything is not a good approach like I always encourage people I try to like if you have ideas about how to make things better like we should talk about that I want to hear that like you are on the team if you think we can be more efficient why would I not want to
listen to you about that so I think it's about how you present it right and I I I know that's kind of what you're asking so what I would do is if you're identifying a few things for if this is about like you know coding standards Styles things like that I don't know how specific or generic you're kind of going at here but what I would do is you know have a list of things and some scenarios where you're like this has been a pain point if you have suggestions for those pain points what I would do personally is try to chat with some teammates about this first right try to solicit some feedback and see like are other people kind of feeling this challenge because a good a good way to or a good thing to feel out I guess is like if if
you are and I doubt you are but if you are alone in that I wonder if it's something that you might be missing that that they could help you with but odds are probably some other people feel a similar way like yeah this does feel kind of weird that we have you know five different coding standards or we don't have any suggested ways to have you know tests written for automation like whatever it Happ we don't have continuous integration and continuous deployments you name it um trying to maybe get a feel for other people on the team and say like hey like do you think that might help us do you do you kind of struggle with this too if you start to get Buy in from other people I think that makes it a lot easier to have a case to kind of go
pitch the value of it um going forward with Solutions and um and understanding the pros and cons of your Solutions I think is Awesome by the way I'm trying to think about like if you came to me and you were like Nick like this stuff sucks we got to do better I like what I would like is kind of hearing what the challenges are what your suggestions are uh I would I'm not going to go Implement anything for a team unless I've kind of heard that other people on the team are like yeah we think this should be good to try so that's kind of my suggestion is like kind of you know feel it out with other people on the team come up with Solutions understand pros and cons and then try to incrementally add those things I'm really big on continuous Improvement and
if you just try to say you came up with I'm going to exaggerate you came up with 20 suggestions and you're like we're doing all of them like how do you know which ones worked how do you know which ones made things better in your head you might think they all will but if you do them a little bit at a time you can probably figure out which things have the most value so I I hope that helps let me know um we'll see I'll jump to the next question update my company wanted me to move to sub contracts so be moved to self-employment all in USA so I thinking ask 50% more to cover taxes okay yeah that part I'm not sure to be honest I don't know how that part Works in terms of like adjusting you know to go to to contract
like that but yeah the like you need to be able to consider does that feel like there's less job stability for you kind of thing um I don't know if that frees you up to do other things like if that changes sort of the demand on you so there is a bunch of stuff to consider there but ultimately I think at the end of the day think about the time you're putting into that and think about the the value like the sort of the income level that you need to maintain I think that's really what it's going to come down to so hopefully that helps um hello from Ukraine awesome sorry um and I got to move this over so I can see your question because this stupid camera arm is really screwing things up currently in the same situation client got idea from IBM
but he complicated the feature so started working on figma for more simple design clients aren agreed yet but I chose to speak with Po and client yeah um the you can't like I mean my my personal opinion is like just jumping into stuff right like getting other people to buy into your ideas is huge um there's a really cool I'm kind of doing a time check I'm I'm a little behind maybe but um there's a really cool ending to my newsletter that talks a little bit about this buyin thing and uh I'm going to use a different word a little bit later on that I think is really cool um and we'll chat through that so let me let me keep moving along here but it's awesome people from all over the world so uh who cares about levels and titles is the next section
in my newsletter and I feel like it's this is a funny one for me because this was a huge paradigm shift and I don't want like this sounds a little bit too aggressive I almost feel stupid for thinking this way but I can vividly remember just having this this mindset and I I I want to walk through it because I don't think that it's wrong I think I have a very different mindset now just from more experiences right but let me kind of walk through it so I mentioned that I worked at this startup I was there for for just under 8 years and kind of started right from the beginning of it not my company but started right from the beginning shortly after it started and managed engineering teams there and I felt like you know I was working a ton like I said
that was not because I was forced to do so but because I enjoyed it truly like no one's like you know like paying me to say that or like I'm not like tied up like to the chair like no I'm like I truly enjoyed working a lot it was great and the the thing that I found was like I keep working hard and I keep feeling like I'm being compensated for what I'm doing like truly I would put in the effort and more responsibilities like compensation would go like everything you put the effort in the results come so for me I was like this is great if I just keep doing and I keep doing a good job I keep getting the thing that I would expect and I I kind of adopted this mindset that like that's all you need to do and that's
all anyone should need to do and the reason I said I don't think that it's stupid to think that way is because I think that's how it should be I think that's how it should be I think I just got very fortunate that like that was reality for me and it took me a little bit longer to realize like that's not reality for a lot of people for probably for most people it's not that way so in my mind what was happening as the company was growing was you know instead of it just being a few people that kind of start in the beginning and you know the cliche like it feels like family thing but like I don't know if you haven't been in a company where it felt like family like it's a pretty cool experience that's how it felt but you get
more people coming on from you know it's not just like you know new grads and stuff you got people that have been in industry for a while and you have people start to ask questions like hey like what does promotion look like it's a really good question because it was like we don't know like we don't have we don't have levels it wasn't a thing we we didn't have the things in place that would like you would become like a level whatever it was like you're a you have a role like we had testers we had uh you know software Engineers I don't know if we call them software Engineers they just developers testers devs you know we had uh product managers I remember when we were getting project managers on so like the two different PMP type roles people doing documentation tech support like
we had roles but not levels and it was it was really interesting because the first couple people that were asking about it I'm like whatever like we don't have that like you know and probably for those people it was an easy conversation too cuz it was like hey do you feel like you're not getting compensated fairly I was like oh no that's not an issue just curious and it was like well in again in my head I'm like well so what are you worried about like why do you care about different levels and the more time that went on and the more people that started asking about this kind of stuff the company realized that hey we got to you know we need to start building a leveling system and they did like and it was pretty basic when we started which is fine you
know it's a it's a startup small company growing I think it made sense to not jump into it but I never I never really understood why people cared and then what started to happen is that I realized like we're in a bit of a bubble like in our little company we didn't a lot of us didn't care but the more people that were coming in they're like this is an expectation in industry and what do you think happens if you're not planning on or you happen to not be at the company that we're at for the rest of your career you come in as developer you stay there for X number of years and you leave as developer it looks like you literally did not progress at all and you don't have any type of fancy title or anything to go along with it so
it feels a little bit silly I guess but like that's kind of kind of how it was looked at which is weird so um I think it took a lot more exposure to seeing people come in and talk about like you know I was at this level before or people leaving and being like yeah it was it might have been challenging to get a job because I'm at this company I'm only at this level and when I when I went from that company it was between two to 300 people by the time I left right so it grew a lot it was like eight when I started there like eight people so there was a huge Journey over eight years but the what I realized coming to Big Tech was like that is an enormous focus of what everyone is doing is their level right
they want to be able to grow in their career and your career level is the way that you do that especially to normalize across different companies it's very it's very normal to be going to different companies and I didn't really have this mindset at all before so I never understood it now that I've been at Microsoft like even when I applied to Microsoft this this is one of the really big eye openers for me I'm applying to management rules that's what I want to do and I realize that early on when I was managing people at the company that I was at we didn't have a manager role like I was a team lead but not a team lead by normal definition like I had full comp view I was managing up to like 13 direct reports at one time while coding like that's not
a team lead like literally was helping like being responsible for promotions and rewards and stuff and like that's not that's not a team lead that's a manager and I realized like this this isn't representing what I was doing so that was pretty awkward and you know that was pretty solidifying for me about like why levels and stuff and different titles are important so at in big Tech it's a big thing for people as a manager it helps me work with my employees and Ure they understand that they have like career growth career trajectory um it's I think it's just a good way that we can end up level setting on different growth opportunities is it the be all and end all like not not at work but the other part of me is like it's your career right like you you need to be driving
that you should be trying to grow in your career no one else is going to do that for you so if you want to continue to make progress It's not like maybe some people feel guilty or selfish like you know I've I've heard from new engineers and stuff that from from early in career I do some mentorship with them and it's almost like there's a bit of guilt to ask about it but like you need to you need to be doing that so yeah it's just a lot of different eyee opening experiences for for people that were focused on level androll and stuff so that was kind of one of the really big things in my career that just changed my mind about um I can't really this chat window is super small and kind of silly I should have done a better job looks
like I can change it on the Fly though oh that is from YouTube cool I thought I might have had like an Instagram message I'm not watching the Instagram live I don't even know if it's working so we'll keep going sorry if you're on Instagram um okay the next one in my list is this is going to sound like a little like self- focused I guess but it says I'm bad at public speaking so this was like a thing that changed for me and I'm going to use the public speaking as an example but it's really like a a I don't know like a selft talk kind of thing like how you frame your perspective and how that translates into reality so kind of a kind of fitting because I'm doing a live stream right now um for years years and years and years I
can remember being a kid in elementary school and high school like I would Define myself maybe not like the first thing I would say but like a character istic I would say about myself is like I am bad at public speaking I'm bad at it so anytime it was like as a kid like can you present to the class can you read out of your your Shakespeare book to the class like it's your turn to read I can remember every time like this is terrifying I hate this I'm so bad at it do your science project presentation in front of the class like put your hand up and answer questions in front of the class I'm like I hate talking in front of people I so bad at it I hate it right and I told myself this for years and when I say years
I haven't done the math in my head but from what like as long as I can remember until probably roughly the beginning of this year like for years um it was just my birthday on the weekend so I'm now 35 so it's been it's been some years of saying I'm bad at public speaking and what's been kind of cool cuz the the the whole YouTube thing and content creation that's only like I've only been trying to do that consistently since the start of 2023 and I've been putting out three YouTube videos a week every week and thank you thank you for the happy birthday see I was fishing for the happy birthday comments in the chat right that's what it was but I started doing these uh you know YouTube videos three times a week I was taking opportunities at work to do like mentorship
opportunities for early and career people like I mentioned taking on mentees in general where I'm doing some talking to like almost like talking to strangers in the in the first little bit right so these uncomfortable situations uh I had one of the our partner teams on the last team I was on they asked me to kind of speak at like one of their architecture sessions and I realized like I've been I've been doing a lot of public speaking over the past year and I've actually had people after I talk say like wow that was such a good job or wow like they would like literally say things like oh like how do you how do you like how do you find the confidence to go speak in front of people and I'm kind of like what the heck are you talking about I am terrified
I'm extremely introverted what do you mean like you thought that was good and I started to realize it kind of took like a little bit of uh like a few of these examples to realize but like I need to stop saying I'm bad at public speaking and I need to start saying that like it takes a lot of energy for me to speak in public I can say I'm often uncomfortable getting ready to speak in public those are those are real things but to start saying like I am bad at followed by whatever I'm using public speaking in this case literally made it so that I would not take any opportunity to public speak so I spent my childhood right elementary school high school I don't really think we had presentations in University which is awesome for someone that is bad at public speaking but
I never had to do that and because I was bad at it I avoided it and guess how good you get at something when you avoid it completely not very good at all you probably become bad at public speaking by not doing it it was a self-fulfilling prophecy and it's kind of like silly in hindsight so I like I kind of feel ridiculous about this but I was saying for a long time I'm bad at it then I wouldn't practice it and then I probably wasn't good at it I forced myself to practice cuz I had to make these YouTube videos when I say had to I mean like I chose to like but I I made it like a a schedule to do it and now I'm doing live streams like uh is it super comfortable for me no like I can't edit this
i' I've fumbled on my words a few times I've kind of had to stop and think about what I'm going to say right but like I don't know like no one's throwing Tomatoes at me or whatever right it's all fine it doesn't matter so that took a long time and the point that I want to make about this is not to praise myself for public speaking although thank you very much um it's it's about like negative self talk and that truly becoming like a reality and I see this a lot with people that are trying to get into software development I am not good at math not good at math I can't do that I'm not smart enough to do that if you've been around Junior software developers or people that want to get into it maybe this was you like if you keep saying
stuff like that and you're not practicing anything yeah like you probably will be bad at those things because you need to do them so I share this because if my I think my my wife's already gone to bed but if she heard me saying that she'd say I told you so so she's right um she she doesn't like when I talk about things like you know something that's negative and I think that's fair she's she's the really positive one in the relationship I'm I'm always like what's the worst case scenario because we got to figure that out before we move forward so a lot of how I frame stuff is negative and a lot of how she frames stuff is positive and she will say things like you will Manifest this and I'm like that seems kind of ridiculous to me like I'm not about
to go summon something I don't really know what you're saying but she's she's right like you know if you're saying like these self-fulfilling prophecy like I am bad at this it's not that saying I am bad at this just magically makes you bad at it but it's that you start to believe it and you start avoiding those things so I'm telling you this because for a few reasons one if you're trying to get into software development or any other you know profession you need some skills that kind of thing please stop telling yourself you're bad at it because it's not it's not going to help you you can be totally new at it and that's okay right like you're supposed to not be great at things when you first start them that's cool but that's the expectation saying that you're bad at it doesn't really
help you and it's not magically going to make you worse it just means that you're already doubting yourself and that's not a good spot to be in especially if you're not giving yourself the opportunity to practice that's one part the next part is if you are already in industry and you're seeing other people talk like this please remind them because I think that's important there's no reason that people need to be like they're already kind of nervous about trying something they're talking bad about themselves they're not really giving themselves a chance it's just not fair and it's not a lot of work for you to let them know like hey it's cool we all start somewhere right like you're not bad at this you just haven't practiced a lot that's okay just practice more it's not that you're bad you just need more practice it's
the framing of it so about to lose my voice it's not an ad I wish i''d be cool if someone paid me for drinking Pepsi but um that's going to bring me to the last one um sorry what I do is increase my rage then go out and showed at them yeah yeah that's I mean if yeah if you find uh shouting it People Help public speaking that's a that's an option I don't recommend that for anyone else to be honest um H yeah so oh in 1989 folks yes great to see others that are all maybe you also have a white beard like me okay last one get back on track here this one is about sharing online and this is a weird title I probably should have picked up a different title for this there's it's not it's not the point is sharing
online but maybe that's how I framed it in the article so I want to bring this back to what I said at the beginning we're talking about selling ideas right that's this is this came up in one of the questions like I think this is from precious actually so thank you this is a good question to kind of to cue this up you have ideas as a software engineer or whatever other role you're in and you want to see how you can get your team to be bought into that right you think that you can help Drive some improvements which is great and what you don't want to do is just like demand people go make change I think that's kind of expected feels bad it kind of feels awkward I think that's why the question came up but you want to help Drive some
change so the idea here is that you kind of need to sell other people on your your ideas what's the value to them like why should they do it and it seems kind of interesting to use the word sell right because talking about being software Engineers we don't sell things we write code right that's what we do so the cool thing here and this is this is actually uh I record I don't know when we recorded this I think I put the video out earlier today's Monday this was last week I'm sorry it's been a long day um last week I released a video that was a a conversation I had with Anna Miller someone that I met from LinkedIn this is a really cool conversation because the topic of it does not feel like it's doesn't feel like if you're a programmer a software
engineer you're kind of like I don't I don't care about that like why should I care um and it was about branding and I want to tie this into what precious had asked earlier and the idea is that if you want to be able to sell your ideas you want people bought into them right you need to have some type of influence right you need to be able to figure out what they're after like what truly what what's the value that they're looking for and how can you propose that to them so lot of your communication right that's important but when I was talking with Anna about this what was really interesting was she was focused on branding and in my head like I went into this thinking like I know brandings for people in marketing people designing products and stuff that's branding like okay
no I had I had a little bit more insight going into but her her her whole point was about how you as an individual whether you're a software engineer or not right you could any industry the idea is about you have influence over your brand and we talked about networking communication a lot and how that's very important if you're looking for jobs especially right now right like networking is incredibly valuable I'll share some more thoughts on that in a moment and when we were talking through this I said well Anna okay like she knows about the branding I'm kind of just trying to bounce some ideas around I said well would you define branding as like your consistent message and the types of things you're talking about how you deliver that like is that your brand and she said that's not quite how I would
say it and by the way it's all it's in the video if you want to go check out the YouTube channel um the interview with Anna Miller the the thing that she brought up was that it's not about like what you are doing it's the observation of it and it sounds kind of weird she said it way better than me so it was she said your brand is what people say about you when you're not in the room and think about that it's pretty cool right your brand is what people say about you when you're not in the room and I hope that doesn't mean you just have a bunch of people talking about you behind your back right um the idea is that when you're not around when you are not directly influencing people what what is their takeaway that they've gotten from the
other messaging that you've been doing consistently so I don't feel like I was totally off with what I was suggesting the definition was but I think that her point was really like you can influence this and your brand is very important not only not only when you're trying to network and say you're on LinkedIn cuz we like we met on LinkedIn we were talking about people looking for jobs and networking on LinkedIn like you're branding is very important that way like for me I'm creating content on LinkedIn so is she like so that's a you know it's a topic for us to to go through there's lots of people doing this but it doesn't have to be that it doesn't have to be you on LinkedIn having a personal brand which by the way I think is cool I think you can get a lot
of value out of that this is what I wanted to touch on after but it doesn't have to be external to what you're doing you can have your own personal brand within your company within your team and it comes back to fundamentally what she said like what do people say about you when you're not in the room so I think there's a lot of stuff that you can take positive action on that seems pretty simple but you have to do a little bit of investing time so when you're trying to network with people even your colleagues finding opportunities to communicate with them that's not like I need something from you can go a long way so like showing interest you know being curious it could be with other roles like analysed off a handful of different things like if you're going to go work with
a product designer ux designer right like being genuinely curious going through what they put together ahead of time like just genuinely being like the kind of person that you would want other people to emulate is probably a pretty good pattern for establishing a solid brand right you want you want to think about the characteristics that you want people to remember you for right like I'll make it up like maybe people say Nick is Nick is curious right Nick is helpful Nick is these other things like you can influence those things but you can't just like command them kind of like company culture it's not like the CEO wakes up one day and he's like our company culture is X and therefore everyone just is the company culture no the company culture is the result of everything else that's happening I kind of think about branding
like that but to tie it back into in your ideas when you have a brand that people understand as being collaborative helpful right if you're trying to kind of sell your ideas uh to technical stakeholders like that you are thoughtful that you do uh deep analysis like your brand can go a long way and having people buy into what you are trying to sell them much easier so it's worth establishing and working on the idea of branding whether it's internal whether it's external and you're trying to go to a different company that kind of thing and to kind of close out that thought the I I kind of I've been talking about learning in public and stuff a little bit recently and the idea that I thought was important to mention is like you can be posting stuff online and not be an expert and
be learning and I think it's a really cool way to network with people and personally from my experience over the last year I'm not going to go into like the details of like you know every every relationship that's formed but like it's funny to say like I'm not special in any way right I I like you have different life experiences all that I've decided to do and for people watching this maybe you are doing this already so I'm not saying you don't but all that I've decided to do was say I want to share my experiences with other people they're not always right in fact I post posted a video on Friday and someone was like this is literally not right and I went oh crap and I had to over the weekend I went and fixed it made another video so I mess up
right it's not about being right all the time and saying like I have the best ideas but it's a really cool experience to start putting your ideas out there and finding the people that kind of rally behind that and they're like yeah like I I like these ideas I'm align with that finding people that don't align with that but they're not like malicious because and you learn all of these other cool perspectives it's the internet there's always going to be trolls so you have to watch out for that but you know you start to build up these networks of people where like there's people on LinkedIn or Twitter and I'm like you know they have a different belief than I do about the best way to do something or their preference and that's cool like I want to learn why I don't always want to
be in my own little you know my own little world and I'm like C's the best language ever by the way it is I have coures on dome train for C it's a good good little segue to an ad right but um it's like it's not right like there's there's so many programming languages they're all tools it's all situational and I think when you start to post stuff online if that's something you're interested in you're learning in public establishing your brand that way of being curious and trying to learn there's just a lot of cool stuff that can happen so I've been very fortunate in my experience over the past year I guess it's been like 16 months now that I've had a lot of cool stuff come up right there's opportunities with people I never thought I'd talk to it's been great so if
you are considering learning in public like I recommend it I I started what you're watching right now technically started in 2013 I took a huge break for a decade I didn't do a very good job of it but um the idea was that I started trying to learn in public I was a developer and a manager at the same time and I said I don't know what I'm doing I bet you other people are also going through this I will learn in public and that's how I made Dev leader that's why I'm live streaming right now I just took a break right because I didn't know what I was doing I gave up on the personal branding and the sharing and stuff but um I shouldn't have and it's been really cool to get into it so those are the topics I just realized there's
more chat messages coming in from somewhere that I can't see on on my screen so let's blow this up YouTube Dynamic Emoji I didn't hear any Dynamic Emoji cool um Maria I tried to avoid speaking for a long time yeah so introverted but I wanted to overcome self limitation after 50 talks webinars awesome that's so cool 50 talks and webinars became more comfortable and the mindset helped it's not about me it's about the people I serve and higher value yeah your why right it's a I kind of shared earlier that it's a framing thing and even what Maria put there is like it's still a framing thing she her framing was like I'm doing this and it's helping people I don't know if I found like a good framing the whole time I think I just was able to keep myself going and then finally
had enough kind of uh instances of someone saying like hey that was really good like they were almost asking me how they could be better at public speaking and I was thinking like you're literally asking the wrong person so I think it took a handful of those okay I'm double checking chat I don't see any other outstanding questions but I'll few more minutes here if you guys want to add anything else I'm happy to go over it um no I don't want to talk about my white beard hair anymore but it's there unfortunately my hair is going away too but happy to chat through anything else if you guys got questions want to hear anything else it's funny as I'm waiting to see if there's anything else rolling in the monitors that are showing the live stream are delayed so it was like I don't
know a really awkward series of me just like doing that to my head and it's going to do it again because I just did it cool okay I don't think there's anything else rolling in uh folks I trying to do this uh every Monday for now at 9:30 p.m. PST that's the current time that seems to fit my schedule uh that may change over time so hopefully this is a cool time for folks I'll be back at it next Monday I don't have my topic picked for the the live stream uh best website to check salaries levels.fyi uh for for Tech there's um software engineering jobs management jobs there different big tech companies seems pretty good um I haven't checked recently when I went looking it was very accurate this is four years ago so if you're interested in that yeah I am going to
try to do these if you're on a platform and you were like ah crap I didn't get a chance to like chat because again like LinkedIn I think it's coming in the comments I can't tell looks like it uh Twitter there's a chat but no one said anything you guys on Twitter just not talking come on um but yeah if you're on a platform again Instagram people I'm sorry if this didn't work but um it is on LinkedIn it's on YouTube twitch Twitter supposed to be Instagram but who knows um but yeah I will see you all next week if you're interested if you want stuff discussed on live stream you can shoot me a message ahead of time whatever platform you're on just send me a message on that and I will try to follow up and make sure I can cover it so
thanks again I appreciate the time thank you for letting me share some experiences with you and go do some awesome stuff take care folks have a good night or
Frequently Asked Questions
What are the main topics you discussed in the live stream?
In the live stream, I talked about five things I've changed my mind about in my career, including the concepts of inheritance and composition in programming, the importance of providing feedback to top performers, and the significance of personal branding and public speaking.
How can I improve my public speaking skills?
I recommend practicing regularly and reframing your mindset about public speaking. Instead of saying 'I'm bad at public speaking,' try saying 'I find it challenging but I'm working on it.' The more you practice, the more comfortable you'll become.
What advice do you have for someone transitioning from employment to self-employment?
These FAQs were generated by AI from the video transcript.I suggest understanding your current salary and living expenses to determine a comfortable income level. It's also wise to consider starting with freelance work on the side before fully transitioning to self-employment.
