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 125: Brainstorming sessions and Slack Ettiquette

Download

In this episode, Dave and Jamison answer these questions:

  1. Hey guys! Do you have any tips for making ““brain storming sessions”” more bearable?

    In my experience, I’ve found that it’s very hard to keep this type of meeting productive. I don’t think this is necessarily anyone’s fault, and I love the idea of making sure all sorts of folks have a path to contribute, but many times when I’ve seen these types of meetings organized, many participants don’t have enough context, or subject matter expertise to produce genuinely helpful ideas.

    I think it’s really powerful when cross-discipline teams collaborate well on a project or feature, so I guess I’m wondering if there are practical ways to generate the culture of trust and mutual respect that is needed for this to actually work.

  2. First time question asker, long time listener here. We have a Really Important Problem at work: in Slack, people tend to use @channel instead of @here. What are some strategies for educating everyone that they should be using @here and not @channel? I especially don’t want anyone to feel shamed or called-out in the moment. Thanks!

A smiling speech bubble

Episode 124: Pair Programming Pain and Side Hustle CEO

Download

In this episode, Dave and Jamison answer these questions:

  1. I joined a new team that has a different way of working, which has exposed a lot of my shortcomings.

    On my previous team, collaboration was limited to discussions around architecture and strategy; after reaching consensus, we’d implement the components independently. I was very comfortable with this because I don’t have good intuition for how to interact with others.

    On the new team, we pair-program. Teammates have pointed out mistakes I’ve made while pairing, such as trying to control the mouse when they are in the middle of doing something or investigating something on my own computer without communicating what I’m doing. On this team, we are also expected to be much more engaged in group decision-making. As a result, I’ve made tons of mistakes in how or when I pose questions. Each time I make a mistake, it increases my self-loathing. I tried telling myself that I didn’t have bad intent when I made the mistake and the only way to grow is to make mistakes. I also told myself that this self-loathing doesn’t do anything for the team. I also do a personal post-mortem on each of my mistakes because I thought that would help me move on. These approaches didn’t work and my confidence has dropped substantially. I know it’s essential for me to learn how to work effectively with others instead of staying in my comfort zone of heads-down coding. Do you have suggestions for how to get through this learning process without letting it affect my self esteem and motivation?

  2. Hey Soft Skills Engineering,

    Love the podcast! You’ve helped me understand so much about the software engineering career field that I probably would have otherwise learned the hard way.

    I’ve been working at my current job for almost 4 years. The pay is very much below market (it’s a non-profit), the work is too easy, I can finish any task in a couple of hours, but we are given an automatic 1 week+ deadline to finish anything, and I’m much more technical than any of my co-workers, to the point where I can’t even have nerdy conversations with anyone at work.

    However, I’ve stuck around because the job is pretty much stress-free, I don’t have to think about work at all outside of work hours, and all the free time allows me to take on side-projects and learn new technologies, including every level of software development.

    With all this free time, I’ve started a company. In the last few months, I’ve managed developers, designed a system using blockchain tech, designed and implemented a database, learned the ins and outs of AWS management and server-less development, built a REST API from scratch, developed a full front-end in React/Redux, and learned a ton of other things.

    Since I’m in the prototype phase, my startup hasn’t gotten any revenue, and I’m aware it might take awhile to get any revenue if it ever does. I need to pay bills, and I need to start thinking about my financial stability. So I think it’s time to get a new job, even if it means not having as much freedom to work on the startup.

    I’m not sure on how to approach my next step. I want to continue working on the startup after I get a new job, but I’m aware that employers might not be fond of “CEO” on my resume when there’s no end-date on the position, because I might leave at any time if my company grows. If I don’t put anything about my company on my resume, then it seems like I have nothing to show for all the technical skills I claim I have (since all the learning, management and implementation has all been for my company).

    Do I put anything about the startup I’m working on in my resume? If not, then how would I showcase all the experience and skills I’ve gained by beginning this startup? Should I just keep getting by paycheck to paycheck while I build the company?

    Thanks

A smiling speech bubble

Episode 123: Salary Promise Fail and Slacker Coworkers

Download

In this episode, Dave and Jamison answer these questions:

  1. Great podcast! Love what you guys are doing and very happy that you are doing this for such a long time! Here’s the question.

    I started to work in a Startup a year ago. When we were negotiating the salary we agreed on amount X, and CTO promised that after a year it will be increased. He did say the exact sum. So, the year has passed, I followed up CTO about the salary raise, and he delegated the task to the manager, who decided not to give me a raise. When I asked ‘why?’ he said that I am good at negotiating my salary and I’m getting what the market is offering. I don’t feel bad about not getting more money, but the fact that the CTO break his word concerns me. I don’t think I can trust this company when they are promising anything and I started to care less about what I’m doing here. Am I delusional that a programmers salary has to increase even by 2% on a yearly basis and how to find a way to trust company in the future? Or just drop this and take the default SSE case - look for another job?

    Thank you for your answer.

  2. Hi Dave and Jamison, Absolutely love the show.

    I share an office with a peer who works on my team. We are both early in our career and are lucky to work under a very hands off manager. However, I feel my peer is taking advantage of the situation and is slacking off. He is rarely in his office and often states that he is ““working”” from home. When he graces us with his appearance in the office, he asks the most basic questions. Granted, those questions are internal and specific (not easily Google-able), but still, I feel he should have known the answers after a year on the job.

    He intentionally exploits our monolith’s slow builds by running full builds all the time and complain that it is slow. Then plays video games in the office until the build is complete (about 4 hours). Then makes a minor change in his feature code and kicks off a full build again, even though he could build incrementally (about 2-3 minutes).

    What do you recommend me to do? Should I spend time and energy to answer his lifeless questions? Should I confront him?