Soft Skills Engineering
Soft Skills Engineering
Jamison Dance and Dave Smith
It takes more than great code to be a great engineer. Soft Skills Engineering is a weekly advice podcast for software developers about the non-technical stuff that goes into being a great software developer.
Episode 322: Cover blown and no one cares
In this episode, Dave and Jamison answer these questions: Listener Olexander asks, I was a tech lead on some relatively known project since the beginning for more than a year. I made several trade-offs with technologies and wrong decisions. I participate in some generic Slack organisations and met several users of my product. I haven’t told them that I was connected to implementing the project but sometimes shared some insights on how the product is tested and asked opinions about some of features of the product in comparison to the competitors. Now there is a person who continuously critiques the product. Sometimes the criticism is valid but sometimes is’s just a rant. How can I influence that person without blowing my cover? Listener Kieran asks, Hi guys! Loving the podcast from down under. I’m working part time as a dev while I complete my software engineering degree. It’s been fun, but there are almost no processes in place for development and not many other devs seem to care about improvement. Although I am the most inexperienced here I feel some of the devs do not care about the quality of the work as I often have to refactor some of their code due to it being buggy, slow and undocumented (still using var in javascript). I’ve talked to management about improving our standards. However, they brushed me off saying yeah some of the developers are stubborn. They are not brushing me off because I lack technicality as Ive been given an end user app as a solo project. How should I go about encouraging the team to improve our processes?
Sep 19
28 min
Episode 321: Politely, no and participation at scale
In this episode, Dave and Jamison answer these questions: How do you politely tell a reviewer politely, “Your suggestion is stupid. I will not do it” when you get stupid review comments. If you don’t do it then the pull request can’t move forward because of unresolved issues. If you do it, then you’re compromising your design you’ve worked weeks on for some fly-by random comment. A few months back, I volunteered as co-facilitator for my department’s NodeJS Guild meeting. At first, it was a struggle to get people to present. But I tried to lower the bar more and more until it was easy. I asked for 10-15m presentations, and eventually I realized people are happier “Kicking off a discussion” than they are “giving a presentation”. All the listeners are more engaged too, at least after the first 2 meetings doing this. Now I want people to share half-baked code, or problems they are struggling with, as part of our discussions. I want people to be able to be vulnerable. If we don’t collaborate on common problems until we feel they’re polished and won’t reflect badly on us, then we will all waste time solving the same problems. I also want this to scale across 15-25 small scrum teams. I think success could be my demise–if we have good discussions, then more people will come, but people won’t want to be as vulnerable with a larger group. In general, I think my own scrum team is very open and vulnerable to each other, but the remote work in the deparment has created distance. I want to help create more collaboration on similar problems and solutions. What would you do to keep this going, and improve it?
Sep 12
30 min
Episode 320: Hot and less hot and no privileges
In this episode, Dave and Jamison answer these questions: I seem to be very hot and cold about how I feel about my job. Some days I hate it and think about quitting, but other days, I feel it’s not that bad and can stick around a little longer. The reason for it seems to change depending on the day, but a lot of it seems to center around the people around me (i.e. developers who need me to Google for them, business people who don’t understand how to provide requirements), but sometimes I can’t tell whether it’s an attitude problem that will follow me anywhere or if it’s just time to leave. It’s a relatively small company, so I feel like I would be betraying my manager who has invested a lot in me if I decided to leave so suddenly. I’d like to give my manager a chance to address my concerns, but I’m afraid to sour our relationship if I come across as a complainer. I’m also not confident there’s any solutions to my current frustrations because it seems to be a company-wide issue. How do I make sense of all of what I’m feeling? I really like my company but their project management is atrocious, ad hoc, and “old school.” They’re not giving me privileges to configure Jira in ways that allow me to get stuff done. Is there an effective way to convince my CTO that I’m not going to screw up our secure systems or do I just need to find a new job?
Sep 5
27 min
Episode 319: Steve's babysitter and these uncertain times
In this episode, Dave and Jamison answer these questions: My company wants several complex applications rewritten. “Steve” wrote the original applications, and has been assigned to do the rewrite. There is very little documentation on the original applications, and the rewrite will take intimate understanding of the existing code and new requirements. Management assigned me to work with Steve. They warned me that since we have started working remotely after covid, Steve has been hard to get a hold of and not meeting deadlines. My job is to keep Steve on task. When I ask Steve a question he will respond “I’ll work on it tomorrow” or “I’ll have to look in to that.” Then I never hear from him again. If I tell management I haven’t been able to get a hold of him, they will contact him, then he will contact me asking “What can I help you with?” Again, all his answers will be “I’ll have to look into that.” Occasionally Steve will report to me that he has finished a task. But because he did it without me, I am even more confused about what needs done or how to do it. I feel like my job has turned in to tattling on Steve. I am afraid I’m going to be labeled a whiner and that this project will harm my career growth. Over the last 2 weeks my solution has been to just ignore the project. Management hasn’t checked in with me, but I’m sitting on a ticking time bomb. What should I do? How to keep our sanity in times of uncertainty? I’ve recently changed jobs and despite the facts shows that I shouldn’t be worried, I can see my judgement is blurred by the fear of getting laid off even there’s no sign of it and I fear I would fulfill the prophecy!
Aug 29
37 min
Episode 318: Staff and part time dev
In this episode, Dave and Jamison answer these questions: Listener Albert Camus asks, Hello Team. I am a long time listener of the show, and I really enjoy it. I’m a senior engineer and want to get to the next level in my career. I talked to my manager about this. I told them I preferred the technical side and staff engineer was the next level up. He responded positively, although he didn’t give me a timeline, not even a vague estimate. In a subsequent meeting they told me it wasn’t a linear progression at the company and there’s quite an overlap in the salary range between senior and staff engineer. I was also told that the company only had a few staff level engineers and they were considered experts at a particular sub-section of a technology. This makes me feel like I am being stalled. I have seen this a few years ago, at a previous workplace, where I tried for a promotion, and the manager at that place kept giving excuses to buy time. I am afraid that could be the case here as well. I am technically strong and have good soft-skills. I have designed, developed and documented multiple features for the company. Whenever there’s a complex bug, the product manager always turns towards me for help. I also handle inter-team discussions at times, always a part of the interview panel while hiring new team members and at most times the only person representing my team from the tech perspective during alignment meetings with the sales and marketing teams. I could also say with confidence that I bring more value to the table and have data to back it up. But I am not sure how I could use all this information without seeming desperate, to really push for that promotion and a raise. I could quit and get a new job, most probably with a promotion, but I have put in a lot of effort here and I intend to stay at the current company for at least the next couple of years to reap the rewards. What can I do to get that promotion in the coming year? We know that the salary is high in our area, and I don’t need all this money. So, what is your opinion on part time job and how can I get one? I’m a senior frontend with more than 15 years of experience and just want to live a little.
Aug 22
28 min
Episode 317: Process renegades and hiding my disgrunteledness
In this episode, Dave and Jamison answer these questions: I work at a small company that has recently grown from a couple of engineers to 40+ due to some great new project opportunities. As part of this transition, many new policies are being implemented. The policies concerning the engineering department primarily revolve around task tracking and reporting time. Gone are the days when an engineer can charge eight hours to “fixing stuff” and earn a paycheck. Most of us are on board, but there are three engineers in particular who have been around for quite some time and vary between subtly passive aggressive to downright combative when it comes to creating JIRA tasks and logging their hours. The problem? They serve an absolutely critical role in our company. They are nigh irreplaceable in an extremely niche market. How should a manager strike the perfect balance between forcing an engineer to do something that they don’t want to do and not forcing them out? If this was a more common skillset, there wouldn’t be an issue with telling them “You don’t like it, go find another job”. But when there are a handful of people in the world that do this kind of thing and it closely involves hardware and these three just happen to be local… well, you get the idea. Losing these individuals would be a staggering blow the company. Making them redundant isn’t economically feasible. Time to ramp up for this position would be close to a year. So I’ve recently followed the first rule of Soft Skills Engineering and quit my job. All right! I believe in the new role and I think it’ll be a good change to me. Despite this, I’m feeling guilty about leaving my team behind. When my managers asked me how I was feeling in the last few quarters, I’ve mostly said I’m fine! I never told them my reservations about how the codebase I’m working on has no oversight, that they need to hire another dev because I don’t trust being the sole keeper, that it seems like product has forgotten this feature. I even indulged them when they asked me to make a long-term career plan when I was certain I would leave by early next year at the latest. So, what’s your take on how disgruntled employees often have to hide their true feelings? Maybe I could’ve been open, but it really seemed like the odds were against us, it’s just that upper leadership was neglecting this feature and there was no urgency to improve things. But I still feel like I wasn’t being fully honest. What do you guys think? Thanks so much and keep up the good work! Feelin’ Guilty P.S. Do you feel that this industry naturally rewards lack of loyalty and connection? What do you feel about that?
Aug 15
36 min
Episode 316: Skills reboot and quitting the perfect job
In this episode, Dave and Jamison answer these questions: Hi! I have been a software engineer at a very small company for 10 years. We write desktop products and single server products - I don’t have experience with scaling systems or the latest & greatest Javascript frameworks. I would like to move to a company where I can learn and grow, using a more modern stack. My coding skills are great, but it seems like I just don’t have the experience many companies are looking for. With 15 years total experience I am too junior for senior positions, and too senior for junior positions. I’m feeling stuck and am tempted to quit my job so I can focus on side projects using the latest and greatest tools. Or is there a better way to get unstuck? Listener James asks, How do you know when it’s the right time to move on from an almost perfect job? I’ve been a frontend developer for 6 years and spent the last 2 years at a really great company. I have lot’s of autonomy, a competitive salary, excellent stock options, and great job security. But, so far my entire career has been working with the same technologies, and there’s no scope to learn new languages at my current job. I was recently contacted by a recruiter, which resulted in an interview and offer for a full-stack role with a stack that would be completely new to me but really excites me. I’m worried that never holding development job for more than 2 years would look bad, but at the same time I don’t want to be stagnant and not learning. Should I stay at my current job where I’m comfortable, or take a risk and jump into the unknown to develop my career.
Aug 8
28 min
Episode 315: Poor feedback recipient and rubber duck
In this episode, Dave and Jamison answer these questions: Do you have any advice on how to give feedback to people who don’t take critical feedback well? There’s a person who joined my team with the same job title and level as me (senior product designer/L5) more than a year ago, and since then he has shown that he not only lacks a lot of skills to be considered senior but also lacks the self-awareness to see where he falls short and how he needs to improve. There have been multiple occasions in our 1:1s where he has alluded to critical feedback he’s gotten from people on our team (including our manager) and has written it off as irrelevant or untrue, will come up with excuses for his poor performance, and will make off-hand comments about the person as a way to discount their credibility. Overall I feel like this is part of a larger display of narcissist behavior; I’ve noticed that the only time he’ll listen to suggestions is if you make it not sound critical and sandwich them in between compliments. Up until now, I (hopefully) have avoided being on the receiving end of his negative comments, but since I’m trying to go for promotion, my manager wants me to give him more guidance and tell him directly the feedback that I’ve brought up to her. Seeing how he’s reacted in the past, I’m unsure how to just start giving him unsolicited feedback and am afraid of what he’ll think and say to others about me as someone with four less years of industry experience trying to give him advice. I’m also afraid that this will damage our working relationship as I’ve seen how despondent he becomes when things don’t go his way. I’ve told my manager these concerns and her response was that it isn’t on me if he reacts poorly to my feedback, but I feel like putting in the energy to give him feedback that he probably won’t even listen to is exhausting and isn’t worth the possibility of him becoming more adversarial towards me. What can I do? Any advice?? I recently joined a new company following the patented space law certified strategy of quit your job. I have a senior colleague who has been there maybe 8 months more than me. Whenever he has a problem, he likes to call me away from my desk and start explaining his entire problem to me. I have no knowledge of the real codebase yet and am not even an experienced programmer as I barely have 2 year of experience. I just stand there and nod and give various quips from time to time to pretend I’m listening. This can last up to 30 minutes and happens numerous times a day. If I say I’m busy he just waits 5 minutes before calling me over again. I cant get any work done because of this. How do I deal with this senior team mate that uses me as a rubber duck. Should I just buy him an actual rubber duck ?
Aug 1
29 min
Episode 314: "That guy" and how to skip level
In this episode, Dave and Jamison answer these questions: Hi! Love the podcast and have been listening for a while. I have a question about dealing with “that guy” on the team. I’ve been through several teams throughout my career, and every once in a while, I get on a team where there’s always a “that guy” that everyone seems to tiptoe around. They’re the type that would yell and scream to have everything go their way, and they’re typically very blunt to anyone, saying things in a really hurtful way. These people can either be technical or on the product side, but I’ve found it really difficult to work with people like this. After working long enough with “that guy”, it seems the common thing people do is just to say “Oh, that’s just so-and-so.” or “That’s just the way so-and-so is.”, which I feel is the only thing you can do, but that just doesn’t sit right with me because it’s incredibly toxic. I don’t think the solution is to just fire people like this, but it boggles my mind how so many teams just let this kind of behavior happen because the manager can’t or won’t take any action other than give them a talking to, which seems to just allow the behavior to continue because there are no consequences. Have you ever dealt with situations like this? And if so, how do you normally handle it without just ignoring it? I am a senior FE engineer and I have recurring 1-1s with my skip level manager (manager of my manager) who is the Head of Engineering at the unicorn I work for. I usually ask what is top of mind for them (usually hiring), give feedback about my manager, and get additional feedback on bigger picture things I’m working on (e.g. we’re currently working on metrics to measure impact and value of our design system and other internal tooling). What else would you ask them to make the best use of this time?
Jul 25
35 min
Episode 313: Parents are fighting and hat-removal
In this episode, Dave and Jamison answer these questions: After six years at my first job out of college, I took the foolproof SSE advice and quit my job last year during the height of the pandemic. I landed at one of the Big Software Companies and learned that I negotiated very well for pay within my role (in large part, thanks to this podcast - yay!), but I am way overqualified compared to my peers and should have attempted to come in at the next software engineer level (oops). To get promoted I need signoff from my fairly new manager and the very tenured principal engineer (PE) who has historically run the team. My manager and the PE are frequently in disagreement, and send me one-off slacks to make requests that are directly at odds with each other. I’m squarely aligned with my manager’s prioritization which frequently puts me at odds with the senior PE. Yikes. The senior PE frequently overlooks technical complexity and business context, and gives far more technical opportunities to the men on the team. I don’t like his mode of leadership, and so do not want to mimic his style. Unfortunately, he’s very respected by the VP+ level so I worry that friction with him will swiftly crush my dreams of promotion. The parents are fighting. I’m caught in the middle and feel like I’m aligned with the side that is at a political disadvantage. Is there any hope of success for me unless they can magically start to get along? I joined a small team as a developer a few years ago, and was asked by management to help introduce some formal processes to the team to help us release a project that has been in the works for a number of years. With the team’s buy-in, I introduced SCRUM, and started playing the role of Scrum Master and Product Owner. I may also be the development team’s functional manager in the future. It seems that having the roles of 1) developer, 2) scrum master, 3) product owner, and 4) functional manager is too much for any one person to do well. With a primary role of functional manager, which of these other roles would make sense to hold onto? Which roles would be better to either hire replacements for or coach other team members to take over?
Jul 18
33 min
Load more