<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Dev Leader Weekly]]></title><description><![CDATA[My weekly newsletter that simplifies software engineering for you, along with C# code examples. Join thousands of software engineers from companies like Microsoft and Amazon who are already reading!]]></description><link>https://weekly.devleader.ca</link><image><url>https://substackcdn.com/image/fetch/$s_!zuqM!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faee7b925-847a-411b-a8bb-86cec91a2098_1280x1280.png</url><title>Dev Leader Weekly</title><link>https://weekly.devleader.ca</link></image><generator>Substack</generator><lastBuildDate>Thu, 24 Sep 2026 11:25:15 GMT</lastBuildDate><atom:link href="https://weekly.devleader.ca/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Nick Cosentino]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[social@devleader.ca]]></webMaster><itunes:owner><itunes:email><![CDATA[social@devleader.ca]]></itunes:email><itunes:name><![CDATA[Dev Leader]]></itunes:name></itunes:owner><itunes:author><![CDATA[Dev Leader]]></itunes:author><googleplay:owner><![CDATA[social@devleader.ca]]></googleplay:owner><googleplay:email><![CDATA[social@devleader.ca]]></googleplay:email><googleplay:author><![CDATA[Dev Leader]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Should You Leave A Stable Job For An AI Startup?]]></title><description><![CDATA[Dev Leader Weekly 158]]></description><link>https://weekly.devleader.ca/p/should-you-leave-a-stable-job-for</link><guid isPermaLink="false">https://weekly.devleader.ca/p/should-you-leave-a-stable-job-for</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Mon, 21 Sep 2026 16:44:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gQQy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e2c2e9-a7db-4ccc-ba49-1a3c1409883c_1536x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/09/19/should-you-leave-a-stable-job-for-an-ai-startup-dev-leader-weekly-158" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gQQy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e2c2e9-a7db-4ccc-ba49-1a3c1409883c_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!gQQy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e2c2e9-a7db-4ccc-ba49-1a3c1409883c_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!gQQy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e2c2e9-a7db-4ccc-ba49-1a3c1409883c_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!gQQy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e2c2e9-a7db-4ccc-ba49-1a3c1409883c_1536x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gQQy!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e2c2e9-a7db-4ccc-ba49-1a3c1409883c_1536x1024.webp" width="1200" height="800.2747252747253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/00e2c2e9-a7db-4ccc-ba49-1a3c1409883c_1536x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:82254,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/09/19/should-you-leave-a-stable-job-for-an-ai-startup-dev-leader-weekly-158&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/216681177?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e2c2e9-a7db-4ccc-ba49-1a3c1409883c_1536x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gQQy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e2c2e9-a7db-4ccc-ba49-1a3c1409883c_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!gQQy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e2c2e9-a7db-4ccc-ba49-1a3c1409883c_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!gQQy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e2c2e9-a7db-4ccc-ba49-1a3c1409883c_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!gQQy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e2c2e9-a7db-4ccc-ba49-1a3c1409883c_1536x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>Higher pay does not erase startup risk</p></li><li><p>Your risk tolerance changes over time</p></li><li><p>Treat equity as uncertain upside</p></li><li><p><strong><a href="https://youtube.com/live/HR42YwHCmJI?feature=share">Join me for the live stream (or watch the recording) on Monday, September 21 at 7:00 PM Pacific</a></strong>!</p></li></ul><div id="youtube2-HR42YwHCmJI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;HR42YwHCmJI&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/HR42YwHCmJI?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2><strong>Should You Leave A Stable Job For An AI Startup?</strong></h2><p>A developer asked me about a decision that sounds exciting and uncomfortable at the same time.</p><p>They are already working for one of the top employers in their country. The role appears reasonably stable, the pay is fine, and they can generally log off around five. But recruiters are reaching out about AI startups offering <strong>50% to 60% more money</strong>.</p><p>So what is the catch?</p><p>Maybe longer hours. Maybe on-call work. Maybe less stability. Maybe equity that becomes incredibly valuable, or maybe equity that never becomes worth anything at all.</p><p>This is exactly the kind of decision where I do not think there is one correct answer. The useful thing is not for me to tell you, &#8220;Take the startup job,&#8221; or, &#8220;Stay where you are.&#8221; The useful thing is to make the tradeoffs visible enough that you can decide whether the risk actually fits your life.</p><p>You can <strong><a href="https://www.youtube.com/watch?v=wLTBZO3CnGk">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-wLTBZO3CnGk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;wLTBZO3CnGk&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/wLTBZO3CnGk?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>There Is No Universal Risk Profile</strong></h2><p>My younger self and my current self would evaluate this opportunity very differently.</p><p>Early in my career, I had fewer responsibilities. I was not married. I did not have pets. I had paid down most of my school debt through internships, and I had already spent six internships working at small companies. I knew I liked that environment.</p><p>My first full-time role was at a startup. I would love to tell you that I researched every variable and made the mathematically perfect choice. I did not. Some of it was judgment, and some of it was luck.</p><p>What mattered was that I had room to take the chance. If the job demanded a lot from me, I was prepared to work hard and see where it went.</p><p>My life is different now. I am married. We have pets. If we decide to have children, that changes the equation again. My choices do not affect only me anymore.</p><p>That does not make the startup good or bad. It means <strong>the same offer can be a smart risk for one version of you and the wrong risk for another</strong>.</p><p>I wrote recently about how <strong><a href="https://www.devleader.ca/2026/09/13/is-anyone-actually-fulfilled-with-a-software-engineering-career-dev-leader-weekly-157?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-158">career fulfillment changes as your life changes</a></strong>. Risk tolerance works the same way. You need to revisit it instead of assuming the answer you had five years ago still applies.</p><p><em><strong>Actionable Tip</strong></em>: Before comparing jobs, write down what you are protecting right now.</p><ul><li><p>Time with your family</p></li><li><p>Predictable income</p></li><li><p>Health benefits</p></li><li><p>Career acceleration</p></li><li><p>Learning opportunities</p></li><li><p>Flexibility</p></li><li><p>A mission you care about</p></li></ul><p>If you do not know what matters most, the largest salary number will make the decision for you.</p><h2><strong>Compare The Full Trade, Not Just The Salary</strong></h2><p>A 50% to 60% raise is meaningful. I am not going to pretend otherwise.</p><p>But salary is only one line in the offer. If you move from a predictable schedule to consistently working nights, weekends, or on-call rotations, you are trading more than one employer for another.</p><p>You are trading time. You are trading energy. You may be trading certainty. Depending on the company, you may also be trading a clear role for whatever problem is on fire that week.</p><p>That environment can be energizing. It can also be exhausting.</p><p>I have talked about <strong><a href="https://www.devleader.ca/2024/08/24/4-years-in-big-tech-after-startups-dev-leader-weekly-58?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-158">what four years in big tech taught me after working at startups</a></strong>, and one of the biggest differences is not that one environment has problems and the other does not. It is that the problems often have a different shape.</p><p>At a large company, stability does not mean layoffs are impossible. We have all seen that. What it often means is that the company is not relying on one product, one small customer base, or the next funding round to make payroll.</p><p>At a startup, those business risks can be much closer to your day-to-day reality.</p><p><em><strong>Actionable Tip</strong></em>: Translate the offer into the actual trade you expect to make.</p><ol><li><p>What compensation is guaranteed?</p></li><li><p>What hours do people really work?</p></li><li><p>How often is the team on call?</p></li><li><p>How much runway does the company have?</p></li><li><p>What happens if the next funding round does not happen?</p></li><li><p>What would you lose by leaving your current role?</p></li></ol><p>The goal is not to make the startup look scary. The goal is to stop comparing one complete job with one attractive number.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Equity Is Not The Same As Cash</strong></h2><p>Startup equity can be exciting. It can also make an offer feel much larger than it really is.</p><p>The important reality is simple: <strong>the company has to become valuable for that equity to become valuable</strong>.</p><p>That can happen. People join startups, work incredibly hard, and end up with a life-changing outcome. It is also not the most common outcome.</p><p>My mental model would be to make sure the guaranteed compensation works for me first. Then I would treat the equity as uncertain upside.</p><p>Ask about:</p><ul><li><p>The number and type of shares or options</p></li><li><p>The current valuation</p></li><li><p>The strike price</p></li><li><p>The vesting schedule</p></li><li><p>The exercise window if you leave</p></li><li><p>Expected dilution</p></li><li><p>Whether there is any realistic liquidity path</p></li></ul><p>You do not need to become a venture-capital expert. You do need to understand enough to avoid mentally spending money that may never exist.</p><p>The same applies to the mission. If you strongly believe in what the company is building, that can absolutely matter. I have written about <strong><a href="https://www.devleader.ca/2026/03/15/how-much-does-company-alignment-really-matter-for-developers-dev-leader-weekly-131?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-158">how much company alignment matters for developers</a></strong>, because believing in the work can make a difficult season feel worthwhile.</p><p>Just do not let belief in the mission replace basic due diligence.</p><h2><strong>Startup Learning Can Be Incredible</strong></h2><p>I think startups can be some of the best learning environments available to a software engineer.</p><p>Why? Because there is usually so much happening that it is almost impossible not to learn.</p><p>There may not be a specialist for every problem. The company may be solving something for the first time. You might need to move between architecture, implementation, operations, customer feedback, hiring, and planning much faster than you would in a more established organization.</p><p>That chaos is not automatically bad. It can force you to develop range, judgment, and comfort with ambiguity.</p><p>Of course, constant switching has a cost. The <strong><a href="https://www.devleader.ca/2026/04/20/the-context-switching-problem-every-dev-faces-dev-leader-weekly-136?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-158">context-switching problem looks different across startups and large companies</a></strong>, but neither environment is magically free from it.</p><p>The question is whether the learning is worth the pace for you.</p><p>If your goal is to compress a huge amount of experience into a few years, a strong startup can be an incredible opportunity. If you are already near burnout, need predictability, or want to protect time outside work, the exact same environment may be a terrible fit.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/subscribe?"><span>Subscribe now</span></a></p><h2><strong>Interview The Startup Back</strong></h2><p>A company can tell you that it has excellent work-life balance. You will learn more by asking for concrete examples.</p><p>Try questions like:</p><ul><li><p>What did the team work on outside normal hours in the last month?</p></li><li><p>How often are engineers paged while on call?</p></li><li><p>What happens when a deadline slips?</p></li><li><p>How many people have left the engineering team in the last year?</p></li><li><p>What is the company&#8217;s current runway?</p></li><li><p>Which assumptions must become true for the business to succeed?</p></li><li><p>Why is this role open?</p></li><li><p>What would make someone unsuccessful here?</p></li></ul><p>Listen for specifics.</p><p>&#8220;We care deeply about balance&#8221; is a value statement. &#8220;The team had two after-hours incidents in the last quarter, and here is how we handled them&#8221; is evidence.</p><p>You may still join without perfect answers. Startups are uncertain by definition. But uncertainty you understand is different from uncertainty hidden behind recruiting language.</p><h2><strong>Run The Failure Scenario</strong></h2><p>Most people spend a lot of time imagining the upside.</p><p>What if the company takes off? What if the equity becomes valuable? What if you learn more in two years than you would learn in five somewhere else?</p><p>Those are fair questions. Now run the other scenario.</p><p>What if the startup runs out of money? What if the role is not what you expected? What if you leave after six months? What if the job market is difficult when that happens?</p><p>Can you absorb that outcome financially and emotionally?</p><p>If the answer is yes, the risk may be completely reasonable. If the answer is no, that does not make you timid. It means the downside has consequences you are not willing to accept right now.</p><p><em><strong>Actionable Tip</strong></em>: Decide what failure would cost before you decide what success could pay.</p><p>Consider your savings, benefits, visa or residency constraints, family responsibilities, and how long a job search could realistically take. The more fragile the downside is, the more evidence you should demand before taking the bet.</p><h2><strong>My Answer Is Different Now</strong></h2><p>At this point in my life, I know how I work. I like working hard, sometimes to a fault. I can get deeply focused on making progress and do a poor job balancing everything else.</p><p>Because of that, if I joined a startup again, I would probably assume I was consciously giving up some work-life balance. Maybe the company would prove me wrong, but I would not build my decision around that hope.</p><p>I have also said that if I put startup-level energy into something again, it would most likely be my own company. There are a very small number of people who might convince me otherwise, but I know how much effort a successful startup can require. I do not think I have that effort available for somebody else&#8217;s vision right now.</p><p>That is part of why <strong><a href="https://www.devleader.ca/2026/08/01/why-i-still-build-side-projects-and-what-im-building-next-dev-leader-weekly-151?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-158">I still build side projects and think carefully about what I want to build next</a></strong>. They let me explore ideas and create things while keeping control over how much of my life I am willing to trade.</p><p>Your answer may be completely different, and that is the point.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/subscribe?"><span>Subscribe now</span></a></p><h2><strong>The Decision Is Big, But It Is Not Permanent</strong></h2><p>Changing jobs is a major decision. It is not a permanent identity.</p><p>You can join the startup and discover that it is not for you. You can stay in the stable role and reconsider when your circumstances change. You can interview, learn more, and decide the offer is not strong enough.</p><p>If a startup fails, that is not the end of your career. It may be inconvenient. It may be stressful. Finding another role may take time. But if you keep learning, working hard, and pursuing opportunities, one company failing does not erase what you gained.</p><p>So should you leave a stable job for an AI startup?</p><p>Maybe.</p><p>But do not make the decision because AI is exciting, the recruiter created urgency, or the salary number is large. Make it because you understand the workload, the business risk, the learning opportunity, the mission, and the downside, and you still believe the trade fits the life you have now.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/should-you-leave-a-stable-job-for?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/should-you-leave-a-stable-job-for?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/should-you-leave-a-stable-job-for/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/should-you-leave-a-stable-job-for/comments"><span>Leave a comment</span></a></p><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IR_L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67f5c4a7-a72c-4de9-88f8-4981dc17d498_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!IR_L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67f5c4a7-a72c-4de9-88f8-4981dc17d498_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!IR_L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67f5c4a7-a72c-4de9-88f8-4981dc17d498_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!IR_L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67f5c4a7-a72c-4de9-88f8-4981dc17d498_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IR_L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67f5c4a7-a72c-4de9-88f8-4981dc17d498_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/67f5c4a7-a72c-4de9-88f8-4981dc17d498_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!IR_L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67f5c4a7-a72c-4de9-88f8-4981dc17d498_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!IR_L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67f5c4a7-a72c-4de9-88f8-4981dc17d498_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!IR_L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67f5c4a7-a72c-4de9-88f8-4981dc17d498_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!IR_L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67f5c4a7-a72c-4de9-88f8-4981dc17d498_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://www.devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[Is Anyone Actually Fulfilled With A Software Engineering Career?]]></title><description><![CDATA[Dev Leader Weekly 157]]></description><link>https://weekly.devleader.ca/p/is-anyone-actually-fulfilled-with</link><guid isPermaLink="false">https://weekly.devleader.ca/p/is-anyone-actually-fulfilled-with</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Mon, 14 Sep 2026 04:52:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xxMo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69d4a51-3377-4876-96a3-a0aaa82ece78_1536x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/09/13/is-anyone-actually-fulfilled-with-a-software-engineering-career-dev-leader-weekly-157" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xxMo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69d4a51-3377-4876-96a3-a0aaa82ece78_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!xxMo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69d4a51-3377-4876-96a3-a0aaa82ece78_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!xxMo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69d4a51-3377-4876-96a3-a0aaa82ece78_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!xxMo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69d4a51-3377-4876-96a3-a0aaa82ece78_1536x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xxMo!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69d4a51-3377-4876-96a3-a0aaa82ece78_1536x1024.webp" width="1200" height="800.2747252747253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d69d4a51-3377-4876-96a3-a0aaa82ece78_1536x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:68040,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/09/13/is-anyone-actually-fulfilled-with-a-software-engineering-career-dev-leader-weekly-157&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/215602562?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69d4a51-3377-4876-96a3-a0aaa82ece78_1536x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xxMo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69d4a51-3377-4876-96a3-a0aaa82ece78_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!xxMo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69d4a51-3377-4876-96a3-a0aaa82ece78_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!xxMo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69d4a51-3377-4876-96a3-a0aaa82ece78_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!xxMo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69d4a51-3377-4876-96a3-a0aaa82ece78_1536x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>Fulfillment changes as your life changes</p></li><li><p>Career decisions are rarely permanent</p></li><li><p>Meaningful impact is personal</p></li><li><p><strong><a href="https://youtube.com/live/lvByy_5-Tk4?feature=share">Join me for the live stream (or watch the recording) on Monday, September 14 at 7:00 PM Pacific</a></strong>!</p></li></ul><div id="youtube2-lvByy_5-Tk4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;lvByy_5-Tk4&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/lvByy_5-Tk4?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2><strong>Is Anyone Actually Fulfilled With A Software Engineering Career?</strong></h2><p>A developer asked a question that sounds simple but gets complicated very quickly: <strong>Is anyone actually fulfilled by a career in software engineering?</strong></p><p>This was not really another conversation about AI taking jobs or changing how we write code. It was a much broader question about whether the career itself gives people what they hoped it would.</p><p>I have been thinking about this recently because I had an intern on my team, and we talked through some of the choices that show up early in a career. Do you go directly into the workforce? Do you continue school? What kinds of roles or industries might fit? Those decisions can feel enormous when you are making them.</p><p>The thing I wanted to make clear is that <strong>fulfillment does not have one permanent definition</strong>. It can look different from person to person, and it can look different for the same person as life changes.</p><p>You can <strong><a href="https://www.youtube.com/watch?v=bT4Fd4PbbB8">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-bT4Fd4PbbB8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;bT4Fd4PbbB8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/bT4Fd4PbbB8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>Fulfillment Is Allowed To Change</strong></h2><p>I think most people have some core values that remain fairly stable. The way those values show up in your life, though, can absolutely shift.</p><p>At one point, career growth might be the thing you prioritize most heavily. At another point, family, flexibility, health, education, or time outside work might carry more weight. That does not mean you were wrong before. It means your situation changed.</p><p>This is why I do not think career fulfillment is something you answer once and then lock in forever.</p><p>If you never revisit it, five years can pass before you realize that four years and eleven months of a role have felt completely wrong. The first month was exciting because everything was new, and then the rest became something you tolerated.</p><p>That does not mean you need to conduct a dramatic career review every week. It means you should check in often enough to notice when the work no longer fits. I have written about <strong><a href="https://www.devleader.ca/2026/06/01/adhd-burnout-and-building-a-career-that-fits-your-wiring-dev-leader-weekly-142?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-157">building a career that fits how you operate</a></strong>, and the same idea applies even when burnout or ADHD is not part of the question. A career can look successful from the outside and still be a poor fit for the person living it.</p><p><em><strong>Actionable Tip</strong></em>: Put a recurring career check-in on your calendar. Quarterly might work. Yearly might work. The exact cadence matters less than making sure the reflection actually happens.</p><p>Ask yourself:</p><ul><li><p>Which parts of my work give me energy?</p></li><li><p>Which parts consistently drain me?</p></li><li><p>Am I learning, contributing, or moving toward something I value?</p></li><li><p>Has my answer changed since the last time I asked?</p></li></ul><p>You do not need to make a giant change every time. Sometimes the answer is simply, &#8220;This still works for me.&#8221; That is useful information too.</p><h2><strong>Most Career Decisions Are Not Permanent</strong></h2><p>Early career decisions can feel like doors that close behind you.</p><p>If you start working after school, can you ever go back for a master&#8217;s degree? If you choose graduate school, are you falling behind everyone who entered the workforce? If you move into management, have you permanently left technical work behind?</p><p>These choices have tradeoffs. Going back to school while working full-time is not trivial. Changing roles may cost time, money, comfort, or momentum. But difficult is not the same as impossible.</p><p>I have known people who completed a master&#8217;s degree part-time while working. Plenty of engineers have moved from individual contributor roles into management and then returned to individual contributor roles. People change industries. They take time away. They discover that the path they selected was not what they expected.</p><p>That flexibility matters because <strong><a href="https://www.devleader.ca/2026/08/09/what-comes-after-senior-software-engineer-dev-leader-weekly-152?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-157">what comes after senior software engineer</a></strong> is not one universal promotion ladder. Success might mean staff engineer, management, a different specialty, a smaller company, independent work, or staying exactly where you are because the work fits your life.</p><p>The goal is not to avoid making a choice. The goal is to stop treating every choice as a life sentence.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>The Role And The Career Are Different Questions</strong></h2><p>Sometimes people decide they are no longer fulfilled by software engineering when the actual mismatch is narrower.</p><p>Maybe the domain does not interest you. Maybe you do not believe in the company&#8217;s mission. Maybe the team environment is unhealthy. Maybe the role asks you to spend your time in ways that no longer line up with what you enjoy.</p><p>That distinction is important.</p><p>An engineering manager who keeps reaching for coding tasks might not hate software engineering. They might miss building things. Someone who feels disconnected from a product might not need a new profession. They might need a domain where the outcome matters more to them.</p><p>This is why I think the <strong><a href="https://www.devleader.ca/2026/06/08/the-management-trap-in-software-engineering-dev-leader-weekly-143?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-157">management trap in software engineering</a></strong> is worth understanding before treating management as the automatic next step. Management is a different job. It can be incredibly fulfilling, but it does not become fulfilling merely because it comes with a promotion or better compensation.</p><p>I have been managing teams for roughly thirteen years, and I still genuinely love building software. In my primary role, spending more time coding would usually mean spending less time on the people and organizational work that I am actually responsible for. That is a real tradeoff.</p><p>AI tools have created a few more opportunities for me to build things without taking focus away from the team, which I appreciate. But the underlying question remains: <strong>Do I still value the work my role needs from me?</strong></p><p>The same tension exists before management too. As <strong><a href="https://www.devleader.ca/2025/12/06/senior-engineers-spend-less-time-coding-dev-leader-weekly-118?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-157">senior engineers spend less time coding</a></strong>, their impact often shifts toward design, communication, mentoring, and helping other people move faster. If writing code is the only part that feels meaningful, that shift can be uncomfortable.</p><h2><strong>Impact Is More Than How Many People You Reach</strong></h2><p>When I think about fulfillment in my own career, I keep coming back to impact. Not performance-review impact. Not the biggest number I can put beside a project. I mean impact on an area of life that matters to me.</p><p>Earlier in my career, I worked on digital forensics software used by investigators, examiners, and law enforcement. The software helped people recover and understand evidence from digital devices. The total audience was much smaller than the audience touched by the work I do now, but the impact on an individual case could be enormous.</p><p>My current work can affect experiences for hundreds of millions of people. That is massive reach. At the same time, one request taking a little longer for one person does not feel as personally significant as helping uncover evidence that contributes to finding the truth in a case.</p><p>Neither form of impact is fake. They are simply different.</p><p>In my role now, much of the personal fulfillment comes from working directly with people. I get to help engineers grow, progress in their careers, and work through challenges. That gives me some of the individual impact that I value even when the product impact is broad and less personal.</p><p>This is also why <strong><a href="https://www.devleader.ca/2026/03/15/how-much-does-company-alignment-really-matter-for-developers-dev-leader-weekly-131?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-157">company alignment matters for developers</a></strong>. If the organization&#8217;s mission is deeply connected to something you care about, the work itself may provide a strong sense of purpose. If it is not, fulfillment may need to come from the craft, the people you support, the flexibility the job provides, or the life the job enables outside work.</p><p>There is no rule that says your employer must be the source of all meaning in your life. Some people want work to be a reliable nine-to-five that funds everything they care about after five. That is completely valid.</p><p>That is not how I personally think about work. I enjoy working, and I spend too much of my life doing it to settle indefinitely for, &#8220;This feels okay.&#8221; But that is my answer. You need to understand yours.</p><h2><strong>Run The Smaller Experiment</strong></h2><p>If your honest answer is that the work is not fulfilling, resist the urge to jump immediately to the largest possible conclusion.</p><p>&#8220;I hate this project&#8221; does not automatically mean &#8220;I hate software engineering.&#8221;</p><p>&#8220;I miss coding&#8221; does not automatically mean &#8220;I failed as a manager.&#8221;</p><p>&#8220;I want a different kind of impact&#8221; does not automatically mean &#8220;Everything I built in this career was wasted.&#8221;</p><p><em><strong>Actionable Tip</strong></em>: Identify the smallest change that could test what is actually missing.</p><ul><li><p>Try a different type of project</p></li><li><p>Ask for more mentoring or design responsibility</p></li><li><p>Explore another team or business domain</p></li><li><p>Talk with an individual contributor who returned from management</p></li><li><p>Take a course before committing to another degree</p></li><li><p>Build something outside work to see whether creation is the missing piece</p></li></ul><p>Small experiments give you evidence. They help separate dissatisfaction with one environment from dissatisfaction with the entire career.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Do Not Settle For &#8220;Fine&#8221; Without Checking</strong></h2><p>So, are software engineers actually fulfilled?</p><p>I hope many of us are. I enjoy what I do, and I can still say that I could be more fulfilled. Those statements are not contradictory.</p><p>Fulfillment is not a finish line you cross after getting the right title, salary, or employer. It is an ongoing alignment between what you value and how you spend your time. Because both sides can change, the conversation has to happen more than once every five years.</p><p>Check in with yourself. Separate the role from the industry. Think about the kind of impact that matters to you. Remember that most career decisions are not carved in stone.</p><p>You spend too much of your life working to never ask whether the work still fits.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/is-anyone-actually-fulfilled-with?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/is-anyone-actually-fulfilled-with?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/is-anyone-actually-fulfilled-with/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/is-anyone-actually-fulfilled-with/comments"><span>Leave a comment</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7864!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd9e8d7f-1d0b-4d79-a384-bf84f5892e3e_705x397.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7864!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd9e8d7f-1d0b-4d79-a384-bf84f5892e3e_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!7864!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd9e8d7f-1d0b-4d79-a384-bf84f5892e3e_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!7864!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd9e8d7f-1d0b-4d79-a384-bf84f5892e3e_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!7864!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd9e8d7f-1d0b-4d79-a384-bf84f5892e3e_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7864!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd9e8d7f-1d0b-4d79-a384-bf84f5892e3e_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd9e8d7f-1d0b-4d79-a384-bf84f5892e3e_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!7864!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd9e8d7f-1d0b-4d79-a384-bf84f5892e3e_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!7864!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd9e8d7f-1d0b-4d79-a384-bf84f5892e3e_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!7864!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd9e8d7f-1d0b-4d79-a384-bf84f5892e3e_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!7864!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd9e8d7f-1d0b-4d79-a384-bf84f5892e3e_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://www.devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[When A Developer Misses The Deadline, Who Owns It?]]></title><description><![CDATA[Dev Leader Weekly 155]]></description><link>https://weekly.devleader.ca/p/when-a-developer-misses-the-deadline</link><guid isPermaLink="false">https://weekly.devleader.ca/p/when-a-developer-misses-the-deadline</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Sat, 29 Aug 2026 19:46:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!n7ny!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb492eb76-1b47-4594-bdfe-9ea6ba54ae7c_1536x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/08/29/when-a-developer-misses-the-deadline-who-owns-it-dev-leader-weekly-155" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!n7ny!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb492eb76-1b47-4594-bdfe-9ea6ba54ae7c_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!n7ny!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb492eb76-1b47-4594-bdfe-9ea6ba54ae7c_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!n7ny!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb492eb76-1b47-4594-bdfe-9ea6ba54ae7c_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!n7ny!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb492eb76-1b47-4594-bdfe-9ea6ba54ae7c_1536x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!n7ny!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb492eb76-1b47-4594-bdfe-9ea6ba54ae7c_1536x1024.webp" width="1200" height="800.2747252747253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b492eb76-1b47-4594-bdfe-9ea6ba54ae7c_1536x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:91034,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/08/29/when-a-developer-misses-the-deadline-who-owns-it-dev-leader-weekly-155&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/213321721?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb492eb76-1b47-4594-bdfe-9ea6ba54ae7c_1536x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!n7ny!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb492eb76-1b47-4594-bdfe-9ea6ba54ae7c_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!n7ny!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb492eb76-1b47-4594-bdfe-9ea6ba54ae7c_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!n7ny!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb492eb76-1b47-4594-bdfe-9ea6ba54ae7c_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!n7ny!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb492eb76-1b47-4594-bdfe-9ea6ba54ae7c_1536x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>A missed date is not a PIP</p></li><li><p>Ownership means finding the next move</p></li><li><p>Manager accountability covers people and outcomes</p></li><li><p>No livestream... I am on vacation!</p></li></ul><div><hr></div><h2><strong>When A Developer Misses The Deadline, Who Owns It?</strong></h2><p>A question came up in the comments about what happens when an engineer does not deliver a project on time.</p><p>Does the developer get put on a performance improvement plan? If the manager cannot get the developer back on track, does the manager get put on one too?</p><p>It is a fair question, but it starts from a framing that I think is too simple. <strong>A project slipping does not automatically mean somebody failed at their job.</strong> Real projects have dependencies, changing constraints, technical surprises, and decisions that turn out differently than expected.</p><p>The more useful question is this: When the plan stops working, who takes ownership of figuring out what happens next?</p><p>You can <strong><a href="https://www.youtube.com/watch?v=fNQSIKwK8gc">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-fNQSIKwK8gc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;fNQSIKwK8gc&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/fNQSIKwK8gc?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>A Missed Milestone Is Not An Automatic PIP</strong></h2><p>Let&#8217;s start with the most important distinction.</p><p>A performance improvement plan is not supposed to be the automatic consequence of one missed milestone. A project can slip for all kinds of reasons:</p><ul><li><p>Another team misses a dependency</p></li><li><p>An external vendor falls behind</p></li><li><p>The original technical approach does not work</p></li><li><p>The scope was larger than anyone understood</p></li><li><p>A higher-priority incident interrupts the plan</p></li><li><p>The date was unrealistic from the beginning</p></li></ul><p>None of those automatically means the engineer assigned to the project is performing poorly.</p><p>There is a difference between <strong>the outcome being off track</strong> and <strong>the person refusing or failing to engage with the problem</strong>. That distinction matters. I have written about <strong><a href="https://www.devleader.ca/2026/07/18/when-should-you-tell-your-manager-a-developer-is-struggling-dev-leader-weekly-149?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-155">when a struggling developer should be raised with their manager</a></strong>, and the same principle applies here: early communication creates room for coaching and correction. Silence removes options.</p><p>If you miss a date because a dependency moved, that is one problem. If you knew the dependency moved, said nothing, explored no alternatives, and let everyone discover the delay at the deadline, that is a different problem.</p><h2><strong>Ownership Starts When The Plan Breaks</strong></h2><p>When I talk about accountability, I am not saying that you must personally control every variable. You cannot.</p><p>What you can control is how you respond.</p><p>If the project is slipping, ownership means communicating that clearly. It means looking for alternatives instead of sitting back and hoping the problem fixes itself.</p><p>Maybe the date can move. Maybe the scope can shrink. Maybe there is a temporary implementation that meets the immediate need. Maybe your team can help the dependency team finish its work. Maybe you need to abandon the original design and choose something that is available now.</p><p><em><strong>Actionable Tip</strong></em>: When you raise a delivery risk, bring the clearest options you have.</p><ul><li><p>What changed?</p></li><li><p>What does it affect?</p></li><li><p>What can still be delivered?</p></li><li><p>What tradeoffs could protect the date?</p></li><li><p>Who needs to make the decision?</p></li></ul><p>You do not need to have every answer before speaking up. But &#8220;the project is late&#8221; is much less useful than &#8220;the project is at risk, here is why, and here are the three paths I see.&#8221;</p><p>This is where <strong><a href="https://www.devleader.ca/2024/10/12/radical-accountability-vs-blame-culture-dev-leader-weekly-65?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-155">radical accountability differs from a blame culture</a></strong>. Accountability is about improving the situation. Blame is about finding the person who should absorb the discomfort.</p><p>Those are not the same thing.</p><h2><strong>Managers Own More Than Individual Performance</strong></h2><p>As an engineering manager, one of the most important parts of my job is helping people do their best work and grow in their careers.</p><p>But that is not my entire job.</p><p>I am also responsible for the charters of my teams. I currently have three sub-teams working in different areas of a routing plane for Microsoft 365. Those teams have different focus areas, including firewall technology, but they contribute to a larger mission.</p><p>If everyone is happy, growing, and producing excellent work that has nothing to do with our charter, I am still failing in my role.</p><p>On the other hand, if we deliver everything by grinding people down, ignoring their careers, and treating them like interchangeable output machines, I am also failing.</p><p><strong>The job requires both.</strong> I need to support the people and help the organization get the outcomes those teams exist to produce. That balance is part of <strong><a href="https://www.devleader.ca/2021/05/05/engineering-manager-whats-expected-in-the-role?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-155">what is expected from an engineering manager</a></strong>.</p><p>So when a project slips, I cannot point at the engineer and say, &#8220;That was their project.&#8221; I might not be the person writing the code or coordinating every dependency, but I am accountable for whether the team has the clarity, support, coaching, and escalation paths needed to move forward.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Accountability Bubbles Up The Organization</strong></h2><p>This does not stop at the engineering manager.</p><p>If I repeatedly ignore my team&#8217;s charter, miss important outcomes, or fail to coach people who need support, my manager should notice. If that continues for months and nobody addresses it, accountability moves another level up.</p><p>Every layer has expectations of the layer below it.</p><p>That does not mean every missed delivery triggers a chain of performance plans. It means leaders should be able to explain what they own, how they know whether it is healthy, and what they are doing when it is not.</p><p>This is why <strong><a href="https://www.devleader.ca/2026/05/04/measuring-manager-effectiveness-can-you-even-quantify-it-dev-leader-weekly-138?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-155">measuring manager effectiveness</a></strong> is so difficult. You cannot reduce the role to one number. Technical direction, delivery, hiring, coaching, team health, and stakeholder trust all matter.</p><p>A manager might be strong at supporting people but weak at connecting their work to the team&#8217;s charter. Another might drive delivery while leaving a trail of burned-out engineers. Neither extreme is what I would call effective management.</p><h2><strong>Coaching Is Part Of The Manager&#8217;s Deliverable</strong></h2><p>The original question also called out hiring and coaching. Yes, managers should be accountable for both.</p><p>If I repeatedly make poor hiring decisions, someone should ask whether I need help improving how I assess candidates. If an employee needs performance support and I neglect them, that is not the employee&#8217;s failure alone. Coaching and mentoring are part of my job.</p><p>That does not mean every unsuccessful performance plan proves the manager failed. Sometimes a manager can provide clear expectations, frequent feedback, practical support, and reasonable opportunities to improve, and the employee still does not meet the role&#8217;s requirements.</p><p>The accountability is in doing the work properly.</p><p><em><strong>Actionable Tip</strong></em>: If you manage people, do not wait for a formal process before providing useful feedback.</p><p>Use regular conversations to make expectations visible. Talk about what is going well, what needs to change, and what support would help. <strong><a href="https://www.devleader.ca/2015/04/21/one-on-one-evolution?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-155">Effective one-on-ones should evolve around the person and the situation</a></strong>, not become a calendar ritual where neither person says anything meaningful.</p><p>If a formal performance process becomes necessary, it should not be the first time the employee hears that there is a problem.</p><h2><strong>Ask What Each Person Did Next</strong></h2><p>When something goes wrong, I would avoid jumping immediately to, &#8220;Who gets put on a PIP?&#8221;</p><p>Instead, ask:</p><ul><li><p>When did the risk become visible?</p></li><li><p>Who communicated it?</p></li><li><p>What alternatives were explored?</p></li><li><p>What support did the engineer request?</p></li><li><p>What coaching did the manager provide?</p></li><li><p>What decisions did stakeholders make?</p></li><li><p>Did this happen once, or is it a repeated pattern?</p></li></ul><p>Those questions give you a much better picture of accountability than the missed date by itself.</p><p>Projects will slip. Dependencies will fail. Estimates will be wrong. That is software engineering in the real world.</p><p><strong>Ownership is not pretending you can prevent every problem. Ownership is refusing to become passive when the problem appears.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/when-a-developer-misses-the-deadline?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/when-a-developer-misses-the-deadline?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/when-a-developer-misses-the-deadline/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/when-a-developer-misses-the-deadline/comments"><span>Leave a comment</span></a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rslT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1298d49-99f5-4e53-ae92-a9664024785a_705x397.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rslT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1298d49-99f5-4e53-ae92-a9664024785a_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!rslT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1298d49-99f5-4e53-ae92-a9664024785a_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!rslT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1298d49-99f5-4e53-ae92-a9664024785a_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!rslT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1298d49-99f5-4e53-ae92-a9664024785a_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rslT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1298d49-99f5-4e53-ae92-a9664024785a_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1298d49-99f5-4e53-ae92-a9664024785a_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!rslT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1298d49-99f5-4e53-ae92-a9664024785a_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!rslT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1298d49-99f5-4e53-ae92-a9664024785a_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!rslT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1298d49-99f5-4e53-ae92-a9664024785a_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!rslT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1298d49-99f5-4e53-ae92-a9664024785a_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[AI Can Write The Code -- What Part Do You Keep?]]></title><description><![CDATA[Dev Leader Weekly 154]]></description><link>https://weekly.devleader.ca/p/ai-can-write-the-code-what-part-do</link><guid isPermaLink="false">https://weekly.devleader.ca/p/ai-can-write-the-code-what-part-do</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Mon, 24 Aug 2026 04:26:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1rhF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1662cc4-f439-4609-8d1f-f0346ca267b4_1200x630.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/08/22/ai-can-write-the-code-what-part-do-you-keep-dev-leader-weekly-154" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1rhF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1662cc4-f439-4609-8d1f-f0346ca267b4_1200x630.webp 424w, https://substackcdn.com/image/fetch/$s_!1rhF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1662cc4-f439-4609-8d1f-f0346ca267b4_1200x630.webp 848w, https://substackcdn.com/image/fetch/$s_!1rhF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1662cc4-f439-4609-8d1f-f0346ca267b4_1200x630.webp 1272w, https://substackcdn.com/image/fetch/$s_!1rhF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1662cc4-f439-4609-8d1f-f0346ca267b4_1200x630.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1rhF!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1662cc4-f439-4609-8d1f-f0346ca267b4_1200x630.webp" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e1662cc4-f439-4609-8d1f-f0346ca267b4_1200x630.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:64842,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/08/22/ai-can-write-the-code-what-part-do-you-keep-dev-leader-weekly-154&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/212498928?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1662cc4-f439-4609-8d1f-f0346ca267b4_1200x630.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1rhF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1662cc4-f439-4609-8d1f-f0346ca267b4_1200x630.webp 424w, https://substackcdn.com/image/fetch/$s_!1rhF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1662cc4-f439-4609-8d1f-f0346ca267b4_1200x630.webp 848w, https://substackcdn.com/image/fetch/$s_!1rhF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1662cc4-f439-4609-8d1f-f0346ca267b4_1200x630.webp 1272w, https://substackcdn.com/image/fetch/$s_!1rhF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1662cc4-f439-4609-8d1f-f0346ca267b4_1200x630.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>AI changes the work, not your interests</p></li><li><p>Keep the parts that energize you</p></li><li><p>Offload friction without surrendering judgment</p></li><li><p><strong><a href="https://youtube.com/live/Pso8NVT5fvY?feature=share">Join me for the live stream (or watch the recording) on Monday, August 24 at 7:00 PM Pacific</a></strong>!</p></li></ul><div id="youtube2-Pso8NVT5fvY" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Pso8NVT5fvY&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Pso8NVT5fvY?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2><strong>AI Can Write The Code -- What Part Do You Keep?</strong></h2><p>There is a version of the AI conversation that is mostly about fear: Are software engineers getting replaced? The question that caught my attention from the ExperiencedDevs subreddit was different.</p><p>This developer was not primarily worried about losing their job. They were worried about losing the part of software development that made them care in the first place.</p><p>They can hand increasingly complex work to an LLM and get something useful back. That&#8217;s impressive, but it also leaves them wondering where <em>they</em> fit into the process. The building, the problem-solving, and the feeling of making something are starting to feel different.</p><p>I&#8217;ve talked before about how <strong><a href="https://www.devleader.ca/2026/04/27/ai-career-fears-are-evolving-heres-what-im-hearing-dev-leader-weekly-137?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-154">AI career fears are evolving</a></strong>, but this is not just another replacement-anxiety discussion. This is about engagement. If AI can perform more of the work, <strong>what part of the work do you actually want to keep?</strong></p><p>You can <strong><a href="https://www.youtube.com/watch?v=16fUSxdci2k">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-16fUSxdci2k" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;16fUSxdci2k&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/16fUSxdci2k?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>I Would Start With Questions, Not A Prescription</strong></h2><p>If I were talking directly to this person, I would not jump straight to, &#8220;Here&#8217;s the best AI stack,&#8221; or, &#8220;Here&#8217;s the correct way to stay motivated.&#8221;</p><p>I would ask questions.</p><ul><li><p>What part of software development used to pull you in?</p></li><li><p>Was it exploring a hard problem before the solution was obvious?</p></li><li><p>Was it designing the system?</p></li><li><p>Was it writing the implementation yourself?</p></li><li><p>Was it learning an unfamiliar technology?</p></li><li><p>Was it simply seeing an idea come to life?</p></li></ul><p>Those answers matter because two developers can do the same job and love completely different parts of it.</p><p>I&#8217;ve had people tell me they genuinely enjoy working in legacy codebases. They like the constraints. They like figuring out how to move one piece without breaking five others. Someone else might look at the same situation, read about <strong><a href="https://www.devleader.ca/2023/12/20/dealing-with-legacy-code-how-to-make-anything-more-testable?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-154">dealing with legacy code</a></strong>, and think, &#8220;Please let the AI handle all of this.&#8221;</p><p>Neither person is wrong. They are motivated by different challenges.</p><h2><strong>The Industry Is Optimizing For Throughput</strong></h2><p>My own experience with AI coding tools has changed quickly. Not that long ago, I could hand over a non-trivial feature and the result was somewhere between, &#8220;Cool, that worked,&#8221; and, &#8220;I just created more work for myself.&#8221;</p><p>There were tasks I would not even bother delegating because I expected the back-and-forth to cost more than doing the work myself.</p><p>That line keeps moving.</p><p>The models are more capable. The tools around them are better. Skills, instruction files, custom agents, and stronger development harnesses let us provide useful context without manually writing a 400-page specification for every task.</p><p>I do not think &#8220;one-shot everything&#8221; is a useful goal by itself. I also do not think the future of software development is engineers spending all day writing absurdly detailed specs. But the direction seems clear: <strong>AI is taking on more ambiguous work with less explicit supervision.</strong></p><p>That means organizations will keep looking at throughput. If one person can move several workstreams forward with AI while another person insists on manually completing every step, there may be pressure on the second person to change.</p><p>That is not a moral judgment. It is a constraint worth acknowledging.</p><p>I&#8217;ve shared some of my <strong><a href="https://www.devleader.ca/2026/07/29/github-copilot-cli-for-net-developers-real-workflows-on-a-c-codebase?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-154">real GitHub Copilot CLI workflows on a C# codebase</a></strong>, and the benefit is not that I can avoid thinking. The benefit is that I can spend more of my thinking time where it has the most value.</p><h2><strong>Find The Zoom Level You Actually Enjoy</strong></h2><p>I think about software development at different &#8220;zoom&#8221; levels. It&#8217;s actually something I apply when thinking about codebases, system architecture, workflows... and even careers!</p><p>At one level, you care about the exact loop, condition, and method. Zoom out, and you care about how the classes collaborate. Zoom out again, and you care about service boundaries, data movement, and the shape of the system.</p><p>Some people love the implementation details. Some love the architecture. Some love experimenting in the problem space before any architecture exists.</p><p>For the developer who raised this question on the original Reddit post, it sounded like the early problem-solving pass might be the part they want to preserve. They want to explore the difficult problem themselves and bring in AI afterward.</p><p>That can be a completely reasonable operating model. The important part is understanding the tradeoff. If that early pass becomes the bottleneck while everything around you is optimized for throughput, you may need to adjust how much of it you keep, how long you spend there, or what you hand off afterward.</p><p><em><strong>Actionable Tip:</strong></em> For one week, keep two short lists:</p><ul><li><p>Work that gave you energy</p></li><li><p>Work that drained your energy</p></li></ul><p>Do not write broad labels like &#8220;coding&#8221; or &#8220;meetings.&#8221; Be specific. Was it shaping an API? Untangling a production issue? Writing repetitive mapping code? Reviewing a design? Learning a new domain?</p><p>Patterns will show up. That kind of reflection matters well beyond AI, and it is part of <strong><a href="https://www.devleader.ca/2026/06/01/adhd-burnout-and-building-a-career-that-fits-your-wiring-dev-leader-weekly-142?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-154">building a career that fits how you are wired</a></strong>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Let AI Take The Friction</strong></h2><p>Once you know what you want to keep, look at the rest of the work.</p><p>Maybe you hate writing boilerplate. Maybe tests, observability, or security reviews are the tasks you procrastinate on. Maybe you love designing a feature but lose all momentum when the implementation becomes repetitive.</p><p>AI can help with those parts, but &#8220;give it to AI&#8221; is not the same as &#8220;stop being responsible for it.&#8221;</p><p>If I want an LLM to handle work that I do not enjoy, I still need to set it up to succeed:</p><ol><li><p>Explain the outcome, not just the task label.</p></li><li><p>Provide the constraints and relevant context.</p></li><li><p>Define how the result will be checked.</p></li><li><p>Review high-risk decisions instead of trusting plausible output.</p></li></ol><p>Otherwise, I have not removed the frustrating work. I have replaced it with babysitting an agent that keeps producing the wrong thing.</p><p>The goal is not to surrender judgment. The goal is to reduce the mechanical effort around the judgment.</p><h2><strong>What I Actually Love About Building Software</strong></h2><p>This thought exercise made me look at my own patterns.</p><p>Historically, I have loved building frameworks and reusable systems. Many many moons ago, I built UI framework experiments in XNA and Unity. I have spent time creating ridiculously overcomplicated libraries that almost nobody would use, sometimes including me.</p><p>Why? Because exploring the shape of those systems was fun.</p><p>The same pattern shows up in things like <strong><a href="https://brandghost.ai/">BrandGhost</a></strong> and Needlr. BrandGhost started because I needed a tool as a content creator and wanted to build it. Needlr grew out of the way I liked structuring C# applications. Both gave me a chance to take an idea, shape it, and watch it become real.</p><p>That is the key for me: <strong>I like seeing ideas come to life.</strong></p><p>I care about technical direction. I care about architecture. I care about patterns that will create headaches if they spread across a codebase. I do not feel emotionally attached to writing every <code>if</code> statement or choosing between a <code>for</code> loop and a <code>while</code> loop.</p><p>For a long time, writing all of that code was simply the price of admission.</p><p>There was also an almost inevitable point in some side projects where the design ballooned, I realized I needed to undo earlier decisions, and the recovery work felt bigger than the fun part. Historically, that could be where I abandoned the project.</p><p>AI changes that balance. It can help me refactor, recover, and fill in the mechanical pieces while I stay involved in the direction. That&#8217;s a big reason <strong><a href="https://www.devleader.ca/2026/08/01/why-i-still-build-side-projects-and-what-im-building-next-dev-leader-weekly-151?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-154">I still build side projects</a></strong>. I can explore more ideas without every idea demanding the same amount of manual implementation.</p><h2><strong>AI Can Expand Your Range</strong></h2><p>There is another benefit here: AI can help you move into areas where you do not have deep experience.</p><p>I had an agent put together front-end work for a private dashboard. I could inspect whether the behavior made sense. I could check whether the tests exercised real code instead of a fake system under test. But I did not have years of front-end experience that let me confidently debate every pattern in the implementation.</p><p>Without AI, I might have needed to learn an entire stack just to build a dashboard I needed. Blazor has often been useful to me for a similar reason: I can bring my C# experience into web UI work. AI gives me another way to cross that gap.</p><p>That does not instantly make me a front-end expert. It lets me produce something useful while being honest about where my judgment is strong and where I need more help.</p><p>The same applies to learning. I love the feeling of having learned something, but I am often uncomfortable at the beginning of a new challenge. AI can launch research in parallel, summarize a domain, and give me enough footing to start asking better questions.</p><p>It lowers the barrier. I still have to engage with the result.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Build A Personal Operating Model</strong></h2><p>There is no universal percentage of software development that you should keep for yourself.</p><p>Instead, build an operating model that reflects your interests, your role, and the risk of the work:</p><ul><li><p><strong>Keep</strong> the work that gives you energy and develops judgment you want to retain.</p></li><li><p><strong>Co-pilot</strong> the work you enjoy but can accelerate with feedback or parallel exploration.</p></li><li><p><strong>Delegate</strong> mechanical work where you can define a clear outcome and verify it.</p></li><li><p><strong>Review</strong> decisions involving architecture, security, data, and other expensive failure modes.</p></li></ul><p>Then revisit the model. AI capabilities will change. Your role will change. The parts you enjoy may change too.</p><p><em><strong>Actionable Tip:</strong></em> Pick one task you routinely dislike and improve the handoff to AI. Add the context, examples, constraints, and checks it was missing. Do not expand this to everything at once. Prove that the handoff actually saves time before you depend on it.</p><h2><strong>Humans Are Still In The Picture</strong></h2><p>I am not convinced the destination is, &#8220;People disappear and AI builds everything.&#8221;</p><p>My expectation is that people become much more amplified by AI and whatever tooling grows around it. I do not have a crystal ball, and I am not going to pretend that I know exactly how every software role changes.</p><p>But even in my own projects, the valuable part is not just code appearing faster. It is being able to explore more directions, recover from mistakes that previously killed momentum, and focus my attention on the parts where I have something meaningful to contribute.</p><p>That still requires a person deciding what should exist, what good looks like, and which tradeoffs are acceptable.</p><h2><strong>Wrapping Up</strong></h2><p>If AI could take over one part of your software development work tomorrow, what would you be relieved to lose?</p><p>Now flip it around: <strong>what part would you genuinely miss?</strong></p><p>That second answer is the important one. It tells you where your interest lives. Keep enough of that work to stay engaged, get better at it because you care, and use AI to reduce the friction around it.</p><p>You do not need to reject AI to preserve what you love about software development. You need to be deliberate about where you fit into the process.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/ai-can-write-the-code-what-part-do?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/ai-can-write-the-code-what-part-do?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/ai-can-write-the-code-what-part-do/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/ai-can-write-the-code-what-part-do/comments"><span>Leave a comment</span></a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!u0zc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372722d2-9477-487f-b91c-ce1f14cce0fe_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!u0zc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372722d2-9477-487f-b91c-ce1f14cce0fe_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!u0zc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372722d2-9477-487f-b91c-ce1f14cce0fe_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!u0zc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372722d2-9477-487f-b91c-ce1f14cce0fe_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!u0zc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372722d2-9477-487f-b91c-ce1f14cce0fe_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/372722d2-9477-487f-b91c-ce1f14cce0fe_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!u0zc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372722d2-9477-487f-b91c-ce1f14cce0fe_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!u0zc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372722d2-9477-487f-b91c-ce1f14cce0fe_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!u0zc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372722d2-9477-487f-b91c-ce1f14cce0fe_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!u0zc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F372722d2-9477-487f-b91c-ce1f14cce0fe_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://www.devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[GPT-5.6 Sol Impressed Me -- Then It Wouldn't Stop]]></title><description><![CDATA[Dev Leader Weekly 153]]></description><link>https://weekly.devleader.ca/p/gpt-56-sol-impressed-me-then-it-wouldnt</link><guid isPermaLink="false">https://weekly.devleader.ca/p/gpt-56-sol-impressed-me-then-it-wouldnt</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Mon, 17 Aug 2026 16:47:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yrT2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8a4645c-cc8d-43d0-95d2-6b1e264047fd_1200x630.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/08/15/gpt56-sol-impressed-me-then-it-wouldnt-stop-dev-leader-weekly-153" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yrT2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8a4645c-cc8d-43d0-95d2-6b1e264047fd_1200x630.webp 424w, https://substackcdn.com/image/fetch/$s_!yrT2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8a4645c-cc8d-43d0-95d2-6b1e264047fd_1200x630.webp 848w, https://substackcdn.com/image/fetch/$s_!yrT2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8a4645c-cc8d-43d0-95d2-6b1e264047fd_1200x630.webp 1272w, https://substackcdn.com/image/fetch/$s_!yrT2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8a4645c-cc8d-43d0-95d2-6b1e264047fd_1200x630.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yrT2!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8a4645c-cc8d-43d0-95d2-6b1e264047fd_1200x630.webp" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8a4645c-cc8d-43d0-95d2-6b1e264047fd_1200x630.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:46588,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/08/15/gpt56-sol-impressed-me-then-it-wouldnt-stop-dev-leader-weekly-153&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/211586295?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8a4645c-cc8d-43d0-95d2-6b1e264047fd_1200x630.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yrT2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8a4645c-cc8d-43d0-95d2-6b1e264047fd_1200x630.webp 424w, https://substackcdn.com/image/fetch/$s_!yrT2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8a4645c-cc8d-43d0-95d2-6b1e264047fd_1200x630.webp 848w, https://substackcdn.com/image/fetch/$s_!yrT2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8a4645c-cc8d-43d0-95d2-6b1e264047fd_1200x630.webp 1272w, https://substackcdn.com/image/fetch/$s_!yrT2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8a4645c-cc8d-43d0-95d2-6b1e264047fd_1200x630.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>Better code does not guarantee efficiency</p></li><li><p>Review loops need stopping conditions</p></li><li><p>Scope control still belongs to you</p></li><li><p>YouTube would not let me schedule a stream so... no stream &#128550;</p></li></ul><div><hr></div><h2><strong>GPT-5.6 Sol Impressed Me -- Then It Wouldn&#8217;t Stop</strong></h2><p>One of the weirdest parts of using a stronger coding model is that the failures can start looking useful.</p><p>I had been using the Opus models pretty heavily, especially because the large context window was genuinely impressive. Then I switched back to a GPT model with GPT-5.6 Sol, and my first reaction was basically: <strong>holy crap, this thing is good</strong>.</p><p>I have written before about how <strong><a href="https://www.devleader.ca/2026/03/29/multimodel-support-in-github-copilot-sdk-gpt5-vs-claude-in-c?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-153">different models can change the shape of a Copilot workflow</a></strong>. This was one of the clearest examples I have felt in practice. Sol was not just producing code I liked. It was noticing things around the requested work that other models had missed.</p><p>That sounds great, right?</p><p>It was. Mostly.</p><p>You can <strong><a href="https://www.youtube.com/watch?v=OYv-erYqVoM">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-OYv-erYqVoM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;OYv-erYqVoM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/OYv-erYqVoM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>Going Off The Rails Can Still Produce Gold</strong></h2><p>I was trying to explain model differences to my wife, who uses ChatGPT but does not spend her time comparing coding models like some of us do.</p><p>The example I gave her was scope drift.</p><p>You ask a coding model to change one thing. Then you review the diff and discover that it touched files you never mentioned. With some models, I have looked at those changes and thought, &#8220;What were you even doing over here?&#8221; The answer is usually some version of: yeah, that was unnecessary.</p><p>My early experience with Sol was different.</p><p>It touched unrelated tests, but the tests were actually wrong. It found behavior that technically passed the existing test while still being incorrect. It caught bugs in test code and bugs in underlying features that were outside the narrow task I had assigned.</p><p>That is a pretty incredible feeling. The model appears to wander, you prepare yourself for cleanup, and then you realize it found something real.</p><p>But there is an important distinction here: <strong>useful scope drift is still scope drift</strong>.</p><p>When I am using <strong><a href="https://www.devleader.ca/2026/07/29/github-copilot-cli-for-net-developers-real-workflows-on-a-c-codebase?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-153">GitHub Copilot CLI on a real C# codebase</a></strong>, I need to understand what changed, why it changed, and whether that extra work belongs in the same delivery. Finding a bug is valuable. Quietly folding every discovered bug into one feature is not automatically the right move.</p><h2><strong>A Better Result Can Still Be A Bad Workflow</strong></h2><p>This is where my opinion became more divided.</p><p>I noticed some Copilot sessions taking a <strong>really long time</strong>. Work that I expected to take maybe thirty minutes would keep going for several hours. I would check the session assuming something had broken in the harness or a sub-agent had died.</p><p>Instead, it was still working.</p><p>It had run a review. Then it was fixing review findings. Then it was reviewing the fixes. Then another perspective found something else. On one feature, I saw the pull request appear after roughly five hours of agent work, even though the feature itself was not a monumental coding effort.</p><p>Was the output good? Often, yes.</p><p>Was five hours the right tradeoff? I am not convinced.</p><p>We talk a lot about model quality, but delivery has more dimensions than whether the final code passes tests:</p><ul><li><p>How long did the work take?</p></li><li><p>How much unrelated code changed?</p></li><li><p>How expensive was the review loop?</p></li><li><p>How much attention did I need to spend supervising it?</p></li><li><p>Could we have shipped the intended scope much earlier?</p></li></ul><p>A model can produce better code and still create a worse overall workflow if nobody tells it when to stop.</p><h2><strong>The Review Loop Can Convince Itself</strong></h2><p>I like review agents. I like rubber-duck agents. I like asking for another perspective before I trust a change.</p><p>I also think they can create a nasty feedback loop.</p><p>AI is extremely good at sounding confident. Most of us have read an answer and thought, &#8220;That sounds believable,&#8221; even when we did not have the evidence to prove it. The same thing can happen between agents. A reviewer confidently proposes another improvement, the primary agent accepts the premise, and suddenly the task has a whole new branch of work.</p><p>This is not an argument against <strong><a href="https://www.devleader.ca/2026/07/23/github-copilot-cli-custom-agents-and-skills?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-153">custom agents and skills in Copilot CLI</a></strong>. I use them constantly. It is an argument for making their boundaries explicit.</p><p>One of my sessions started with a few changes to an evaluation harness. When I checked it later, the agent was hand-writing a custom Markdown parser.</p><p>What?</p><p>That was the software equivalent of walking into your house and finding animals casually having a conversation in the living room. Nobody is acting like anything is wrong, but you know this is absolutely not where the evening was supposed to go.</p><p>The parser was not the assignment. The agent had reasoned its way into creating more work, and every additional change gave the next review pass more surface area to inspect.</p><p><strong>Better review is not infinite review.</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Prototype Mode And Hardening Mode Need Different Contracts</strong></h2><p>When I am building something, I am usually operating in one of two modes.</p><p>The first is prototyping. I want to know whether an idea is feasible. Can I connect these pieces? Does this service do what I need? Is the core experience even possible? The code may be throwaway, and that is fine.</p><p>The second is hardening. The feasibility question is already answered. Now I need regression tests, repeatable behavior, operational reliability, and confidence that I can keep changing the system without breaking it.</p><p>Those modes need different instructions.</p><p>If I am prototyping, an agent that spends hours polishing abstractions has missed the point. If I am hardening, an agent that proves the happy path once and declares victory has also missed the point.</p><p><em><strong>Actionable Tip</strong></em>: tell the agent which mode it is in before describing the task.</p><p>For a prototype, define the question you need answered and explicitly deprioritize polish. For hardening work, name the behaviors that need regression coverage and define which adjacent changes are allowed. If the agent discovers something outside that boundary, have it report the finding instead of automatically implementing it.</p><p>That one distinction can prevent a lot of &#8220;How did we end up building this?&#8221; moments.</p><h2><strong>A Million Tokens Does Not Remove Context Management</strong></h2><p>The other issue I have seen is around the context window.</p><p>GPT-5.6 Sol gives me a huge amount of context to work with, but in some longer Copilot sessions I have still hit a point where the session effectively stops making progress. In my case, this has happened with plenty of context apparently remaining, often somewhere around the final quarter to third of the window.</p><p>The frustrating part is that compaction can fail at exactly the moment I need it.</p><p>The workaround that helped me during this time was restarting the Copilot process for the same session with <code>/restart</code>, then running <code>/compact</code>. That has let the work continue, but it is not behavior I have seen in quite the same way with other models.</p><p>Is that the model? The harness? The interaction between them? I had <strong>no idea</strong> -- but I do know that it was a pain in the butt.</p><p>That uncertainty matters. I am describing what I have observed in my sessions, not declaring a universal GPT-5.6 Sol limitation. And for what it&#8217;s worth, Copilot CLI seemed to have been patched for this since I initially was ranting about it on Code Commute.</p><p>The broader lesson still holds: <strong><a href="https://www.devleader.ca/2026/03/21/managing-sessions-and-context-in-github-copilot-sdk-for-c-patterns-and-best-practices?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-153">session and context management remain part of agentic development</a></strong>. A larger context window delays some problems. It does not eliminate the need for checkpoints, compaction, and clean task boundaries.</p><h2><strong>What I Am Changing In My Workflow</strong></h2><p>I am still impressed with the model. I am not switching away because a few sessions ran too long.</p><p>But I am changing how I supervise the work.</p><p><em><strong>Actionable Tip</strong></em>: give every agentic task a scope budget and a stopping rule.</p><p>Here is what that looks like for me:</p><ol><li><p><strong>Define the delivery boundary.</strong> Name the behavior, files, or subsystem that belongs in the task.</p></li><li><p><strong>Separate discoveries from implementation.</strong> If the agent finds an unrelated bug, capture it unless it blocks the requested change.</p></li><li><p><strong>Bound review loops.</strong> One useful review pass is not permission to keep reopening the design forever.</p></li><li><p><strong>Create checkpoints.</strong> Ask for a status summary before a long-running session disappears into another branch of work.</p></li><li><p><strong>Watch elapsed time.</strong> If a modest feature is still running hours later, inspect the current plan instead of assuming more time means more quality.</p></li></ol><p>Permissions and tool restrictions are still important, and I have a full breakdown of <strong><a href="https://www.devleader.ca/2026/07/21/the-github-copilot-cli-permission-model-what-it-can-and-cant-touch?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-153">what Copilot CLI can and cannot touch</a></strong>. But permissions only answer whether an agent <em>can</em> do something. They do not answer whether that work belongs in the current task.</p><p>That part still belongs to us.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>The Model Can Be Impressive And Still Need Supervision</strong></h2><p>My first impression of GPT-5.6 Sol is still extremely positive.</p><p>It caught real problems that I did not ask it to find. It handled code with a level of awareness that surprised me. It made &#8220;going off the rails&#8221; look productive, which is not something I expected to say.</p><p>At the same time, I have watched it spend hours following review loops, expand a small task into a custom parser, and hit context problems before I expected them.</p><p>Both things can be true.</p><p>The model can be excellent, and the workflow around it can still need tuning. The output can be correct, and the process can still be too slow. The extra finding can be valuable, and it can still belong in a separate issue.</p><p>I do not want an agent that blindly stops the second it notices something outside the prompt. That would throw away one of the most valuable parts of a strong model. I want an agent that notices the problem, explains it, and lets the delivery boundary remain intentional.</p><p>That is the balance I am working toward: <strong>more capability without surrendering scope control</strong>.</p><p>If you are using GPT-5.6 Sol or another model for long-running coding work, pay attention to more than the final diff. Watch the route it took to get there. That is where the real workflow problems tend to show up.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/gpt-56-sol-impressed-me-then-it-wouldnt?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/gpt-56-sol-impressed-me-then-it-wouldnt?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/gpt-56-sol-impressed-me-then-it-wouldnt/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/gpt-56-sol-impressed-me-then-it-wouldnt/comments"><span>Leave a comment</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BS18!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcd78f90-6eff-4385-aa6e-4bd39a88a4e1_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!BS18!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcd78f90-6eff-4385-aa6e-4bd39a88a4e1_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!BS18!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcd78f90-6eff-4385-aa6e-4bd39a88a4e1_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!BS18!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcd78f90-6eff-4385-aa6e-4bd39a88a4e1_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BS18!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcd78f90-6eff-4385-aa6e-4bd39a88a4e1_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dcd78f90-6eff-4385-aa6e-4bd39a88a4e1_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!BS18!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcd78f90-6eff-4385-aa6e-4bd39a88a4e1_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!BS18!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcd78f90-6eff-4385-aa6e-4bd39a88a4e1_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!BS18!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcd78f90-6eff-4385-aa6e-4bd39a88a4e1_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!BS18!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcd78f90-6eff-4385-aa6e-4bd39a88a4e1_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://www.devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[What Comes After Senior Software Engineer?]]></title><description><![CDATA[Dev Leader Weekly 152]]></description><link>https://weekly.devleader.ca/p/what-comes-after-senior-software</link><guid isPermaLink="false">https://weekly.devleader.ca/p/what-comes-after-senior-software</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Mon, 10 Aug 2026 04:24:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!r_RF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cb487bd-8d90-4e5f-bd12-fdbd9372b09a_1536x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/08/09/what-comes-after-senior-software-engineer-dev-leader-weekly-152" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r_RF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cb487bd-8d90-4e5f-bd12-fdbd9372b09a_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!r_RF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cb487bd-8d90-4e5f-bd12-fdbd9372b09a_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!r_RF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cb487bd-8d90-4e5f-bd12-fdbd9372b09a_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!r_RF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cb487bd-8d90-4e5f-bd12-fdbd9372b09a_1536x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r_RF!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cb487bd-8d90-4e5f-bd12-fdbd9372b09a_1536x1024.webp" width="1200" height="800.2747252747253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4cb487bd-8d90-4e5f-bd12-fdbd9372b09a_1536x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:85994,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/08/09/what-comes-after-senior-software-engineer-dev-leader-weekly-152&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/210554504?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cb487bd-8d90-4e5f-bd12-fdbd9372b09a_1536x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!r_RF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cb487bd-8d90-4e5f-bd12-fdbd9372b09a_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!r_RF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cb487bd-8d90-4e5f-bd12-fdbd9372b09a_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!r_RF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cb487bd-8d90-4e5f-bd12-fdbd9372b09a_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!r_RF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cb487bd-8d90-4e5f-bd12-fdbd9372b09a_1536x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>Senior is a successful career destination</p></li><li><p>Higher levels require broader organizational scope</p></li><li><p>Career progression is not a straight line</p></li><li><p><strong><a href="https://youtube.com/live/NYYq9yVMJfE?feature=share">Join me for the live stream (or watch the recording) on Monday, August 10 at 7:00 PM Pacific</a></strong>!</p></li></ul><div id="youtube2-NYYq9yVMJfE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;NYYq9yVMJfE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/NYYq9yVMJfE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2><strong>What Comes After Senior Software Engineer?</strong></h2><p>Have you ever looked at a software engineering career ladder and wondered why everything seems to move reasonably well until senior, and then suddenly the next step feels like a wall?</p><p>You&#8217;re not imagining that shift.</p><p>I have talked before about <strong><a href="https://www.devleader.ca/2025/07/05/why-youre-stuck-at-senior-software-engineer-dev-leader-weekly-101?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-152">why engineers can feel stuck at senior</a></strong>, but I want to approach this from a slightly different angle. Sometimes the friction is about your growth, your manager, or unclear expectations. But sometimes the ladder itself genuinely changes shape after senior.</p><p>That does <strong>not</strong> mean you failed. It does not mean your company wants to hold you back. And despite how easy it is to blame every weird career problem on AI right now, I do not think AI created this one.</p><p>So what is actually going on?</p><p>You can <strong><a href="https://www.youtube.com/watch?v=faV_vitlEbg">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-faV_vitlEbg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;faV_vitlEbg&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/faV_vitlEbg?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>The Ladder Changes Shape After Senior</strong></h2><p>The first complication is that software engineering titles are wildly inconsistent.</p><p>Junior, mid-level, and senior are common concepts, even if a company calls them Software Engineer I, Software Engineer II, SDE, SWE, or something else. Beyond senior? Things get messy fast.</p><p>One company might have staff, principal, senior principal, distinguished, fellow, or partner roles. Another company might skip staff entirely. A smaller company might have nothing beyond senior on the individual contributor track.</p><p>That was my experience before Microsoft. For most of my eight years there, the technical path was basically developer and senior developer. There was an architect role that never felt fully defined. Even as a technical manager, I eventually reached a point where there was no clearly established next role on that track.</p><p>Was I suddenly incapable of growing? Of course not. <strong>The organization simply had not created an endless sequence of titles.</strong></p><p>That distinction matters. We often treat a career ladder like a universal map, but it is really a model of what one organization needs.</p><h2><strong>Title Inflation Makes The Wall Feel Worse</strong></h2><p>I want to be careful here because I do not have data to prove this. Treat it as an observation from roughly fifteen years in the industry, not a measured fact.</p><p>I suspect the expected time between early-career promotions has compressed. Companies use titles as recruiting tools. Employees move between organizations more often. Managers feel pressure to show progression. People understandably compare their timelines with everyone announcing promotions online.</p><p>The result is an expectation that every step should arrive on roughly the same schedule -- or at least that there should be very concrete steps in a prescribed amount of time to get there.</p><p>But careers are not linear. Going from level one to level two in a year does not mean every future level should take one more year. Follow that math far enough and everyone becomes a CTO before the end of the decade. Clearly, that is not how organizations work.</p><p>The higher you go, the larger the expected scope usually becomes. There are fewer roles with that scope, fewer opportunities to demonstrate it, and fewer people the organization actually needs operating there.</p><p>That curve was always going to get steeper. Title inflation just makes the change feel more abrupt.</p><h2><strong>Senior Can Be The Destination</strong></h2><p>The phrase people often use is <strong>terminal level</strong>. I don&#8217;t love it. It sounds dark, like your career has arrived at a dead end.</p><p>That&#8217;s not what it means.</p><p>A terminal level is a stable point where someone can perform successfully for the rest of their career. For many software engineering organizations, that point is somewhere in the senior band.</p><p>Think about what that says about you. You are trusted to solve difficult problems. You can deliver high-quality work consistently. Teams depend on you. You can guide other engineers, handle ambiguity, and operate without someone spelling out every step.</p><p>That <em><strong>is</strong></em> a successful career.</p><p>It can also be a demanding one. I have written about how <strong><a href="https://www.devleader.ca/2025/12/06/senior-engineers-spend-less-time-coding-dev-leader-weekly-118?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-152">senior engineers often spend less time coding</a></strong> because their impact increasingly includes design, mentoring, coordination, and helping others move faster. Staying at senior does not mean staying static.</p><p>Your skills can deepen. Your influence can grow. Your compensation can improve. You can take on new domains and become the person everyone relies on without collecting another title every eighteen months.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Compensation And Promotion Are Related, Not Identical</strong></h2><p>This is usually where someone asks: &#8220;Okay, but what happens to my compensation if I am not getting promoted?&#8221;</p><p>Fair question.</p><p>The exact answer depends on the company, but promotion should not be the only mechanism for recognizing strong performance. Salary growth, bonuses, stock, expanded ownership, and other rewards can continue while you remain in the same level.</p><p>A promotion usually comes with a larger adjustment because the expectations changed. But that does not mean every strong review must end with a new title.</p><p>You can be performing extremely well at senior, receive above-target rewards, and still not be operating at the next level. Those signals overlap, but they are not identical.</p><p>That can actually be a healthy balance. Maybe you are kicking ass at senior, being paid fairly, doing meaningful work, and preserving room for your family or everything else outside work. There is nothing lesser about that choice.</p><h2><strong>Organizations Cannot Be Made Entirely Of Principal Engineers</strong></h2><p>Now we get to the structural part.</p><p>Imagine an organization where every engineer is principal, staff, distinguished, or whatever the top levels are called. It sounds amazing if you picture a video game team where everyone has max stats. If you could build an NBA 2K team of max-stat players, or your RPG party was all max level, that&#8217;s what you&#8217;d want -- right?</p><p>In practice, what work are all of those people doing?</p><p>The next level after senior usually expects broader impact across teams, products, or an organization. If you are actively targeting that path, I have a separate breakdown of <strong><a href="https://www.devleader.ca/2026/07/11/what-it-actually-takes-to-become-a-principal-engineer-dev-leader-weekly-148?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-152">what principal-level scope actually looks like</a></strong>. The important point here is that cross-organization work is not infinite -- at least not infinitely done in parallel with all the other cross-organization work.</p><p>A company needs people setting technical direction across teams. It also needs many more people turning that direction into reliable products, systems, and customer outcomes.</p><p>You do not need hundreds of engineers independently trying to lead company-wide initiatives. At some point, everyone collides with everyone else.</p><p>This is not an argument for gatekeeping. It is an explanation of why the number of roles naturally narrows. <strong>The organization needs a different distribution of scope at each level.</strong></p><h2><strong>Healthy Teams Need A Spread Of Experience</strong></h2><p>The same idea applies within a team.</p><p>You do not want a team made entirely of brand-new engineers because the coaching and operational overhead would overwhelm the few experienced people supporting them. But stacking a team entirely with the highest-level engineers does not make sense either.</p><p>A healthy team usually has a spread:</p><ul><li><p>Junior engineers building fundamentals and taking on well-scoped work</p></li><li><p>Mid-level engineers carrying a large share of independent delivery</p></li><li><p>Senior engineers handling complex work, mentoring, and creating leverage</p></li><li><p>A smaller number of staff or principal engineers working across broader boundaries</p></li></ul><p>That spread creates continuity. Junior engineers learn from people with more experience. Senior engineers develop coaching and delegation skills. The organization builds its next generation instead of hoping experienced hires appear forever.</p><p>This is where AI enters the conversation, but not as the cause of the senior-level wall. Companies deciding they no longer need junior engineers because AI can replace them are creating a different problem. I have shared my concerns about <strong><a href="https://www.devleader.ca/2025/06/07/are-junior-developers-in-big-trouble-with-ai-usage-dev-leader-weekly-97?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-152">junior developers relying on AI without building fundamentals</a></strong>, and cutting off the junior pipeline removes mentoring opportunities and future senior talent too.</p><p>The whole system needs continuity. You cannot keep only the top of the pyramid and expect it to replenish itself.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>What To Do When You Feel Stuck</strong></h2><p>Understanding the structure does not make vague promotion feedback any less frustrating.</p><p>If your manager keeps telling you, &#8220;Maybe next time,&#8221; while you spend another review cycle trying to prove yourself, you need more than encouragement. You need clarity.</p><p><em><strong>Actionable Tip</strong></em>: ask questions that separate your performance from the organization&#8217;s available opportunities:</p><ol><li><p><strong>What specific evidence is missing?</strong> Ask for observable examples, not &#8220;more impact.&#8221;</p></li><li><p><strong>Am I consistently operating at the next level?</strong> A strong year at your current level is not automatically the same thing.</p></li><li><p><strong>Does this team have work with the required scope?</strong> You cannot demonstrate cross-team leadership if every meaningful decision is already owned elsewhere.</p></li><li><p><strong>Is a role realistically available?</strong> Sometimes the organizational shape creates more back pressure than anyone wants to say directly.</p></li><li><p><strong>What would make the next review materially different?</strong> If nobody can answer, that is useful information.</p></li></ol><p>You may discover that you have real gaps to close. Great. Now you can work on something concrete.</p><p>You may discover that you are ready, but the organization has no room. That does not automatically mean you should leave, but it gives you an honest tradeoff to consider. An internal move or another company may offer the scope that your current team cannot.</p><p>And please protect your energy. There is a difference between stretching into bigger responsibility and running yourself into the ground chasing a label. My advice on <strong><a href="https://www.devleader.ca/2025/10/11/promotions-without-burnout-dev-leader-weekly-112?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-152">pursuing promotions without burning yourself out</a></strong> still applies here.</p><h2><strong>Your Title Is Not Your Entire Career</strong></h2><p>I understand why titles matter. They affect compensation, opportunity, how recruiters find you, and how many of us measure whether we are moving forward.</p><p>But the ladder cannot be the only scoreboard.</p><p>Senior software engineer is not a waiting room where you sit until your real career begins. It is a high-skill, high-trust role that many people work very hard to reach. If you stay there and continue doing excellent work, that is not failure.</p><p>If you want principal, staff, management, or another path, go after it with clear eyes. Learn what the role actually requires. Find out whether your organization has the right opportunities. Build the evidence. Decide whether the tradeoffs fit the life you want.</p><p><em><strong>Don&#8217;t let the absence of another title erase everything you have already accomplished.</strong></em></p><p>Careers are not straight lines. Organizations are not infinite ladders. And success is much bigger than the word printed beside your name.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/what-comes-after-senior-software?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/what-comes-after-senior-software?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/what-comes-after-senior-software/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/what-comes-after-senior-software/comments"><span>Leave a comment</span></a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6ApY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea558fcd-c066-4d0b-967d-00777795bf0f_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!6ApY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea558fcd-c066-4d0b-967d-00777795bf0f_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!6ApY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea558fcd-c066-4d0b-967d-00777795bf0f_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!6ApY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea558fcd-c066-4d0b-967d-00777795bf0f_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6ApY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea558fcd-c066-4d0b-967d-00777795bf0f_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ea558fcd-c066-4d0b-967d-00777795bf0f_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!6ApY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea558fcd-c066-4d0b-967d-00777795bf0f_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!6ApY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea558fcd-c066-4d0b-967d-00777795bf0f_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!6ApY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea558fcd-c066-4d0b-967d-00777795bf0f_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!6ApY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea558fcd-c066-4d0b-967d-00777795bf0f_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[Why I Still Build Side Projects (And What I'm Building Next)]]></title><description><![CDATA[Dev Leader Weekly 151]]></description><link>https://weekly.devleader.ca/p/why-i-still-build-side-projects-and</link><guid isPermaLink="false">https://weekly.devleader.ca/p/why-i-still-build-side-projects-and</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Mon, 03 Aug 2026 05:52:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QlNB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4404c100-13d6-488b-81aa-7e038b80d3d8_1536x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/08/01/why-i-still-build-side-projects-and-what-im-building-next-dev-leader-weekly-151" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QlNB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4404c100-13d6-488b-81aa-7e038b80d3d8_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!QlNB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4404c100-13d6-488b-81aa-7e038b80d3d8_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!QlNB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4404c100-13d6-488b-81aa-7e038b80d3d8_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!QlNB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4404c100-13d6-488b-81aa-7e038b80d3d8_1536x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QlNB!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4404c100-13d6-488b-81aa-7e038b80d3d8_1536x1024.webp" width="1200" height="800.2747252747253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4404c100-13d6-488b-81aa-7e038b80d3d8_1536x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:153252,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/08/01/why-i-still-build-side-projects-and-what-im-building-next-dev-leader-weekly-151&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/209587699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4404c100-13d6-488b-81aa-7e038b80d3d8_1536x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QlNB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4404c100-13d6-488b-81aa-7e038b80d3d8_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!QlNB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4404c100-13d6-488b-81aa-7e038b80d3d8_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!QlNB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4404c100-13d6-488b-81aa-7e038b80d3d8_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!QlNB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4404c100-13d6-488b-81aa-7e038b80d3d8_1536x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>Build the thing for yourself first</p></li><li><p>A thin paid layer beats abandonment</p></li><li><p>Free tools are still worth shipping</p></li><li><p>No livestream this week. Sorry!</p></li></ul><div><hr></div><h2><strong>Why I Still Build Side Projects (And What I&#8217;m Building Next)</strong></h2><p>I&#8217;m twenty-plus years into programming and about fifteen years into my career, and I am still building side projects. That is not an accident, and it is not nostalgia. <strong>Building things is still the fastest way I learn</strong>, and it is still the advice I give to almost everyone who tells me their resume feels thin.</p><p>But something has shifted for me lately. I&#8217;ve gotten to the point where if I am going to sink my limited free time into building something, I should at least be open to the idea of charging a couple bucks for it. Not building a business. Not quitting my job. Just putting a very thin layer on the front of something I was going to build for myself anyway.</p><p>That small mental shift turns out to be a surprisingly good cure for the &#8220;ooh, shiny&#8221; problem that kills most side projects.</p><p>You can <strong><a href="https://www.youtube.com/watch?v=K6TEjY_JR2I">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-K6TEjY_JR2I" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;K6TEjY_JR2I&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/K6TEjY_JR2I?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>Twenty Years In And I Am Still Building</strong></h2><p>Whenever someone tells me their resume feels weak -- they&#8217;re not employed yet, or they&#8217;re junior and applications keep going nowhere -- my answer is almost always the same. <strong>Go build something.</strong></p><p>It works for two reasons. The obvious one is that it gives you something concrete to talk about instead of a list of technologies you have &#8220;familiarity with.&#8221; The less obvious one, and honestly the more important one, is that building things is how you actually learn. Reading about a pattern and shipping something that depends on that pattern are completely different experiences.</p><p>I have written about this before in the context of <strong><a href="https://www.devleader.ca/2026/01/31/side-projects-and-soft-skills-in-interviews-dev-leader-weekly-125?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-151">why side projects and soft skills keep coming up in interviews</a></strong>, and I stand by all of it. But I want to be clear that this is not advice I give from a distance. I am still doing it.</p><p>Most of my side project time goes into <strong><a href="https://www.brandghost.ai/">BrandGhost</a></strong>, which is my main thing outside of work. It takes up enough of my attention that I have pushed other things aside for it -- including making <strong><a href="https://youtube.com/@devleader">videos on my main YouTube channel</a></strong> for a stretch. There are only so many hours, and something has to lose.</p><p>But there is always a pile of other stuff I want to poke at.</p><h2><strong>The Free Things I Have Already Shipped</strong></h2><p>Before I get into what I want to build, here is what is already out there for free, because some of you might actually find these useful.</p><p><strong>Needlr</strong> is a dependency injection and assembly-scanning library I put together. It is extremely opinionated. I am not planning to sell it, and I am not trying to convince anyone it&#8217;s the one true way. I build basically all of my C# stuff with plugin frameworks, and that pattern kept showing up over and over, so I extracted it. If you want to use it, great. If not, that&#8217;s completely fine. If you want to see the shape of it, I have walked through <strong><a href="https://www.devleader.ca/2026/02/15/plugin-architecture-with-needlr-in-net-building-modular-applications?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-151">building modular .NET applications with Needlr&#8217;s plugin architecture</a></strong>.</p><p><strong>Homebase</strong> came directly out of frustration. If you spend any time on social media, you have clicked a hundred &#8220;link in bio&#8221; links that drop you on a landing page full of other links. Linktree is one of the platforms that does this, and I was a paying customer for a while. Then I hit a problem where video previews were rendering as black thumbnails. There is no good reason a YouTube thumbnail should just fail to show up. I opened a support ticket, got the runaround for about a month, and eventually thought: I pay for this, and I could just build it myself.</p><p>So I did, in roughly a weekend. <strong><a href="https://www.devleader.ca/projects/homebase">Homebase is on GitHub</a></strong>, it is free, you can clone it or fork it, and it is optimized for SEO, AEO, and GEO. You can add product links and a bunch of other things. And if you&#8217;re wondering how to configure it -- you point Claude or Copilot at the repo, tell it where your stuff goes, and it handles the config files.</p><p><strong>A few MCP servers</strong> for Google Search Console, Google Keyword Planner, and Google Analytics. Google did not have official MCP servers for these, which still surprises me. Mine are vibe coded, and I believe I have versions in both C# and Go because I wanted to mess around. <strong><a href="https://www.devleader.ca/projects">They&#8217;re on my GitHub</a></strong>. I genuinely hope Google ships their own and makes mine obsolete. If you want to understand what is actually happening under the hood in one of these, I have a full walkthrough on <strong><a href="https://www.devleader.ca/2026/07/06/building-mcp-servers-and-clients-in-c-the-complete-guide?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-151">building MCP servers and clients in C#</a></strong>.</p><p>None of those are businesses. They&#8217;re scratch-your-own-itch projects that happened to be useful enough to publish.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>The Thin Paid Layer</strong></h2><p>Here is where my thinking has changed.</p><p>I have a problem that I suspect a lot of you share: I could go build this, or I could go build that, and then something shinier appears and I drift toward it. The half-finished graveyard is real. Most side projects don&#8217;t die because they were bad ideas -- they die because nothing forces them across the line from &#8220;sort of works on my machine&#8221; to &#8220;actually usable.&#8221;</p><p><strong>A thin paid layer is the forcing function.</strong></p><p>The idea is simple. Build the thing for yourself, because you actually want it. Get it to the point where you would use it. Then put a very thin layer on the front -- pay a couple bucks, here&#8217;s a license key, done. If people pay, awesome. If nobody pays, I still have the tool I wanted.</p><p>What I am explicitly <em>not</em> doing is turning every idea into a full-fledged business with a marketing site, a support org, and a roadmap. That is a completely different commitment and it is the thing that makes people avoid starting at all.</p><p><em><strong>Actionable Tip</strong></em>: pick the side project you have abandoned closest to &#8220;done.&#8221; Define the smallest version you would personally use every week. Ship that, and only that. Whether you put a paywall in front of it is secondary -- the point is having a definition of finished that isn&#8217;t &#8220;everything I imagined.&#8221;</p><h2><strong>What I Actually Want To Build Next</strong></h2><p>These are all deeply opinionated, and you might read them and think &#8220;why would anyone pay for that?&#8221; That&#8217;s kind of the point. I am building them for me.</p><p><strong>A modern MySQL Workbench with an LLM attached.</strong> Workbench is being retired, and from what I have read the plan is a lighter-weight experience inside VS Code. That&#8217;s neat, but personally I want the actual Workbench form factor -- just less dated. And the thing I really want is to give a read-only connection to an LLM and have it optimize queries with me. Connect with whatever access level you want (admin, write, read-only), poke at your data, and then have an agentic back-and-forth about query plans. I already do a version of this by giving Copilot read-only database access and letting it run <code>EXPLAIN</code> and look for optimizations. I just want it to be a real tool instead of a workflow I re-assemble every time.</p><p><strong>A personal finance planner built for two people.</strong> My wife and I keep separate accounts but operate with full transparency -- the only exception being gifts we&#8217;re trying to keep a surprise. If she asks what&#8217;s in my 401k, the answer is just the number. We treat that stuff as ours. So I want something that pulls in financial data read-only across accounts and gives us a shared view plus a shared agentic session. She has really taken to using ChatGPT, so the idea is being able to ask questions like &#8220;where is most of our spend going?&#8221; or &#8220;how do the investments look?&#8221; against a central brain that can actually see across everything. If I build it, it will be configurable -- bring your own provider, or run a local LLM if you would rather your financial data never leave the house. I have no idea what the right form factor is yet.</p><p><strong>A voice companion for GitHub.</strong> This is the one I&#8217;m poking at most actively. I feel like the GitHub app should do this and probably will eventually, but it doesn&#8217;t today. A big chunk of how I get work done now is creating issues and assigning them to agents. What I want is a push-to-talk companion -- the same interaction model you get in ChatGPT -- that lets me navigate all of that by voice. &#8220;What new issues came in today?&#8221; I have automation that scans BrandGhost error logs and files issues automatically, so there&#8217;s usually something. &#8220;Give me more detail on issue 123.&#8221; &#8220;Cool, assign that to an agent.&#8221; And then later: &#8220;Check in on that agent session -- did the PR land? Did it add proper tests?&#8221; The goal is being able to have that conversation without reading code. Maybe the answer isn&#8217;t even a dedicated app -- maybe it&#8217;s just wiring an existing assistant to my repositories through an MCP server. I need to play with it. If it does end up being a mobile app, it goes on the app stores.</p><p><strong>A photo recovery tool.</strong> I used to work in digital forensics, and I spent about a decade building tools for exactly this. Since leaving, people still occasionally come to me with &#8220;I think these files are deleted, can you help?&#8221; -- and the funny part is I no longer have access to any of the tooling I helped build. I know how to build it again. Is that market saturated? Absolutely. But I have example code, it solves a real problem people bring to me, and there is no reason it can&#8217;t live on a website for a couple bucks.</p><p><strong>Websites for non-technical friends.</strong> This one isn&#8217;t a product, it&#8217;s a favor I keep repeating. I have a close friend in the trades doing drywall and restoration work who is reasonably technical but would never spend the time to learn web development. He would get real value out of a proper site. I did the same thing for my video editor when he started a business on the side -- he has been fantastic about turning videos around when I hand them over late, so building him a site was an easy yes. The key detail is that I structure them so the owner can maintain them: copy a config file into ChatGPT, ask for the change, paste it back, done. I might start advertising that.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Why I Trust Agents With Some Of This And Not All Of It</strong></h2><p>The voice companion idea probably sounds sketchy to some people. &#8220;You&#8217;re just going to let AI do your work?&#8221;</p><p>Sort of. Here&#8217;s the honest breakdown.</p><p>There is a category of work where I trust an agent to go end-to-end, and it&#8217;s not blind trust -- it&#8217;s because I have built a lot of guardrails. File-based instructions that encode how the codebase works. <strong><a href="https://www.devleader.ca/2026/07/24/realworld-roslyn-analyzer-examples-in-c-naming-null-checks-and-log-validators?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-151">Roslyn analyzers that enforce naming, null checks, and log validation</a></strong> so bad patterns fail at compile time rather than in review. Scoped <strong><a href="https://www.devleader.ca/2026/07/23/github-copilot-cli-custom-agents-and-skills?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-151">custom agents and skills in Copilot CLI</a></strong> so each task runs with a narrow, well-defined job. The gates are what make the trust reasonable.</p><p>Then there is the other end of the spectrum. Big feature work, architectural changes, large refactors -- I&#8217;m not handing those over and walking away. I will still assign them to an agent and let it crank, but <strong>my expectation is not that it gets it right</strong>. My expectation is that I learn something from watching how it approaches the problem.</p><p>Sometimes there are genuine gold nuggets in there. Other times I look at the approach and immediately think &#8220;oh, that&#8217;s definitely not what I want&#8221; -- and that&#8217;s still valuable, because I often didn&#8217;t have a strong opinion until I saw a concrete option. Getting to &#8220;no, not that&#8221; without spending my own hours on it is a legitimately good trade.</p><p>Yes, it costs tokens. Yes, it costs someone&#8217;s compute. But it didn&#8217;t cost my evening.</p><h2><strong>My Best Ideas Show Up When I Can&#8217;t Act On Them</strong></h2><p>I don&#8217;t know if this is universal, but it is extremely consistent for me: <strong>my best ideas arrive precisely when I am nowhere near a computer.</strong></p><p>Not at my desk. Not in a planning session. Walking, driving, at the gym -- suddenly I know exactly how to solve the thing I was stuck on last week, or a feature idea shows up fully formed. And then by the time I&#8217;m back at a keyboard, it has faded into something much blurrier.</p><p>That is honestly a big part of why the voice companion idea appeals to me so much. Not just &#8220;assign this issue to an agent,&#8221; but being able to talk through a half-formed idea out loud, argue with it a bit, and then say &#8220;open a GitHub issue on this repo with what we just worked out.&#8221; I have done exactly that with ChatGPT before, and the friction of translating it into the real repo is the only annoying part left.</p><p><em><strong>Actionable Tip</strong></em>: whatever your capture mechanism is, make it require zero setup. Voice memo, a note that&#8217;s one tap away, a text to yourself -- it doesn&#8217;t matter which. The ideas you lose aren&#8217;t the ones you rejected, they&#8217;re the ones you never wrote down.</p><h2><strong>Might As Well Turn The Fun Into Something</strong></h2><p>The through-line for me is that I am going to keep building this stuff regardless. That was true before there was any chance of making a dollar from it, and it will be true after.</p><p>But I&#8217;m at a point in my career and my life where if I&#8217;m already spending the time, and the thing I built is genuinely useful, it seems a little silly not to put it somewhere people can find it. Worst case, nobody buys it and I still have the tool. Best case, a few extra dollars show up and I get a nudge to actually finish the next one.</p><p>That&#8217;s the trade I&#8217;m making. Build for yourself first. Ship the smallest usable version. Let the thin paid layer be the reason you cross the finish line instead of drifting to the next shiny thing.</p><p>So -- what are you building? I&#8217;d genuinely like to hear, especially if you&#8217;re leaning on AI to crank out something interesting. Let me know.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/subscribe?"><span>Subscribe now</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/why-i-still-build-side-projects-and?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/why-i-still-build-side-projects-and?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/why-i-still-build-side-projects-and/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/why-i-still-build-side-projects-and/comments"><span>Leave a comment</span></a></p><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5XlQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a35e64-d36d-4dd6-8158-cdb82c2e7dcf_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!5XlQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a35e64-d36d-4dd6-8158-cdb82c2e7dcf_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!5XlQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a35e64-d36d-4dd6-8158-cdb82c2e7dcf_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!5XlQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a35e64-d36d-4dd6-8158-cdb82c2e7dcf_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5XlQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a35e64-d36d-4dd6-8158-cdb82c2e7dcf_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/51a35e64-d36d-4dd6-8158-cdb82c2e7dcf_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!5XlQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a35e64-d36d-4dd6-8158-cdb82c2e7dcf_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!5XlQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a35e64-d36d-4dd6-8158-cdb82c2e7dcf_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!5XlQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a35e64-d36d-4dd6-8158-cdb82c2e7dcf_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!5XlQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a35e64-d36d-4dd6-8158-cdb82c2e7dcf_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://www.devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[Tech Lead in a Broken Team? What You Need to Do First]]></title><description><![CDATA[Dev Leader Weekly 150]]></description><link>https://weekly.devleader.ca/p/tech-lead-in-a-broken-team-what-you</link><guid isPermaLink="false">https://weekly.devleader.ca/p/tech-lead-in-a-broken-team-what-you</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Mon, 27 Jul 2026 16:46:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!kzFW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728e7cdb-ea4c-438c-ab5c-5554f4801664_1200x630.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/07/25/tech-lead-in-a-broken-team-what-you-need-to-do-first-dev-leader-weekly-150" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kzFW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728e7cdb-ea4c-438c-ab5c-5554f4801664_1200x630.webp 424w, https://substackcdn.com/image/fetch/$s_!kzFW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728e7cdb-ea4c-438c-ab5c-5554f4801664_1200x630.webp 848w, https://substackcdn.com/image/fetch/$s_!kzFW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728e7cdb-ea4c-438c-ab5c-5554f4801664_1200x630.webp 1272w, https://substackcdn.com/image/fetch/$s_!kzFW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728e7cdb-ea4c-438c-ab5c-5554f4801664_1200x630.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kzFW!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728e7cdb-ea4c-438c-ab5c-5554f4801664_1200x630.webp" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/728e7cdb-ea4c-438c-ab5c-5554f4801664_1200x630.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:31136,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/07/25/tech-lead-in-a-broken-team-what-you-need-to-do-first-dev-leader-weekly-150&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/208711505?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728e7cdb-ea4c-438c-ab5c-5554f4801664_1200x630.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kzFW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728e7cdb-ea4c-438c-ab5c-5554f4801664_1200x630.webp 424w, https://substackcdn.com/image/fetch/$s_!kzFW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728e7cdb-ea4c-438c-ab5c-5554f4801664_1200x630.webp 848w, https://substackcdn.com/image/fetch/$s_!kzFW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728e7cdb-ea4c-438c-ab5c-5554f4801664_1200x630.webp 1272w, https://substackcdn.com/image/fetch/$s_!kzFW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F728e7cdb-ea4c-438c-ab5c-5554f4801664_1200x630.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>Learn before changing the system</p></li><li><p>Clarify your authority and expectations</p></li><li><p>Automate recurring release pain incrementally</p></li></ul><div><hr></div><h2><strong>Tech Lead in a Broken Team? What You Need to Do First</strong></h2><p>Imagine stepping into your first tech lead role and discovering that every release needs four to six hours of manual testing. Old bugs keep coming back. Delivery dates seem disconnected from the engineering effort. The team is overloaded, and overtime is starting to feel like part of the plan.</p><p>Where do you even start?</p><p>My answer is not, &#8220;Walk in and fix everything.&#8221; You do not have enough context yet, and trying to change the whole system immediately is a great way to burn trust before you understand why the system behaves this way.</p><p>You need to <strong>learn, align, build relationships, and then create momentum with one measurable improvement at a time</strong>.</p><p>You can <strong><a href="https://www.youtube.com/watch?v=Mpq1QTGq1O0">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-Mpq1QTGq1O0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Mpq1QTGq1O0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Mpq1QTGq1O0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>Do Not Start By Rewriting The Team</strong></h2><p>When you inherit a struggling project, the problems are usually obvious before the causes are.</p><p>You can see the long manual test cycle. You can see the regressions. You can see the exhausted engineers and the aggressive delivery dates. What you cannot see yet is how the team arrived there, which constraints are real, and which previous attempts have already failed.</p><p>So the first move is observation.</p><p>Map out:</p><ul><li><p>How work enters the team.</p></li><li><p>Who decides what gets prioritized.</p></li><li><p>What &#8220;done&#8221; currently means.</p></li><li><p>Where releases slow down.</p></li><li><p>Which defects keep returning.</p></li><li><p>What engineers believe is causing the pain.</p></li><li><p>What product and management believe is causing the pain.</p></li></ul><p>That does not mean you sit quietly for six months while everything burns. It means you avoid prescribing a solution before you can explain the system.</p><p>Your other immediate job is clarifying the role itself. &#8220;Tech lead&#8221; means wildly different things at different companies. Are you expected to make technical decisions? Can you push back on scope? Are you accountable for delivery? Are you coaching engineers? When should your manager step in?</p><p>Ask your manager directly. Keep asking as new situations come up. This is not a one-time onboarding question.</p><p>I also think <strong><a href="https://www.devleader.ca/2026/07/18/when-should-you-tell-your-manager-a-developer-is-struggling-dev-leader-weekly-149?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-150">your manager should not be surprised by the problems you are seeing</a></strong>. Share the observations, explain what you are trying, and be clear about where you need support.</p><p><em><strong>Actionable Tip</strong></em>: bring your manager a short list of current risks, the evidence behind each one, and the first experiment you want to run. Ask which decisions you own and where they want to be involved.</p><h2><strong>Build A Working Relationship With Product</strong></h2><p>It is easy to walk into this situation and decide the product manager is the problem.</p><p>They keep pushing dates. Engineering keeps taking shortcuts. Quality drops. Therefore, product must not care about quality.</p><p>Maybe. But that conclusion is not especially useful, and you probably do not have enough information to make it anyway.</p><p>The product manager may be responding to customer commitments, revenue pressure, executive expectations, or information the engineering team does not have. At the same time, engineering may be carrying risks that product cannot see clearly.</p><p>That is exactly why you need the relationship.</p><p>There should be healthy tension between product and engineering. Product pushes for customer value and delivery. Engineering pushes for feasibility, sustainability, and quality. I have written about what happens when <strong><a href="https://www.devleader.ca/2026/06/28/when-your-product-manager-becomes-your-boss-dev-leader-weekly-146?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-150">that healthy tension between product and engineering disappears</a></strong>.</p><p>Your goal is not to defeat the product manager. Your goal is to help both sides make better tradeoffs.</p><p>I have had working relationships change when schedules and responsibilities shifted. Even when I already knew the product manager, I still needed to make time to understand what they needed from me and how I could support them better. It is mutual. I want them helping engineering, and I need to help them succeed too.</p><p><em><strong>Actionable Tip</strong></em>: set up a recurring conversation with your product partner. Ask what outcomes matter most, which dates are truly fixed, what risks they are carrying, and what engineering information would help them make better decisions.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Make Release Pain Visible</strong></h2><p>Four to six hours of manual testing before every release is a giant warning sign to me.</p><p>But you cannot simply delete that testing. The team is doing it because it catches defects. If you remove it without replacing the protection, you have not improved the process. You have just hidden the risk.</p><p>This is where the team needs to slow down enough to speed up.</p><p>Start by documenting every manual release check:</p><ol><li><p>What behavior is being verified?</p></li><li><p>How long does the check take?</p></li><li><p>What defects has it caught?</p></li><li><p>Can that behavior be covered at a lower test level?</p></li><li><p>What is the smallest useful slice you can automate?</p></li></ol><p>Do not wait for the perfect test architecture. If the code is tightly coupled and the only practical first step is a clunky behavioral test, write the clunky behavioral test. You can improve it later. The immediate goal is to stop the same regression from surprising you again.</p><p>Unit, integration, functional, and end-to-end tests all protect different boundaries. Understanding <strong><a href="https://www.devleader.ca/2023/12/02/unit-testing-vs-functional-testing-dev-leader-weekly-20?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-150">how unit testing and functional testing complement each other</a></strong> helps you avoid trying to solve every problem with one giant UI test suite.</p><p>I have lived this at a startup. We had enough technical debt that we needed UI-level behavioral tests before we could safely refactor parts of the application. A big chunk of that debt was mine, so I am not blaming anyone else. Those tests were not the final destination, but they gave us enough confidence to start changing the code underneath.</p><p>The manual release checklist should only get smaller. New regressions should produce new automated coverage, not another permanent item for a human to click through at release time.</p><p>Exploratory testing can still be valuable. Just do not make the hour before release the only time anyone explores the product. If you only look for surprises at the release gate, you will keep finding surprises at the release gate.</p><h2><strong>Dates And Engineering Effort Need An Honest Tradeoff</strong></h2><p>There is nothing inherently wrong with a fixed release date.</p><p>There is also nothing wrong with estimating a body of work and letting the date move.</p><p>The problem starts when scope and date are both treated as fixed while quality is expected to remain unchanged. Something has to move.</p><p>If a feature needs a month of engineering effort and somebody wants it in a week, you have a few honest choices:</p><ol><li><p>Reduce the scope.</p></li><li><p>Move the date.</p></li><li><p>Take a deliberate shortcut and document the debt.</p></li><li><p>Do not build it.</p></li></ol><p>What you cannot do is pretend that a month of work somehow became one week because everyone agreed the date was important.</p><p>This is where I strongly prefer smaller vertical slices. Ship one thin, working path through the feature. Let customers use it. Learn from the feedback. Then decide what deserves the next investment. <strong><a href="https://www.devleader.ca/2023/10/10/vertical-slice-development-a-comprehensive-how-to-for-modern-teams?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-150">Vertical slice development can help teams deliver useful value sooner</a></strong> without pretending the entire feature fits inside an impossible deadline.</p><p>Sometimes you will still choose debt. That can be a valid business decision, but only if everybody understands the cost. If you rush a feature into a shape that cannot support the next iteration, say that clearly. The next change must include paying down the shortcut.</p><p>Otherwise, &#8220;we will clean it up later&#8221; becomes the permanent operating model. That is why <strong><a href="https://www.devleader.ca/2023/10/20/how-to-balance-technical-debt-tackle-it-before-it-tackles-you?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-150">technical debt has to be balanced deliberately</a></strong>, not treated like invisible work engineering will somehow absorb.</p><p><em><strong>Actionable Tip</strong></em>: when somebody asks for a fixed date, respond with the smallest scope the team can confidently deliver by that date. Make the excluded scope and any accepted debt explicit.</p><h2><strong>Overtime Cannot Be The Capacity Plan</strong></h2><p>If the plan only works when engineers repeatedly work extra hours, the plan does not work.</p><p>That does not mean overtime can never happen. Production incidents happen. Unexpected customer problems happen. Teams sometimes make short-term pushes.</p><p>But sustained overtime is not additional capacity. It is borrowing energy from future delivery, quality, and retention.</p><p>As the tech lead, do not quietly absorb the gap. Make capacity visible:</p><ul><li><p>Here is what the team can complete safely.</p></li><li><p>Here is the work that does not fit.</p></li><li><p>Here is the quality risk if we force it in.</p></li><li><p>Here is the decision we need from product and management.</p></li></ul><p>If the pressure is already affecting people, <strong><a href="https://www.devleader.ca/2026/03/29/should-you-talk-to-your-manager-about-burnout-dev-leader-weekly-133?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-150">talking to your manager about burnout</a></strong> should happen before somebody reaches the point where they cannot keep going.</p><p>Pushing back is not refusing to deliver. Good pushback gives decision-makers a realistic set of tradeoffs.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Ownership Means Following Through</strong></h2><p>One of the most important parts of this role transition is realizing that agreement is not action.</p><p>You can explain the testing problem to the product manager. They can nod and say it sounds reasonable. Then everyone returns to the same priorities, and nothing changes.</p><p>That does not automatically mean they do not care. It probably means this improvement matters more to you than it does to them, so <strong>you need to drive it</strong>.</p><p>Pick one change. Give it an owner. Put time against it. Define what better looks like. Report the result.</p><p>For example:</p><ol><li><p>Choose the ten most expensive manual release checks.</p></li><li><p>Automate one of them this iteration.</p></li><li><p>Require a regression test for every recurring defect.</p></li><li><p>Measure the release time and escaped defects.</p></li><li><p>Share the result with engineering, product, and your manager.</p></li><li><p>Repeat.</p></li></ol><p>That first win matters. People support changes more easily when they can see that the change saved time, reduced risk, or made delivery more predictable.</p><p>You do not need to repair the entire organization in your first month. You need to understand the system, clarify your authority, build the relationships, and prove that one better way of working is possible.</p><p>Then do it again.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/tech-lead-in-a-broken-team-what-you?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/tech-lead-in-a-broken-team-what-you?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/tech-lead-in-a-broken-team-what-you/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/tech-lead-in-a-broken-team-what-you/comments"><span>Leave a comment</span></a></p><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CW9l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c010dc3-9ec1-48b9-9976-5c32f248ae53_705x397.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CW9l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c010dc3-9ec1-48b9-9976-5c32f248ae53_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!CW9l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c010dc3-9ec1-48b9-9976-5c32f248ae53_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!CW9l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c010dc3-9ec1-48b9-9976-5c32f248ae53_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!CW9l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c010dc3-9ec1-48b9-9976-5c32f248ae53_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CW9l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c010dc3-9ec1-48b9-9976-5c32f248ae53_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1c010dc3-9ec1-48b9-9976-5c32f248ae53_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!CW9l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c010dc3-9ec1-48b9-9976-5c32f248ae53_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!CW9l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c010dc3-9ec1-48b9-9976-5c32f248ae53_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!CW9l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c010dc3-9ec1-48b9-9976-5c32f248ae53_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!CW9l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c010dc3-9ec1-48b9-9976-5c32f248ae53_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://www.devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[When Should You Tell Your Manager A Developer Is Struggling?]]></title><description><![CDATA[Dev Leader Weekly 149]]></description><link>https://weekly.devleader.ca/p/when-should-you-tell-your-manager</link><guid isPermaLink="false">https://weekly.devleader.ca/p/when-should-you-tell-your-manager</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Mon, 20 Jul 2026 02:58:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DLJx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fa857-3d21-431f-82bb-194222af9fa9_1200x630.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/07/18/when-should-you-tell-your-manager-a-developer-is-struggling-dev-leader-weekly-149" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DLJx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fa857-3d21-431f-82bb-194222af9fa9_1200x630.webp 424w, https://substackcdn.com/image/fetch/$s_!DLJx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fa857-3d21-431f-82bb-194222af9fa9_1200x630.webp 848w, https://substackcdn.com/image/fetch/$s_!DLJx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fa857-3d21-431f-82bb-194222af9fa9_1200x630.webp 1272w, https://substackcdn.com/image/fetch/$s_!DLJx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fa857-3d21-431f-82bb-194222af9fa9_1200x630.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DLJx!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fa857-3d21-431f-82bb-194222af9fa9_1200x630.webp" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d78fa857-3d21-431f-82bb-194222af9fa9_1200x630.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:47986,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/07/18/when-should-you-tell-your-manager-a-developer-is-struggling-dev-leader-weekly-149&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/207728786?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fa857-3d21-431f-82bb-194222af9fa9_1200x630.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DLJx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fa857-3d21-431f-82bb-194222af9fa9_1200x630.webp 424w, https://substackcdn.com/image/fetch/$s_!DLJx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fa857-3d21-431f-82bb-194222af9fa9_1200x630.webp 848w, https://substackcdn.com/image/fetch/$s_!DLJx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fa857-3d21-431f-82bb-194222af9fa9_1200x630.webp 1272w, https://substackcdn.com/image/fetch/$s_!DLJx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd78fa857-3d21-431f-82bb-194222af9fa9_1200x630.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>Raise concerns early, without jumping to termination</p></li><li><p>Coaching needs observations, support, and follow-through</p></li><li><p>Managers remain accountable for the whole team</p></li><li><p><strong><a href="https://youtube.com/live/8JRQFdwZ_bU?feature=share">Join me for the live stream (or watch the recording) on Monday, July 20 at 7:00 PM Pacific</a></strong>!</p></li></ul><div id="youtube2-8JRQFdwZ_bU" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;8JRQFdwZ_bU&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/8JRQFdwZ_bU?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2><strong>When Should You Tell Your Manager A Developer Is Struggling?</strong></h2><p>I came across a question from a team lead who had been coaching a junior developer for roughly 20 months. Progress had been difficult, and from the team lead&#8217;s perspective, the developer had actually started moving backward. They were less proactive, still needed a lot of direction, and did not seem to be responding to the coaching.</p><p>The question was basically: <strong>When should I tell my manager this is not working?</strong></p><p>My immediate reaction was that this conversation should have started much earlier. But I want to be extremely clear about what I mean by that.</p><p>Raising awareness early does <strong>not</strong> mean asking your manager to terminate someone early. It means sharing what you are observing while there is still time to understand the problem, adjust the support, and give the person a fair opportunity to improve.</p><p>You can <strong><a href="https://www.youtube.com/watch?v=BHU0Nnca-Sg">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-BHU0Nnca-Sg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;BHU0Nnca-Sg&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/BHU0Nnca-Sg?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>Raising Awareness Is Not A Verdict</strong></h2><p>Some people hear &#8220;I need to tell the manager&#8221; and immediately translate that into &#8220;I am trying to get this person fired.&#8221;</p><p>Those are not the same thing.</p><p>A useful conversation with your manager is not:</p><ul><li><p>&#8220;This developer sucks.&#8221;</p></li><li><p>&#8220;They are never going to make it.&#8221;</p></li><li><p>&#8220;We need to get rid of them.&#8221;</p></li></ul><p>Those are conclusions. They skip over all the information your manager actually needs.</p><p>A better conversation sounds more like this:</p><ul><li><p>Here is the work the developer has been trying to complete.</p></li><li><p>Here is where they are consistently getting stuck.</p></li><li><p>Here is the coaching or support I have already tried.</p></li><li><p>Here is the progress I expected to see.</p></li><li><p>Here is the trajectory I am seeing instead.</p></li><li><p>Here is where I need help.</p></li></ul><p>That distinction matters because <strong><a href="https://www.devleader.ca/2024/05/25/feedback-is-deeper-than-you-think-dev-leader-weekly-45?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-149">feedback is deeper than a single verdict</a></strong>. If all you provide is a label, your manager cannot tell whether the issue is skill, unclear expectations, poor coaching, team fit, missing context, or something else entirely.</p><p><em><strong>Actionable Tip</strong></em>: bring observations, not character judgments. Describe what happened, what support was attempted, what changed, and what you need from your manager next.</p><h2><strong>There Is No Magic Ramp-Up Number</strong></h2><p>The Reddit discussion had people at both extremes.</p><p>Some people claimed they could tell within a week whether a developer was going to work out. Other people pushed back and said new hires need months before anyone should be concerned.</p><p>Honestly? I do not believe there is one magic number.</p><p>A junior developer learning their first professional codebase is in a different situation from a senior developer joining a familiar domain. A new graduate may need help learning how work moves through the team. A transfer may know the company but not the product. Someone may be technically capable but completely lost in the domain.</p><p>The important signal is not whether they reached full productivity by an arbitrary date. It is whether you can see a reasonable <strong>trajectory</strong>.</p><p>Are they asking better questions? Are they retaining what they learned? Are they taking on slightly more responsibility? Are the same blockers repeating without any change? Does the support they need seem to be increasing instead of decreasing?</p><p>You may not know the answer after one week. But if you have worked closely with someone for a few weeks or a couple of months and the trajectory concerns you, that is enough reason to share what you are seeing.</p><p>You do not need certainty before you communicate.</p><h2><strong>Your Manager Should Not Be Surprised</strong></h2><p>If I pair a new developer with a team lead, technical lead, intern buddy, or another engineer, I still expect to check in.</p><p>How is the new person doing? Where are they getting stuck? What is going well? Does the person helping them need anything from me?</p><p>I do not need a formal performance report every few days. I do want enough communication that the next conversation makes sense.</p><p>If a team lead tells me after several months, &#8220;This person is not working out,&#8221; and that is the first concern I have heard, my response is going to be: <strong>Wait, what happened?</strong></p><p>The concern may be completely valid. But now we have lost months where we could have changed the coaching, clarified expectations, or added support.</p><p>Regular check-ins are one reason I care so much about helping people <strong><a href="https://www.devleader.ca/2025/04/05/make-the-most-of-your-one-on-ones-dev-leader-weekly-90?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-149">make the most of their one-on-ones</a></strong>. These conversations should surface small signals before they become enormous surprises.</p><p><em><strong>Actionable Tip</strong></em>: give your manager lightweight progress updates. &#8220;Going well,&#8221; &#8220;still learning this area,&#8221; &#8220;we are trying a different approach,&#8221; and &#8220;I need help&#8221; are all useful signals.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Clarify What Your Lead Role Actually Owns</strong></h2><p>&#8220;Team lead&#8221; and &#8220;technical lead&#8221; can mean completely different things from one company to another.</p><p>In one organization, a lead may be expected to actively coach developers, adjust how work is delegated, and drive onboarding. Somewhere else, the lead may own technical direction while the manager handles nearly every people-related concern.</p><p>This ambiguity is one of the <strong><a href="https://www.devleader.ca/2025/08/23/top-mistakes-of-new-managers-and-leads-dev-leader-weekly-106?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-149">mistakes new managers and leads can make</a></strong>. Everyone assumes they understand the role, nobody states the boundaries, and important work falls into the gap.</p><p>If you are the lead, ask your manager:</p><ol><li><p>What coaching do you expect me to handle directly?</p></li><li><p>What kinds of concerns should I raise immediately?</p></li><li><p>How often do you want onboarding updates?</p></li><li><p>What decisions can I make without checking first?</p></li><li><p>What support can I ask you to provide?</p></li></ol><p>You should feel empowered to help. You should not quietly inherit full responsibility for another employee&#8217;s performance without the authority, context, or support to handle it.</p><h2><strong>Do Not Just Drop The Problem And Walk Away</strong></h2><p>There is another failure mode here.</p><p>You tell your manager, &#8220;Bob is not ramping up very well.&#8221;</p><p>Then... nothing happens.</p><p>Did you expect the manager to take over? Did the manager expect you to keep coaching? Is someone changing the plan? Does the developer even know what they need to improve?</p><p>Raising awareness without agreeing on a next action is not enough.</p><p>Depending on the situation, the next step might be:</p><ul><li><p>Pairing the developer with someone else for a different perspective.</p></li><li><p>Giving them a smaller, better-defined area to own.</p></li><li><p>Spending more time on domain context instead of only code.</p></li><li><p>Setting clearer expectations for initiative and communication.</p></li><li><p>Having the manager join a coaching conversation.</p></li><li><p>Identifying training, documentation, or tools that are missing.</p></li><li><p>Checking whether the team or role is simply a poor fit.</p></li></ul><p>The point is not that every struggling employee can be turned around. Sometimes the role will not work out. But if the only action is repeatedly saying &#8220;they are struggling,&#8221; nobody is actually helping.</p><h2><strong>Make Sure The Coaching Is Not Part Of The Problem</strong></h2><p>Managers often hear different versions of the same situation.</p><p>The junior developer says, &#8220;Things are going well. I hit a few blockers, but I am working through them with the senior developer.&#8221;</p><p>The senior developer says, &#8220;This person takes no initiative. I have shown them this five times and they still cannot do it.&#8221;</p><p>So what is actually happening?</p><p>Maybe the junior developer is disengaged. Maybe they are not retaining information. Maybe they are afraid to ask questions. Those are all possible.</p><p>But maybe the senior developer&#8217;s idea of coaching is screen sharing, clicking every button, writing all the code, and saying, &#8220;Watch what I do.&#8221; Then they are frustrated when the other person cannot reproduce the process alone.</p><p>I have written about how <strong><a href="https://www.devleader.ca/2026/02/04/these-junior-developers-suck-they-just-dont-understand-my-code?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-149">senior developers can accidentally make learning harder</a></strong>, especially when expertise makes the difficult parts feel obvious. Watching an expert move quickly is not the same as practicing the skill.</p><p><em><strong>Actionable Tip</strong></em>: let the learner drive. Have them share their screen, choose the next step, explain what they think is happening, and ask for guidance when they get stuck. It may feel slower, but you can finally see how they reason.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Technical Aptitude Might Not Be The Whole Story</strong></h2><p>When someone seems unmotivated or passive, it is easy to jump straight to a personality judgment.</p><p>Sometimes that judgment is wrong.</p><p>Maybe they do not understand the domain well enough to know why the work matters. Maybe every task feels like an isolated technical request with no connection to a user or business outcome. Maybe they are overwhelmed by the codebase and trying not to expose how lost they feel.</p><p>Managers and leads often say, &#8220;There are no stupid questions. Ask anything.&#8221;</p><p>I genuinely mean that when I say it. But I also understand that new employees may still worry about looking unqualified in front of their manager. Pairing them with another engineer can create a safer place to ask those questions and build confidence.</p><p>That is part of why a manager needs multiple perspectives. Talk to the developer. Talk to the person coaching them. Look at the work. Ask what each person has tried. Do not assume one story gives you the complete picture.</p><h2><strong>Accountability Still Belongs To The Manager</strong></h2><p>As a manager, I can delegate pieces of onboarding. I can ask a senior engineer to be an intern buddy. I can give a team lead room to coach someone and adjust the day-to-day approach.</p><p>I cannot delegate away my accountability for the team as the manager for the team.</p><p>At the end of the day, the manager is responsible for making sure employees have clear expectations, appropriate support, useful feedback, and a fair process when performance concerns exist.</p><p>That does not mean the manager personally performs every coaching session. It means the manager remains engaged enough to understand what is happening and act when the team needs help.</p><p>This is where <strong><a href="https://www.devleader.ca/2024/10/12/radical-accountability-vs-blame-culture-dev-leader-weekly-65?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-149">accountability without sliding into blame</a></strong> matters. The goal is not to decide which person deserves to be attacked. The goal is to understand the system, clarify ownership, support improvement, and make a responsible decision.</p><h2><strong>A Practical Way To Escalate The Concern</strong></h2><p>If you are a lead and you are worried about someone&#8217;s progress, you do not need a dramatic speech.</p><p>You can use a simple structure:</p><ol><li><p><strong>State the observation.</strong> What specific behavior or outcome concerns you?</p></li><li><p><strong>Describe the trajectory.</strong> Is it improving, flat, inconsistent, or getting worse?</p></li><li><p><strong>Explain the support.</strong> What coaching, pairing, documentation, or context have you tried?</p></li><li><p><strong>Share the impact.</strong> How is this affecting the developer, the work, or the rest of the team?</p></li><li><p><strong>Ask for help.</strong> What do you need the manager to clarify, provide, or decide?</p></li><li><p><strong>Set a checkpoint.</strong> When will you compare notes again?</p></li></ol><p>That might sound like:</p><blockquote><p>I have been pairing with this developer on the deployment workflow. They can complete the steps with direct guidance, but they are still unable to complete the same workflow independently, and the same questions are repeating. I have tried written steps and two driver sessions. I would like your help understanding whether we should change the coaching plan or clarify the role expectations. Can we check in again after the next two tasks?</p></blockquote><p>That is specific. It leaves room for investigation. It creates an action. And it does not pretend you know the final outcome before the manager has even joined the conversation.</p><h2><strong>Earlier Communication Can Be Kinder</strong></h2><p>Waiting can feel compassionate because you do not want to get someone in trouble.</p><p>But silence is not always kind.</p><p>If the developer needs different coaching, earlier communication helps them get it. If expectations are unclear, earlier communication gives the manager time to clarify them. If the team is a poor fit, earlier communication creates more options. If a formal performance process eventually becomes necessary, the concern should not appear out of nowhere after nearly two years.</p><p>The time horizon for <strong>raising awareness</strong> is much shorter than the time horizon for <strong>giving someone a fair opportunity to improve</strong>.</p><p>Those ideas are not in conflict.</p><p>You can communicate early, coach patiently, gather better information, and avoid rushing to a conclusion. In fact, early communication is what makes that patience more responsible.</p><h2><strong>The Question Is Not &#8220;When Do I Give Up?&#8221;</strong></h2><p>The better question is: <strong>When do I create enough visibility for the right support to happen?</strong></p><p>My answer is early and regularly.</p><p>Do not wait until you are completely frustrated. Do not turn one difficult week into a permanent label. Do not hide the concern for 20 months and then hand your manager a final verdict.</p><p>Share the signal. Ask for help. Agree on the next step. Keep checking the trajectory.</p><p>Maybe the developer turns things around with better coaching. Maybe they thrive on a different team. Maybe the role ultimately does not work out. You cannot know that from the first concern.</p><p>What you can do is make sure the concern is handled with clarity, accountability, and enough time for people to respond.</p><p>If you have a software engineering or career question, leave it in the video comments or submit it anonymously at <strong><a href="https://codecommute.com/">codecommute.com</a></strong>. I would love to hear how your organization divides coaching responsibilities between leads and managers.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/subscribe?"><span>Subscribe now</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/when-should-you-tell-your-manager?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/when-should-you-tell-your-manager?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/when-should-you-tell-your-manager/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/when-should-you-tell-your-manager/comments"><span>Leave a comment</span></a></p><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TKtL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b790861-4483-4fd4-9d51-5b2bcc99fc55_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!TKtL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b790861-4483-4fd4-9d51-5b2bcc99fc55_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!TKtL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b790861-4483-4fd4-9d51-5b2bcc99fc55_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!TKtL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b790861-4483-4fd4-9d51-5b2bcc99fc55_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TKtL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b790861-4483-4fd4-9d51-5b2bcc99fc55_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6b790861-4483-4fd4-9d51-5b2bcc99fc55_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!TKtL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b790861-4483-4fd4-9d51-5b2bcc99fc55_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!TKtL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b790861-4483-4fd4-9d51-5b2bcc99fc55_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!TKtL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b790861-4483-4fd4-9d51-5b2bcc99fc55_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!TKtL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b790861-4483-4fd4-9d51-5b2bcc99fc55_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://www.devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[What It Actually Takes To Become A Principal Engineer]]></title><description><![CDATA[Dev Leader Weekly 148]]></description><link>https://weekly.devleader.ca/p/what-it-actually-takes-to-become</link><guid isPermaLink="false">https://weekly.devleader.ca/p/what-it-actually-takes-to-become</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Mon, 13 Jul 2026 00:13:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YfpB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc596de43-40e8-453a-848f-20b05caead6d_1536x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/07/11/what-it-actually-takes-to-become-a-principal-engineer-dev-leader-weekly-148" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YfpB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc596de43-40e8-453a-848f-20b05caead6d_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!YfpB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc596de43-40e8-453a-848f-20b05caead6d_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!YfpB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc596de43-40e8-453a-848f-20b05caead6d_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!YfpB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc596de43-40e8-453a-848f-20b05caead6d_1536x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YfpB!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc596de43-40e8-453a-848f-20b05caead6d_1536x1024.webp" width="1200" height="800.2747252747253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c596de43-40e8-453a-848f-20b05caead6d_1536x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:87256,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/07/11/what-it-actually-takes-to-become-a-principal-engineer-dev-leader-weekly-148&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/206770731?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc596de43-40e8-453a-848f-20b05caead6d_1536x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YfpB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc596de43-40e8-453a-848f-20b05caead6d_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!YfpB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc596de43-40e8-453a-848f-20b05caead6d_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!YfpB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc596de43-40e8-453a-848f-20b05caead6d_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!YfpB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc596de43-40e8-453a-848f-20b05caead6d_1536x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>Principal impact crosses team boundaries</p></li><li><p>Sustained ownership beats one heroic project</p></li><li><p>Visibility should follow meaningful impact</p></li><li><p><strong><a href="https://youtube.com/live/RRXi4lraNmc?feature=share">Join me for the live stream (or watch the recording) on Monday, July 13 at 7:00 PM Pacific</a></strong>!</p></li></ul><div id="youtube2-RRXi4lraNmc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;RRXi4lraNmc&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/RRXi4lraNmc?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2><strong>What It Actually Takes To Become A Principal Engineer</strong></h2><p>I came across a question from someone trying to understand what getting promoted to principal engineer actually looks like. Not the generic career-ladder language. Not &#8220;increase your impact&#8221; and &#8220;show more visibility.&#8221; They wanted specifics, because the advice they had heard felt inconsistent and the target kept moving.</p><p>Honestly? I think that criticism is fair.</p><p>Before I get into my take, there is an important caveat: <strong>my perspective comes from working at Microsoft</strong>, and I am an engineering manager. Titles, levels, and expectations vary dramatically between companies. Some organizations go from senior directly to principal. Others have staff between them. Some swap the staff and principal labels entirely. So I am not claiming this is the universal definition.</p><p>What I <em>can</em> do is explain the pattern I have seen, the path I took, and what seems to separate someone doing excellent senior-level work from someone operating at principal scope.</p><p>You can <strong><a href="https://www.youtube.com/watch?v=6rCAj2wnxg4">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-6rCAj2wnxg4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;6rCAj2wnxg4&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/6rCAj2wnxg4?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>Principal Is A Scope Change, Not A Coding Upgrade</strong></h2><p>The simplest framing I have is this: becoming principal is usually not about being a senior engineer who types code even faster.</p><p>By the time you are being considered for principal, the expectation is already that you are technically strong. If you interview at a big tech company, coding questions may still be part of the process. System design will probably matter even more. But being excellent at those things is the baseline, not the entire case.</p><p>The bigger change is <strong>the surface area of your responsibility</strong>.</p><p>A senior engineer can have a huge impact within a team. A principal engineer is usually expected to influence work across teams, products, or an organization. That does not mean you personally write every line of code or dictate every design. In fact, I have written before about why <strong><a href="https://www.devleader.ca/2025/03/01/senior-developer-means-coding-less-dev-leader-weekly-85?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-148">senior developers often end up coding less</a></strong>, and principal scope pushes that shift even further.</p><p>You are increasingly responsible for questions like:</p><ul><li><p>Can several teams align around a technical direction?</p></li><li><p>Can this platform support an entirely new class of customers or partner teams?</p></li><li><p>Can a risky initiative move from an idea to a durable, supported capability?</p></li><li><p>Can stakeholders trust that you will drive the work without chasing you for updates?</p></li><li><p>Can other engineers lead meaningful pieces of the mission and succeed because of the structure you created?</p></li></ul><p>That is a very different job from being the person who solves the hardest ticket in the sprint.</p><h2><strong>You Can Be Promoted In Or Hired In</strong></h2><p>The person asking the question wanted to know what it took to get promoted into principal. My path was different: <strong>I was hired into Microsoft at the principal level</strong>.</p><p>That distinction matters because changing companies can be one route into the next level. Maybe you are already operating near that level, but your current team has limited opportunities. Maybe there are already several principal engineers and the organization cannot create enough principal-scope work for everyone. Maybe you have been close to promotion multiple times and now have a strong collection of examples to take into interviews elsewhere.</p><p>None of that means the interview is easy or that you get to skip demonstrating the scope. You still need the evidence.</p><p>When I joined Microsoft, I did not have another big tech company on my resume to provide a neat level-to-level comparison. I came from a much smaller digital forensics company, and I had never worked on globally distributed deployment systems at anything close to Microsoft&#8217;s scale. I go deeper into that transition in <strong><a href="https://www.devleader.ca/2024/04/29/break-into-big-tech-my-journey-from-startup-to-microsoft?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-148">my journey from a startup into Microsoft</a></strong>.</p><p>What I <em>did</em> have were concrete stories about operating across an organization.</p><p>One example was taking a product idea that had been outsourced, bringing the work in-house, building the team around it, and leading that area successfully for years. I could explain the business outcome, the technical ownership, the team growth, and the sustained responsibility. The domain was different, but the leadership and engineering skills transferred.</p><p>That is the key. You do not need to have solved the exact same problem at the exact same scale. You need to show that you have repeatedly handled <strong>comparable complexity, ambiguity, and organizational reach</strong>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Make &#8220;Organizational Impact&#8221; Concrete</strong></h2><p>&#8220;You need more impact&#8221; is frustrating feedback because it sounds important while telling you almost nothing.</p><p>So what does organizational impact actually look like?</p><p>Imagine you work on a platform that supports three kinds of internal services. You lead an initiative that lets the platform support <em><strong>entirely new classes</strong></em> of services. Now you are not just improving one feature for your immediate team. You are expanding the value of everything your team already built and making it available to whole new groups across the company.</p><p>But even that outcome is not enough if your involvement was just proposing the idea or making a couple of code changes.</p><p>At principal scope, you might:</p><ol><li><p>Help shape the original idea and clarify the business value.</p></li><li><p>Lead the design and architecture across several teams.</p></li><li><p>Get partner teams bought into a shared direction.</p></li><li><p>Break the work into areas other engineers can own.</p></li><li><p>Navigate risks, dependencies, and changing requirements.</p></li><li><p>Keep stakeholders informed without turning communication into theater.</p></li><li><p>Carry the initiative through delivery and into sustained operation.</p></li></ol><p>That combination is what turns &#8220;I worked on a large project&#8221; into &#8220;I led an organizationally important outcome.&#8221;</p><p>And yes, influence is part of it. The technically best proposal does not automatically win. If you are struggling to build support across teams, the same dynamics I discussed in <strong><a href="https://www.devleader.ca/2026/05/25/why-your-ideas-keep-getting-shut-down-dev-leader-weekly-141?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-148">why good ideas keep getting shut down</a></strong> absolutely show up here too.</p><h2><strong>Visibility Should Be A Consequence Of Impact</strong></h2><p>I have mixed feelings about the word <strong>visibility</strong>.</p><p>I have personally been put forward for promotion and received feedback that I did not have enough visibility. That was incredibly frustrating. My reaction was basically: <em>what do you mean? I am doing the work my leadership asked me to do. Am I supposed to replace useful engineering work with a bunch of artificial self-promotion?</em></p><p>Communication matters. Project updates, stakeholder notes, demos, and reaching out to groups that might benefit from the work can all help. You should not hide important work and then be shocked when nobody knows it happened.</p><p>But I heard a framing from a VP that changed how I think about this: <strong>the impact should be large enough that the relevant parts of the organization naturally have some visibility into it</strong>.</p><p>Not every person needs every implementation detail. The point is that the work touches a broad enough surface area that leaders and partner teams can say, &#8220;Yes, I know that initiative. I understand why it matters, and I know this person is driving it.&#8221;</p><p>That is different from doing small-scope work and trying to amplify it until it <em>sounds</em> organizational.</p><p><em><strong>Actionable Tip</strong></em>: treat communication as a multiplier for real impact, not a substitute for it. Learn to explain the mission, risks, tradeoffs, and outcomes in language each audience understands. That skill is a big part of why I think <strong><a href="https://www.devleader.ca/2026/03/08/the-gap-between-good-developers-and-great-ones-dev-leader-weekly-130?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-148">communication separates good developers from great ones</a></strong>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Ownership Is The Signal Behind The Title</strong></h2><p>When I think about the strongest principal promotion cases I have seen, two words keep coming up: <strong>ownership</strong> and <strong>accountability</strong>.</p><p>People trust this person with an important initiative. They are not waiting for someone else to define every next step. They are not being chased down to see whether anything is moving. They create clarity, pull the right people together, surface risks, and keep driving toward the outcome.</p><p>Usually this is not someone who suddenly appeared, completed one enormous project, and immediately became principal. The pattern is more often:</p><ul><li><p>They have already been contributing at a high level on important work.</p></li><li><p>They consistently make the teams around them more effective.</p></li><li><p>They take on ambiguous problems without waiting for a perfect plan.</p></li><li><p>They build trust across technical and non-technical groups.</p></li><li><p>Then they lead one or two especially visible, high-impact initiatives that make the existing pattern undeniable.</p></li></ul><p>That last project may become the cleanest promotion story, but it is not the entire story. It is evidence that confirms sustained behavior.</p><p>This is also why principal scope cannot be reduced to a checklist of code contributions. If your project requires coordination across teams, the difficult parts may be alignment, decision-making, sequencing, communication, and creating ownership for other engineers. Those are not distractions from the technical work. At that scale, they <em>are part of the engineering work</em>.</p><h2><strong>The Goalposts Can Move</strong></h2><p>Here is the part nobody loves hearing: sometimes the target really does move.</p><p>Organizations change. They grow, contract, reorganize, and end up with different distributions of engineers at each level. A company may decide it has too many people at a certain level and quietly raise the bar. The work that earned a promotion several years ago may not be enough under the current expectations.</p><p>That does not make the process feel any less unfair when you are on the receiving end.</p><p>You can do strong work, get told you were close, receive vague feedback, and then wait another six months while wondering whether anything you are doing matters. I have experienced the disappointment of being put forward and not getting the result. I have also experienced this on behalf of my employees when I am working for putting them forward for promotion. It is demotivating, especially when you thought you were following the guidance you had been given.</p><p>If that happens, try to get specific:</p><ul><li><p>What evidence was missing from the promotion discussion?</p></li><li><p>Who needed to see a broader scope of impact?</p></li><li><p>Was the concern about the work itself or how it was represented?</p></li><li><p>What would make the next review materially different?</p></li><li><p>Are principal-level opportunities actually available on your current team?</p></li></ul><p>If your manager cannot turn the feedback into something concrete, that is useful information too.</p><p>And protect your energy. There is a real difference between stretching into bigger responsibility and running yourself into the ground chasing a title. I have shared more thoughts on <strong><a href="https://www.devleader.ca/2025/10/11/promotions-without-burnout-dev-leader-weekly-112?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-148">pursuing promotions without burning yourself out</a></strong>, because no level is worth destroying yourself over.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Principal Impact Is Shared, Not Hoarded</strong></h2><p>One of the projects that helped demonstrate my own impact within the principal band was a multi-month resiliency initiative across an entire platform. It had visibility well beyond my immediate team, and I was responsible for coordinating work across a much larger group.</p><p>But I did not personally do all of that work. Not even close.</p><p>The engineers leading individual parts of the initiative did the work. My role was to help create the direction, coordination, accountability, and conditions for those pieces to succeed together.</p><p>This is important because large impact is not a fixed pie where the principal engineer takes the biggest slice and everyone else gets less credit. Done well, it is closer to one plus one equaling three. The overall initiative becomes a strong impact story, <em>and</em> the engineers leading its different areas get meaningful stories of their own.</p><p>If your version of principal leadership requires absorbing all the credit, you are doing it wrong.</p><p>The best evidence of principal-level leadership is not that everything depended on you personally. It is that the organization could take on a larger mission because you helped many people move effectively in the same direction.</p><h2><strong>A Practical Plan If You Are Targeting Principal</strong></h2><p>So what can you actually do with all of this?</p><p><em><strong>Actionable Tip</strong></em>: stop asking only, &#8220;What task gets me promoted?&#8221; Start asking, &#8220;What important outcome is too large for one team, and how can I help the organization deliver it?&#8221;</p><p>Then work through this:</p><ol><li><p><strong>Learn your company&#8217;s definition.</strong> Get examples of people who were recently promoted and the evidence that mattered.</p></li><li><p><strong>Inventory your real scope.</strong> Write down the teams, systems, stakeholders, and business outcomes your work already touches.</p></li><li><p><strong>Find the missing dimension.</strong> Maybe you need broader technical ownership. Maybe you need cross-team influence. Maybe you need sustained delivery instead of another short project.</p></li><li><p><strong>Choose work that serves the mission.</strong> Do not manufacture a vanity project for promotion. Find an actual organizational problem worth solving.</p></li><li><p><strong>Practice telling difficult stories.</strong> Be ready to explain projects that went off track, how you built buy-in, where you changed direction, and what you learned.</p></li><li><p><strong>Create opportunities for other engineers.</strong> Principal impact should multiply the people around you, not turn you into a bottleneck.</p></li><li><p><strong>Consider the external path honestly.</strong> If your organization cannot offer the scope, another company may evaluate the experience you already have differently.</p></li></ol><p>None of this guarantees a promotion. That uncertainty is part of why the process feels so nebulous.</p><p>But it does move the conversation away from &#8220;do more stuff and be more visible&#8221; toward evidence you can actually reason about: scope, ownership, trust, organizational outcomes, and sustained impact.</p><h2><strong>Do Not Let The Level Become The Mission</strong></h2><p>I understand why people focus on titles and levels. They are the clearest quantitative signal we have for career progression. Compensation follows them. Responsibility follows them. It is natural to care.</p><p>The part I do not love is when the entire incentive becomes: <em>what do I need to do so I personally get promoted?</em></p><p>That framing can make a group of talented people optimize as individuals while the company hopes useful business outcomes appear as a side effect. It feels backwards.</p><p>The healthier question is: <strong>how do we work together more effectively on the mission, and how do I grow my ability to contribute at a larger scale?</strong></p><p>If you keep expanding the complexity you can navigate, the people you can align, the outcomes you can own, and the success you can create for others, you are building principal-level evidence. The title may still depend on timing, organizational shape, and a process you do not fully control.</p><p>But the capability is yours.</p><p>If you have questions about software engineering or career development, drop them in the comments or submit them anonymously at <strong><a href="https://codecommute.com/">codecommute.com</a></strong>. I would love to hear how principal expectations differ where you work too, because there absolutely is not one universal path.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/what-it-actually-takes-to-become?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/what-it-actually-takes-to-become?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/what-it-actually-takes-to-become/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/what-it-actually-takes-to-become/comments"><span>Leave a comment</span></a></p><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RUvb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F362c78e3-3ddc-4046-91d0-4fd36c9e6cc0_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!RUvb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F362c78e3-3ddc-4046-91d0-4fd36c9e6cc0_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!RUvb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F362c78e3-3ddc-4046-91d0-4fd36c9e6cc0_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!RUvb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F362c78e3-3ddc-4046-91d0-4fd36c9e6cc0_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RUvb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F362c78e3-3ddc-4046-91d0-4fd36c9e6cc0_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/362c78e3-3ddc-4046-91d0-4fd36c9e6cc0_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!RUvb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F362c78e3-3ddc-4046-91d0-4fd36c9e6cc0_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!RUvb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F362c78e3-3ddc-4046-91d0-4fd36c9e6cc0_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!RUvb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F362c78e3-3ddc-4046-91d0-4fd36c9e6cc0_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!RUvb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F362c78e3-3ddc-4046-91d0-4fd36c9e6cc0_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://www.devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[Feeding My AI Workers Templates]]></title><description><![CDATA[Dev Leader Weekly 147]]></description><link>https://weekly.devleader.ca/p/feeding-my-ai-workers-templates</link><guid isPermaLink="false">https://weekly.devleader.ca/p/feeding-my-ai-workers-templates</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Mon, 06 Jul 2026 07:15:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ui42!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101961cf-44cf-4066-b9cf-2cf328a4b234_1536x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ui42!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101961cf-44cf-4066-b9cf-2cf328a4b234_1536x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ui42!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101961cf-44cf-4066-b9cf-2cf328a4b234_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!ui42!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101961cf-44cf-4066-b9cf-2cf328a4b234_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!ui42!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101961cf-44cf-4066-b9cf-2cf328a4b234_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!ui42!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101961cf-44cf-4066-b9cf-2cf328a4b234_1536x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ui42!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101961cf-44cf-4066-b9cf-2cf328a4b234_1536x1024.webp" width="1200" height="800.2747252747253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/101961cf-44cf-4066-b9cf-2cf328a4b234_1536x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:304418,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/205464811?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101961cf-44cf-4066-b9cf-2cf328a4b234_1536x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ui42!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101961cf-44cf-4066-b9cf-2cf328a4b234_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!ui42!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101961cf-44cf-4066-b9cf-2cf328a4b234_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!ui42!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101961cf-44cf-4066-b9cf-2cf328a4b234_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!ui42!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101961cf-44cf-4066-b9cf-2cf328a4b234_1536x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>Ralph loops make failed AI attempts cheap</p></li><li><p>My template library is the real unlock</p></li><li><p>First real end-to-end AI build succeeded</p></li><li><p><strong><a href="https://youtube.com/live/iU61NrBHmMI?feature=share">Join me for the live stream (or watch the recording) on Monday, July 6 at 7:00 PM Pacific</a></strong>!</p></li></ul><div id="youtube2-iU61NrBHmMI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;iU61NrBHmMI&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/iU61NrBHmMI?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2><strong>Feeding My AI Workers Templates</strong></h2><p>I like doing these AI recaps after I&#8217;ve had a real stretch of time to sit down and actually build, and this one&#8217;s a good one. I recently had a week off work -- my wife was back in Canada visiting friends for her birthday, so I had the house (and the animals) to myself. I still ended up doing some work every day in some capacity, but I also had the flexibility to focus on what I actually wanted to build. Fair warning up front: this is an extension of the stuff I&#8217;ve been talking about recently with building things using AI.</p><p>You can <strong><a href="https://www.youtube.com/watch?v=QXIcGSYTyqA">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-QXIcGSYTyqA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;QXIcGSYTyqA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/QXIcGSYTyqA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>Too Many Copilot Tabs, Not Enough Brain</strong></h2><p>For context: I lean on Copilot CLI for basically everything these days. I keep telling myself I should try other tools more -- I&#8217;ve poked at a few this year -- but the flow is working so well that pulling myself away feels actively disruptive. Add in the fact that I&#8217;ve got my token limits lifted, and there&#8217;s a lot of incentive to just stay put.</p><p>My day-to-day looks like juggling a handful of different repositories at once. There&#8217;s <strong><a href="https://brandghost.ai/?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-147">BrandGhost</a></strong>, the side business I run for automating social media posting and SEO work for other businesses. There&#8217;s Needlr, my <strong><a href="https://www.devleader.ca/2026/02/05/getting-started-with-needlr-fluent-di-for-net-applications?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-147">dependency injection framework for .NET</a></strong>. There&#8217;s a consumer app I&#8217;m helping a friend build. And then a handful of smaller supporting projects on top of that. In practice, that means I&#8217;ve got a PowerShell window open with something like twelve tabs, and I&#8217;m just bouncing between them -- prompting Copilot in one, checking on another, prompting a third.</p><p>I saw someone online recently put a name to the mental toll of doing this -- and that&#8217;s really pointing to the significance of this way of working. Constantly juggling too many AI sessions is a real cognitive cost, and it&#8217;s messing with people&#8217;s heads a little. I&#8217;ve <strong><a href="https://www.devleader.ca/2026/04/20/the-context-switching-problem-every-dev-faces-dev-leader-weekly-136?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-147">written about the context-switching problem before</a></strong>, but this is a new flavor of it -- it&#8217;s not just switching between tasks, it&#8217;s switching between <em>agents</em>, each with its own context, its own state, its own thing it&#8217;s in the middle of.</p><h2><strong>Ralph Loops, Orchestration, Spec Kit, and Templates</strong></h2><p>The system I&#8217;ve been building has multiple layers, and the important part is that every layer is optional on its own.</p><p>At the bottom is what&#8217;s known as a <strong>Ralph loop</strong> -- a pattern named after Geoffrey Huntley&#8217;s tongue-in-cheek nod to Ralph Wiggum, and it&#8217;s dead simple: a worker picks up a task, iterates on it inside some constraints, and if it doesn&#8217;t meet those constraints in the time it&#8217;s given, the work gets thrown away. No wasted human time arguing with an agent that&#8217;s gone sideways -- you just scrap the attempt.</p><p>On top of that sits an orchestration layer, which follows an open-source specification from OpenAI called <strong>Symphony</strong>. I&#8217;ve got my own C# implementation of it. This is the piece that schedules work across however many Ralph-loop workers are running.</p><p>And the third layer is an integration with <strong>Spec Kit</strong> -- GitHub&#8217;s open-source toolkit for spec-driven development. This is what lets you start the whole thing off just by handing it a spec. And I don&#8217;t know if I would call this a layer above or below the spec kit integration, but I have a template library that I am building for scaffolding. So it&#8217;s not exactly the same as spec kit, but it&#8217;s a a solo (or complementary) part of what the spec could include -- all up to my own standards and expectations for how I want something started.</p><p>Here&#8217;s the part I actually like: none of these layers are required. You can use the inner Ralph loop by itself. You can use the orchestration layer without ever touching a spec. Or -- and this is the version I&#8217;ve been testing -- you can hand the whole system a single one-shot prompt and let it use Spec Kit to build out the spec, then use the orchestration layer to schedule the work, then let the agents go execute it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>The One-Shot Calculator Test</strong></h2><p>To actually test this, I&#8217;ve been feeding it about as simple a prompt as I could come up with: <em>&#8220;I want a desktop-based calculator app in C#.&#8221;</em> That&#8217;s it. That&#8217;s the entire prompt, on purpose -- I wanted to see whether, given almost nothing, the system would actually finish.</p><p>Given how trivial that ask is, my bar was low: I expected spec documents to get created, and I expected a simple app with some buttons that does calculations -- the same basic calculator UI you&#8217;ve got on your phone. Tech stack didn&#8217;t matter to me -- WinForms, WPF, whatever, I wasn&#8217;t specifying it in the prompt. And since it&#8217;s such a simple app, I gave it a budget of an hour to get it done.</p><p>The early attempts weren&#8217;t failures exactly, but I wasn&#8217;t happy with them either. The problem was mostly glue -- the connective tissue between all the pieces. I&#8217;d come back and find it had burned 30 minutes retrying a single step because a worker session had literally frozen, or gotten stuck in a loop trying to build something it was missing a dependency for. That&#8217;s half an hour of a 60-minute budget gone to something completely silly, not to the actual work.</p><p>Eventually, though, I got a real end-to-end success. First one. And that felt like a genuine milestone, even for a calculator app -- because it meant the scaffolding, the orchestration, and the loop logic were all finally working together instead of fighting each other.</p><h2><strong>Why Templates Are the Real Unlock</strong></h2><p>If you take away one thing from this issue, I&#8217;d want it to be this: the real unlock isn&#8217;t the fancy orchestration layer. It&#8217;s the <strong>template library</strong>.</p><p>I&#8217;ve been building up a set of templates -- somewhere north of 10, under 20 -- that represent the foundation I&#8217;d expect for any codebase, depending on what I&#8217;m building. Want a desktop app in C#? I&#8217;ve got an Avalonia template that&#8217;s great for getting a cross-platform desktop app off the ground fast, which is exactly what kicked off the calculator build. Every one of these templates already reflects how I like to <strong><a href="https://www.devleader.ca/2026/04/07/plugin-architecture-in-c-the-complete-guide-to-extensible-net-applications?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-147">build things with a plugin architecture</a></strong>, and how I like to wire up dependency injection.</p><p>But a template isn&#8217;t just a starting solution file and a couple of projects. That&#8217;s part of it, sure. The bigger part is that every template ships with my coding standards already turned on -- analyzers and linters configured the way I want them by default. It also ships with my agent instructions: a library of shared instructions that match against file paths. So if an agent is working in a file that ends in <code>test.cs</code>, it automatically gets my standards for what a good test file looks like in C#. And because those instruction files are themselves templated, I can swap in different pieces depending on the stack -- xUnit instructions versus TUnit instructions, for example.</p><p><em><strong>Actionable Tip</strong></em>: if you&#8217;re experimenting with anything like this yourself, don&#8217;t start with the orchestration layer. Start with a small library of your own project templates and coding standards. That&#8217;s the piece I use every single day, regardless of whether the fancier orchestration experiment ever fully pans out.</p><p>Put it together and the goal is simple: when I kick off a brand-new project, it&#8217;s scaffolded well <em>from the very first commit</em>, fully on autopilot -- instead of me getting an agent to reinvent my standards from scratch every single time.</p><h2><strong>This Isn&#8217;t Just For New Projects</strong></h2><p>The other half of this system isn&#8217;t about kicking off brand-new projects -- it&#8217;s about ongoing work. There&#8217;s a small web server sitting there listening, and I can just queue work items up to it. It schedules agents against that queue, and if a backlog builds up, an orchestrator looks at priority and dependencies and figures out how to work through it.</p><p>Some pieces of this I use constantly, some are still very much an experiment. The templating library and the reusable instruction files -- I&#8217;m in those every single day. Because I&#8217;m running across so many different Copilot sessions and repos, I keep spotting the same small pattern show up more than once: &#8220;oh, this is clearly a recurring problem, let&#8217;s get it into the instructions&#8221; -- and that feeds straight back into the template library. The same thing happens when I&#8217;m building a new feature: sometimes I realize I need a template for this shape of work, sometimes I realize I just need better instruction coverage.</p><p>That&#8217;s honestly why I&#8217;m not worried if the fancier orchestration experiment doesn&#8217;t pan out. The templating system is something I get value from regardless -- and it also syncs just the instruction files (not the whole template) across my different projects, so if I improve a standard in one repo, it can propagate to the others.</p><p>... Besides, people smarter than me I am sure are already lightyears ahead on the orchestration part!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Teaching the Agent to Ask About UX</strong></h2><p>After that first successful run, I went and looked at the actual calculator -- and it looked <em>terrible</em>. So I asked Copilot directly: based on the spec, was there anything in there about UX? Nope. Nothing.</p><p>So for the next attempt, I changed the one-shot prompt -- and I mean changed it barely at all, because I wanted to keep it close to a true &#8220;give it nothing&#8221; test. I just added one line: <em>I want a consistently styled user interface that looks modern.</em> That goes in right at the start, and then the same pipeline runs: Spec Kit turns it into a spec, orchestration schedules the work, agents execute.</p><p>The part that still catches me off guard, even though I built it: there&#8217;s an <em>agent</em> driving the entire Spec Kit conversation on my behalf. I didn&#8217;t invent that pattern -- it&#8217;s not novel -- but actually watching an agent have that back-and-forth about what I want built, fully hands-off, still feels a little nuts. When we&#8217;re this hands-off, we either need to expect things to be done in odd ways or provide significant enough guard rails to keep things on track.</p><p>Worth saying too: none of this requires Spec Kit at all. If I want to bring my own spec, or my own prompt, or skip that step entirely, I can just start a new repo and start sending work items straight to the queue. Those work items can just as easily be GitHub issues -- the system integrates with GitHub directly.</p><h2><strong>Turning This Into Real Eval Scenarios</strong></h2><p>Once I&#8217;ve got this working end-to-end reliably, the next step is turning scenarios like the calculator app into actual <strong>eval scenarios</strong>. The idea: define requirements that apply across every scenario -- has to finish within a given time window, has to stay under a token budget, has to actually deliver on the spec. That last one needs an LLM judge that reviews the spec against the output and decides whether it actually delivered. I&#8217;ve written before about <strong><a href="https://www.devleader.ca/2026/03/21/evaluating-ai-agents-with-microsoftextensionsaievaluation-in-c?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-147">building LLM-as-judge evaluation harnesses in C#</a></strong>, and this is exactly the kind of system that needs one -- I don&#8217;t have a ton of eval experience yet, so I&#8217;m actively building that muscle.</p><p>Why bother? Because it gives me a way to tune the system honestly. If I change how conflict resolution works, or how retries behave, or how work gets scheduled across multiple parallel workers, I want to be able to run it against a handful of eval scenarios and say &#8220;yep, this still meets my bar&#8221; -- instead of just eyeballing one run and hoping.</p><p>One optimization idea that came out of watching this calculator run: it only used a single worker because there wasn&#8217;t enough parallel work to justify more. But for anything more complex -- multiple workers, potential conflicts, retry logic -- there&#8217;s a real efficiency question buried in here. Instead of spinning up a brand-new working session for every single work item, what if a worker just kept reusing the working directory it&#8217;s already sitting in? If a build takes a minute, and you&#8217;re chewing through 10 work items, that&#8217;s a minimum of 10 minutes out of your budget spent purely on rebuilding from scratch every time. On a 60-minute budget, that&#8217;s not a rounding error -- that&#8217;s a huge chunk of it.</p><h2><strong>Why I&#8217;m Actually Doing This</strong></h2><p>Zooming out, I think about all of this in two ways.</p><p>The first is that I&#8217;m trying to build things, and using AI well, so I need to get <em>better</em> at building the scaffolding that makes AI effective -- that&#8217;s my templating library, that&#8217;s my instruction file library, and I&#8217;m actively working on both.</p><p>The second is that I&#8217;m experimenting because that&#8217;s genuinely how I learn best. Long before AI was part of the picture, this looked like me <strong><a href="https://www.devleader.ca/2025/08/09/building-complex-side-projects-with-purpose-dev-leader-weekly-105?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-147">building a role-playing game as a side project</a></strong> -- not because I ever expected to ship a finished game, but because building it forced me to learn different corners of software engineering I wouldn&#8217;t have touched otherwise. Playing around with agent orchestration right now is the same instinct. I&#8217;m not sitting here thinking I&#8217;ve invented agent orchestration -- I haven&#8217;t, and there are people and companies way further ahead of me on this, which is completely fine. I&#8217;m happy to go use their stuff when it makes sense. This is just me playing around so I can learn, because that&#8217;s how learning has always worked for me.</p><p>If you&#8217;ve got questions about software engineering, AI, or your career, drop them in the comments, or head to <strong><a href="https://codecommute.com/">codecommute.com</a></strong> and submit them anonymously -- I&#8217;ll make a video response for you and everyone else watching.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/feeding-my-ai-workers-templates?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/feeding-my-ai-workers-templates?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/feeding-my-ai-workers-templates/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/feeding-my-ai-workers-templates/comments"><span>Leave a comment</span></a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EUh4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F373b4fdb-a530-4362-a849-ffa85026084a_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!EUh4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F373b4fdb-a530-4362-a849-ffa85026084a_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!EUh4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F373b4fdb-a530-4362-a849-ffa85026084a_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!EUh4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F373b4fdb-a530-4362-a849-ffa85026084a_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EUh4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F373b4fdb-a530-4362-a849-ffa85026084a_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/373b4fdb-a530-4362-a849-ffa85026084a_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!EUh4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F373b4fdb-a530-4362-a849-ffa85026084a_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!EUh4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F373b4fdb-a530-4362-a849-ffa85026084a_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!EUh4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F373b4fdb-a530-4362-a849-ffa85026084a_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!EUh4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F373b4fdb-a530-4362-a849-ffa85026084a_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://www.devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[When Your Product Manager Becomes Your Boss]]></title><description><![CDATA[Dev Leader Weekly 146]]></description><link>https://weekly.devleader.ca/p/when-your-product-manager-becomes</link><guid isPermaLink="false">https://weekly.devleader.ca/p/when-your-product-manager-becomes</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Sun, 28 Jun 2026 05:13:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YCc6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a82aabc-bd87-491f-82d6-f02b9b878af4_1536x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/06/28/when-your-product-manager-becomes-your-boss-dev-leader-weekly-146" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YCc6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a82aabc-bd87-491f-82d6-f02b9b878af4_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!YCc6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a82aabc-bd87-491f-82d6-f02b9b878af4_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!YCc6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a82aabc-bd87-491f-82d6-f02b9b878af4_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!YCc6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a82aabc-bd87-491f-82d6-f02b9b878af4_1536x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YCc6!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a82aabc-bd87-491f-82d6-f02b9b878af4_1536x1024.webp" width="1200" height="800.2747252747253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3a82aabc-bd87-491f-82d6-f02b9b878af4_1536x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:114158,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/06/28/when-your-product-manager-becomes-your-boss-dev-leader-weekly-146&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/203921955?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a82aabc-bd87-491f-82d6-f02b9b878af4_1536x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YCc6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a82aabc-bd87-491f-82d6-f02b9b878af4_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!YCc6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a82aabc-bd87-491f-82d6-f02b9b878af4_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!YCc6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a82aabc-bd87-491f-82d6-f02b9b878af4_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!YCc6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a82aabc-bd87-491f-82d6-f02b9b878af4_1536x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>Healthy conflict between product and engineering matters</p></li><li><p>A non-technical boss isn&#8217;t an automatic dealbreaker</p></li><li><p>Surface tech debt before it gets ignored</p></li><li><p><strong><a href="https://youtube.com/live/ncolE0sW-Do?feature=share">Join me for the live stream (or watch the recording) on Monday, June 29 at 7:00 PM Pacific</a></strong>!</p><div id="youtube2-ncolE0sW-Do" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;ncolE0sW-Do&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/ncolE0sW-Do?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div></li></ul><div><hr></div><h2><strong>When Your Product Manager Becomes Your Boss</strong></h2><p>This week&#8217;s topic comes from a post over on the ExperiencedDevs subreddit, and it&#8217;s a good one: <em>is it normal for the product owner or product manager to be your boss?</em> The person who posted it had their engineering manager leave -- and instead of backfilling that role, leadership made the product manager who already worked with the team the new manager of the engineers. So now the engineers report into a product manager, and as far as I can tell there&#8217;s no engineering manager replacement coming. That&#8217;s just the path forward. They were asking the obvious question: is this normal, and what should I make of it?</p><p>You can <strong><a href="https://www.youtube.com/watch?v=GTjkcvOMZ-8">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-GTjkcvOMZ-8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;GTjkcvOMZ-8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/GTjkcvOMZ-8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>One Detail Changes the Whole Picture</strong></h2><p>Right at the end of the post, they dropped in a piece of context that I think matters a lot: this is a company that&#8217;s <em>primarily a marketing company</em>. Software is an aspect of what they do, not the whole business. And they wondered if maybe that was a factor.</p><p>I think it&#8217;s a huge factor, and I want to call out <em>why</em> I love that they included it. We talk about a ton of different software engineering topics, and the right answer almost always depends on the situation. A tiny startup is not a giant enterprise. A company that&#8217;s effectively 100% a software business is not the same as a company where software supports some other product or service. When I read something like this and feel a strong gut reaction -- <em>wait, what the heck is that?</em> -- the most useful thing I can do is check whether the context is just very different from what I&#8217;m used to. It usually is. So keep that in mind as I share my take: your situation might not map cleanly onto mine, and that&#8217;s exactly the point.</p><h2><strong>Why You Actually Want Conflict Between Product and Engineering</strong></h2><p>Here&#8217;s the meta point I really want to land, because everything else hangs off of it. I think it&#8217;s genuinely important for a team or an organization to have <em>healthy conflict</em> between engineering and product. &#8220;Conflict&#8221; is almost too strong a word -- think of it as healthy tension between two groups motivated by different priorities.</p><p>If you only have product representation, you get pulled toward what I&#8217;d only half-jokingly call feature factory hell -- crank out features, crank out more features, and never make space for the work that keeps the foundation from getting brittle. Flip it around: if you only have engineering representation, you exaggerate the other way into tech-debt-and-architecture hell, endlessly refactoring and re-architecting while shipping very little customer value. Both extremes are caricatures, obviously. But that&#8217;s the whole reason you want both voices in the room. They pull against each other, and that tension is what keeps you focused on what actually matters: shipping real value without quietly rotting the codebase.</p><p>So when a team loses its engineering manager and folds entirely under product, my first concern isn&#8217;t &#8220;a PM can&#8217;t manage people.&#8221; It&#8217;s &#8220;who&#8217;s representing the engineering side of that tension now?&#8221;</p><h2><strong>The Traditional Setup, and What&#8217;s Really Shifting</strong></h2><p>In a more traditional org, engineers report up to an engineering manager, and the product manager works <em>with</em> the team. Those are two different things, and it&#8217;s worth separating them. The product manager absolutely helps understand and set priorities -- they&#8217;re translating what customers and the broader industry are asking for, figuring out which direction the product should go, and often bridging into sales and marketing. But the engineers aren&#8217;t reporting to that person for career development. They report to an engineering manager, and the engineering manager partners with the product manager on what to actually go focus on. If you want my full breakdown of that role, I wrote about <strong><a href="https://www.devleader.ca/2021/05/05/engineering-manager-whats-expected-in-the-role?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-146">what&#8217;s actually expected of an engineering manager</a></strong>.</p><p>What&#8217;s changing in this Redditor&#8217;s case is that the reporting line <em>and</em> the engineering representation are both collapsing into the product manager. The partnership tension I just described doesn&#8217;t have an obvious counterweight anymore.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Ownership Moves Around -- a Lot</strong></h2><p>I want to paint a picture from my own career, because the balance between product and engineering is not fixed. It moves.</p><p>Back when I worked at a <strong><a href="https://www.devleader.ca/2024/04/29/break-into-big-tech-my-journey-from-startup-to-microsoft?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-146">digital forensics company before I landed at Microsoft</a></strong>, most of the time product management set the direction of the product and made it very clear what we needed to deliver -- they sat between engineering, sales, marketing, and customers. We shipped monthly, and we&#8217;d prep hard for some big conferences, so product would shape a lot of the roadmap around those. From the engineering side, as an engineering manager and a software engineer, our job was to make it real -- and to push back in a healthy way. &#8220;You want these things, but you may not see all the detail that goes into doing them well, so let us represent that side.&#8221; Then we&#8217;d meet in the middle. Funny thing is, even though a lot was set by product, I never felt like I lacked input or control. We just had a genuinely good working relationship.</p><p>Then I came to Microsoft, onto a deployment platform team in Microsoft 365. Early on, it felt almost the opposite -- engineering managers were quite literally defining the roadmap, and the product managers were there to facilitate that vision, jumping into cross-team dependencies and smoothing things out. Then there was a reorg, and it flipped dramatically. Product went from facilitating to owning every priority, work stream, and deliverable -- to the point where it sometimes felt like I barely had a say. A complete 180, on the same org, in the span of a few years.</p><p>On the team I&#8217;m on now, it&#8217;s more of a hybrid. I feel like I have a lot of say in what we work on, and the product managers do a great job bridging the business needs down -- &#8220;here&#8217;s the initiative, here&#8217;s the spend or performance goal we need to hit&#8221; -- and then leaving the <em>how</em> to engineering. Three very different balances, all in one career. So when someone asks &#8220;is it normal for product to run things?&#8221; -- honestly, the ratio swings all over the place depending on where you are.</p><h2><strong>The Two Things That Get Weird</strong></h2><p>So what actually gets harder when a product manager is directly managing engineers? I see two big ones.</p><p><strong>Career development.</strong> In this case the poster said their PM isn&#8217;t technical at all. That can make career growth genuinely tricky. Not impossible -- I want to be careful here, because I&#8217;ve had non-technical managers I thought were fantastic, and plenty of people will disagree with me on that. There are real strengths a non-technical manager can bring. The hard version is when someone is non-technical <em>and</em> struggles to communicate effectively with technical people. That&#8217;s when it gets rough -- it&#8217;s hard to feel relatable to a manager when you don&#8217;t think they can follow what you&#8217;re working on or understand what career progression looks like for an engineer. Even if they actually do get it, that gap erodes the trust and respect that make the relationship work. I went deeper on how you even evaluate this in <strong><a href="https://www.devleader.ca/2026/05/04/measuring-manager-effectiveness-can-you-even-quantify-it-dev-leader-weekly-138?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-146">measuring manager effectiveness</a></strong>.</p><p><strong>Delivery and representation.</strong> This is the thread running through everything above. When you drop the engineering voice out of priority-setting, you lose the person who&#8217;s supposed to argue for the foundation. You&#8217;re left with a product focus -- and like a bunch of the Reddit commenters warned, <em>get ready for the feature factory</em>: more and more features, less and less room for the work that keeps your base from getting brittle. It&#8217;s not that it can&#8217;t work. It&#8217;s that the structure quietly removes the counterweight. Getting non-feature work onto the roadmap is already hard enough with an engineering manager in the room -- I broke down that whole battle in <strong><a href="https://www.devleader.ca/2026/06/15/how-to-get-tech-debt-prioritized-dev-leader-weekly-144?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-146">how to get tech debt prioritized</a></strong>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/subscribe?"><span>Subscribe now</span></a></p><h2><strong>How You Actually Make It Work</strong></h2><p>Here&#8217;s the part I care about most, because it&#8217;s the part you can control. If you&#8217;re in this spot and you&#8217;re not immediately heading for the door, do two things.</p><p>First, invest early in communication. Figure out <em>how</em> to talk to this manager so they actually get it. If you start going on about classes and code structure, a non-technical PM may have no idea what you mean and no interest in it. So learn -- quickly -- the level you need to communicate at, and ideally help them learn how to communicate effectively back to you. You don&#8217;t control their half of that, but you fully control yours, and getting this right is what lets you set clear expectations when you&#8217;re not seeing eye to eye. This, by the way, is the exact skill I&#8217;d argue <strong><a href="https://www.devleader.ca/2026/03/08/the-gap-between-good-developers-and-great-ones-dev-leader-weekly-130?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-146">separates good developers from great ones</a></strong> -- being able to translate technical reality for a non-technical audience.</p><p>Second, be proactive about surfacing the engineering side. A non-technical product manager probably isn&#8217;t going to ask, &#8220;hey, where&#8217;s our tech debt, do we need to re-architect anything?&#8221; -- not out of malice, but because it&#8217;s genuinely not on their radar. So you&#8217;ve got two options. You can sit and sulk -- &#8220;well, I guess we&#8217;re a feature factory forever, no tech debt work, no improving our test infrastructure, no re-architecting.&#8221; Or you can say: they&#8217;re not going to ask because they don&#8217;t know to ask, so <em>we&#8217;ll</em> bring it up. Lay out the pros, cons, and risks for the areas they don&#8217;t have exposure to. Whether they act on it is a separate story -- but the part you control is making sure it gets raised. And if they consistently won&#8217;t factor it in when prioritizing? That itself is a useful signal about whether this is a good long-term fit.</p><h2><strong>My Best Boss Was a Product Leader Running Engineering</strong></h2><p>I&#8217;ll leave you with a story that complicates the whole &#8220;product running engineering is bad&#8221; narrative. At that same digital forensics company, there was a stretch where our VP of engineering left, and the interim VP of engineering was our <em>product management leader</em>. So product was, quite literally, in charge of all of engineering -- a different level in the hierarchy than this Reddit situation, but the same basic shape.</p><p>And honestly? In my eight years there, that person was the best engineering leader I worked with at that level. Which sounds wild given the framing of &#8220;oh no, product is in charge, there&#8217;s no engineering voice.&#8221; So what made it work? He wasn&#8217;t writing code and wasn&#8217;t a software engineer, but he was technical <em>enough</em> in how he communicated. He listened to the engineering side. He clearly understood that you need that healthy conflict between product and engineering to prioritize well. And when he didn&#8217;t follow a technical detail, he&#8217;d just say so -- &#8220;I don&#8217;t get it, can you explain it a different way?&#8221; -- no bluffing, never frustrating to work with. A lot of it came down to his willingness to genuinely take in engineering concerns instead of just handing down &#8220;product decided, go ship it by next week, figure it out.&#8221; Even reporting into him, I always felt well supported in my own growth.</p><h2><strong>So, Is It Normal -- and Should You Worry?</strong></h2><p>My honest read: it&#8217;s not an absolute dealbreaker, but I&#8217;d also be lying if I said I&#8217;d love being in this exact situation. I think statistically I got pretty lucky with that interim VP, and more often than not, I suspect this setup doesn&#8217;t pan out quite as well. But the outcome isn&#8217;t fully out of your hands. If you&#8217;re aware of the parts you can influence -- communicating in a way your manager actually understands, and proactively making sure engineering concerns reach the prioritization table -- you can tilt the odds. And if you give that a real shot and it still doesn&#8217;t work? Then yeah, it&#8217;s probably time to go find a place where engineering gets a seat at the table.</p><p>If you&#8217;ve got a situation like this you&#8217;re wrestling with, you can submit it anonymously over at <strong><a href="https://codecommute.com/">codecommute.com</a></strong> and I&#8217;ll do my best to make a video response. Hope this one helps.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/when-your-product-manager-becomes?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/when-your-product-manager-becomes?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/when-your-product-manager-becomes/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/when-your-product-manager-becomes/comments"><span>Leave a comment</span></a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GJR-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa630713-cb4c-4255-932d-9b2405817318_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!GJR-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa630713-cb4c-4255-932d-9b2405817318_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!GJR-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa630713-cb4c-4255-932d-9b2405817318_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!GJR-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa630713-cb4c-4255-932d-9b2405817318_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GJR-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa630713-cb4c-4255-932d-9b2405817318_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa630713-cb4c-4255-932d-9b2405817318_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!GJR-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa630713-cb4c-4255-932d-9b2405817318_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!GJR-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa630713-cb4c-4255-932d-9b2405817318_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!GJR-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa630713-cb4c-4255-932d-9b2405817318_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!GJR-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa630713-cb4c-4255-932d-9b2405817318_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[Debugging When You Have No Idea What's Going On]]></title><description><![CDATA[Dev Leader Weekly 145]]></description><link>https://weekly.devleader.ca/p/debugging-when-you-have-no-idea-whats</link><guid isPermaLink="false">https://weekly.devleader.ca/p/debugging-when-you-have-no-idea-whats</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Mon, 22 Jun 2026 02:40:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WXcv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c5c15d6-28d4-4aae-b5df-8f8cddbac9ae_1536x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/06/21/debugging-when-you-have-no-idea-whats-going-on-dev-leader-weekly-145" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WXcv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c5c15d6-28d4-4aae-b5df-8f8cddbac9ae_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!WXcv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c5c15d6-28d4-4aae-b5df-8f8cddbac9ae_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!WXcv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c5c15d6-28d4-4aae-b5df-8f8cddbac9ae_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!WXcv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c5c15d6-28d4-4aae-b5df-8f8cddbac9ae_1536x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WXcv!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c5c15d6-28d4-4aae-b5df-8f8cddbac9ae_1536x1024.webp" width="1200" height="800.2747252747253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c5c15d6-28d4-4aae-b5df-8f8cddbac9ae_1536x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:144450,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/06/21/debugging-when-you-have-no-idea-whats-going-on-dev-leader-weekly-145&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/203032479?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c5c15d6-28d4-4aae-b5df-8f8cddbac9ae_1536x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WXcv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c5c15d6-28d4-4aae-b5df-8f8cddbac9ae_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!WXcv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c5c15d6-28d4-4aae-b5df-8f8cddbac9ae_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!WXcv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c5c15d6-28d4-4aae-b5df-8f8cddbac9ae_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!WXcv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c5c15d6-28d4-4aae-b5df-8f8cddbac9ae_1536x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>Not knowing everything is completely normal</p></li><li><p>Prove or disprove every hypothesis, then write it down</p></li><li><p>Disproving is just as valuable as proving</p></li><li><p><strong><a href="https://youtube.com/live/7EbZvuNTXIc?feature=share">Join me for the live stream (or watch the recording) on Monday, June 22 at 7:00 PM Pacific</a></strong>!</p></li></ul><div id="youtube2-7EbZvuNTXIc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;7EbZvuNTXIc&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/7EbZvuNTXIc?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2><strong>Debugging When You Have No Idea What&#8217;s Going On</strong></h2><p>Something is on fire. A live service is doing something it absolutely should not be doing, the metrics look wrong, and you&#8217;re sitting there staring at it thinking: <em>I genuinely have no idea what&#8217;s going on.</em> If you&#8217;ve ever felt that creeping sense of shame in that moment -- like a &#8220;real&#8221; engineer would already know the answer -- I want to talk to you. Because that feeling is incredibly common, and it&#8217;s almost entirely self-inflicted.</p><p>You can <strong><a href="https://www.youtube.com/watch?v=ofureG6lIOw">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-ofureG6lIOw" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;ofureG6lIOw&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/ofureG6lIOw?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>The Shame of Not Knowing Is Almost Entirely Self-Inflicted</strong></h2><p>This whole topic came out of a post on the ExperiencedDevs subreddit. Someone framed it really honestly: it feels <strong>shameful</strong> as a software engineer when something is happening that you don&#8217;t understand, and you genuinely don&#8217;t know what&#8217;s going on or how to make progress on it. And I get it. I really do. But I want to say this as clearly as I can: that is completely okay, and it&#8217;s completely normal.</p><p>No one in the world expects you to know everything. They shouldn&#8217;t expect it, and honestly, they <em>can&#8217;t</em> expect it -- it&#8217;s not possible. Part of being an engineer isn&#8217;t having every answer in your back pocket. It&#8217;s being curious and working toward a better understanding when you don&#8217;t have the answer yet. A lot of this pressure is self-inflicted, and a lot of it is just software engineering culture. We tend to be a group of strong problem-solvers, so hitting a wall where we just <em>don&#8217;t know</em> is wildly uncomfortable. That discomfort is normal. It does not make you a bad engineer.</p><p>This is also one of the big reasons we build software in teams. If everyone on your team thought exactly the way you do, then the moment <em>you</em> got stuck, the entire team would be stuck right alongside you. Diversity of skill, experience, and perspective is a feature, not a nicety. A lot of <strong><a href="https://www.devleader.ca/2024/04/15/8-things-i-wish-i-understood-earlier-in-my-career?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-145">the things I wish I understood earlier in my career</a></strong> come right back to exactly this.</p><h2><strong>Even Multiple Levels Up, We Don&#8217;t Always Have the Answer</strong></h2><p>I was recently talking with one of my engineers who was deep in a live site investigation. For context, the service area my team is responsible for in Microsoft 365 is... a bit outrageous. The sheer amount of traffic flowing through our systems makes it genuinely impossible for any single person to know every detail about everything. Should people on the team get better and better at investigating and understanding it over time? Absolutely -- that&#8217;s the whole game. But no single person knows everything all the time. The surface area is just too big.</p><p>So there we were, talking it through. A very sharp engineer, and me, several levels up -- and between the two of us, there was no obvious answer. In that moment, as a manager, part of me felt that same pull: <em>man, I wish I just had the answer in my head.</em> But my boss doesn&#8217;t expect me to know everything. My skip level doesn&#8217;t expect me to know everything. We have to make space for that. If your goal is to never be in a situation where you don&#8217;t know the next step, you&#8217;re going to fail at that goal. You <strong>will</strong> end up there. And that&#8217;s fine, because what actually matters is that you try to make progress.</p><p>If you&#8217;ve ever been on the receiving end of someone expecting you to instantly understand everything, <strong><a href="https://www.devleader.ca/2026/02/04/these-junior-developers-suck-they-just-dont-understand-my-code?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-145">this rant about &#8220;junior developers who just don&#8217;t get it&#8221;</a></strong> digs into that expectations mismatch between experience levels.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>My Framework: If You Can Prove It or Disprove It, Write It Down</strong></h2><p>Okay, so with all of that out of the way -- how do I actually approach a problem when I have no idea what&#8217;s going on?</p><p>Here&#8217;s the core of it: most people treat problem-solving as proving a hypothesis <em>right</em>. I treat it as building a matrix of what&#8217;s <strong>known fact</strong> versus what&#8217;s still <strong>assumption</strong>.</p><p>When most people debug, they form a hypothesis, go chase it, and if it turns out to be right, great -- they keep progressing. But if it turns out to be <em>wrong</em>, it gets quietly dismissed as wasted effort. &#8220;We thought it might be this, we looked into it, it wasn&#8217;t, so we got nowhere.&#8221; I want to push back on that hard. <strong>Disproving something is just as valuable as proving it.</strong></p><p>So whenever I can prove a statement true <em>or</em> false -- by reproducing something, by reading through the code, by finding a log that contradicts the theory -- I write it down. On a whiteboard, in a shared doc, wherever the team can see it. Back when we worked more in person, I used to fill entire whiteboards with assumptions, each one marked as proven or disproven. The magic of this is that <strong>none of the investigation is wasted</strong>. Every hypothesis you resolve, in either direction, shrinks the unknown. While something stays an assumption, it&#8217;s a live question hanging over the whole investigation. The goal is to keep converting assumptions into facts.</p><p>For the C# side of actually getting useful signal out of failures, I&#8217;ve got a guide on <strong><a href="https://www.devleader.ca/2023/10/22/how-to-handle-exceptions-in-csharp-tips-and-tricks-for-streamlined-debugging?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-145">handling exceptions in a way that streamlines debugging</a></strong>. For everything else: Build out your matrix of assumptions. Validate them.</p><h2><strong>There Are No Stupid Hypotheses</strong></h2><p>One of my favorite side effects of this approach: there are no dumb ideas. When nobody knows what&#8217;s going on, someone will eventually say, &#8220;This is going to sound kind of crazy, but... could it be something with the operating system?&#8221; And the room groans -- &#8220;come on, the OS is the <em>last</em> thing that&#8217;s going to have a problem.&#8221;</p><p>But... maybe it is? If you can&#8217;t state as a matter of <em>fact</em> that it isn&#8217;t, then it&#8217;s an assumption, and it&#8217;s completely valid to go prove or disprove. Across thousands of machines, could there be something off with a specific OS version in a specific scenario? One hundred percent. Is it common? Nope. Is it possible? Absolutely. So write it down and go check. Often the &#8220;crazy&#8221; hypothesis is exactly the one worth checking, <em><strong>because it&#8217;s the last thing anyone would have looked at</strong></em> -- and you already admitted you don&#8217;t know what&#8217;s going on.</p><h2><strong>Watch the Correlations Emerge</strong></h2><p>Here&#8217;s where it gets genuinely satisfying. Once you start turning assumptions into proven facts, patterns start to surface that you couldn&#8217;t see before.</p><p>You check the OS angle: &#8220;Nope, we see it across versions X and Y, so it&#8217;s not <em>the</em> operating system.&#8221; Fine, that&#8217;s a fact now. What about hardware? &#8220;We see it on configurations A and B, but not C... so C is still open, but A and B definitely reproduce it.&#8221; Now you&#8217;re not holding a pile of vague guesses in your head -- you&#8217;re drawing a map. And when you lay those proven facts side by side, you might suddenly notice: <em>wait, we only ever see this on these specific combinations.</em> Only this software version. Only this region. Only this traffic pattern.</p><p>That&#8217;s the moment the investigation stops being vibes and starts being <strong>data-driven</strong>. You go from &#8220;I don&#8217;t know, so let&#8217;s just guess&#8221; into actual experimentation, and then into higher-level correlations between signals you&#8217;ve <em>proven</em> are real. For live systems, this is also where good <strong><a href="https://www.devleader.ca/2026/04/02/opentelemetry-and-observability-in-microsoft-agent-framework?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-145">observability and telemetry</a></strong> earns its keep -- the more real signal you&#8217;ve instrumented, the faster those correlations show up.</p><p>And a bonus point here: get comfortable with AI and MCP servers. Being able to rely on an LLM to pull data and help you correlate it is SIGNIFICANTLY more effective than you being in the weeds just trying to pull the actual data. Let it do the boring work so you can use your brain for what&#8217;s more valuable.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Where This Came From: Debugging With Almost No Information</strong></h2><p>This framework actually goes back to my digital forensics days. The software we built essentially scanned devices -- mostly hard drives at the time -- and turned the data into a structured report so an investigator looking for digital evidence had something readable to work through. Think of it as a giant search engine plus an interactive dashboard.</p><p>Here&#8217;s the brutal part for debugging: because this was forensics, the data on those devices was highly sensitive material tied to active criminal cases, and a lot of it legally could not be copied or reproduced. So the usual &#8220;just send me a repro&#8221; was frequently off the table. On top of that, many of these workstations were often air-gapped by design. So when something broke, you might get a terse &#8220;it doesn&#8217;t work&#8221; and <em>maybe</em> a log file -- and you&#8217;d better hope there was something obvious in the stack trace, because a lot of the time there wasn&#8217;t.</p><p>When you&#8217;re debugging with limited information and no ability to reproduce the problem, you cannot afford to waste effort chasing hypotheses you&#8217;ve already implicitly ruled out. That constraint is exactly what forged this prove-or-disprove habit. It&#8217;s the same energy as untangling a gnarly dependency injection <strong><a href="https://www.devleader.ca/2024/03/19/autofac-in-asp-net-core-how-to-avoid-this-debugging-nightmare?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-145">debugging nightmare</a></strong> -- you methodically eliminate possibilities until the real cause has nowhere left to hide.</p><p>And yes -- afterward, always reflect: <em>if this happened again, could we add better logging, telemetry, or monitoring to catch it faster next time?</em> That follow-up is worth doing every single time. It just usually doesn&#8217;t help you in the heat of the moment, so treat it as a separate step.</p><h2><strong>The Keys Are in Your Hand</strong></h2><p>One last thing. Sometimes the reason you&#8217;re stuck is an assumption you never bothered to prove because it seemed <em>too</em> obvious to check. &#8220;Why would I look at that? It&#8217;s obviously not the problem.&#8221; But did you actually prove it?</p><p>It&#8217;s like tearing the house apart looking for your keys while they&#8217;re in your hand the whole time. I did this constantly as a kid building LEGO -- convinced they forgot to include the one piece I needed, when it was the next piece in the instructions, sitting right in my hand. Investigations have the exact same trap. The thing you &#8220;know&#8221; is fine is sometimes the very thing that&#8217;s broken.</p><h2><strong>You&#8217;re Not a Bad Engineer for Not Knowing</strong></h2><p>So if you take one thing from this issue, let it be this: you are not a bad engineer because you don&#8217;t know the next step. Don&#8217;t let the shame paralyze you. Accept that not knowing everything is completely normal -- it <em>has</em> to be, because no one can possibly know everything. The point isn&#8217;t to have the answer instantly. The point is to get curious, start writing down hypotheses, and start proving or disproving them one at a time. If you stay curious and keep exploring the problem space, you&#8217;ll keep making progress. And that&#8217;s all any of us can really ask for.</p><p>If you&#8217;ve got questions about software engineering or career development, drop them in the comments or head over to <strong><a href="https://www.codecommute.com/">CodeCommute.com</a></strong> and write in anonymously. I&#8217;m always happy to make a response and share a perspective if it helps.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/debugging-when-you-have-no-idea-whats/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/debugging-when-you-have-no-idea-whats/comments"><span>Leave a comment</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/debugging-when-you-have-no-idea-whats?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/debugging-when-you-have-no-idea-whats?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SNKU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd701b0cd-4ab7-4c50-a80a-fdd2f037dc5e_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!SNKU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd701b0cd-4ab7-4c50-a80a-fdd2f037dc5e_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!SNKU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd701b0cd-4ab7-4c50-a80a-fdd2f037dc5e_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!SNKU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd701b0cd-4ab7-4c50-a80a-fdd2f037dc5e_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SNKU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd701b0cd-4ab7-4c50-a80a-fdd2f037dc5e_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d701b0cd-4ab7-4c50-a80a-fdd2f037dc5e_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!SNKU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd701b0cd-4ab7-4c50-a80a-fdd2f037dc5e_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!SNKU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd701b0cd-4ab7-4c50-a80a-fdd2f037dc5e_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!SNKU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd701b0cd-4ab7-4c50-a80a-fdd2f037dc5e_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!SNKU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd701b0cd-4ab7-4c50-a80a-fdd2f037dc5e_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[How to Get Tech Debt Prioritized]]></title><description><![CDATA[Dev Leader Weekly 144]]></description><link>https://weekly.devleader.ca/p/how-to-get-tech-debt-prioritized</link><guid isPermaLink="false">https://weekly.devleader.ca/p/how-to-get-tech-debt-prioritized</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Mon, 15 Jun 2026 05:55:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YOJC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eda30e3-23b1-4b73-aff7-edd57988a418_1536x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/06/15/how-to-get-tech-debt-prioritized-dev-leader-weekly-144" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YOJC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eda30e3-23b1-4b73-aff7-edd57988a418_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!YOJC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eda30e3-23b1-4b73-aff7-edd57988a418_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!YOJC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eda30e3-23b1-4b73-aff7-edd57988a418_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!YOJC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eda30e3-23b1-4b73-aff7-edd57988a418_1536x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YOJC!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eda30e3-23b1-4b73-aff7-edd57988a418_1536x1024.webp" width="1200" height="800.2747252747253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9eda30e3-23b1-4b73-aff7-edd57988a418_1536x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:126270,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/06/15/how-to-get-tech-debt-prioritized-dev-leader-weekly-144&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/202080638?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eda30e3-23b1-4b73-aff7-edd57988a418_1536x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YOJC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eda30e3-23b1-4b73-aff7-edd57988a418_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!YOJC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eda30e3-23b1-4b73-aff7-edd57988a418_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!YOJC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eda30e3-23b1-4b73-aff7-edd57988a418_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!YOJC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9eda30e3-23b1-4b73-aff7-edd57988a418_1536x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>Decision-makers are detached from your code</p></li><li><p>&#8220;The code is a mess&#8221; never wins</p></li><li><p>Reframe tech debt as future velocity</p></li><li><p><strong><a href="https://youtube.com/live/sbNAWEMSgyI?feature=share">Join me for the live stream (or watch the recording) on Monday, June 15 at 7:00 PM Pacific</a></strong>!</p><div id="youtube2-sbNAWEMSgyI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;sbNAWEMSgyI&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/sbNAWEMSgyI?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div></li></ul><div><hr></div><h2><strong>How to Get Tech Debt Prioritized</strong></h2><p>This week&#8217;s topic comes from a post on the ExperiencedDevs subreddit. A developer was asking for perspective on getting their manager to prioritize tech debt. It used to get prioritized, they said, but lately their manager keeps pushing back because the team needs to deliver features. If you&#8217;ve been writing software for any length of time, you know this one -- the age-old battle between shipping more things and making the code better. And if you haven&#8217;t hit it yet, it&#8217;s probably just about to happen.</p><p>You can <strong><a href="https://www.youtube.com/watch?v=uSA_ot1FdX0">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-uSA_ot1FdX0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;uSA_ot1FdX0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/uSA_ot1FdX0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>This Is a Prioritization Problem, Not a Code Problem</strong></h2><p>The first thing I want to get out of the way is that this is genuinely tricky, and it&#8217;s tricky because it isn&#8217;t really one problem. It&#8217;s a prioritization problem, a communication problem, and a perspective problem all bundled together. If you&#8217;re more junior and this is happening to you for the first time, it&#8217;s easy to feel confused and frustrated by it -- like you&#8217;re clearly right and nobody will listen. So it&#8217;s worth slowing down and understanding what&#8217;s actually going on underneath.</p><p>Tech debt almost always accumulates the same way: a few things stack up, and whoever owns prioritization -- a product owner, an engineering manager, some combination of those roles -- has to make a call. And the more removed those people are from the code, the less direct understanding they have of how specific areas of the codebase affect your ability to ship. I don&#8217;t mean that conceptually. I mean very specifically: they are not going to know that <em>this</em> class or <em>that</em> module is the thing slowing you down, because they&#8217;re not spending time in there.</p><p>I&#8217;ll be honest about my own seat here, because it&#8217;s relevant. I&#8217;m an engineering manager at Microsoft -- I&#8217;ve been there just under six years, and I&#8217;ve been programming for over 20 years. But in my role, I don&#8217;t write code. It&#8217;s not that I&#8217;m not allowed to; it&#8217;s that there are enough other things I&#8217;m responsible for that it doesn&#8217;t make sense for me to spend my time there. So there are absolutely situations where I am simply not aware of where the tech debt is. I have to rely on and trust my team to bring it up. And when they do, I expect them to be able to articulate <em>why</em> it matters. That last part is the whole ballgame, and we&#8217;ll come back to it.</p><h2><strong>The Two Forces Working Against You</strong></h2><p>When you zoom out, there are two big forces shaping these conversations from the prioritizer&#8217;s side.</p><p><strong>The first is constant pressure to deliver more, often with less.</strong> Before Microsoft, I was at a startup, and there it was a never-ending stream of &#8220;how do we get more things done?&#8221; There&#8217;s truly an infinite amount of work, and a lot of it feels like strategic bets -- things you&#8217;re not certain about but believe you have to try. At a big company, it&#8217;s a different flavor of the same thing: less uncertainty per bet, but a massive surface area of teams all pushing their own initiatives. Either way, the pressure is &#8220;more, faster.&#8221; I went deep on how that infinite pile grows as you get more senior in <strong><a href="https://www.devleader.ca/2025/11/01/more-experience-more-overwhelmed-dev-leader-weekly-114?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-144">More Experience, More Overwhelmed</a></strong>.</p><p>Layer on the current climate -- hiring slowing down, teams shrinking, and the &#8220;we made a strategic pivot to AI, so where&#8217;s the 10x productivity?&#8221; expectation -- and the &#8220;do more with fewer people&#8221; drumbeat gets even louder. I hear this constantly: leadership bet on AI, and they&#8217;re relying on the people building things to show the return.</p><p><strong>The second force is detachment from specific areas of the code</strong>, which we already talked about. Put those two together -- relentless delivery pressure plus distance from the codebase -- and you have the exact conditions where tech debt loses. Not because anyone is stupid or malicious, but because the people deciding are focused on shipping value to customers, and you&#8217;re handing them an argument about classes and methods.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/subscribe?"><span>Subscribe now</span></a></p><h2><strong>How the Debt Actually Piles Up</strong></h2><p>Let me walk through the mechanism, because it&#8217;s so common it&#8217;s almost mechanical.</p><p>Say you want to build feature A in a one or two week window. The north star design is &#8220;do X, then Y, then Z.&#8221; If you did all of it properly, it might take a month or two. But you look at the window and go: we can definitely get X done, we&#8217;ll get partway into Y, maybe finish it with a tweak, and we will <em>not</em> get to Z. But that&#8217;s fine -- we&#8217;ll ship A on time and come back for Z next sprint.</p><p>So you ship. You got X, part of Y, and no Z. The feature works. You&#8217;re now in an intermediate state with a bit of debt baked in -- and then the question comes: what&#8217;s more important, the next batch of customer value, or going back to finish Z? If the feature already shipped and already works, finishing Z is almost never the higher-value option. If Z had been truly necessary, it would have blocked the release in the first place.</p><p>Now multiply that by every feature your team ships -- two, three, five, six of these at once -- and you can see how you just keep bleeding debt. I genuinely believe nearly every line of code we write is debt to some degree, but here I mean the specific, visible gaps you <em>know</em> you left because you took a shortcut to hit a date. And I don&#8217;t mean &#8220;shortcut&#8221; as an insult -- it&#8217;s often not &#8220;oh my god I can&#8217;t believe I wrote that.&#8221; It&#8217;s just &#8220;we didn&#8217;t get the full thing done, the feature works, and what&#8217;s left isn&#8217;t visible to the customer.&#8221; The frustration is that it keeps happening, sprint after sprint, and that constant churn is its own kind of tax -- closely related to the productivity drain I covered in <strong><a href="https://www.devleader.ca/2026/04/20/the-context-switching-problem-every-dev-faces-dev-leader-weekly-136?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-144">The Context Switching Problem Every Dev Faces</a></strong>.</p><h2><strong>Why &#8220;The Code Is a Mess&#8221; Never Wins</strong></h2><p>Here&#8217;s where most engineers shoot themselves in the foot. The argument they bring sounds like: &#8220;As a software engineer, I think we should focus on this. Here&#8217;s why.&#8221; And every reason is about the code -- this class is convoluted, we hate touching this module, we want to refactor for cleanliness.</p><p>Now put yourself in the prioritizer&#8217;s chair. They&#8217;re weighing &#8220;spend a week rewriting some classes&#8221; against &#8220;fix these three critical customer-reported bugs and ship these two features the sales team can use to chase five new customers.&#8221; Why would they pick the cleanup? The framing was lost before the conversation even started, because it was built entirely around things they don&#8217;t focus on and can&#8217;t easily evaluate.</p><p>It&#8217;s almost like you&#8217;re set up to automatically lose. And that&#8217;s a genuinely lousy spot -- being forced to pit your tech debt against visible customer value, using the one language the other side doesn&#8217;t speak.</p><p><em><strong>Actionable Tip</strong></em> -- Before you pitch tech debt, run it through this filter: strip out every reason that&#8217;s about the code itself, and see what&#8217;s left. If there&#8217;s nothing left, you don&#8217;t have a business case yet -- you have a preference. Keep digging until you can express the cost in terms of delivery, bugs, or time.</p><h2><strong>Reframe It in the Language of the Business</strong></h2><p>The move is to translate. Instead of &#8220;this code is a mess,&#8221; make it about speed, risk, and waste on the work <em>they</em> already care about.</p><p>Concretely, it sounds more like this: &#8220;This isn&#8217;t some legacy file we haven&#8217;t touched in four years and never will. We are actively in here right now. Two of the bugs this sprint are in this exact code, and we keep breaking it because it&#8217;s convoluted and we can&#8217;t test it effectively. If we slow down for a week and clean it up, the two features you want next -- which we already know live in this same area -- get easier. They&#8217;ll take half the time going forward, and we&#8217;ll stop bleeding these recurring bugs.&#8221;</p><p>See the difference? You&#8217;ve connected the cleanup to <strong>future velocity</strong>, <strong>reduced bugs</strong>, and <strong>less wasted time</strong> -- and you&#8217;ve anchored it to specific upcoming work the prioritizer has already hinted at. You&#8217;re not asking them to value clean code. You&#8217;re showing them how the debt is actively taxing the roadmap they care about. That&#8217;s the same spirit as deciding to <strong><a href="https://www.devleader.ca/2026/03/29/should-you-talk-to-your-manager-about-burnout-dev-leader-weekly-133?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-144">talk to your manager about burnout</a></strong> -- don&#8217;t lead with the vent, lead with the pattern, the impact, and what would actually help.</p><p>The more you can express tech debt as &#8220;this will speed us up on related work&#8221; or &#8220;this will stop these bugs that are clearly hurting our velocity,&#8221; the better your odds. &#8220;The code is a mess&#8221; is a feeling. &#8220;This is costing us two bugs a sprint and doubling the time on the next three features in this area&#8221; is a business case.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>The Manager&#8217;s Side of the Table</strong></h2><p>I want to address the manager dynamic too, because the original poster felt their manager was the obstacle. From where I sit, an engineering manager carries real responsibility <em>not</em> to turn the business&#8217;s delivery pressure into a crippling weight on the team. A good manager absorbs a lot of that and provides some shelter -- not by hiding it entirely (the team should understand the context), but by refusing to amplify it. Amplifying pressure isn&#8217;t productive and it isn&#8217;t helpful.</p><p>That shielding role is exactly what I dug into in <strong><a href="https://www.devleader.ca/2026/06/08/the-management-trap-in-software-engineering-dev-leader-weekly-143?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-144">The Management Trap in Software Engineering</a></strong> -- a lot of management is absorbing chaos so your team can stay focused. But there&#8217;s a real risk in being the person who soaks up everything, which I broke down in <strong><a href="https://www.devleader.ca/2025/05/31/the-hidden-cost-of-being-the-team-hero-dev-leader-weekly-96?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-144">The Hidden Cost of Being the Team Hero</a></strong>. The point for <em>you</em> as the engineer: your manager is very likely getting this pressure from above, and your job in that conversation is to make it easy for them to advocate for the cleanup to <em>their</em> stakeholders. Hand them the business case, not the complaint.</p><h2><strong>The Hard Truth: Some of It Will Never Get Done</strong></h2><p>I&#8217;ll close with the uncomfortable part, because pretending otherwise doesn&#8217;t help anyone. My entire job is prioritizing things, and at the end of the day you have to accept that some things simply will not get done. There is an infinite amount of work -- I have business-critical features to ship for my teams before you even get to tech debt or bug fixes -- and it is quite literally impossible to do all of it.</p><p>That means some of the stuff you talked about, planned, and said &#8220;oh, we&#8217;ll get to it&#8221; about may genuinely never happen. And honestly? That can be completely fine in the end. The skill isn&#8217;t getting everything done; it&#8217;s relentlessly ordering things by value and working through them, accepting that the bottom of the list might never come up. If that constant triage is wearing you down, you&#8217;re not alone -- I wrote about that exact feeling in <strong><a href="https://www.devleader.ca/2026/06/01/adhd-burnout-and-building-a-career-that-fits-your-wiring-dev-leader-weekly-142?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-144">ADHD, Burnout, and Building a Career That Fits Your Wiring</a></strong>.</p><p>So find the opportunities to bring tech debt up, and organize them from the perspective of the person doing the prioritization. What will make it clear to <em>them</em> why it&#8217;s valuable? That means framing it around value to them -- not value to you. It&#8217;s a frustrating thing to navigate, but reframing your perspective makes it a whole lot easier.</p><p>If you&#8217;ve got a specific situation you&#8217;re wrestling with, you can submit it anonymously over at <strong><a href="https://codecommute.com/?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-144">codecommute.com</a></strong> and I&#8217;ll try to make a video response.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/how-to-get-tech-debt-prioritized/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/how-to-get-tech-debt-prioritized/comments"><span>Leave a comment</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/how-to-get-tech-debt-prioritized?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/how-to-get-tech-debt-prioritized?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jSSZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58052154-392f-4a30-8fd1-ca14142b2a35_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!jSSZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58052154-392f-4a30-8fd1-ca14142b2a35_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!jSSZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58052154-392f-4a30-8fd1-ca14142b2a35_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!jSSZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58052154-392f-4a30-8fd1-ca14142b2a35_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jSSZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58052154-392f-4a30-8fd1-ca14142b2a35_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58052154-392f-4a30-8fd1-ca14142b2a35_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!jSSZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58052154-392f-4a30-8fd1-ca14142b2a35_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!jSSZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58052154-392f-4a30-8fd1-ca14142b2a35_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!jSSZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58052154-392f-4a30-8fd1-ca14142b2a35_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!jSSZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58052154-392f-4a30-8fd1-ca14142b2a35_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[The Management Trap in Software Engineering]]></title><description><![CDATA[Dev Leader Weekly 143]]></description><link>https://weekly.devleader.ca/p/the-management-trap-in-software-engineering</link><guid isPermaLink="false">https://weekly.devleader.ca/p/the-management-trap-in-software-engineering</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Mon, 08 Jun 2026 04:26:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Nl6T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96aa931f-edc4-4efc-ada4-277aadbf8874_1536x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/06/08/the-management-trap-in-software-engineering-dev-leader-weekly-143" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Nl6T!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96aa931f-edc4-4efc-ada4-277aadbf8874_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!Nl6T!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96aa931f-edc4-4efc-ada4-277aadbf8874_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!Nl6T!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96aa931f-edc4-4efc-ada4-277aadbf8874_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!Nl6T!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96aa931f-edc4-4efc-ada4-277aadbf8874_1536x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Nl6T!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96aa931f-edc4-4efc-ada4-277aadbf8874_1536x1024.webp" width="1200" height="800.2747252747253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/96aa931f-edc4-4efc-ada4-277aadbf8874_1536x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:92742,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/06/08/the-management-trap-in-software-engineering-dev-leader-weekly-143&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/201094027?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96aa931f-edc4-4efc-ada4-277aadbf8874_1536x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Nl6T!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96aa931f-edc4-4efc-ada4-277aadbf8874_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!Nl6T!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96aa931f-edc4-4efc-ada4-277aadbf8874_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!Nl6T!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96aa931f-edc4-4efc-ada4-277aadbf8874_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!Nl6T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96aa931f-edc4-4efc-ada4-277aadbf8874_1536x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>Management is a different job, not a promotion</p></li><li><p>Not all context switching drains you equally</p></li><li><p>Absorb your team&#8217;s chaos -- but keep it temporary</p></li><li><p><strong><a href="https://youtube.com/live/5KxvV0MsdYY?feature=share">Join me for the live stream (or watch the recording) on Monday, June 8 at 7:00 PM Pacific</a></strong>!</p><div id="youtube2-5KxvV0MsdYY" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;5KxvV0MsdYY&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/5KxvV0MsdYY?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div></li></ul><div><hr></div><h2><strong>The Management Trap in Software Engineering</strong></h2><p>This week&#8217;s topic comes from a post on the ExperiencedDevs subreddit titled &#8220;the management trap.&#8221; An engineering manager was reflecting on their career progression and how they&#8217;d arrived at a particular realization: they&#8217;re missing a lot of the joy -- that deep, hyperfocused, heads-down work they used to get as an individual contributor. As someone who has been a frontline engineering manager for over thirteen years, this one hit close to home, and I want to walk through my honest take on it.</p><p>You can <strong><a href="https://www.youtube.com/watch?v=rPx83FVUerI">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-rPx83FVUerI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;rPx83FVUerI&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/rPx83FVUerI?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>Where This One Is Coming From</strong></h2><p>I want to set the stage a bit, because context matters here. This isn&#8217;t a tiny startup with ten people on a single team -- it sounds like this person is in a larger organization. A lot of what they describe about how their time gets spent is the side effect of scale: cross-team coordination, headcount planning, all of that. <strong>That stuff exists in small companies too, but the amount of time, effort, and focus it demands varies dramatically based on the size and the stage of the company.</strong></p><p>The other detail that stood out to me is that this person is a frontline manager. They mentioned that a senior manager promotion has been talked about but never quite materializes. That resonates with me, because I&#8217;ve been a frontline manager for about thirteen and a half years now. Before Microsoft, I was at a smaller company where a director role was on the table -- but that was five and a half years ago. So when someone says they&#8217;ve been sitting in the frontline manager seat for a long stretch, watching the &#8220;next step&#8221; stay perpetually one conversation away, I get it.</p><p>And here&#8217;s the honest tension in their post: it&#8217;s not that they hate management. They explicitly said they get genuine enjoyment out of helping people with career progression, promotions, and growth. That part lights them up. But when they zoom out and look at their day-to-day, it feels chaotic -- scattered, sporadic, a lot of context switching -- and they miss the ability to just sink into one hard problem and feel like they&#8217;re making real progress on it.</p><h2><strong>Management Is a Different Job -- Not a Better or Worse One</strong></h2><p>If there&#8217;s one thing I want you to take from this issue, it&#8217;s this: <strong>a management role is not the same as an IC role, and that difference does not make it better or worse. It&#8217;s just different.</strong></p><p>That sounds obvious written down, but I don&#8217;t think it actually lands for most people until they&#8217;ve lived both sides. Engineering management is its own discipline within software engineering -- the same way a product manager or a project manager is something distinct within software engineering. It&#8217;s not &#8220;senior engineer, but with more authority.&#8221; The work itself changes shape.</p><p>A lot of people hit a point in their career where the promotion that&#8217;s offered to them is a management position. And that can be fantastic -- you might love it, it might fit you perfectly. But I&#8217;d urge you to understand what managers should actually be spending their time and focus on before you assume it&#8217;s just the natural next rung on the ladder. I went deep on this in <strong><a href="https://www.devleader.ca/2024/11/09/i-wish-i-knew-these-before-becoming-a-manager-dev-leader-weekly-69?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-143">I Wish I Knew THESE Before Becoming A Manager</a></strong>, and a lot of it comes down to expectations nobody sets for you up front.</p><h2><strong>Not All Context Switching Costs the Same</strong></h2><p>Here&#8217;s a nuance I don&#8217;t think gets talked about enough. The Reddit thread frames the chaos as the problem -- too much context switching, not enough hyperfocus. And I get that. But when I reflect on my own experience, <strong>it&#8217;s not the context switching itself that wrecks me. It&#8217;s context switching into work that doesn&#8217;t engage me.</strong></p><p>Let me give you a concrete contrast. When I&#8217;m working on security-related problems, there&#8217;s often a ton of context switching, and it can get genuinely chaotic. But I don&#8217;t walk away from it feeling burnt out, because that work excites me. Jumping in to help one of my engineers work through a gnarly technical challenge? That can be energizing, even though it&#8217;s an interruption. On the flip side, sitting down with focused, prepared time to work through interpersonal challenges or career progression with someone -- that feels good. But being rapidly context-switched into that <em>same</em> kind of work, with no runway, is incredibly taxing for me.</p><p>So it&#8217;s often not even the nature of the task that determines the cost. It&#8217;s how much context and preparation I have going into it. I talked about a closely related version of this in last week&#8217;s issue on <strong><a href="https://www.devleader.ca/2026/06/01/adhd-burnout-and-building-a-career-that-fits-your-wiring-dev-leader-weekly-142?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-143">ADHD, burnout, and building a career that fits your wiring</a></strong>, and the mechanics of why switching is so expensive in the first place in <strong><a href="https://www.devleader.ca/2026/04/20/the-context-switching-problem-every-dev-faces-dev-leader-weekly-136?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-143">The Context Switching Problem Every Dev Faces</a></strong>.</p><p><em><strong>Actionable Tip</strong></em> -- If you feel perpetually drained by your week, don&#8217;t just count your context switches. Audit <em>what</em> you&#8217;re switching into:</p><ul><li><p>Which interruptions leave you energized, and which leave you hollow?</p></li><li><p>How much of the draining stuff is draining because of the task itself vs because you had zero preparation for it?</p></li><li><p>Can you batch the low-context, high-cost work into a window where you&#8217;re actually braced for it, instead of letting it ambush your focus blocks?</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>The Part of Management I Actually Believe In</strong></h2><p>This is the piece of the conversation I have the most conviction about. <strong>I genuinely believe that to be effective as an engineering manager, my job is to enable my team to do their best possible work.</strong></p><p>In the short-to-medium term, that often means I have to be the one who gets randomized so that they don&#8217;t. When chaos comes in -- an urgent org-wide ask, an incident, a security fire -- I&#8217;d rather absorb the initial hit myself than yank three engineers out of their flow. I sometimes describe this as shielding or sheltering the team, and I want to be clear about what I mean: not hiding things from them, but removing distractions so they can stay locked on the work that actually moves us forward.</p><p>But absorbing chaos is only a good strategy if it&#8217;s <em>accruing</em> to something. Here&#8217;s my litmus test: from a pure operations standpoint, I feel successful in my role if I could walk away and my team could keep running entirely on their own. That sounds almost paradoxical -- like I&#8217;m saying my goal is to not be needed. From a career-growth standpoint that&#8217;s obviously not the whole picture, because I&#8217;m here to help every one of them grow. But operationally, the target is a team that doesn&#8217;t depend on me to function. I dug into this idea of self-sufficient, autonomous teams in <strong><a href="https://www.devleader.ca/2024/12/28/effective-software-teams-islands-and-autonomy-dev-leader-weekly-76?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-143">Effective Software Teams: Islands and Autonomy</a></strong>.</p><p>The real trap -- and in my opinion this is the actual trap, more than the &#8220;I miss being an IC&#8221; framing -- is when the chaos I&#8217;m absorbing <em>isn&#8217;t</em> moving us toward that self-sufficiency. If I&#8217;m just perpetually soaking up randomization with no end state where the team gets more autonomous, that&#8217;s not sustainable. It&#8217;s supposed to be temporary. Take the chaos, let the team build the processes, services, and tools that make us stronger, and then we don&#8217;t need me in that spot anymore -- and we move on to the next frontier together. The flip side of this is a real risk worth naming: if you become the <em>only</em> person who ever absorbs the chaos, you&#8217;ve built a fragile system around your own bandwidth, which is exactly the failure mode I broke down in <strong><a href="https://www.devleader.ca/2025/05/31/the-hidden-cost-of-being-the-team-hero-dev-leader-weekly-96?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-143">The Hidden Cost of Being the Team Hero</a></strong>.</p><h2><strong>Fan-Out Work Is the Most Unscalable Thing I&#8217;ve Seen</strong></h2><p>Let me give you the specific pattern that&#8217;s been on my mind, because it&#8217;s the clearest example of chaos that <em>doesn&#8217;t</em> accrue to anything good. I&#8217;ve been trying to make more noise about it lately: <strong>fan-out work.</strong></p><p>We&#8217;re a platform team in a large organization. Because the surface area is enormous, what happens constantly is that some team owns a thing, a change lands, and the message goes out: &#8220;everyone needs to go make this change.&#8221; The work fans out to dozens of teams. And it&#8217;s not one team doing this -- it&#8217;s <em>multiple</em> teams all fanning work out to each other simultaneously.</p><p>In my opinion, this is one of the most inefficient, productivity-destroying patterns you can possibly have. And I want to be careful here -- I&#8217;m not saying the work isn&#8217;t important. I&#8217;m not saying we shouldn&#8217;t help. I&#8217;m saying it is, by a wide margin, the most disruptive kind of work I&#8217;ve encountered in my software engineering career. The randomization it injects across an entire org is brutal.</p><p>This is where being a manager means more than just personally absorbing hits. If I notice that fan-out work is a recurring theme, I owe it to my team to push back to the broader organization and say, &#8220;something has to change here.&#8221; That doesn&#8217;t mean I&#8217;ll have the solution in hand. But if I&#8217;m going to make noise about a problem, I need to volunteer to be part of building the fix -- not just complain about it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Systematize the Interruptions Instead of Just Absorbing Them</strong></h2><p>There&#8217;s an older example I come back to a lot. Back in my startup days, the CTO and founder would come by and say, &#8220;this is urgent, we have to do it now.&#8221; Especially in the early days, we&#8217;d drop everything and get completely randomized. I&#8217;d try to step in and shelter the team from it, but over time we landed on something better -- a kind of unwritten contract.</p><p>When we got approached that way, the new default became: <strong>we don&#8217;t just drop everything. We talk about it.</strong> We&#8217;d explain what we were currently working on, give visibility into the tradeoff, and then if the answer was still &#8220;yes, I genuinely think you should drop that other thing,&#8221; at least it was a <em>conscious</em> decision made with full context -- not a reflex.</p><p>That shift, from reflexive interruption to a deliberate, systematized filter, was hugely important. The team was almost always working on things that made us more effective in the long run, so being able to push back and force the interruption to justify itself protected the work that mattered.</p><p><em><strong>Actionable Tip</strong></em> -- If your team is constantly randomized by &#8220;urgent&#8221; asks, build a lightweight filter instead of absorbing each one in the moment:</p><ul><li><p>Make the current priorities visible, so any new ask has to be weighed against something concrete.</p></li><li><p>Push the interruption to be an explicit decision: &#8220;we can do that, but it displaces X -- is that the call you want to make?&#8221;</p></li><li><p>Capture recurring interruption <em>types</em> (like fan-out work) and treat the pattern itself as a problem to solve, not just each instance.</p></li></ul><h2><strong>Firefighting vs Getting Ahead of the Fire</strong></h2><p>The other balance I&#8217;m constantly trying to strike: how much energy goes into firefighting for the team, versus getting ahead of the fires so they don&#8217;t start? When I&#8217;m spending all my time absorbing the chaos of the moment, I have nothing left to invest in preventing the <em>next</em> wave of it. And the fires my team isn&#8217;t directly working to put out -- those are exactly the ones I need to find capacity to address myself.</p><p>I&#8217;ll be honest about a compounding factor here, too. When I&#8217;m running multiple teams and I don&#8217;t feel like I have enough capacity on each one, that&#8217;s a huge contributor to exactly the scattered, randomized feeling the Reddit poster described. Fewer people to rely on means I have to context-switch even more. I have genuinely amazing people on my teams -- just fewer of them than I&#8217;d want to sustain everything without me jumping into the gaps. That&#8217;s nobody&#8217;s fault. It&#8217;s mostly the side effect of organizational growth, and it&#8217;s something I covered from the IC angle in <strong><a href="https://www.devleader.ca/2025/11/01/more-experience-more-overwhelmed-dev-leader-weekly-114?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-143">More Experience, More Overwhelmed</a></strong>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>If Management Is the Promotion In Front of You</strong></h2><p>So let me bring this back to where the Reddit poster started. They framed it as a trap for managers -- losing the ability to hyperfocus the way they could as an IC. And honestly? I do miss some of that. But I&#8217;ve also found that I get a lot of that deep-focus satisfaction <em>outside</em> of work, and I genuinely enjoy it there.</p><p>The answer is going to be different for everyone, and that&#8217;s exactly the point. As you move up, the hands-on, heads-down portion of the job tends to shrink -- I talked about that reality in <strong><a href="https://www.devleader.ca/2025/12/06/senior-engineers-spend-less-time-coding-dev-leader-weekly-118?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-143">Senior Engineers Spend Less Time Coding</a></strong>. Management accelerates that shift even further. So if a management promotion is the thing being offered to you, don&#8217;t take it just because it&#8217;s labeled &#8220;the next level.&#8221; Understand that you&#8217;re signing up for a fundamentally different job -- one with friction coming at you from multiple directions, where success looks less like &#8220;I shipped this&#8221; and more like &#8220;my team shipped this without needing me.&#8221;</p><p>If that trade excites you, management can be incredibly rewarding. If the thing you love most is the deep technical flow, go in with your eyes open that you&#8217;re trading away a lot of it -- and know that there may be other ways to grow that keep you closer to it.</p><h2><strong>Final Thought</strong></h2><p>I&#8217;ll admit this one is a bit all over the place, because the topic genuinely is. The &#8220;management trap&#8221; isn&#8217;t really a trap in the sense of a mistake you fall into. It&#8217;s just the reality that management is a different role, with different rewards and different costs, and a lot of people step into it without anyone being honest with them about that tradeoff.</p><p>If you&#8217;re weighing this in your own career -- or you&#8217;re already in the seat and feeling the scatter -- I hope this gave you a more useful frame than &#8220;management good&#8221; or &#8220;management bad.&#8221;</p><p>And if you&#8217;ve got a specific situation you&#8217;re navigating, you can submit it anonymously over at <strong><a href="https://codecommute.com/?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-143">codecommute.com</a>,</strong> and I&#8217;ll try to make a video response.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/the-management-trap-in-software-engineering?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/the-management-trap-in-software-engineering?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/the-management-trap-in-software-engineering/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/the-management-trap-in-software-engineering/comments"><span>Leave a comment</span></a></p><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6xse!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc04a715b-c87b-4323-b2da-b7e524e11f63_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!6xse!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc04a715b-c87b-4323-b2da-b7e524e11f63_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!6xse!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc04a715b-c87b-4323-b2da-b7e524e11f63_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!6xse!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc04a715b-c87b-4323-b2da-b7e524e11f63_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6xse!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc04a715b-c87b-4323-b2da-b7e524e11f63_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c04a715b-c87b-4323-b2da-b7e524e11f63_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!6xse!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc04a715b-c87b-4323-b2da-b7e524e11f63_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!6xse!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc04a715b-c87b-4323-b2da-b7e524e11f63_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!6xse!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc04a715b-c87b-4323-b2da-b7e524e11f63_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!6xse!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc04a715b-c87b-4323-b2da-b7e524e11f63_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[Building a Career That Fits Your Wiring]]></title><description><![CDATA[Dev Leader Weekly 142]]></description><link>https://weekly.devleader.ca/p/building-a-career-that-fits-your</link><guid isPermaLink="false">https://weekly.devleader.ca/p/building-a-career-that-fits-your</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Mon, 01 Jun 2026 15:51:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bSmk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde648b27-6968-4c28-b4d7-8bd425734de8_1536x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/06/01/adhd-burnout-and-building-a-career-that-fits-your-wiring-dev-leader-weekly-142" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bSmk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde648b27-6968-4c28-b4d7-8bd425734de8_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bSmk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde648b27-6968-4c28-b4d7-8bd425734de8_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bSmk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde648b27-6968-4c28-b4d7-8bd425734de8_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bSmk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde648b27-6968-4c28-b4d7-8bd425734de8_1536x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bSmk!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde648b27-6968-4c28-b4d7-8bd425734de8_1536x1024.jpeg" width="1200" height="800.2747252747253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de648b27-6968-4c28-b4d7-8bd425734de8_1536x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:204483,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/06/01/adhd-burnout-and-building-a-career-that-fits-your-wiring-dev-leader-weekly-142&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/200140649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde648b27-6968-4c28-b4d7-8bd425734de8_1536x1024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bSmk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde648b27-6968-4c28-b4d7-8bd425734de8_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bSmk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde648b27-6968-4c28-b4d7-8bd425734de8_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bSmk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde648b27-6968-4c28-b4d7-8bd425734de8_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bSmk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde648b27-6968-4c28-b4d7-8bd425734de8_1536x1024.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>The list is infinite -- accept it and prioritize accordingly</p></li><li><p>Lean into the work that actually energizes how you&#8217;re wired</p></li><li><p>Pick the easiest task to break paralysis when overwhelmed</p></li><li><p><strong><a href="https://youtube.com/live/CebjuAipA78?feature=share">Join me for the live stream (or watch the recording) on Monday, June 1 at 7:00 PM Pacific</a></strong>!</p><div id="youtube2-CebjuAipA78" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;CebjuAipA78&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/CebjuAipA78?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div></li></ul><div><hr></div><h2><strong>ADHD, Burnout, and Building a Career That Fits Your Wiring</strong></h2><p>This week&#8217;s Reddit thread is from the ExperiencedDevs subreddit, and it asks a question that I think a lot of people quietly wonder about: <strong>if you have ADHD, anxiety, depression, or some combination of those things, do you feel &#8220;nerfed&#8221; compared to your colleagues?</strong></p><p>I want to be careful with this one. I&#8217;m not lumping these together because I think they&#8217;re correlated. They&#8217;re not. They&#8217;re distinct things that show up very differently in different people. But the question is real, and I have my own answer for parts of it, so I want to walk through what I&#8217;ve actually learned -- specifically as it applies to engineering work -- rather than offer abstract reflections.</p><p>I&#8217;m also going to be upfront: I&#8217;ve been diagnosed with ADHD. I&#8217;ve gone through periods of depression at earlier points in my career. I don&#8217;t have an anxiety diagnosis. I&#8217;m not a doctor, I&#8217;m not telling you what to do, and the words I use here come from my lived experience as an engineer and engineering manager. Take what&#8217;s useful and leave the rest.</p><p>You can <strong><a href="https://www.youtube.com/watch?v=Hx2B3FpGUl8">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-Hx2B3FpGUl8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Hx2B3FpGUl8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Hx2B3FpGUl8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>Where This Is Coming From</strong></h2><p>When I made my video response to this Reddit thread, I just wrapped a two-week on-call rotation. On paper, my on-call shift is only six hours a day, Sundays off. In practice, between the team I manage and some adjacent security work that doesn&#8217;t really respect rotation boundaries, I ended up putting in 12-hour days for stretches of it. I&#8217;d wake up at 5:30 AM, dismiss the notifications on my phone, realize a few of them were actual things I needed to deal with, and effectively start work right there in bed. By the time my actual on-call shift kicked in at noon, I&#8217;d already been at it for hours.</p><p>By the time it ended, I was cooked. Sunday night I&#8217;m sitting at my desk -- the time I&#8217;m supposed to be working on the things I genuinely enjoy -- and I&#8217;m just holding my head in my hands. Nothing left. My wife walks in and asks what&#8217;s going on, because she can see it.</p><p>That conversation is what kicked off the reflection that this article is built on. So fair warning: a lot of this is from the freshly-burnt-out version of me. But honestly, that version of me probably has more useful things to say about this than the rested version.</p><h2><strong>The Infinite List Problem</strong></h2><p>Here&#8217;s the thing I keep crashing into: <strong>my life is lists.</strong> Whether it&#8217;s a whiteboard, a notes app, a backlog, or just in my head, that&#8217;s how I keep track of what needs to happen. And the lists never stop growing.</p><p>For most engineers, this is just reality. There&#8217;s no shortage of work. AI hasn&#8217;t shrunk the list -- it has expanded what&#8217;s possible to ship, which means more things go on the list, not fewer. The total work to do is effectively indefinite. I&#8217;ve made this point in the broader context before, in the <strong><a href="https://www.devleader.ca/2025/11/01/more-experience-more-overwhelmed-dev-leader-weekly-114?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-142">More Experience, More Overwhelmed</a></strong> issue. The more senior you get, the more the list grows and the less of it you can personally close out.</p><p>This becomes a specific kind of problem if you&#8217;re wired the way I am. <strong>My natural posture is &#8220;get through the list.&#8221;</strong> And when the list is mathematically impossible to ever finish, you&#8217;re essentially walking around in a perpetual low-grade state of failure. My wife actually surfaced this one and it landed hard: she said the reason I struggle with this is that I take a lot of pride in my work. So an infinite, never-empty list becomes a constant admission that something is incomplete. It&#8217;s a treadmill that doesn&#8217;t stop.</p><p>I don&#8217;t know if there&#8217;s a clean fix for that. I haven&#8217;t found one. But what I have found are tactics that take the edge off.</p><p><em><strong>Actionable Tip</strong></em> -- A few things that have actually helped me operate inside the infinite-list reality:</p><ul><li><p><strong>Stop measuring success as &#8220;list empty.&#8221;</strong> Measure it as &#8220;right things done this week.&#8221; The shift is from completion to prioritization.</p></li><li><p><strong>Have a visible &#8220;top 3 today&#8221; outside the master list.</strong> When the master list is overwhelming, working only off the top-3 view for the next few hours is sometimes the only way to start.</p></li><li><p><strong>Pick the smallest task on the list when paralyzed.</strong> Yes, it&#8217;s the wrong task by priority. But the worst outcome when you&#8217;re frozen is doing nothing, and three small wins in 30 minutes often build the momentum to take on the big one.</p></li><li><p><strong>Audit the list itself periodically.</strong> Things on the list for 90+ days that you&#8217;ve never started are probably never going to get started. They&#8217;re noise. Move them to a &#8220;maybe-later&#8221; file and stop letting them haunt the active backlog.</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>The Paralysis Trap</strong></h2><p>The thing nobody warned me about with an overflowing list is that the most intuitive response -- &#8220;I have so much to do, I better get moving&#8221; -- is actually the opposite of what often happens. <strong>The brain can flip in the other direction and just freeze.</strong> You sit there, totally aware of how much there is, completely unable to start any one specific thing.</p><p>This is the part that feels backwards. If you have ten things you need to do today, doing zero of them should be the absolute worst outcome. And yet, when the overwhelm hits, zero is exactly where you can end up.</p><p>My only reliable counter to this is going small. Not &#8220;the most important thing.&#8221; Not &#8220;the highest-leverage thing.&#8221; <strong>The easiest, fastest, get-it-off-the-list thing.</strong> Even if it&#8217;s tiny. Even if it doesn&#8217;t matter much. Once one item is checked off, the next one feels possible. Once a few are done, sometimes the big one suddenly stops feeling like a wall.</p><p>This is related to the broader context-switching pain I talked about in <strong><a href="https://www.devleader.ca/2026/04/20/the-context-switching-problem-every-dev-faces-dev-leader-weekly-136?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-142">The Context Switching Problem Every Dev Faces</a></strong>. The same thing that makes context switching expensive for everyone is what makes the &#8220;start small to build momentum&#8221; trick work for me -- once my brain is engaged on <em>something</em>, the cost of starting the next thing drops.</p><h2><strong>The Chaos-Is-A-Superpower Thing</strong></h2><p>Reading through the Reddit thread, the comment pattern I found most interesting was people with ADHD saying, basically, <strong>&#8220;put me in the firefighting role. Don&#8217;t put me in the planning meetings. I want the chaos because chaos engages me.&#8221;</strong> And then a wave of replies going &#8220;this is me, this is exactly me.&#8221;</p><p>I read that and went, really? But the more I thought about it, the more it tracks for me too. Security incidents and on-call escalations are exhausting, but they&#8217;re not boring. There&#8217;s urgency, something concrete to chase, a problem with a real shape. I find that engaging in a way that long quiet planning blocks aren&#8217;t. That&#8217;s not a moral statement. It&#8217;s just how my brain reacts.</p><p>The actionable version of this is: <strong>pay attention to which kinds of engineering work actually energize you vs drain you, and don&#8217;t assume the conventional wisdom about &#8220;good work&#8221; matches your wiring.</strong> Some examples of pairs I&#8217;ve noticed for myself and people I&#8217;ve managed:</p><ul><li><p>Deep architectural design vs. incident response -- both legitimate engineering. Some people light up at one, some at the other.</p></li><li><p>Greenfield builds vs. complex production debugging -- some engineers go after these very differently.</p></li><li><p>Long planning meetings vs. short focused syncs -- same content, different cognitive cost.</p></li><li><p>Solo deep work vs. mob/pair programming -- some people get energized by one and depleted by the other.</p></li></ul><p>None of those are wrong. None of them mean you&#8217;re a worse engineer if one drains you. But if you ignore the pattern and structure your week around the work that depletes you, you&#8217;re going to burn out faster -- and you&#8217;re going to do it while assuming the burnout is your fault, when really it&#8217;s just a workload mismatched to your wiring.</p><h2><strong>Don&#8217;t Confuse Burnout With &#8220;Just Tired&#8221;</strong></h2><p>One of the things I had to learn the hard way is that <strong>burnout doesn&#8217;t always feel like sadness.</strong> Earlier in my career, before I really had vocabulary for any of this, I thought depression looked like obvious sadness. It doesn&#8217;t always. Sometimes it&#8217;s just emptiness, or paralysis, or the feeling of having nothing left to give to the things you normally love.</p><p>Right now I&#8217;m not depressed, but I&#8217;d be lying if I said I&#8217;m not carrying some of the same flavor of that from the on-call burnout. The signal I look for: <strong>am I sitting down to do the work I genuinely enjoy and still feeling like I can&#8217;t engage with it?</strong> When the answer is yes for more than a couple of days, that&#8217;s not &#8220;I&#8217;m tired.&#8221; That&#8217;s something I have to actually address with rest, not push through.</p><p>This is where the <strong><a href="https://www.devleader.ca/2026/03/29/should-you-talk-to-your-manager-about-burnout-dev-leader-weekly-133?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-142">Should You Talk To Your Manager About Burnout?</a></strong> issue becomes relevant. The short version of my answer there is: yes, but with framing. Don&#8217;t go in with vague &#8220;I&#8217;m tired.&#8221; Go in with &#8220;here&#8217;s the pattern I&#8217;m seeing, here&#8217;s the impact, here&#8217;s what I think might help.&#8221; That conversation goes very differently from the vent.</p><p>The same point applies for promotion timing, by the way. I covered that in <strong><a href="https://www.devleader.ca/2025/10/11/promotions-without-burnout-dev-leader-weekly-112?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-142">Promotions Without Burnout</a></strong> -- the pattern of grinding yourself into the ground to <em>earn</em> a promotion and then arriving at the new level with no fuel left is one of the most common career failure modes I see. If your wiring is already prone to overwhelm, that path is even more dangerous.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>The Randomization-Absorption Move (Manager Perspective)</strong></h2><p>This one is specific to engineering managers, and I think it&#8217;s the part of this conversation I have the most conviction about.</p><p>I want my team focused. I want them not getting randomized constantly. I want them clear on priorities so they can make their own decisions without me being in the middle of every call. That&#8217;s just good engineering management, and I talk to my team about minimizing context switching for them all the time.</p><p>But here&#8217;s the part that took me a while to admit: <strong>for me to protect them from randomization, somebody has to absorb it. And often, that somebody is me.</strong> When a security incident hits during their focus time, I&#8217;d rather take the initial triage hit myself than yank three engineers off what they were doing. When a request comes in from another team that&#8217;s going to derail an afternoon, I&#8217;d rather have the meeting myself than route it to someone who&#8217;s mid-flow.</p><p>This isn&#8217;t scalable forever, and it&#8217;s not the only tactic. But when push comes to shove, <strong>if my job is to protect their focus, then absorbing some of the chaos is part of that job.</strong> Which means I have to be honest with myself about my own energy budget -- the same things I tell my engineers about not running themselves into the ground apply to me too.</p><p>The related caution here, and this one is for both ICs and managers, is the <strong><a href="https://www.devleader.ca/2025/05/31/the-hidden-cost-of-being-the-team-hero-dev-leader-weekly-96?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-142">Hidden Cost of Being the Team Hero</a></strong>. Volunteering to absorb chaos is a service to the team -- but if you become the only one who absorbs it, you&#8217;re building a fragile system around your own bandwidth. That&#8217;s a separate problem worth being honest about. By absorbing the chaos, you&#8217;re ideally creating more opportunity for the rest of the team to move past situations where you need to be absorbing that kind of chaos -- that&#8217;s how you scale out of it.</p><h2><strong>So Are You Nerfed?</strong></h2><p>Back to the original Reddit question.</p><p>My honest answer: <strong>not nerfed, but mismatched in certain contexts.</strong> Engineering work is wildly varied. Some of it lines up with how my brain operates and some of it actively fights against it. The job is not to fix my brain to match the work. The job is to understand the wiring, lean into the work that energizes it, build coping mechanisms for the work that doesn&#8217;t, and -- as a manager -- design roles where the people I work with get to do more of the former and less of the latter.</p><p><em><strong>Actionable Tip</strong></em> -- A short reflection exercise. Spend 10 minutes thinking through this:</p><ul><li><p>Which two or three types of engineering work in the last 30 days made me lose track of time?</p></li><li><p>Which two or three left me drained even though they were short?</p></li><li><p>Is my current week structured more like the first list or the second?</p></li><li><p>If it&#8217;s the second, what&#8217;s one thing I could shift this week to get closer to the first?</p></li></ul><p>You won&#8217;t be able to fully optimize this -- the job has what it has. But even a 20% shift toward work that fits your wiring tends to compound over months.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Final Thought</strong></h2><p>I don&#8217;t have a clean wrap-up for this one. I&#8217;m sharing because the Reddit thread was honest and I think it deserves honest engagement back. If you&#8217;re someone in this space -- whether that&#8217;s ADHD, anxiety, depression, or just chronic burnout that you haven&#8217;t named yet -- I&#8217;d rather you know that the patterns I&#8217;ve described are real, you&#8217;re not making them up, and there are tactics that help. They&#8217;re not magic. They take attention. But they might help you out in your situation.</p><p>And if you want to send me a more specific scenario you&#8217;re navigating, you can submit anonymously over at <strong><a href="https://codecommute.com/?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-142">codecommute.com</a></strong> and I&#8217;ll try to make a video response. I find these conversations a lot more useful than the abstract &#8220;advice for software engineers&#8221; stuff -- so the more specific, the better.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/building-a-career-that-fits-your?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/building-a-career-that-fits-your?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/building-a-career-that-fits-your/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/building-a-career-that-fits-your/comments"><span>Leave a comment</span></a></p><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3kND!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94feada-f85a-40c7-9e66-be8d335bacaa_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!3kND!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94feada-f85a-40c7-9e66-be8d335bacaa_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!3kND!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94feada-f85a-40c7-9e66-be8d335bacaa_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!3kND!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94feada-f85a-40c7-9e66-be8d335bacaa_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3kND!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94feada-f85a-40c7-9e66-be8d335bacaa_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a94feada-f85a-40c7-9e66-be8d335bacaa_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!3kND!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94feada-f85a-40c7-9e66-be8d335bacaa_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!3kND!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94feada-f85a-40c7-9e66-be8d335bacaa_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!3kND!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94feada-f85a-40c7-9e66-be8d335bacaa_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!3kND!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94feada-f85a-40c7-9e66-be8d335bacaa_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[Why Your Ideas Keep Getting Shut Down]]></title><description><![CDATA[Dev Leader Weekly 141]]></description><link>https://weekly.devleader.ca/p/why-your-ideas-keep-getting-shut</link><guid isPermaLink="false">https://weekly.devleader.ca/p/why-your-ideas-keep-getting-shut</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Mon, 25 May 2026 16:27:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!8-6R!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8eac00f-f5d7-4768-bed2-cc1d7946c449_1536x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/05/25/why-your-ideas-keep-getting-shut-down-dev-leader-weekly-141" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8-6R!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8eac00f-f5d7-4768-bed2-cc1d7946c449_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!8-6R!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8eac00f-f5d7-4768-bed2-cc1d7946c449_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!8-6R!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8eac00f-f5d7-4768-bed2-cc1d7946c449_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!8-6R!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8eac00f-f5d7-4768-bed2-cc1d7946c449_1536x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8-6R!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8eac00f-f5d7-4768-bed2-cc1d7946c449_1536x1024.webp" width="1200" height="800.2747252747253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8eac00f-f5d7-4768-bed2-cc1d7946c449_1536x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:108270,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/05/25/why-your-ideas-keep-getting-shut-down-dev-leader-weekly-141&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/199207997?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8eac00f-f5d7-4768-bed2-cc1d7946c449_1536x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8-6R!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8eac00f-f5d7-4768-bed2-cc1d7946c449_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!8-6R!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8eac00f-f5d7-4768-bed2-cc1d7946c449_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!8-6R!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8eac00f-f5d7-4768-bed2-cc1d7946c449_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!8-6R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8eac00f-f5d7-4768-bed2-cc1d7946c449_1536x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>When your ideas always get shut down, it&#8217;s rarely the ideas</p></li><li><p>How you pitch them is the lever you actually control</p></li><li><p>Genuine curiosity beats trying to win the argument</p></li><li><p><strong><a href="https://youtube.com/live/3CJJ-7CyTts?feature=share">Join me for the live stream (or watch the recording) on Monday, May 25 at 7:00 PM Pacific</a></strong>!</p></li></ul><div id="youtube2-3CJJ-7CyTts" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;3CJJ-7CyTts&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/3CJJ-7CyTts?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2><strong>Why Your Ideas Keep Getting Shut Down</strong></h2><p>Another week, another ExperiencedDevs Reddit post that hit me a little harder than most. This time it was from someone who&#8217;s just exhausted from speaking up. They keep proposing ideas, the team keeps ignoring them, and they&#8217;ve reached the &#8220;why am I even bothering&#8221; stage. You can feel the defeat coming through the screen. That&#8217;s a pretty rough place to be in your job -- and it&#8217;s the kind of thing I think about a lot from the manager side too, because I genuinely need the people on my teams to feel like they can speak up.</p><p>But after digging through their post and the comments, I think most of the advice flying around misses the real lever. So let me walk through how I&#8217;d actually approach this if it were happening to me.</p><p>You can <strong><a href="https://www.youtube.com/watch?v=PZt_shhTuUo">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-PZt_shhTuUo" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;PZt_shhTuUo&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/PZt_shhTuUo?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>The Reddit Post That Got Me Thinking</strong></h2><p>The post itself doesn&#8217;t give a ton of context. The poster says they&#8217;re experienced on the team but not the tech lead, and they keep getting shut down when they propose ideas -- particularly around scoping and design. They feel like people are over-engineering or building things that don&#8217;t need to exist. The main concrete example they gave: their team wants to support multiple file formats when, in their view, the system only needs CSV.</p><p>That&#8217;s basically all we get. So I&#8217;m going to do what I usually have to do with these threads -- <strong>make some assumptions, walk through the most likely scenarios, and try to be useful even with incomplete information</strong>. If you&#8217;ve been here before, this is similar to how I worked through <strong><a href="https://www.devleader.ca/2026/05/17/when-reddit-says-quit-your-manager-dev-leader-weekly-140?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-141">the post from someone telling their manager they were burnt out -- there&#8217;s only ever one side of the story</a></strong>, and you have to read between the lines a bit.</p><h2><strong>It&#8217;s Probably Not Your Ideas</strong></h2><p>Here&#8217;s the assumption I&#8217;m going to start with: <strong>statistically, this person doesn&#8217;t always have bad ideas</strong>. Nobody has only bad ideas. Some are going to be good, some are going to be okay, some are going to be off-base. That&#8217;s true for me, that&#8217;s true for you, and that&#8217;s true for the Reddit poster.</p><p>So if their ideas are being <strong>consistently</strong> rejected -- not occasionally, not in specific scenarios, but constantly -- the most likely explanation isn&#8217;t that the ideas themselves are uniformly bad. It&#8217;s much more likely that <strong>the way the ideas are being pitched is the problem</strong>.</p><p>I&#8217;ll use the file format example to walk through this. Imagine you&#8217;re in a design discussion and someone proposes supporting five file formats. You think it&#8217;s wasteful and unnecessary. You speak up:</p><blockquote><p>&#8220;We don&#8217;t need that. That&#8217;s a waste of time.&#8221;</p></blockquote><p>Now, you might be completely right. Maybe the team really doesn&#8217;t need it. But how does that land on the person who proposed it? They&#8217;ve now had their idea bluntly shut down with no engagement and no follow-up. They&#8217;re going to defend their position. The room is going to side with whoever feels more reasonable and can make a better case for their perspective. And <strong>you just lost a conversation you were trying to win</strong>.</p><p>I see this pattern a lot, and it shows up the worst in technical design debates where the answer genuinely isn&#8217;t clear-cut. I wrote about a perfect example of that recently in the <strong><a href="https://www.devleader.ca/2026/04/23/feature-slicing-vs-clean-architecture-in-c-which-one-should-you-use?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-141">Feature Slicing vs Clean Architecture comparison</a></strong> -- both are defensible, both have tradeoffs, and the &#8220;right&#8221; answer is contextual. If you come into that kind of debate with your mind already made up, you&#8217;re going to get rolled by whoever is willing to actually engage with the tradeoffs.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Try Genuine Curiosity Instead</strong></h2><p>The single biggest change I&#8217;d suggest if you keep getting shut down: <strong>lead with genuine curiosity, not your conclusion</strong>.</p><p>Same file format scenario. Someone proposes five formats. Instead of &#8220;we don&#8217;t need that,&#8221; try:</p><blockquote><p>&#8220;Interesting -- what&#8217;s driving the need for the extra formats? Is this coming from customer requests, or is it more anticipatory?&#8221;</p></blockquote><p>What does that buy you? <strong>Information you didn&#8217;t have before.</strong> Maybe they had a conversation with the product owner that you weren&#8217;t in. Maybe they&#8217;ve seen customer support tickets you haven&#8217;t seen. Maybe they&#8217;re just optimizing for &#8220;we&#8217;ll need flexibility later&#8221; with no real data behind it. You don&#8217;t know until you ask.</p><p><em><strong>Actionable Tip</strong></em> -- A genuinely curious question has a few properties:</p><ul><li><p><strong>It assumes the other person has a reason</strong> that makes sense from their seat</p></li><li><p><strong>It is asked before you&#8217;ve reached a verdict</strong>, not after</p></li><li><p><strong>It is phrased as a question, not a leading statement</strong> (&#8221;Why do we need this?&#8221; is leading. &#8220;What&#8217;s driving the need?&#8221; is curious.)</p></li><li><p><strong>You actually listen to the answer</strong> and let it change your position if the new information warrants it</p></li></ul><p>And this last point is the one most people skip. If you ask a curious question, get new information, and <strong>still</strong> don&#8217;t even reconsider your position -- you weren&#8217;t being curious. You were performing curiosity to look open-minded before reasserting your original take. People can feel the difference.</p><h2><strong>The Goal Isn&#8217;t To Be Right</strong></h2><p>This sounds funny to say but, it&#8217;s the part that flips everything: <strong>the goal isn&#8217;t to win the argument</strong>. The goal is to deliver more value to your customers. Those are very different goals, and they pull you in very different directions.</p><p>If you&#8217;re optimizing to win the argument, you go in hard, shut things down, and protect your position. If you&#8217;re optimizing to deliver value, you go in curious, learn what the other side is actually optimizing for, and look for compromises.</p><p>In the file format example, that might look like:</p><blockquote><p>&#8220;Personally, I don&#8217;t think shipping five formats is worth the time right now -- but I hear that flexibility matters to you. What if we shipped with the main format, but we put a thin abstraction over the file I/O so adding a second format later is a small change instead of a rewrite?&#8221;</p></blockquote><p>Now you&#8217;re proposing <strong>a middle path</strong> that addresses both concerns. You&#8217;re optimizing for time. They&#8217;re optimizing for flexibility. The abstraction layer gives you both -- maybe. Now, my contrived solution might absolutely be the wrong move in some real scenarios. Sometimes the abstraction is more cost than the optionality is worth. The point isn&#8217;t that I cracked the technical answer in two paragraphs. The point is that <strong>the conversation is now productive instead of adversarial</strong>.</p><p>And from a team-dynamics perspective, this is the kind of behavior that builds trust over time. I wrote about this dynamic in the <strong><a href="https://www.devleader.ca/2024/12/28/effective-software-teams-islands-and-autonomy-dev-leader-weekly-76?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-141">Effective Software Teams: Islands and Autonomy</a></strong> issue -- teams that work well aren&#8217;t the ones where one person is always right. They&#8217;re the ones where people actually engage with each other&#8217;s ideas.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>When You Always Feel Unheard</strong></h2><p>If you keep walking out of meetings feeling like nobody listens to you, there are two scenarios I generally see:</p><ol><li><p><strong>Most of the time, you&#8217;re communicating in a way that&#8217;s getting in your own way.</strong> Your ideas might be great, but they&#8217;re landing as attacks, as shutdowns, or as &#8220;I&#8217;ve already decided and I&#8217;m now just informing you.&#8221; Fix the delivery and a lot of this changes.</p></li><li><p><strong>Sometimes, the team really isn&#8217;t a fit.</strong> You can have the cleanest communication style in the world and still be on a team where people genuinely don&#8217;t want to listen. I covered the version of this where it&#8217;s specifically your manager who won&#8217;t engage in <strong><a href="https://www.devleader.ca/2025/03/08/my-manager-refuses-to-give-feedback-dev-leader-weekly-86?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-141">the issue on managers who refuse to give feedback</a></strong> -- that one has a different solution path.</p></li></ol><p>The honest answer is that it&#8217;s almost always some mix of both. Some of it is on you, some of it is on the environment. <strong>The part you control is your delivery.</strong> Start there.</p><p><em><strong>Actionable Tip</strong></em> -- Before you bring something up next time, ask yourself:</p><ul><li><p><strong>Am I going in trying to be heard, or trying to be right?</strong> Those produce very different conversations.</p></li><li><p><strong>Have I actually asked the other side why they want what they want?</strong> Or am I just waiting for my turn to argue?</p></li><li><p><strong>If I&#8217;m wrong, am I prepared to actually update my view?</strong> If not, the curiosity isn&#8217;t real.</p></li><li><p><strong>Is there a middle path I haven&#8217;t proposed yet?</strong> Most &#8220;either/or&#8221; debates have a &#8220;both&#8221; answer hiding in them.</p></li></ul><h2><strong>Don&#8217;t Give Up On Speaking Up</strong></h2><p>The thing I really don&#8217;t want anyone to take away from a Reddit thread like this is &#8220;well, I guess I&#8217;ll just stop speaking up.&#8221; That&#8217;s the worst possible outcome. As a manager, the people who quietly disengage are the hardest to help -- I can&#8217;t address what I can&#8217;t see. And as a teammate, that voice going silent makes the whole team worse.</p><p>There&#8217;s also a flavor of this where the person who keeps speaking up ends up shouldering everything because nobody else volunteers. That has its own downstream cost, and I dug into it in <strong><a href="https://www.devleader.ca/2025/05/31/the-hidden-cost-of-being-the-team-hero-dev-leader-weekly-96?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-141">The Hidden Cost of Being the Team Hero</a></strong>. The fix isn&#8217;t &#8220;speak up less.&#8221; The fix is &#8220;speak up smarter, and don&#8217;t carry the team on your back while you do it.&#8221;</p><p>If you&#8217;re in this spot right now, please don&#8217;t give up on it. Try the curiosity angle for a few weeks. Try the middle-path framing. Pay attention to whether the conversations start landing differently. If they do, that&#8217;s your answer about what was actually going on. And if they don&#8217;t -- after you&#8217;ve genuinely changed your approach -- then yeah, you might be on a team that&#8217;s never going to hear you, and that&#8217;s a different conversation entirely.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/why-your-ideas-keep-getting-shut?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/why-your-ideas-keep-getting-shut?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/why-your-ideas-keep-getting-shut/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/why-your-ideas-keep-getting-shut/comments"><span>Leave a comment</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w8lp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8514a194-9612-4a62-8465-82d557dd42f9_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!w8lp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8514a194-9612-4a62-8465-82d557dd42f9_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!w8lp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8514a194-9612-4a62-8465-82d557dd42f9_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!w8lp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8514a194-9612-4a62-8465-82d557dd42f9_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w8lp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8514a194-9612-4a62-8465-82d557dd42f9_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8514a194-9612-4a62-8465-82d557dd42f9_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!w8lp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8514a194-9612-4a62-8465-82d557dd42f9_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!w8lp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8514a194-9612-4a62-8465-82d557dd42f9_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!w8lp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8514a194-9612-4a62-8465-82d557dd42f9_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!w8lp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8514a194-9612-4a62-8465-82d557dd42f9_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[When Reddit Says Quit Your Manager]]></title><description><![CDATA[Dev Leader Weekly 140]]></description><link>https://weekly.devleader.ca/p/when-reddit-says-quit-your-manager</link><guid isPermaLink="false">https://weekly.devleader.ca/p/when-reddit-says-quit-your-manager</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Sun, 17 May 2026 21:37:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!PzHz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0543fd3a-d7ba-4592-aad0-4b90f0c104a7_1536x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/05/17/when-reddit-says-quit-your-manager-dev-leader-weekly-140" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PzHz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0543fd3a-d7ba-4592-aad0-4b90f0c104a7_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!PzHz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0543fd3a-d7ba-4592-aad0-4b90f0c104a7_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!PzHz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0543fd3a-d7ba-4592-aad0-4b90f0c104a7_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!PzHz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0543fd3a-d7ba-4592-aad0-4b90f0c104a7_1536x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PzHz!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0543fd3a-d7ba-4592-aad0-4b90f0c104a7_1536x1024.webp" width="1200" height="800.2747252747253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0543fd3a-d7ba-4592-aad0-4b90f0c104a7_1536x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:143996,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/05/17/when-reddit-says-quit-your-manager-dev-leader-weekly-140&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/198178406?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0543fd3a-d7ba-4592-aad0-4b90f0c104a7_1536x1024.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PzHz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0543fd3a-d7ba-4592-aad0-4b90f0c104a7_1536x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!PzHz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0543fd3a-d7ba-4592-aad0-4b90f0c104a7_1536x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!PzHz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0543fd3a-d7ba-4592-aad0-4b90f0c104a7_1536x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!PzHz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0543fd3a-d7ba-4592-aad0-4b90f0c104a7_1536x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>Reddit&#8217;s &#8220;just quit your manager&#8221; advice misses the nuance</p></li><li><p>The real question is how much you actually care</p></li><li><p>Level-set expectations in your 1:1s or stay frustrated</p></li><li><p><strong><a href="https://youtube.com/live/dYb2stp-Nbg?feature=share">Join me for the live stream (or watch the recording) on Monday, May 18 at 7:00 PM Pacific</a></strong>!</p><div id="youtube2-dYb2stp-Nbg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;dYb2stp-Nbg&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/dYb2stp-Nbg?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div></li></ul><div><hr></div><h2><strong>When Reddit Says Quit Your Manager</strong></h2><p>I came across a post over on the ExperiencedDevs subreddit where someone was venting about their manager. The usual stuff: incompetent, doesn&#8217;t really understand basic software things (the poster mentioned the manager doesn&#8217;t seem to know what Git is or what it&#8217;s used for), pulls people into endless pointless meetings where nothing gets decided, and ignores everything that comes up in 1:1s. The poster also mentioned this isn&#8217;t a one-off -- there are apparently three managers like this on their team. They wrapped it up by saying they&#8217;ve started interviewing and asked what else they could do.</p><p>The overwhelming response in the comments was exactly what you&#8217;d expect: <strong>&#8220;You don&#8217;t quit companies, you quit managers. Get out. Stop wasting your time.&#8221;</strong> And honestly, I don&#8217;t disagree with that as a general principle. But I also don&#8217;t love how black-and-white it ends up being when that&#8217;s the only advice anyone offers. So I want to walk through where I agree, where I push back, and the questions I think actually matter when you&#8217;re in this situation.</p><p>You can <strong><a href="https://www.youtube.com/watch?v=aHRNKVgjIE0">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-aHRNKVgjIE0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;aHRNKVgjIE0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/aHRNKVgjIE0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>Where Reddit Is Probably Right</strong></h2><p>Let me get this out of the way first: <strong>a manager&#8217;s influence on your career is significant</strong>. I&#8217;ve been doing this long enough to see the inverse play out plenty of times. There are places I&#8217;ve worked where the company was great, the product was great, the people were great -- and a single manager change either elevated the experience or absolutely tanked it. I&#8217;ve never personally worked somewhere I thought, &#8220;Man, this company is garbage, but thank god I have a great manager.&#8221; That just doesn&#8217;t happen for me. But I&#8217;ve absolutely worked somewhere good and had a manager pull the whole thing down.</p><p>So the Reddit answer -- &#8220;your manager matters more than the company brand on your business card&#8221; -- I actually believe that. And for most people, in most situations, the &#8220;start interviewing&#8221; advice is probably the right move. Especially if you&#8217;re already burnt out and resentful, the amount of energy needed to drive change is energy you probably don&#8217;t have. That&#8217;s not a moral failing. That&#8217;s just reality.</p><h2><strong>Where I Start To Push Back</strong></h2><p>What bugs me is the binary on/off framing. <strong>Always jump ship.</strong> Never try to fix it. If everyone in a thread is piling on with the same advice, my instinct is to share the other angle -- because someone reading that thread might actually be in a different scenario where the right answer isn&#8217;t &#8220;leave.&#8221;</p><p>Let me exaggerate to make the point. Imagine you genuinely love the company. You believe in the product, you love your peers, you&#8217;ve been there long enough to have helped build the thing, and the opportunity in front of you is real. Then a new manager gets dropped above you and they&#8217;re just... not good. You can have bad hires at every level -- engineers, product managers, EMs, VPs, C-suite. People who interviewed great and turn out to be a disaster in practice. The decision-makers above don&#8217;t always see it, because the chaos doesn&#8217;t bubble up the way the interview signal did.</p><p>In that scenario, &#8220;just leave&#8221; is leaving a lot of value on the table. I&#8217;ve had moments in my career where a bad manager situation would have been the easiest excuse to jump, and I&#8217;m glad I didn&#8217;t. I worked through it, found ways around it, escalated where it made sense, and the long-term outcome was better than running. That&#8217;s not me saying I made the perfect choice every time -- I&#8217;m just saying that if &#8220;leave at the first sign of friction&#8221; had been my default, I wouldn&#8217;t be where I am today.</p><p>For more on the manager-perspective side of this, I dug into <strong><a href="https://www.devleader.ca/2025/08/23/top-mistakes-of-new-managers-and-leads-dev-leader-weekly-106?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-140">what new managers and leads typically get wrong</a></strong> in a previous issue -- worth a read if you want to understand what might actually be going on above you before you decide.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>The Real Question: How Much Do You Care?</strong></h2><p>Here&#8217;s the question I&#8217;d ask instead of &#8220;should I quit?&#8221; -- <strong>how much do you actually care about this specific job, at this specific company?</strong></p><p>Because the honest answer to that question changes everything that follows. If you genuinely care, then you probably do have the energy and motivation to try things first. If you don&#8217;t really care or don&#8217;t care <strong>enough</strong> for the amount of effort that goes into driving change, then sure -- the &#8220;start interviewing&#8221; advice is probably the right call.</p><p>And there&#8217;s no judgment in that. You&#8217;re allowed to not care or not care <strong>enough</strong> to pour more time and energy into something. People conflate &#8220;I should fight for this&#8221; with &#8220;I&#8217;m a good engineer,&#8221; and that&#8217;s not how it works.</p><p>The corollary: <strong>if you&#8217;re already burnt out and resentful, the amount of energy you have left to drive change is probably zero</strong>. I get into this in more depth in the issue on <strong><a href="https://www.devleader.ca/2026/03/29/should-you-talk-to-your-manager-about-burnout-dev-leader-weekly-133?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-140">whether you should even talk to your manager about burnout</a></strong>, but the short version is: trying to fix a bad situation when you&#8217;re already cooked is a recipe for being even more frustrated. Be honest with yourself about which side of that line you&#8217;re on.</p><h2><strong>Build A Case Before You Burn It Down</strong></h2><p>If the answer to &#8220;do I care enough?&#8221; is yes, then the next move isn&#8217;t a heroic confrontation. It&#8217;s two things in parallel: <strong>support systems</strong> and <strong>evidence</strong>.</p><p><em><strong>Actionable Tip</strong></em> -- Check your support systems in both directions:</p><ul><li><p><strong>Up the chain.</strong> Who&#8217;s your skip-level manager? Do you have any working relationship with them? Are they someone who would back you up if you brought this to them with substance? Or are they the type to immediately tell your manager you complained?</p></li><li><p><strong>Across your peers.</strong> Are other people seeing the same things? You don&#8217;t want to get into &#8220;Bob sucks, let&#8217;s hate Bob&#8221; territory, but you can ask carefully -- &#8220;Hey, I ran into this situation, how have you been navigating it?&#8221; -- and see what comes back. If everyone else thinks things are fine and you&#8217;re the only one frustrated, that&#8217;s actual signal too. That&#8217;s not a fun signal, but it&#8217;s worth knowing.</p></li></ul><p>The other half is evidence. When you go talk to your skip-level or HR or whoever, you want to be able to move past &#8220;I just don&#8217;t like working with this person&#8221; to <strong>&#8220;here are specific instances, here are the impacts, and here&#8217;s what I&#8217;ve already tried.&#8221;</strong> That&#8217;s the difference between a venting session and a conversation that can lead to action.</p><p>And just to set expectations: even with great evidence, your skip-level probably isn&#8217;t going to fire your manager on the spot. There&#8217;s usually a longer, slower process for things like this -- something closer to a performance plan than a phone call -- and often there&#8217;s still more observation, investigation, and understanding that goes into things. That&#8217;s not a reason to skip the conversation. It just means: don&#8217;t expect overnight magic.</p><h2><strong>There Are Always Two Sides To This</strong></h2><p>The Reddit post is one side of the story. The manager has the other side. And we have no way of getting that side, ever.</p><p>I&#8217;m not saying the original poster is wrong or making it up. I&#8217;d actually bet they&#8217;re doing a fine job and have a manager they genuinely don&#8217;t align with. But here&#8217;s the uncomfortable thing -- if we could call up that manager right now and ask &#8220;tell me about so-and-so and how the 1:1s are going,&#8221; we&#8217;d almost certainly hear a different story. Maybe a wildly different story. Maybe one where they think they <strong>are</strong> following up on things and the communication just isn&#8217;t landing the way the report thinks it is.</p><p>This is exactly why I wrote a whole issue on whether you can even <strong><a href="https://www.devleader.ca/2026/05/04/measuring-manager-effectiveness-can-you-even-quantify-it-dev-leader-weekly-138?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-140">measure manager effectiveness in any meaningful way</a></strong> -- because &#8220;this manager is bad&#8221; is a much harder claim to substantiate than people assume. And the things you&#8217;d use as evidence often look different depending on which seat you&#8217;re sitting in.</p><p>I&#8217;ve also been the person on the other side of &#8220;my manager won&#8217;t give me feedback&#8221; complaints. I unpacked the manager-side of that one in <strong><a href="https://www.devleader.ca/2025/03/08/my-manager-refuses-to-give-feedback-dev-leader-weekly-86?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-140">the issue on managers who supposedly refuse to give feedback</a></strong> -- there&#8217;s a lot of nuance that gets flattened when only one side gets to narrate the story.</p><p>None of this means your frustration is invalid. It just means: be careful about building a complete narrative when you only have half the inputs.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>The 1:1 Problem Nobody Talks About</strong></h2><p>This is the part I think gets overlooked most often. The Reddit post says, &#8220;I bring stuff up in 1:1s and nothing happens.&#8221; Fair complaint on the surface. But let me walk through what might actually be happening.</p><p>You bring up a problem in a 1:1. Your manager listens, acknowledges how you feel, and you move on. Two weeks later, you bring up a similar problem. They acknowledge it again. Move on. You leave the second 1:1 thinking, &#8220;Okay, this is the second time and they&#8217;ve done nothing.&#8221; Meanwhile, your manager might be leaving the exact same 1:1 thinking, <strong>&#8220;Cool, they raised an issue and we talked about it. Glad they got it off their chest.&#8221;</strong></p><p>You&#8217;re operating on totally different expectations. You think &#8220;raising it&#8221; means &#8220;they will go fix it.&#8221; They think &#8220;raising it&#8221; means &#8220;the person needed to vent and now we&#8217;ve vented.&#8221; Neither of you is technically wrong. You just never agreed on what was supposed to happen next.</p><p><em><strong>Actionable Tip</strong></em> -- Stop ending 1:1s without explicit agreements. Try things like:</p><ul><li><p><strong>&#8220;Can we talk about a plan for how we&#8217;re going to address this?&#8221;</strong></p></li><li><p><strong>&#8220;What does the next step look like, and who owns it?&#8221;</strong></p></li><li><p><strong>&#8220;By when should we expect to see movement on this?&#8221;</strong></p></li><li><p><strong>&#8220;If nothing has changed in two weeks, what&#8217;s our follow-up?&#8221;</strong></p></li></ul><p>I went deep on this in a previous issue on <strong><a href="https://www.devleader.ca/2025/04/05/make-the-most-of-your-one-on-ones-dev-leader-weekly-90?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-140">getting the most out of your 1:1s</a></strong>, because honestly -- this is one of those things I see talented engineers under-leverage their whole careers. The 1:1 is your most direct, structured channel to your manager. If you&#8217;re walking out of every one of them with a vague sense of &#8220;well that didn&#8217;t go anywhere,&#8221; that&#8217;s a problem worth fixing before you start interviewing.</p><h2><strong>Wrap-Up</strong></h2><p>If your manager is genuinely bad, has no interest in changing, and your skip-level won&#8217;t back you up -- yeah, go interview. That&#8217;s a valid call and probably the right one for most people in that scenario.</p><p>But before you get there, ask the harder questions: <strong>How much do you care about this job?</strong> <strong>What does your support system actually look like?</strong> <strong>Have you built a real case with evidence?</strong> And most importantly -- <strong>are you and your manager actually operating on the same expectations in your 1:1s, or are you just both leaving with different stories about what happened?</strong></p><p>Level-setting expectations and clean communication is, honestly, one of the biggest factors I&#8217;ve seen play out in software engineering careers. Everyone wants to argue about which language is best or whether AI is taking over. Meanwhile, the people who keep getting stuck are usually stuck on this. Get that right and a lot of the rest sorts itself out.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/when-reddit-says-quit-your-manager/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/when-reddit-says-quit-your-manager/comments"><span>Leave a comment</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/when-reddit-says-quit-your-manager?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/when-reddit-says-quit-your-manager?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iBpq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8118ec89-d825-4d2a-83fa-64f12aece973_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!iBpq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8118ec89-d825-4d2a-83fa-64f12aece973_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!iBpq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8118ec89-d825-4d2a-83fa-64f12aece973_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!iBpq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8118ec89-d825-4d2a-83fa-64f12aece973_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iBpq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8118ec89-d825-4d2a-83fa-64f12aece973_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8118ec89-d825-4d2a-83fa-64f12aece973_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!iBpq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8118ec89-d825-4d2a-83fa-64f12aece973_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!iBpq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8118ec89-d825-4d2a-83fa-64f12aece973_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!iBpq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8118ec89-d825-4d2a-83fa-64f12aece973_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!iBpq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8118ec89-d825-4d2a-83fa-64f12aece973_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[What Your Working Hours Signal To Your Team]]></title><description><![CDATA[Dev Leader Weekly 139]]></description><link>https://weekly.devleader.ca/p/what-your-working-hours-signal-to</link><guid isPermaLink="false">https://weekly.devleader.ca/p/what-your-working-hours-signal-to</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Mon, 11 May 2026 20:40:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gb0-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bcc9068-5948-4a22-a251-8eeae0bbc5e3_800x533.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/05/11/what-your-working-hours-signal-to-your-team-dev-leader-weekly-139" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gb0-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bcc9068-5948-4a22-a251-8eeae0bbc5e3_800x533.webp 424w, https://substackcdn.com/image/fetch/$s_!gb0-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bcc9068-5948-4a22-a251-8eeae0bbc5e3_800x533.webp 848w, https://substackcdn.com/image/fetch/$s_!gb0-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bcc9068-5948-4a22-a251-8eeae0bbc5e3_800x533.webp 1272w, https://substackcdn.com/image/fetch/$s_!gb0-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bcc9068-5948-4a22-a251-8eeae0bbc5e3_800x533.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gb0-!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bcc9068-5948-4a22-a251-8eeae0bbc5e3_800x533.webp" width="1200" height="799.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4bcc9068-5948-4a22-a251-8eeae0bbc5e3_800x533.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:533,&quot;width&quot;:800,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:29772,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/05/11/what-your-working-hours-signal-to-your-team-dev-leader-weekly-139&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/197267290?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bcc9068-5948-4a22-a251-8eeae0bbc5e3_800x533.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gb0-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bcc9068-5948-4a22-a251-8eeae0bbc5e3_800x533.webp 424w, https://substackcdn.com/image/fetch/$s_!gb0-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bcc9068-5948-4a22-a251-8eeae0bbc5e3_800x533.webp 848w, https://substackcdn.com/image/fetch/$s_!gb0-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bcc9068-5948-4a22-a251-8eeae0bbc5e3_800x533.webp 1272w, https://substackcdn.com/image/fetch/$s_!gb0-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bcc9068-5948-4a22-a251-8eeae0bbc5e3_800x533.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>Your start time isn&#8217;t the signal you think it is</p></li><li><p>People will model whatever hours you actually keep</p></li><li><p>Overcommunicate the expectation -- silence sets it for you</p></li><li><p>Skipping the live stream one more week here... But I&#8217;ll be back!</p></li></ul><div><hr></div><h2><strong>What Your Working Hours Signal To Your Team</strong></h2><p>Someone over on the experienced devs subreddit asked a question that I think a lot of people quietly worry about: when managers or senior people see you coming in late and staying late, or coming in early and leaving early, what do they actually take from that? Is your start time saying something about your work ethic? And honestly -- I don&#8217;t think it&#8217;s saying what you think it&#8217;s saying. But there&#8217;s a different signal you&#8217;re sending (or that your manager is sending to you) that <strong>does</strong> matter, and most people miss it entirely.</p><p>You can <strong><a href="https://www.youtube.com/watch?v=83gXcbdUcns">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-83gXcbdUcns" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;83gXcbdUcns&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/83gXcbdUcns?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>What I Actually Care About As A Manager</strong></h2><p>I&#8217;ll just lead with this and get it out of the way: I genuinely don&#8217;t care what time you start or what time you finish. I care that you&#8217;re putting in honest effort, that you&#8217;re engaged in the work, that you&#8217;re asking for help when you need it, and that the output of you in your role is something we can work on together to optimize. That&#8217;s it. The clock-in/clock-out timestamps are not the thing.</p><p>The one thing I care about that <strong>is</strong> time-related is overlap. If you&#8217;re on a team of eight and seven of them have a sync at a certain hour, can you find a way to make that work? Maybe you literally can. Maybe you can&#8217;t and you partner with someone to represent you. Maybe you lean on async tools to catch the parts you missed. The answer almost always exists -- you just have to be an adult about it and figure it out with your team.</p><p>I&#8217;ve worked with people who needed to shift their schedule because they were taking a class, or visiting family on a different coast, or their parents were in town for two weeks. The answer is always the same from me: <strong>how can I help make this work?</strong> Because I want flexibility for my team. I think you get more out of people when they have flexibility, and I think they&#8217;re more engaged. The opposite -- being rigid about time -- creates resentment, fear, or quiet quitting. Pick your poison. None of those are good outcomes.</p><p>So if you&#8217;re sitting there worried that your manager is going to judge you because you walk in at 10:30 instead of 9:00, I would tell you: most decent managers don&#8217;t care, and the ones who do are usually using time as a proxy for something else they should just be measuring directly (which is its own conversation -- I went into that more in <strong><a href="https://www.devleader.ca/2026/05/04/measuring-manager-effectiveness-can-you-even-quantify-it-dev-leader-weekly-138?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-139">Measuring Manager Effectiveness</a></strong> on a recent issue).</p><h2><strong>Where The Perception Actually Comes From</strong></h2><p>Here&#8217;s where it gets more interesting, and where I think most people miss the real signal.</p><p>The perception around working hours doesn&#8217;t usually come from someone&#8217;s start time. It comes from the people they look up to. If your senior engineer is online at 10pm, or your manager is firing off Slack messages at 6am, you start to build a quiet model in your head: <strong>this is what success looks like here</strong>. Maybe nobody ever said it out loud. Maybe the manager would tell you with full sincerity that they don&#8217;t expect you to be online at 10pm. Doesn&#8217;t matter. The behavior is the message. People emulate what they see, especially from people they respect.</p><p>So you start asking yourself questions. They&#8217;re getting an extra two hours a day. They&#8217;re more senior. They&#8217;re probably smarter than me. How am I supposed to keep up? And whether or not that calculation is conscious, it shapes how you work, how you feel about your work, and how long you stick around before you burn out.</p><p>This is one of the most common patterns I see in newer leaders too -- they don&#8217;t realize the modeling effect their own habits have on the team. I wrote about this in <strong><a href="https://www.devleader.ca/2025/08/23/top-mistakes-of-new-managers-and-leads-dev-leader-weekly-106?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-139">Top Mistakes of New Managers and Leads</a></strong> and again in <strong><a href="https://www.devleader.ca/2024/11/09/i-wish-i-knew-these-before-becoming-a-manager-dev-leader-weekly-69?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-139">I Wish I Knew THESE Before Becoming A Manager</a></strong>. The same theme keeps showing up: the things you do without thinking about them become the rules your team thinks they have to follow.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>My Own Trap (And What I Got Told)</strong></h2><p>I&#8217;ll be honest -- I&#8217;ve been on the wrong side of this. Going back to my startup days before Microsoft, I worked as much as I possibly could. Not because anyone made me. That&#8217;s just how I operated. And at some point I got told, more or less, &#8220;Hey Nick -- you shouldn&#8217;t work that much.&#8221; And the part I was hearing was &#8220;it&#8217;s not healthy&#8221; and that part I appreciated.</p><p>But there was a second part to it that took me longer to absorb: <strong>you&#8217;re setting an example, and people will model it whether you tell them to or not.</strong> The unspoken expectation on the team becomes the hours the most visible person is working. If you&#8217;re modeling 14-hour days and weekends, that becomes the standard people think they have to hit to be considered effective.</p><p>My initial reaction, embarrassingly, was &#8220;well that&#8217;s not my problem -- people are adults, they can make their own decisions.&#8221; Which is technically true and operationally useless. As a leader, <strong>it is my problem</strong>, because I do understand that people emulate behavior they look up to. I do understand that they form expectations I never said out loud. So pretending otherwise is just me being defensive about my own habits.</p><p><em><strong>Actionable Tip:</strong></em> If you find yourself working long or unusual hours, don&#8217;t just hope your team interprets it correctly. Tell them, plainly, that your hours are not their expectation. Then back it up by reminding people to disconnect when they&#8217;re going outside the norm -- don&#8217;t force naything, just make space for them. The combination of explicit words and visible action is what actually shifts the perception. If you have a manager doing this and you&#8217;ve never asked them about it, that&#8217;s exactly the kind of thing to bring into your next <strong><a href="https://www.devleader.ca/2025/04/05/make-the-most-of-your-one-on-ones-dev-leader-weekly-90?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-139">one-on-one</a></strong> -- ask them directly what they expect of your hours and whether they&#8217;d actually prefer you sign off when your work for the day is done.</p><h2><strong>The Manager Who Got It Right</strong></h2><p>The cleanest example I&#8217;ve seen of this done well was from a manager I joined under. He had something in his email signature -- I&#8217;m paraphrasing -- along the lines of &#8220;my working hours are not a reflection of what your working hours should be&#8221; and another note about working with teams in different time zones. If you read that without context, you might think it&#8217;s a weird thing to put in a signature. The reason it&#8217;s there is exactly the perception problem I&#8217;m describing.</p><p>He was being very explicit about the unspoken expectation. Every email he ever sent carried that disclaimer. He was overcommunicating because the alternative -- staying silent and letting people draw their own conclusions -- always loses. People will fill the vacuum with assumptions, and the assumptions will skew toward &#8220;I should probably be doing what they&#8217;re doing.&#8221; So you fill the vacuum yourself, on purpose, with the message you actually want them to take.</p><p>This connects to a bigger truth I keep coming back to about the people side of this work: the <strong><a href="https://www.devleader.ca/2024/01/18/software-engineering-soft-skills-6-focus-areas-that-you-need?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-139">soft skills</a></strong> that move you up are usually about being explicit about things other people leave implicit. Communication, expectation-setting, calling out the obvious that nobody else wants to call out. The stuff that feels almost over-the-top is usually exactly right.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>A Funny Coincidence</strong></h2><p>This whole topic was on my mind because earlier the same day I recorded the video, I happened to be in the office on a Friday -- which not many usually do because, well, it&#8217;s Friday. I was making up for a day earlier in the week I couldn&#8217;t get in. Someone on my team was on a call with a colleague, and the person on the other end asked who was in the office. My teammate listed a few people, including me, and -- in a way they knew I&#8217;d hear -- said something along the lines of &#8220;yeah, because he&#8217;s a workaholic.&#8221;</p><p>It&#8217;s harmless. They were joking around. But it&#8217;s a really clean piece of evidence that the perception is real, regardless of how many hours I actually work (no one is timing me with a stopwatch). And it&#8217;s a useful reminder that if I don&#8217;t want my team to assume &#8220;this is the expectation,&#8221; I have to be even more deliberate about saying out loud what the actual expectation is. Otherwise the joke stops being a joke and starts being the standard -- and that&#8217;s what you&#8217;re trying to avoid.</p><h2><strong>Wrapping It Up</strong></h2><p>So if you take one thing from this issue, take this: your start time isn&#8217;t the signal. The hours you actually work, especially if you&#8217;re senior or in a leadership role, are the signal -- and they will set the bar for your team whether you intend them to or not. The best thing you can do is overcommunicate. Tell people what you actually expect. Send them offline when they&#8217;ve put their time in. Put the disclaimer in the signature if that&#8217;s what it takes.</p><p>And if you&#8217;re on the other side -- if you&#8217;re the person worried about how your hours look -- then have the conversation. Ask. Don&#8217;t carry around a perception in your head that nobody actually holds. The cost of asking is one slightly awkward minute. The cost of not asking is years of working to a bar that doesn&#8217;t actually exist.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/subscribe?"><span>Subscribe now</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/what-your-working-hours-signal-to?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/what-your-working-hours-signal-to?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/what-your-working-hours-signal-to/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/what-your-working-hours-signal-to/comments"><span>Leave a comment</span></a></p><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!E0yk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e2f5d1-9cc2-4a99-a97a-1bc9111751dc_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!E0yk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e2f5d1-9cc2-4a99-a97a-1bc9111751dc_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!E0yk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e2f5d1-9cc2-4a99-a97a-1bc9111751dc_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!E0yk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e2f5d1-9cc2-4a99-a97a-1bc9111751dc_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!E0yk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e2f5d1-9cc2-4a99-a97a-1bc9111751dc_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7e2f5d1-9cc2-4a99-a97a-1bc9111751dc_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!E0yk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e2f5d1-9cc2-4a99-a97a-1bc9111751dc_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!E0yk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e2f5d1-9cc2-4a99-a97a-1bc9111751dc_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!E0yk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e2f5d1-9cc2-4a99-a97a-1bc9111751dc_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!E0yk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e2f5d1-9cc2-4a99-a97a-1bc9111751dc_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[Measuring Manager Effectiveness -- Can You Even Quantify It?]]></title><description><![CDATA[Dev Leader Weekly 138]]></description><link>https://weekly.devleader.ca/p/measuring-manager-effectiveness-can</link><guid isPermaLink="false">https://weekly.devleader.ca/p/measuring-manager-effectiveness-can</guid><dc:creator><![CDATA[Dev Leader]]></dc:creator><pubDate>Mon, 04 May 2026 06:15:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!u_96!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbafda170-eab4-4617-96fe-93d7b10b0485_800x533.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.devleader.ca/2026/05/04/measuring-manager-effectiveness-can-you-even-quantify-it-dev-leader-weekly-138" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!u_96!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbafda170-eab4-4617-96fe-93d7b10b0485_800x533.webp 424w, https://substackcdn.com/image/fetch/$s_!u_96!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbafda170-eab4-4617-96fe-93d7b10b0485_800x533.webp 848w, https://substackcdn.com/image/fetch/$s_!u_96!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbafda170-eab4-4617-96fe-93d7b10b0485_800x533.webp 1272w, https://substackcdn.com/image/fetch/$s_!u_96!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbafda170-eab4-4617-96fe-93d7b10b0485_800x533.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!u_96!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbafda170-eab4-4617-96fe-93d7b10b0485_800x533.webp" width="1200" height="799.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bafda170-eab4-4617-96fe-93d7b10b0485_800x533.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:533,&quot;width&quot;:800,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:35990,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.devleader.ca/2026/05/04/measuring-manager-effectiveness-can-you-even-quantify-it-dev-leader-weekly-138&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://weekly.devleader.ca/i/196387849?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbafda170-eab4-4617-96fe-93d7b10b0485_800x533.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!u_96!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbafda170-eab4-4617-96fe-93d7b10b0485_800x533.webp 424w, https://substackcdn.com/image/fetch/$s_!u_96!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbafda170-eab4-4617-96fe-93d7b10b0485_800x533.webp 848w, https://substackcdn.com/image/fetch/$s_!u_96!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbafda170-eab4-4617-96fe-93d7b10b0485_800x533.webp 1272w, https://substackcdn.com/image/fetch/$s_!u_96!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbafda170-eab4-4617-96fe-93d7b10b0485_800x533.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>TL; DR:</strong></h2><ul><li><p>Manager effectiveness is multidimensional -- technical, project, and people</p></li><li><p>You can&#8217;t perfectly quantify it, but you can measure signals that matter</p></li><li><p>Balancing delivery with people management is the real challenge</p></li><li><p>I&#8217;m on-call this week -- no live stream. Sorry!</p></li></ul><div><hr></div><h2><strong>Can You Actually Quantify How Good a Manager Is?</strong></h2><p>A viewer recently asked me about how quantifiable manager skills are, and I think it&#8217;s a genuinely fascinating question. We can all think of managers we&#8217;ve worked with and immediately categorize them -- &#8220;that person was incredible&#8221; or &#8220;that person was a nightmare.&#8221; But putting numbers on <strong>why</strong> is a completely different challenge.</p><p>I wanted to break this down because I think it matters -- not just for evaluating managers, but for managers themselves who want to understand where they&#8217;re doing well and where they need to invest more time.</p><p>You can <strong><a href="https://youtu.be/fmBk0XEifeQ">check out my full thoughts on this in the video</a></strong> below:</p><div id="youtube2-fmBk0XEifeQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;fmBk0XEifeQ&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/fmBk0XEifeQ?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2><strong>First, Set the Expectations</strong></h2><p>Before we can measure anything, we need to level-set on what&#8217;s actually expected of a manager. And this varies <strong>massively</strong> -- across companies, team sizes, and seniority levels.</p><p>My advice for level-setting expectations applies to managers too. If you&#8217;re thinking of moving into management or you&#8217;re a new manager, work with your own manager to understand what&#8217;s expected of you. That baseline matters because without it, you&#8217;re measuring against a target you can&#8217;t even see.</p><p>The biggest variance I see comes down to <strong>how much time you spend as a hybrid IC</strong>. At smaller companies or on smaller teams, there&#8217;s often more of an expectation that you&#8217;re hands-on in the code. It almost wouldn&#8217;t make sense to sit back and wait if you have a small surface area of people and technology. But as your scope grows -- more people, more product areas -- the balance shifts. You stop being the person fixing bugs and start being the person <strong><a href="https://www.devleader.ca/2026/02/25/9b2b05dc-a9c0-4eff-84c6-5a0f5d8924a5?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-138">planning how work gets delivered</a></strong> and making sure the right skills are applied to the right problems.</p><p>I&#8217;ve lived this shift personally. Early in my career I managed a bunch of people at a startup on a single product, and I could code in any area because I&#8217;d been there since the beginning. Then at Microsoft, I moved into a deployment team -- a more focused scope, a codebase older than some team members -- and many of my hands-on strengths just didn&#8217;t apply the same way. The same thing happened when I moved over to the M365 routine plane -- and that&#8217;s not a failure. <strong><a href="https://www.devleader.ca/2026/04/12/fd116a6e-3ed7-4871-a939-7ab2eeb46bf3?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-138">It&#8217;s what happens when your role gets more strategic</a></strong>.</p><h2><strong>The Three Dimensions of Manager Effectiveness</strong></h2><p>I think about manager effectiveness across three major areas, and the measurability of each is very different.</p><h3><strong>1. Technical Ability</strong></h3><p>This one is nuanced. It&#8217;s different to have <strong>domain knowledge of the codebase</strong> versus having <strong>system design expertise</strong>. I can tell you from experience -- there are potentially junior engineers on my current team who can find and fix a specific bug faster than I can, because they&#8217;re working in that code every day. But if you need help designing a system from scratch? That&#8217;s where broader engineering experience kicks in.</p><p>The measure isn&#8217;t &#8220;can you out-code your team.&#8221; It&#8217;s more like: can you take on ambiguous, complex technical challenges and deliver at a level comparable to senior ICs on your team? For some managers, the answer is yes. For others -- especially those managing larger or more diverse surface areas -- the answer is no, and that&#8217;s completely okay if other dimensions are covered.</p><p><em><strong>Actionable Tip:</strong></em> If you&#8217;re a manager who&#8217;s lost touch with hands-on code, lean into AI tools. I&#8217;ve found that AI makes it much faster to get up to speed on unfamiliar codebases when you need to jump in. It doesn&#8217;t replace daily hands-on experience, but it dramatically shortens the ramp-up time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/measuring-manager-effectiveness-can?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Leader Weekly! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/measuring-manager-effectiveness-can?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/measuring-manager-effectiveness-can?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><h3><strong>2. Project Management</strong></h3><p>This covers prioritization, tracking progress, managing roadblocks, handling dependencies with partner teams, and making sure work is properly staffed. And not &#8220;staffed&#8221; in the gross &#8220;people as resources&#8221; sense -- I mean making sure you have the right mix of skills and experience applied to each problem.</p><p>Can you measure this? Sort of. You could look at whether deadlines are consistently hit, missed by a little, or missed by a lot. If you&#8217;re always off by 2x on a six-month project, something&#8217;s wrong. If you&#8217;re off by a week or two? That might be totally reasonable.</p><p>But the <strong>real</strong> signal is less about hitting exact dates and more about what you do when things are off track. The best managers I&#8217;ve seen raise awareness at the right time, engage the right stakeholders, and either adjust scope or adjust timelines -- so things still get delivered on an agreed-upon plan even if it&#8217;s been shifted. That&#8217;s incredibly hard to put a number on.</p><h3><strong>3. People Management</strong></h3><p>This is the one most engineers underestimate when they move into management. And honestly, from my experience working with other engineering managers, <strong>many still don&#8217;t realize this is fundamentally a people management job</strong>. That&#8217;s alarming to me.</p><p>Here&#8217;s what falls under this:</p><ul><li><p><strong>Career growth</strong> -- are you helping people advance? Is there a reasonable promotion cadence on your team? Not everyone promoted every cycle, but also not nobody ever.</p></li><li><p><strong>Team composition</strong> -- do you have the right balance of levels, backgrounds, and strengths? You can&#8217;t build a team where everyone has maxed-out stats. That&#8217;s not real.</p></li><li><p><strong>Single points of failure</strong> -- if only one person knows a critical system, you need a plan. That&#8217;s the lottery effect (or if you prefer the darker version, the bus effect).</p></li><li><p><strong>Engagement</strong> -- are people actually interested in their work? Do they feel supported?</p></li></ul><p>That last point is critical. If you&#8217;re hyper-optimizing for delivery by always slotting your best person into the next highest-priority task, you&#8217;re probably ignoring <strong><a href="https://www.devleader.ca/2026/03/29/c3399330-29d0-487f-8ef8-bea27516f69a?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-138">whether your team is burning out</a></strong>. That person keeps getting siloed. Maybe they don&#8217;t even want to do that work anymore. Maybe other people on the team want the opportunity. You can&#8217;t ignore the people side just because the delivery side looks efficient on paper.</p><p><em><strong>Actionable Tip:</strong></em> If you think supporting your employees detracts from delivery, you&#8217;ve got it backwards. A team full of people thinking &#8220;screw this place, no one cares about me&#8221; is not going to deliver great work regardless of how cleverly you assign tasks.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Leader Weekly is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>So How Do You Actually Measure This?</strong></h2><p>Here&#8217;s my honest answer: <strong>there is no single tool or system that gives you a clean numeric value across all of this</strong>. But there are signals you can look at.</p><ul><li><p><strong>Promotion cadence</strong> -- are people progressing at a reasonable rate? If it&#8217;s zero or 100%, something&#8217;s off.</p></li><li><p><strong>Employee satisfaction surveys</strong> -- at Microsoft we have a signals survey with a &#8220;thriving score.&#8221; It&#8217;s not perfect science, but it gives you a quantitative read on whether your team is engaged.</p></li><li><p><strong>Deadline accuracy</strong> -- not whether you hit every deadline perfectly, but whether the variance is reasonable and whether you course-correct effectively.</p></li><li><p><strong>Technical contribution</strong> -- if you&#8217;re still expected to be hands-on, can you handle complex work at a level <strong><a href="https://www.devleader.ca/2026/03/08/be0ef5bd-272e-4814-97f6-4322e47a419c?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-138">that matches your most senior ICs</a></strong>?</p></li><li><p><strong>Team resilience</strong> -- <strong><a href="https://www.devleader.ca/2026/03/02/f6bd3733-4145-44b1-865d-12ebee2cd3bf?utm_source=devleader_weekly&amp;utm_medium=newsletter&amp;utm_campaign=dlw-138">do you have the right mix</a></strong> of experience levels and no single points of failure?</p></li></ul><p>The important thing is that you&#8217;re not measuring to game a target. You&#8217;re measuring to understand where you need to invest time. If nobody&#8217;s getting promoted, that&#8217;s a signal. If everyone is but your delivery is suffering, that&#8217;s also a signal.</p><h2><strong>It&#8217;s Going to Look Different for Everyone</strong></h2><p>Is it possible to come up with some type of assessment for manager effectiveness? Sure, I think so. But it&#8217;s going to look different depending on your seniority, your team composition, the lifecycle of your product, and a dozen other factors.</p><p>And that&#8217;s actually fine. The point isn&#8217;t to come up with a universal manager score. The point is to be aware of the different dimensions, check your signals, and course-correct where things are off.</p><p>These are my opinions from 13+ years of frontline engineering management. Your experience might tell you something different, and I think that&#8217;s a valuable perspective -- so leave me a comment to let me know!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/measuring-manager-effectiveness-can?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/measuring-manager-effectiveness-can?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/p/measuring-manager-effectiveness-can/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/p/measuring-manager-effectiveness-can/comments"><span>Leave a comment</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://weekly.devleader.ca/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://weekly.devleader.ca/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><ul><li><p>Join me and other software engineers in the <strong><a href="https://sidestack.io/devleader">private Discord community</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpathtotech?sub_confirmation=1">Resume reviews and interview guidance</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderpodcast?sub_confirmation=1">Software engineering podcast and livestreams</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@CodeCommute?sub_confirmation=1">My Code Commute vlogs are on YouTube</a></strong>!</p></li><li><p><strong><a href="https://www.youtube.com/@devleaderBTS?sub_confirmation=1">All of my weekly vlogs are on YouTube</a></strong>!</p></li><li><p>Remember to check out <strong><a href="https://www.devleader.ca/courses/">my courses</a></strong>, including <strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp?ref=nick-cosentino">this awesome discounted bundle for C# developers</a></strong>:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WN8X!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6da2163-79ff-4874-b06e-faf881715e58_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!WN8X!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6da2163-79ff-4874-b06e-faf881715e58_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!WN8X!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6da2163-79ff-4874-b06e-faf881715e58_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!WN8X!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6da2163-79ff-4874-b06e-faf881715e58_705x397.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WN8X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6da2163-79ff-4874-b06e-faf881715e58_705x397.webp" width="705" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6da2163-79ff-4874-b06e-faf881715e58_705x397.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:397,&quot;width&quot;:705,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;C# From Zero to Hero - Dometrain Course&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="C# From Zero to Hero - Dometrain Course" title="C# From Zero to Hero - Dometrain Course" srcset="https://substackcdn.com/image/fetch/$s_!WN8X!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6da2163-79ff-4874-b06e-faf881715e58_705x397.webp 424w, https://substackcdn.com/image/fetch/$s_!WN8X!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6da2163-79ff-4874-b06e-faf881715e58_705x397.webp 848w, https://substackcdn.com/image/fetch/$s_!WN8X!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6da2163-79ff-4874-b06e-faf881715e58_705x397.webp 1272w, https://substackcdn.com/image/fetch/$s_!WN8X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6da2163-79ff-4874-b06e-faf881715e58_705x397.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://dometrain.com/bundle/from-zero-to-hero-csharp/?ref=nick-cosentino">Get this DISCOUNTED course bundle NOW!</a></strong></figcaption></figure></div><div><hr></div><p>As always, thanks so much for your support! I hope you enjoyed this issue, and I&#8217;ll see you next week.</p><p>&#8203;Nick &#8220;Dev Leader&#8221; Cosentino<br>&#8203;<strong><a href="mailto:social@devleader.ca">social@devleader.ca</a></strong>&#8203;<br>&#8203;<br>Socials:<br>&#8211; <strong><a href="https://devleader.ca/">Blog</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.youtube.com/@devleader?sub_confirmation=1">Dev Leader YouTube</a></strong>&#8203;<br>&#8211; <strong><a href="https://www.linkedin.com/in/nickcosentino/">Follow on LinkedIn</a></strong>&#8203;<br>&#8211; <strong><a href="https://instagram.com/dev.leader">Dev Leader Instagram</a></strong>&#8203;<br>&#8203;</p><p>P.S. If you enjoyed this newsletter, consider <strong><a href="https://weekly.devleader.ca/">sharing it with your fellow developers</a></strong>!</p>]]></content:encoded></item></channel></rss>