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 234: Job hopping and untenable counter-offers

Download

In this episode, Dave and Jamison answer these questions:

Questions

  1. How can I stay at a job for a long period of time?

    I’m on my second job after graduating and as I’m approaching my first year at this company I’m already thinking of moving somewhere else. A similar thing happened at my previous job where I stayed for around 15 months.

    I feel that by switching companies so often I’m hurting both my personal development and future employability. At the same time the easiest way to get a better role or a raise is to switch jobs.

    What should I do? Have I just not been lucky enough to find a company that offers better career progression which would give me a reason to stay? Is the problem with me? How did you deal with this in your own careers? How about when you’re making hiring decisions - are you wary of hiring frequent job switchers?

    Great podcast btw, keep it up

  2. Is firing the new counteroffer?

    A junior dev on my team confronted us with an offer he got from another company. He is already paid at the limit of his range, his upcoming performance review is “not great, not horrible”. The amount offered to him would put him in our lower senior range and there is no justification for that at all.

    He made it clear he is in a complicated financial situation (got his bank account emptied and credits maxed out).

    I don’t see a path to him getting close to the salary he got offered in the next year or even longer. We are not a company that fires people if they do not grow at a certain rate, but given his situation he is probably not going to stick around for long.

    He also made it clear he would like to stay if not for the salary, but now I am thinking it might be the best for the company to fire him, maybe even for him. Is that cruel, which other options am I missing?

    Given your eternal backlog of questions your advice is probably coming late, I would still be interested in it.

    Thanks for all the other advice, it’s both entertaining and very helpful.

    Best from Colombia

A smiling speech bubble

Episode 233: Manual unit testing and WFH demotivation

Download

In this episode, Dave and Jamison answer these questions:

Questions

  1. My (very large) company has an alternative definition of “unit testing”. Unit testing at this company refers to when a developer manually tests their code in whatever interface the code is associated with after they write it. An example usage would be a standup status update such as “I finished writing the code for ticket x I am just doing unit testing to make sure my code works”. My concern is that there is very little real unit testing at this company and the I think the misuse of this term makes it harder for real unit testing to become more prevalent. Is this worth speaking up about?

  2. Feeling Isolated and demotivated while working from home. With COVID 19 pandemic we have been working from for more than six months and looks like it will be another six months at least before we get back to work. We are already a geographically distributed team and with work from home the interactions within team have become harder. We do have once week team meeting but there are more than 20 people and it is usually a tech talk. Sometimes I go days without interacting with the team outside of slack/email. I have realized this tends to make me more distracted or demotivated. Interacting with team members and seniors within team gives big picture information, ongoing projects etc. that helps keep me motivated. I have tried proposing virtual happy hours or even meetings within small groups who working closely once a week or so. Understandably not everyone is enthused about virtual happy hours. Do you guys have any other suggestions?

Show Notes

https://www.martinfowler.com/bliki/UnitTest.html

https://www.amazon.com/Art-Gathering-How-Meet-Matters/dp/1594634920

https://threadreaderapp.com/thread/1304143989939949568.html

A smiling speech bubble

Episode 232: "Junior" developer and NDA'd

Download

In this episode, Dave and Jamison answer these questions:

Questions

  1. First I want to say thank you and I really love the show and all your helpful advice. I think it has made be become a better developer.

    I am a current junior in high school and the lead developer (intern) of the small non profit with approximately 10 college and graduate interns on it. School has recently started to push me away from the project (not enough time in the day) but I still want to be a source of help. I wrote a very significant portion of the code for the current application, however the founder wanted this to be shipped as quickly as possible and this led in a sense to a bit of a cobbled together mess of microservices and no documentation. My main problem is that although I feel I have the technical skills to lead the team, I really do not have much experience in terms of team management, especially in the case of leading a development team. During the main development of the application, it mainly consisted of me and this other developer writing the code. However now that they are gone, I am the only person (along with someone else who kind of has an understanding) with knowledge and familiarity of the code base. Sorry this is long, but I guess what I am asking is how can I (i) create a team structure that will not only prepare interns for real world development as well as making sure that the application remains after I move on and (ii) help build processes and structure that will allow people to meaningfully contribute to the code base.

    Also, just for more information, I have not yet added unit tests or code reviews. Most of this just usually became just as me.

  2. I work in AI startup and planning to change my job. My contract is full of NDAs about pretty much everything. How do I talk with companies and recruiters about things I do when I’m not allowed to disclose project details like technologies or libraries used, algorithms for data manipulation, or even where we take data from, bought or downloaded. I can’t say anything more than “I work on AI and we do music manipulation in a programming language”. What do I say?