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 507: I got fired unexpectedly and breadth and depth

Download

In this episode, Dave and Jamison answer these questions:

  1. Hey there, I started a new job in August at a large European retailer. There were ups & downs, but long story short, my weekly one-on-ones with my manager was either positive or neutral. This was my second job after graduating, so the firm factored in, I’d like to think, when setting expectations this was my first time switching codebases and tech stacks.

    On January 3rd, I was fired in the last month of my 6 month probation. This was a total surprise. My tech lead told me I required too much assistance from others to finish my tasks.

    Some part of me doubted the sincerity of my boss, since I asked for example pull requests or tickets where this was the case and he was unable to provide a single example, but obviously, like every dev, technical insecurities are a big part of my life.

    I’ll be starting a new job at a prestigious newspaper in May, so here’s my question. In a remote first environment, how do I determine if I’m meeting expectations? How do I gauge my standing in my team? How do I avoid a repeat? How do I effectively integrate myself into a codebase?

    Disclaimer: At the end of January, everyone in my department was hauled into a meeting and was told the retailer hired 11 external, Portuguese developers to ‘finish the job’ since management wasn’t happy with the output of the 9 internal developers (aka nearshoring) and no internal would get a pay increase this year. My tech’s boss was also fired/forced out/quit before he could be fired.

  2. Trevor asks,

    How do I balance depth with breadth? At my current job, I am moved around projects/code bases all the time and I am exposed to a variety of technologies and subareas. That’s cool but I feel like I only manage to face the consequences of our choices for a couple months until I am moved again. I think I need more time to really become an expert in any one area. At the same time, I dread getting stuck in maintenance work. It seems like most people around me (at my company or outside) find it boring and soul-sucking, and are only excited about major projects from scratch. Does a job that has a good balance of both exist and if so, how do I find it?

A smiling speech bubble

Episode 506: I hate my job with AI and my team-mate thinks I suck

Download

In this episode, Dave and Jamison answer these questions:

  1. Hi Djavison,

    I’ve heard y’all say something along the lines of “this is the most exciting time to build software” in a few recent episodes.

    I’m glad that has been your experience and seems to be the experience of many others.

    But for me as someone 5 years into the career who is, thankfully, employed—I can’t help mourning a job that no longer exists. Obviously, there are still lots of us with the job title “software engineer” that create software. But, what I originally fell in love with doesn’t really seem like a thing you can get paid to do anymore.

    I now spend most of my development time reviewing code and making sure things work. Which feels way less rewarding and way more soul-sucking.

    Maybe I’m just nostalgic for being a more junior developer, but it’s obvious that our jobs have changed forever and will continue to evolve.

    So, my question is: How can I get excited and feel passionate about this new way of doing things?

  2. I am a senior team lead with 10+ years of experience. This is the first time I’ve had a team mate that clearly disrespects me.

    I have a Middle+ teammate who is technically perfectionistic and openly says I’m doing a poor job and that basically he doesn’t see me as an authority. He says I am not as devoted to technical excellency and improving the project as he is, and that I ignore his opinions, which is his term for not having the same opinion about tech stuff as he does.

    He doesn’t see the big picture and thinks he’s the only person on the team trying to make the code better. But the worst part is he never admits he’s wrong. I had to scramble to fix a bug he created when we caught it right before release, and he accused ME of introducing it!

    My manager know what’s going on, but I feel terrible about it. I have many different projects and responsibilities. I can not be as devoted to the codebase as he wants. Plus, I am not the architect and nor should I be. I see that it demotivates him (like the person in the 499th episode), only in this question I am the senior.

    I know my weaknesses and I am working on them, I don’t think I can address his feedback. More than that, I’ve always tried to maintain a good relationship with him and always gave him the freedom to work on tech stuff and develop his skills. But what to do when your child has grown and is now unthankful? 😂

    Thanks for your advice!

A smiling speech bubble

Episode 505: Called to the principal's office and my team leads are super dogmatic

Download

In this episode, Dave and Jamison answer these questions:

  1. I’m a senior software engineer at a remote company (~500–700 people), and over the last year a new HR org replaced our old people team. They’ve spent six months building a new goals/leveling framework. During a public meeting I asked in slack: “We’ve had goals before and then stopped using them. How will these be different?” Nobody answered directly.

    The next day I was pulled into a meeting. The new VP of HR had screenshotted my question and sent it up my management chain. My manager told me they were on my side but leadership didn’t appreciate it. Days later I was pulled in again and told the problem was my “tone.” I didn’t argue because we were at an impasse. It felt like tone policing and like being sent to the principal’s office. I didn’t feel like they were treating me like an adult. In yet another 1:1, my manager said leadership wanted it raised again and that they don’t want questions like that in public. I told him the meeting should’ve been an email and that would’ve avoided this problem.

    Is this normal? What should I do? It’s upsetting enough that every time this gets brought up, it wrecks the rest of my workday. I’ve already been passively job searching for about three years because of broader issues, and now I feel like leadership might be pushing me out. This also follows being labeled a “dissident” by our product director after I raised roadmap concerns in another all-hands. Most of the leaders involved are newer (2 years or less), while I’ve been here 4+ years, so I’m wondering if the culture is changing right in front of me. Thanks for the show! Y’all have helped my career a lot.

  2. Hi Softskillets! Love the show, thanks for making me laugh every walk break I take!

    I’m in an org where the Frontend Platform Team has adopted a fairly rigid rule—forcing all domain logic into pure functions—to prevent “bad code.” I see value in for the big picture, but the rule is enforced at every level, even within my own team modules. It feels incredibly unnatural and cumbersome. I see our team is often leaking logic into our UI layer to avoid boilerplate that usually come “out of the box.” (in this React(ive) framework).

    I’ve tried to address this a few times, but I always get shut down with “theoretically correct” answers that don’t actually acknowledge the pain we feel on the ground. Most of the feature engineers have tried to bring this up, felt unheard, and eventually just stopped trying.

    Recently, I used AI to help me synthesize these conversations and better understand the bottleneck. I wrote a long markdown file to validate with my teammates if they felt the same. The Platform Team got wind of it, and I shared it. This triggered a lot of frustration (understandably they felt it was AI slop sent their way).

    I eventually got a meeting with one of the platform engineers. I tried to stay focused purely on the problems, knowing my solution (allowing state management in the domain layer) would be pushed away. The meeting went poorly. I didn’t feel like the weight of our frustration was understood, and when I mentioned potentially allowing some optionality for senior engineers, I was literally laughed at.

    It feels like this rule is now followed like a religion. How do I rebuild this relationship and actually be taken seriously? How can I change a culture where the “builders” feel like the “gatekeepers” are limiting them instead of helping them?