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 413: Is my interview candidate cheating and my product owner is getting WRECKED by the client

Download

In this episode, Dave and Jamison answer these questions:

  1. This is my first time conducting technical interviews (most of which have been virtual), and I had one interview where I had a strong feeling that the candidate was cheating. They breezed through the short problems I gave them, and they were able to explain their reasoning. But during the live coding problem, they sat in silence for five minutes, and when I asked them what they were thinking, they didn’t respond. Then they started cranking out perfect code without explaining anything.

    How do you address cheating in interviews? What if it turns out to be just nerves? I don’t want to assume anything, but I also wouldn’t feel comfortable confronting them about it either.

  2. I work as a team lead for a small group of 4 other devs. Our Product Owner is currently handling the requirements for new features to onboard a new large client. This involves them attending client meetings and generally isolating the development team from client shenanigans which is normally great, but it’s becoming INCREASINGLY obvious that someone on the client team has his number and he’s getting HORRIBLY out-negotiated. This has resulted in a bunch of missing requirements, changing requirements, last minute feature adds, and general confusion. I’m trying to push back, but the leadership team is coming back with “Well we promised…” and my entire team is stressing out. Note that this is AFTER we were already pressured to overcommit on capacity to get these “absolutely necessary” features developed for the client to go live.

    I like my PO, he’s a good guy and normally does good work, what can I do to help him stop from getting his butt kicked in these meetings?

    (Note: the POs are neither above nor below us in the org tree, our closest shared higher-up is the VP and I obviously don’t want to escalate it that far)

A smiling speech bubble

Episode 412: Work-life-team balance and getting code-sniped

Download

In this episode, Dave and Jamison answer these questions:

  1. Dear Skillet HQ,

    How would you negotiate a difference in work-life balance between teams?

    I love my job and my immediate team. We’re a tech group within a larger non-tech business, and it’s a fun problem domain.

    Our immediate team has some hard-won work-life balance, in part because it would be hard to hire anyone for the role if that balance wasn’t part of the equation. However, I worry about how to communicate differences when anyone we work with - all the people we’re building software for! - have an unbalanced schedule, because, 👋that’s show-biz 👋

    I even understand why other people have their role set up that way and respect it, but I don’t want to give up my balance either.

    How can I best handle the relationship when that difference is there?

    Love the podcast and the skillet-slack! Thanks for the advice, empathy and good humor.

    Tex Archana

  2. Listener Frustrated asks,

    My work keeps getting stolen in the name of code quality!

    I’m a new backend developer for a team at a large company. I’ve been with this team for almost 3 months now, and the company for over a year. We’re developing an application to replace a legacy system, and the current feature has fairly well described user requirements. The front end developers keep finding new implementation issues that require more backend development, so new tasks get added during the sprint. The longest tenure developer (LTD) on the team keeps finding better ways to implement these backend changes, but these ‘better’ ways sometimes don’t meet the newly discovered frontend needs, leading to longer development times. Additionally, the longest tenure developer often takes over the implementation work from me, which is frustrating! The longest tenure developer also sometimes becomes too busy to deliver everything in a timely manner!!

    Additionally, the state of software development maturity is very low, so I’m trying to advocate for more technical process improvements like CICD and using version control more than once per sprint! I am frustrated and finding it hard to keep up motivation when everything is such a mess, and the other devs defer to the longest tenure dev who pushes back on many of these things.

    My code quality is fine, but I haven’t yet learned enough about our application to be able to identify these larger, cleaner approaches. Every code review so far has had no issues with my code quality, but inspires the longest tenure dev to implement a simpler solution, and they often will take my tickets and repurpose them for the new work! I’m worried that if anyone looks at productivity metrics they’ll not look good for me, and it’s hard to say what I’ve accomplished so far.

    Is my frustration valid? Should I quit my job?

A smiling speech bubble

Episode 411: We have a secret org chart and I'm a big fish in a little pond

Download

In this episode, Dave and Jamison answer these questions:

  1. Hi :-)

    I work as a Senior Data Scientist, and about half a year ago I joined a start up that was founded by a large corporation. And while this job comes with the perks of a bigger company - like good salary, paid overtime, … , - it also comes with its organizational overhead and politics:

    We are only about 30 people but already a quarter of us acts as managers. I write “act” because the official org chart is flat (with the CEO at the top and the rest of us directly underneath). The unofficial org chart is hidden and depending on who you speak with, you get their view point on how roles and responsibilities should look like. As a result, I’m left with putting together the pieces to build a picture that somewhat resembles the truth. So far, I’ve concluded that we have multiple (!) management layers, that there’s a power war taking place in the middle management layer, and that you can make up your own titles that mean NOTHING, because no one has any official, disciplinary authority over any one, but that are still to be respected! What a great opportunity for job crafting :-D

    To make things worse, I prefer and come from organizations that have a truly flat hierarchy. For example, I’m used to step outside of my role should the situation require it (like doing some managerial tasks, supporting sales, …) and that I can speak my mind, irrespective of what the title of the person is who I’m talking to. While this was beneficial in my previous positions, this does not work well here! And while I understand that adapting my behavior would be more in line with the company culture, I find this extremely difficult. On the one hand, because of the hidden org chart, on the other because we are all fully remote and I rarely see people from other teams.

    To avoid accidentally stepping on anyone’s toes, my current solution is to stick my head in the sand and focus on my coding. However, this leaves me disgruntled because I feel like I’m not being myself, and that I’m withholding a viable part of my skill set: to see the bigger picture and serve the company as a whole instead of just implementing tickets.

    Please help, I do not understand how this company works :’-D How would you navigate the situation? I don’t want to quit because, individually, my coworkers are super nice, and the work is really interesting.

    All the best <3

  2. Hi,

    I’ve been working at a well-known multinational company for a few years now. The entire time I’ve been here, the company has been well behind what I believe to be industry standards, but they have some great perks, which means it’s been really easy for me to create “wow” ideas (just do the same thing that everybody else has been doing for a few years).

    At the risk of sounding full of myself, I’ve noticed that I’ve created a critical person risk. There’s not only no push for me to train others in my work; things I thought were standard knowledge is entirely new to this team! I don’t want to become the trainer for a team that has no desire to learn new skills, and I don’t want to dumb down my work either. Is there a happy medium where I can build exciting new things and not create an absolute craphow when I leave? Should I even care about it since no one else does?

Show Notes