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 355: Driving kids instead of team and jk i quit

Download

In this episode, Dave and Jamison answer these questions:

  1. My architect is too busy with his kids! His kids have had a lot of school and medical issues over the last few months and he’s ended up flexing a lot to take care of them. This causes meetings to get rescheduled or scheduled far out in the future, which is contributing to timeline delays on some large projects that need more attention.

    I don’t want to be rude and insist that he put the company above his family, but he needs to be driving organizational alignment, not his kids! I’m stressed out by not knowing when he’ll be available and having to do extra work or take important meetings without having him as backup!

  2. Can you help me understand what happened here? I was put on a ‘performance improvement plan,’ and it became pretty clear to me from the negative feedback at my first review that I simply didn’t have the skill to perform at the level that was being asked for. Instead of immediately looking for a new position, I decided to take some personal time off to work on myself and my mental health, and to use the remainder of the performance improvement plan time to prepare myself emotionally and financially for that. I didn’t blow off work, but I also wasn’t invested in the performance improvement plan either. A few days before my final review, I quit instead of being terminated. Management seemed really confused and angry when I quit. Why would they be so upset if they were about to terminate me anyway? One in particular started backtracking and pretending like I wasn’t going to be terminated.

A smiling speech bubble

Episode 354: Good at circuits, bad at git and ghosts of team members past

Download

In this episode, Dave and Jamison answer these questions:

  1. I work at a startup that makes embedded devices and the software that runs on them. Everyone on the tech team does both. We recently hired someone to lead the tech team to give the CTO more time for other duties. My new boss is incredibly experienced with hardware design and embedded systems and has been in the industry for a long time (40+ years). However, they are not familiar with modern software practices like version control. They will frequently ask us to do things like delete all copies of a broken version of software. When we try to explain how git works they will ask us to make a new repo with the now working version of the software even if the fix was a 1 line change. How can I politely explain that they just don’t understand how this works and correct them without being rude?

  2. What’s a “normal” rate of performance firings on a team/engineering department? I recently got a new job at a growing startup, and it’s fairly uncomfortable seeing the ghosts, on messaging apps and docs, of like 6 people in the ~25-person department who’ve been fired in the last half year. With that said, the department is continuing to hire, so I don’t think this necessarily means I should be worried. But does that sound like an unusual amount of performance-based firings?

A smiling speech bubble

Episode 353: Easter outage and unethical things

Download

In this episode, Dave and Jamison answer these questions:

  1. I work for a startup with a distributed team. Recently one of our clients experienced a production outage. As a small startup, we do not have an on-call rotation, and teams usually resolve issues during business hours. However, during this particular incident, most of my colleagues were on annual leave due to an Easter break, leaving only 10 out of 70 engineers available to assist. Although none of these 10 engineers were part of the team responsible for the outage, I was familiar with their codebase and knew how to fix the problem. Additionally, I had admin access to our source control system which allowed me to merge the changes required to resolve the issue. This was the first time I had done this, but my changes were successful and the problem was resolved.

    Now that the break is over, the team responsible for the codebase is blaming me for breaking the process that requires each pull request to have at least one approval and for making changes to “their” codebase without their approval. They want to revoke admin access from everyone as a result. However, I disagree with their assessment. While it is true that I made changes to a codebase that was not directly under my responsibility, I was the only engineer available who could resolve the issue at the time. I believe that helping our clients should be the priority, even if it means bending the rules occasionally.

    Did I make a mistake by making changes to a codebase that was owned by another team without their approval? Should I have refrained from getting involved in the issue and adopted a “not my problem” attitude since the responsible team was not available?

    Thanks and I hope I’m not getting fired for helping a paying client!

  2. J Dot Dev asks,

    What’s the worst thing you’ve had to do as a software engineer with direction from your employer?

    Years ago at a webdev shop we had a client who didn’t want to pay for e-commerce set up.

    My boss’ solution was to implement a form that included name, address, and credit card information fields that we would read on form submission and then email all of that information to our client in plain text.

    “Is that really ok?” I asked my boss. “Why wouldn’t it be?” “Isn’t that insecure?” “Only if they have her password. Just make it work so we can be done with them.”

    To top it off, they also had me email the information to myself just in case the email didn’t go through to the client or in case they accidentally deleted it, so I’d have all of this information just hitting my inbox.