<?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[Blast Radius: The Weekly Letter]]></title><description><![CDATA[How promotion, hiring and engineering leadership decisions actually get made, reported from the Amazon Bar Raiser side of the table. Every issue leaves you with a move you can make.]]></description><link>https://haseebafsar.substack.com/s/the-weekly-letter</link><image><url>https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png</url><title>Blast Radius: The Weekly Letter</title><link>https://haseebafsar.substack.com/s/the-weekly-letter</link></image><generator>Substack</generator><lastBuildDate>Mon, 24 Aug 2026 11:11:19 GMT</lastBuildDate><atom:link href="https://haseebafsar.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Haseeb Afsar]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[haseebafsar@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[haseebafsar@substack.com]]></itunes:email><itunes:name><![CDATA[Haseeb Afsar]]></itunes:name></itunes:owner><itunes:author><![CDATA[Haseeb Afsar]]></itunes:author><googleplay:owner><![CDATA[haseebafsar@substack.com]]></googleplay:owner><googleplay:email><![CDATA[haseebafsar@substack.com]]></googleplay:email><googleplay:author><![CDATA[Haseeb Afsar]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Auditioning for the Wrong Person]]></title><description><![CDATA[You spend the whole loop winning over the hiring manager. The vote that ends it belongs to someone who does not need you at all.]]></description><link>https://haseebafsar.substack.com/p/auditioning-for-the-wrong-person</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/auditioning-for-the-wrong-person</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Sat, 22 Aug 2026 01:32:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You walked out of the loop knowing it went well.</p><p>The hiring manager laughed in the right places. He talked about the roadmap the way people talk when you are already on the team. Near the end he said the sentence hiring managers say when they have made up their mind: <em>I would love to have you working on this.</em></p><p>Then the recruiter called, and it was a no.</p><p>The explanations people reach for are that hiring is random, or political, or that someone internal already had the job. Sometimes that is true. Far more often something plainer happened. You spent the entire day winning over the one person in that loop whose yes was never in question.</p><h2>A loop contains two different votes</h2><p>Every well run interview loop has a structural conflict inside it, and most candidates never notice it is there.</p><p>The hiring manager has an open role. He has a team absorbing the work of a person who does not exist yet. He has a quarter to survive. His incentive points at yes and it points hard. The question he is actually asking, whether he says it out loud or not, is whether you can start reducing his pain.</p><p>Then there is the other seat. At Amazon that seat is the Bar Raiser: an interviewer pulled from a different org, trained for the role, holding no headcount of their own, and carrying the authority to sink the hire over the hiring manager&#8217;s objection. Most serious companies have built their own version. The cross team interviewer. The skip level. The person from platform who is there, in the recruiter&#8217;s words, &#8220;for calibration&#8221;. Different name, same job.</p><p>That person is not hiring you. You cannot relieve any pain they have, because they do not have any. They are answering a different question:</p><blockquote><p>If this role disappeared tomorrow, would the company still be better off with this person in it?</p></blockquote><p>The manager decides whether he wants you. The other seat decides whether the company should have you. Only one of those two is difficult, and it is not the one you spent five hours charming.</p><h2>That seat is not being difficult. It is being consistent.</h2><p>Candidates describe that interviewer afterward as the cold one, the one who did not seem impressed, the one who kept asking why. It reads as hostility. It is not. It is a different job.</p><p>The manager compares you to the empty chair. Against an empty chair almost anyone looks good, which is exactly why his vote is worth less than he thinks it is.</p><p>The other seat compares you to everyone the company already has at that level, and to everyone else who will interview this quarter. Their failure mode is not missing a good hire. Their failure mode is letting through someone who is fine, because fine compounds. Every fine hire moves the average down a little, and then that person sits on a loop next year and lets through someone who is fine by the new standard.</p><p>Once you understand that, their behaviour stops being personal. They are not looking for reasons to like you. They are looking for the reason to say no, so it can be examined out loud rather than discovered in eighteen months.</p><h2>Move one: find out who has nothing at stake</h2><p>Before the loop, ask the recruiter for the interview schedule and, for each interviewer, what team they are on and how they relate to the role.</p><p>This is a normal request and recruiters answer it. What comes back is the map. The people on the hiring team are the friendly votes. The person from somewhere else, the one whose team you would never work with, is the seat that decides.</p><p>You are not going to flatter that person. You are going to prepare differently for them, because they are being asked a different question and you should answer the one they are actually asking.</p><h2>Move two: bring the failure yourself</h2><p>This is the move almost nobody makes, and it is the one that changes debriefs.</p><p>If someone&#8217;s job is to find the reason to say no, and you give them nothing, they do not conclude there is no reason. They conclude they could not find it in an hour, and they write down the risk they imagine instead of the one that is real. Imagined risk is worse than a real one, because you never get to answer it.</p><p>So hand them the real one. Not a rehearsed weakness. An actual decision that went badly, what it cost, how you found out, and what you changed. Specific enough that they can picture the room.</p><p>Watch what that does. The moment you volunteer a genuine failure with a genuine correction, you have done their job for them and shown that your judgment is calibrated on real evidence rather than on the version of yourself you brought to the interview. You also become vastly easier to argue for, because the person defending you in the debrief is no longer defending a candidate who seemed too polished to be true.</p><p>The candidates who lose this seat are almost never the ones who admitted a mistake. They are the ones with six clean stories and no scar tissue.</p><h2>Move three: talk about the ability, not the project</h2><p>The manager wants to hear about your project because his team is about to build something adjacent to it. The other seat cannot use your project. They have never seen your system and never will.</p><p>What they can carry out of the room is the mechanism: the thing you know how to do that would still be true somewhere else.</p><p>So do not stop at what you built. Say what class of problem it was, what made it hard, what you would look for first if you met that shape again, and what you would do differently now. That is portable. That is the answer to &#8220;would we still want this person on a different team&#8221;, and it is the answer that survives being written into notes by a tired interviewer at the end of a long day.</p><p>One useful test before your next loop. Take your strongest story and delete every proper noun: the company, the system, the framework, the internal tool names. If what is left still describes a difficult judgment call that you made and defended, that story works in the second seat. If what is left is a description of some software, it only ever worked on the hiring team.</p><h2>What this actually changes</h2><p>Nothing about the way you prepare technically. Everything about who you are preparing for.</p><p>Most people walk into a loop trying to be liked by the person who already wants to like them, and treat the skeptical interviewer as an obstacle to survive. That is backwards. The friendly vote is nearly free. The skeptical one is the entire decision, and it is winnable, because the thing that seat is looking for is not brilliance. It is evidence that your judgment holds up when nobody is grading it.</p><p>Give that person the failure, the mechanism, and the honest cost, and you stop being a candidate they have to take a risk on. You become a candidate they have nothing left to ask about.</p><p>That is the vote that ends the loop.</p><div><hr></div><p>I write about how hiring, promotion and engineering leadership decisions actually get made, reported from inside the rooms where the call gets made. If that is useful, subscribe below.</p><p>If you want this applied to your own loop or your own promotion packet, you can book time here: <a href="https://calendly.com/algorioninc/30min">https://calendly.com/algorioninc/30min</a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://haseebafsar.substack.com/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://haseebafsar.substack.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Why Your Best Year Made the Weakest Packet]]></title><description><![CDATA[Six real accomplishments. No promotion. The paragraph he was proudest of is the one that sank it.]]></description><link>https://haseebafsar.substack.com/p/why-your-best-year-made-the-weakest</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/why-your-best-year-made-the-weakest</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Fri, 21 Aug 2026 04:42:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Here is a promotion packet, near enough to real ones that you will recognise it.</p><blockquote><p>Led the migration. Drove the on-call redesign. Mentored two engineers. Owned the roadmap. Partnered on pricing. Improved build times by 40%.</p></blockquote><p>Six accomplishments. He did every one of them. Nobody in the room disputed a single line.</p><p>He did not get promoted.</p><p>And the paragraph that sank him is the one he was proudest of.</p><h2>What the room actually sees</h2><p>Six verbs. Led, drove, mentored, owned, partnered, improved.</p><p>And no object big enough to level on.</p><p>Read it again and notice what it tells you. It tells you he had a busy year. It does not tell you he was doing a bigger job.</p><p>Those are different claims, and only one of them gets you promoted.</p><h2>Breadth reads junior</h2><p>This is the part that surprises people, so sit with it before you argue.</p><p>You believe a long list reads as senior. It reads as junior.</p><p>Six items tells the room you were handed six things. It does not tell them you were trusted with one hard thing. Handing someone six tasks is what you do with a reliable mid-level engineer. Handing someone one ambiguous problem with real consequences is what you do with someone you are considering promoting.</p><p>So padding a packet does not add weight to it. It divides it.</p><p>Every additional item competes with the others for the reader&#8217;s limited attention, and the reader has less attention than you think. Which brings us to why.</p><h2>The room you are not in</h2><p>I have sat on the other side of this. Not as a coach describing the process from outside, but in the chair, in the room, with the packet open.</p><p>Four things are true in there that almost nobody outside it accounts for.</p><p><strong>Written feedback is submitted before anyone talks.</strong> By the time the conversation starts, positions already exist on the page. If your work was persuasive in person and thin in writing, the persuasion is already gone.</p><p><strong>Your work gets re-told by someone else.</strong> You are not there. Your manager, or whoever is arguing for you, reconstructs your year from notes, under time pressure, to a room that has other packets to get through. Whatever they cannot reconstruct did not happen.</p><p><strong>Ambiguity reads as absence.</strong> &#8220;I think he led that migration&#8221; and &#8220;he did not lead that migration&#8221; are not scored similarly. They are scored identically. A reviewer who cannot confirm something does not give you partial credit for it. They move on.</p><p><strong>One unresolved concern stalls the whole thing.</strong> The bar is not a majority vote. A single reviewer saying &#8220;I could not tell what he actually decided&#8221; sends the group back to the document, and the document is where a list of six competent-sounding lines dies.</p><p>Put those four together and you get the real constraint. <strong>A packet has to survive being retold by a tired person from notes.</strong></p><p>A single claim survives that. A list of six does not.</p><h2>Same year, one claim</h2><p>Here is the identical twelve months, rewritten as one argument instead of six bullets.</p><blockquote><p>He owns how this org runs migrations. He took the service migration, found the cutover model was the real risk, and rebuilt it as staged dual-write. He was overruling the original design owner. Two other teams have since copied the pattern. A bad call there was a customer-visible outage.</p></blockquote><p>Count what is in there that was not in the list.</p><p><strong>Scope.</strong> Not &#8220;did a migration.&#8221; Owns how the org does migrations. That is a standing responsibility, not a completed ticket.</p><p><strong>Judgment.</strong> He found the real risk, and the real risk was not the obvious one. Anyone can execute a plan. Locating the actual failure mode is the senior act.</p><p><strong>Disagreement.</strong> He overruled the design owner. This is the line most people delete from their own packets because it feels arrogant. It is the single most load-bearing sentence in the paragraph. Promotion is a bet that your judgment should override other people&#8217;s more often. You have to show it already did.</p><p><strong>Reach past his own team.</strong> Two other teams copied it. He changed how people outside his blast radius work.</p><p><strong>Consequence.</strong> A bad call was a customer-visible outage. Now the room knows what was actually at stake, which is the only way they can calibrate how impressive the outcome was.</p><p>Nothing in that paragraph is decoration. Every sentence is doing work.</p><h2>The obvious objection, which is correct</h2><p>The other five things were real work. He did mentor two engineers. Build times genuinely improved by 40%.</p><p>They belong in the packet.</p><p>One line each. <strong>Underneath the claim.</strong></p><p>Because here is the distinction that reorganises everything: evidence supports an argument. Evidence is not the argument.</p><p>A packet is not a list of what you did. It is one sentence your manager can say out loud in ninety seconds, plus the proof that it is true.</p><p>When you lead with the evidence and never state the argument, you are asking six busy people to construct your promotion case for you, from raw material, under time pressure, while three other packets wait. They will not do it. Not because they are lazy or political, but because it is genuinely hard and it is your job, not theirs.</p><h2>The test</h2><p>Give your packet to someone who does not know your work. Let them read it once.</p><p>Then take it away and ask them what you should be promoted for.</p><p>If they hand you back a list, you do not have a claim yet. You have a resume.</p><p>If they hand you back one sentence, and it is the sentence you meant, you are done.</p><p>There is a shortcut version of the same test. Finish this out loud:</p><p><strong>&#8220;She owns how this org ______.&#8221;</strong></p><p>If you need the word &#8220;and&#8221; to finish it, you have two claims. The room will pick the weaker one, because the weaker one is easier to argue against, and someone in that room is looking for the easiest thing to argue against. That is not cynicism. That is what a bar is for.</p><h2>Where this connects</h2><p>If you read the last letter, this is the same machine seen from a different angle. The stranger test asked whether a person who never met you would spend their own credibility arguing for you. This one asks what, specifically, they would say when they did.</p><p>Same failure, two symptoms. Your written record is not doing the work you think it is doing, because you have never watched it get read by someone who is not you.</p><p>Most career advice is written by people standing outside that room, reasoning about what probably happens inside it.</p><p>I would rather tell you what is actually on the table.</p><div><hr></div><p><strong>Your turn.</strong> Finish this in the comments: &#8220;She owns how this org ______.&#8221;</p><p>If it takes you two sentences, post both, and I will tell you which one the room keeps. No charge, no pitch.</p><p>If you want to go through your actual packet rather than one sentence, that is a conversation, not a comment thread: https://calendly.com/algorioninc/30min</p><p>Next letter: the design doc nobody argued with, and why silence was the bad review.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://haseebafsar.substack.com/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://haseebafsar.substack.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Why People With Half Your Talent Keep Getting Promoted]]></title><description><![CDATA[The decision gets made in a room you are not in. Here is how to be in it anyway.]]></description><link>https://haseebafsar.substack.com/p/why-people-with-half-your-talent</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/why-people-with-half-your-talent</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Tue, 18 Aug 2026 13:19:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You have watched this happen. Someone with a thinner resume, shallower ownership, and a fraction of your technical depth gets the title you have been working toward for two years. You try to be gracious about it and you cannot quite manage it, because from where you are standing the decision looks unfair.</p><p>It usually is not unfair. It is just made somewhere you were not looking.</p><p>I was an Amazon Bar Raiser. That role exists for one reason: to sit in the room where a hiring or leveling decision gets made and hold the bar when everyone else in the room is tired and wants to go home. I have watched a lot of those decisions get made. Promotion decisions run the same way.</p><p>Here is the part almost nobody tells you.</p><p><strong>The people who decide are not the people who watched you work.</strong></p><p>They are senior leaders who have never read your pull requests, never sat in your design reviews, and never saw the outage you quietly prevented at 2am. They are reading a document. Your manager wrote it. And they are reading it in a meeting you were not invited to, alongside eight other candidates, under time pressure.</p><p>Your manager is your lawyer in that room. Most engineers hand their lawyer nothing to work with.</p><h2>The Stranger Test</h2><p>Take everything you have done in the last six months. Hand it to a senior person who has never met you. Let them read only what is actually written down about your work, in the places the company keeps records: design docs, project retros, your self review, whatever your manager has in their notes.</p><p>Now ask: would that stranger argue for your promotion?</p><p>Not &#8220;would they think you seem good.&#8221; Would they spend their own credibility, in a room full of peers, arguing that you specifically should be leveled up ahead of the other eight names on the list?</p><p>If the answer is no, your problem is not talent. Your problem is that you are illegible to strangers. And every promotion decision above a certain level is made by strangers.</p><p>Three things close that gap.</p><h2>1. Write your scope as decisions, not tasks</h2><p>This is the single biggest difference I see between engineers who get promoted and engineers who get told to wait another cycle.</p><p>&#8220;Owned the checkout migration&#8221; is a task. It tells a stranger nothing. Anyone can own something. Interns own things.</p><p>&#8220;Chose to keep the ledger on Postgres instead of moving it with the rest of the service, because the migration would have put us on eventual consistency for money movement, and that call held when traffic tripled in Q3&#8221; is a decision. It has a fork in it, a reason, and a consequence.</p><p>Tasks describe effort. Decisions describe judgment. Levels are assigned for judgment.</p><p>Go through your last six months and find the forks. Every project had them. Write down which way you went and why. If you cannot find a fork, that is real information about your scope, and it is better to learn it now than in a calibration meeting.</p><h2>2. Give evidence a stranger can verify</h2><p>Anything your manager has to take on faith, the room also takes on faith. Rooms do not take things on faith. Rooms have eight candidates and forty minutes.</p><p>Verifiable means: named systems, real numbers, links to artifacts that exist. The design doc. The dashboard. The postmortem with your name on it. The commit. The runbook other teams now use.</p><p>Vague: &#8220;improved reliability significantly.&#8221;</p><p>Verifiable: &#8220;cut p99 on the fulfillment path from 1.2s to 340ms, here is the dashboard, here is the design doc, and two other teams have since adopted the pattern.&#8221;</p><p>You do not need impressive numbers. You need checkable ones. A modest number someone can click through to beats an impressive one they have to trust you on.</p><h2>3. Hand your manager one sentence they can repeat word for word</h2><p>This is the step people skip, and it is the cheapest one.</p><p>Your manager will have somewhere between thirty seconds and two minutes to make your case out loud before someone interrupts with a question about a different candidate. If they have to improvise your case in that window, they will improvise it badly. Not because they do not support you. Because they are recalling six months of your work from memory while eleven other things compete for the same attention.</p><p>So write the sentence for them.</p><blockquote><p>&#8220;Priya is already operating at the next level: she owns the ledger consistency model end to end, she made the call that kept us out of a money-movement incident in Q3, and two other teams have adopted her pattern.&#8221;</p></blockquote><p>One sentence. Scope, judgment, reach beyond her own team. Give it to your manager six weeks before calibration, not the week of. Say plainly: &#8220;if it is useful, this is how I would summarize my case.&#8221;</p><p>Almost nobody does this. It feels presumptuous. It is not presumptuous. You are doing your advocate&#8217;s homework for them.</p><h2>The uncomfortable part</h2><p>The person who got promoted ahead of you probably was not better than you.</p><p><strong>They were easier to argue for.</strong></p><p>That distinction stings, and it should, because it means the gap was closeable and nobody told you. But it is also the most encouraging thing in this letter. Talent is slow to build. Legibility is fast. You can close a legibility gap in one focused afternoon with your own notes and a blank document.</p><p>The next calibration is closer than you think. Start with the forks.</p><div><hr></div><p><em>I am building a rubric that scores your promo packet against the Stranger Test, one page, no signup wall for subscribers. It goes out to this list next week.</em></p><p><em>If you are working toward a director or VP move and want to talk through your specific situation, you can grab time here: <a href="https://calendly.com/algorioninc/30min">https://calendly.com/algorioninc/30min</a></em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://haseebafsar.substack.com/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://haseebafsar.substack.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Twenty Services, Thirty Engineers]]></title><description><![CDATA[A thirty-person engineering team I got called in to help had somewhere around twenty microservices.]]></description><link>https://haseebafsar.substack.com/p/twenty-services-for-thirty-engineers</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/twenty-services-for-thirty-engineers</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Fri, 17 Jul 2026 21:13:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A thirty-person engineering team I got called in to help had somewhere around twenty microservices. That ratio should stop you the way it stopped me. Not quite two services for every three engineers. They had done it on purpose, following the advice they had read about how "real" companies at scale build software, and they were baffled that their veloci&#8230;</p>
      <p>
          <a href="https://haseebafsar.substack.com/p/twenty-services-for-thirty-engineers">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Why Migrations Die at Ninety Percent]]></title><description><![CDATA[Every seasoned engineering leader has a migration that haunts them.]]></description><link>https://haseebafsar.substack.com/p/big-migrations-stall-at-ninety-percent</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/big-migrations-stall-at-ninety-percent</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Fri, 17 Jul 2026 21:13:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every seasoned engineering leader has a migration that haunts them. Mine was a database migration that sat at ninety percent done for the better part of a year, close enough that we kept telling ourselves it was nearly finished, far enough that we were quietly maintaining two systems the entire time. If you have lived through one of these, you know the &#8230;</p>
      <p>
          <a href="https://haseebafsar.substack.com/p/big-migrations-stall-at-ninety-percent">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Staff Is Not One Job. It Is Four.]]></title><description><![CDATA[One of the most useful conversations I have as a coach starts with an engineer telling me, with real frustration, that they have been passed over for Staff twice and cannot understand why.]]></description><link>https://haseebafsar.substack.com/p/staff-is-not-one-job-it-is-four-archetypes</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/staff-is-not-one-job-it-is-four-archetypes</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Fri, 17 Jul 2026 21:11:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>One of the most useful conversations I have as a coach starts with an engineer telling me, with real frustration, that they have been passed over for Staff twice and cannot understand why. They are clearly strong. Their manager likes them. The feedback is vague, some mix of "broaden your impact" and "we want to see more leadership," and none of it tells&#8230;</p>
      <p>
          <a href="https://haseebafsar.substack.com/p/staff-is-not-one-job-it-is-four-archetypes">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Nobody Said Fault. Everyone Knew.]]></title><description><![CDATA[I once sat in a postmortem that everyone called blameless while a room full of people spent an hour deciding, very politely, whose fault it was.]]></description><link>https://haseebafsar.substack.com/p/a-postmortem-where-nobody-says-the</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/a-postmortem-where-nobody-says-the</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Thu, 16 Jul 2026 15:00:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I once sat in a postmortem that everyone called blameless while a room full of people spent an hour deciding, very politely, whose fault it was.</p><p>Nobody said "fault." The word never appeared. But the whole meeting bent toward one engineer, the one who had pushed the config change that took down checkout. The questions were gentle and the tone was warm and&#8230;</p>
      <p>
          <a href="https://haseebafsar.substack.com/p/a-postmortem-where-nobody-says-the">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The IC Path Is Not a Consolation Prize]]></title><description><![CDATA[An engineer I coach called me last month sounding cornered.]]></description><link>https://haseebafsar.substack.com/p/when-the-management-ladder-loses</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/when-the-management-ladder-loses</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Thu, 16 Jul 2026 14:59:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>An engineer I coach called me last month sounding cornered. Her company had just flattened its management layer, cut a row of team-lead roles, and told everyone the path forward was "impact, not headcount." She had spent two years positioning herself to become a manager, and the ladder she was climbing had just been sawn off above her.</p><p>"So what am I supp&#8230;</p>
      <p>
          <a href="https://haseebafsar.substack.com/p/when-the-management-ladder-loses">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Feature Flags Are Technical Debt]]></title><description><![CDATA[The incident that started with a flag nobody remembered]]></description><link>https://haseebafsar.substack.com/p/feature-flags-feel-like-a-small-convenience</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/feature-flags-feel-like-a-small-convenience</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Wed, 15 Jul 2026 13:42:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A payments-adjacent team once spent most of a very bad night chasing a production outage. Traffic was failing for a slice of users, the code looked correct, the recent deploys looked clean, and nothing in the obvious places explained it. The cause, found hours in, was a feature flag. It had been created two years earlier for an experiment that had long &#8230;</p>
      <p>
          <a href="https://haseebafsar.substack.com/p/feature-flags-feel-like-a-small-convenience">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Priority Is a Zero-Sum Budget]]></title><description><![CDATA[The team that was busy and stalled]]></description><link>https://haseebafsar.substack.com/p/your-team-is-not-slow-because-they</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/your-team-is-not-slow-because-they</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Wed, 15 Jul 2026 13:41:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A team I was asked to look at was clearly talented and clearly stuck. They worked long hours. They shipped constantly. And yet the things that actually mattered to the business kept slipping quarter after quarter. The engineers were exhausted and demoralized, and the manager was baffled, because from where he sat everyone was working hard on important t&#8230;</p>
      <p>
          <a href="https://haseebafsar.substack.com/p/your-team-is-not-slow-because-they">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Negotiate the Scope, Not the Number]]></title><description><![CDATA[The negotiation everyone skips]]></description><link>https://haseebafsar.substack.com/p/everyone-negotiates-the-offer-number</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/everyone-negotiates-the-offer-number</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Wed, 15 Jul 2026 13:40:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I watched a strong senior engineer accept an offer that looked like a win and turned into a two-year stall. The title was right. The compensation was a little above their target. They signed happily. Eighteen months later they were frustrated and underleveled relative to their peers, and they could not figure out why.</p><p>The reason was simple and it was dec&#8230;</p>
      <p>
          <a href="https://haseebafsar.substack.com/p/everyone-negotiates-the-offer-number">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Same Model, Faster Answers]]></title><description><![CDATA[The strange thing about how a model talks to you]]></description><link>https://haseebafsar.substack.com/p/the-models-did-not-get-smaller-but</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/the-models-did-not-get-smaller-but</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Wed, 15 Jul 2026 13:38:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>The strange thing about how a model talks to you</h2><p>The first time an engineer really looks at how a large language model generates text, they usually flinch. The model does not write a sentence. It writes one token, roughly a word fragment, then feeds that token back into itself and runs the entire network again to produce the next one. A single response y&#8230;</p>
      <p>
          <a href="https://haseebafsar.substack.com/p/the-models-did-not-get-smaller-but">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[AI Sped Up Writing, Not Reviewing]]></title><description><![CDATA[A director I coach told me his team's output had roughly doubled over the past year with AI assistance, and yet his senior engineers seemed more exhausted than before, and quality incidents had ticked up rather than down.]]></description><link>https://haseebafsar.substack.com/p/ai-made-writing-code-faster-it-did</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/ai-made-writing-code-faster-it-did</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Tue, 14 Jul 2026 21:57:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A director I coach told me his team's output had roughly doubled over the past year with AI assistance, and yet his senior engineers seemed more exhausted than before, and quality incidents had ticked up rather than down. He wanted to know what he was doing wrong. The answer is that he had optimized one half of a system and accidentally overloaded the o&#8230;</p>
      <p>
          <a href="https://haseebafsar.substack.com/p/ai-made-writing-code-faster-it-did">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Dangerous Moment Is After the Crisis]]></title><description><![CDATA[There is a pattern I have seen enough times to treat as a law.]]></description><link>https://haseebafsar.substack.com/p/the-dangerous-moment-is-not-the-crisis</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/the-dangerous-moment-is-not-the-crisis</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Tue, 14 Jul 2026 21:56:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There is a pattern I have seen enough times to treat as a law. Your team ships something big and hard. A major launch, a brutal migration, a quarter that everyone said was impossible. You celebrate. Relief all around. And three to six weeks later, one of your strongest engineers, the one who carried the hardest part, hands in their notice.</p><p>Managers exper&#8230;</p>
      <p>
          <a href="https://haseebafsar.substack.com/p/the-dangerous-moment-is-not-the-crisis">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Good Work Nobody Can See]]></title><description><![CDATA[One of the most painful conversations I have as a coach goes like this.]]></description><link>https://haseebafsar.substack.com/p/strong-engineers-often-stall-not</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/strong-engineers-often-stall-not</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Tue, 14 Jul 2026 21:55:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>One of the most painful conversations I have as a coach goes like this. A genuinely excellent engineer sits across from me, frustrated, and says some version of: I do the hardest work on the team, I unblock everyone, I fix the fires, and I got passed over again. What is wrong with me.</p><p>Usually nothing is wrong with them technically. What is wrong is that &#8230;</p>
      <p>
          <a href="https://haseebafsar.substack.com/p/strong-engineers-often-stall-not">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Your System Already Chose a Failure Mode]]></title><description><![CDATA[There is a decision that quietly shapes the reliability of every system you will ever build, and most engineers make it by accident.]]></description><link>https://haseebafsar.substack.com/p/if-you-never-decide-what-your-system</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/if-you-never-decide-what-your-system</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Mon, 13 Jul 2026 16:17:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There is a decision that quietly shapes the reliability of every system you will ever build, and most engineers make it by accident. It is the question of what your system should do when something it depends on fails. Not whether things will fail, because they always will, but what happens in the moment they do. Get this right and your system degrades l&#8230;</p>
      <p>
          <a href="https://haseebafsar.substack.com/p/if-you-never-decide-what-your-system">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Honesty Is a Thermostat, Not a Trait]]></title><description><![CDATA[Every engineering leader eventually inherits a team that has stopped telling the truth.]]></description><link>https://haseebafsar.substack.com/p/team-honesty-is-not-a-character-trait</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/team-honesty-is-not-a-character-trait</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Mon, 13 Jul 2026 16:13:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every engineering leader eventually inherits a team that has stopped telling the truth. Not lying, exactly. Just a quiet, collective drift toward saying what is safe instead of what is real. Estimates that everyone knows are fiction. Status updates that are green until the week they turn red. A retro where nobody names the thing everyone talked about in&#8230;</p>
      <p>
          <a href="https://haseebafsar.substack.com/p/team-honesty-is-not-a-character-trait">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Make Yourself Replaceable]]></title><description><![CDATA[There is a career trap that almost no one warns you about, and it catches exactly the people who are doing everything right.]]></description><link>https://haseebafsar.substack.com/p/the-cruelest-career-trap-is-built</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/the-cruelest-career-trap-is-built</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Mon, 13 Jul 2026 16:12:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There is a career trap that almost no one warns you about, and it catches exactly the people who are doing everything right. You are the person who gets things done. Work flows to you because you are reliable, and you say yes because saying yes is how you built your reputation. Then one day you look up and realize you are the most indispensable person o&#8230;</p>
      <p>
          <a href="https://haseebafsar.substack.com/p/the-cruelest-career-trap-is-built">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[A Design Doc Extracts a Decision]]></title><description><![CDATA[Most design docs are written to look thorough.]]></description><link>https://haseebafsar.substack.com/p/a-design-doc-is-not-a-description</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/a-design-doc-is-not-a-description</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Sun, 12 Jul 2026 16:22:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most design docs are written to look thorough. The good ones are written to get a decision made. The difference is the whole discipline, and almost no one is taught it, which is why so many engineers produce beautiful documents that generate a hundred comments, no resolution, and a meeting three weeks later that ends exactly where it started.</p><p>I spent yea&#8230;</p>
      <p>
          <a href="https://haseebafsar.substack.com/p/a-design-doc-is-not-a-description">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Shipping and Growing Came Apart]]></title><description><![CDATA[A year ago the hardest part of mentoring a junior engineer was watching them stare at a blank file, frozen, not knowing where to start.]]></description><link>https://haseebafsar.substack.com/p/shipping-and-growing-used-to-be-the</link><guid isPermaLink="false">https://haseebafsar.substack.com/p/shipping-and-growing-used-to-be-the</guid><dc:creator><![CDATA[Haseeb Afsar]]></dc:creator><pubDate>Sun, 12 Jul 2026 16:21:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wUTY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F667b9d8e-24a1-4a52-8a2d-3a2417f7d770_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A year ago the hardest part of mentoring a junior engineer was watching them stare at a blank file, frozen, not knowing where to start. That problem is gone. Now they generate three hundred lines in ninety seconds and the code mostly runs. Which sounds like progress, and in one narrow sense it is. But it has quietly broken the machine that turns juniors&#8230;</p>
      <p>
          <a href="https://haseebafsar.substack.com/p/shipping-and-growing-used-to-be-the">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>