It takes more than great code
to be a great engineer.

Soft Skills Engineering is a weekly advice podcast for software developers.

The show's hosts are experienced developers who answer your questions about topics like:

  • pay raises
  • hiring and firing developers
  • technical leadership
  • learning new technologies
  • quitting your job
  • getting promoted
  • code review etiquette
  • and much more...

Soft Skills Engineering is made possible through generous donations from listeners. A heart with a striped shadowSupport us on Patreon

A speech bubble

Why should you listen?

Here's what listeners say:

Recent Episodes

Latest Episode

Episode 328: Fear of sudden firing and reducing the lottery factor


In this episode, Dave and Jamison answer these questions:

  1. I’ve joined a team at a small startup and our team lead has mentioned in passing a few times about a developer they used to have but had to let go. Not in a malicious way but just as a matter of fact when it’s come up organically. Now it’s eating at me because I’m not sure if I’ll ever go down that path and I want to know what they did so I can avoid the same fate. I’ve always been a top performer at other companies but now I’m wondering if this would be the one place where standards are higher than what I’m used to. I really like it here and don’t want to lose my spot. Realistically my fear isn’t that I’d get fired in my first six months but more that I would fail to respond to constructive feedback over the course of a year and end up getting let go in the same manner. Do you have any advice?

  2. Hello! Long time lurker, first time question server.

    I am an intermediate software engineer and I work on a team that has a really tenured senior engineer. His attention is often required for a lot of things and the team can sometimes get blocked by him being pulled into many different directions.

    As someone that is trying to grow into a senior engineer myself, what are some ways to take some of the load off of him and improve the bus factor?

A smiling speech bubble

Episode 327: Remote with onsite team and undercover refactor


In this episode, Dave and Jamison answer these questions:

  1. I have recently joined a team as a fully remote member, with majority of my team mates located in one city and meet in office every week. My manager wants me to work on earn trust and drive consensus, to keep me in track for promotion. Being remote, I am unable to get through my team mates effectively, when compared to my previous work settings where it was all on-site. Any tips for me?

  2. Hi Jamison and Dave!

    I’m a long time listener and I really enjoy the podcast. I have a small question for you two:

    My coworker recently asked for my opinion on how to write some code and then implemented it a different way. They knew I wasn’t a fan of their implementation and even went out of their way to not get it reviewed by me. Now we’re left with this shared code that stinks.

    Their code works but it’s clunkier then it should be and it’s bothering me. Should I fix it when they’re on leave and guise it as a refactoring that “needed to be done” or should I leave it alone and try to learn some lesson from this.

    The other option is to quit my job but other this small hiccup - it’s been going ok here.

Show Notes

This episode is sponsored by the Compiler podcast, from Red Hat:

A smiling speech bubble

Episode 326: Good perks, bad code and paper shredder suggestion box


In this episode, Dave and Jamison answer these questions:

  1. ‌About a year ago I joined what it seemed to be the best company ever.

    It’s a pretty big, pretty successful company which has been fully remote for decades. They have a great work culture where async written communication is the norm. There’s no scrum, no micro management, no crazy and absurd planning/guessing meetings, etc. Of course we also have some pressure to ship product, but nothing out of the ordinary. Salary is good, work life balance is awesome, I like my team a lot and overall people are awesome too, so this sounds like paradise to me.

    However, on the technical side, this is the worst careless outdated bug-ridden untested unmaintainable inscrutable ide-freezing mindblowing terrible wordpress codebase I’ve ever seen in my life.

    No linters, no formatters, the repository is so big you can’t even open the entire thing on your editor and you need to open just the folders you’re touching. The development environment is “scp files to a production server taken out of the load balancer”. Zero tests, manual QA by a team mate before merging, outdated tooling, outdated processes, css overriden 10 times because nobody wants to modify any existing rule, security incidents hidden under the rug every now and then and the worst part: any attempt to improve this gets rejected. My team laughed at me when I tried to write an acceptance test in my early days. Months later I can see how ridiculous it looks now I have a better grasp of the technical culture over here.

    I’m towards the second half of my career. So “learning” and “staying up to date” with the trends is not my priority. I really enjoy this company and love working here until the moment I open my code editor.

    I’m seriously thinking on starting to look for another job, but I have this feeling that wherever I go the code might be slightly better but the perks will be worse. Now I understand why we have these perks, otherwise nobody would be here I guess.

    Have you been in this situation, or maybe the opposite one? Not sure what to do at this point.


  2. My team got a new manager about 6 months ago. While I’ve had managers all across the spectrum of weird quirks in my time as an engineer, this person has one that’s new for me, and I’m not sure how to handle it. He operates in a very top-down fashion, which isn’t unusual. What is unusual, however, is that he will insist that everyone on the team give him feedback on a given issue…and then inevitably just proceed with whatever he had decided beforehand.

    I take giving feedback very seriously, and spend a lot of time getting my thoughts in order when I’m asked to give input on something. Having someone request that and then immediately throw my input in the proverbial paper shredder is frustrating and a waste of my time, especially since the team and company are growing rapidly and there are a lot of these kinds of decisions that have to be made. How should I approach this? I don’t want to keep spending time and effort on feedback that’s going to be ignored, but I also don’t know a polite corporate-speak equivalent of “please don’t ask my opinion on this when we both know you’ve already made up your mind”.