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 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

A smiling speech bubble

Episode 410: Guaranteed cost-of-living raises and my manager doesn't like me

Download

In this episode, Dave and Jamison answer these questions:

  1. Hi Soft Skills!

    I’m writing to you as I look forlornly at my paycheck, unchanged for the last year and a half, and wonder if I’ll ever see market rate again. While I prepare my leetcoding skills for the trek that is your classic Soft Skills Adventure (quitting), I think about future interviews and wonder: how common is it to have something like a COLA clause in your employment agreement? Something like “Oliver will receive a raise of no less than the current CPI% per year”. Are there other ways to mitigate this, other than joining a company with more people and less greed? I don’t think I should have to beg for COLA-s with good reviews in hand. In fact I think those reviews call for raises!

    Thanks for bringing more joy to my life :),

    Mr Twist

    P.S. I am grateful I’m not paid in porridge and any reference to Oliver Twist isn’t to suggest Tech Salaries aren’t livable wages.

  2. Mr. Peanut Butter asks,

    I’m a senior IC at a small startup and I’m struggling to get along with an engineering manager. M has a say in my promotion and has already said no once, which was pretty painful considering the time and energy I’d spent helping their team succeed. I think there are two headwinds to M changing their mind 1) I’m FE-focused, and M’s conception of FE work is dated and simplistic. 2) M can be a bit of a blowhard. Said generously: M is a top-down thinker, quick to make conclusions, process-focused, and loves discussing architecture and design patterns. In contrast, I’m a bottoms-up thinker, pragmatic, plain-spoken, slow to make conclusions. M and I meet regularly to discuss cross-team matters, and it is my least favorite meeting of the week, even weeks that include dentist appointments. M sometimes devolves into lecturing me about software fundamentals (which I know at least a well as they do). I know from experience that there’s an M at nearly every company, so I’m reluctant to order up an SSE Special. How do I leverage this dreaded weekly meeting to turn M from a detractor to a promoter?