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 407: I'm too territorial and should I quiet quit?

Download

In this episode, Dave and Jamison answer these questions:

  1. I am a data scientist and have been at my company for 2 years. Each of the data scientists on my team specialize in a different area of the business (growth, marketing, etc). I have developed a reputation for being the expert in my area and have worked really hard to understand my domain.

    I have a new data science team member who works in an adjacent area and has expressed interest in learning more about “my” area. But every time I talk to him I find myself getting defensive and possessive (on the inside). I don’t want to share my area, and I like being known as the expert, and I don’t want him working on stuff in my domain. Any advice on how to be less territorial here?

  2. Should I quiet quit?

    I’m a year in to a new job, and am doing well. I work for a large consulting company, and have been doing a decent amount of unpaid overtime by volunteering for internal projects that we can’t bill to our clients! The extra 5-10 hours a week have been adding up, and I feel overwhelmed. I don’t think the extra work is as appreciated as it should be. I’ve received lots of positive feedback, and my performance reviews have been fine.

    Am I getting taken advantage of?

    Will people notice if I step back and just do the bare minimum expected for my job?

    I like being useful, and do genuinely enjoy some of the projects I’ve volunteered for. They’ve probably also been good for my internal visibility, as I’ve gotten to have my name on some large internal announcements and have had some good face time with very senior people. If I end up sticking around here, it’ll probably be good, and I wouldn’t mind a promotion.

    But I’m exhausted, and it’s starting to get in the way of my personal life, hobbies, and even client work sometimes. I’m also wondering if that time would be better spent on upskilling or open source or something outside the company. How far can I cut back without repercussions?

A smiling speech bubble

Episode 406: Acquired taste and limited mentorship

Download

In this episode, Dave and Jamison answer these questions:

  1. Listener Brad asks,

    I am currently a Senior Engineer with a small software company. I have been developing software for more than 20 years. We were recently acquired by another mid sized company. Since the acquisition, things have been going downhill. It feels like they’re trying to nickel and dime their employees to death.

    They moved from a bi-monthly to bi- weekly pay, from accrued PTO to Flex PTO, they sat on merit raises for over 2 months , and have paused all promotions unless you are getting a promotion to management. We have a number of engineers who are deserving, but broaching the subject with HR results in excuses, pushback or silence.

    I have about a year and a half to be in a position to retire but I love what I do and plan to continue for many more years in the right environment. I’m really on the fence as to whether I quit for a new role or hope that they somehow become more efficient. I’ve been doing this long enough to know they will probably not change. So would you quit?

  2. Hello Dave and Jamison,

    My name is Angelo, and I’m writing to you from Italy. I’ve been enjoying your podcast for quite some time.

    I’m reaching out because I’ve been working for four years at a small company with 11 people in the cultural heritage sector. Although the company produces software, there are only 2 programmers (myself included), while the rest are roles like graphic designers, art historians, and archaeologists.

    It’s a rather unique company in its field, and for that reason, I’m happy to work there, also because I have many responsibilities related to the company’s performance, probably more than I would have in a multinational corporation.

    However, there’s a catch. The fact that there are only two programmers, and in this case, I am the more experienced one, often makes me feel that I don’t have the opportunity to interact with more experienced individuals, and this might hinder my growth as a professional as opposed to being in a team with more programmers.

    My question is: what can I do to compensate for the lack of work interactions with other developers and to keep myself updated?

    I’ve always read that the best growth happens in a company where you’re surrounded by more experienced people, but in this particular case, I find myself in the opposite situation.

    I participate in Telegram groups and often read software development books to stay updated, but it’s also true that the hours outside of work are meant for rest and leisure, so they only go so far. How can I keep pace with those working in larger teams on bigger projects? I don’t intend to change companies at the moment.

    Warm regards from Italy, Sinhuè

A smiling speech bubble

Episode 405: Scaled agile pain and top-heavy team

Download

In this episode, Dave and Jamison answer these questions:

  1. One and a half year ago, I joined my current team as a tech lead, in an organisation that uses ‘Scaled Agile’. This was my first time joining an organisation that employed dedicated Scrum masters. In previous organisations, the role of Scrum master would usually fall upon a team member that felt comfortable doing so, and the last couple of years that ended up being me. I feel this worked out well and I managed to create teams that were communicating well and constantly iterating and improving.

    Upon joining the team, I noticed that despite having a dedicated Scrum master, the team was not doing sprint reviews or retrospectives, and it felt like every team member was on an island of their own. In the months that followed I tried to reinstate these and improve teamwork and communication, but often felt blocked by the Scrum master’s inertia.

    Eventually, they were let go and a new Scrum master was hired. This new collaboration did also not work out. They didn’t have enough of a technical background to engage with impediments, were trying to micromanage team members during Standups, and would continually try to skip or shorten retrospectives. If retrospectives were to occur at my insistence, they would try to determine actions without the team’s input, only to not do them and never look back at the outcome.

    Two months ago the new Scrum master was let go and I was asked to take over their duties in the meantime. Ever since, it feels like the team finally owns their own Scrum process. Our collaboration is not perfect, but we’re finally tracking measurements, evaluating retrospective actions, and iterating as a team. However, the organisation wants us to go back to having a dedicated Scrum master. I’m not against this, but I’m afraid the next Scrum master might undo our efforts. How do we as a team navigate this situation to get an optimal outcome?

  2. A listener named Max asks,

    I’ve been working in a Data Engineering department at a mid-size product company for over 5 years. When I joined, we had a well-balanced team in terms of average proficiency - some juniors, some middles, and a few seniors. Over these years, we’ve developed a great internal culture where people can grow to a senior level pretty easily. The company itself is wonderful to work for, and we have a pretty low “churn rate” - most of my colleagues are highly motivated and don’t want to leave.

    As a result, we now have only senior and staff engineers in the team. This is well-deserved - they all are great professionals, highly productive, and invaluable for the company, having domain knowledge and understanding of how all our systems work. Management wants them to take on only senior-plus-level tasks, which are usually larger projects and initiatives that involve a lot of collaboration with other departments, process changes or technical initiatives affecting our engineering practices. They have two reasons for this: 1) management doesn’t want to waste the time of such skilled professionals on smaller tasks; 2) management cares a lot about people’s morale, because losing them would be very harmful for the whole company, so they don’t want people to take on small and boring tasks.

    At the same time, we have a HUGE backlog of tech debt, small improvements and refactoring initiatives. Ideally, we would hire 3-4 additional middle and junior engineers to share all backlogs with them, but we now have a hiring freeze. The amount of tech debt is starting to damage team morale on its own, and I feel like we have an unspoken deadline to deal with this problem, which could be someone’s burnout and departure, or a major outage in some vital services we support caused by ignoring tech debt.

    How would you approach the problem of overseniority? I appreciate any advice, and thanks again for the show.