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 296: Low performer and frantic manager

Download

In this episode, Dave and Jamison answer these questions:

  1. Hi! long time listener first time caller. i am the CTO of an early startup with 15 employees (12 engineers). 3 months ago, we hired a new engineer whose output is quite low compared to other engineers on the team. i have brought this up with him many times and tried to coach him on his debugging skills, time management skills, etc. After months of this, I am not seeing any change in output and am growing frustrated. At this point, I suspect that the engineer is just spending very little time on their tasks compared to others on the team (who admittedly often work late into the night). I don’t want to fire the engineer or micromanage his schedule, but am concerned that their slowness will impact our culture and product. Do you have any ideas on how I could help this engineer improve?

  2. Howdy fellas,

    I started my first SWE job out of college at a startup in the bay area and work in a team of three. Myself, my technical manager, and one other developer who comes from an adjacent field. I came three years of interning as a developer at a very relaxed company with 3000+ employees. I’m finding I have a lot more ownership over my work now than ever before and I really enjoy that!

    What I don’t enjoy is watching my manager run around like a headless chicken. Between managing all our jira boards, creating POC’s for a complete redesign of our core services, interviewing candidates, planning features for our existing services, and doing regular sprint work they have too much to do and not nearly enough time for all of it. This results in many things that are critical getting scrambled, forgotten, miscommunicated, or just dropped for lack of time on their part.

    I’ve tried to take some of the small tasks from them that aren’t necessarily a manager’s job such as managing the jira board and help desk tickets. Unfortunately they insist that they don’t want me to take over small tasks like that because they can handle it, but the same issues from them being overloaded persist.

    I think the team over all would be a lot more effective if they were able to focus in on particular tasks, but since they won’t let me help what else can I do?

A smiling speech bubble

Episode 295: Underleveled at FAANG and lazy tech lead

Download

In this episode, Dave and Jamison answer these questions:

  1. Love the podcast, love the banter and jokes, keep up the great work! Now, for my predicament:

    Good news: I just got my first job at a FAANG! Bad news: I’m coming in at the lowest level of software engineering despite being in my mid-30’s and nearly 10 years of non-FAANG experience.

    Given that it is my first Big Tech™ company, I understand being down-leveled, but I did not expect to be downleveled THIS much. I’m glad to have finally “hit the big leagues”, but I’m not thrilled that I’m on equal footing with a fresh college graduate. Hurt feelings aside, what is the best Soft Skills advice on how to catch up to the mid-30’s engineers who joined a FAANG fresh out of college? My plan is to tell my aspirations to my manager once I start and see how they can help me perform as well as possible in order to promote quickly, but I can see how that might come off as greedy or entitled. What do you think?

  2. Should I do anything about a lazy tech lead?

    Since covid and working from home, my tech lead went from a frantic micromanager to a lazy coaster.

    They seem to do 1-2 hours of work per day. They set their slack status to ‘away’ so you can’t tell if they are at their desk or not. They’ve stopped coding completely, but we have an excellent PM so there isn’t much else for them to do. Sometimes during stand-up you can clearly hear them driving their car. Even asking them for help/advice on slack can mean several hours waiting for a response.

    Management hasn’t noticed because we are a large team who all work really hard, so the feature output is still high.

    My dilemma: do I count myself lucky that they are no longer micromanaging and keep my mouth shut? Better the devil you know etc. Or, do I gather some evidence and tell their boss? I could be learning so much more from an engaged tech lead, and the team might feel less toxic.

    Final doozy: due to some incredible stock market gains I have some heavy golden handcuffs so #1 priority is keeping my own job and not creating an enemy that gets me fired.

A smiling speech bubble

Episode 294: Unqualified internal applicant and speculative specs

Download

In this episode, Dave and Jamison answer these questions:

  1. I work in a squad that has been slow in delivering. Squad leadership (including myself) concluded we need a staff engineer (one level above senior engineer) to help guide tech directions and to support other engineers.

    Unfortunately we have received only a single applicant- senior engineer “Brett” who’s already on the team. Brett is a good engineer and has a lot of great qualities - but falls short of the “staff” level. Our tech lead “Chris” doesn’t think Brett is suitable due to bad technical decisions Brett has made in the past. Chris also thinks Brett should have been discouraged from applying in the first place. (Brett’s manager is outside the team so has less visibility on what’s happening inside the squad)

    We’re suddenly in a bind. If we give Brett the role we are in the same situation as before but having to pay him more.

    If we don’t give him the role we run the risk of losing him in this environment - which would be very bad as he is a good engineer!

    Should our decision be down to how Brett interviews? What could have been done differently?

  2. I recently did some extensive planning for a feature with a back-end engineer where we negotiated what the GraphQL api would look like. As I was finishing up my feature work, I realized that they departed from that plan and didn’t tell me. Now the feature is late. They’re having to make adjustments because the departure from the spec made it impossible for the front-end to handle the data. I’m having to do more work because they used a completely different architecture than what we discussed. What’s even more frustrating is that the end result on the backend is going to be exactly the design that I initially proposed (this is documented), which the backend engineer shot down when I proposed it.

    I feel angry that they dismissed my technical expertise. This has also eroded my faith in collaborating with this person. Retro’s coming up. How would you approach retro? What outcome do I even want here? I don’t think more process is going to be helpful (I spent 6-8 hours on the planning portion of this feature). I am starting to wonder if my perception as a primarily front-end engineer prevents the back-end engineers from lending me credibility.