Soft skills are absolutely critical for software engineers -- it's not just about slangin' code.
We get plenty of opportunities to practice technical skills, but what about soft skills?
📄 Auto-Generated Transcript ▾
Transcript is auto-generated and may contain errors.
it is Wednesday December 11th 2024 it's almost next year that's cool um I'm heading into work a little later than usual I had to run a an 8:00 a.m. meeting it's almost 10:00 now um so I just been kind of working from home to start the day um and we got a little distracted and figured I should probably get into the office I think we have someone visiting so I wanted to make sure that I uh didn't miss out on that I got a topic that was submitted um as we'll dive into that I like this one a lot it's uh around uh soft skills and uh sorry I got to put my windows down for just a second might get noisy there's too much uh condensation on the on the window there we go um yeah so this is about people going for uh
promotion and um I guess I feel like it's kind of I don't want to say typical but relatively common where as software Engineers who focus a lot on the technical side of things and then as you're advancing you you learn that um the soft skills and stuff are are important right or else it's very difficult to have more and more impact my wife left this in here it's a makeup brush thing um yeah if your if your soft skills are lacking uh your technical so your impact is limited purely by your own technical abilities and at some point it's going to be very obvious and it's hard to have more and more impact we get more stuff done in teams right and across team so it's something you want to lean into um a quick reminder before I start diving into my thoughts on this
and how to kind of uh what I would recommend for someone who feels like they're struggling a little bit with it is that um if you want any questions and stuff answered please just uh write them in the comments that's where I think this one came from so perfect right um happy to kind of chat through it if you have scenarios that are more involved and you want to keep them Anonymous when I go to talk about them uh look for Dev leader on any social media platform send me a message uh and just say hey I was watching Code commute and I was wondering if you could talk about this the more detail you offer the the more context I have to work with and offer my perspective and of course like this is just I'm just a dude in a car that's about
to be stuck in traffic so uh you know I'm not offering you like professional consulting or anything like that these are just my perspectives so um I hope that you get some benefit out of them but um like I would say that if you're listening to anyone's perspective and opinion it's just one person right so uh I'm not here to claim that my my perspective and my view is the only right one um so please do your homework you know gather insights from other sources and uh you know for all of you I wish you success and everything you're doing so I'm just here to try and help okay so soft skills I talk about this a lot uh especially if you know me from posting on social media in general or my primary YouTube channel Dev leader um I talk about soft skills all
the time um I literally uh I it hasn't been posted yet but I will I guess I will do the first announcement here because the material's been delivered uh I have just created a soft skills course uh for Dome train and that's where all of my other courses are so I did this in collaboration with Ryan Murphy um so this is uh you know a guided approach for working on soft skills and why they're beneficial but uh I've always said this about my content I will pump out as much free content that I aim to be valuable and helpful um and then that way if I layer on paid for Content like courses and stuff it's for a particular audience that gets the benefit out of um having something more guided I think some people find uh when they're paying for courses that they they
almost have this like accountability this commitment like I paid money for it I better go invest the time um so again if that's not for you no sweat I'm not here to push stuff um but if you're interested in that that will be launching soon on dome train so where to start with this is kind of where's this person going man some people we're not even in sport mode oh that's what they did a u-turn in front of me I just realized what they were doing idiots my God they were trying to turn left but they started to miss the intersection and then that's why I was so confused where they were turning okay so I do try to let people know and remind them like especially if you're an aspiring developer like get started on your soft skills early um sometimes you might not
feel like it's we got to get this light come on come on come on yeah just some time um sometimes it might feel like especially when you're starting out like what does it matter like I'm getting interviewed they just want to ask me lead code questions maybe system design like my soft skills don't matter I I got to demonstrate that I can code stuff people keep saying build projects to learn how to uh how to be a software developer and these are all like these are all true statements but it's also true that your soft skills are going to be uh what carries you uh very far in your career um so um I try to remind people of that and I would say that even as you're starting out right if you're like okay like I'm I am building projects and stuff like that
like how can you start early on the soft skills right there's a bunch of different ways to do this I'm not going to tell you one way is better or the only way um you can do things like for example learning in public gives you this ability you go write and communicate about the things that you're learning about so this is practiced um practicing like written communication or depending on how you're you're sharing stuff right uh maybe you want to do like little video entries where you're walking through the stuff that you're learning right that could be verbal communication like you're practicing articulating ideas and thoughts summarizing them for a different audience like these are these are parts of soft skills um you could be working on projects with a friend maybe want to go uh uh why can't I think of the word contribute
my God that was hard you can go contribute to open source or even you know join a project that I don't know if it necessarily has to be open source I think there's lots of Open Source and it's awesome if you can contribute but just finding stuff to build with other people and working together is another great opportunity to practice soft skills if you're in school right I know when I was in school and I think there's a a lot of boot camps offer stuff like this too but when you have Team projects this is yet another opportunity to be consciously thinking okay I'm I'm working on a team like like let me pay attention to what's going on for the Dynamics here uh instead of just being like Oh man another team project like I hate projects blah blah um like seize the the
opportunity to be like okay like it's not every day I'm working on a project with people so how do we get the best out of this for like our our growth and our Focus so I think that there's opportunities like that but there they're all around us right and I would say if you feel like hey I'm writing code and I'm practicing my technical skills but I don't have the opportunity to work on the soft skills my recommendation is like create those opportunities right everything I just described to you I mean maybe aside from the school thing like if you don't projects that are collaborative that's a different story but you could go Post online that you want to go build stuff with other people you could be uh doing the learning and public thing these are these are opportunities to work on your soft
skills that you can create okay when it comes to soft skills one of the most important ones I think they're all valuable but one of the most important ones that I like people to focus on is communication and I've been an engineering manager for over 12 years now and my my takeaway from some of the biggest challenges that I observe when I'm working with engineering teams is like is a lot of the time it comes down to I have to sneeze oh my goodness I felt it coming oh um a lot of the time it comes down to communication um whether that's um people communicate things and it's not clear people fail to communicate things um people missed the um so things were being communicated but people missed the opportunity depending on the communication mechanism there's so many things you can have things that are
being regularly communicated okay and if you have different groups that have different um different values for why things should be prioritized a certain way why we should focus on certain things it almost like just because you're doing the communication doesn't mean it's going to be effective um we see a lot of the time people will be taking one one type of communication and blanket pardon me after that sneeze I'm wrecked blanket applying that communication to different audiences regardless of their technical level their background their domain expertise so these are all things that you can be thinking about and trying to work on right to I'll give you you want like a a really simple example okay so um and you can tailor this to someone else in your life um so my wife and I don't have the same jobs uh she works in Psychology
I work in uh software engineering and um as a result like we're we're not at the same place the whole day right so it's great when we're catching up at the end of the day we're home from work if she wants to talk to me about her work day and uh things that were either good or bad or like interesting stories and stuff that she wants to share um she knows that I don't have like the the level of background in Psychology that she does so she's unable to articulate to me sorry it's not the right word she's um she knows it to clearly articulate to me there we go that she can't just use tons of psychology terms because I just won't get them that doesn't mean I'm stupid it just means like I don't have the same education she does I don't have
the same Focus that she does and she acknowledges that and she'll find ways to explain things in um explain things to me in a way that I will get it and the same thing is like like I will do with her so she's not a software developer um she's not going to understand a lot of the technical details so if I had a bad day or there's something interesting that happened at work um I can't go into detail and be like you know there was this file with uh this class in it and there was this convoluted code that was working asynchronously and then as a result we had this memory backlog and then that took down machines the data like she's going to she'll have no idea what I'm saying and that's not that she doesn't want to have a conversation with me it's
just that she's like I just don't know what you're talking about and this kind of thing happens all of the time okay so when we're talking about communication even in these examples I can find ways to talk to my wife about interesting things that happened at work in a way where she'll understand how I'm feeling for that day right so I could say yeah we got stuck on this really interesting problem and um you know it was challenging because we have code that runs and as a result because it can run out of order it has different Behavior every time like that's a pretty high level right and she might go I could understand why that would be frustrating and then I would say yeah and I'll go multiply that by hundreds of thousands of machines and see like just how big of a an
issue that could be and oh okay like makes more sense but just finding the right level of communication for your audience can make a dramatic difference right if I went into all those details I know my wife she would look at me and say I don't know what you're talking about and like I don't want to be rude but like I don't care because cuz she won't understand and that's totally fair so it's not that she doesn't want to talk to me it's just that if she's not going to get it it's not a good use of anyone's time so if you're not married you don't have a significant other it could just be a friend it could be if you're living at home you could talk to your parents or your your siblings or something like that um or like I said write about
it online talk about it online find ways to create these opportunities Okay so the person that asked this I believe was it's a Lamborghini a Matt I guess it's satin black satin black Urus I don't know how I feel about those it's nice but like I think if I'm paying that price tag I just want to get a maybe a slightly older Lamborghini and just have a sweet car but anyway um this person submit of this question I think is not necessarily just Junior uh or aspiring to be a software developer so they're already a software developer and they're kind of realizing like I need to work on these things now this is great because in the examples I was giving so far I was talking about a lot of the time creating these opportunities the cool thing for this individual or if you're in
this situation is like if you're at work and you're like crap I feel like my uh my soft skills are falling behind like these are the things that are holding me back now like these opportunities are all around you all around you and I I feel like soft skills so we talk about like M I don't think Microsoft necessarily invented this but Microsoft is very big on what we call growth mindset and the idea here is that you're not just like born and you know a set of skills and like that's your limitation it's like if you want to go learn something you can put in time and effort and that might take a different amount of time and effort for different individuals but if you put in the time and effort you will be able to to learn new skills okay so if we
keep a growth mindset we might see that there's new challenges but we can say hey look like this is an opportunity for me to focus on this I am going to have to put in the effort and the time and I should be able to learn and get better at it so just like technical skills I feel like soft skills are in the exact same space with respect to being able to learn them now just like technical skills I feel like soft skills uh can sometimes come naturally to people right you might know someone who just happens to be very good at math or happens to be very good at uh algorithmic thinking for programming uh they can uh you can talk to them about system design and they can sort of like visualize the different components that are interacting in a system and it
it just seems like they just get it right um and maybe maybe they did have to put tons of time into it and maybe they didn't maybe they just have a knack for it right this kind of thing can happen with soft skills and I wanted to bring this up because I don't want feel to uh people to feel discouraged if if they're like hey this doesn't come easy to me but I'm I'm looking around and it seems to come easy to other people everyone's going to be different okay so don't uh if you know maybe for you I'm just making this up right maybe for you something like algorithmic thinking came super easy um so you're you feel like you're a very good programmer system designs kind of thing and and now you're trying to focus on soft skills but that feels like feels
challenging right you're putting in even more effort or you you you're hoping to and it's like not progressing at the same rate that's okay right like please don't beat yourself up over it the point is that it will take time and it will take effort that's okay right a lot of things just aren't going to happen overnight for people and they will take time and effort nothing wrong with that but we have to have awareness about these things and I would say if you're trying to make improvements don't be passive about it don't just like sit around and say well someday it's going to happen cuz yeah someday it might happen but like how long do you want to leave things to just like coincidence and chance that you're going to get some of these opportunities to focus on them especially when you can try
being proactive so okay let's try to go into the more specific examples here right I'm just making these up off the top of my head so it's not like I rehearse this if you've watched code commute before it's probably pretty obvious to you that I don't rehearse these things that I'm talking about um so let's say you're working in a development team okay and um you are working on a project you're not leading it there's someone else leading it but you're a contributor there in terms of your soft skills what you could be doing is trying to more proactively communicate status updates more clearly you could be more proactively trying to communicate if you're blocked um so you're focusing on like how do I give other people in the team valuable information right without going into so much detail that they're like why the hell
is this guy or girl writing so much stuff like that's just distracting um so you you balance how much technical detail but still giving them like oh okay it seems like uh seems like John on the team is able to uh get unblocked here seems like we're on on on track for it so being able to practice that's really beneficial if you're the one leading the team right so you're leading this project you could be the one who's trying to collect some of that information for people so reaching out to them and explaining why the status stat updates are valuable um and maybe you have to communicate that to other stakeholders that are looking for status updates on the project so how do you find a right balance between not like totally annoying every developer on the team and being like hey what's your status
update and then an hour later hey what's your status update you know Finding helpful constructive ways to communicate with people that doesn't feel overwhelming for them and they understand why they're trying to provide those updates and then you now have to go translate that in a way that stakeholders will get value out of the um I'm just going to keep trying to like rapid fire some thoughts here uh if you're doing design docs and stuff like that um something you could be focused on is when you're critiquing design docs putting more thought into like how you're leaving comments in design docs if you're reviewing them like on a call or in person um finding ways where you're you're not just saying things like hey like I don't like this design or this Design's bad but like putting more effort into communicating why putting more effort
into like like let's have some awareness right so this person maybe there's a junior person who's putting together a design for the first time and instead of like hammering on them that it's not perfect or something like how can we have some some empathy and realize like hey we don't want to scare the crap out of this person we want to give them constructive feedback let them know that they're on the right track they're trying hard this is good and still give them the constructive feedback so the designs on track right so practicing empathy practicing awareness like these are all really important things um I talk about this stuff online and uh I think I probably said this on code commute but I think it's kind of hilarious personally uh I will see I will see people that say like oh it's it's stupid to
like to be trying to like uh what's the how do they frame it it's kind of like to be so soft on people like we it's it's actually helpful just to like cut to the Chase and like to give the feedback and like um you know it's um you're not doing them any favors by by being nice to them and like part of that's true part of it but I think the the part that I find really funny is like these are generally the people that are lacking a lot of awareness and empathy and they're the exact wrong audience to be the one saying oh just give the direct feedback right direct feedback is good being able to communicate to someone very clearly like here's the challenge here's the way to improve it here's the impact it's having these are all really good things but
you need a high level of trust and respect between the two of you and what happens is I think that a lot of these people that are saying things like this like you know stop you know everyone's too soft these days I'm like dude you're literally the person causing the issues that I have to go talk to the developers about because they're getting rattled by what's being said and they think that you're toxic so perhaps you need more awareness that you don't have as much trust and respect from the team that you're interacting with okay so like these things are critical and when people don't have awareness and they start trying to lean into some of these other things they actually create more problems so yes direct feedback is good uh yes it's true that if you're trying to be too nice about feedback people
miss the um the sign ific of that feedback it's true but if you haven't built up trust and respect with that person good luck delivering any feedback successfully so if the trust and respect is low and again I'm saying these things so you can think about them and trying them out if the trust and respect is low say you're new on a team or you're working with someone and you haven't spent much time working with them there's nothing wrong with giving feedback but if you go to be very direct with them they're probably going to think why is this person being an to me and not everyone will think that but I can confidently say that I have dealt with many Engineers on the receiving end of that that absolutely feel that way so I would say if you have low trust and respect between
you and someone else because you're newly working together don't lean into the very direct feedback try to find ways to to soften it use that as an opportunity to build up the relationship and over time you can get to the point where that trust and respect is built up and it's like hey like so and so I know from working with them they do give me feedback and every single time they've been trying to be constructive so now that they're being a little bit more direct with me like I get it like they want me to succeed this has always been the case well they don't have any track record with you and you try to be direct with them you're more than likely just going to seem like an so something to think about so practice these things right practice giving feedback um practice
when you're receiving feedback right how do you navigate getting feedback if you're not getting feedback ask for it like talk to your manager and say hey how how can I improve on these things now I know a lot of people will say oh my manager gives me crappy feedback it's always very generic try to um if you're getting generic feedback from your manager ask for specific feedback don't just say hey is there anything any feedback you want to share with me it's it's very open-ended right hey I've been working on this project in uh this part in particular blah blah blah do you have any feedback on how this part of the project is gone right and you can do this more frequently with different parts of projects and things like that so lots of opportunities to do that but giving and receiving feedback is
a big part of your soft skills um talked about communication um if you're working on projects cross teams there's a huge opportunity um and you'll notice like if you're not getting these opportunities generally as software Engineers are becoming more senior for most places there starts to be this expectation that you're doing a little bit more collaborative work across teams and you'll notice if you say you've been on a team for a while and you're more senior things are going pretty good within the team you might notice that when you start interacting cross team you have to go relearn some of the Dynamics because you have different individuals right you might know the individuals well on your team you know what it's like to work with them you know their personality traits things like that that you know how to communicate with them effectively now you're
talking with a new team okay how do you how do you go about learning about people so that you can work with them effectively these are things that people I find don't like actively think about because whatever we just got to get the work done and we just have to code stuff and get it get it pushed to prod like yeah yeah we are developing software these are things that happen but if you want to do it more effectively I really think that there's more effort that needs to go into soft skills for people to think about these things um it it truly just becomes more challenging later on if you're not actively practicing these so I gave a bunch of examples and I think personally that if you're like well I'm not getting opportunities that look like that I would be asking questions about
how you can create those or how you can talk to your manager about such opportunities right um if you have a product owner project manager product manager on your team um if you're not spending time with them at all maybe try doing that maybe schedule some time with them try to learn about how they navigate things what is going on here do they take a they took a turn lane away oh maybe not I'm now I'm stupid behind this bus H one of the lanes is blocked with uh pylons and it looks like they to me it looks like they tried to actually get rid of the uh the right turn arrow but everyone else is going up beside me with the right signal on I hate being behind buses so anyway soft skills don't ignore them there's plenty of opportunities to work on them
um if you're if you're leaning into getting feedback um you could even be asking for feedback about how how you're communicating things effectively um I just had this thought too like depending on the size of your company and if you're working across geographies people in different countries and stuff like that so many good opportunities to learn about how um people from completely different backgrounds will have their own own things that come up with communication right um the way that we talk about certain things the way how how direct we are um all of this stuff can be influenced by a cultural background and um it might seem insignificant man why is this car non-stop beeping at me you got to stop that what's this guy doing there's got to be like a leaf or something on the sensor and now my boss is messaging me
are you coming to the office today yes I'm just pulling in at the lights we're close yeah so I have to I'm running a meeting that has to happen on a couple of days per week and because it's uh speaking about cross geography it's across different time zones so um the occurrence today is at 8:00 a.m. so we can have people from Europe participate um so that's what I was doing my my boss don't don't text while driving I was in fairness stopped at a light with cars in front and behind me can't do much but he's right don't do it yeah we have a I think if I didn't un if I didn't misunderstand we have someone visiting today which will be good um get some FaceTime working together instead of just being on calls again another thing with um with soft skills with
respect to remote work um I feel like being remote uh can sometimes impede some of the the way the ways that we develop soft skills um give you a really simple example like body language is incredibly important when we're communicating um as humans right I'm not a psychologist or a sociologist or anything like that um but just from my experience of doing this kind of stuff there's so much information communicated in body language and if you're on calls or over written message and you're even when you're on video on a call you don't see someone's entire body right so they could be hiding some of their body language this kind of bike is flying man look at them go by um so I've talked about this too where like getting if you can getting if you're working remotely getting some FaceTime can be so valuable
because it will help you understand how other people communicate effectively how they interact um you might be able to get a different sense of like oh when they talk like this or when they do these things they're not actually mad or or whatever right like we make a lot of assumptions we fill in the gaps when we don't have the information so can make a huge impact but I think that's it thank you so much for tuning in again if you have other question and stuff you want me to go over just add them to the comments and I will see you later on the drive home take care
Frequently Asked Questions
These Q&A summaries are AI-generated from the video transcript and may not reflect my exact wording. Watch the video for the full context.
- How can a software engineer start improving their soft skills early in their career?
- I recommend starting early by practicing written communication through learning in public, such as writing about what you're learning or making video entries to articulate ideas. Working on projects with others, contributing to open source, or collaborating on team projects in school or boot camps are great ways to practice soft skills. If you don't have collaborative projects, you can create opportunities by posting online to find people to build with or by discussing your work with friends or family.
- What is one of the most important soft skills for software engineers to focus on, and why?
- Communication is one of the most important soft skills I believe software engineers should focus on. In my experience as an engineering manager, many challenges come down to communication issues, such as unclear messages or failing to communicate important information. Tailoring your communication to your audience's background and technical level can make a dramatic difference in effectiveness and help build trust and understanding.
- How should software engineers approach giving and receiving feedback to improve their soft skills?
- I advise practicing both giving and receiving feedback thoughtfully. When giving feedback, especially to junior team members, focus on empathy and constructive comments rather than just pointing out flaws. If trust and respect are low, soften your feedback to build relationships first. When receiving feedback, actively ask for specific input from your manager or peers to improve, rather than waiting passively for generic comments.