Soft Skills Engineering
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.
Episode 304: My subordinate is smarter than me and confused in meetings
In this episode, Dave and Jamison answer these questions: I just hired someone as my direct report who is very, very smart, and has a great background. Ivy undergrad CS, Ivy grad school, and big tech experience. This is great! Except… he’s definitely much smarter than me. I slacked my way through a liberal arts degree, and have worked only for small startups my whole career. I’ve gotten by, but I’m no 10xer. How do I be a good manager for him considering all this? I want to help him grow in his career and be a good resource for him, but I don’t know what I have to offer. Should I just give him my key to the nonexistent middle manager cafeteria, and say, “I work for you now? Hi, I have a question about how to handle being confused in certain team meetings. It happens when the meeting is about discussing a certain problem to solve and most participants are much more up to speed with the issue being discussed. What ends up happening is that they discuss things fast, while I am hardly following and wondering if I should even be there. That is painful to me, because I’m aware that I’m not contributing much, while my time there is wasted and spent half trying to follow and half stressing out thinking what I should do. I guess that in order to contribute I would need to ask to be brought up to speed. Which I find a bit tricky because I’ll be asking myself: is it because I missed something? Or is it because of something I actually couldn’t possibly know? And secondly, should I have it clarified, which would disrupt the discussion and draw it out for others (especially if I need to go back to something that the group already went over)? Or should I address this completely differently, for example by requesting meeting agendas and preparing questions before the meetings? I’d love to hear your thoughts on how to tackle this, because it’s a pain every time it happens.
May 16
26 min
Episode 303: Should I stop coding and off to the field
In this episode, Dave and Jamison answer these questions: I’ve been a Staff Software Engineer at my company for 1 1/2 years. We have about 120 engineers company-wide. I’ve had 4 different bosses during the last year and our team has moved around a few times on the org chart. I lead a team of 2 engineers. My boss told me I shouldn’t be doing any of the coding but should spending my time working with the product manager, doing research for upcoming features, doing code reviews, managing the Jira board, mastering jellyfish metrics, reviewing architecture documents, setting up measurement in our logging tool and coordinating deployments of our features. Because my team is small and our product roadmap is pretty well defined, these tasks do not take 40 hours per week. I feel like I have nothing to do. I’ve tried to improve the velocity of the team by doing some coding and triaging on bugs. I miss doing the technical work and feel like I could do more but I also want the other 2 engineers on the team to own most of the big, bulky tasks. What do you suggest I do? Should I enjoy my light load or should I be looking for other ways to add value? I am the lead developer on a few projects with developers that have 20+ years of experience compared to my eight years. I have been made lead of the projects, but I’ve never actually had management tell the team that I am the lead or that I have any control whatsoever on the members of the team (typical ‘all of the responsibility, none of the power’ scenario). One of my teammates is tough. He writes unreadable but working spaghetti code. He also works in the field and will often times push to master and then leave to perform fieldwork, leaving the team in the lurch for several days before he can come back and fix his broken code. He habitually fails to push code, often holding the source on his own computer for months before pushing. I have mandated using pre-commit hooks to guard against breaking the build, but as IT has control over the repositories, these become “optional” and appear to be disregarded. I have brought this up with management, to no avail; the behavior continues. I have also expressed my concerns with management, and provided data on the impact this has to the project via tickets and time spent between the remaining team members. How do I rein in this unwieldy developer? What else can I do? Show Notes https://www.gamasutra.com/view/feature/4111/dirty_coding_tricks.php?page=4
May 9
30 min
Episode 302: Bad boss movies and well-written emails
In this episode, Dave and Jamison answer these questions: My boss keeps recommending bad movies. I watch most of them but I feel bad because they’re not good and I don’t want to disappoint my boss. They are ‘okay’ but are really mediocre. Do I just ignore my boss’s suggestions or should I keep watching these terrible action-heist movies even though I don’t like them? Does it matter if my emails are well written? I’m a software engineer. I asked my partner how I should word a part of my email. After reading my email they were appalled. They said that it was “abysmally written and lacked refinement”. I’ll admit that it wasn’t my best written email, but who cares? It was just an email letting a team member know that I had followed up on a ticket a while ago, so it wasn’t like this was going to a client or something. Plus I felt like the email conveyed the message that it needed to. In my mind as long as the email isn’t offensive or covered in grammatical errors and conveys the message, isn’t that good enough? My partner argued that I should write my emails more eloquently since my “terrible” emails will reflect poorly on me. I told other engineers care more about the content and less about how well-written any given email is, but they wouldn’t budge. In addition to that, some of the emails I’ve gotten from our senior and staff engineers seem like they were written with someone who has the English skills of a middle schooler and they seem to do fine for themselves. Thoughts? Show Notes This episode is sponsored by Compiler, and original podcast from Red Hat. Check it out Reference to the Dragon book on Wikipedia Robustness principle: Be liberal in what you accept and conservative in what you send
May 2
30 min
Episode 301: I forced the framework and product stealing credit
In this episode, Dave and Jamison answer these questions: Listener Casey asks, My team has built an internal framework for continuous delivery that enabled a key product release last year. The tooling has gained widespread adoption and popularity throughout the org, to the point that some leaders are requiring teams to use the framework for any new services. Things are generally going great, except that “my team” consists of only 2 people including myself, and we have so much work that the soonest we can look at new features is ~18 months from now. Some individuals, who are being required to use our framework, are frustrated and protesting loudly about how the framework doesn’t work exactly the way they think it should. How can I shelter my team from the outbursts of unhappy users? Or bolster their resolve so they don’t take on the anxiety of growing pains? P.S. We’re all remote so this happens 99% in chat channels and DMs. If something goes right, product takes credit. If something goes wrong, engineering takes the blame. How do you change that organizational dynamic? (Other than your usual answer.)
Apr 25
26 min
Episode 300: Manager move and cultural or personal
We are celebrating our 300th episode by publishing unique songs about the podcast. To get access to the songs, join Patreon: https://www.patreon.com/SoftSkillsEng In this episode, Dave and Jamison answer these questions: Greetings! I have been with my current company for a number of years, and was recently promoted to Engineering Manager. I enjoy working here, and have a great manager and team. A job posting at another company recently piqued my interest (great salary, appealing company values, fully remote) and got me thinking, would it look terrible if I applied for, or switched jobs, so soon after a promotion to management? How can I figure out if communication problems with a team member are cultural or personal? My teammate immigrated to the states. We occasionally stumble over conversation and misunderstand each other. I think this is exacerbated by being remote. For example, they will ask a pointed and direct question that sounds like a challenge to my approach to a problem. When I attempt to answer, it’s clear we are nowhere near the same page and I need to back up and provide more detail. I am working and have worked with others who immigrated from the same country. I’ve had similar difficulties connecting before that I have not had with other teammates from other regions. However, this is not universally true of every teammate I’ve had from this area. If it is a cultural style, I would rather learn to adapt. I’m not interested in suggesting everyone need to conform to my cultural sensibilities. But if I can determine it’s a personal difficulty, we can work on it together.
Apr 18
29 min
Episode 299: Neophyte estimates and forced framework
In this episode, Dave and Jamison answer these questions: I’m a new team leader running a new project and when asked for a delivery date I gave my best guess (noob!). That date is at hand, our project is not. I gave a new delivery date and you guessed it, it’s later than the date I said way back when. I presented this new date to my boss, but he wants us to deploy what we have now… even though if we deployed what we have now the business’s cash flow would ignite tearing our collective hopes and dreams asunder. I told him this, in those words, and he said (with a knowing look) “ahhh, you’ve got to play the game, you have a reputation to protect”. I said I’d prefer a reputation of honesty, accuracy and improvement. He said he was talking about his reputation. His other teams consistently miss delivery dates, so I’d guess he has a reputation of missing delivery dates. I’d love to share my more accurate date, but that now feels like going behind his back, but if I don’t go behind his back - I’m going to get stabbed in my front. For now I’ve settled on putting my new date in confluence so I can use it as a shield when the inquisition comes. Dave, Jamison, what would you do and why? A parallel team has sold our VP on their internal framework, and has the VP convinced all other groups in his org should become dependent on it as a multi-app, multi-platform solution. Their framework is very buggy and they are very slow to acknowledge and fix bugs. They claim that due to the overwhelming amount of users/adopters of their framework, they can’t look at bugs, or that other projects take priority. This blocks our development. No one except them wanted to use their product, and somehow they used forced widespread adoption to avoid responsibility for missing their deadlines. This group has magnificent soft skills that have allowed them to evade being accountable for their issues. This team is a darling to the VP, so they are immune to accepting our feedback for the points I listed in the above question. How can we, who are multiple levels removed from this VP, improve our situation? Our group enjoys working together and on our product, so we don’t want to leave. We just want to find a way to become more tolerant of this other underperforming team. Show Notes https://www.hillelwayne.com/post/we-are-not-special/
Apr 11
26 min
Episode 298: Thanks, and goodbye and fessing up
In this episode, Dave and Jamison answer these questions: Earlier I decided I would quit my corporate engineering job in 2022. I’d stagnated, I wasn’t writing as much code as I wanted, and my company made me write our services in an internal domain specific language (DSL), which I don’t like. I’ve put off quitting due to anxiety reasons and not knowing exactly what I want to do next. I’ve even thought about taking a short gap to figure things out, but maybe that’s just me being a dramatic young person (I graduated university in May of 2020). However, now my company has done something terrible and promoted me to a second level engineer! And my manager has actually listened to my feedback! How could they? I still want to leave because the DSL ruins my coding skills and won’t transfer elsewhere. I work with great people. Also, I play an important role in the group because we’ve had so much turnover this past year. I don’t want to fall into the trap of thinking “the grass is always greener on the other side”, but I think leaving would be best for my career. How can I approach this without giving the impression that I’m flaky or ungrateful? And should I stop deliberating and quit my job sooner rather than later? I started a new position three months ago for a large pay increase, I am a fully remote software dev on a team of mostly local developers. My manager-to-be left the company a week before I started, and has not been replaced. The onboarding has been extremely lacking, I don’t have a mentor or buddy, I have very little l communication with my direct manager, and I have very little guidance on what to actually do, so I have been doing… nothing. Some days I do not even open my laptop. How do I start the conversation with my manager that I need something to do, without revealing openly that I have been doing nothing for the past three months?
Apr 4
30 min
Episode 297: Flat decisions and pointy-haired boss
In this episode, Dave and Jamison answer these questions: Liam asks, I was the second hire in my team and worked with one lead engineer who created the entire codebase from scratch. This engineer’s code was functional but not well architected and has many inconsistencies. They have since left the company and replaced with two new senior developers who are a lot stronger technically. We recognize issues with the current codebase but we’re finding it hard to make decisions on the best way of solving things. We’re all at the same seniority level and the managers above us do not have hands-on experience with our codebase or tech stack. Because we’re at the same seniority level I don’t want to start acting beyond my job title and make all the architectural decisions, but at the same time I don’t want to be a pushover. How should decisions be made in a team with a flat structure and no defined leader? My previous manager quit the company last year and we’ve been assigned a new one. While the previous manager knew technical side of the project really well, the new one seems to be clueless. He is not even showing any interest in learning about what we do. He is a good people manager, but lack of context makes him really bad project manager. What should I do? Should I talk to him to convince him to learn more or maybe it is normal and we were just really lucky with the previous manager?
Mar 28
30 min
Episode 296: Low performer and frantic manager
In this episode, Dave and Jamison answer these questions: 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? 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?
Mar 21
28 min
Episode 295: Underleveled at FAANG and lazy tech lead
In this episode, Dave and Jamison answer these questions: 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? 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.
Mar 14
32 min
Load more