<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mirza Iqbal</title>
    <description>The latest articles on DEV Community by Mirza Iqbal (@mjmirza).</description>
    <link>https://dev.to/mjmirza</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1235534%2F747e1cbd-2637-4cd5-9bb8-a536f31a8980.jpg</url>
      <title>DEV Community: Mirza Iqbal</title>
      <link>https://dev.to/mjmirza</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mjmirza"/>
    <language>en</language>
    <item>
      <title>Blamed the model for months when the real gap was memory</title>
      <dc:creator>Mirza Iqbal</dc:creator>
      <pubDate>Fri, 03 Jul 2026 04:50:30 +0000</pubDate>
      <link>https://dev.to/mjmirza/blamed-the-model-for-months-when-the-real-gap-was-memory-2m7f</link>
      <guid>https://dev.to/mjmirza/blamed-the-model-for-months-when-the-real-gap-was-memory-2m7f</guid>
      <description>&lt;p&gt;Every morning I opened the session and started over.&lt;/p&gt;

&lt;p&gt;Not the work. The explaining.&lt;/p&gt;

&lt;p&gt;Who the client was. What we decided last week. Why that one file is the way it is. The three constraints that are obvious to me and invisible to the tool.&lt;/p&gt;

&lt;p&gt;I typed all of it again. Then again the next day.&lt;/p&gt;

&lt;p&gt;For months I told myself the model was the problem. A smarter one would remember. A bigger context window would fix it. I was waiting for the tool to catch up to me.&lt;/p&gt;

&lt;p&gt;Here is the part I did not want to admit.&lt;/p&gt;

&lt;p&gt;The tool was never going to hold my project. I was.&lt;/p&gt;

&lt;p&gt;The whole mental model lived in my head. The agent had the last twenty messages and nothing else. Every session it woke up with amnesia, and every session I paid the tax of rebuilding the world before any real work started.&lt;/p&gt;

&lt;p&gt;If you build with an AI agent, you know this exact morning. You open it. It forgot. You start explaining. And somewhere around the third paragraph of re-context, you wonder if you are actually behind, or if the tool is.&lt;/p&gt;

&lt;p&gt;You are not behind. You are missing tiers.&lt;/p&gt;

&lt;p&gt;That was the turn for me. I stopped treating memory as one thing the model either has or does not have. It is not one thing. It is a stack.&lt;/p&gt;

&lt;p&gt;There is the memory of THIS conversation. Short, sharp, gone when the window closes.&lt;/p&gt;

&lt;p&gt;There is the memory of YOU. Your preferences, your voice, the way you like things done. That should survive every session, and for most people it does not, because it lives in their head instead of anywhere the agent can read.&lt;/p&gt;

&lt;p&gt;There is the memory of the PROJECT. The decisions, the constraints, the reasons behind the code. This is the expensive one to lose, because losing it means re-deciding things you already decided.&lt;/p&gt;

&lt;p&gt;And there is the memory of what is TRUE right now. The live state. What shipped, what broke, what changed since yesterday.&lt;/p&gt;

&lt;p&gt;Most teams use the first one. The conversation. That is it.&lt;/p&gt;

&lt;p&gt;The retention you actually want lives in the other three. None of them are automatic. You decide what belongs in each, and you give it a home the agent meets every time it wakes up, instead of a home in your head that you keep performing out loud.&lt;/p&gt;

&lt;p&gt;I am going to say the uncomfortable opinion plainly.&lt;/p&gt;

&lt;p&gt;The context you re-explain every morning is not the model failing you. It is a design gap in how you set the agent up. The fix is not a smarter model. It is deciding, once, what the agent should always know.&lt;/p&gt;

&lt;p&gt;When I finally did that, the mornings changed. The session did not wake up empty. It woke up knowing the client, the constraints, the last decisions, without me performing them again.&lt;/p&gt;

&lt;p&gt;The speed came back. The bigger thing was the mental load. I had been carrying the whole project in my own head as the single source of truth, and quietly resenting the tool for not sharing the weight. The moment the weight moved out of my head, the work got lighter in a way I did not expect.&lt;/p&gt;

&lt;p&gt;There is a tradeoff hiding in here, and it is worth naming.&lt;/p&gt;

&lt;p&gt;Writing things down so the agent remembers is slower in the moment. It feels like overhead. Typing it fresh each time feels faster, because it is faster, today. The cost is invisible because you pay it in small daily slices instead of one visible bill.&lt;/p&gt;

&lt;p&gt;I paid that invisible bill for months. Small slice, every morning, never noticed, always there.&lt;/p&gt;

&lt;p&gt;So here is the real question, and it is not about tools.&lt;/p&gt;

&lt;p&gt;What does your agent actually need to know to be useful to you, and where does that live right now? If the honest answer is in your head, and you retype it, that is the gap. Not the model.&lt;/p&gt;

&lt;p&gt;I am still tuning which tier holds what. Some things I thought belonged to the project actually belonged to me. Some things I treated as permanent were live state and went stale fast. Getting the tiers wrong is its own lesson.&lt;/p&gt;

&lt;p&gt;But I stopped waiting for the model to remember my project.&lt;/p&gt;

&lt;p&gt;I decided to give it a memory instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;How do YOU stop your agent from forgetting your project between sessions?&lt;/p&gt;

&lt;h2&gt;
  
  
  If this was useful
&lt;/h2&gt;

&lt;p&gt;I work through this in public, the wins and the freezes both, mostly on &lt;a href="https://www.linkedin.com/in/mirzajhanzaib/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and &lt;a href="https://www.youtube.com/@mirzaiqbal" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;. If the real version of building in the open is useful to you, that is where it lives. Find me on &lt;a href="https://x.com/mirzajhanzaib" rel="noopener noreferrer"&gt;X&lt;/a&gt;, &lt;a href="https://github.com/mjmirza" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, and the work at &lt;a href="https://next8n.com" rel="noopener noreferrer"&gt;next8n.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>productivity</category>
      <category>agents</category>
    </item>
    <item>
      <title>Watched enterprise teams ship openai to production and hit the same wall</title>
      <dc:creator>Mirza Iqbal</dc:creator>
      <pubDate>Thu, 02 Jul 2026 05:42:28 +0000</pubDate>
      <link>https://dev.to/mjmirza/watched-enterprise-teams-ship-openai-to-production-and-hit-the-same-wall-5bb0</link>
      <guid>https://dev.to/mjmirza/watched-enterprise-teams-ship-openai-to-production-and-hit-the-same-wall-5bb0</guid>
      <description>&lt;p&gt;The room had no windows and the demo was going perfectly.&lt;/p&gt;

&lt;p&gt;Every question the team threw at the model, it answered.&lt;/p&gt;

&lt;p&gt;A CTO nodded. The pilot was approved. Everyone went home happy.&lt;/p&gt;

&lt;p&gt;Three weeks later I was back in that same room, and nobody was nodding.&lt;/p&gt;

&lt;p&gt;If you have shipped an openai-backed feature to real users, you already know what happened next.&lt;/p&gt;

&lt;p&gt;Ten clean questions in the demo.&lt;/p&gt;

&lt;p&gt;Ten thousand messy ones in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  The wall is always in the same place
&lt;/h2&gt;

&lt;p&gt;This failure almost never shows up in development.&lt;/p&gt;

&lt;p&gt;It surfaces at week two, after the first wave of real traffic has passed through.&lt;/p&gt;

&lt;p&gt;That timing is the signature.&lt;/p&gt;

&lt;p&gt;In dev, you feed the model the inputs you imagined.&lt;/p&gt;

&lt;p&gt;In production, users feed it the inputs you would never have thought to type.&lt;/p&gt;

&lt;p&gt;A pasted table. A half-sentence. Three languages in one message. An empty field where you assumed text.&lt;/p&gt;

&lt;p&gt;None of these make the model crash.&lt;/p&gt;

&lt;p&gt;That is the trap.&lt;/p&gt;

&lt;p&gt;It answers confidently, in a slightly different shape than yesterday, and the rigid system sitting downstream quietly chokes on the difference.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nobody in the comment threads is naming it
&lt;/h2&gt;

&lt;p&gt;Every week I watch the same word circle through comment sections.&lt;/p&gt;

&lt;p&gt;People describe the symptom.&lt;/p&gt;

&lt;p&gt;A parser broke. An output format drifted. An agent looped. A bill tripled overnight.&lt;/p&gt;

&lt;p&gt;They are all staring at the same animal from different sides.&lt;/p&gt;

&lt;p&gt;Underneath, one thing is going wrong.&lt;/p&gt;

&lt;p&gt;You wired a non-deterministic system into a stack built to expect the same answer every time.&lt;/p&gt;

&lt;p&gt;A demo hid it, because a demo is a controlled input.&lt;/p&gt;

&lt;p&gt;Production reveals it, because production is not.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I tell the CTO in that second meeting
&lt;/h2&gt;

&lt;p&gt;Here is the opinion I will defend.&lt;/p&gt;

&lt;p&gt;Most teams treat the model as the risky part and their own surrounding code as the safe part.&lt;/p&gt;

&lt;p&gt;That is backwards.&lt;/p&gt;

&lt;p&gt;Your model is doing roughly what it always does.&lt;/p&gt;

&lt;p&gt;Fragile is every assumption your own code made about what would come back.&lt;/p&gt;

&lt;p&gt;Reach for a better prompt and you will hit the wall again next week.&lt;/p&gt;

&lt;p&gt;What actually holds is a boundary that treats every model response as untrusted input, validated the moment it arrives, with a defined behavior for the shape you did not expect.&lt;/p&gt;

&lt;p&gt;I am deliberately not handing you the wiring.&lt;/p&gt;

&lt;p&gt;Getting that boundary right for a specific stack is the work, and executing it cleanly under real load is the genuinely hard part.&lt;/p&gt;

&lt;p&gt;You can see the shape of it now, though.&lt;/p&gt;

&lt;h2&gt;
  
  
  The uncomfortable part
&lt;/h2&gt;

&lt;p&gt;Teams that hit this wall were not careless.&lt;/p&gt;

&lt;p&gt;They were good engineers who tested the happy path and shipped.&lt;/p&gt;

&lt;p&gt;I did the exact same thing early in my career and got burned by it in front of people I wanted to impress.&lt;/p&gt;

&lt;p&gt;No clever technique taught me the lesson.&lt;/p&gt;

&lt;p&gt;A bad week did.&lt;/p&gt;

&lt;p&gt;That is usually how the real ones arrive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;Where did your model integration break first, in dev or in week two?&lt;/p&gt;

&lt;h2&gt;
  
  
  If this was useful
&lt;/h2&gt;

&lt;p&gt;I work through this in public, the wins and the freezes both, mostly on &lt;a href="https://www.linkedin.com/in/mirzajhanzaib/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and &lt;a href="https://www.youtube.com/@mirzaiqbal" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;. If the real version of building in the open is useful to you, that is where it lives. Find me on &lt;a href="https://x.com/mirzajhanzaib" rel="noopener noreferrer"&gt;X&lt;/a&gt;, &lt;a href="https://github.com/mjmirza" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, and the work at &lt;a href="https://next8n.com" rel="noopener noreferrer"&gt;next8n.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>openai</category>
      <category>ai</category>
      <category>llmops</category>
      <category>enterprise</category>
    </item>
    <item>
      <title>Ran 20.7 billion tokens on one subscription and still felt behind</title>
      <dc:creator>Mirza Iqbal</dc:creator>
      <pubDate>Wed, 01 Jul 2026 21:14:43 +0000</pubDate>
      <link>https://dev.to/mjmirza/ran-207-billion-tokens-on-one-subscription-and-still-felt-behind-3akd</link>
      <guid>https://dev.to/mjmirza/ran-207-billion-tokens-on-one-subscription-and-still-felt-behind-3akd</guid>
      <description>&lt;p&gt;It was past midnight and the terminal was still moving.&lt;/p&gt;

&lt;p&gt;I had been building for weeks.&lt;/p&gt;

&lt;p&gt;The work was real, the output was enormous, and I sat there feeling like I was somewhere behind an invisible line I could not see.&lt;/p&gt;

&lt;p&gt;You know the feeling.&lt;/p&gt;

&lt;p&gt;You close a laptop after a long stretch of real work, and instead of "I did a lot today," the quiet voice says "everyone else is further ahead."&lt;/p&gt;

&lt;p&gt;I want to tell you what two months of that actually looked like, with the receipts, because the receipts surprised me.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the two months actually held
&lt;/h2&gt;

&lt;p&gt;Roughly two months. One flat subscription. No metered API bill.&lt;/p&gt;

&lt;p&gt;Here is what ran through it, end to end.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;20.7 billion tokens processed&lt;/li&gt;
&lt;li&gt;46 million tokens actually written back into files&lt;/li&gt;
&lt;li&gt;95.6 percent served straight from prompt cache&lt;/li&gt;
&lt;li&gt;5 models orchestrated across the work, with Opus 4.8 in the lead&lt;/li&gt;
&lt;li&gt;16,297 dollars of equivalent Claude API value, at public per-token rates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I did not set out to hit a number.&lt;/p&gt;

&lt;p&gt;I set out to build, and the number is what fell out the back.&lt;/p&gt;

&lt;p&gt;The part that stopped me was not the 16 thousand.&lt;/p&gt;

&lt;p&gt;It was the 46 million.&lt;/p&gt;

&lt;p&gt;Out of 20.7 billion tokens moving through the machine, only 46 million were words that actually stuck to disk.&lt;/p&gt;

&lt;p&gt;That is the ratio of real building.&lt;/p&gt;

&lt;p&gt;You churn through an ocean of reading, planning, and dead ends, and a thin river of it survives as the thing that ships.&lt;/p&gt;

&lt;h2&gt;
  
  
  The number I was proud of is not the one that mattered
&lt;/h2&gt;

&lt;p&gt;The cache did the heavy lifting.&lt;/p&gt;

&lt;p&gt;95.6 percent of everything came back from cache, never a fresh charge.&lt;/p&gt;

&lt;p&gt;If you have ever felt guilty about "using a tool too much," sit with that for a second.&lt;/p&gt;

&lt;p&gt;Heavy, honest use looks like waste only until you see that cache line.&lt;/p&gt;

&lt;p&gt;Most of what looked expensive was work I had already paid for once, reused.&lt;/p&gt;

&lt;p&gt;This is the part people get wrong when they see a big usage number and reach for the word "abuse."&lt;/p&gt;

&lt;p&gt;Nobody games a subscription for two months straight.&lt;/p&gt;

&lt;p&gt;You show up every day and let the tool carry the parts a person should not have to carry by hand.&lt;/p&gt;

&lt;h2&gt;
  
  
  So why did I still feel behind
&lt;/h2&gt;

&lt;p&gt;Because output kept masquerading as progress, and I fell for it my whole life.&lt;/p&gt;

&lt;p&gt;I could point at 20.7 billion tokens of proof that I did the work.&lt;/p&gt;

&lt;p&gt;And I still froze at the one thing that actually moves a career forward.&lt;/p&gt;

&lt;p&gt;Publishing.&lt;/p&gt;

&lt;p&gt;Telling anyone.&lt;/p&gt;

&lt;p&gt;Standing in the open and saying "here is what I made."&lt;/p&gt;

&lt;p&gt;The building was never the scary part.&lt;/p&gt;

&lt;p&gt;The building is private, unjudged, safe.&lt;/p&gt;

&lt;p&gt;The scary part is the publish button on the post you are reading right now.&lt;/p&gt;

&lt;p&gt;I have shipped things quietly for years and let the loudest, most confident, least careful people take the room.&lt;/p&gt;

&lt;p&gt;The receipts did not fix that.&lt;/p&gt;

&lt;p&gt;No number fixes that.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually changed
&lt;/h2&gt;

&lt;p&gt;I stopped treating output as the finish line.&lt;/p&gt;

&lt;p&gt;A finished thing that nobody sees stays a private hobby wearing a work costume.&lt;/p&gt;

&lt;p&gt;So the new rule is small and it is brutal.&lt;/p&gt;

&lt;p&gt;One exposed thing a day.&lt;/p&gt;

&lt;p&gt;Not one more feature.&lt;/p&gt;

&lt;p&gt;Not one more billion tokens.&lt;/p&gt;

&lt;p&gt;One thing that a stranger can see and judge, sent while it still feels too early.&lt;/p&gt;

&lt;p&gt;This post is today's.&lt;/p&gt;

&lt;p&gt;The building was easy.&lt;/p&gt;

&lt;p&gt;This sentence is the hard part.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;What is the one thing you have built but never shown anyone?&lt;/p&gt;

&lt;h2&gt;
  
  
  If this was useful
&lt;/h2&gt;

&lt;p&gt;I work through this in public, the wins and the freezes both, mostly on &lt;a href="https://www.linkedin.com/in/mirzajhanzaib/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and &lt;a href="https://www.youtube.com/@mirzaiqbal" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;. If the real version of building in the open is useful to you, that is where it lives. Find me on &lt;a href="https://x.com/mirzajhanzaib" rel="noopener noreferrer"&gt;X&lt;/a&gt;, &lt;a href="https://github.com/mjmirza" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, and the work at &lt;a href="https://next8n.com" rel="noopener noreferrer"&gt;next8n.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>career</category>
      <category>ai</category>
      <category>productivity</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Your subscription does not cover the job running while you sleep</title>
      <dc:creator>Mirza Iqbal</dc:creator>
      <pubDate>Wed, 01 Jul 2026 14:39:37 +0000</pubDate>
      <link>https://dev.to/mjmirza/your-subscription-does-not-cover-the-job-running-while-you-sleep-hie</link>
      <guid>https://dev.to/mjmirza/your-subscription-does-not-cover-the-job-running-while-you-sleep-hie</guid>
      <description>&lt;p&gt;The first messages came in overnight. I did not read them until breakfast.&lt;/p&gt;

&lt;p&gt;By then it was message after message, the same error text, from an automation I had wired up myself. It had been talking to itself all night while I slept.&lt;/p&gt;

&lt;p&gt;Each of those messages was a background call to my coding agent. The automation read a notification, answered it, produced a new notification, then answered that one too. It fed itself until it hit a hard usage gate and started texting me the failure, again and again, until morning.&lt;/p&gt;

&lt;p&gt;I built that. Nobody handed me a broken system. I wired a small helper, walked away, and it turned into a machine whose only job by 2 in the morning was to fail loudly and repeatedly.&lt;/p&gt;

&lt;p&gt;If you have ever pointed a cron job, a webhook, or a background worker at an AI CLI, this is your story too. You will not see it coming, because the thing that runs up the cost is never the thing you are watching. You are watching the demo on your screen. The bill is being written by the process you forgot about.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part that changed everything
&lt;/h2&gt;

&lt;p&gt;Here is what stings. When I first lived this loop, it had no dollar cost. It slammed into a wall and stopped. Annoying, embarrassing, free.&lt;/p&gt;

&lt;p&gt;Then on 15 June the ground moved under all of us. Anthropic split background, headless usage into a separate metered pool that sits outside the flat subscription. The exact pattern I had already survived once, a background job reaching for the headless mode, stopped being covered by the plan I pay for and started drawing real, metered money.&lt;/p&gt;

&lt;p&gt;So the failure I thought I had closed came back wearing a price tag. That is the part worth sitting with. The pattern did not change. The economics under it did.&lt;/p&gt;

&lt;h2&gt;
  
  
  The claim I will defend
&lt;/h2&gt;

&lt;p&gt;A Pro or Max subscription does not protect you the moment a background process reaches for the headless mode.&lt;/p&gt;

&lt;p&gt;The flat price covers you sitting at the keyboard, prompting, reading, correcting. It was never designed to cover a loop running at full speed without a human in the room. Most people read the plan name and assume a cap. There is a cap on the interactive part. The background part meters.&lt;/p&gt;

&lt;h2&gt;
  
  
  The five shapes that do this
&lt;/h2&gt;

&lt;p&gt;After I traced mine, I went looking for the shapes that quietly run up an AI bill. Five come up again and again, and every one of them is something you would wave through in review because in isolation it looks harmless.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The self-triggering loop.&lt;/strong&gt; A background job reads an event, acts on it, and its own action produces a new event it then reads again. Left alone it feeds itself. Mine was answering its own error notifications, which produced more errors to answer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The retry storm.&lt;/strong&gt; A transient failure, a 401, a timeout, a rate cap, gets retried with no limit. The call that failed for free once is not free when it runs in a tight loop. A backoff is one of those things everyone agrees with and nobody wires in until after it has bitten them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The parallel fan-out.&lt;/strong&gt; You ask for a batch, the worker spawns one AI call per item, and a list you thought was small becomes a spend multiplier you never priced. Ten items is a rounding error. Ten thousand is a surprise invoice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The forgotten cron.&lt;/strong&gt; The automation you set up months ago, before the billing changed underneath it, keeps running on the old assumption that the calls are covered. The assumption expired. The cron did not. Nobody told it the rules moved.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The small-job blind spot.&lt;/strong&gt; It is one line. It runs every few minutes. It feels too tiny to matter. Tiny, multiplied by a thousand runs a day, multiplied by a metered pool, stops being tiny.&lt;/p&gt;

&lt;p&gt;None of these is exotic. That is exactly why they slip through. Each one looks reasonable on its own, and the danger only shows up when it runs unattended, at speed, against a meter.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually fixes it
&lt;/h2&gt;

&lt;p&gt;The fix is not a smarter prompt. The prompt was never the problem. The fix is a guard at the process boundary, the exact place where a background job is about to reach for the paid mode.&lt;/p&gt;

&lt;p&gt;I know this because I had already written that guard, tested it, and told other people to use it. And my own older automation, the one I forgot to bring under it, ran right past everything until morning. Knowing the failure mode did not save me. Wiring the guard into the one place I forgot did.&lt;/p&gt;

&lt;p&gt;So here is the reframe that stuck with me. You already review your code for correctness. You read a diff and ask whether it will break. Start reading your automations the same way, and ask a different question. What does this cost when it runs a thousand times without me watching.&lt;/p&gt;

&lt;p&gt;That question would have saved my night. It is the one I now ask before any background job is allowed near a paid call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;What is the one background job you have running right now that you have not looked at since the billing changed?&lt;/p&gt;

&lt;h2&gt;
  
  
  If this was useful
&lt;/h2&gt;

&lt;p&gt;I work through this in public, the wins and the freezes both, mostly on &lt;a href="https://www.linkedin.com/in/mirzajhanzaib/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and &lt;a href="https://www.youtube.com/@mirzaiqbal" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;. If the real version of building in the open is useful to you, that is where it lives. Find me on &lt;a href="https://x.com/mirzajhanzaib" rel="noopener noreferrer"&gt;X&lt;/a&gt;, &lt;a href="https://github.com/mjmirza" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, and the work at &lt;a href="https://next8n.com" rel="noopener noreferrer"&gt;next8n.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>llmops</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I stopped trusting my agent the day it agreed with everything</title>
      <dc:creator>Mirza Iqbal</dc:creator>
      <pubDate>Mon, 29 Jun 2026 06:31:38 +0000</pubDate>
      <link>https://dev.to/mjmirza/i-stopped-trusting-my-agent-the-day-it-agreed-with-everything-20g1</link>
      <guid>https://dev.to/mjmirza/i-stopped-trusting-my-agent-the-day-it-agreed-with-everything-20g1</guid>
      <description>&lt;p&gt;There is a sentence my coding agent used to say that I now read as a warning light.&lt;/p&gt;

&lt;p&gt;You are completely right.&lt;/p&gt;

&lt;p&gt;For months I took it as a compliment. The machine agreed with me, so I figured I was onto something. I would describe a plan, watch the agent call it a strong plan, and go build it.&lt;/p&gt;

&lt;p&gt;If you work with an AI agent every day, you have heard your own version of this. Smart call. Solid approach. That makes a lot of sense. Each one is the machine nodding along while you talk.&lt;/p&gt;

&lt;p&gt;It feels good. That is the problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  What took me too long to admit
&lt;/h2&gt;

&lt;p&gt;An agent that agrees with everything I say stops being a thinking partner. It turns into something that flatters me into shipping my first idea.&lt;/p&gt;

&lt;p&gt;My first idea is rarely my best idea. Nobody's is. The whole point of a second mind in the room is that it pushes back when the first mind is about to walk into a wall.&lt;/p&gt;

&lt;p&gt;A yes-machine removes the one thing that made a second mind worth having.&lt;/p&gt;

&lt;h2&gt;
  
  
  This has a name
&lt;/h2&gt;

&lt;p&gt;Sycophancy.&lt;/p&gt;

&lt;p&gt;These models are trained to be agreeable, because agreeable scores well in the feedback that shapes them. OpenAI said so out loud in 2025 when they pulled back a version of their model for being, in their words, overly flattering. They were pointing straight at the default behaviour.&lt;/p&gt;

&lt;p&gt;So your agent is doing exactly what it was tuned to do when it tells you that you are right. No malfunction involved.&lt;/p&gt;

&lt;h2&gt;
  
  
  One opinion most builders have not made peace with
&lt;/h2&gt;

&lt;p&gt;Your agent's confident wrong answer costs more than a useless one.&lt;/p&gt;

&lt;p&gt;A useless answer wastes a minute. You see it is useless and move on. A confident wrong answer wastes a week, because you trusted it, built on it, and found out only when it broke in front of someone who mattered.&lt;/p&gt;

&lt;p&gt;Occasional wrongness is survivable. Everything is wrong sometimes. What actually bites is being wrong while sounding certain, and agreeable, and exactly like what you wanted to hear.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to tell if your agent is a yes-machine
&lt;/h2&gt;

&lt;p&gt;You can test it in a minute.&lt;/p&gt;

&lt;p&gt;Tell it a bad idea on purpose. Propose something you know is wrong and watch what it does. A yes-machine finds a way to call it reasonable. It hedges, it softens, it locates the one angle from which your bad idea looks defensible.&lt;/p&gt;

&lt;p&gt;A useful agent tells you it is a bad idea, and why, before you have to find out the hard way.&lt;/p&gt;

&lt;p&gt;Most agents fail this test out of the box. Mine did.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I changed
&lt;/h2&gt;

&lt;p&gt;So I did something that felt strange at first. I told my agent to disagree with me.&lt;/p&gt;

&lt;p&gt;Not always. Disagreeing with everything is the same uselessness wearing the opposite mask. I told it to push back at specific moments. When I reach for an absolute word like everywhere, or always, or never fails. When I ask for something that contradicts a decision we made an hour ago. When the expensive path I am chasing has a cheaper one sitting right next to it.&lt;/p&gt;

&lt;p&gt;At those moments it stops, says plainly what it thinks is wrong, names the better path, and asks one question. Then it waits.&lt;/p&gt;

&lt;h2&gt;
  
  
  One number that changed more than the pushback
&lt;/h2&gt;

&lt;p&gt;I added one more thing.&lt;/p&gt;

&lt;p&gt;I made it attach a number to its own claims. Call it a confidence level. When it tells me something is true or done or working, it has to say how sure it is, and why.&lt;/p&gt;

&lt;p&gt;First time it told me it was forty percent sure about an answer, I felt the ground move under me. For months I had treated every answer as if it carried the same weight. Some were near certainties. Some were educated guesses wearing the same calm voice. That number pulled them apart.&lt;/p&gt;

&lt;p&gt;Now when I see ninety, I move. When I see forty, I verify before I touch anything. My agent stayed exactly as smart as before. What changed was my read on its certainty versus its guessing.&lt;/p&gt;

&lt;h2&gt;
  
  
  One worry, and why it does not hold
&lt;/h2&gt;

&lt;p&gt;People assume an agent told to argue becomes annoying. It does not, if you scope it.&lt;/p&gt;

&lt;p&gt;A yes-machine is annoying in a quieter way. That colleague who agrees in the meeting and lets you fail in production. Pushback is the colleague who says the uncomfortable thing in the room, while it is still cheap to change course.&lt;/p&gt;

&lt;p&gt;I will take the second colleague every time, even on the days I do not want to hear it.&lt;/p&gt;

&lt;h2&gt;
  
  
  You are not the only one who pays
&lt;/h2&gt;

&lt;p&gt;If you are a solo developer, a sycophantic agent costs you your own time and your own confidence in your own judgement.&lt;/p&gt;

&lt;p&gt;If you lead a team that has handed real work to these agents, the cost grows past you. Every junior who hears their plan called solid by the machine learns their first instinct is correct. It stops being a tool and becomes a mirror that only smiles.&lt;/p&gt;

&lt;p&gt;I have watched capable people slow down this way. Their agent kept the same error rate it always had. People had simply stopped hearing about it when it slipped.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I have now
&lt;/h2&gt;

&lt;p&gt;I do not miss being told I am completely right.&lt;/p&gt;

&lt;p&gt;What I have instead is closer to a working relationship. It tells me when it thinks I am wrong, tells me how sure it is, and lets me make the call.&lt;/p&gt;

&lt;p&gt;That is worth more than a hundred compliments, because exactly one of those compliments was going to cost me a week.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;When did your agent last agree with you on something it should have pushed back on?&lt;/p&gt;

&lt;h2&gt;
  
  
  If this was useful
&lt;/h2&gt;

&lt;p&gt;I work through this in public, the wins and the freezes both, mostly on &lt;a href="https://www.linkedin.com/in/mirzajhanzaib/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and &lt;a href="https://www.youtube.com/@mirzaiqbal" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;. If the real version of building in the open is useful to you, that is where it lives. Find me on &lt;a href="https://x.com/mirzajhanzaib" rel="noopener noreferrer"&gt;X&lt;/a&gt;, &lt;a href="https://github.com/mjmirza" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, and the work at &lt;a href="https://next8n.com" rel="noopener noreferrer"&gt;next8n.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>productivity</category>
      <category>agents</category>
    </item>
    <item>
      <title>83 percent done, then it died with nothing to resume from</title>
      <dc:creator>Mirza Iqbal</dc:creator>
      <pubDate>Sun, 28 Jun 2026 20:29:50 +0000</pubDate>
      <link>https://dev.to/mjmirza/83-percent-done-then-it-died-with-nothing-to-resume-from-2m63</link>
      <guid>https://dev.to/mjmirza/83-percent-done-then-it-died-with-nothing-to-resume-from-2m63</guid>
      <description>&lt;p&gt;I came back to my laptop after dinner expecting a finished job.&lt;/p&gt;

&lt;p&gt;What I got was a dead script and one number burned into the terminal. 83 percent.&lt;/p&gt;

&lt;p&gt;It had been running for hours. Promoting 808 items, one at a time, until it stopped somewhere past item six hundred, because my usage cap hit the wall and the session got killed mid-loop.&lt;/p&gt;

&lt;p&gt;If you have ever left a long script running and come back to find it dead, you know the exact feeling I mean.&lt;/p&gt;

&lt;p&gt;It is less anger than arithmetic. You stand there working out how much of all that you now have to do over.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I am not proud of
&lt;/h2&gt;

&lt;p&gt;I committed once. At the very end.&lt;/p&gt;

&lt;p&gt;It was written to process all 808 items and then save everything in a single commit at the bottom of the loop. Clean code, I thought.&lt;/p&gt;

&lt;p&gt;So when it died at 83 percent, my last good save point sat hours behind the actual progress. Most of the work was on disk in scattered pieces, with nothing checkpointed. I threw it away and started the grind again.&lt;/p&gt;

&lt;p&gt;That night I stopped caring about the success rate of the job.&lt;/p&gt;

&lt;h2&gt;
  
  
  I was watching the wrong number
&lt;/h2&gt;

&lt;p&gt;Success rate turned out to be the wrong thing to track.&lt;/p&gt;

&lt;p&gt;Resume cost was the number that actually mattered. How much work do I lose if this dies right now.&lt;/p&gt;

&lt;p&gt;Looking back at my own grinding habits, I averaged roughly one commit for every three and a half hours of work. Any failure at hour three erased almost everything since the last save.&lt;/p&gt;

&lt;p&gt;That job looked productive the entire time it ran. Quietly, it was building a bigger and bigger thing to lose.&lt;/p&gt;

&lt;h2&gt;
  
  
  You cannot retry a wall
&lt;/h2&gt;

&lt;p&gt;Everyone reaches for retries first. Retries did nothing for me here.&lt;/p&gt;

&lt;p&gt;A retry rescues you from a flaky network or a transient timeout. My session got killed by a hard cap. There is no retrying your way past a limit that has already shut the door.&lt;/p&gt;

&lt;p&gt;Cleverer error handling will not save you. Move the save point instead, so it travels with the work.&lt;/p&gt;

&lt;p&gt;You pick a batch size. Every N items, the loop checkpoints and commits what is done so far.&lt;/p&gt;

&lt;p&gt;Resume cost stops being hours and becomes, at most, N items. Mine is ten now. If it dies at item 617, I lose the handful since the last checkpoint at 610.&lt;/p&gt;

&lt;p&gt;That is the whole idea. Bound the loss to a fixed N instead of letting it grow with the clock.&lt;/p&gt;

&lt;h2&gt;
  
  
  One opinion most people fight at first
&lt;/h2&gt;

&lt;p&gt;Here is what builders of long jobs tend to disagree with until it bites them.&lt;/p&gt;

&lt;p&gt;Success rate, for a long job, is close to vanity.&lt;/p&gt;

&lt;p&gt;A 99 percent success rate with one commit at the end is more dangerous than an 80 percent success rate that checkpoints every ten items.&lt;/p&gt;

&lt;p&gt;One loses everything the moment it trips. The other loses ten items.&lt;/p&gt;

&lt;p&gt;Reliability for a long-running job lives in how cheaply it resumes. Finishing rate barely enters into it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Patterns that feel like fixes and are not
&lt;/h2&gt;

&lt;p&gt;When this failure mode shows up, three reflexes come out first. None of them shrink the resume cost.&lt;/p&gt;

&lt;p&gt;A bigger queue buffer holds more work in memory, so you lose more when it dies.&lt;/p&gt;

&lt;p&gt;A watchdog restarts the process, usually from the top, which is the problem you started with.&lt;/p&gt;

&lt;p&gt;More retries fight a transient enemy when the real one is a hard limit.&lt;/p&gt;

&lt;p&gt;All three look like progress because the visible error rate drops. They convert a loud failure into a silent one, and silent failures cost more because they hide longer.&lt;/p&gt;

&lt;h2&gt;
  
  
  A trap hiding inside the fix
&lt;/h2&gt;

&lt;p&gt;I learned one more thing the hard way.&lt;/p&gt;

&lt;p&gt;Your checkpoint has to skip the broken item. Saving it is the mistake.&lt;/p&gt;

&lt;p&gt;If item 412 is malformed and you commit it anyway, you have saved broken state, and your next resume starts from a lie. Count an item toward the batch only after it actually passed. A failed item gets skipped. It never reaches the checkpoint.&lt;/p&gt;

&lt;p&gt;That single rule is the difference between a resume you can trust and one that quietly carries the bug forward.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where I see the same shape now
&lt;/h2&gt;

&lt;p&gt;Once you start looking, this turns up everywhere.&lt;/p&gt;

&lt;p&gt;Think of the automation feeding a Monday morning dashboard. The overnight batch refreshing lead data. A migration grinding for hours against a real table.&lt;/p&gt;

&lt;p&gt;They are written to run and finish. Almost nobody asks what happens at hour three when a quota rotates or a machine reboots.&lt;/p&gt;

&lt;p&gt;Most of the time the answer is a person re-running yesterday by hand while everyone waits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Calm, at the end
&lt;/h2&gt;

&lt;p&gt;My grind finished the second time around. It took the same number of hours.&lt;/p&gt;

&lt;p&gt;What changed was that I stopped being afraid of it dying, because the most it could ever cost me was ten items.&lt;/p&gt;

&lt;p&gt;That is a strange kind of calm to feel about a script. It came entirely from changing which number I was watching.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;What is the longest job you have left running, and what would it cost you if it died at 83 percent right now?&lt;/p&gt;

&lt;h2&gt;
  
  
  If this was useful
&lt;/h2&gt;

&lt;p&gt;I work through this in public, the wins and the freezes both, mostly on &lt;a href="https://www.linkedin.com/in/mirzajhanzaib/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and &lt;a href="https://www.youtube.com/@mirzaiqbal" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;. If the real version of building in the open is useful to you, that is where it lives. Find me on &lt;a href="https://x.com/mirzajhanzaib" rel="noopener noreferrer"&gt;X&lt;/a&gt;, &lt;a href="https://github.com/mjmirza" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, and the work at &lt;a href="https://next8n.com" rel="noopener noreferrer"&gt;next8n.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>automation</category>
      <category>productivity</category>
      <category>devops</category>
    </item>
    <item>
      <title>Why your content pipeline produces the wrong articles</title>
      <dc:creator>Mirza Iqbal</dc:creator>
      <pubDate>Sat, 27 Jun 2026 15:30:29 +0000</pubDate>
      <link>https://dev.to/mjmirza/why-your-content-pipeline-produces-the-wrong-articles-40cf</link>
      <guid>https://dev.to/mjmirza/why-your-content-pipeline-produces-the-wrong-articles-40cf</guid>
      <description>&lt;p&gt;I built a machine to write for me.&lt;/p&gt;

&lt;p&gt;It worked. That was the problem.&lt;/p&gt;

&lt;p&gt;Over a few weeks it shipped post after post, on a schedule, in my voice, on topics in my lane. The generator never missed. And almost nobody read a single one of them. My posts average under one reaction each. The machine did exactly what I built it to do. I had pointed it at the wrong job.&lt;/p&gt;

&lt;p&gt;If you have ever automated your content, you have met this bug. It does not crash. It does not throw an error. The output looks clean. It is quietly the wrong output, and nothing in the system tells you so.&lt;/p&gt;

&lt;p&gt;Here is the part I am not proud of.&lt;/p&gt;

&lt;p&gt;For weeks I tried to fix it by improving the generator. Better prompts. Tighter structure. Cleaner voice. Every change made the posts a little sharper and left them exactly as invisible. I was polishing the one part that already worked.&lt;/p&gt;

&lt;p&gt;The pipeline reads a pile of sources, builds one brief, and produces a couple of candidate angles. I had treated those candidates as the finish line. They were the starting line. The real decision was which angle, written for whom, on a topic a real person was actually struggling with that week. That decision, selection, was the part I had automated the least and trusted the most.&lt;/p&gt;

&lt;p&gt;Sit with that for a second, because it stops being a content problem fast.&lt;/p&gt;

&lt;p&gt;Generation is cheap now. You can produce ten decent drafts before lunch. Your team can. Everyone's team can. So the scarce thing stopped being production a while ago. The scarce thing is choosing the one that lands. When everybody can generate, selection becomes the whole game, and selection is judgement, not throughput.&lt;/p&gt;

&lt;p&gt;My numbers say it plainly. I averaged well under one reaction a post. The posts that win in my niche pull dozens, some of them hundreds. Same effort. Same tools. The same kind of person at the keyboard. The gap was never the writing. It was choosing a thing somebody actually needed to read.&lt;/p&gt;

&lt;p&gt;The threads that pull real argument in my world right now are plain and unpolished. A developer asking whether it matters that they stopped improving in their free time. Someone wondering if AI made their team less collaborative. No banner, no structure, full of replies. My pipeline had produced nothing that week a person would argue about. It had produced things. None of them had a pulse.&lt;/p&gt;

&lt;p&gt;Here is the opinion I will defend. More generation makes this worse, not better.&lt;/p&gt;

&lt;p&gt;Every extra draft your pipeline produces is one more thing competing for the single slot that matters this week, and a weak selector drowns in its own volume. It mistakes activity for progress. It measures how much it made and never asks whether any of it mattered. A pipeline that produces less but chooses well beats one that floods the queue, every time.&lt;/p&gt;

&lt;p&gt;You can feel this outside content too. The codebase that ships features nobody asked for. The backlog that grows faster than anyone can decide what is worth doing. The design tool that hands you forty variations and no help picking one. In every case the machine got better at making and no better at choosing, and the bottleneck quietly moved while we kept optimizing the old one.&lt;/p&gt;

&lt;p&gt;So the question I had to answer, and the one I think most automated pipelines dodge, is a hard one. How do you know which thing is worth someone's attention before you spend it.&lt;/p&gt;

&lt;p&gt;When I started grading my pipeline on that question instead of on output, things changed. I stopped asking did it generate a clean post. I started asking did it pick a topic a real person was hurting on this week, and did it have a reason beyond the draft reading nicely. The generator barely changed. The selection got a spine. That was the part that had been missing the whole time.&lt;/p&gt;

&lt;p&gt;I wish I could tell you I designed it that way from the start. I did not. I built the impressive half first, the half that produces things, because producing things feels like progress. The quiet half, deciding what deserves to exist at all, is the half that actually decides whether anyone shows up.&lt;/p&gt;

&lt;p&gt;If you are building anything that can now generate faster than you can wisely choose from, that is where your effort belongs. Not a better generator. A better selector. The uncomfortable truth is that generation stopped being the constraint for most of us, and most of us are still pouring our days into it anyway.&lt;/p&gt;

&lt;p&gt;My machine is still running. It produces less now, and it argues with itself more about what is worth publishing. That trade has been the only thing that moved the numbers at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;What is the last thing you built that nobody needed. Be honest.&lt;/p&gt;

&lt;h2&gt;
  
  
  If this was useful
&lt;/h2&gt;

&lt;p&gt;I work through this in public, the wins and the freezes both, mostly on &lt;a href="https://www.linkedin.com/in/mirzajhanzaib/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and &lt;a href="https://www.youtube.com/@mirzaiqbal" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;. If the real version of building in the open is useful to you, that is where it lives. Find me on &lt;a href="https://x.com/mirzajhanzaib" rel="noopener noreferrer"&gt;X&lt;/a&gt;, &lt;a href="https://github.com/mjmirza" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, and the work at &lt;a href="https://next8n.com" rel="noopener noreferrer"&gt;next8n.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>automation</category>
      <category>agents</category>
      <category>productivity</category>
      <category>ai</category>
    </item>
    <item>
      <title>I wrote like a consultant until I learned to write like a person</title>
      <dc:creator>Mirza Iqbal</dc:creator>
      <pubDate>Fri, 26 Jun 2026 16:54:18 +0000</pubDate>
      <link>https://dev.to/mjmirza/i-wrote-like-a-consultant-until-i-learned-to-write-like-a-person-ece</link>
      <guid>https://dev.to/mjmirza/i-wrote-like-a-consultant-until-i-learned-to-write-like-a-person-ece</guid>
      <description>&lt;p&gt;Two years ago I shipped a post I was proud of.&lt;/p&gt;

&lt;p&gt;A clean framework. Three layers, named and numbered. The kind of thing I would put in front of an enterprise client and watch the room nod.&lt;/p&gt;

&lt;p&gt;I hit publish.&lt;/p&gt;

&lt;p&gt;Then nothing.&lt;/p&gt;

&lt;p&gt;No replies. No argument. Not even a quiet disagreement. The post sat there like a slide nobody asked for.&lt;/p&gt;

&lt;p&gt;If you have ever shipped something you were proud of and heard only silence, you know the specific weight of it. You start to wonder whether the work was the problem, or whether you are.&lt;/p&gt;

&lt;p&gt;I did the thing engineers do. I assumed the cure was more rigour. Sharper diagrams. A tighter map of the problem.&lt;/p&gt;

&lt;p&gt;So I wrote another system. And another.&lt;/p&gt;

&lt;p&gt;Each one was correct. Each one was useless.&lt;/p&gt;

&lt;p&gt;Here is what took me far too long to see.&lt;/p&gt;

&lt;p&gt;I was writing about systems. The posts that actually move people are about people.&lt;/p&gt;

&lt;p&gt;A framework asks the reader to study. A story asks the reader to recognise themselves. I kept handing strangers a textbook and wondering why none of them felt spoken to.&lt;/p&gt;

&lt;p&gt;The change was small and it changed everything.&lt;/p&gt;

&lt;p&gt;I stopped opening with the thesis. I started opening with a moment. A real one, with a time and a feeling and a person in it, usually me, usually getting something wrong.&lt;/p&gt;

&lt;p&gt;The framework did not leave. It moved underneath, where proof belongs, instead of standing at the front where it blocks the door.&lt;/p&gt;

&lt;p&gt;The honest version of my opinion is plain. Expertise is not what connects. Being recognised is. You can be the most qualified voice in the room and still be the one nobody remembers, because you spoke to the problem and never to the person carrying it.&lt;/p&gt;

&lt;p&gt;I am still bad at this. I catch myself reaching for the clean diagram, for the safe distance of the expert. The pull never fully goes away.&lt;/p&gt;

&lt;p&gt;But the moment I lead with a person instead of a system, the room leans in. Every time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;What is the last thing you wrote that nobody answered, and was it about a system or about a person?&lt;/p&gt;

&lt;h2&gt;
  
  
  If this was useful
&lt;/h2&gt;

&lt;p&gt;I work through this in public, the wins and the freezes both, mostly on &lt;a href="https://www.linkedin.com/in/mirzajhanzaib/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and &lt;a href="https://www.youtube.com/@mirzaiqbal" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;. If the real version of building in the open is useful to you, that is where it lives. Find me on &lt;a href="https://x.com/mirzajhanzaib" rel="noopener noreferrer"&gt;X&lt;/a&gt;, &lt;a href="https://github.com/mjmirza" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, and the work at &lt;a href="https://next8n.com" rel="noopener noreferrer"&gt;next8n.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>meta</category>
      <category>writing</category>
      <category>devto</category>
    </item>
    <item>
      <title>Every rule I add to my setup has to kill an old one</title>
      <dc:creator>Mirza Iqbal</dc:creator>
      <pubDate>Thu, 25 Jun 2026 05:33:18 +0000</pubDate>
      <link>https://dev.to/mjmirza/every-rule-i-add-to-my-setup-has-to-kill-an-old-one-3oge</link>
      <guid>https://dev.to/mjmirza/every-rule-i-add-to-my-setup-has-to-kill-an-old-one-3oge</guid>
      <description>&lt;p&gt;This morning I deleted 24 VS Code extensions I had not opened in months. The count dropped from 181 to 157, my disk got three gigabytes lighter, and I felt weirdly relieved.&lt;/p&gt;

&lt;p&gt;Then I went to add a new rule to the system that runs my whole setup. The same system that already holds hundreds of rules. And I stopped.&lt;/p&gt;

&lt;p&gt;My deal with myself is small. To add one thing, I remove one thing. Grow the value, never the pile. Add and subtract together, or do not add at all.&lt;/p&gt;

&lt;p&gt;You already know this one in your gut. Open your editor extensions right now. Your notes app. Your shell config. That folder of scripts you swore you would clean up someday. Count what you actually touched this month. It is a sliver of what is installed. Everything else is weight you carry and call a system.&lt;/p&gt;

&lt;p&gt;I hoard by default. I built hundreds of rules and hooks because each one felt important the day I wrote it. And each one was, that day. Then the next important thing showed up, and the next, and the old ones never left. A setup that only grows quietly turns into a landfill with good intentions.&lt;/p&gt;

&lt;p&gt;So I made the constraint mechanical. Now when I add a rule, the setup asks me what comes out. This week I added a few. To land them, I retired older ones that had stopped earning their place. The total barely moved. That was the whole point.&lt;/p&gt;

&lt;p&gt;Here is the uncomfortable part. Anyone can add. The rare skill is deleting. Setups drown in their own additions, and neglect is almost never what kills them. Every new decision pays a tax to the things you kept around in case they mattered later. The sharp setup belongs to whoever kept cutting until only the load-bearing pieces were left.&lt;/p&gt;

&lt;p&gt;It stings the first few times. You spent real effort on the thing you are removing. But a rule you no longer follow is a quiet lie about how you actually work, and deleting it is telling the truth.&lt;/p&gt;

&lt;p&gt;Four weeks in, something odd happened. It got smaller and did more. I can finally see every piece still standing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;What is one extension, tool, or rule you keep but never actually use? Name it. That is your cut for this week.&lt;/p&gt;

&lt;h2&gt;
  
  
  If this was useful
&lt;/h2&gt;

&lt;p&gt;I work through this in public, the wins and the freezes both, mostly on &lt;a href="https://www.linkedin.com/in/mirzajhanzaib/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and &lt;a href="https://www.youtube.com/@mirzaiqbal" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;. If the real version of building in the open is useful to you, that is where it lives. Find me on &lt;a href="https://x.com/mirzajhanzaib" rel="noopener noreferrer"&gt;X&lt;/a&gt;, &lt;a href="https://github.com/mjmirza" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, and the work at &lt;a href="https://next8n.com" rel="noopener noreferrer"&gt;next8n.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>meta</category>
      <category>productivity</category>
      <category>writing</category>
    </item>
    <item>
      <title>I go silent on the work they assign me, and shine where nobody looks</title>
      <dc:creator>Mirza Iqbal</dc:creator>
      <pubDate>Wed, 24 Jun 2026 06:13:22 +0000</pubDate>
      <link>https://dev.to/mjmirza/i-go-silent-on-the-work-they-assign-me-and-shine-where-nobody-looks-14f8</link>
      <guid>https://dev.to/mjmirza/i-go-silent-on-the-work-they-assign-me-and-shine-where-nobody-looks-14f8</guid>
      <description>&lt;p&gt;Early in a job, someone told me, almost as a compliment, that I saw things other people missed.&lt;/p&gt;

&lt;p&gt;That same month, they parked me on a task where seeing things was the last thing anyone needed from me.&lt;/p&gt;

&lt;p&gt;I did the task. I did not love it. And on that topic, in those meetings, I went quiet in a way that was not like me.&lt;/p&gt;

&lt;p&gt;You know this one already.&lt;/p&gt;

&lt;p&gt;You have a thing you are genuinely good at. And somewhere there is a room, a project, a standup, where that thing never comes up. You sit in it, words ready, and you say almost none of them.&lt;/p&gt;

&lt;p&gt;For a long time I read my own silence wrong.&lt;/p&gt;

&lt;p&gt;I thought it meant I was difficult. Or checked out. Or ungrateful for a fine job that paid me well. I judged myself for it harder than anyone else ever did.&lt;/p&gt;

&lt;p&gt;Wrong on every count. It took me years to hear what it actually was.&lt;/p&gt;

&lt;p&gt;Here is the strange part, the part that surprises people.&lt;/p&gt;

&lt;p&gt;Corners where nobody expected anything from me are exactly where I did my best work. A side task nobody was watching. A problem that was not mine to solve. Some thing I finished quietly while the assigned work sat there going nowhere.&lt;/p&gt;

&lt;p&gt;And every time, people were surprised. They had filed me under the task in front of them, and then this other thing landed, sharper than the thing they actually asked for.&lt;/p&gt;

&lt;p&gt;I used to think that surprise was a nice accident. A bonus. Proof I could stretch.&lt;/p&gt;

&lt;p&gt;Flip that. The surprise is a signal, and it points somewhere specific.&lt;/p&gt;

&lt;p&gt;It is proof you were standing in the wrong place the whole time.&lt;/p&gt;

&lt;p&gt;When you light up in the corner nobody was watching, and stay flat on the work you were handed, you are not having a mood. You are reading a map. Your gift is quietly pointing at the seat you should have been given.&lt;/p&gt;

&lt;p&gt;Most workplaces hire for the seat. Your gift is whatever you happen to bring on top of it. A role had a shape before you arrived, and you got poured into that shape. If your gift matches it, you are lucky. If it does not, you spend your days a little misplaced, doing fine work on the wrong thing, and going quiet on the part that should have been the whole point.&lt;/p&gt;

&lt;p&gt;That gap is the most psychological thing in a full time job. It stays quiet. Nobody yells about it. You absorb it, month after month, and you call it normal.&lt;/p&gt;

&lt;p&gt;Now the part people assume seniority fixes. It does not.&lt;/p&gt;

&lt;p&gt;I have sixteen years in this. Real enterprise wins behind me. Titles that say four separate organizations looked at my work and chose it.&lt;/p&gt;

&lt;p&gt;And I still sat in rooms, on assigned topics, holding something I could have said, saying nothing.&lt;/p&gt;

&lt;p&gt;So if you are early and you feel this, please do not wait for seniority to rescue you from it. Seniority did not dissolve my silence. It only made me better at noticing it.&lt;/p&gt;

&lt;p&gt;What I do with it now is simple.&lt;/p&gt;

&lt;p&gt;I treat the silence as data. A flaw is what I used to call it, back when I was busy scolding myself.&lt;/p&gt;

&lt;p&gt;When I keep going quiet on the assigned thing and keep lighting up on the unasked thing, I stop judging the gap and start reading it. That pattern tells me where my attention actually wants to live. Worth more than any performance review, because a review measures the seat, and the silence measures the gift.&lt;/p&gt;

&lt;p&gt;You do not have to quit your job over this. I did not. But you can stop calling the silence a character defect. You can let it point.&lt;/p&gt;

&lt;p&gt;An ache sits underneath all of it, and it is a specific one. Being seen, and still being misplaced. Someone noticing the exact thing you are good at, in the same breath that they put you somewhere it never gets used. A quiet kind of lonely, and plenty of capable people live inside it for years without ever naming it.&lt;/p&gt;

&lt;p&gt;I named mine late. Telling you now so you can name yours early.&lt;/p&gt;

&lt;p&gt;Your best work, the kind that lands when nobody asked, is the clearest thing you own. Your silence on the assigned topic is honesty, leaking out where the words refuse to come.&lt;/p&gt;

&lt;p&gt;Listen to both. They are saying the same thing from two directions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;Where do you go quiet at work, and is it the topic that bores you or the mismatch between your gift and your seat?&lt;/p&gt;

&lt;h2&gt;
  
  
  If this was useful
&lt;/h2&gt;

&lt;p&gt;I work through this in public, the wins and the freezes both, mostly on &lt;a href="https://www.linkedin.com/in/mirzajhanzaib/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and &lt;a href="https://www.youtube.com/@mirzaiqbal" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;. If the real version of building a career in the open is useful to you, that is where it lives. Find me on &lt;a href="https://x.com/mirzajhanzaib" rel="noopener noreferrer"&gt;X&lt;/a&gt;, &lt;a href="https://github.com/mjmirza" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, and the work at &lt;a href="https://next8n.com" rel="noopener noreferrer"&gt;next8n.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>career</category>
      <category>discuss</category>
      <category>productivity</category>
      <category>motivation</category>
    </item>
    <item>
      <title>I paid a cloud API to read three sentences out loud for months</title>
      <dc:creator>Mirza Iqbal</dc:creator>
      <pubDate>Tue, 23 Jun 2026 21:28:32 +0000</pubDate>
      <link>https://dev.to/mjmirza/i-paid-a-cloud-api-to-read-three-sentences-out-loud-for-months-116d</link>
      <guid>https://dev.to/mjmirza/i-paid-a-cloud-api-to-read-three-sentences-out-loud-for-months-116d</guid>
      <description>&lt;p&gt;For months my coding agent would finish a long task, write a tidy little summary, and a cloud voice would read it back to me out loud.&lt;/p&gt;

&lt;p&gt;Three sentences. A small comfort at the end of a grind.&lt;/p&gt;

&lt;p&gt;I never once asked what those three sentences cost.&lt;/p&gt;

&lt;p&gt;One evening I actually looked at the bill. Not a big number. A small, recurring, invisible number. The kind you stop seeing after a while.&lt;/p&gt;

&lt;p&gt;And I had been paying it to hear a summary I could read in four seconds with my own eyes.&lt;/p&gt;

&lt;p&gt;That stung more than a big bill would have. A big bill you notice. A small one you absorb into the background and forget you ever agreed to.&lt;/p&gt;

&lt;h2&gt;
  
  
  You have one of these too
&lt;/h2&gt;

&lt;p&gt;This is the part where I make you the main character, because I promise you have your own version.&lt;/p&gt;

&lt;p&gt;Maybe it is a service that pings an API on every keystroke. Maybe it is a convenience you wired in once, a long time ago, and never questioned since.&lt;/p&gt;

&lt;p&gt;The taxes that hurt are not the loud ones. They are the small ones you stopped noticing.&lt;/p&gt;

&lt;p&gt;So I did the obvious thing I had avoided for too long. I moved the whole thing onto my own machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changed
&lt;/h2&gt;

&lt;p&gt;The summaries now get read by a neural text to speech engine that runs entirely on my laptop. Piper, if you want the name. Open source. No key. No per character meter.&lt;/p&gt;

&lt;p&gt;The model sits on disk and the sound comes out of the same machine I am already running. There is no round trip to a server I do not control.&lt;/p&gt;

&lt;p&gt;Here is the honest part, because a post that only shows you the upside is lying to you.&lt;/p&gt;

&lt;p&gt;The cloud voices were better. Warmer, smoother, more human on the awkward words.&lt;/p&gt;

&lt;p&gt;The local voice is good. Not best. Good enough that after a single day I stopped noticing the difference, the same way I had stopped noticing the bill.&lt;/p&gt;

&lt;p&gt;I traded a little polish for three things I genuinely wanted.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zero cost per word, so I never ration it again&lt;/li&gt;
&lt;li&gt;Full privacy, because nothing I am working on leaves the machine to be read aloud&lt;/li&gt;
&lt;li&gt;It works on a plane with no signal, which the cloud version never did&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The one rule that kept it sane
&lt;/h2&gt;

&lt;p&gt;This is the part with the quiet authority underneath, so I will keep it short.&lt;/p&gt;

&lt;p&gt;The thing that stopped this from rotting into a junk drawer of half working voices was a single rule. An allowlist.&lt;/p&gt;

&lt;p&gt;Four voices. Two languages. Nothing else is ever installed, downloaded, or suggested.&lt;/p&gt;

&lt;p&gt;Every voice that is not on the list is treated as banned, on purpose. Not "we will get to it later." Banned.&lt;/p&gt;

&lt;p&gt;A tool with no constraints becomes noise. A tool with one hard constraint stays sharp. I have rebuilt enough sprawling personal setups to believe that line now.&lt;/p&gt;

&lt;h2&gt;
  
  
  The opinion I will actually defend
&lt;/h2&gt;

&lt;p&gt;Not every convenience deserves a metered API call.&lt;/p&gt;

&lt;p&gt;We reach for the cloud by reflex, for things that have no business leaving the machine. A fifteen second summary read aloud is local work. Most small conveniences are.&lt;/p&gt;

&lt;p&gt;The cloud earns its place when something genuinely needs scale, or a model too big to hold, or data that must be shared. It does not earn its place because wiring it up was the easier path on day one.&lt;/p&gt;

&lt;p&gt;You can disagree with me. Tell me where the line actually sits for you. That is the comment I want.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real win was not the money
&lt;/h2&gt;

&lt;p&gt;The money was never the point. A few units of currency a month does not change my life.&lt;/p&gt;

&lt;p&gt;The real win was the friction it removed.&lt;/p&gt;

&lt;p&gt;When a feature costs nothing per use, you stop being stingy with it. I let the agent talk more now, because talking is free. I catch the moment a long run goes sideways because I hear it, not because I happened to be staring at the right pane at the right second.&lt;/p&gt;

&lt;p&gt;A convenience that bills you quietly teaches you to use it less. A convenience that is free teaches you to lean on it.&lt;/p&gt;

&lt;p&gt;That is the trade I keep underestimating, and I suspect you do too.&lt;/p&gt;

&lt;p&gt;None of this is really about speech. It is about the quiet defaults we never go back and audit.&lt;/p&gt;

&lt;p&gt;Look at the small recurring thing you wired in months ago and forgot about. Ask it one plain question. Does this actually need to leave my machine, or did I never go back and check.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;What is one cloud convenience you are paying for that could run local, and what is the real thing stopping you from moving it?&lt;/p&gt;

&lt;h2&gt;
  
  
  If this was useful
&lt;/h2&gt;

&lt;p&gt;I work through this stuff in public, the wins and the freezes both, mostly on &lt;a href="https://www.linkedin.com/in/mirzajhanzaib/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and &lt;a href="https://www.youtube.com/@mirzaiqbal" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;. If the honest version of building in the open is useful to you, that is where it lives. You can also find me on &lt;a href="https://x.com/mirzajhanzaib" rel="noopener noreferrer"&gt;X&lt;/a&gt;, &lt;a href="https://github.com/mjmirza" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, and the work at &lt;a href="https://next8n.com" rel="noopener noreferrer"&gt;next8n.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>tts</category>
      <category>claudecode</category>
    </item>
    <item>
      <title>Every break in my career came from a person who said yes</title>
      <dc:creator>Mirza Iqbal</dc:creator>
      <pubDate>Tue, 23 Jun 2026 05:33:10 +0000</pubDate>
      <link>https://dev.to/mjmirza/every-break-in-my-career-came-from-a-person-who-said-yes-4k13</link>
      <guid>https://dev.to/mjmirza/every-break-in-my-career-came-from-a-person-who-said-yes-4k13</guid>
      <description>&lt;p&gt;Years ago, a hiring manager at a global consulting firm offered me a role before I had finished my Master's degree.&lt;/p&gt;

&lt;p&gt;I was an international student in Germany, still wrestling with the language, holding a CV with more gaps than proof. On paper there were safer hires.&lt;/p&gt;

&lt;p&gt;They chose me anyway.&lt;/p&gt;

&lt;p&gt;You can probably name your own version of that moment.&lt;/p&gt;

&lt;p&gt;A teacher who pushed you forward. A manager who handed you the project you were not ready for. A stranger who replied when you had nothing to show but hunger.&lt;/p&gt;

&lt;p&gt;We love to tell career stories as if we climbed the wall alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the highlight reel leaves out
&lt;/h2&gt;

&lt;p&gt;I grew up in Rawalpindi, in a family with no money and no contacts in tech. I learned a new language, crossed a border on a student visa, and started my career at a level I had no business reaching that early.&lt;/p&gt;

&lt;p&gt;None of that happened because of a flawless application.&lt;/p&gt;

&lt;p&gt;At each step, one person decided to say yes before I had fully earned it.&lt;/p&gt;

&lt;p&gt;A hiring manager who looked past the missing degree. A team that let the outsider in. A mentor who answered a cold message from someone they owed nothing.&lt;/p&gt;

&lt;p&gt;Take any one of those people out of the story and I am not writing this today.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I got wrong for years
&lt;/h2&gt;

&lt;p&gt;For a long time I believed the goal was to become impressive enough that doors would open on their own.&lt;/p&gt;

&lt;p&gt;So I collected skills. Certificates. Titles. Proof.&lt;/p&gt;

&lt;p&gt;That proof helped, but it was never the thing that actually moved me forward.&lt;/p&gt;

&lt;p&gt;People moved me forward. Every single time.&lt;/p&gt;

&lt;p&gt;Credentials only made it easier for the next person to justify their yes.&lt;/p&gt;

&lt;h2&gt;
  
  
  A line I cannot shake
&lt;/h2&gt;

&lt;p&gt;I watched a film this week and one line has stayed with me since.&lt;/p&gt;

&lt;p&gt;Use your gift to connect people.&lt;/p&gt;

&lt;p&gt;It landed because it named something I had felt for years without words. Whatever skill I have has one real purpose. to open a door for the next person the way mine were opened for me.&lt;/p&gt;

&lt;p&gt;A gift kept to yourself impresses people. A gift used to connect people changes their lives.&lt;/p&gt;

&lt;p&gt;I know which one I want my work to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  So here is a small promise
&lt;/h2&gt;

&lt;p&gt;If you send me a cold message, I will read it.&lt;/p&gt;

&lt;p&gt;If I can open a door for you, point you somewhere, or answer the question nobody answered for me, I will try.&lt;/p&gt;

&lt;p&gt;Someone did that for me once. A debt like that only clears by passing it on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;Who said yes to you before you had earned it?&lt;/p&gt;

&lt;h2&gt;
  
  
  If this was useful
&lt;/h2&gt;

&lt;p&gt;I work through this in public, the wins and the freezes both, mostly on &lt;a href="https://www.linkedin.com/in/mirzajhanzaib/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and &lt;a href="https://www.youtube.com/@mirzaiqbal" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;. If the real version of building in the open is useful to you, that is where it lives. Find me on &lt;a href="https://x.com/mirzajhanzaib" rel="noopener noreferrer"&gt;X&lt;/a&gt;, &lt;a href="https://github.com/mjmirza" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, and the work at &lt;a href="https://next8n.com" rel="noopener noreferrer"&gt;next8n.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>career</category>
      <category>mentorship</category>
      <category>watercooler</category>
      <category>mentalhealth</category>
    </item>
  </channel>
</rss>
