Soft Skills Engineering

Jamison Dance and Dave Smith

It takes more than great code to be a great engineer. Soft Skills Engineering is a weekly advice podcast for software developers about the non-technical stuff that goes into being a great software developer.

  • 27 minutes 54 seconds
    Episode 406: Acquired taste and limited mentorship

    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è

    29 April 2024, 12:00 pm
  • 34 minutes 24 seconds
    Episode 405: Scaled agile pain and top-heavy team

    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.

    22 April 2024, 12:00 pm
  • 28 minutes 25 seconds
    Episode 404: Interview comedy and talking pay while new

    In this episode, Dave and Jamison answer these questions:

    1. “Hello, Is it considered ok to be a bit funny during an interview? To give more context: In a recent interview, I progressed up to the final cultural-fit round after clearing all technical rounds at a well-known company. One of my interviewer asked how I would deal with conflicts with a peer. In a effort to lighten the mood, I jokingly said I would snitch on them to my manager. I saw the faces go pale on the zoom call. So I backed-up and explained I was just joking and gave them an example of an instance where I had to deal with a conflict. The story didn’t help much to make my case, as there was some “snitching” involved in it. But in all seriousness, if I had a conflict in the past and have reached out to my manager to help diffuse the conflict, is it considered a bad thing. How do I make it sound like a good thing during culture-fit interviews? By the way I didn’t get an offer from them. Can’t help but think I goofed-up the culture interview. Thanks for your time and help.”

    2. I recently started my first full-time job out of college. I earned an engineering degree but took a job with a company in a more management/ business development/ leadership track. Now I’m the only person in a department with an engineering degree.I’ll be here for a couple of years before they move me into the next role in my track.

      In a casual conversation about going back to school, one of my coworkers jokingly mentioned they would get free school at a local university because they made less than X dollars. This threw me off, as I (having started less than 3 weeks ago), make more than X dollars despite us having the same position and them having worked in the department for almost a year.

      Should I say anything, or just assume that the difference in pay is due to the fact that I have a technical degree and am on a leadership track while they are in neither? I’ve been told it’s mutually beneficial to discuss salary with your coworkers, but I’m afraid to shake things up at my very traditionally run company in my first month here. My pay corresponds directly to the starting pay that an engineer in a design role in my company would be making and I think I was given this pay so not to discourage me from taking a role in the company in favor of an engineering job with engineering pay elsewhere.

    15 April 2024, 12:00 pm
  • 31 minutes 38 seconds
    Episode 403: Massaging the software and career never-never-land

    In this episode, Dave and Jamison answer these questions:

    1. I’m a bootcamp graduate working on a career shift from massage to software development. How much of my previous career should I bring into my résumé? I’ve been building projects in public, and doing open source contribution in a part-time capacity for the past two years, but ultimately have not gotten very many bites on my résumé that resulted in interviews. It’s something like three skill tests and one for roughly 800 applications at the moment? That’s a guess. That’s basically the gist of it.

      Thanks! Curious Coder Tries Tech Transition

    2. Listener Joshua says,

      I’ve done a number of things in my career, from Java to web dev on PHP and Angular/Node to low code development on Ignition SCADA and UIPath RPA .

      Because I love learning technologies and I want to go where the money is, I keep hopping to new teams. This usually comes with a decent pay bump, but it’s a lot of rescue operations and self-teaching.

      This doesn’t feel like a career path, and always being the junior team member sucks. I’m often studying for certs trying to meet the requirements for the job I’m already doing or being the senior dev on the team while still a Junior. I get that I’m relatively new to each team, but I’m also punching above my weight consistently.

      It feels like I’m always having to jump through hoops to get the title and pay for the level of responsibility I take on and it feels like my mixed-up background is the reason why.

      How can I pitch a 10 year career of wearing all the hats all the time to get better results? How can I avoid being on teams where all my coworkers think I’m a guru and I’m building all of the architecture, but my manager goes “gee, I don’t know if you have the years of experience to be a Senior”? I’m looking towards Architecture as a long term goal and I’m wondering if there’s a way to spin this skillset towards that goal. Can you get Architect if you aren’t a certified black belt in highly specific tools but rather a demonstrated improviser? What is a jack-of-all-trades supposed to do?

      Thanks, love the show, your advice and the fun relationship you guys bring to the conversation.

    8 April 2024, 12:00 pm
  • 32 minutes 42 seconds
    Episode 402: It's all on fire and title inflation

    In this episode, Dave and Jamison answer these questions:

    1. Happy Birthday Dave and congrats on the 400 episode milestone!

      Last year I was recruited away from my cushy Sr Dev role at Chill MegaCorp to an exciting technical leadership role at Fast-Paced MegaCorp. It felt like a huge level up since I had always wanted to pick up some of the softer communication and leadership skills to add to my arsenal while still working on technical problems. The 30% pay raise sealed the deal. Fast-foreward one year and I am burnt out, feeling disengaged and thinking about quitting.

      Compared to my previous role, everything here is urgent and high priority. There is little structure on my team, no planning or intake, and we just react to emails and pings from other teams about things not working. Our Sr Dev is very knowledgable but often gets short and impatient with me. My Sr Manager has said things like “sleep is for the weak” and frequently sends emails in the middle of the night. We have weekly evening releases that have gone till 4am. We are expected to always be around in case of a production incident – which happen very frequently because of the sheer complexity of everything and high dependency between internal services.

      I have considered moving to another team, but unfortunately this seems to be a company wide culture. I am considering cutting my losses with this company and moving back to an IC role with better work-life-balance. I am grateful for all the leadership skills I have picked up this past year and learned a ton in such a fast paced environment, but its been a whole year and I still haven’t gotten used to the “always on” culture and overall chaos.

      Is it normal form someone to shift between management and IC like this? What do you guys recommend?

    2. Hi Dave and Jamison, thank you for the show. It is the engineering podcast I look forward to most every week.

      I work at a company that, maybe like many others, has lots of title inflation. As a result, my title is much higher than it would be at a larger (and public) tech company. For example, “senior” may be one or two levels below senior elsewhere, and “staff” would be “senior” elsewhere. We also have “senior staff”, which might be “staff” elsewhere, but more likely that might just be a more senior “senior” engineer, too.

      My question is: How should I consider approaching a job search where I am knowingly (and reasonably) down-leveling myself in title? Should I include the relative level on my resume (for example, “L5”)? Should I not address it unless a recruiter or interviewer asks about it? Briefly mention the seeming down-level in a cover letter as comparable responsibilities and scope as my current role?

      I have worked hard for my promotions, because salary bands required the title change for the money I wanted, but now I am worried it will complicate applying to other companies.

      (Thank you for selecting my question!)

    1 April 2024, 12:00 pm
  • 30 minutes 24 seconds
    Episode 401: I AM the superstar and pro-rated raise

    In this episode, Dave and Jamison answer these questions:

    1. A listener named Metal Mario asks,

      A few weeks back in Episode 395 you talked about working with a superstar teammate. I feel like for our team, I’m the superstar.

      We’re a small software team in a large non-software company. I joined a year ago and very quickly took on a lot of responsibility. I think I’m a fantastic fit for the team, received *outstanding* feedback in my annual review as well as during the course of the year, and I get along great with my teammates. However, there are two problems.

      I joined the team on a lower salary compared to the rest of the team. I was initial ok with it because I changed to a completely new tech stack as well as a new role. Now I strongly feel like I should earn more than my colleagues. My boss hinted that he agreed in my annual review.

      I fear that by me joining the team and demanding a substantial pay raise, the cake gets smaller for the rest of the team, and that they feel like me joining the team prevented them to rising through the ranks.

      The second problem is related: a colleague of mine (mildly) complained that he lost responsibilities to me since I’ve joined the team. I talked to my boss about that, but given that things have been going very well, my boss would like me to keep doing the tasks. Again- I’m worried that my colleagues might get spiteful with me.

      Would it be better to take it down a notch (in order not to endanger team happiness and keep things stable for the company), or should I perform to the best of my abilities all the time?

    2. Impoverished By Pro-ration asks,

      Is it reasonable for a company to pro-rate raises for new employees?

      I recently received a raise that was smaller than expected as part of a promotion I got 9 months after joining the company. I joined halfway through the year and was under-leveled, so I quickly was put up for promotion, and got it! My raise was about half what I expected, and when I asked HR, they told me that the policy is to prorate raises, so because I joined halfway through the year, I only get half the raise that the promotion should come with, so instead of the 20% I was expecting to bring me up to the salary range of the job level I originally applied for, I only got 10% and am now making less than I think I should.

      Have I permanently crippled my lifetime earnings?!?

      What can I do to get the company to pay me appropriately? I understand if bonuses are pro-rotated, but why would raises also be pro-rated?

    25 March 2024, 12:00 pm
  • 32 minutes 3 seconds
    Episode 400: Underperforming intern and upskilling

    In this episode, Dave and Jamison answer these questions:

    1. I’m a junior software engineer who has been placed in charge of a handful of graduates and interns who have joined my team. The project is fairly technical.

      For the first two weeks, the new starters were pair programming. That went well, and after talking to each new starter they were eager to start working individually.

      We’re one month in and I’m concerned about the performance of one of the engineers, “Morgan” (fake name). Morgan has completed a degree from a good university we often hire from but appears to lack any knowledge of software development. As a result, Morgan seems to struggle with researching and working through problems beyond following tutorials. I got the impression that while pair programming Morgan didn’t contribute much.

      Is there anything I could do to give Morgan the boost needed to start rolling? I’m sure I could spoon feed Morgan, but it would monopolize my time when I’m already spending time with the other new starters on top of my own tasks.

      I want to give Morgan a shot, but I don’t know what to do. At what point do I tell my manager about my concerns?

      Things I’ve encountered:

      • When told to insert a colon to fix a syntax error, Morgan didn’t know what a colon was.
      • Morgan didn’t take any subjects at university on data structures or algorithms, which made it hard to explain the tree used for caching.
      • Morgan wanted to do some DevOps having done some at university. Morgan appears to have no understanding of Docker.
      • Morgan said they studied React at university but has demonstrated a lack of understanding to write React code.
      • The last issue Morgan worked on required them to read some source code of a library to verify its behavior. Even after explanation Morgan didn’t understand how to find the calling ancestor of a given function.
      • Morgan has never heard about concurrency.

      Even all these issues in aggregate would be fine with me, but the continual resemblance and behavior of a stunned mullet isn’t encouraging. After being told to research a concept, Morgan must be told the specific Google query to type in.

      Thanks, and apologies for the essay!

    2. Listener Confused Cat asks,

      I spent just over four years on a team where technical growth was lacking. Recently, I transitioned to a new team within the same company, and I’m enjoying the atmosphere, the team dynamics, and the opportunity to engage in more challenging software development tasks. Fortunately, my motivation is beginning to resurface.

      However, I’ve noticed that my technical skills have become somewhat rusty. While I can still deliver systems and features, I feel like I’m falling behind compared to some of my peers. This self-awareness is causing me to doubt myself, despite receiving no negative feedback from my current team or supervisor. It’s not just imposter syndrome; I genuinely feel the need to upskill.

      How can I navigate this situation effectively? What strategies would you suggest for advancing my skills while holding a senior position and preventing feelings of inadequacy from affecting my performance?

    18 March 2024, 12:00 pm
  • 30 minutes 34 seconds
    Episode 399: Higher paid than my boss and crossing over to management

    In this episode, Dave and Jamison answer these questions:

    1. Listener Jim asks,

      I am currently a senior software engineer in a well funded (but not profitable yet) startup. I am highly effective and well regarded, to the point where the tech lead also comes to me with questions and always takes my technical input onboard. I also get along very well with the rest of the team and with my manager. I am confident that I am in a good position to bargain for a decent pay bump, however there’s a chance I might be asking for pay that exceeds the salary of the tech leads or even my manager’s. Would it be a hard no from the start if that’s the case? Do you know of situations where certain people were paid higher than someone from a higher position? Thank you, I’m loving the show!

    2. I did it. I crossed over…

      I’ve been a software engineer for nearly 25 years. I worked my way from junior to senior, staff to principal, and for the last six years I’ve been a technical articect.

      I’ve been very deliberate in my caraeer path and told myself that I would always be on the tecnical side of the wall rather than the managerial side. Most of my boses over the years have been former technical folks that just seemed to have step off the technology train at some point. Maybe they couldn’t keep pace with the rapid changes in their older age, or maybe they just didn’t like IC work, who knows? But I always had this feeling about them, like “they just don’t get it anymore”, or “their technical knowledge is so outdated, how can they make good decisions”? Much like a teenager looks at their parents who stepped off the fassion train many years prior and now doesn’t want to be seen in public with them.

      Well, I just accepted a job leading a team; with headcount, and a budget, and the works. It was not the role I really wanted, but in this market, I didn’t have a ton of choices. It’s billed as sort of a hybrid Architect/Manager role, but it *feels* like I crossed a threshold. I feel like my future will be that of a retired race horse living out the last of his days if the middle-management pasture. So, 2 questions:

      1. What can I do to not become a hollowed out shell of myself as the technology train eventually starts to out pace me, and eventually speed away at ludicrous speed, because I’m not “doing it” every day
      2. Is this just the envitable for every SE? I mean, I don’t see a lot of 70 year old coders, so this is normal, right?
    11 March 2024, 12:00 pm
  • 28 minutes 26 seconds
    Episode 398: Tech lead for contractors and how to detach my ego from my work

    In this episode, Dave and Jamison answer these questions:

    1. How do you mentor a junior-level contractor?

      My company has been hiring a lot of contractors lately. Sometimes they hire out a full team form the contracting shop to build a particular feature. Other times, it’s an individual developer, but with the same general mandate: implement some specific set of features from our backlog over x number of months, then move on to the next project somewhere else. Generally this happens when we have extra budget that needs to be spent for the year, etc.

      It works well enough when the contractor is experienced and able to self-direct and focus on just getting the work done; but sometimes the contractor is less-experienced and needs lots of guidance and mentorship.

      Hiring and mentoring a less-experienced full-time developer is a long term investment. Over time that person will become more productive and hopefully stay with the company long enough to provide a net benefit. But when the person is only contracted for a short time, it seems we’re effectively paying the contracting agency for the opportunity to train their employees for them.

      As a senior engineer / tech lead, should I devote the same amount of time to mentorship and growth of these contractors, or should I just manage their backlog and make sure they only get assigned tasks that are within their ability to finish before the contract runs out?

    2. Hello, I have a really hard time not attaching my identity to my work. I know I’m not supposed to, but i really take pride in what I do and i feel like if I don’t, my performance would take a hit. But where this really bites me is taking it really personally when things go wrong (like when a customer submits a bug report and I find that it was something I wrote, or when I take down prod and have to involve a whole bunch of C suite people to address and post mortem the issue). I understand humans make mistakes but it eats me up so much inside every time. I know all these things but I have a hard time really internalizing them especially when things go south at work. What are some practical ways I can train myself to approach things without emotion?

    4 March 2024, 12:00 pm
  • 25 minutes 51 seconds
    Episode 397: Skunkworks and too much work/life balance

    In this episode, Dave and Jamison answer these questions:

    1. Listener Davide says,

      I have a lot of ideas for significantly improving manufacturing processes, but management wants us to focus on business “priorities”. These are fun tasks such as making sure part numbers are replicated in two disconnected systems that have no way of talking to each other. Makes getting Master’s degree feel like time very well spent.

      I end up setting aside some time and doing the legwork for my improvements in secret, and showing my boss when the solution is 90% there. I have a fear that they think the solution appeared out of thin air and required no work, but also if I told them in advance I was going to spend time on it, I would get told off and forbidden from doing it.

      Am I alone in this? Am I stupid? Should I quit my job? Have I written too much? Is the world really relying on a handful of Excel spreadsheets which are keeping us one circular reference away from total annihilation?

      Thanks for reading this far, and greetings from a listener from some place in England.

    2. Sorry for the long question and thanks in advance for any help or advice :)

      I’ve been working for a small 20-year old B2B company. It makes money. The work-life balance is amazing. Our workdays are 6 hours, and we are remote. On busy days, I may work 3 hours a day. So everything is great.

      But I hate it. I have no interest in the product. Everyone picks one ticket and goes to their corner to fix it. No collaboration unless necessary, which is rare because there are no complex challenges. I feel no one in the company is ambitious technically. It feels like I’m not growing and learning.

      My previous company was the exact opposite. Brilliant invested colleagues. Lots to learn and I was always inspired to work with them and learn from them. I felt like the stupidest person in the room. They cared about technical decisions and problems a lot. It was as close to my ideal workplace as it could be (the product was meh, and the management sucked). But I got laid off after 5 months of being there.

      Now whenever I talk with anybody about how I feel demotivated, and lifeless, and want to move on from this company, they say I’m crazy. And if I’m looking to learn and grow I have all the time in the world. I want to be in an environment that challenges me, inspires me, and pushes me to learn during work hours at least. I fear that if I stay here for a few years, I will not have the experience and resume needed to move to a company like the one I was in before I got laid off.

      Am I wrong to want to move out of this company in this situation?

    26 February 2024, 12:00 pm
  • 35 minutes 44 seconds
    Episode 396: Enthusiastic scope creep and human search engine

    In this episode, Dave and Jamison answer these questions:

    1. I’ve recently started a new Gig as a Senior Developer/Tech Lead at a company where we are our own clients, using the software we develop in-house.

      I’m encountering a bit of a hiccup, though. Our product owner, is primarily focused on support and doesn’t provide formal Acceptance Criteria. This means I spend a lot of time sending follow-up emails to confirm our discussions, drafting these criteria myself, and handling the management of boards and work items. Another challenge is our product owner’s enthusiasm. He’s full of ideas and tends to expand the project scope during our meetings, perhaps not fully realizing the additional development work and the impact on our timelines. I sometimes think that if he wrote down his thoughts, it might give him a clearer picture of the challenges we face in development in keeping up with these changes.

      I’m in a bit of a quandary here. How can I gently nudge him to take on some of these tasks, or should I discuss with my boss how this is taking up about 1 to 1.5 days of my week? While I’m more than willing to handle it, especially with the prospect of moving into a management role, I also don’t want to set a precedent that creating Acceptance Criteria and managing Work Items are part of a developer’s job scope – at least not to this extent. Any thoughts?

    2. Sean asks:

      Hi Soft Skills Engineering,

      I love your podcast and I have a question for you. I have a very good memory and I can recall details from a long time ago. This sounds like a great skill, but it also causes me some problems at work.

      Often, I get asked questions by my colleagues or my boss that are not related to my current tasks or responsibilities. For example, they might ask me about the content of an email that they sent or received a year ago, or the outcome of a meeting that I attended (but also did they). They ask me because they know I probably remember, and they want to avoid searching for the information themselves.

      This annoys me because it interrupts my work and makes me feel like a human search engine. I want to be helpful, but I also want to focus on my actual work. I can’t redirect them to my boss, because he has a very bad memory himself.

      How can I deal with this situation without being rude or lying about my memory? How can I set boundaries and expectations with my colleagues and my boss? And without gaslighting them into thinking I already answered their questions, of course.

      Thank you for your advice.

    19 February 2024, 12:00 pm
  • More Episodes? Get the App
© MoonFM 2024. All rights reserved.