<?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[Syed Peera Saheb]]></title><description><![CDATA[Syed Peera Saheb]]></description><link>https://syedpeerasaheb.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!tdAI!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsyedpeerasaheb.substack.com%2Fimg%2Fsubstack.png</url><title>Syed Peera Saheb</title><link>https://syedpeerasaheb.substack.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 30 Jun 2026 22:03:41 GMT</lastBuildDate><atom:link href="https://syedpeerasaheb.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[syed_peera_saheb]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[syedpeerasaheb@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[syedpeerasaheb@substack.com]]></itunes:email><itunes:name><![CDATA[Syed Peera Saheb]]></itunes:name></itunes:owner><itunes:author><![CDATA[Syed Peera Saheb]]></itunes:author><googleplay:owner><![CDATA[syedpeerasaheb@substack.com]]></googleplay:owner><googleplay:email><![CDATA[syedpeerasaheb@substack.com]]></googleplay:email><googleplay:author><![CDATA[Syed Peera Saheb]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[I Deleted My 200-Message Claude Thread. Here's What I Built Instead.]]></title><description><![CDATA[I had a Claude conversation that ran for weeks.]]></description><link>https://syedpeerasaheb.substack.com/p/i-deleted-my-200-message-claude-thread</link><guid isPermaLink="false">https://syedpeerasaheb.substack.com/p/i-deleted-my-200-message-claude-thread</guid><dc:creator><![CDATA[Syed Peera Saheb]]></dc:creator><pubDate>Sat, 27 Jun 2026 03:31:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZO5d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F451b1473-d98b-48bd-893a-9c4147094e22_1536x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I had a Claude conversation that ran for weeks.</p><p>It started as a product brief. Then became a competitor analysis. Then a slide deck outline. Then a series of emails. Then something for a completely different project.</p><p>I kept adding to it because I thought I was being efficient. Everything in one place. No need to re-explain context. Just scroll up and keep going.</p><p>I was doing the opposite of efficient.</p><p>When I finally deleted it and started over with a proper system, my outputs got better and my conversations got shorter. Both at once. That&#8217;s the thing about cleaning up how you work &#8212; the gains tend to stack.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZO5d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F451b1473-d98b-48bd-893a-9c4147094e22_1536x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZO5d!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F451b1473-d98b-48bd-893a-9c4147094e22_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZO5d!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F451b1473-d98b-48bd-893a-9c4147094e22_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZO5d!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F451b1473-d98b-48bd-893a-9c4147094e22_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZO5d!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F451b1473-d98b-48bd-893a-9c4147094e22_1536x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZO5d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F451b1473-d98b-48bd-893a-9c4147094e22_1536x1024.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/451b1473-d98b-48bd-893a-9c4147094e22_1536x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:145184,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://syedpeerasaheb.substack.com/i/203511682?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F451b1473-d98b-48bd-893a-9c4147094e22_1536x1024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZO5d!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F451b1473-d98b-48bd-893a-9c4147094e22_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZO5d!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F451b1473-d98b-48bd-893a-9c4147094e22_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZO5d!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F451b1473-d98b-48bd-893a-9c4147094e22_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZO5d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F451b1473-d98b-48bd-893a-9c4147094e22_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"><svg role="img" 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"><g><title></title><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"><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"><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><div><hr></div><p><strong>Why long threads work against you</strong></p><p>Every message you send, Claude re-reads the entire conversation history from the top.</p><p>That 200-message thread I had? By the end, Claude was processing weeks of context &#8212; old decisions that had been reversed, early drafts that had been replaced, questions about projects that were already finished &#8212; every single time I asked a new question.</p><p>That old context doesn&#8217;t just cost you. It <em>competes</em> with what you&#8217;re actually trying to do. The more unrelated history there is, the harder it is for Claude to give you a sharp, focused answer to your current question.</p><p>Starting a new conversation when topics shift isn&#8217;t starting over. It&#8217;s clearing the whiteboard so you can think clearly.</p><div><hr></div><p><strong>The context summary (the bridge between conversations)</strong></p><p>The fear people have about starting fresh is losing context. And that&#8217;s fair &#8212; sometimes you&#8217;ve built up useful background over a long conversation.</p><p>The fix is simple: before you close a conversation you want to continue, ask Claude to summarize it.</p><p>Something like: <em>&#8220;Summarize this conversation &#8212; what was the goal, what did we decide, what context I&#8217;ll need, and where we left off.&#8221;</em></p><p>Claude produces a tight summary. You paste it into your next conversation as the opening message. You pick up exactly where you were, with none of the noise.</p><p>Takes thirty seconds. Saves you from both the context loss problem and the bloated-thread problem at the same time.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://syedpeerasaheb.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://syedpeerasaheb.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><strong>Projects: the thing most people skip</strong></p><p>If you find yourself uploading the same document more than once, or re-explaining your role/tone/preferences at the start of conversations, you need Projects.</p><p>Here&#8217;s the difference:</p><p>In a regular conversation, every session starts from scratch. Files you upload get processed fresh each time. Instructions you give don&#8217;t carry over. Claude doesn&#8217;t remember what you told it last Tuesday.</p><p>In a Project, your files and instructions persist. Claude draws on them across every conversation in that project without you having to re-upload or re-explain anything.</p><p>If you&#8217;ve uploaded the same brand guidelines to five different chats. If you&#8217;ve typed &#8220;I&#8217;m a product manager and I need executive-ready language&#8221; more than twice. If you keep sharing the same report to ask different questions about it &#8212; that&#8217;s a Project.</p><p>Set it up once. Save yourself every time after that.</p><div><hr></div><p><strong>The five habits (the ones that actually stick)</strong></p><p>After all the experimentation, this is the system:</p><p><strong>Match the model to the task.</strong> Sonnet for most things. Haiku when it&#8217;s quick and simple. Opus when you genuinely need more.</p><p><strong>Write prompts that specify context, task, format, and constraints.</strong> Not all four every time &#8212; but at least two of them, always.</p><p><strong>One topic per conversation.</strong> Change topics, start fresh. Use the context summary trick to bridge conversations cleanly.</p><p><strong>Use Projects for anything you&#8217;ve done more than twice.</strong> If you&#8217;ve re-uploaded it or re-explained it, it belongs in a Project.</p><p><strong>Share only what&#8217;s relevant.</strong> Twenty pages when you need one section is twenty pages Claude processes for no reason. Give it what it needs, nothing more.</p><p>None of these are hard. Together, they compound into something that feels meaningfully different from the way most people use AI.</p><div><hr></div><p><strong>The real shift</strong></p><p>The way most people use Claude is the same way people used Google when it first came out &#8212; type something in, see what comes back, type something else.</p><p>That&#8217;s not wrong. But it&#8217;s leaving most of the capability on the table.</p><p>Claude is a thinking partner. The better you set up the conversation, the better the thinking you get back. The cleaner your system, the more useful every session becomes.</p><p>That&#8217;s the whole thing. Tokens, models, prompts, clean conversations, projects. Five habits. None of them complicated.</p><p>Start with one this week. The rest follow naturally.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://syedpeerasaheb.substack.com/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">Thanks for reading! Subscribe for free to receive new posts and support my work.</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>]]></content:encoded></item><item><title><![CDATA[The Prompt That Almost Everyone Gets Wrong]]></title><description><![CDATA[Why "write me a summary of this" is costing you more than you realize &#8212; and the four-part fix that changes everything]]></description><link>https://syedpeerasaheb.substack.com/p/the-prompt-that-almost-everyone-gets</link><guid isPermaLink="false">https://syedpeerasaheb.substack.com/p/the-prompt-that-almost-everyone-gets</guid><dc:creator><![CDATA[Syed Peera Saheb]]></dc:creator><pubDate>Fri, 26 Jun 2026 04:45:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!mQN7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2d32f9f-326d-4f66-99bc-5ea83eafa510_1536x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Here&#8217;s the most common Claude prompt in the world:</p><p><em>&#8220;Write me a summary of this document.&#8221;</em></p><p>That&#8217;s it. That&#8217;s the whole thing.</p><p>Then people are surprised when the output is... okay. Not bad. Just okay. Generic. Like something a capable intern would produce on their first day when they don&#8217;t quite understand the context yet.</p><p>The reason isn&#8217;t Claude. The reason is the prompt.</p><div><hr></div><p><strong>Why vague prompts produce vague answers</strong></p><p>Claude is a language model. It works with what it&#8217;s given. When you give it nothing but a task and a document, it has to make a lot of decisions on your behalf &#8212; about tone, length, audience, focus, format, what to include, what to leave out.</p><p>Claude will make those decisions. It&#8217;s good at making them. But they&#8217;re <em>its</em> decisions, not yours.</p><p>And when you read the output and it&#8217;s not quite right, there&#8217;s usually a round of back-and-forth: &#8220;actually make it shorter,&#8221; &#8220;the tone is too formal,&#8221; &#8220;can you focus more on the recommendations section.&#8221; Each one of those follow-up messages costs you. And most of them could have been avoided by being clear in the first place.</p><p>There&#8217;s a four-part structure that fixes this. You don&#8217;t need all four every time &#8212; even two or three dramatically outperforms an open-ended ask.</p><div><hr></div><p><strong>The four parts</strong></p><p><strong>Context</strong> &#8212; who you are and why you&#8217;re asking. Not a biography. One line. &#8220;I&#8217;m a product manager writing for a non-technical executive audience&#8221; tells Claude more than you&#8217;d think.</p><p><strong>Task</strong> &#8212; what you actually want. Be specific. &#8220;Summarize&#8221; is vague. &#8220;Give me the three most important takeaways in plain language&#8221; is not.</p><p><strong>Format</strong> &#8212; how you want it delivered. Bullet points or prose? 200 words or 500? Should it start with the conclusion or build to it? Claude will default to something reasonable, but reasonable isn&#8217;t the same as right for your situation.</p><p><strong>Constraints</strong> &#8212; what to avoid. This is the most underused part. &#8220;Don&#8217;t use jargon,&#8221; &#8220;skip the background context, I already know it,&#8221; &#8220;no bullet points&#8221; &#8212; constraints narrow the space and almost always produce sharper outputs.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mQN7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2d32f9f-326d-4f66-99bc-5ea83eafa510_1536x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mQN7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2d32f9f-326d-4f66-99bc-5ea83eafa510_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mQN7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2d32f9f-326d-4f66-99bc-5ea83eafa510_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mQN7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2d32f9f-326d-4f66-99bc-5ea83eafa510_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mQN7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2d32f9f-326d-4f66-99bc-5ea83eafa510_1536x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mQN7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2d32f9f-326d-4f66-99bc-5ea83eafa510_1536x1024.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2d32f9f-326d-4f66-99bc-5ea83eafa510_1536x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:121527,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://syedpeerasaheb.substack.com/i/203510897?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2d32f9f-326d-4f66-99bc-5ea83eafa510_1536x1024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mQN7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2d32f9f-326d-4f66-99bc-5ea83eafa510_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mQN7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2d32f9f-326d-4f66-99bc-5ea83eafa510_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mQN7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2d32f9f-326d-4f66-99bc-5ea83eafa510_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mQN7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2d32f9f-326d-4f66-99bc-5ea83eafa510_1536x1024.jpeg 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"><svg role="img" 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"><g><title></title><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"><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"><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><div><hr></div><p><strong>The edit trick most people never use</strong></p><p>This one&#8217;s small but it changes things.</p><p>When your prompt doesn&#8217;t land the way you expected, most people add a follow-up message to clarify. That&#8217;s the natural instinct. But it means Claude now has to reconcile your original prompt with your correction &#8212; and the conversation gets longer and murkier.</p><p>Instead: click the edit icon on your original message, fix the prompt, and resubmit.</p><p>Claude sees a clean, corrected version of your ask. The conversation history stays tight. The output is almost always better.</p><p>It sounds minor. It&#8217;s not.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://syedpeerasaheb.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://syedpeerasaheb.substack.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p><strong>Keeping the conversation clean</strong></p><p>There&#8217;s a habit that costs people a lot without them realizing it: keeping one conversation open all day and adding everything to it.</p><p>It feels efficient. One place. Everything&#8217;s there.</p><p>What&#8217;s actually happening: Claude is re-reading the entire conversation history every single time you send a message. By message 50, the early context from this morning &#8212; when you were working on something completely different &#8212; is competing with what you need right now.</p><p>Long conversations don&#8217;t just cost more per message. They also produce worse outputs because Claude is processing a bunch of irrelevant history alongside your actual question.</p><p>The rule I use: one topic, one conversation. When I shift to something new, I open a fresh thread.</p><p>If I need context from the previous conversation, I ask Claude to summarize it first &#8212; &#8220;give me the key decisions and context from this conversation in a few bullets&#8221; &#8212; then paste that summary into the new thread and continue. Thirty seconds. Works every time.</p><div><hr></div><p><strong>The one habit from this article</strong></p><p>Before you send your next Claude message, take ten more seconds to add one of the four parts &#8212; just one. Format, constraints, audience, specifics. Pick whichever feels most missing.</p><p>You&#8217;ll notice the difference immediately.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://syedpeerasaheb.substack.com/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">Thanks for reading! Subscribe for free to receive new posts and support my work.</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><p></p>]]></content:encoded></item><item><title><![CDATA[You're Burning Your AI Credits and Don't Even Know It]]></title><description><![CDATA[The one concept that changes how you use Claude forever &#8212; and it takes about 90 seconds to understand]]></description><link>https://syedpeerasaheb.substack.com/p/youre-burning-your-ai-credits-and</link><guid isPermaLink="false">https://syedpeerasaheb.substack.com/p/youre-burning-your-ai-credits-and</guid><dc:creator><![CDATA[Syed Peera Saheb]]></dc:creator><pubDate>Thu, 25 Jun 2026 05:50:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SzRT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F439bfc9e-2430-44aa-9ed5-556fa9e008b5_1536x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A friend sent me a screenshot of her Claude conversation last month.</p><p>One task. Forty-three messages. She&#8217;d pasted the same report three separate times.</p><p>She wasn&#8217;t doing anything wrong exactly. But she was spending a lot more than she needed to &#8212; and had zero awareness of it. That&#8217;s the part that bothered me. Not the waste. The blindness.</p><p>So let me fix that for you in about five minutes.</p><div><hr></div><p><strong>What Claude is actually reading</strong></p><p>When you type a message, Claude doesn&#8217;t read words. It reads <em>tokens</em> &#8212; basically chunks of about three-quarters of a word each.</p><p>Your message? Tokens. Claude&#8217;s response? Tokens. That document you uploaded? Tokens. Every single message from the beginning of your conversation? Also tokens, re-read from scratch every single time you hit send.</p><p>That last part is the one most people miss.</p><p>Claude doesn&#8217;t just see your latest message. It re-reads the entire conversation history on every turn. That 40-message thread you&#8217;ve been running since Tuesday morning? Every new message you send costs more than the last one, because the history keeps growing.</p><p>Here&#8217;s the practical version of this: a focused 10-message conversation about one thing is significantly cheaper and usually produces better results than a 60-message conversation that drifted across five different topics.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SzRT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F439bfc9e-2430-44aa-9ed5-556fa9e008b5_1536x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SzRT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F439bfc9e-2430-44aa-9ed5-556fa9e008b5_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SzRT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F439bfc9e-2430-44aa-9ed5-556fa9e008b5_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SzRT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F439bfc9e-2430-44aa-9ed5-556fa9e008b5_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SzRT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F439bfc9e-2430-44aa-9ed5-556fa9e008b5_1536x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SzRT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F439bfc9e-2430-44aa-9ed5-556fa9e008b5_1536x1024.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/439bfc9e-2430-44aa-9ed5-556fa9e008b5_1536x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:159299,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://syedpeerasaheb.substack.com/i/203510059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F439bfc9e-2430-44aa-9ed5-556fa9e008b5_1536x1024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SzRT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F439bfc9e-2430-44aa-9ed5-556fa9e008b5_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SzRT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F439bfc9e-2430-44aa-9ed5-556fa9e008b5_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SzRT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F439bfc9e-2430-44aa-9ed5-556fa9e008b5_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SzRT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F439bfc9e-2430-44aa-9ed5-556fa9e008b5_1536x1024.jpeg 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"><svg role="img" 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"><g><title></title><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"><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"><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><div><hr></div><p><strong>The model you pick matters more than you think</strong></p><p>Most people open Claude and just... start typing. They don&#8217;t touch the model selector. That&#8217;s leaving a lot on the table.</p><p>There are three Claude models, and they&#8217;re not interchangeable. Think of them like this:</p><p><strong>Sonnet</strong> is your everyday driver. Fast, capable, handles 90% of what you&#8217;ll throw at it. This is where you should live most of the time.</p><p><strong>Haiku</strong> is for when you need something quick and the task is genuinely simple. A short summary. A quick reformat. Don&#8217;t overthink it.</p><p><strong>Opus</strong> is the heavy machinery. It&#8217;s the most capable and it costs the most. Use it when you genuinely need depth &#8212; complex analysis, nuanced writing, hard problems. Not for &#8220;can you clean up this email.&#8221;</p><p>The mistake most people make isn&#8217;t using Opus when they shouldn&#8217;t. It&#8217;s defaulting to Sonnet for everything <em>including</em> the 30-second tasks that Haiku would handle just as well in half the time.</p><p>Match the tool to the job. Every time.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4YGO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0089ac44-61f5-482b-9299-765227e71406_1536x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4YGO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0089ac44-61f5-482b-9299-765227e71406_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4YGO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0089ac44-61f5-482b-9299-765227e71406_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4YGO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0089ac44-61f5-482b-9299-765227e71406_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4YGO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0089ac44-61f5-482b-9299-765227e71406_1536x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4YGO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0089ac44-61f5-482b-9299-765227e71406_1536x1024.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0089ac44-61f5-482b-9299-765227e71406_1536x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:207177,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://syedpeerasaheb.substack.com/i/203510059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0089ac44-61f5-482b-9299-765227e71406_1536x1024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4YGO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0089ac44-61f5-482b-9299-765227e71406_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4YGO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0089ac44-61f5-482b-9299-765227e71406_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4YGO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0089ac44-61f5-482b-9299-765227e71406_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4YGO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0089ac44-61f5-482b-9299-765227e71406_1536x1024.jpeg 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"><svg role="img" 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"><g><title></title><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"><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"><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><div><hr></div><p><strong>The thing nobody tells you about &#8220;just asking Claude&#8221;</strong></p><p>When you ask a vague question, Claude tries to be helpful. That sounds fine until you realize what &#8220;trying to be helpful&#8221; actually means &#8212; Claude fills in the blanks with its best guess, which often means longer, more exhaustive answers than you needed.</p><p>Ask for &#8220;a summary&#8221; and you might get 800 words. Ask for &#8220;an analysis&#8221; and you might get a structured report with headers and subheadings and a conclusion section.</p><p>None of that is Claude being bad at its job. It&#8217;s Claude doing exactly what you asked &#8212; just not what you meant.</p><p>And here&#8217;s the frustrating part: if the output isn&#8217;t what you needed, you now have to spend more to fix it. Every regeneration, every follow-up, every &#8220;actually can you make it shorter&#8221; &#8212; that all counts.</p><p>Getting clearer upfront is the highest-leverage habit you can build. Not smarter prompts. Not better tools. Just: knowing what you want before you ask.</p><div><hr></div><p><strong>The short version</strong></p><p>Three things that will immediately change how you use Claude:</p><p>Stop running marathon conversations. One topic, one thread. When you shift topics, start fresh.</p><p>Check the model selector. Sonnet for most things. Haiku for quick tasks. Opus when you genuinely need it.</p><p>Understand that vague inputs create expensive outputs. More on exactly how to fix that &#8212; next week.</p><div><hr></div><p><em>Next: The exact prompt structure that cuts your back-and-forth in half &#8212; and the weird trick of editing your message instead of replying to it.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://syedpeerasaheb.substack.com/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">Thanks for reading! Subscribe for free to receive new posts and support my work.</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>]]></content:encoded></item><item><title><![CDATA[Knowing When to Walk Away (and How to Do It Right)]]></title><description><![CDATA[Most engineers switch jobs for the wrong reason, at the wrong time, in the wrong way. Here&#8217;s how not to.]]></description><link>https://syedpeerasaheb.substack.com/p/knowing-when-to-walk-away-and-how</link><guid isPermaLink="false">https://syedpeerasaheb.substack.com/p/knowing-when-to-walk-away-and-how</guid><dc:creator><![CDATA[Syed Peera Saheb]]></dc:creator><pubDate>Tue, 23 Jun 2026 05:50:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CWX-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb697f1c4-bcb2-4d94-8cbf-51ab425ffe8e_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://substackcdn.com/image/fetch/$s_!CWX-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb697f1c4-bcb2-4d94-8cbf-51ab425ffe8e_1536x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CWX-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb697f1c4-bcb2-4d94-8cbf-51ab425ffe8e_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CWX-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb697f1c4-bcb2-4d94-8cbf-51ab425ffe8e_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CWX-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb697f1c4-bcb2-4d94-8cbf-51ab425ffe8e_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CWX-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb697f1c4-bcb2-4d94-8cbf-51ab425ffe8e_1536x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CWX-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb697f1c4-bcb2-4d94-8cbf-51ab425ffe8e_1536x1024.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b697f1c4-bcb2-4d94-8cbf-51ab425ffe8e_1536x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:260335,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://syedpeerasaheb.substack.com/i/203203220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb697f1c4-bcb2-4d94-8cbf-51ab425ffe8e_1536x1024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CWX-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb697f1c4-bcb2-4d94-8cbf-51ab425ffe8e_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CWX-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb697f1c4-bcb2-4d94-8cbf-51ab425ffe8e_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CWX-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb697f1c4-bcb2-4d94-8cbf-51ab425ffe8e_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CWX-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb697f1c4-bcb2-4d94-8cbf-51ab425ffe8e_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"><svg role="img" 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"><g><title></title><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"><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"><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><p>Let me say the quiet part out loud: most people don&#8217;t quit because they should. They quit because they had a bad week.</p><p>A rough sprint. A manager who snapped at them in standup. A deploy that went sideways on a Friday night. And suddenly they&#8217;re refreshing job boards at 1am, ready to throw it all away.</p><p>Don&#8217;t do that. A bad week is not a sign. A bad year is.</p><p>So before we talk about <em>how</em> to switch, let&#8217;s get honest about <em>when</em>.</p><p><strong>When you should actually leave</strong></p><p>You&#8217;ve stopped learning. Six months go by and you realize you haven&#8217;t picked up a single new thing. The work feels like a rerun. That&#8217;s the real alarm bell &#8212; not the salary, not the title. Growth.</p><p>You&#8217;re badly underpaid and they won&#8217;t fix it. Not &#8220;I want more.&#8221; I mean you looked at the market, you asked, and they shrugged. That shrug is your answer.</p><p>You dread it. Not on Monday morning &#8212; everybody hates Monday a little. I mean a low, constant hum of &#8220;I don&#8217;t want to be here&#8221; that doesn&#8217;t go away no matter how good the week is.</p><p>Your manager is the ceiling. If the person above you can&#8217;t grow you, protect you, or get out of your way, and that&#8217;s not changing &#8212; you&#8217;ve already hit the wall. You just haven&#8217;t admitted it yet.</p><p>If two or three of those are true at once, stop reading job advice and start applying.</p><p><strong>When you should stay (for now)</strong></p><p>Here&#8217;s the part nobody tells you: sometimes the smartest move is to <em>not</em> move.</p><p>Don&#8217;t leave right after you shipped something huge. That&#8217;s the thing you ride to a promotion. Cashing out a day before payday is foolish.</p><p>Don&#8217;t leave just because you&#8217;re bored, if you haven&#8217;t actually asked for harder work. A lot of &#8220;I&#8217;ve outgrown this&#8221; is really &#8220;I never raised my hand.&#8221; Try the conversation first. You&#8217;d be surprised.</p><p>And please &#8212; don&#8217;t run <em>from</em> a problem. If the issue is something you&#8217;re carrying (you&#8217;re disorganized, you avoid hard feedback, you burn out by overcommitting), it&#8217;s coming with you to the next place. New logo, same problem.</p><p>The good reason to leave is that you&#8217;re walking <em>toward</em> something better. The bad reason is that you&#8217;re sprinting away from something uncomfortable.</p><p><strong>How to switch without setting yourself on fire</strong></p><p>Okay, you&#8217;ve decided. Here&#8217;s how to do it like a professional and not like someone who watched a quit-tok video.</p><p>Interview while you&#8217;re still employed. Always. You negotiate from strength when you have a paycheck and weakness when you don&#8217;t. Never resign first and figure it out later.</p><p>Get the offer in writing before you tell a single coworker. Not your work bestie. Not anyone. Things leak, deals fall through, and you don&#8217;t want to be the person who announced a departure that didn&#8217;t happen.</p><p>Negotiate the offer. Every time. The first number is rarely the best number, and the worst they can say is &#8220;that&#8217;s our max.&#8221; You lose nothing by asking and you&#8217;ll often gain more than a year of raises would have given you.</p><p>When you do resign, keep it short and kind. No speech. No list of grievances. &#8220;I&#8217;ve accepted another opportunity, I&#8217;m grateful for my time here, and I&#8217;ll do everything I can to hand things off cleanly.&#8221; That&#8217;s it.</p><p>Then actually hand things off cleanly. Document what&#8217;s in your head. Don&#8217;t coast for two weeks. The last impression is the one people remember, and our industry is smaller than you think &#8212; your tech lead today is interviewing you somewhere in five years.</p><p>And whatever you do, don&#8217;t trash the place on your way out. Not in the exit interview, not on LinkedIn, not in the group chat. The world keeps receipts.</p><p><strong>The one line to remember</strong></p><p>Switch when you&#8217;ve stopped growing &#8212; not when you&#8217;ve had a bad day. And leave the way you&#8217;d want someone to leave you: warm, clean, and without burning the house down behind them.</p><p>The door you close gently is the same door you might need open again.</p>]]></content:encoded></item><item><title><![CDATA[Nobody Fails LLD Interviews Because They Don't Know Enough]]></title><description><![CDATA[They fail because they freeze. Here's how to actually think in objects when it counts.]]></description><link>https://syedpeerasaheb.substack.com/p/nobody-fails-lld-interviews-because</link><guid isPermaLink="false">https://syedpeerasaheb.substack.com/p/nobody-fails-lld-interviews-because</guid><dc:creator><![CDATA[Syed Peera Saheb]]></dc:creator><pubDate>Mon, 22 Jun 2026 09:08:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pfVP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f09423-8f92-422f-b971-32409344fbfb_1536x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Nobody Fails LLD Because They Don&#8217;t Know Enough. They Fail Because They Freeze.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pfVP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f09423-8f92-422f-b971-32409344fbfb_1536x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pfVP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f09423-8f92-422f-b971-32409344fbfb_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pfVP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f09423-8f92-422f-b971-32409344fbfb_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pfVP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f09423-8f92-422f-b971-32409344fbfb_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pfVP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f09423-8f92-422f-b971-32409344fbfb_1536x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pfVP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f09423-8f92-422f-b971-32409344fbfb_1536x1024.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f7f09423-8f92-422f-b971-32409344fbfb_1536x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:346870,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://syedpeerasaheb.substack.com/i/203061375?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f09423-8f92-422f-b971-32409344fbfb_1536x1024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pfVP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f09423-8f92-422f-b971-32409344fbfb_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pfVP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f09423-8f92-422f-b971-32409344fbfb_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pfVP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f09423-8f92-422f-b971-32409344fbfb_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pfVP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f09423-8f92-422f-b971-32409344fbfb_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"><svg role="img" 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"><g><title></title><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"><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"><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><p>I&#8217;ve watched a stupid number of low-level design interviews. From both sides of the table. And the thing nobody tells you is that LLD isn&#8217;t really a knowledge test. You&#8217;re not going to get rejected because you forgot the difference between the Strategy and State patterns. You&#8217;re going to get rejected because forty minutes in, the interviewer still can&#8217;t tell whether you actually know how to <em>think</em> in objects, or whether you just memorized &#8220;Parking Lot Solution&#8221; off some PDF and prayed they&#8217;d ask that exact one.</p><p>So let me save you the months of confusion I went through. This is how LLD interviews actually work, and how to not blow them.</p><p><strong>First, understand what they&#8217;re buying.</strong></p><p>HLD asks &#8220;can you architect a system that doesn&#8217;t fall over.&#8221; LLD asks &#8220;can I trust you to write the actual classes my team will maintain for the next four years.&#8221; That&#8217;s it. The whole interview is the interviewer trying to figure out if your code would be a pleasure or a nightmare to work in. Every decision you make is read through that lens. When you make a class do six things, they&#8217;re imagining the pull request. When you hardcode a payment type instead of leaving room for new ones, they&#8217;re imagining themselves six months from now, cursing your name.</p><p>Once you internalize that, the prep gets a lot simpler, because you stop trying to memorize solutions and start building taste.</p><p><strong>Don&#8217;t start with classes. Start with the conversation.</strong></p><p>The single biggest mistake I see is people hearing &#8220;design a vending machine&#8221; and immediately drawing a <code>VendingMachine</code> class. Stop. You don&#8217;t even know what they want yet. Does it handle refunds? Multiple currencies? Is it one machine or a fleet reporting to a server? Spend the first five minutes pinning down scope out loud. &#8220;I&#8217;m going to assume single machine, cash only, no networked inventory &#8212; sound right?&#8221; This isn&#8217;t stalling. It&#8217;s the actual job. Senior engineers are the ones who ask the right questions before writing a line, and the interviewer knows it.</p><p>And here&#8217;s the part people miss: nailing scope also <em>protects</em> you. If you&#8217;ve explicitly agreed the design is cash-only, you can&#8217;t get ambushed twenty minutes later for not handling credit cards. You set the boundaries.</p><p><strong>Find the nouns. Seriously, that&#8217;s the trick.</strong></p><p>After you&#8217;ve scoped it, talk through the problem in plain English and listen for the nouns. &#8220;A <em>user</em> puts <em>money</em> into the <em>machine</em> to buy a <em>product</em> from a <em>slot</em>.&#8221; There are your candidate classes, sitting right there in the sentence. The verbs become your methods. This sounds almost too simple but it&#8217;s exactly how experienced people find the entities fast. You&#8217;re just turning the requirement into objects, then asking which objects own which behavior.</p><p>The mistake juniors make is putting all the behavior in one god class. The machine knows the price, the machine does the dispensing, the machine validates the money, the machine tracks inventory. Now you&#8217;ve got a 600-line class and a sad interviewer. Spread the responsibility. The <code>Inventory</code> knows about stock. The <code>Product</code> knows its own price. The machine just coordinates. That&#8217;s the whole game.</p><p><strong>Patterns are seasoning, not the meal.</strong></p><p>I need to be blunt because people get this so wrong: do not walk in trying to shoehorn five design patterns into your answer to look smart. It reads as exactly what it is. Patterns should emerge because the problem <em>demanded</em> them, and you should be able to say why.</p><p>The honest truth is that most LLD problems only ever need a handful. When behavior changes at runtime, you reach for Strategy &#8212; a vending machine that takes cash now and cards later wants a <code>PaymentStrategy</code>, not an if-else ladder. When something has distinct modes that change how it responds, that&#8217;s State &#8212; the vending machine literally has states (idle, money inserted, dispensing) and modeling them as a State pattern is gorgeous and the interviewer will love it. When you need to create objects without hardcoding their concrete type, Factory. When something needs to notify others when it changes, Observer. Learn those four cold and <em>why</em> each exists, and you&#8217;ll handle ninety percent of what&#8217;s thrown at you. Knowing twenty patterns shallowly is worse than knowing four deeply.</p><p><strong>SOLID isn&#8217;t an acronym to recite. It&#8217;s a smell test.</strong></p><p>You don&#8217;t need to define SOLID in the interview. You need to <em>use</em> it so naturally that the interviewer notices. The two that actually carry the weight are the S and the O. Single Responsibility &#8212; does each class have one reason to change? Open/Closed &#8212; when a new requirement comes in, can I add a class instead of editing existing ones? If your design means &#8220;to add Apple Pay I just write one new class and touch nothing else,&#8221; you&#8217;ve basically already won. Say that out loud. &#8220;I&#8217;m structuring it this way so adding a new payment type later is a new class, not a rewrite.&#8221; That single sentence signals more seniority than any pattern name you could drop.</p><p><strong>Now actually write something.</strong></p><p>Talk is cheap and at some point you have to put real classes on the board. Don&#8217;t write full method bodies for everything &#8212; nobody cares about your getters. Write the interfaces, the key class signatures, the important relationships, and then implement the <em>one or two methods where the actual logic lives</em>. For a vending machine, I want to see how <code>insertMoney</code> and <code>dispense</code> work and how state transitions. The rest I&#8217;ll trust you on. Show judgment about what matters. Spending ten minutes typing out a constructor is how you run out of clock with the interesting parts undone.</p><p><strong>Think out loud the entire time, even when it feels dumb.</strong></p><p>This is the cheat code. The interviewer cannot read your mind. If you sit silently for two minutes drawing the perfect class diagram, they have no idea if you&#8217;re a genius or stuck. Narrate the tradeoffs. &#8220;I could make this an enum but if I think these payment types will each have their own validation logic, an interface is cleaner &#8212; let me go with the interface.&#8221; Now you&#8217;ve shown you considered the alternative <em>and</em> had a reason. That&#8217;s the difference between someone who memorized an answer and someone who can design. They&#8217;re hiring the reasoning, not the diagram.</p><p><strong>How to actually prepare, in order.</strong></p><p>Don&#8217;t grind fifty problems. That&#8217;s the LeetCode brain leaking in and it doesn&#8217;t work here. Pick about eight to ten classic problems and do them <em>properly</em> &#8212; Parking Lot, Vending Machine, Elevator, Splitwise, BookMyShow / movie booking, an LRU cache, a logging framework, a rate limiter, maybe Snake &amp; Ladder or a card game for the OO modeling reps. The reason this small set is enough is that they recycle the same underlying skills. Splitwise and BookMyShow are both really about entity relationships and a couple of well-placed strategies. Once you&#8217;ve felt the patterns repeat, a brand-new problem stops being scary because you recognize the shape.</p><p>For each one, don&#8217;t just look up the solution. Solve it, then go find a good solution and ask &#8220;what did they see that I didn&#8217;t?&#8221; That gap is where your taste grows. And write the code. Actually write it, compile it, feel where your own design fights you. You learn that a class has too many responsibilities only when you try to instantiate the thing and it needs nine constructor arguments.</p><p><strong>The mindset that ties it together.</strong></p><p>Walk in like a senior engineer pairing with a colleague on a design, not a candidate being quizzed. Ask, scope, find the nouns, assign responsibility cleanly, leave the door open for change, narrate your reasoning, and write the parts that matter. Do that and it almost doesn&#8217;t matter which problem they pick. You&#8217;re not performing a memorized solution &#8212; you&#8217;re showing them what it&#8217;d be like to have you on the team.</p><p>That&#8217;s the whole thing they&#8217;re paying for.</p>]]></content:encoded></item><item><title><![CDATA[Design Patterns, Explained Like You’re Actually Going to Use Them]]></title><description><![CDATA[The 23 classic patterns, what each one is for, and why knowing them quietly makes you a better engineer]]></description><link>https://syedpeerasaheb.substack.com/p/design-patterns-explained-like-youre</link><guid isPermaLink="false">https://syedpeerasaheb.substack.com/p/design-patterns-explained-like-youre</guid><dc:creator><![CDATA[Syed Peera Saheb]]></dc:creator><pubDate>Fri, 19 Jun 2026 02:46:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rmxx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F349c9883-090f-4d1b-9f7a-9e1fa033441a_1536x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every engineer hits the same wall eventually. You&#8217;re staring at a problem, you write some code, it works, and a few weeks later you realize you&#8217;ve reinvented something that thousands of developers solved decades ago &#8212; just messier. That&#8217;s the gap design patterns fill.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rmxx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F349c9883-090f-4d1b-9f7a-9e1fa033441a_1536x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rmxx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F349c9883-090f-4d1b-9f7a-9e1fa033441a_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rmxx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F349c9883-090f-4d1b-9f7a-9e1fa033441a_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rmxx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F349c9883-090f-4d1b-9f7a-9e1fa033441a_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rmxx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F349c9883-090f-4d1b-9f7a-9e1fa033441a_1536x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rmxx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F349c9883-090f-4d1b-9f7a-9e1fa033441a_1536x1024.jpeg" width="1536" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/349c9883-090f-4d1b-9f7a-9e1fa033441a_1536x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1024,&quot;width&quot;:1536,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:0,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rmxx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F349c9883-090f-4d1b-9f7a-9e1fa033441a_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rmxx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F349c9883-090f-4d1b-9f7a-9e1fa033441a_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rmxx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F349c9883-090f-4d1b-9f7a-9e1fa033441a_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rmxx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F349c9883-090f-4d1b-9f7a-9e1fa033441a_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"><svg role="img" 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"><g><title></title><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"><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"><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><p>A design pattern isn&#8217;t a library you install or a chunk of code you paste in. It&#8217;s closer to a recipe. It&#8217;s a proven way of structuring your code to solve a problem that keeps showing up. Someone hit the wall before you, figured out a clean shape for the solution, gave it a name, and now the rest of us get to skip the painful part.</p><p>The reason they matter goes beyond &#8220;good code.&#8221; Patterns are a shared vocabulary. When a teammate says &#8220;let&#8217;s just use a Factory here&#8221; or &#8220;wrap it in an Adapter,&#8221; that&#8217;s three words doing the work of a whiteboard session. Everyone instantly knows the shape of what&#8217;s being proposed. That alone is worth learning them.</p><p>Most of the classic patterns come from a 1994 book by four authors everyone calls the &#8220;Gang of Four.&#8221; They catalogued 23 of them and split them into three buckets based on what the pattern is actually doing. That grouping is still the cleanest way to think about it.</p><p>The three categories</p><p>Creational patterns are about how objects get made. Sometimes new SomeClass() is fine. But when object creation gets complicated &#8212; lots of setup, conditional logic, needing exactly one instance &#8212; these patterns give you cleaner ways to handle it.</p><p>Structural patterns are about how objects and classes fit together. They help you compose bigger structures from smaller pieces without everything turning into spaghetti.</p><p>Behavioral patterns are about how objects talk to each other and split up responsibility. This is where most of the &#8220;who&#8217;s in charge of what&#8221; questions get answered.</p><p>Here&#8217;s the full list, grouped, with what each one is actually for.</p><p>Creational (5)</p><p>&#9;&#8226;&#9;Singleton &#8212; Guarantees a class has only one instance and gives everyone a single point of access to it. Think config managers or a shared connection pool.</p><p>&#9;&#8226;&#9;Factory Method &#8212; Lets a class defer the decision of which object to create to its subclasses. You ask for a thing; the subclass decides the exact type.</p><p>&#9;&#8226;&#9;Abstract Factory &#8212; Creates whole families of related objects without you having to name their concrete classes. Useful when things need to match, like UI widgets for a specific theme.</p><p>&#9;&#8226;&#9;Builder &#8212; Constructs a complex object step by step. Great when an object has a ton of optional parameters and the constructor would otherwise look like a phone number.</p><p>&#9;&#8226;&#9;Prototype &#8212; Creates new objects by cloning an existing one instead of building from scratch. Handy when setup is expensive and you just want a copy.</p><p>Structural (7)</p><p>&#9;&#8226;&#9;Adapter &#8212; Makes two incompatible interfaces work together, like a translator sitting between old code and new code.</p><p>&#9;&#8226;&#9;Bridge &#8212; Splits an abstraction from its implementation so the two can change independently without exploding into a mess of subclasses.</p><p>&#9;&#8226;&#9;Composite &#8212; Lets you treat a single object and a group of objects the same way. This is the pattern behind tree structures like file systems.</p><p>&#9;&#8226;&#9;Decorator &#8212; Adds new behavior to an object at runtime by wrapping it, instead of cramming everything into one giant class.</p><p>&#9;&#8226;&#9;Facade &#8212; Hides a complicated subsystem behind one simple interface. The customer doesn&#8217;t need to see the kitchen.</p><p>&#9;&#8226;&#9;Flyweight &#8212; Shares common data between many similar objects to save memory. Think rendering thousands of trees in a game that all reuse the same texture.</p><p>&#9;&#8226;&#9;Proxy &#8212; Stands in for another object to control access to it &#8212; for lazy loading, caching, permission checks, that kind of thing.</p><p>Behavioral (11)</p><p>&#9;&#8226;&#9;Chain of Responsibility &#8212; Passes a request along a chain of handlers until one of them deals with it. Middleware in web frameworks works exactly like this.</p><p>&#9;&#8226;&#9;Command &#8212; Wraps a request as an object, which makes things like undo, queuing, and logging easy.</p><p>&#9;&#8226;&#9;Interpreter &#8212; Defines a grammar and a way to evaluate it. You&#8217;ll mostly see this in parsers and simple query languages.</p><p>&#9;&#8226;&#9;Iterator &#8212; Lets you walk through a collection one item at a time without caring how it&#8217;s stored underneath.</p><p>&#9;&#8226;&#9;Mediator &#8212; Puts all the messy communication between objects into one central place instead of letting everything talk to everything.</p><p>&#9;&#8226;&#9;Memento &#8212; Captures an object&#8217;s state so you can restore it later. This is your save-game / checkpoint pattern.</p><p>&#9;&#8226;&#9;Observer &#8212; Lets objects subscribe to another object and get notified when it changes. Event systems and reactive UIs live here.</p><p>&#9;&#8226;&#9;State &#8212; Lets an object change its behavior when its internal state changes, so it almost looks like it switched classes. Cleaner than a pile of if-statements.</p><p>&#9;&#8226;&#9;Strategy &#8212; Defines a family of interchangeable algorithms and lets you swap them at runtime. Different sorting or payment methods, picked on the fly.</p><p>&#9;&#8226;&#9;Template Method &#8212; Lays out the skeleton of an algorithm and lets subclasses fill in specific steps without changing the overall flow.</p><p>&#9;&#8226;&#9;Visitor &#8212; Lets you add new operations to a group of objects without modifying the objects themselves.</p><p>A quick word of caution</p><p>Here&#8217;s the thing nobody tells you early enough: patterns are tools, not trophies. The fastest way to write bad code is to learn these and then go looking for excuses to use all of them. Half the time the right answer is a plain function and no pattern at all.</p><p>The real skill isn&#8217;t memorizing the 23. It&#8217;s recognising the problem shape in front of you and remembering &#8220;oh, this is the kind of thing Strategy solves&#8221; or &#8220;this smells like an Observer situation.&#8221; The names are just the index. The judgment is the actual job.</p><p>So don&#8217;t try to swallow the whole list tonight. Pick a few you keep bumping into &#8212; Factory, Strategy, Observer, Adapter, Decorator are the everyday ones &#8212; and watch for them in the codebases you already work in. They&#8217;re hiding in there. Once you start seeing them, you can&#8217;t unsee them, and that&#8217;s when the names finally click.</p>]]></content:encoded></item><item><title><![CDATA[Different Types of APIs and Their Use Cases ]]></title><description><![CDATA[What each API type actually does, when to use it, and the real-world examples that make it click.]]></description><link>https://syedpeerasaheb.substack.com/p/different-types-of-apis-and-their</link><guid isPermaLink="false">https://syedpeerasaheb.substack.com/p/different-types-of-apis-and-their</guid><dc:creator><![CDATA[Syed Peera Saheb]]></dc:creator><pubDate>Thu, 18 Jun 2026 19:17:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!D24O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c5233d4-d293-4eba-bc74-b7299e658c3c_1024x1536.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://substackcdn.com/image/fetch/$s_!D24O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c5233d4-d293-4eba-bc74-b7299e658c3c_1024x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D24O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c5233d4-d293-4eba-bc74-b7299e658c3c_1024x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!D24O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c5233d4-d293-4eba-bc74-b7299e658c3c_1024x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!D24O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c5233d4-d293-4eba-bc74-b7299e658c3c_1024x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!D24O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c5233d4-d293-4eba-bc74-b7299e658c3c_1024x1536.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D24O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c5233d4-d293-4eba-bc74-b7299e658c3c_1024x1536.jpeg" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1c5233d4-d293-4eba-bc74-b7299e658c3c_1024x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:366935,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://syedpeerasaheb.substack.com/i/202543399?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c5233d4-d293-4eba-bc74-b7299e658c3c_1024x1536.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!D24O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c5233d4-d293-4eba-bc74-b7299e658c3c_1024x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!D24O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c5233d4-d293-4eba-bc74-b7299e658c3c_1024x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!D24O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c5233d4-d293-4eba-bc74-b7299e658c3c_1024x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!D24O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c5233d4-d293-4eba-bc74-b7299e658c3c_1024x1536.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"><svg role="img" 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"><g><title></title><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"><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"><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><p>Every developer hits this moment: you need two systems to talk, you open your editor, and you default to REST because that&#8217;s what you always do. Sometimes that&#8217;s right. Sometimes it quietly costs you later.</p><p>APIs aren&#8217;t one-size-fits-all. Different problems call for different types, and knowing which is which is the difference between an integration that just works and one you&#8217;re rewriting six months in. Here&#8217;s the full map &#8212; what each type is, when to use it, and a real example.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://syedpeerasaheb.substack.com/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">Thanks for reading! Subscribe for free to receive new posts and support my work.</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><h3>Open APIs</h3><p><strong>What it is:</strong> Publicly available APIs that any developer can integrate with, usually self-serve with an API key.</p><p><strong>Use it for:</strong> Weather data, login systems, product catalogs &#8212; anything you want the outside world to build on top of.</p><p><strong>Example:</strong> Google Maps, Stripe. You sign up, grab a key, and start calling. The point is discoverability and easy onboarding, not &#8220;no authentication&#8221; &#8212; you still get rate limits and billing.</p><p>Under the &#8220;open&#8221; umbrella, you&#8217;re really choosing a <em>style</em>:</p><h4>REST API</h4><p><strong>What it is:</strong> HTTP-based, resource-oriented, stateless, usually JSON.</p><p><strong>Use it for:</strong> Roughly 90% of modern web and mobile apps. It&#8217;s the universal default for a reason &#8212; every language and client speaks it, and it caches well.</p><p><strong>Example:</strong> A mobile app fetching a user&#8217;s profile or a list of products.</p><h4>SOAP API</h4><p><strong>What it is:</strong> XML-based, strict schemas, formal contracts, built-in standards for security and transactions.</p><p><strong>Use it for:</strong> Banks, insurance, government &#8212; domains where rigor and guaranteed message integrity matter more than developer convenience.</p><p><strong>Example:</strong> Processing an insurance claim or a wire transfer, where the contract can&#8217;t be ambiguous and the security model is non-negotiable.</p><h4>GraphQL API</h4><p><strong>What it is:</strong> A single endpoint where the client asks for exactly the fields it needs &#8212; no more, no less.</p><p><strong>Use it for:</strong> Complex, deeply related data, especially when multiple frontends (web, iOS, Android) each need a different slice.</p><p><strong>Example:</strong> A social feed pulling only the posts, names, and thumbnails it needs in one request, instead of three round-trips to three REST endpoints.</p><h3>Internal APIs</h3><p>These never leave your own system. They&#8217;re how the pieces of <em>your</em> architecture talk to each other, and because they&#8217;re private, you get more freedom in how you design them.</p><h4>Backend to Backend</h4><p><strong>What it is:</strong> Internal services calling each other.</p><p><strong>Use it for:</strong> Microservice architectures, where responsibilities are split across services.</p><p><strong>Example:</strong> Your auth service handing off to the user service, which calls the payment service. (This is also where high-throughput protocols like gRPC earn their keep &#8212; internal traffic at scale doesn&#8217;t need to be human-readable JSON.)</p><h4>Frontend to Backend</h4><p><strong>What it is:</strong> Your UI requesting data from your server.</p><p><strong>Use it for:</strong> Basically every interaction in a web or mobile app.</p><p><strong>Example:</strong> A user logging in, running a search, or updating their profile.</p><h4>Service to Database</h4><p><strong>What it is:</strong> Your backend reading from and writing to its data store.</p><p><strong>Use it for:</strong> All your core data operations.</p><p><strong>Example:</strong> Storing a new user record or fetching a customer&#8217;s order history. (Worth noting: this usually happens through a driver or ORM rather than a &#8220;real&#8221; API, but conceptually it&#8217;s the same layer in the stack.)</p><h3>Partner APIs</h3><p><strong>What it is:</strong> Controlled access for a known set of trusted external parties &#8212; gated, contractual, and SLA-backed.</p><p><strong>Use it for:</strong> Affiliate programs, reseller systems, B2B integrations where there&#8217;s a real relationship behind every key.</p><p><strong>Example:</strong> Amazon&#8217;s affiliate tracking, or a travel site pulling live hotel and airline availability from partners.</p><h4>B2B Integration</h4><p><strong>What it is:</strong> Direct system-to-system data exchange between businesses.</p><p><strong>Use it for:</strong> Booking platforms, payment gateways, supply chain coordination.</p><p><strong>Example:</strong> A travel app hitting an airline&#8217;s API for seat availability and a payment gateway to close the sale.</p><h4>Data Sharing API</h4><p><strong>What it is:</strong> A partner API built specifically for the secure exchange of sensitive data, with compliance baked in.</p><p><strong>Use it for:</strong> Health records, financial data, logistics tracking &#8212; anywhere the payload is regulated.</p><p><strong>Example:</strong> Two hospital systems exchanging patient records under strict access controls and audit trails.</p><h3>The Decision Framework</h3><p>You don&#8217;t need to memorize all of this. You need two questions:</p><p><strong>Who&#8217;s calling it?</strong></p><ul><li><p>The public &#8594; Open API (REST by default)</p></li><li><p>Trusted business partners &#8594; Partner API</p></li><li><p>Your own systems &#8594; Internal API</p></li></ul><p><strong>What does the workload look like?</strong></p><ul><li><p>Simple, universal, cacheable &#8594; REST</p></li><li><p>Complex, relational, many clients &#8594; GraphQL</p></li><li><p>Enterprise, legacy, high-trust &#8594; SOAP</p></li><li><p>High-volume internal traffic &#8594; backend-to-backend (and consider gRPC)</p></li><li><p>Sensitive, regulated data &#8594; Data Sharing API</p></li></ul><p>There's no "best" API type &#8212; only the right fit for who's calling and what they need. Get those two answers straight before you write a line of code, and the choice stops being a coin flip.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://syedpeerasaheb.substack.com/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">Thanks for reading! Subscribe for free to receive new posts and support my work.</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>]]></content:encoded></item><item><title><![CDATA[How to Build a FAANG Resume That Actually Gets You the Interview]]></title><description><![CDATA[It&#8217;s not the ATS. Here&#8217;s how recruiters actually screen &#8212; and the exact resume that gets shortlisted.]]></description><link>https://syedpeerasaheb.substack.com/p/how-to-build-a-faang-resume-that</link><guid isPermaLink="false">https://syedpeerasaheb.substack.com/p/how-to-build-a-faang-resume-that</guid><dc:creator><![CDATA[Syed Peera Saheb]]></dc:creator><pubDate>Wed, 17 Jun 2026 10:10:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MPiw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087d3ac7-e15a-4fa0-b80d-e7de157605fd_1536x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MPiw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087d3ac7-e15a-4fa0-b80d-e7de157605fd_1536x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MPiw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087d3ac7-e15a-4fa0-b80d-e7de157605fd_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!MPiw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087d3ac7-e15a-4fa0-b80d-e7de157605fd_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!MPiw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087d3ac7-e15a-4fa0-b80d-e7de157605fd_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!MPiw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087d3ac7-e15a-4fa0-b80d-e7de157605fd_1536x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MPiw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087d3ac7-e15a-4fa0-b80d-e7de157605fd_1536x1024.jpeg" width="1536" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/087d3ac7-e15a-4fa0-b80d-e7de157605fd_1536x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1024,&quot;width&quot;:1536,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:0,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MPiw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087d3ac7-e15a-4fa0-b80d-e7de157605fd_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!MPiw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087d3ac7-e15a-4fa0-b80d-e7de157605fd_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!MPiw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087d3ac7-e15a-4fa0-b80d-e7de157605fd_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!MPiw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087d3ac7-e15a-4fa0-b80d-e7de157605fd_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"><svg role="img" 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"><g><title></title><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"><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"><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><p>The truth about ATS, the bullet formula Google itself uses, and every line that gets you shortlisted &#8212; from someone who&#8217;s been on both sides of the screen.</p><p>Your resume gets about seven seconds. That&#8217;s the entire window a recruiter gives it before deciding &#8220;interview&#8221; or &#8220;next.&#8221; Most engineers lose those seconds not because they&#8217;re unqualified, but because they wrote their resume for the wrong reader and believed a pile of myths about robots eating their PDF. Let&#8217;s fix all of it.</p><p>First, kill the ATS myth &#8212; it&#8217;s costing you</p><p>You&#8217;ve heard it: &#8220;75% of resumes are auto-rejected by an ATS before a human sees them, so stuff your resume with keywords to beat the bot.&#8221; Almost none of that is true, and chasing it makes your resume worse.</p><p>Here&#8217;s what an Applicant Tracking System actually is: a database. Nearly every large company uses one to store and organize the flood of applications. Recruiters then search that database by keyword, the way you&#8217;d search Google. The ATS doesn&#8217;t score your soul and hit reject. The only things that auto-filter you are &#8220;knockout questions&#8221; you answer in the application &#8212; visa status, minimum years, a required degree. Pass those, and a human recruiter reads your resume. The viral &#8220;auto-reject&#8221; stat is marketing from companies selling you resume-checkers.</p><p>So your real job isn&#8217;t to &#8220;beat the ATS.&#8221; It&#8217;s two things: get parsed cleanly so your info lands in the database correctly, and be relevant enough that a recruiter searching finds you and a human reading is impressed. That reframe changes everything below.</p><p>How to actually be ATS-compliant</p><p>This part is simple once you drop the fear. Make your resume easy to parse:</p><p>&#9;&#8226;&#9;One column. Multi-column layouts, tables, and text boxes are the #1 thing that scrambles parsing.</p><p>&#9;&#8226;&#9;Standard section headings: Experience, Projects, Skills, Education. Don&#8217;t get cute with &#8220;Where I&#8217;ve Made Magic.&#8221;</p><p>&#9;&#8226;&#9;Keep contact info in the body, not buried in the header/footer &#8212; some parsers skip those.</p><p>&#9;&#8226;&#9;No images, icons, logos, or photos. They add nothing a parser can read and can break it.</p><p>&#9;&#8226;&#9;Save as a clean PDF from a normal editor (Google Docs, Word). DOCX is the safest if an application looks old or glitchy.</p><p>&#9;&#8226;&#9;Mirror the real keywords from the job description &#8212; the actual languages, frameworks, and tools &#8212; naturally in your skills and bullets. This is for findability, not stuffing. If the JD says &#8220;Kubernetes&#8221; and you&#8217;ve used it, the word should appear.</p><p>Fonts and colors don&#8217;t matter to the parser, but they matter to the human, so keep it clean and readable. That&#8217;s the whole game: clean structure plus honest relevance.</p><p>How long, and how many lines</p><p>One page. For anyone with under roughly eight years of experience, this isn&#8217;t negotiable, and even most senior FAANG candidates keep it to one. Two pages only if you genuinely have the senior scope to justify it &#8212; and most people who think they do, don&#8217;t.</p><p>Per job, write three to five bullets, each one or two lines. Your most recent and most relevant role gets the most space; older roles shrink to two or three lines. Anything from a decade ago, or unrelated, gets cut or compressed to a single line. Skills section: two to four grouped lines, not a 40-item word cloud.</p><p>The structure, in the order it should appear</p><p>&#9;&#8226;&#9;Header: your name, the role title you&#8217;re targeting (optional but helps), your city, a professional email, phone, and links to LinkedIn and GitHub. No photo, no date of birth, no marital status &#8212; those are common on resumes in India and parts of Asia, but for FAANG they only introduce bias and waste space. Cut them.</p><p>&#9;&#8226;&#9;Summary (optional): three to four lines, only if it earns its place &#8212; your title, years, core stack, and two or three quantified wins. Skip the generic &#8220;passionate engineer seeking opportunities&#8221; objective; it says nothing.</p><p>&#9;&#8226;&#9;Experience: the heart of the resume. More on bullets below.</p><p>&#9;&#8226;&#9;Projects: critical if you&#8217;re early-career or a student, and useful for anyone to show range. Real projects with links beat coursework.</p><p>&#9;&#8226;&#9;Skills: grouped &#8212; Languages, Frameworks, Tools/Cloud, Databases.</p><p>&#9;&#8226;&#9;Education: degree, institution, year. Drop high school once you&#8217;re in college.</p><p>&#9;&#8226;&#9;Achievements: this is where &#8220;open-source contributor&#8221; or &#8220;ICPC regionalist&#8221; goes. Do not list &#8220;watching movies, reading novels&#8221; under Interests. Nobody is interviewing you for that.</p><p>The bullet formula that gets you shortlisted</p><p>This is where resumes are won and lost. The format that works is the one Google&#8217;s own recruiting team popularized &#8212; often called the XYZ formula:</p><p>Accomplished [X], as measured by [Y], by doing [Z].</p><p>In plain terms: what was the impact, how big was it (numbers), and what did you actually do. Lead with the result, prove it with a metric, then explain the how.</p><p>Watch the difference:</p><p>&#9;&#8226;&#9;Weak: &#8220;Worked on the payments service and fixed performance issues.&#8221;</p><p>&#9;&#8226;&#9;Strong: &#8220;Cut checkout API latency 38% (320ms &#8594; 198ms) by adding Redis caching and eliminating N+1 queries, across ~4M monthly transactions.&#8221;</p><p>A few more, so you see the shape:</p><p>&#9;&#8226;&#9;&#8220;Reduced nightly batch failures from 12% to under 1% by rebuilding the retry pipeline with idempotent jobs and dead-letter queues.&#8221;</p><p>&#9;&#8226;&#9;&#8220;Shipped a self-serve onboarding flow that lifted activation 22% by removing three steps and adding inline validation.&#8221;</p><p>Three rules that make bullets land: start with a strong action verb (Built, Cut, Shipped, Reduced, Led &#8212; never &#8220;Responsible for&#8221;), quantify everything you honestly can (latency, %, users, dollars, scale), and put your single most impressive bullet first, as the first line of your first role. Recruiters frequently don&#8217;t read past the top few lines, so don&#8217;t bury your best work at the bottom.</p><p>If you have no formal metrics yet &#8212; fine. Quantify scope honestly: number of users, requests handled, dataset size, team size, time saved. Scale is a metric too.</p><p>Tailor every single application</p><p>A generic resume blasted to 50 companies is why people get 50 silences. Customize per role: reorder bullets so the most relevant ones rise, mirror the JD&#8217;s language, and reflect the team&#8217;s actual stack. It takes ten minutes and it&#8217;s the difference between &#8220;found in search&#8221; and &#8220;invisible.&#8221;</p><p>The actual cheat code: referrals</p><p>Here&#8217;s the thing nobody wants to hear because it&#8217;s not about your resume at all. Referrals are the single highest-leverage move in FAANG hiring. Referred candidates advance and get hired at dramatically higher rates &#8212; these companies&#8217; own data consistently shows referred applicants are several times more likely to land an interview, and some skip the initial screen entirely. A referral pulls your resume out of the search-result haystack and puts it directly in a recruiter&#8217;s hands.</p><p>You don&#8217;t need to &#8220;know someone.&#8221; Build a small habit: engage genuinely with engineers at target companies, share your work publicly, and when you&#8217;ve built even a little rapport, ask politely if they&#8217;d be open to referring you. This is exactly where a real online presence pays off &#8212; the more people see you do good work, the more doors quietly open. Apply early in the cycle, too; spots fill fast.</p><p>The mistakes that get you cut</p><p>&#9;&#8226;&#9;Duty lists: &#8220;Responsible for backend development.&#8221; Says nothing. Show impact.</p><p>&#9;&#8226;&#9;Zero numbers. If a stranger can&#8217;t tell whether your work mattered, it didn&#8217;t (to them).</p><p>&#9;&#8226;&#9;Typos and inconsistent formatting. Instant credibility killer for an engineer &#8212; you&#8217;re supposed to be precise.</p><p>&#9;&#8226;&#9;Too dense, too long. White space is your friend.</p><p>&#9;&#8226;&#9;Photo, age, hobbies, soft-skill word salad (&#8220;hardworking team player&#8221;).</p><p>&#9;&#8226;&#9;One generic resume for everything.</p><p>&#9;&#8226;&#9;Keyword stuffing to &#8220;beat the bot.&#8221; Recruiters smell it instantly.</p><p>Your 60-second pre-send checklist</p><p>&#9;&#8226;&#9;One page, single column, standard headings.</p><p>&#9;&#8226;&#9;Most impressive bullet is the very first line.</p><p>&#9;&#8226;&#9;Every bullet: action verb + result + metric.</p><p>&#9;&#8226;&#9;Keywords from the JD appear naturally.</p><p>&#9;&#8226;&#9;No photo, no objective fluff, no irrelevant hobbies.</p><p>&#9;&#8226;&#9;Links to GitHub/LinkedIn work and are professional.</p><p>&#9;&#8226;&#9;Zero typos &#8212; read it out loud once.</p><p>&#9;&#8226;&#9;Saved as a clean PDF, named FirstName_LastName_Resume.pdf.</p><p>&#9;&#8226;&#9;A referral lined up, if there&#8217;s any way to get one.</p><p>Your resume isn&#8217;t an autobiography. It&#8217;s a seven-second argument that you&#8217;ll make an impact at scale. Make every line earn its place &#8212; and go get the referral.</p>]]></content:encoded></item><item><title><![CDATA[Stop Grinding LeetCode. Start Learning Patterns.]]></title><description><![CDATA[If you&#8217;ve grinded LeetCode for weeks and still freeze on new problems, here&#8217;s why.]]></description><link>https://syedpeerasaheb.substack.com/p/stop-grinding-leetcode-start-learning</link><guid isPermaLink="false">https://syedpeerasaheb.substack.com/p/stop-grinding-leetcode-start-learning</guid><dc:creator><![CDATA[Syed Peera Saheb]]></dc:creator><pubDate>Tue, 16 Jun 2026 01:29:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YQs1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44344eb1-7523-4019-8550-7b8913ac9ce1_1536x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Why solving 500 random problems doesn&#8217;t make you better &#8212; and the pattern-first system that actually gets you interview-ready.</p><p>You don&#8217;t have a LeetCode problem. You have a method problem.</p><p>Here&#8217;s how it usually goes. You open LeetCode, 3,000+ problems stare back at you, and you start grinding. Easy ones feel good. You solve 20, then 50, then 100. Then you open a fresh problem you&#8217;ve never seen, and your mind goes completely blank. Again.</p><p>I know, because that was me &#8212; a hundred-plus problems deep and still freezing on anything I hadn&#8217;t seen before.</p><p>The issue isn&#8217;t your effort. It&#8217;s that solving random problems trains you to memorize specific solutions, not to recognize how to attack something new. And an interview will never hand you a problem you&#8217;ve already memorized. That&#8217;s the entire point of it.</p><p>So here&#8217;s what actually works: pattern-based learning.</p><p>Interviews don&#8217;t test problems. They test patterns.</p><p>The thousands of problems on LeetCode are really a small set of patterns wearing different costumes. Once you can spot the pattern underneath a problem, the solution mostly writes itself. You stop solving problems one at a time and start solving whole categories at once.</p><p>Roughly 15 patterns cover the overwhelming majority of what you&#8217;ll ever see. Learn those, and a &#8220;new&#8221; problem stops being scary. It becomes &#8220;oh, this is just a sliding window with a twist.&#8221;</p><p>The patterns worth knowing</p><p>You don&#8217;t need all of these on day one, but this is the map. For each one, the real skill is catching the signal in the problem statement:</p><p>&#9;&#8226;&#9;Two Pointers &#8212; a sorted array, or pairs/triplets, or scanning from both ends inward.</p><p>&#9;&#8226;&#9;Sliding Window &#8212; a contiguous subarray or substring, usually &#8220;longest / shortest / max / min&#8221; with a condition.</p><p>&#9;&#8226;&#9;Fast &amp; Slow Pointers &#8212; linked lists, cycle detection, finding the middle in one pass.</p><p>&#9;&#8226;&#9;Binary Search &#8212; sorted input, or any &#8220;minimize/maximize&#8221; with a yes/no condition that flips once (searching on the answer).</p><p>&#9;&#8226;&#9;BFS &#8212; shortest path in an unweighted graph, or level-by-level traversal.</p><p>&#9;&#8226;&#9;DFS &amp; Backtracking &#8212; explore every path; generate all subsets, permutations, or combinations.</p><p>&#9;&#8226;&#9;Dynamic Programming &#8212; overlapping subproblems and a choice at each step: &#8220;count the ways,&#8221; &#8220;min/max cost.&#8221;</p><p>&#9;&#8226;&#9;Heap / Top-K &#8212; &#8220;k largest,&#8221; &#8220;k smallest,&#8221; &#8220;k most frequent,&#8221; or merging sorted streams.</p><p>&#9;&#8226;&#9;Merge Intervals &#8212; overlapping intervals, scheduling, merging or inserting ranges.</p><p>&#9;&#8226;&#9;Monotonic Stack &#8212; &#8220;next greater / smaller element,&#8221; or histogram-style problems.</p><p>&#9;&#8226;&#9;Prefix Sum &#8212; repeated range-sum queries or subarray-sum questions.</p><p>&#9;&#8226;&#9;Union-Find (DSU) &#8212; connectivity and grouping: &#8220;how many connected components.&#8221;</p><p>&#9;&#8226;&#9;Topological Sort &#8212; ordering with dependencies: &#8220;course schedule,&#8221; build order.</p><p>&#9;&#8226;&#9;Trie &#8212; prefix lookups, autocomplete, word dictionaries.</p><p>Save this list. You&#8217;ll come back to it.</p><p>How to actually learn this way</p><p>The method is simple, and it&#8217;s the opposite of random grinding.</p><p>Pick one pattern. Just one. Start with Two Pointers or Sliding Window &#8212; they&#8217;re common, intuitive, and build fast confidence.</p><p>Learn the mental model before you touch a single problem. Understand why the pattern works and what its template looks like. Watch one good explanation (NeetCode is excellent) or read one breakdown. Five minutes of &#8220;why&#8221; saves you hours of flailing.</p><p>Then solve 6&#8211;8 problems of that same pattern, back to back. This is the part that matters. Solving eight sliding-window problems in a row burns the pattern into your head far better than eight random unrelated ones. By problem five, you&#8217;ll start seeing it before you finish reading the prompt.</p><p>Label every problem you solve. Keep a simple sheet: problem name, pattern, and the one trick that unlocked it. That becomes your personal revision doc, and it&#8217;s gold the week before an interview.</p><p>Revisit on a schedule. You will forget &#8212; that&#8217;s normal. Redo problems after a few days, then again a couple of weeks later. Spaced repetition is the difference between &#8220;I solved this once&#8221; and &#8220;I can solve this cold.&#8221;</p><p>And don&#8217;t build the path yourself. NeetCode 150, the Blind 75, and Striver&#8217;s SDE Sheet are already grouped by pattern so you cover what matters without drowning. Pick one and work through it in order.</p><p>The part most people get wrong</p><blockquote><p>Volume is not the goal. I&#8217;d take someone who deeply understands 150 problems across every pattern over someone who&#8217;s &#8220;done&#8221; 600 by memorizing editorials, every single time. Interviewers can tell the difference in about ninety seconds.</p></blockquote><p>Consistency beats intensity, too. An hour a day for three months takes you further than a 12-hour weekend binge you burn out on by Tuesday. Show up small, show up often.</p><p>If you&#8217;re starting today, here&#8217;s the move: pick Two Pointers, learn the template, and solve six problems with it before you close your laptop. That&#8217;s the whole first step. Tomorrow, do the next pattern.</p><p>You&#8217;re not behind. You were just using the wrong map.</p><p>If this was useful, subscribe.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YQs1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44344eb1-7523-4019-8550-7b8913ac9ce1_1536x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YQs1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44344eb1-7523-4019-8550-7b8913ac9ce1_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YQs1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44344eb1-7523-4019-8550-7b8913ac9ce1_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YQs1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44344eb1-7523-4019-8550-7b8913ac9ce1_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YQs1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44344eb1-7523-4019-8550-7b8913ac9ce1_1536x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YQs1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44344eb1-7523-4019-8550-7b8913ac9ce1_1536x1024.jpeg" width="1536" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/44344eb1-7523-4019-8550-7b8913ac9ce1_1536x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1024,&quot;width&quot;:1536,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:0,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;&quot;,&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="" srcset="https://substackcdn.com/image/fetch/$s_!YQs1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44344eb1-7523-4019-8550-7b8913ac9ce1_1536x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YQs1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44344eb1-7523-4019-8550-7b8913ac9ce1_1536x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YQs1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44344eb1-7523-4019-8550-7b8913ac9ce1_1536x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YQs1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44344eb1-7523-4019-8550-7b8913ac9ce1_1536x1024.jpeg 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"><svg role="img" 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"><g><title></title><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"><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"><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>]]></content:encoded></item></channel></rss>