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 514: Trust issues and underperformers and my coworker resents me for being faster

Download

In this episode, Dave and Jamison answer these questions:

  1. My parent organization has trust issues: we registered on a recent survey as one of the lowest across the bigger software org (thousands of employees).

    There are two groups: functional, trustworthy people who get stuff done, and people who are behind, stuck, or just not working. Those struggling say they need better emotional support, but there is consistent, documented evidence that they cannot keep up.

    I’m perpetually frustrated that there are only two or three people in an org of 30 who can effectively complete tasks and manage the insane workload. I am biased: those in whom I have no trust have repeatedly demonstrated that they cannot be trusted. I believe that the organization would be able to go faster without them.

    Whats the right answer here? Should I start my own company to abandon this mess? Do we cut scope super aggressively to allow underperformers to be reasonable contributors?

    One example: one of these contributors was walked through the process, given written documentation of the process, verbally confirmed an understanding of the process, and committed to starting that day. And then two days later identified they hadn’t started for those two days because they were blocked by something that was explicitly captured in the document and discussed in the recorded meeting. They do not raise this until they were asked for their progress multiple days beyond the critical start date.

  2. Hi Dave and Jamison,

    First, thank you for the podcast. As someone on the spectrum, it really helps me analyze social situations I struggle with.

    My question: I work at a software company where management is pushing the use of LLMs for coding, and my team recently started using Spec-Driven Development. SDD often requires strong upfront planning, which has quietly split my small team between developers who plan well and those who get lost in “vibe-coding” loops.

    One of those people is a close coworker I consider a friend (we hang out after work and have honest chats about everything). He’s not strong at planning, so I end up explaining each ticket to him in detail. But he’s really great in other ways: communicative, asks a lot of questions in refinement sessions that set a good example for others, does thorough handoffs with the QA team, always responsive in chat, always trying to help. He’s also one of the rare people who actually pay attention to alerts.

    Since we started using SDD, the gap in our speed and output quality has become very visible. One of our tech directors noticed and asked me to teach him planning. We spent several days drawing schemas and working through small features together, and it was clearly painful for him. The TD also had his own sessions with him, but eventually gave up because my friend seemed so discouraged, and the TD decided to “stop the torture” and leave him alone. The hard part is that after all these teaching sessions, he actually seems even slower than before and also more discouraged and down.

    Since then, our friendship has changed. He stopped talking to me outside work, and I think he now feels jealous or bothered by the difference in our performance. I’m okay with continuing to explain tickets and outlining detailed execution plans for him, but I worry that I’m keeping him in his comfort zone and not really helping his career. And I also miss how things used to be between us 💔

    What should I do?

    P.S. I’m not an LLM fan or enthusiast, I take a practical approach to using them. But I hate how they’re taking jobs away from devs who really love coding but are weak at planning or not interested in it. It doesn’t feel fair.

A smiling speech bubble

Episode 513: Forgotten employee and what skills actually matter in the AI world

Download

In this episode, Dave and Jamison answer these questions:

  1. How long until I am ethically obligated to let my company know I’m doing no work? There was a big re-org at the company I recently joined. It’s a huge financial company, so there’s a lot of bureaucracy. Somehow in this mess I was kicked off the first team I joined so that I was pending re-assignment. It’s been a month and I haven’t been re-assigned. Instead of being in between jobs not working, I am currently in between teams, but still getting paid! This feels unintentional on the part of the company as no one has followed up with me. I’ve been happily using the time to catch up on hobbies, but I’m starting to get concerned about what will happen when the other shoe drops. At what point do I start to venture into irreversible reputational harm? For some added context, teams at this company are about 6 people and the manager handles several teams, so I’ve never talked to my manager since I joined. I got the message about the re-org from a screenshot of an email that my scrum master shared in my last stand-up.

  2. AI changes how software is build. Actual coding is mostly done by LLMs now (I hate it, but it is what it is). What do you think should I focus on learning now to not become obsolete in 1-2 years? I am a senior dev with 13yoe, and loved coding, but now I find it hard what my role will be in the next years (still have 30+ before retirement). I do not want to go to the EM track, at least not in the near future. So is it more architecture knowledge, security, AI internals, …? What do you think?

A smiling speech bubble

Episode 512: Can non-engineers really contribute code with AI and not sharing

Download

In this episode, Dave and Jamison answer these questions:

  1. Should I declare my struggle with this AI world we live in here? Nah. I mean, I’d like the hype to die down, a lot, but we keep getting new tools and I get to experiment, so here we are.

    My real struggle, and this podcast is implicated in it, is around non-technical people contributing to production systems. Why are we so obsessed with this idea?

    COBOL tried it. Low-code and no-code tried it. BDD and Gherkin aspire to it. Yet time and again the field demonstrates that you need people who know their stuff.

    To “democratize” software engineering implies that all people have the desire and ability to become software engineers. That premise is false. You democratize access to education or financial systems, the stock market say. You don’t democratize skill. Skills are earned. We would never, I hope, democratize bridge engineering or piloting an aircraft. Software engineers are just as critical as either. When our software breaks, money goes missing, electrical grids fail, information stops flowing.

    What I do think is great: now more than ever, as long as tokens stay cheap, people have more ability to build useful tools for themselves. But here is how I think about it. We have done tremendous work on literacy, and most people can read, but not everyone is an author. The same applies to code.

  2. anon e mouse asks,

    Should I share my tools?

    I keep building small local software tools to better test and debug the application I’m working on. The problem is that whenever I go “above and beyond” the assigned and expected work and try and responsible check it into version control and share it with the rest of the team, it gets bogged down in code reviews because it doesn’t meet the team lead’s vision because it wasn’t part of the vision! Once I go through that process though, it’s mostly appreciated, but the team lead is under a lot of business pressure and often mentions that we need to focus.

    Maybe I’m not focused enough, but many of these little tools are things that making verification and delivery much smoother! Like local testing utilities to verify and sample api endpoints that otherwise could only be called after prod deployments due to a lack of test data. Our partners like when we’re able to show the output before deployment, and the rest of the team usually struggles with that.

    I feel a pressure to hide my tools, but then I feel sloppy for having a bunch of useful tools outside of version control. These are things like formatting output, running experiments, testing data for variations. Am I unfocused or just bad at articulating the value of these tools?