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 381: Doing less and bad reference

Download

In this episode, Dave and Jamison answer these questions:

  1. My company is doing performance reviews. While writing my self-review, I was shocked by how much I had accomplished in the last 6 months. I’d led our org to adopt multiple new technologies and supported other teams in adopting them, to great effect. But looking back, I wish I could trade half the accomplishments on my self-review for time spent taking better care of myself and my partner and kids. I’m not working crazy hours; I work a pretty regular 40hrs per week on a flexible schedule (with 3 young kids, this is, in fact, a crazy schedule). I’m on track for the promotion from senior to staff, maybe in this cycle, and I’m wondering: would it be crazy for me to propose that I stay in the senior pay band, and start working 4 days a week?

    I’ve also considered scheduling personal time during the day. But I know I’ll be fighting an internal work-time-clock forged by years of cortisol flow. What’s your advice for lightening up a lead foot?

  2. A listener named Aisha says,

    6 months ago I quit my first job out of college. It was a very toxic and hostile workplace. I sucked it up for almost 3 years, but it got so bad that I had to quit my job without another lined up (yikes, I know).

    I was a great employee, and was always given excellent performance reviews. After giving my boss plenty of notice, I asked if I could use him as a reference and he said yes.

    It’s been a struggle finding another job. I’ve submitted hundreds of applications, reviewed my resume with mentors, and attended workshops for interviewing skills, but nothing helped.

    Out of sheer desperation, I had a friend pretend to be a future employer and call my boss asking for a reference. As I suspected, he was providing a bad reference that included outright lies about my work ethic and me as a person. I have no idea why he would do this.

    I am at a loss of what to do. The obvious thing to do it not include that job on my resume, but without it I basically have zero experience and a large gap between graduating and now. :(

    I have contacted some of my old team members if they could be a reference instead of my boss, but none have gotten back to me as of yet weeks later. Please help! What do I do?

A smiling speech bubble

Episode 380: Overruled by non-technical manager and describing technical stuff to non-technical people

Download

In this episode, Dave and Jamison answer these questions:

  1. Listener Ashleigh asks,

    I’m a mid-level developer at a small company with a non-technical manager. After several months working on migrating our users from a legacy system to our new system, our non-technical business analyst discovered our current system re-uses lots of code from the legacy system. The BA immediately escalated their “concerns” about this to our manager. This quickly resulted in a group message from our manager to the BA, our senior engineer, me, and another developer. Without asking for more than a cursory explanation of how two sets of users who need the same functionality can use the same code base without breaking things for each other, our manager made the decision to fork the project and maintain two separate code bases.

    The developers tried to explain why this was a bad idea, but we were immediately shot down. This has already resulted in issues in pre-production environments. They were afraid that having changes in one unified code base would break things for both groups of users. We were given no opportunity to make further arguments. Two months later I find that my motivation at work has tanked. Despite being below market rate, I’ve stayed because it’s allowed me to advance my skills as a developer.

    But my trust in our BA and management is completely shattered. Is it worth staying in my current role? Is salvaging my current situation a hopeless cause that will likely just collapse again in the future? Or would I be wise to get out ASAP before things blow up and the blame is pushed on our development team? I feel like I already know the answer in my gut, but I’d like to hear your perspectives on this.

  2. Listener Damison Jance asks,

    I sometimes find myself struggling to describe how software issues will affect product designs to non-software engineers. It is hard for me to explain “this seemly tiny change in user experience you’ve asked for is actually driven by this backend functionality that is totally transparent to users and really no one besides backend engineers has any reason to know about it, but yeah anyway that small change is going to require six months of work and changes to multiple services.” I have found this approach quite ineffective, and I think it comes off as me sounding like “my way or the highway”. I’m wondering if you guys have any tips for explaining how systems work to people who aren’t software engineers and don’t necessarily have all the context you do.

Show Notes

Microservices video (keyword: Omegastar): https://www.youtube.com/watch?v=y8OnoxKotPQ

A smiling speech bubble

Episode 379: Someone fixed my ticket and is tech debt bad for my career

Download

In this episode, Dave and Jamison answer these questions:

  1. “Hi! Love the show, long time listener.

    So an architect noticed an issue with credentials embedded into request body being logged. I had planned to resolve that, and someone already had done so for another instance.

    I took a day or two to figure out how to fix it globally, and even tied it into another filtering we did. That would mean one list of sensitive data patterns to maintain – that we already had, and don’t need to worry about which context keys to scan in. Scan them all, CPU time is free after all /s

    I opened this PR, and received no feedback for a day. Another engineer did mention an alternate approach that would resolve this particular case, but I was trying to fix it globally so we didn’t have to maintain a list of keys to scan on.

    Next day he mentioned he made some click ops change that resolved THIS PARTICULAR INSTANCE, meanwhile still not providing any feedback on the PR. This approach is IMO a maintenance burden: keep two different filtering in sync, proactively add keys to strip. High chance of mistakes slipping in over time.

    So I said OK works with some caveats, and rejected my PR. I can not explain why but this incident tilted me hard. For one thing he essentially grabbed my ticket with no communication and resolved it himself. Then he provided no feedback and went with a different approach without consulting anyone else. Worst of all, he ended up with an (IMO) markedly worse fix that I had already dismissed as being too brittle and likely to miss things in the future.

    What do? Am I unreasonable to feel undermined and disrespected?”

  2. Hi Dave and Jamison, long time listener love the show. I work on a team that is relatively small in size but we own a huge scope including multiple flavors of client-side app and a bunch of backend integrations. We recently launched our product and since then there have been constant fire due to various tech debt that we never fix. Our manager has attempted to ask the team to share the burden of solving these tech debts, but there are only very few that are actually doing it. I can think of many reason why they are not able/willing to take on the task, likely due to other priorities or unfamiliarity with the part of the codebase. Due to my familiarity with various component, I’m usually the one proposing the fix and actually fixing it. I have started to feel this is taking a toll on my own career development because I ended up not having bandwidth to work on those bigger projects/features that have high visibility and good for promotion. I do think solving the tech debt is important work and don’t mind doing them. How would you navigate this situation? Thanks for the awesome podcast!