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.
Subscribe to this podcastOpen in app
In this episode, Dave and Jamison answer these questions: Hello! Thank you for your podcast, I definitely find the episodes to be helpful. Lately I’ve been struggling with attention to detail. I just forget to do simple things like run pre-commit hooks before I put in a PR or before merging a PR. I went through a pretty bad layoff when my old company went bankrupt a few months back and now I am at a new role where I really like everyone I work with. The engineers expect checked-in code to pass tests and typechecks and be generally high-quality. How I can be better about attention to detail as a software engineer? How do you keep track of remembering all the little things that need to be done? Hey guys I’m around 8 years into my career as a software engineer, been at a few companies and have been promoted to senior during my time. I like my job and have done relatively well in my career, but I’m burned out. While I think this is the best industry for me, I’d just like to walk away from the corporate 9-5 for who knows how long. Fortunately, I’m in a position where my partner is able to be the breadwinner for the foreseeable future. We’ve talked about it, and she’s okay with it as long as I don’t sit on the couch doing nothing all day. I figured I’d take this time to watch the kids, learn some skills around the house, get involved in the community, etc. I don’t know if I’d ever want to get back in the software saddle, or if I do, perhaps I’d return in a different role or capacity. But my question is, if I leave this industry for several years and decide to ever come back, what would the landscape be like for me? Am I making a mistake by deciding to hang it up at such a young age?
In this episode, Dave and Jamison answer these questions: A listener named Jay asks, Over the past eight years I’ve been promoted from Software Dev to Team Lead and then to Engineering Manager. After two years as an EM, it helped me a lot financially, I like what I do and I think I’m doing it really well. However, I have two concerns. First, I love programming and now I don’t have any time other than in my limited free time to do it. I can feel my coding skills atrophying. Second, I’m worried that I could only get EM jobs in the future, and there are fewer openings for EMs than for Senior Software Developers. Could I go back to a software developer role? Would they even take me? I work for a staff augmentation company in an African country for a software company in New York. I’ve been with this client for the last five years and I have climbed up the ladder enough that I can access the company financials. I am paid based on my location, which is not much after the exchange rate to local currency. My pay hasn’t increased as I’ve become more effective. Since seeing that info, I don’t feel the need to go over and beyond for this client anymore. The client expects me to be a rockstar developer and ship out code faster they can think of more ways to make money but my enthusiasm has diminished over time and my manager has been notified about it. What steps would you take to ensure you get reasonable pay as a dev earning a location based pay? The staff augmentation company is ran by US citizens.
In this episode, Dave and Jamison answer these questions: I recently started the interviewing for a senior engineering manager role at a fairly prestigious, but not huge (maybe 30-50 engineers) tech company. The job description heavily emphasized the idea of leading as a peer as opposed to just relying on the EM title. I love this approach, but the lead interviewer then disclosed that they don’t want EMs writing production code. This seems like a contradiction. Am I naive in thinking so? I certainly understand that taking on a more managerial focus will result in less IC work. However, as a leader I find a ton of value in staying close to the trenches. It allows me to earn the respect of my reports, empathize with their day to day, and sniff out good/bad decisions quickly. As an engineer with good softskills, it feels like gravity wants to rip me away from writing code. How do I stop this? Can I? Should I resign myself to a work-life filled with never ending 1:1s? Hello Dave and Jamison, thank you for your podcast. I have listened to almost all episodes and they provide both educational and entertaining values, you rock! I would like to ask you for advice. I am struggling with a problem related to communicating and cooperating with people in general. I have over 10 years of professional experience. I was always a hardcore nerd, sitting alone in front of the computer and programming, focused only on pure technical skills, everything else was unimportant. Most of my career I spent in small companies where I could just spend time writing code and I wasn’t bothered by anything else. However, one year ago I started to work at FAANG and now I feel overwhelmed. Technical skills seem not so important anymore. Most of the problems are being solved by talking, negotiating and following up with other teams, participating in meetings and presenting results to management. It stresses and burns me out. I feel it like a waste of time and potential but also I was never a people person, so I am anxious every time I am in a new social situation. How could I convince myself that such non-technical skills are equally important as technical skills? What steps can I take to improve my attitude and skills? What would you advise if you had to work with a person like that?
In this episode, Dave and Jamison answer these questions: There aren’t a lot of engineering management growth resources in my company. It’s a relatively small company with about 50 engineers. My manager doesn’t have time to properly mentor me. And I’m not sure I would want him to because I feel like his advice isn’t always the best. Where can I go for management mentorship or other learning resources? Is it worth exploring non-engineering managers on other teams? Or leaning more on my peers? Or should I be looking for outside advice? A recent episode mentioned awkward Zoom silences. My experience is the exact opposite. I recently switched teams at the same company. This new team has a Zoom room open for the entire work day. The first person to start their day begins the Zoom and the last to leave ends the meeting. They do “mob programming” using a command line tool that switches users every few minutes along with all the strict rules of Extreme Programming - a driver, navigator, etc. But they also do everything in groups: story refinement, diagrams, documentation, everything. Live collab, all day, every day. I’m one month into this transfer but worried that this isn’t a good fit and that I made a horrible mistake. ALL the other engineers here rave about how this is the greatest thing ever. Am I the weirdo for not liking it? I feel like I am of split-mind to only either speak or type (but not both) and have not yet rediscovered my coding flow. Mostly I just wanted to roll a perception check with you: Am I the weirdo for not liking all this collaboration and 100% Zooming, or would this workflow drive most other engineers mad as well? Any pep talk about sticking it out would be appreciated.
In this episode, Dave and Jamison answer these questions: My company is doing performance reviews. While writing my self-review, I was shocked by how much I had accomplished in the last 6 months. I’d led our org to adopt multiple new technologies and supported other teams in adopting them, to great effect. But looking back, I wish I could trade half the accomplishments on my self-review for time spent taking better care of myself and my partner and kids. I’m not working crazy hours; I work a pretty regular 40hrs per week on a flexible schedule (with 3 young kids, this is, in fact, a crazy schedule). I’m on track for the promotion from senior to staff, maybe in this cycle, and I’m wondering: would it be crazy for me to propose that I stay in the senior pay band, and start working 4 days a week? I’ve also considered scheduling personal time during the day. But I know I’ll be fighting an internal work-time-clock forged by years of cortisol flow. What’s your advice for lightening up a lead foot? A listener named Aisha says, 6 months ago I quit my first job out of college. It was a very toxic and hostile workplace. I sucked it up for almost 3 years, but it got so bad that I had to quit my job without another lined up (yikes, I know). I was a great employee, and was always given excellent performance reviews. After giving my boss plenty of notice, I asked if I could use him as a reference and he said yes. It’s been a struggle finding another job. I’ve submitted hundreds of applications, reviewed my resume with mentors, and attended workshops for interviewing skills, but nothing helped. Out of sheer desperation, I had a friend pretend to be a future employer and call my boss asking for a reference. As I suspected, he was providing a bad reference that included outright lies about my work ethic and me as a person. I have no idea why he would do this. I am at a loss of what to do. The obvious thing to do it not include that job on my resume, but without it I basically have zero experience and a large gap between graduating and now. :( I have contacted some of my old team members if they could be a reference instead of my boss, but none have gotten back to me as of yet weeks later. Please help! What do I do?
Episode 380: Overruled by non-technical manager and describing technical stuff to non-technical people
In this episode, Dave and Jamison answer these questions: Listener Ashleigh asks, I’m a mid-level developer at a small company with a non-technical manager. After several months working on migrating our users from a legacy system to our new system, our non-technical business analyst discovered our current system re-uses lots of code from the legacy system. The BA immediately escalated their “concerns” about this to our manager. This quickly resulted in a group message from our manager to the BA, our senior engineer, me, and another developer. Without asking for more than a cursory explanation of how two sets of users who need the same functionality can use the same code base without breaking things for each other, our manager made the decision to fork the project and maintain two separate code bases. The developers tried to explain why this was a bad idea, but we were immediately shot down. This has already resulted in issues in pre-production environments. They were afraid that having changes in one unified code base would break things for both groups of users. We were given no opportunity to make further arguments. Two months later I find that my motivation at work has tanked. Despite being below market rate, I’ve stayed because it’s allowed me to advance my skills as a developer. But my trust in our BA and management is completely shattered. Is it worth staying in my current role? Is salvaging my current situation a hopeless cause that will likely just collapse again in the future? Or would I be wise to get out ASAP before things blow up and the blame is pushed on our development team? I feel like I already know the answer in my gut, but I’d like to hear your perspectives on this. Listener Damison Jance asks, I sometimes find myself struggling to describe how software issues will affect product designs to non-software engineers. It is hard for me to explain “this seemly tiny change in user experience you’ve asked for is actually driven by this backend functionality that is totally transparent to users and really no one besides backend engineers has any reason to know about it, but yeah anyway that small change is going to require six months of work and changes to multiple services.” I have found this approach quite ineffective, and I think it comes off as me sounding like “my way or the highway”. I’m wondering if you guys have any tips for explaining how systems work to people who aren’t software engineers and don’t necessarily have all the context you do. Show Notes Microservices video (keyword: Omegastar): https://www.youtube.com/watch?v=y8OnoxKotPQ
In this episode, Dave and Jamison answer these questions: “Hi! Love the show, long time listener. So an architect noticed an issue with credentials embedded into request body being logged. I had planned to resolve that, and someone already had done so for another instance. I took a day or two to figure out how to fix it globally, and even tied it into another filtering we did. That would mean one list of sensitive data patterns to maintain – that we already had, and don’t need to worry about which context keys to scan in. Scan them all, CPU time is free after all /s I opened this PR, and received no feedback for a day. Another engineer did mention an alternate approach that would resolve this particular case, but I was trying to fix it globally so we didn’t have to maintain a list of keys to scan on. Next day he mentioned he made some click ops change that resolved THIS PARTICULAR INSTANCE, meanwhile still not providing any feedback on the PR. This approach is IMO a maintenance burden: keep two different filtering in sync, proactively add keys to strip. High chance of mistakes slipping in over time. So I said OK works with some caveats, and rejected my PR. I can not explain why but this incident tilted me hard. For one thing he essentially grabbed my ticket with no communication and resolved it himself. Then he provided no feedback and went with a different approach without consulting anyone else. Worst of all, he ended up with an (IMO) markedly worse fix that I had already dismissed as being too brittle and likely to miss things in the future. What do? Am I unreasonable to feel undermined and disrespected?” Hi Dave and Jamison, long time listener love the show. I work on a team that is relatively small in size but we own a huge scope including multiple flavors of client-side app and a bunch of backend integrations. We recently launched our product and since then there have been constant fire due to various tech debt that we never fix. Our manager has attempted to ask the team to share the burden of solving these tech debts, but there are only very few that are actually doing it. I can think of many reason why they are not able/willing to take on the task, likely due to other priorities or unfamiliarity with the part of the codebase. Due to my familiarity with various component, I’m usually the one proposing the fix and actually fixing it. I have started to feel this is taking a toll on my own career development because I ended up not having bandwidth to work on those bigger projects/features that have high visibility and good for promotion. I do think solving the tech debt is important work and don’t mind doing them. How would you navigate this situation? Thanks for the awesome podcast!
In this episode, Dave and Jamison answer these questions: I’ve managed an ML team in a small company for ~2 years now. I created an 8 person team from scratch and I’m super proud of the team I’ve built. However, I miss being an engineer and wish I could spend more time coding. I was considering asking for a role change to IC, but out of nowhere my manager offered to me a promotion to head of platform engineering. I would have 3 engineering teams reporting to me - about 30 people altogether. I have trouble saying no to new opportunities but can I put the genie back in the bottle? If I get “Peter principled”, I feel like it would be challenging or embarrassing to return to IC work. How can I stay close to the ML side while managing other teams? Would other teams feel dejected if they know I had a “favorite” team? Is it just me or do people also find silences over Zoom unbearable? I work in a team that is mostly remote, and I find myself deliberately logging into meetings late to avoid the silence or the stilted, awkward smalltalk. If i’m running the meeting, I kickoff at 1 minute past to avoid having to deal with that dead air. I also find myself too quick to fill pauses during meetings. I never have this problem in person meetings. I’ve been in the same team now for nearly a year and I still dread uncomfortable silences over Zoom. How do I get over this?
In this episode, Dave and Jamison answer these questions: Hi, I’m a senior software engineer at a big tech company, where I’ve been employed for precisely one year. So far, the feedback I’ve received has been overwhelmingly positive. My manager has even mentioned that her superiors are impressed with my performance, and my colleagues have shared their positive feedback as well. While I’ve been told that I’m doing exceptionally well and may be on track for a promotion in my upcoming year-end review, there’s a slight concern. Given that I’ll have been with the company for just over a year at that point, my relatively short tenure might affect my chances. During my mid-year review, my manager advised me to tackle more complex problems and take on larger tasks that have an impact on multiple teams to bolster my promotion prospects. I don’t really know what to do with this advice since I don’t know what else to do besides passively wait and hope that these famous ‘complex problems’ come my way. I feel like whether or not I get to prove myself in a big way to secure the promotion will come down to luck, is there anything I can do to reduce this luck factor? I recently started a new remote job as a lead engineer at a startup. Previously, I was working for an agency and was almost constantly busy. Additionally, I was held extremely accountable for the time I spent working through submission of daily timesheets. Now that I’m at a startup, I’m struggling to not feel guilty when I feel like I have nothing to do. My area of the product moves much slower than everyone else’s, so while everyone else is constantly busy, I feel like I’m making much less impact. My manager, the CTO, is fully aware of my lighter workload and is fine with it. My question isn’t necessarily about how I can make more impact. It’s about how to make peace with the idea that I’m not being productive for 8 hours every day. When you’re in an office, you feel like you’re working even when you’re not, because you’re physically there. When working remotely, I tend to feel guilty when I’m not physically sitting at my desk writing code, even when there isn’t really any code to write. Do I need to just get over myself and feel more grateful for all my free time? Or is there another way of looking at this that I’m missing?
In this episode, Dave and Jamison answer these questions: I applied and was hired for a 100% telecommute position. Recently, the company has mandated all employees near an office switch to a hybrid schedule. I’m looking at an hour or more round trip and the yearly cost of parking is several thousand dollars. The company also announced to their investors that massive layoffs will be coming due to the economy and redundancies due to a large merger. I’m relatively new to the company and left my previous company after only a couple of years. I like where I work and the company benefits. I do prefer working in office and don’t want to be seen as a perpetual job hopper. I’m just not thrilled about the commute time and commute paycut. We have been assured my product is invaluable but should I believe that? A friend referred me to a hybrid position biking distance from my house. Assuming I’m made an offer, should I take it? What if it’s slightly less than what I’m making now? Hi Jamison and Dave, another long time listener here. Thank you for all your advice and the good laughs you provide in the show! I’m in my early 40s and have been working since I was 19 with a few years spent in education at university. In all these years there have been ups and downs, financial crises, personal crises, layoffs, good laughs and friendships, great teams, projects and bosses, and not so great teams, projects and bosses. I have enjoyed some of the work I’ve been doing in my industry, and I’ve enjoyed making some good contributions to my field. I have been badly burned out two times in my career. Healing and recovering was hard but thankfully I was able to rejoin the workforce successfully (or that’s what I thought). Last year I identified I’m slowly burning out badly again. Since this will be my third time, I’m *very* seriously reconsidering a career change, to quit tech and software altogether. I’m passionate about the field I work in though it seems I can’t avoid getting sick badly from time to time in part because of the difficulties for finding a good team/project fit, having to deal with difficult people at work and a mental health condition I’ve been struggling with since my teens. I have friends in the industry that are very senior, and we all share common struggles and our complaints about the industry are getting worse and worse with time. Is that a symptom of becoming more experienced? Are we all becoming jaded? My current job pays well, but I’ve come to the realisation that it isn’t a good deal to trade great compensation for my health. I’m seriously considering downshifting and quitting tech to hopefully (and finally) bring sanity and peace to my life. This is something I’ve been also discussing with my therapist lately. So here’s my question: do you think it’s worth pursuing a long career in tech, or it’s just that the more experienced and senior you become the hardest the job becomes because your awareness raises? Do you have any other advice? Thanks for reading and congrats again on the podcast!
In this episode, Dave and Jamison answer these questions: I work as a Software Engineering Manager at the European office of a US company. Recently, many of my colleagues successfully obtained US visas for an upcoming business trip. When it was my turn, everyone said it would be a piece of cake because our company is well-known. However, to my surprise, I was rejected during the visa interview. Now I won’t be able to join my colleagues (including my direct reports). I’m concerned they might perceive me as less capable because of this. What would you think if your manager couldn’t travel with you? To make matters worse, I might soon be managing a few US-based employees remotely. Hi guys, love the podcast. I never miss an episode! I have a co-worker, let’s call him “Bob”. Bob’s a lovely guy and very eager to learn. Here’s the thing. Bob never learns from his mistakes and needs to be continually asked to correct the same types of errors over and over again. The problem is that Bob doesn’t seem to have a developers mindset. I’d go so far as to say that if there’s a decision to be made then Bob is 95% guaranteed to do the opposite of what everybody else on the team would do. The end result of this is that whenever a pull request is opened up with Bobs name attached to it I can be sure that I will be spending more time reviewing it and inevitably the PR will need to go back and forth multiple times as Bob is asked to correct the same types of things that he was just asked to correct in the last review. The frustrating is that my manager is also nice and wants to encourage Bob to grow and improve and so regularly gives Bob some pretty complex tasks in order to encourage this growth. While I admire the managers attitude (and surely have benefitted from it on occasions :) ) my heart sinks just a bit more than normal when this happens as I know that the previously mentioned merry go round of reviews will inevitably be larger than usual. Sometimes it can get to the point where much (or all) of Bobs work ends up being discarded. I do precious little development work myself as my senior position in the team means that I’m the one ends up doing most of the peer reviewing. So each time I see Bob being given a piece of work that I would have enjoyed doing (and sometimes have even specced out) I get disheartened. Bob has been a developer in our field for about 6 years and still needs to be told on a regular basis about things that you would usually need to tell a fresh graduate. How do I broach the issue of Bob with the powers that be? Show Notes https://www.rnz.co.nz/national/programmes/ninetonoon/audio/2018904948/from-space-junk-to-international-treaties-nz-s-only-specialised-space-lawyer
In this episode, Dave and Jamison answer these questions: Morning! I will cut straight to the chase: I’m burned out and tired. At the same time, I’m aiming to get a promotion during the next cycle. My manager is aware of the latter, but not the former. Should I tell them? I suspect that I would get a lighter work load and less responsibilities, but it might also impact my chances at getting a promotion. The project I’m working is a “high stakes, tight deadlines” mess. I usually would just take a week or two of PTO, but the tight deadlines make it hard. Do I grin and bear it till promotion cycle (another 4-6 months) or just tell my manager and risk losing the rewards? I’m about to get promoted to L6, what my company calls Lead Engineer, but I have to move to another team for it to happen. The other team already has a few people who are applying for that same promotion, and they got skipped over for my promo. They’ve also been devs longer than me. (4 years for me) So, I’m worried about tension on that team when I join. On top of that, I’ll be learning this role too! How can I make room for myself to have failures and make poor decisions, while also not undermining my expertise? How can I step into this lead role while not stepping on the toes of the engineers already on the team? Any tips for someone leading a team for the first time, while also joining that team?
In this episode, Dave and Jamison answer these questions: Love the show, you guys have saved my bacon more times than I can count! I interviewed at an organization for a Senior Engineering role, but the interview went so well, they actually offered me the option to accept a Staff role! I definitely didn’t feel ready for that, but I accepted as a way to stretch and challenge myself. The company has been through some internal churn and re-arranging for most of my time there, and I bounced between a lot of projects, which means I’ve now been at the company coming up on 2 years, but not really had the chance to grow into the role. Now, I’ve been here awhile, don’t have a lot of excuses, and am bad at being a Staff Engineer. My biggest failing, is that I lack a bigger vision for our project, beyond just meeting customer needs for today. I’m not even sure how to start building that bigger vision! In my current project, this is especially apparent, because we do need to meet internal customer needs, but the end goal is a larger platform. We need features that inspire new avenues of work as well as enable current ones. How the heck do I even begin to start imagining what this bigger vision could be? Moreover, once I have that vision, how do I get buy in for that vision? My inability to do this kind of forward thinking has been a boat anchor around my ankles my entire career, and I’m lost as to where to even start. Help me guys, I love my job, but I fear I’ve become the embodiment of the Peter Principle. Help me chew my ankles off to save my career Listener Trevor asks, I work as a data scientist at a small company. I joined the company specifically because of the positive work environment. I do mostly software development and until recently have only received positive reviews. Recently we had a heated meeting with the CTO and CFO where we demonstrated that a customer’s request wasn’t feasible. The CTO challenged and expressed disbelief in our numbers which we had thoroughly analyzed and confirmed as accurate. I felt like their reaction was due to our results conflicting with our business needs. After that, my manager began pushing me to prioritize data science tasks. He attributed the outcome of the meeting to my lack of attention to detail, even though the results were accurate. He also said this would affect my next performance review. We reached a resolution when I apologized and committed to improvement. I’ve only received positive feedback since, but I still feel the assessment was unfairly based on such a brief meeting. Now I view the company and my manager differently. Without the positive work relationships with management and colleagues, I’m not sure what is keeping me here. Our tech stack is outdated, and there’s reluctance to change practices. For example, we didn’t have a CICD pipeline until only a few months ago. Additionally, the performance review and promotion schedules are nebulous and irregular. I’m uncertain about my next steps. Should I address the perceived unfairness of the meeting feedback? Or would it be better to start exploring other job opportunities?
In this episode, Dave and Jamison answer these questions: Kate asks, Hi Dave and Jamison! I’m in a situation where my predecessor, Jane, was a super helpful “Mary Poppins” type. She did anything and everything beyond her role for the sake of being a team player. I was told she even went as far as providing homemade snacks for meetings. I, on the other hand, am a one trick pony; I only do the tasks I’m paid for. I’m often indirectly compared to her and worry I’ll be seen as an inadequate despite doing my duties well. Should I go with the “ol reliable”? Or wait to see if her legacy fades? Thank you so much!! I’ve been involved in a project (architecture, design, code review) that has been ongoing for several months now, and I’ve put many hours and days supporting the project success, but only on the engineering side and not the PM. The obligatory announcement email blast came not too long ago, and my name was dropped from the pretty long list of people who have been involved with the different aspects of this project. On one hand, I feel that I should have been acknowledged for my contribution to the project success, especially when exposure to LT is at play here, but on the other hand I don’t want to play politics at work, I want to make great products for our customers while learning a lot and working with smart people. My question is should I care? I hate the fact that it’s even bothering me.