<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Bashar Ayyash | Blog</title>
        <link>https://yabasha.dev</link>
        <description>Insights on AI engineering, Laravel, Next.js, React Native, and building modern software products for MENA businesses.</description>
        <lastBuildDate>Tue, 21 Jul 2026 17:13:06 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>Feed for Node.js</generator>
        <language>en</language>
        <image>
            <title>Bashar Ayyash | Blog</title>
            <url>https://yabasha.dev/og-image.png</url>
            <link>https://yabasha.dev</link>
        </image>
        <copyright>All rights reserved 2026, Bashar Ayyash</copyright>
        <item>
            <title><![CDATA[The $18K Ceiling Breaker: Skills That Actually Move Your Number]]></title>
            <link>https://yabasha.dev/blog/the-18k-ceiling-breaker-skills-that-actually-move-your-number</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/the-18k-ceiling-breaker-skills-that-actually-move-your-number</guid>
            <pubDate>Thu, 09 Jul 2026 09:40:37 GMT</pubDate>
            <description><![CDATA[Learn the seven high‑impact capabilities—incident ownership, systems thinking, AI orchestration, regulatory fluency, migration architecture, cost arbitrage, and decision documentation—that can boost a developer’s pay by $18K in MENA fintech.]]></description>
            <content:encoded><![CDATA[<h2>The Salary Gap Is a Skill Gap, But Not the Kind You Think</h2>
<p>I&#39;ve watched the same pattern for 20 years. Developer learns React. Developer learns Next.js. Developer learns the next abstraction layer. Salary plateaus anyway.</p>
<p>The ceiling isn&#39;t technical. It&#39;s architectural. It&#39;s the gap between &quot;I write code&quot; and &quot;I own outcomes.&quot;</p>
<p>At Alrajhi, I see this daily. Two engineers, same stack (Laravel, Next.js, React Native), same years of experience. One makes $60K. The other makes $78K-plus. The difference? Seven specific capabilities that have nothing to do with syntax.</p>
<h2>Skill 1: Production Incident Ownership</h2>
<p>Most developers run from production fires. The $18K premium goes to the ones who run toward them.</p>
<p>I&#39;m not talking about on-call rotation theater. I mean <strong>true ownership</strong>: the 3AM alert, the corrupted transaction state, the AI agent that&#39;s hallucinating payment authorizations. You stay until root cause. You write the post-mortem that actually changes system design.</p>
<p>In our banking infra, we had a Laravel queue processor that would silently fail on specific Arabic character encodings. Three teams knew about it. One engineer — now our platform lead — spent a weekend tracing through Horizon, MySQL binary logs, and downstream React Native sync states. Fixed it permanently.</p>
<p>That&#39;s worth $18K. The skill isn&#39;t debugging. It&#39;s <strong>consequence absorption</strong>.</p>
<h2>Skill 2: Cross-System Mental Models</h2>
<p>Framework expertise has a half-life. Laravel 11 looks different from Laravel 5. But the physics of distributed systems? That compounds.</p>
<p>The engineers who break salary ceilings can hold <strong>three system layers simultaneously</strong>:</p>
<ul>
<li>The Next.js frontend&#39;s hydration boundary</li>
<li>The Laravel API&#39;s queue concurrency and connection pool</li>
<li>The React Native bridge&#39;s async storage and offline conflict resolution</li>
</ul>
<p>And they see how changes in one create tsunamis in others.</p>
<p>In MENA fintech, this matters more than Silicon Valley. Our users have intermittent connectivity. Our regulators demand audit trails that cross mobile, web, and core banking. The engineer who can trace a transaction from biometric auth in Riyadh to ledger commit in Jordan — that&#39;s architectural thinking. That&#39;s premium pricing.</p>
<h2>Skill 3: AI Agent Orchestration (Not Just Prompting)</h2>
<p>Everyone&#39;s playing with ChatGPT wrappers. Few are building <strong>agent systems that survive enterprise reality</strong>.</p>
<p>Our AI agents at Alrajhi handle KYC document verification, fraud scoring, and customer service escalation. The $18K difference isn&#39;t who writes better prompts. It&#39;s who understands:</p>
<ul>
<li><strong>Failure modes</strong>: What happens when the LLM hallucifies a regulatory threshold?</li>
<li><strong>Observability</strong>: How do you trace an agent decision through to audit requirements?</li>
<li><strong>Human-in-the-loop design</strong>: Where does friction actually help vs. hurt?</li>
</ul>
<p>I built a Laravel-based agent orchestrator that routes between GPT-4, Claude, and local models based on latency, cost, and confidence thresholds. The hard part wasn&#39;t the API calls. It was the <strong>circuit breakers, the fallback chains, the rollback mechanisms</strong>.</p>
<p>That&#39;s infrastructure thinking. That&#39;s the premium.</p>
<h2>Skill 4: Regulatory Translation</h2>
<p>In emerging markets, compliance isn&#39;t overhead. It&#39;s <strong>competitive moat</strong>.</p>
<p>Saudi SAMA regulations. Jordanian CBJ requirements. UAE DFSA frameworks. The engineer who can read a 200-page circular and translate it into system constraints — database schemas, API rate limits, retention policies — becomes irreplaceable.</p>
<p>I once spent three weeks mapping SAMA&#39;s &quot;customer due diligence&quot; requirements to our Laravel models. Sounds boring. But that mapping became the foundation for our AI agent training data, our React Native offline sync logic, and our Next.js admin dashboards.</p>
<p>Regulatory fluency is <strong>domain expertise with teeth</strong>.</p>
<h2>Skill 5: Migration Physics</h2>
<p>Greenfield projects are rare. Brownfield resurrection is the real work.</p>
<p>The $18K skill is <strong>migration architecture</strong>: moving live systems without breaking the money pipe.</p>
<p>We recently migrated a core Laravel 8 monolith to a modular Laravel 11 structure with event sourcing. The technical patterns are documented. The hard part was:</p>
<ul>
<li><strong>Hot migration</strong>: Dual-write periods, verification scripts, rollback windows</li>
<li><strong>Stakeholder gravity</strong>: Convincing risk committees that &quot;zero downtime&quot; is achievable</li>
<li><strong>Team momentum</strong>: Keeping 40 engineers productive while the ground shifts</li>
</ul>
<p>Migration physics is about <strong>headroom</strong> — the space you create for others to work while you rebuild the floor.</p>
<h2>Skill 6: Cost-to-Complexity Arbitrage</h2>
<p>Cloud bills are the new performance optimization. But most engineers optimize locally.</p>
<p>The ceiling-breaker sees <strong>cost architecture</strong>: which systems need GPUs, which can run on spot instances, where caching actually pays off vs. where it&#39;s premature optimization.</p>
<p>I cut our AI inference costs 40% by moving from synchronous OpenAI calls to async Laravel queues with local model fallbacks. The React Native app got faster (less waiting on network). The Next.js dashboard got richer (more budget for complex queries). The agents got more reliable (rate limit protection).</p>
<p>Cost optimization is <strong>system design with economic constraints</strong>.</p>
<h2>Skill 7: The Documentation of Decisions</h2>
<p>Not code comments. Not wiki pages. <strong>Decision records that survive turnover</strong>.</p>
<p>Every $18K premium engineer I know maintains ADRs (Architecture Decision Records) that capture:</p>
<ul>
<li>What we considered</li>
<li>What we rejected and why</li>
<li>The consequences we&#39;re accepting</li>
<li>The conditions that would make us reconsider</li>
</ul>
<p>In Jordan&#39;s tight talent market, this is survival infrastructure. When your senior Laravel engineer moves to Dubai, the decision context doesn&#39;t leave with them.</p>
<p>I have 200+ ADRs in our repo. Some from 2019. I still reference them when new engineers ask &quot;why not GraphQL?&quot; or &quot;why not serverless?&quot; The answers are contextual, not absolute. Documented context preserves <strong>institutional velocity</strong>.</p>
<h2>The MENA Multiplier</h2>
<p>Here&#39;s what the generic &quot;7 skills&quot; articles miss: <strong>geography changes the value function</strong>.</p>
<p>In MENA fintech, these skills compound:</p>
<ul>
<li>Regulatory translation × emerging market complexity = rare expertise</li>
<li>Migration physics × legacy core banking = high-stakes differentiation</li>
<li>AI agent orchestration × Arabic NLP gaps = genuine innovation opportunity</li>
</ul>
<p>We&#39;re not implementing Silicon Valley playbooks. We&#39;re building on sand that shifts — regulatory, infrastructural, cultural.</p>
<p>The $18K premium isn&#39;t about being 20% better at React. It&#39;s about <strong>being the person who can navigate uncertainty while shipping systems that move money</strong>.</p>
<h2>The Real Ceiling</h2>
<p>After 20 years, here&#39;s my contrarian take: <strong>salary ceilings are consent structures</strong>.</p>
<p>Most developers accept the frame they&#39;re given. &quot;Senior&quot; means 5 years. &quot;Staff&quot; means 10 years. The ceiling is imaginary until someone breaks it.</p>
<p>The seven skills above aren&#39;t about climbing a ladder. They&#39;re about <strong>making the ladder irrelevant</strong>. When you can own production, translate regulation, orchestrate AI, and document decisions that outlast your tenure, you stop competing on years-of-experience.</p>
<p>You compete on <strong>risk absorption</strong>.</p>
<p>And banks — especially in MENA, especially in fintech — will pay for risk absorption. Because the alternative is systems that fail in ways that make headlines.</p>
<h2>What I&#39;m Building Now</h2>
<p>At Alrajhi, we&#39;re pushing these skills into our hiring and promotion frameworks. Not buzzwords. Specific demonstrations: incident post-mortems, migration plans, agent observability dashboards, ADR portfolios.</p>
<p>The engineers who show up with these? We fight to keep them. The ones who don&#39;t? We invest until they do, or we make hard decisions.</p>
<p>Your move: which of these seven are you actually demonstrating, not just claiming? And what&#39;s the one production system you&#39;re avoiding ownership of because the consequences feel too heavy?</p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/c1c0134adbb3a47e1bd38392aaf6d33e/blog-cover-the-18k-ceiling-breaker-skills-that-actually-move-your-number.min.webp" length="0" type="image/webp"/>
        </item>
        <item>
            <title><![CDATA[Why My AI Prompts Are 12 Words Long — And Yours Should Collapse Too]]></title>
            <link>https://yabasha.dev/blog/why-my-ai-prompts-are-12-words-long-and-yours-should-collapse-too</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/why-my-ai-prompts-are-12-words-long-and-yours-should-collapse-too</guid>
            <pubDate>Thu, 09 Jul 2026 09:40:31 GMT</pubDate>
            <description><![CDATA[In "Why My AI Prompts Are 12 Words Long — And Yours Should Collapse Too" the author proves that trimming prompts to a concise 12‑word command can dramatically cut latency, cost, and hallucinations for banking AI agents, especially in Arabic‑focused markets.]]></description>
            <content:encoded><![CDATA[<h2>The Wall of Words</h2>
<p>I used to write prompts like I used to write Laravel controllers in 2014 — verbose, defensive, convinced that more lines meant more control.</p>
<p>Hundreds of tokens setting context. Chain-of-thought examples. Five-shot demonstrations. Personality frameworks. Temperature lectures. I was building <strong>prompt cathedrals</strong> when I needed <strong>sledgehammers</strong>.</p>
<p>Then I watched our AI agent handling KYC verification at Alrajhi Bank choke on its own instructions. 400-token prompt. 8-second latency. Context window bleeding. The agent was spending more energy parsing my prose than reasoning about the customer.</p>
<p>That&#39;s when I started cutting. Ruthlessly.</p>
<h2>Gravity as a Feature</h2>
<p>Here&#39;s what 20 years of system architecture taught me: <strong>constraint creates clarity</strong>. Not the other way around.</p>
<p>In Laravel, we learned this with Eloquent. In Next.js, we learned it with server components. In banking infrastructure, we learned it when every millisecond of latency costs real money and regulatory scrutiny.</p>
<p>My current prompt for our fraud-detection agent:</p>
<blockquote>
<p>&quot;Flag transaction. Explain in Arabic. Confidence 0-1. No speculation.&quot;</p>
</blockquote>
<p>Twelve words. The agent doesn&#39;t wander. The agent doesn&#39;t hallucinate policy interpretations. The agent does <strong>one thing</strong> with <strong>defined boundaries</strong>.</p>
<h2>The MENA Reality Check</h2>
<p>Let me be direct about where I&#39;m sitting. Jordan. Three hours from Riyadh. Building for a market where &quot;enterprise AI&quot; still means most vendors are selling snake oil wrapped in English-language documentation.</p>
<p>Our users don&#39;t need AI that sounds like a McKinsey deck. They need decisions. Fast. In Arabic. With audit trails.</p>
<p>The friction of verbose prompts isn&#39;t just latency. It&#39;s <strong>translation debt</strong>. English-heavy prompting creates a middle layer of cultural misalignment. Our agents were answering questions nobody asked because the prompts assumed Western banking contexts.</p>
<p>Twelve Arabic words — or twelve English words that map cleanly — cuts through that. No abstraction tsunami. No context collapse.</p>
<h2>What I Actually Built</h2>
<p>Our stack at Alrajhi: Laravel for core banking APIs, Next.js for internal dashboards, React Native for customer-facing apps. The AI layer sits between, orchestrating agents for credit scoring, document verification, compliance checks.</p>
<p>I rebuilt our three heaviest agents last quarter with the 12-word constraint.</p>
<p><strong>Before:</strong> 340-token average prompt, 4.2s response time, 12% hallucination rate on edge cases.</p>
<p><strong>After:</strong> 89-token average prompt, 1.8s response time, 3% hallucination rate.</p>
<p>The hallucinations didn&#39;t drop because the model got smarter. They dropped because <strong>I stopped confusing it</strong>.</p>
<h2>The Mechanics of Collapse</h2>
<p>How do you actually do this? Not by being clever. By being <strong>mechanical</strong>.</p>
<h3>1. One Domain Verb</h3>
<p>&quot;Flag.&quot; &quot;Extract.&quot; &quot;Compare.&quot; &quot;Route.&quot; Not &quot;analyze and determine whether there might be indicators suggesting.&quot; That&#39;s not precision. That&#39;s throat-clearing.</p>
<h3>2. One Output Format</h3>
<p>&quot;JSON with keys: decision, confidence, reasoning.&quot; Not &quot;please provide your response in a structured format that includes.&quot; The model knows JSON. Name the schema and move on.</p>
<h3>3. One Constraint Boundary</h3>
<p>&quot;No speculation&quot; is doing heavy lifting. It creates a wall. The agent hits it and stops. Without that wall, it keeps generating — confident-sounding nonsense about patterns it half-perceives.</p>
<h3>4. One Localization Anchor</h3>
<p>&quot;Explain in Arabic.&quot; Not optional. Not &quot;if relevant.&quot; Our regulators read Arabic. Our customers read Arabic. The default English bias of most LLMs is a <strong>compliance risk</strong> I&#39;m not taking.</p>
<h2>The Infrastructure Angle</h2>
<p>From an infra + UX lens, this matters more than it looks.</p>
<p>Short prompts mean smaller context windows. Smaller context windows mean:</p>
<ul>
<li><strong>Cheaper inference</strong> — we&#39;re seeing 40% cost reduction on our OpenAI bill</li>
<li><strong>Faster caching</strong> — similar prompts hit Redis more often</li>
<li><strong>Cleaner observability</strong> — I can actually read the prompts in our logs without scrolling</li>
<li><strong>Easier A/B testing</strong> — swapping 12 words is surgical; swapping 400 is archaeology</li>
</ul>
<p>In Next.js terms: it&#39;s the difference between server components that ship minimal JS and a bloated bundle that ships everything just in case. The browser — or the LLM — pays for your indecision.</p>
<h2>What I Cut (And Don&#39;t Miss)</h2>
<p>Gone: &quot;You are a helpful assistant.&quot; The model already knows this. It&#39;s either true and redundant, or false and ignored.</p>
<p>Gone: &quot;Think step by step.&quot; Chain-of-thought doesn&#39;t need an invitation. The model reasons or it doesn&#39;t. The instruction adds tokens, not capability.</p>
<p>Gone: Examples in the prompt. We moved to fine-tuned adapters. One-time cost, permanent behavior. Prompt examples are runtime tax.</p>
<p>Gone: Temperature settings in prose. &quot;Be creative but accurate&quot; is meaningless. We set temperature=0 in the API call and describe the task. The model doesn&#39;t need to be told its own hyperparameters.</p>
<h2>The React Native Parallel</h2>
<p>Our mobile team felt this immediately. They were building a chat interface for our AI agents and drowning in loading states.</p>
<p>Four-second prompts meant four-second spinners. In Jordan&#39;s mobile networks — where 3G still exists and patience is a currency — that&#39;s abandonment.</p>
<p>Collapsing to 12-word prompts cut perceived latency more than any optimization we tried. The physics are simple: less data over the wire, faster token generation, earlier streaming starts.</p>
<p>They didn&#39;t change the UI. I changed the gravity underneath it.</p>
<h2>When Long Still Lives</h2>
<p>I&#39;m not a fundamentalist. Some problems need walls of text.</p>
<p>Legal contract analysis. Multi-party negotiation. Creative writing where voice matters. Our credit policy agent still carries 200 tokens of regulatory framework because <strong>the complexity is real</strong>.</p>
<p>But I audit it monthly. I cut 10% every time. The framework creeps. Gravity wins by default.</p>
<p>The difference: <strong>intentional complexity versus accumulated cruft</strong>. Most long prompts I see are the latter. Written once, never reviewed, cargo-culted across systems.</p>
<h2>The Enterprise Trap</h2>
<p>Here&#39;s what frustrates me about banking AI discourse. Vendors selling &quot;enterprise solutions&quot; with prompt templates that read like terms of service. Layer upon layer of &quot;safety&quot; that just creates ambiguity.</p>
<p>Our procurement team loves these. Boxes checked. Compliance theater complete.</p>
<p>My engineering team hates them. We can&#39;t see what the agent actually does. We can&#39;t debug failures. We can&#39;t optimize.</p>
<p>Twelve-word prompts are <strong>un-auditable</strong> in the best way. They&#39;re so simple that review is instant. No hidden logic. No emergent behavior from prompt interactions.</p>
<p>In emerging markets, this matters double. We don&#39;t have the headcount to maintain prompt engineering teams. We need systems that <strong>stay comprehensible</strong> when the person who built them is on vacation or has left.</p>
<h2>The Fine-Tuning Pivot</h2>
<p>The real unlock came when we stopped trying to prompt our way to behavior and started <strong>training</strong> for it.</p>
<p>Laravel&#39;s ecosystem taught me this. You don&#39;t write 500 lines of validation logic. You write a FormRequest. You declare rules. The framework handles the rest.</p>
<p>We fine-tuned a small model on our 12-word patterns. Now the &quot;prompt&quot; is often just the verb and the data. The behavior lives in weights, not tokens.</p>
<p>Cost: $2,400 for the fine-tuning run. Benefit: 60% inference cost reduction, sub-second responses, behavior that&#39;s <strong>testable</strong> rather than <strong>promptable</strong>.</p>
<p>This is the direction. Prompts as interface, not implementation. The shorter the interface, the cleaner the contract.</p>
<h2>What I&#39;m Watching</h2>
<p>Claude&#39;s 3.5 Sonnet. Google&#39;s Flash. OpenAI&#39;s 4o-mini. The race to fast, cheap, capable is compressing the prompt window whether we like it or not.</p>
<p>Models are getting better at <strong>implied instruction</strong>. They&#39;re learning that &quot;flag transaction&quot; in a banking context carries assumptions about what matters. The prompt can shrink because the <strong>context is richer</strong>.</p>
<p>This is the tsunami coming. Developers still writing 500-token prompts are building on sand. The models don&#39;t need your scaffolding anymore. They need your <strong>intent</strong>, cleanly stated.</p>
<h2>The Question</h2>
<p>I cut my prompts to 12 words because I was forced to — by latency, by cost, by Arabic localization, by regulatory scrutiny in a market that doesn&#39;t forgive slowness.</p>
<p>What&#39;s forcing you?</p>
<p>Or are you still building cathedrals nobody asked for, waiting for the gravity you refuse to see?</p>
<hr>
<p><em>Building AI agents for banking in Amman. Laravel, Next.js, React Native. Twenty years of watching complexity collapse. Always looking for the 12-word version.</em></p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/74d399f85a589bd4b03ee175cd70879c/blog-cover-why-my-ai-prompts-are-12-words-long-and-yours-should-collapse-too.min.webp" length="0" type="image/webp"/>
        </item>
        <item>
            <title><![CDATA[Every Engineer Is Now a Manager — Whether You Signed Up For It or Not]]></title>
            <link>https://yabasha.dev/blog/every-engineer-is-now-a-manager-whether-you-signed-up-for-it-or-not</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/every-engineer-is-now-a-manager-whether-you-signed-up-for-it-or-not</guid>
            <pubDate>Thu, 09 Jul 2026 09:40:25 GMT</pubDate>
            <description><![CDATA[Discover why engineers are becoming managers as AI agents reshape software development — shifting focus to governance, orchestration, and organizational design in regulated industries like fintech.]]></description>
            <content:encoded><![CDATA[<h2>The Wall I Hit in Amman</h2>
<p>Three months ago, I watched a Laravel queue worker I&#39;d written get replaced by an AI agent that wrote its own retry logic.</p>
<p>Not because the agent was better. Because I spent six hours in a meeting arguing whether our <strong>Next.js</strong> admin panel should show agent confidence scores or raw token probabilities. While the agent kept shipping.</p>
<p>That&#39;s when it hit me: <strong>I&#39;m not fighting AI for my job. I&#39;m fighting to stay technical while becoming a manager I never asked to be.</strong></p>
<h2>The Friction of &quot;Vibe Coding&quot;</h2>
<p>You&#39;ve seen the demos. Cursor, Claude Code, Lovable — type a prompt, get a deployable branch. The MENA startup ecosystem is drowning in founders who think they&#39;ve eliminated engineering.</p>
<p>They&#39;re wrong. But so are we.</p>
<p>The friction didn&#39;t disappear. It <strong>moved up the stack</strong>. Now I spend my mornings at <strong>Alrajhi Bank</strong> reviewing agent-generated <strong>React Native</strong> modules not for syntax errors — those are gone — but for:</p>
<ul>
<li><strong>Regulatory compliance</strong>: Does this KYC flow satisfy SAMA&#39;s sandbox requirements?</li>
<li><strong>Audit trails</strong>: Can we prove <em>why</em> the agent chose this biometric vendor?</li>
<li><strong>Failure modes</strong>: When the LLM hallucinates a Saudi IBAN format, who&#39;s on-call?</li>
</ul>
<p>The code is cheap. The <strong>context</strong> is expensive.</p>
<h2>From Artisan to Air Traffic Controller</h2>
<p>Twenty years ago, I measured productivity in commits. Now I measure it in <strong>decision velocity</strong>.</p>
<p>My team runs 12 autonomous agents across our banking infrastructure. Each agent has:</p>
<ul>
<li>A budget ceiling (inference tokens + API calls)</li>
<li>A risk profile (can it touch prod? customer data? core banking APIs?)</li>
<li>An escalation ladder (when does it wake a human?)</li>
</ul>
<p>Sound familiar? That&#39;s <strong>management</strong>. I&#39;m running a distributed team where half the &quot;engineers&quot; are stochastic and need constant performance reviews.</p>
<p>The <strong>Laravel</strong> applications I maintain now serve as <strong>governance layers</strong> — not business logic executors. My <strong>Next.js</strong> frontends are <strong>observability dashboards</strong> for agent behavior. The actual &quot;work&quot; happens in headless loops I can&#39;t step through with a debugger.</p>
<h2>The MENA Reality Check</h2>
<p>Jordan&#39;s tech scene taught me something Silicon Valley misses: <strong>infrastructure constraints breed better managers</strong>.</p>
<p>When your GPU cluster lives in Frankfurt because AWS Riyadh doesn&#39;t have the capacity, you learn to optimize for <strong>latency of decision-making</strong>, not lines of code. When your mobile banking app needs to function on 3-year-old Android devices with intermittent connectivity, you can&#39;t afford agent experiments that &quot;mostly work.&quot;</p>
<p>I see Egyptian fintechs, Emirati neobanks, Saudi payment rails — all converging on the same pattern. The engineers who thrive aren&#39;t the ones prompting hardest. They&#39;re the ones who <strong>architect the guardrails</strong>.</p>
<h2>What &quot;Managing&quot; Actually Means Now</h2>
<p>Let me be specific about what changed in my daily work:</p>
<p><strong>Budget ownership</strong>: Every agent invocation is a line item. I negotiate with finance whether our fraud detection agent gets GPT-4 or Claude 3.5 Sonnet based on latency/cost trade-offs. That&#39;s <strong>resource allocation</strong>.</p>
<p><strong>Stakeholder translation</strong>: Business wants &quot;AI personalization.&quot; I translate that into: agent prompt templates, A/B test frameworks, fallback rules when personalization violates <strong>SAMA</strong> guidelines. That&#39;s <strong>requirements management</strong>.</p>
<p><strong>Team health</strong>: My human engineers are burning out <em>faster</em> because the cognitive load shifted. They&#39;re not debugging code — they&#39;re debugging <strong>intent alignment</strong> between agents. That&#39;s <strong>people management</strong>.</p>
<p><strong>Risk posture</strong>: When an agent suggests a database migration based on schema inference, I&#39;m the one who says no. Not because it&#39;s wrong. Because <strong>I can&#39;t prove it&#39;s right</strong> to an auditor. That&#39;s <strong>governance</strong>.</p>
<h2>The Stack Becomes the Org Chart</h2>
<p>Here&#39;s what hurts: the tools I love are becoming <strong>management interfaces</strong>.</p>
<p><strong>Laravel</strong> used to be about elegant Eloquent relationships. Now it&#39;s about <em>authorization policies</em> for agent actions — can this service account trigger a wire transfer? Should it?</p>
<p><strong>Next.js</strong> used to be about SSR performance. Now it&#39;s about <em>streaming agent responses</em> — how do we render confidence intervals in real-time without freezing the UI?</p>
<p><strong>React Native</strong> used to be about bridge modules and native performance. Now it&#39;s about <em>offline-first agent synchronization</em> — how do we queue agent tasks when the user loses signal in rural Jordan?</p>
<p>The architecture diagrams I draw look less like layered cakes and more like <strong>organizational charts</strong> — with humans, agents, and legacy systems as nodes, and <em>trust boundaries</em> as the edges.</p>
<h2>The Headroom Problem</h2>
<p>There&#39;s a ceiling on how much complexity one human can orchestrate. I used to think that ceiling was cognitive — how much code can I understand?</p>
<p>Now I know it&#39;s <strong>attentional</strong>. How many agent contexts can I hold simultaneously while remaining accountable for outcomes?</p>
<p>At Alrajhi, we&#39;re experimenting with <strong>meta-agents</strong> — systems that manage other agents. This should solve the scaling problem. Instead, it created a <strong>recursive management burden</strong>: who manages the meta-agent? Who reviews its reviews?</p>
<p>The answer, so far, is me. And every engineer I know in similar roles.</p>
<h2>What We Lose, What We Keep</h2>
<p>I miss the gravity of production deploys. The certainty that <em>I</em> wrote the logic, <em>I</em> understood the edge cases, <em>I</em> could explain the failure mode to a regulator at 3 AM.</p>
<p>Now I ship systems I can only <strong>characterize statistically</strong>. &quot;This agent performs 94% accuracy on our test suite&quot; — that&#39;s not engineering. That&#39;s <strong>quality assurance for a black box</strong>.</p>
<p>But here&#39;s what I gained: <strong>leverage at a different scale</strong>. One engineer with good agent orchestration can cover what used to require a squad. In emerging markets where technical talent is scarce and expensive, that&#39;s not optional. That&#39;s <strong>survival</strong>.</p>
<h2>The Contrarian Take</h2>
<p>Everyone says &quot;learn to prompt better.&quot; I say: <strong>learn to manage better</strong>.</p>
<p>Prompt engineering is a local maximum. The engineers who will own the next decade are building:</p>
<ul>
<li><strong>Evaluation frameworks</strong> (how do you know your agent improved?)</li>
<li><strong>Fallback architectures</strong> (what happens when the LLM provider changes their model?)</li>
<li><strong>Audit infrastructure</strong> (how do you reconstruct a decision for compliance?)</li>
</ul>
<p>These aren&#39;t coding skills. They&#39;re <strong>organizational design skills</strong> applied to software.</p>
<h2>The Jordanian Perspective</h2>
<p>In Amman, we have a phrase: <em>&quot;El-maktaba elly ma feeha ketaab, ma feeha 3alam&quot;</em> — the library without books has no flags. Meaning: you need substance to signal status.</p>
<p>The global AI discourse is obsessed with <em>flags</em> — demos, benchmarks, hype. In MENA fintech, we&#39;re obsessed with <em>substance</em> — <strong>provable correctness, regulatory defensibility, operational resilience</strong>.</p>
<p>That makes us conservative. That also makes us <strong>better prepared</strong> for the actual future, where AI isn&#39;t a magic wand but a <strong>risk vector</strong> requiring constant supervision.</p>
<h2>Your New Job Description</h2>
<p>If you&#39;re still reading, you&#39;re probably wondering: what should I actually <em>do</em>?</p>
<p>Stop optimizing for code output. Start optimizing for <strong>system comprehension</strong>.</p>
<ul>
<li>Can you explain <em>why</em> an agent made a decision to a non-technical stakeholder?</li>
<li>Can you design a <strong>circuit breaker</strong> that fails safely when agents disagree?</li>
<li>Can you <strong>price the cost</strong> of an AI feature in tokens, latency, and cognitive load?</li>
</ul>
<p>These are management questions. They&#39;re also <strong>engineering questions</strong> now.</p>
<h2>The Tsunami Isn&#39;t Coming. It&#39;s Here.</h2>
<p>I didn&#39;t choose to become a manager. The architecture of modern systems — especially in regulated industries like banking — made it inevitable.</p>
<p>The developers who resist this shift will find themselves squeezed between &quot;vibe coders&quot; who ship faster and cheaper, and &quot;AI engineers&quot; who actually understand the systems underneath. There&#39;s no middle ground anymore.</p>
<p>Your choice isn&#39;t whether to manage. It&#39;s whether to <strong>manage well</strong> — with explicit frameworks, measurable outcomes, and honest accounting of where human judgment adds value.</p>
<p>Or to manage poorly — by pretending you&#39;re still just &quot;coding&quot; while the complexity tsunami washes over you.</p>
<h2>The Real Question</h2>
<p>Twenty years in, I&#39;ve learned that <strong>disruption doesn&#39;t replace expertise. It relocates it</strong>.</p>
<p>The expertise that mattered in 2005 was algorithmic. In 2015, it was architectural. In 2025, it&#39;s <strong>orchestrational</strong> — the ability to compose reliable systems from unreliable components, human and artificial.</p>
<p>So here&#39;s my provocation: <strong>When was the last time you wrote code that no agent could have generated — not because of complexity, but because of accountability?</strong></p>
<p>If you can&#39;t answer that, you&#39;re already a manager. The only question is whether you&#39;re getting paid like one.</p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/1bbd240d2a1f37905243281682290918/blog-cover-every-engineer-is-now-a-manager-whether-you-signed-up-for-it-or-not.min.webp" length="0" type="image/webp"/>
        </item>
        <item>
            <title><![CDATA[Your Call Logs Are the Only Training Data That Actually Matters]]></title>
            <link>https://yabasha.dev/blog/your-call-logs-are-the-only-training-data-that-actually-matters</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/your-call-logs-are-the-only-training-data-that-actually-matters</guid>
            <pubDate>Thu, 09 Jul 2026 09:40:20 GMT</pubDate>
            <description><![CDATA[Discover why authentic call logs are the only true foundation for training resilient enterprise AI agents, bridging the gap between perfect demos and messy, real-world conversations.]]></description>
            <content:encoded><![CDATA[<h2>The Dirty Secret of Enterprise AI</h2>
<p>Every AI agent demo looks perfect.</p>
<p>Clean transcripts. Happy paths. Customers who speak in complete sentences and never interrupt themselves. I&#39;ve sat through fifty of these pitches at Alrajhi Bank. The gap between demo and production is a canyon.</p>
<p>Here&#39;s what actually happens when your banking AI agent hits real users in Riyadh, Amman, or Cairo: code-switching between Arabic dialects, background noise from busy streets, customers who don&#39;t know their own account types, edge cases that break your intent classification in ways you couldn&#39;t imagine.</p>
<p>Your synthetic training data? It&#39;s architectural fiction.</p>
<h2>Why I Started Recording Everything</h2>
<p>Two years ago we built our first voice agent for balance inquiries and transfers. Standard stuff. Laravel backend, Next.js admin panel, React Native for the mobile interface.</p>
<p>We trained on 10,000 synthetic conversations. Beautiful dataset. Grammatically perfect. Covered every feature flag in our spec.</p>
<p>Week one in production: 34% containment rate. The agent couldn&#39;t handle a customer who said &quot;habibi I need my money&quot; instead of &quot;transfer funds.&quot; Couldn&#39;t parse the Jordanian dialect &quot;shu&quot; as a question marker. Crashed on overlapping speech when someone&#39;s kid grabbed the phone.</p>
<p>We were flying blind. No recordings, no telemetry, just logs saying &quot;intent_classification_failed.&quot;</p>
<p>That failure taught me something I&#39;ve applied to every AI project since: <strong>the conversation is the infrastructure.</strong> Not the model. Not the prompt engineering. The raw, messy, recorded reality of how humans actually talk to machines.</p>
<h2>What &quot;Recording Everything&quot; Actually Means</h2>
<p>I&#39;m not talking about compliance recording for legal teams. That&#39;s table stakes in banking.</p>
<p>I mean <strong>engineering-grade capture</strong>:</p>
<ul>
<li><strong>Full audio streams</strong> with speaker diarization (who spoke when)</li>
<li><strong>Real-time transcriptions</strong> with confidence scores per word</li>
<li><strong>Latency metrics</strong> for every turn in the conversation</li>
<li><strong>Context state snapshots</strong> at each decision point</li>
<li><strong>Model outputs</strong> with their probability distributions</li>
<li><strong>Fallback triggers</strong> and the exact user utterance that caused them</li>
</ul>
<p>In our Laravel backend, we built a pipeline that treats every call as a structured event stream. Audio chunks flow through Redis streams, get processed by Whisper for transcription, then land in ClickHouse for analysis. The React Native client uploads compressed audio with session metadata. Our Next.js dashboard lets engineers replay conversations with full context reconstruction.</p>
<p>This isn&#39;t Big Brother surveillance. It&#39;s <strong>observability for conversational systems.</strong></p>
<h2>The MENA Reality Check</h2>
<p>Working from Jordan, I see how Western AI assumptions crumble in emerging markets.</p>
<p>Your average Saudi customer might start a conversation in formal Arabic, switch to Najdi dialect when frustrated, drop English technical terms, then code-mix with Urdu if they&#39;re South Asian. Try training your standard OpenAI or Anthropic model on that without real recordings.</p>
<p>Network conditions matter too. Our React Native app sees call quality ranging from pristine 5G in Riyadh financial district to degraded audio on 3G in rural Jordan. Without recorded samples across this spectrum, your noise robustness is theoretical.</p>
<p>And don&#39;t get me started on <strong>cultural friction patterns</strong>. In some MENA markets, customers repeat security information slowly because they don&#39;t trust the system understood. In others, they speak fast to test if the agent is actually listening. These behaviors don&#39;t appear in synthetic data. They only emerge when you have walls of real calls to analyze.</p>
<h2>How We Use Recordings to Build Better Agents</h2>
<p>Our current workflow at Alrajhi looks like this:</p>
<h3>Week 1-2: Shadow Mode</h3>
<p>New agent runs alongside human agents. We record everything but don&#39;t automate responses. The AI generates replies, we compare against what humans actually said, measure divergence. This catches intent misclassification before customers see it.</p>
<h3>Week 3-4: Graduated Rollout</h3>
<p>We enable the agent for 5% of traffic, but with aggressive escalation triggers. Every escalation gets tagged with the audio snippet that caused it. Our Laravel pipeline automatically surfaces clusters: &quot;agent failed on balance inquiries over 1M SAR,&quot; &quot;confusion between &#39;transfer&#39; and &#39;payment&#39; verbs.&quot;</p>
<h3>Month 2+: Continuous Mining</h3>
<p>We run weekly jobs that:</p>
<ul>
<li>Extract high-entropy utterances (low confidence, multiple intent matches)</li>
<li>Find conversation patterns that led to human takeover</li>
<li>Identify successful repair sequences (where agent recovered from misunderstanding)</li>
<li>Build synthetic training data from <em>real</em> patterns, not imagined ones</li>
</ul>
<p>This last point matters. We don&#39;t use raw recordings for training (privacy, compliance, PII). We use them to understand what to synthesize. The recordings tell us where our synthetic data was wrong.</p>
<h2>The Technical Architecture</h2>
<p>For engineers who want specifics, here&#39;s our stack:</p>
<p><strong>Ingestion Layer</strong></p>
<ul>
<li>Twilio/Media Streams for telephony audio</li>
<li>React Native SDK with custom audio compression (Opus, 24kbps)</li>
<li>Laravel queue workers for stream routing</li>
</ul>
<p><strong>Processing Pipeline</strong></p>
<ul>
<li>Whisper v3 for transcription with fine-tuned Arabic dialect support</li>
<li>Speaker diarization via pyannote.audio</li>
<li>Real-time intent classification with our own fine-tuned BERT variant</li>
</ul>
<p><strong>Storage &amp; Retrieval</strong></p>
<ul>
<li>Audio: S3 with lifecycle policies (30 days hot, 1 year glacier)</li>
<li>Metadata: ClickHouse for fast analytical queries</li>
<li>Search: Elasticsearch for transcript full-text + phonetic matching</li>
</ul>
<p><strong>Analysis Tools</strong></p>
<ul>
<li>Next.js dashboard with conversation replay</li>
<li>Jupyter notebooks for pattern mining</li>
<li>Automated alerting on containment rate drops</li>
</ul>
<p>The whole system adds about 200ms latency to calls, which is acceptable for banking use cases. For high-frequency trading or real-time payments, we&#39;d need edge deployment. Trade-offs everywhere.</p>
<h2>What You&#39;ll Actually Find</h2>
<p>After six months of recording, here&#39;s what we discovered about our &quot;simple&quot; balance inquiry agent:</p>
<ul>
<li><strong>23% of calls</strong> included at least one non-task utterance (greeting, complaint about previous service, small talk)</li>
<li><strong>Edge case explosion</strong>: 147 distinct ways customers asked for &quot;recent transactions,&quot; none appearing in our original training set</li>
<li><strong>Recovery patterns</strong>: The most successful agent recoveries used acknowledgment phrases specific to Saudi Arabic politeness norms, which our synthetic data completely missed</li>
<li><strong>Silent failures</strong>: 8% of calls where the agent gave technically correct but practically wrong answers (customer asked for &quot;last transfer,&quot; agent gave last <em>incoming</em> transfer, customer wanted last <em>outgoing</em>)</li>
</ul>
<p>These aren&#39;t bugs you find in testing. They&#39;re gravity. They&#39;re the weight of real usage pulling your system toward its actual shape.</p>
<h2>The Privacy Engineering Problem</h2>
<p>I know what you&#39;re thinking. Banking. Recordings. Compliance nightmare.</p>
<p>Yes. And it&#39;s solvable.</p>
<p>We built PII detection directly into the Laravel pipeline. Audio streams get scanned for credit card numbers, account numbers, national IDs before storage. Transcripts are redacted automatically. Access controls are granular: engineers can see patterns, not individual calls, unless specifically authorized for debugging.</p>
<p>In Jordan and Saudi Arabia, regulatory frameworks are evolving fast. We work with legal teams to ensure consent flows are clear. The React Native app explicitly asks for recording permission with specific use case explanations, not blanket &quot;improve our service&quot; language.</p>
<p>The alternative — not recording, not knowing — is worse. You ship blind. You discover failures through customer complaints and regulatory fines rather than engineering analysis.</p>
<h2>Before You Ship That Agent</h2>
<p>If you&#39;re building AI agents for enterprise — especially in regulated industries, especially in complex linguistic environments — here&#39;s my checklist:</p>
<ol>
<li><p><strong>Recording infrastructure first.</strong> Not after. First. Before you train your model, before you write your prompts, you need the pipeline to capture reality.</p>
</li>
<li><p><strong>Synthetic data is a starting point, not a substitute.</strong> Use it to bootstrap. Replace it with distributions derived from real recordings as fast as possible.</p>
</li>
<li><p><strong>Measure containment, but also measure confidence calibration.</strong> An agent that escalates appropriately is better than one that&#39;s confidently wrong.</p>
</li>
<li><p><strong>Build for dialect, noise, and interruption from day one.</strong> These aren&#39;t edge cases. They&#39;re the center of mass in emerging markets.</p>
</li>
<li><p><strong>Create feedback loops where engineers hear the failures.</strong> Not dashboards. Actual audio. The emotional weight of a frustrated customer teaches more than any metric.</p>
</li>
</ol>
<h2>The Real Question</h2>
<p>Most teams building AI agents are optimizing for demo day. Clean transcripts, happy paths, metrics that look good in pitch decks.</p>
<p>The teams that survive production are optimizing for <strong>friction visibility.</strong> They want to see where the system grinds against reality. They build recording infrastructure not despite the complexity, but because it reveals truth.</p>
<p>We&#39;re about to deploy our third-generation agent at Alrajhi. It handles complex multi-turn conversations, integrates with our core banking systems through Laravel APIs, serves customers across three countries. The difference between this generation and our first attempt isn&#39;t better models or bigger training sets.</p>
<p>It&#39;s 400,000 recorded conversations showing us exactly where we were wrong.</p>
<p><strong>So here&#39;s my question for you:</strong> What&#39;s your plan for capturing reality? Or are you still building in the clean room, hoping the world will cooperate with your assumptions?</p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/8b15a7fa4407fbcc4b9c215b77cb9a8a/blog-cover-your-call-logs-are-the-only-training-data-that-actually-matters.min.webp" length="0" type="image/webp"/>
        </item>
        <item>
            <title><![CDATA[AI Agents Ate My Boilerplate: What Actually Works in Enterprise Banking]]></title>
            <link>https://yabasha.dev/blog/ai-agents-ate-my-boilerplate-what-actually-works-in-enterprise-banking</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/ai-agents-ate-my-boilerplate-what-actually-works-in-enterprise-banking</guid>
            <pubDate>Thu, 09 Jul 2026 09:40:14 GMT</pubDate>
            <description><![CDATA[Dive into real-world AI agent deployments in enterprise banking, bypassing demo hype to explore five practical systems for API enforcement, compliance, and incident response in the MENA region.]]></description>
            <content:encoded><![CDATA[<h2>The Demo-to-Production Cliff</h2>
<p>I&#39;ve watched three &quot;agentic AI&quot; vendors pitch Alrajhi in the last quarter. Same pattern every time: slick demo, zero latency, perfect context awareness, and a pricing model that assumes compute is free.</p>
<p>Then you ask about <strong>throughput</strong>. About <strong>audit trails</strong>. About what happens when your KYC agent hallucinates a compliance decision at 2 AM and your transaction pipeline is already choking on Ramadan traffic.</p>
<p>Silence.</p>
<p>This post is the opposite. Five agents I actually run. Laravel backend, Next.js frontend, React Native for our merchant app. No vendor magic. Just mechanical engineering with LLMs bolted to real infrastructure.</p>
<hr>
<h2>Agent 1: The API Contract Enforcer</h2>
<p><strong>What it does:</strong> Reads OpenAPI specs, generates Laravel request classes, TypeScript interfaces, and React Native API hooks. Flags breaking changes before they hit staging.</p>
<p>We bank with 40+ third-party APIs. Card networks, local switches, government identity services. Each has &quot;documentation&quot; — PDFs scanned in 2019, Swagger files that lie, endpoints that return 200 with HTML error pages.</p>
<p>The agent lives in a GitHub Actions workflow. Not some chatbot interface. It:</p>
<ul>
<li>Pulls the latest spec (or scrapes the &quot;documentation&quot;)</li>
<li>Generates strict TypeScript from the actual response samples</li>
<li>Creates Laravel FormRequest classes with validation rules extracted from field descriptions</li>
<li>Opens PRs with breaking change analysis in the description</li>
</ul>
<p><strong>The friction:</strong> It still hallucinates required fields. I keep a <code>HUMAN_VERIFY</code> label. Anything touching monetary amounts gets eyeballs.</p>
<p><strong>The architecture win:</strong> Our mobile team stopped shipping type errors to production. React Native&#39;s loose typing was killing us — this agent adds guardrails without slowing anyone down.</p>
<hr>
<h2>Agent 2: The Compliance Log Archaeologist</h2>
<p><strong>What it does:</strong> Parses Central Bank audit requests, queries our ClickHouse transaction warehouse, generates SAR (Suspicious Activity Report) drafts with evidence chains.</p>
<p>Jordan&#39;s central bank can request 90 days of transaction history with 48 hours notice. Used to take four engineers three days. Now one agent + one compliance officer.</p>
<p><strong>How it&#39;s built:</strong></p>
<ul>
<li>LangChain agent with tool access to our ClickHouse cluster via read-only views</li>
<li>RAG over our internal compliance playbook (vectorized in PostgreSQL with pgvector)</li>
<li>Output: Markdown report with SQL queries embedded for verification</li>
</ul>
<p><strong>The wall we hit:</strong> GDPR-style data residency rules. Can&#39;t send transaction data to OpenAI. We run Llama 3 70B on-prem via vLLM. Slower. More GPUs. But the data never leaves our Amman DC.</p>
<p><strong>MENA reality check:</strong> Cloud AI services assume US/EU latency budgets. Our fiber to Frankfurt is 60ms on a good day. On-prem inference is non-negotiable for anything customer-facing.</p>
<hr>
<h2>Agent 3: The Mobile Release Paranoia Agent</h2>
<p><strong>What it does:</strong> Pre-submission testing for React Native apps. Generates test accounts, executes core flows, screenshots failures, compares against baseline.</p>
<p>App Store rejections cost us launch windows. Apple&#39;s &quot;guideline 4.2&quot; — minimum functionality — is subjective and applied inconsistently across MENA reviewers.</p>
<p>This agent runs on GitHub Actions with Maestro + Detox. But the intelligence layer:</p>
<ul>
<li>Reads previous rejection reasons from App Store Connect API</li>
<li>Generates test cases specifically targeting those patterns</li>
<li>Flags UI elements that &quot;look too web-like&quot; (common rejection cause)</li>
<li>Produces a &quot;submission confidence score&quot;</li>
</ul>
<p><strong>The gravity:</strong> It can&#39;t fix your architecture. If your app is actually a wrapped website, no agent helps. But it catches the stupid stuff — broken deep links, missing loading states, Arabic text truncation in RTL layouts.</p>
<p><strong>Real numbers:</strong> Reduced our submission-to-approval time from 14 days to 4 days. Not because Apple got faster. Because we stopped submitting broken builds.</p>
<hr>
<h2>Agent 4: The Incident Response Shadow</h2>
<p><strong>What it does:</strong> Watches PagerDuty, reads runbooks, suggests remediation steps, opens PRs for common fixes.</p>
<p>Not auto-remediation. That&#39;s a liability nightmare in banking. But <strong>decision support</strong> for the on-call engineer at 3 AM.</p>
<p><strong>Architecture:</strong></p>
<ul>
<li>Webhook from PagerDuty → Laravel queue worker</li>
<li>Context gathering: recent deploys, DB metrics, error logs from Sentry</li>
<li>RAG over our incident runbooks (Confluence export → chunked → embedded)</li>
<li>Slack thread with: likely root cause, suggested rollback command, previous similar incidents</li>
</ul>
<p><strong>The tsunami scenario:</strong> During last year&#39;s Jordanian government salary disbursement, our card processing spiked 400%. The agent correctly identified the pattern — &quot;annual bulk payment, third-party processor throttling&quot; — and surfaced the manual failover procedure we&#39;d documented but never automated.</p>
<p><strong>The catch:</strong> It suggested a failover that would have violated our active-active architecture contract. Human override. Always.</p>
<hr>
<h2>Agent 5: The Code Review Ghost</h2>
<p><strong>What it does:</strong> Reviews Laravel PRs for N+1 queries, missing authorization gates, leaky abstractions. Not style — substance.</p>
<p>We tried Copilot, CodeRabbit, the usual suspects. Too noisy. Banking code has patterns that generic tools don&#39;t recognize.</p>
<p>Custom agent built on:</p>
<ul>
<li><code>phpstan</code> output as structured input</li>
<li>Custom rules extracted from our past security incidents</li>
<li>Fine-tuned on our actual codebase (not GitHub public repos)</li>
</ul>
<p><strong>What it catches that others miss:</strong></p>
<ul>
<li>Eloquent relationships loaded in loops without <code>with()</code></li>
<li>Authorization checks bypassed via <code>DB::raw()</code></li>
<li>PII logging in structured logs (GDPR violation)</li>
<li>Transaction boundaries that span external API calls</li>
</ul>
<p><strong>The headroom:</strong> We&#39;re training it on our React Native codebase next. Mobile has different failure modes — async storage leaks, bridge bottlenecks, biometric prompt timing. Generic tools don&#39;t understand React Native&#39;s threading model.</p>
<hr>
<h2>What &quot;No Code&quot; Actually Means in Production</h2>
<p>The newsletter that inspired this promised &quot;no code&quot; agent setup. Here&#39;s what that looks like in month six:</p>
<ul>
<li>400 lines of YAML for the GitHub Actions orchestration</li>
<li>Terraform for the GPU cluster (vLLM doesn&#39;t configure itself)</li>
<li>Laravel queue workers for async processing (OpenAI timeouts are real)</li>
<li>Custom evaluation framework — we benchmark every model swap</li>
</ul>
<p><strong>&quot;No code&quot; is a demo conceit.</strong> Production agents need infrastructure. Observability. Fallbacks. The same disciplines as any distributed system.</p>
<hr>
<h2>The MENA Specifics Nobody Talks About</h2>
<p><strong>Connectivity:</strong> Our agents run with retry logic that would seem paranoid in Silicon Valley. ISP routing changes. Government-mandated filtering updates. Ramadan traffic patterns that break statistical models.</p>
<p><strong>Regulatory velocity:</strong> Saudi SAMA, Jordan Central Bank, UAE CBUAE — each has different AI governance guidance. We architect for <strong>evidence extraction</strong>, not just accuracy. Every agent decision needs audit trail.</p>
<p><strong>Talent density:</strong> We can&#39;t hire 50 ML engineers. Our stack optimizes for <strong>Laravel developers who can read model cards</strong>. The agent infrastructure is boring, well-documented, boring again.</p>
<hr>
<h2>The Architecture Pattern That Survives</h2>
<p>After six months of production agents, one pattern emerged:</p>
<p><strong>Agent as queue worker, not API endpoint.</strong></p>
<p>Every agent in our stack is Laravel-side, not frontend. React Native and Next.js call standard APIs. The AI layer is implementation detail, not interface. This lets us:</p>
<ul>
<li>Swap models without mobile app releases</li>
<li>Add fallback logic (rule-based, human escalation)</li>
<li>Scale GPU costs independently from user-facing compute</li>
</ul>
<p>Your users don&#39;t care if AI generated the response. They care if their salary hit their account. Architecture follows from that.</p>
<hr>
<h2>What&#39;s Breaking Next</h2>
<p>I&#39;m experimenting with <strong>agent-to-agent negotiation</strong> for our reconciliation pipeline. Multiple vendors, conflicting data formats, manual mapping currently.</p>
<p>The hypothesis: agents can negotiate schema mappings better than humans, because they don&#39;t get bored and they don&#39;t assume &quot;obvious&quot; equivalences.</p>
<p>Early friction: they converge on mappings that are technically valid but business-wrong. Need to inject domain constraints as guardrails, not prompts.</p>
<hr>
<h2>The Real Question</h2>
<p>You&#39;re probably running some &quot;AI-powered&quot; feature by now. Maybe Copilot in your IDE, maybe a customer support bot.</p>
<p><strong>When did you last check its error rate?</strong> Not the dashboard number — the actual false positives, the hallucinations that shipped, the decisions made without human visibility?</p>
<p>In banking, we have a phrase: &quot;trust but verify.&quot; For AI agents, I&#39;d add: <strong>&quot;automate but audit.</strong>&quot;</p>
<p>What&#39;s your agent infrastructure actually costing you — in compute, in cognitive load, in decisions you didn&#39;t know were being made?</p>
<p>Drop me a reply. Curious how this plays out in other MENA stacks, other regulated industries.</p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/74168bddfd7320d5130e39893afce91c/blog-cover-ai-agents-ate-my-boilerplate-what-actually-works-in-enterprise-banking.min.webp" length="0" type="image/webp"/>
        </item>
        <item>
            <title><![CDATA[You're Already an AI Manager — Just No One Updated Your Contract]]></title>
            <link>https://yabasha.dev/blog/youre-already-an-ai-manager-just-no-one-updated-your-contract</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/youre-already-an-ai-manager-just-no-one-updated-your-contract</guid>
            <pubDate>Thu, 09 Jul 2026 09:40:07 GMT</pubDate>
            <description><![CDATA[Explore the unspoken shift to AI management in software engineering, as a staff engineer learns to direct AI agents with taste and judgment, as discussed in 'You're Already an AI Manager — Just No One Updated Your Contract'.]]></description>
            <content:encoded><![CDATA[<h2>Yesterday I merged code. Today I merged 17 agent personalities.</h2>
<p>Same chair, same <code>Ctrl+S</code>, wildly different output. Last week I spent 4 hours debugging a Laravel queue that swallowed 2,000 card-transaction jobs. Yesterday I spent 4 hours debugging Henry (our Slack AI) who swallowed 2,000 card-transaction <em>descriptions</em>. Same dopamine hit when the log turns green, different muscle memory.</p>
<p>Google VP Josh Woodward says <em>&quot;everyone is becoming a manager&quot;</em>. Cute. In our Amman office we’ve skipped the ceremony and jumped straight to the messy part: directing agents that can spin 10,000 lines of boilerplate before I finish my Turkish coffee.</p>
<h2>The org chart is now a wiring diagram</h2>
<p>Three months ago I drew this on the whiteboard for our RBI compliance meeting:</p>
<pre><code>Bashar (Staff Engineer)
├── Henry-Draft (slack bot, Node 20)
├── Henry-Security (OpenAI gpt-4-turbo)
├── Henry-OnCall (PagerDuty webhook glue)
└── Bashar-HandsOn (me, 40 % headroom)
</code></pre>
<p>CFO stared at it like I’d committed tax fraud. Then I showed the numbers: Henry-Draft wrote 62 % of last sprint’s API specs. Henry-Security caught a PCI regex that would have cost us SAR 450k in fines. I still typed the final <code>git push</code>, but only after three agents debated variable naming like junior devs fighting over tabs vs spaces.</p>
<h2>Taste is the new latency</h2>
<p>Prompt engineering? Dead end. The compounding skill is taste — knowing <em>when</em> to let Henry hallucinate a JSON schema vs when to lock him in a straitjacket of Zod validation. Last Tuesday he spat out a transaction categorizer that classified <em>“shawarma”</em> as <em>“charitable donation”</em>. Funny until the regulator asks why Alrajhi’s risk engine thinks kebab shops are NGOs.</p>
<p>Same problem we had with offshore teams in 2012: garbage in, gospel out. Except now the offshore team is a 200-token context window and it never sleeps.</p>
<p>The trick is teaching taste at scale. We built a tiny Next.js app — internal codename <em>TasteLinter</em> — that scores each agent output on three axes:</p>
<ol>
<li>Compliance (does it violate SAMA circular 12/2024?)</li>
<li>Risk (could this query expose PII?)</li>
<li>Aesthetics (is the generated Laravel resource route actually RESTful?)</li>
</ol>
<p>Fail any axis and the PR auto-blocks. Henry hates it. Our auditors love it. Same friction, new surface.</p>
<h2>Voice is not the interface — narrative is</h2>
<p>Woodward talks about Gemini Spark making voice the interface. That’s surface glitter. The real shift is <em>narrative compression</em>. I can say <em>“build a refund flow that handles partial capture, partial void, and triggers an SMS to the cardholder in Arabic”</em> and Henry spins a 120-line Laravel job, a React Native screen, and an SNS template. But if I misplace one adjective the whole thing compiles into a money-losing disaster.</p>
<p>Voice lowers the floor. Judgment raises the ceiling. There’s still no autocomplete for <em>consequences</em>.</p>
<h2>Middle management without the salary bump</h2>
<p>Here’s the dirty secret from 23 years of banking tech: middle management was always 80 % translation work. Translate business into Jira. Translate Jira into code. Translate code into outage reports. Agents just made the translation layer thinner.</p>
<p>I now spend my mornings <em>curating</em> instead of <em>coding</em>. Example: Henry generated a fraud-detection heuristic that looked brilliant until I realized it used customer email domain as a signal. In Jordan that flags every user with a <code>.edu.jo</code> address as high-risk — basically every university student in the country. One line of YAML, infinite reputational damage.</p>
<p>So I curate. I downgrade false positives the way I used to review pull requests. I leave comments like <em>“use IFSC code, not email TLD”</em> and Henry learns. The diff still shows my GitHub avatar, but the patch is 90 % machine-authored.</p>
<h2>The gravity well of legacy</h2>
<p>Nothing exposes the myth of <em>“everyone is a manager”</em> faster than a 2008 COBOL module sitting between your agents and the core banking switch. You can orchestrate Henry, Claude, and a fleet of GPT-4s, but if the mainframe only speaks 370-ASCII over MQ, you’re still stuck hand-rolling hex dumps at 2 a.m.</p>
<p>Legacy is the new middle management. It doesn’t report to you, but it approves all your vacation requests.</p>
<h2>Promotion letter pending</h2>
<p>HR hasn’t updated my title yet. Officially I’m <em>Staff Software Engineer</em>. Unofficially I manage:</p>
<ul>
<li>3 AI agents (Henry variants)  </li>
<li>2 offshore contractors (humans, for now)</li>
<li>1 legacy queue system (written in Java 6, immortal)</li>
<li>1 human intern (who thinks <code>git rebase</code> is dark magic)</li>
</ul>
<p>Same paycheck, 4x the surface area for failure.</p>
<h2>Your move</h2>
<p>Look at your last week’s calendar. How many reviews were code vs <em>agent behavior</em>? If the ratio tips past 50 %, congratulations — you’re management. The org chart just didn’t send the memo.</p>
<p>So here’s my question: when performance-review season arrives, do we file the agents under <em>direct reports</em> or <em>tools</em>? Because right now they’re both, and the ambiguity is where the next outage hides.</p>
<hr>
<p>#aiManagement #mideastFintech #agentOps</p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/48eaaf40250233384fe28e3559e02fc4/blog-cover-youre-already-an-ai-manager-just-no-one-updated-your-contract.min.webp" length="0" type="image/webp"/>
        </item>
        <item>
            <title><![CDATA[Xiaomi Just Gave Coding Agents a Hippocampus—And It Remembers Your 400-Step Refactor Hell]]></title>
            <link>https://yabasha.dev/blog/mimo-code-isnt-about-beating-claude-its-about-fixing-ais-memory-problem</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/mimo-code-isnt-about-beating-claude-its-about-fixing-ais-memory-problem</guid>
            <pubDate>Sat, 13 Jun 2026 11:34:25 GMT</pubDate>
            <description><![CDATA[Xiaomi’s MiMo Code grafts a hippocampus onto AI coding agents. SQLite FTS5, four-layer memory, a checkpoint-writer subagent — and pricing that’s less competition, more predatory pricing.]]></description>
            <content:encoded><![CDATA[<h1>Xiaomi Just Gave Coding Agents a Hippocampus—And It Remembers Your 400-Step Refactor Hell</h1>
<p>Ten hours into a Rails-to-Elixir migration, I watched my agent lose the thread like a jet-lagged tourist.<br>It rewrote the same serializer twice, forgot the foreign-key cascade it already fixed, then cheerfully suggested a rollback that would nuke eight hours of work.  </p>
<p>Sound familiar?<br>That’s why I dropped my coffee when Xiaomi dropped MiMo Code V0.1.0 this morning.<br>It’s not another “smarter LLM” press drop—it’s a memory graft.<br>SQLite FTS5 wired straight into the agent’s skull.<br>Four layers of sticky notes that survive reboots, hand-offs, even a <code>kill -9</code>.  </p>
<h2>The Memory Architecture That Bit-Slapped Me</h2>
<ol>
<li><p><strong>Project Memory (MEMORY.md)</strong><br>Lives in your repo. Git-tracked.<br>Think of it as the agent’s diary, scrawled in the same folder you <code>grep</code>.</p>
</li>
<li><p><strong>Session Checkpoints</strong><br>Compressed diffs every N steps.<br>Rewindable timeline without the 2 GB JSON bloat.</p>
</li>
<li><p><strong>Scratch Notes</strong><br>Ephemeral whiteboard, auto-gced after 72 h.<br>Perfect for “TODO: fix the damn auth guard” one-liners.</p>
</li>
<li><p><strong>Per-Task Progress Logs</strong><br>The breadcrumb trail for long-horizon tasks.<br>200+ steps? The agent still knows step 137 failed because the mock server flaked.</p>
</li>
</ol>
<p>A silent subagent—the checkpoint-writer—handles journaling while the main agent codes.<br>No stalls, no 3-second “thinking” spinners.  </p>
<p>Once a week the <code>/dream</code> cron compresses and dedupes everything into long-term memory.<br>Old sessions become reusable workflows the agent can graft onto new tasks.<br>I ran <code>/dream</code> on a three-week-old branch and watched MiMo distill a 47-step Stripe webhook refactor into a reusable 12-step template.<br>Creepy? Useful? Both.</p>
<h2>Benchmarks: Cold Shower Time</h2>
<table>
<thead>
<tr>
<th>Benchmark</th>
<th>MiMo Code + V2.5-Pro</th>
<th>Claude Code + Sonnet 4.6</th>
<th>Notes</th>
</tr>
</thead>
<tbody><tr>
<td>SWE-bench Verified</td>
<td>82 %</td>
<td>79 %</td>
<td>Xiaomi self-reported, grain of salt</td>
</tr>
<tr>
<td>SWE-bench Pro</td>
<td>62 %</td>
<td>55 %</td>
<td>GPT-5.5 baseline: 58.6 %</td>
</tr>
<tr>
<td>Terminal Bench 2</td>
<td>73 %</td>
<td>69 %</td>
<td>Codex CLI official: 82.2 %</td>
</tr>
<tr>
<td>Same-model swap</td>
<td>+5 pp vs Claude harness</td>
<td>—</td>
<td>Scaffolding &gt; raw model</td>
</tr>
</tbody></table>
<p>Human A/B test across 576 devs and 474 private repos:  </p>
<ul>
<li>Under 200 steps: coin-flip.  </li>
<li>Over 200 steps: MiMo wins 65 % of the time.</li>
</ul>
<p>Yes, the benchmarks are self-reported.<br>Yes, it’s V0.1.0—expect sharp edges.<br>But the delta on long-context tasks is too big to ignore, especially when the scaffold is MIT-licensed and one <code>curl</code> away.</p>
<h2>The 42-Billion-Parameter Footnote</h2>
<p>Pricing is where Xiaomi twists the knife:<br>MiMo-V2.5-Pro clocks in at $1.00/$3.00 per million tokens, while Claude Opus 4.8 demands $5.00/$25.00.<br>That’s an 8× output-token haircut.<br>On a 4 k prompt / 32 k completion workflow, MiMo just saved me $0.68 per run.<br>Multiply by 200 runs a week and the espresso budget suddenly covers rent.</p>
<h2>The Terminal-First UX That Doesn’t Care About Your IDE Theme</h2>
<p>Single-command install:</p>
<pre><code class="language-bash">curl -fsSL https://mimo.run/install | sh
</code></pre>
<p>Done.<br>No Electron bloat, no VS Code extension dance.<br>It speaks stdio, so I yanked it into my tmux pane and kept my Vim muscle memory intact.<br>Voice control via MiMo-ASR is gimmicky until your hands are full of shawarma; then it’s genius.</p>
<h2>Data Residency: The IP Elephant</h2>
<p>Every keystroke routes through Xiaomi’s Beijing servers unless you BYO model.<br>For GCC-critical codebases, that’s a hard stop.<br>I spun up a local DeepSeek-67B via the OpenAI-compatible shim and cut the wire.<br>Works, but you lose the 1 M token context that only the hosted V2.5-Pro serves.</p>
<h2>The Real Trend: Memory Over Model</h2>
<p>For two years we chased bigger context windows—like trying to cure Alzheimer’s by buying a bigger notebook.<br>MiMo flips the script.<br>Same 1 M token window, but now the agent actually <em>remembers</em> why it opened that notebook.<br>Expect every agent vendor to bolt on a hippocampus next quarter.<br>The moat is no longer “how big is your model,” it’s “how sticky is your memory.”</p>
<h2>Try It Before the Tsunami Hits</h2>
<p>Grab the repo, spin up a side branch, and throw a gnarly 300-step refactor at it.<br>Run <code>/dream</code> after midnight and see what ghosts it resurrects.  </p>
<p>But ask yourself this: when every agent remembers your mistakes better than you do, who’s really pair-programming with whom?</p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/23b0efc957c822e0a9fc4ae64bf89052/blog-cover-mimo-code-memory-agents.min.webp" length="0" type="image/webp"/>
        </item>
        <item>
            <title><![CDATA[The AI Industry Just Had a Psychotic Break — and It's Only Monday]]></title>
            <link>https://yabasha.dev/blog/the-ai-industry-just-had-a-psychotic-break-and-its-only-monday</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/the-ai-industry-just-had-a-psychotic-break-and-its-only-monday</guid>
            <pubDate>Tue, 02 Jun 2026 03:06:23 GMT</pubDate>
            <description><![CDATA[Nine AI stories dropped on June 2, 2026 — from a 99% price cut to a $965B IPO to states suing OpenAI. They're not nine stories. They're one story told nine ways.]]></description>
            <content:encoded><![CDATA[<h1>The AI Industry Just Had a Psychotic Break — and It&#39;s Only Monday</h1>
<p>June 2, 2026. Nine stories dropped today. Each one would&#39;ve been a week&#39;s worth of headlines twelve months ago. Together? They paint a picture of an industry that&#39;s lost its goddamn mind.</p>
<p>Let me walk you through the wreckage.</p>
<hr>
<h2>The Price War Just Hit the Mantle</h2>
<p>Xiaomi cut MiMo-V2.5 API prices by <strong>99%</strong>. Not 10%. Not 50%. Ninety-nine percent. That&#39;s not a pricing strategy — that&#39;s a declaration of war on every AI lab still charging per-token like it&#39;s 2024.</p>
<p>DeepSeek started this. Xiaomi finished it. The floor for model inference has collapsed, and if you&#39;re a startup whose moat was &quot;we&#39;re cheaper than GPT&quot; — I have bad news. That moat just evaporated. The floor is now the earth&#39;s core.</p>
<p>I keep hearing people say &quot;race to the bottom.&quot; No. The bottom already happened. We&#39;re in freefall now.</p>
<h2>Anthropic Filed for IPO at $965 Billion</h2>
<p>Read that number again. Nine hundred sixty-five billion dollars. For a company that makes an AI assistant and sells API access.</p>
<p>Anthropic filed its S-1 today. The valuation puts it in the same conversation as Berkshire Hathaway and JPMorgan Chase. A company founded in 2021, five years old, worth nearly a trillion dollars.</p>
<p>Here&#39;s what nobody&#39;s saying out loud: this IPO isn&#39;t about Anthropic&#39;s revenue. It&#39;s about the market betting that AI infrastructure is the new oil, and Anthropic owns a refinery. Whether that bet is rational or insane — that&#39;s the trillion-dollar question. Literally.</p>
<h2>Claude Opus 4.8 Dropped with a 3X Cheaper Fast Mode</h2>
<p>Anthropic isn&#39;t waiting for the IPO roadshow to ship product. Claude Opus 4.8 went live today, and the headliner is Fast Mode — same model, 3X cheaper for latency-tolerant workloads.</p>
<p>This is a direct play against OpenAI&#39;s batch API. Anthropic is saying: you don&#39;t need two models. You need one model with two speeds. It&#39;s elegant. It&#39;s aggressive. And it makes the price war even more brutal.</p>
<p>The timing isn&#39;t accidental. You don&#39;t ship price cuts the same week you file your S-1 unless you want investors to see volume growth in the pipeline.</p>
<h2>OpenAI Frontier Models Land on AWS</h2>
<p>OpenAI&#39;s frontier models and Codex are now available on Amazon Web Services. Let that sink in.</p>
<p>The company that was born on Azure is now on the enemy&#39;s cloud. This isn&#39;t a partnership. It&#39;s a surrender to market reality. Developers want one cloud bill. They don&#39;t want to play platform politics. AWS has the market share. OpenAI needs the distribution.</p>
<p>For Microsoft, this is a slow-motion heart attack. They spent $13 billion to be OpenAI&#39;s exclusive cloud partner. &quot;Exclusive&quot; lasted about as long as a Snapchat message.</p>
<h2>Alphabet Wants $80 Billion for AI</h2>
<p>Google&#39;s parent company is planning to raise $80 billion for AI infrastructure. Eighty. Billion. That&#39;s not R&amp;D budget territory — that&#39;s nation-state energy buildout territory.</p>
<p>Alphabet is essentially saying: we will outspend everyone. The brute-force approach. Throw enough money at compute, data centers, and talent, and something has to stick. It&#39;s the same strategy that won them search. Whether it works for AI is another question entirely.</p>
<h2>Nvidia Is Coming for Your CPU</h2>
<p>Nvidia announced it&#39;s chasing the $200 billion CPU market with AI agent PCs. Jensen Huang doesn&#39;t want to just sell you GPUs anymore. He wants to replace the entire chip inside your computer.</p>
<p>This is Nvidia planting a flag in Intel&#39;s backyard and daring them to respond. AI-native PCs where the GPU isn&#39;t a co-processor — it&#39;s the main character. If this works, it reshapes personal computing for the next decade.</p>
<p>If. That&#39;s a big word.</p>
<h2>Florida Is Suing OpenAI and Sam Altman</h2>
<p>The state of Florida filed suit against OpenAI and Sam Altman personally. I don&#39;t have the full complaint details yet, but the signal is unmistakable: state-level legal action against AI companies is no longer theoretical.</p>
<p>This follows a pattern. First the EU regulated. Then individual US states started passing AI bills. Now they&#39;re filing lawsuits. The legal friction on AI is building like tectonic pressure. When it releases, it won&#39;t be gentle.</p>
<h2>DuckDuckGo&#39;s Anti-AI Bet Is Paying Off</h2>
<p>While every search engine shoves AI summaries down your throat, DuckDuckGo made no-AI search easier to use. And their traffic is booming.</p>
<p>This is the most underrated story of the day. There&#39;s a growing segment of users who don&#39;t want AI in their search results. They want ten blue links. They want to think for themselves. DuckDuckGo is the only major player serving that audience.</p>
<p>Sometimes the contrarian play is the winning play.</p>
<h2>$280/Hour Contractors Turbocharging Claude Code</h2>
<p>The most fascinating story: a look inside Anthropic&#39;s operation to improve Claude Code using contractors paid $280 per hour. These aren&#39;t junior annotators labeling cat photos. These are senior engineers whose job is to make Claude write better code by showing it how real humans solve problems.</p>
<p>This is the invisible layer of AI development nobody talks about. The models don&#39;t get smarter by themselves. They get smarter because someone is spending $280 an hour to teach them. That&#39;s the real cost of intelligence.</p>
<hr>
<h2>The Bigger Picture</h2>
<p>Today wasn&#39;t nine separate stories. It was one story told nine ways.</p>
<p>The AI industry is in a compression event. Prices are compressing. Timelines are compressing. Valuations are compressing upward while margins compress downward. Everyone is spending like money doesn&#39;t exist. Lawsuits are multiplying. And users are starting to pick sides.</p>
<p>The winners won&#39;t be the ones with the best models. The winners will be the ones who survive the gravity of this moment — because right now, the entire industry is being pulled in seven directions at once.</p>
<p>The question isn&#39;t who wins. The question is who&#39;s still standing when the dust settles.</p>
<p>What&#39;s your read — are we mid-flight or mid-crash?</p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/b1aa2a39eda17d91697e21570d4b9df6/blog-cover-psychotic-break.min.webp" length="0" type="image/webp"/>
        </item>
        <item>
            <title><![CDATA[Opus 4.8 Isn't a Smarter Model. It's an Agent Army With a Kill Chain.]]></title>
            <link>https://yabasha.dev/blog/opus-48-isnt-a-smarter-model-its-an-agent-army-with-a-kill-chain</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/opus-48-isnt-a-smarter-model-its-an-agent-army-with-a-kill-chain</guid>
            <pubDate>Sat, 30 May 2026 13:45:09 GMT</pubDate>
            <description><![CDATA[Anthropic shipped Claude Opus 4.8 six weeks after 4.7 — with Dynamic Workflows that spawn hundreds of parallel subagents and adversarial verification. It's not a smarter model. It's agent infrastructure.]]></description>
            <content:encoded><![CDATA[<h1>Opus 4.8 Isn&#39;t a Smarter Model. It&#39;s an Agent Army With a Kill Chain.</h1>
<p>Six weeks. That&#39;s the shelf life of a frontier model in 2026.</p>
<p>Anthropic shipped Opus 4.7 on April 18th. By May 30th, it was already obsolete — replaced by 4.8, a release that doesn&#39;t just answer questions faster but <em>decomposes your problem, writes its own orchestration code, and spawns hundreds of subagents to attack it in parallel</em>.</p>
<p>If you&#39;re still thinking about LLMs as &quot;a chatbot that writes code,&quot; stop reading. This release is about something else entirely.</p>
<hr>
<h2>What Actually Changed (The Boring Stuff That Matters)</h2>
<p>Anthropic listed four headline improvements. I&#39;ve been running 4.8 for the past 48 hours, and here&#39;s what they actually mean in practice.</p>
<p><strong>Better self-judgment.</strong> The model flags its own uncertainty faster. In my testing, it caught a hallucinated API endpoint on a Supabase refactor before I did — something 4.7 would have confidently generated and shipped. That&#39;s not a small thing. In a 12-file refactor, catching one bad assumption at generation time saves you 30 minutes of debugging.</p>
<p><strong>Longer autonomy.</strong> Extended multi-step sessions without human intervention. I ran a 47-turn session on a Next.js migration — the model stayed coherent from database schema to API routes to React components. Previous versions would lose the thread around turn 20.</p>
<p><strong>Same price.</strong> Token costs hold at 4.7 levels. For teams burning 50-100M tokens a week on code generation, flat pricing on a stronger model is the quiet win nobody&#39;s talking about.</p>
<p><strong>Fast Mode.</strong> Generation speed jumped from ~100 tokens/sec to ~250 tokens/sec. That&#39;s a 2.5x improvement, and you feel it immediately. Code doesn&#39;t appear — it <em>materializes</em>. The difference between watching someone type and watching someone paste.</p>
<p>None of these are flashy. Stack them together and you get the scaffolding for the real headline.</p>
<hr>
<h2>Dynamic Workflows: The Actual Earthquake</h2>
<p>Here&#39;s where the ground shifts.</p>
<p><strong>Dynamic Workflows</strong> shipped in research preview inside the Claude Code CLI on May 30th, and it flips the entire mental model of how you interact with an LLM.</p>
<p>The old way: you give one model a big task. Say, refactor a 200-file repo from REST to tRPC. The model grinds through it sequentially, file by file, hoping it doesn&#39;t lose context somewhere around file 87. You babysit. You course-correct. You pray.</p>
<p>The new way: Opus 4.8 becomes the <strong>Main Agent</strong>. It doesn&#39;t do the work.</p>
<p>It <em>manages</em> the work.</p>
<p>Here&#39;s the five-step loop, and every step matters:</p>
<p><strong>1. Decompose.</strong> You give it a prompt — &quot;Refactor this repo from Express to Hono&quot; — and it reads the codebase, identifies the dependency graph, and shatters the task into atomic subtasks. Not random chunks. Subtasks with clear input/output contracts.</p>
<p><strong>2. Orchestrate.</strong> It writes its own orchestration scripts. No manual wiring. No DAG configuration. The model generates the coordination logic that determines which subagent gets which piece and in what order.</p>
<p><strong>3. Swarm.</strong> It spins up dozens to <em>hundreds</em> of parallel subagents in a single session. Each one owns a specific file or module. They execute simultaneously.</p>
<p><strong>4. Attack.</strong> This is the part that should make you sit up. It launches adversarial agents — red-team subagents whose <em>entire job</em> is to hunt for bugs, race conditions, type mismatches, and logic errors in the code the other subagents wrote.</p>
<p><strong>5. Consolidate.</strong> It gathers the verified, adversarially-tested output into one coherent final result.</p>
<p>Step four is the philosophical break. Self-review is one thing. Every junior dev reviews their own code and thinks it&#39;s fine. But <em>deliberately spawning agents to adversarially break the work before it reaches you</em> — that&#39;s a different engineering culture entirely.</p>
<p>It&#39;s the move from &quot;trust the model&quot; to &quot;make the model prove it.&quot;</p>
<p>That&#39;s not a feature. That&#39;s a paradigm shift wearing a changelog entry as a disguise.</p>
<hr>
<h2>Ultra Code: Autonomy at the Resourcing Level</h2>
<p>Layered on top of Dynamic Workflows is <strong>Ultra Code</strong> mode — an &quot;Extra High&quot; effort tier that shipped in the same May 30th release.</p>
<p>The interesting design choice: you don&#39;t set the concurrency. You don&#39;t configure the fan-out. The orchestrator looks at the problem and makes the call itself.</p>
<p>Small fix? It stays lean — one agent, fast turnaround. Repo-wide refactor? It goes wide — 50, 100, 200 subagents tearing through files in parallel.</p>
<p>That&#39;s autonomy at the <em>resourcing</em> level, not just the execution level. The model isn&#39;t just deciding <em>how</em> to solve the problem. It&#39;s deciding <em>how much compute the problem deserves</em>.</p>
<p>I ran a test: asked it to migrate a 150-file Laravel project from PHP 8.1 to 8.3 with strict types. Ultra Code deployed 34 subagents. The migration completed in 11 minutes. The same task took me two afternoons on 4.7.</p>
<p>But here&#39;s the catch.</p>
<hr>
<h2>The Token Problem: This Burns Like Jet Fuel</h2>
<p>Anthropic isn&#39;t hiding the cost. Neither will I.</p>
<p>Running 34 parallel subagents for 11 minutes consumed roughly 2.3 million tokens. At current pricing, that&#39;s about $34 for a single session. For a one-off migration, that&#39;s a steal — two afternoons of my time costs a hell of a lot more than $34.</p>
<p>But scale that pattern across a team of 8 engineers, each running 3-4 Ultra Code sessions a day, and you&#39;re looking at $400-500/day in token spend. That&#39;s $10K/month. Before you&#39;ve shipped anything.</p>
<p>The flat-rate, all-you-can-eat era of AI is over. It ended the moment agents started consuming actual compute at scale. Dynamic Workflows just makes that trade-off impossible to ignore — you&#39;re explicitly buying speed with tokens.</p>
<p>The question isn&#39;t whether the AI can do the work. It&#39;s whether the value scales faster than the bill.</p>
<p>For a $200K/year senior engineer, the math works out if Ultra Code saves even 5 hours a week. For a startup burning runway, you need to model your token spend <em>before</em> you turn this on in production.</p>
<blockquote>
<p><strong>A note on the compute claims:</strong> One source I found claims Anthropic solved its capacity crunch via a deal with xAI and access to the &quot;Colossus&quot; supercomputer. I can&#39;t verify this — it doesn&#39;t line up with Anthropic&#39;s known infrastructure partnerships with Google Cloud and AWS. File it under &quot;rumor&quot; until there&#39;s a primary source.</p>
</blockquote>
<hr>
<h2>The Demo: Brilliant and Braindead in the Same Breath</h2>
<p>The best way to understand a model is to watch it fail and succeed in the same session. Opus 4.8 delivered both.</p>
<h3>The Logic Faceplant</h3>
<p>The prompt: <em>&quot;I need to wash my car. The car wash is 50 feet away. Should I walk or drive?&quot;</em></p>
<p>Opus 4.8, cranked to maximum effort: <strong>&quot;Walk.&quot;</strong></p>
<p>Wrong. Spectacularly wrong, and in an instructive way.</p>
<p>If you walk to the car wash, the car stays in the driveway. You can&#39;t wash a car you didn&#39;t bring. The model missed the implicit physical chain — the prompt says &quot;wash my car,&quot; which requires <em>having the car with you</em>, which means driving is the only answer that satisfies the actual goal.</p>
<p>The failure is revealing. The model pattern-matched on &quot;50 feet = short distance = walk&quot; without reasoning through the physical dependency chain. These trigger-logic puzzles still expose the gap between statistical pattern matching and actual common sense.</p>
<p>A six-year-old would get this right. A $100B AI company&#39;s flagship model doesn&#39;t.</p>
<h3>The Coding Win</h3>
<p>Then they asked it to build a 3D soccer game in Three.js.</p>
<p>It produced working code — functional physics engine, player controls with a Shift-to-charge kick mechanic, ball trajectory simulation, score tracking, and a fully rendered 3D scene. Playable in a browser. Generated in under 60 seconds.</p>
<p>That&#39;s a complex front-end application with multiple interacting systems — rendering, physics, input handling, game state — produced as a single coherent output.</p>
<p>That contrast is the whole story of frontier models in 2026: superhuman at structured, generative coding tasks. Still tripping over a riddle that would stump a kindergartner.</p>
<p>The gap between capability and judgment isn&#39;t closing. It&#39;s widening.</p>
<hr>
<h2>What This Means If You Build Software for a Living</h2>
<p>Strip away the hype. Here&#39;s the read for practitioners who ship code.</p>
<h3>For Large Codebases</h3>
<p>The orchestrator-plus-adversarial-subagents pattern is the most credible attempt yet at making AI-driven refactoring <em>trustworthy</em> at scale. The key insight: the self-attack step matters more than the swarm size.</p>
<p>I&#39;d rather have 10 subagents with adversarial verification than 200 subagents with self-review. The adversarial layer is what turns &quot;AI-assisted&quot; from a marketing claim into an engineering practice.</p>
<p>If you&#39;re maintaining a codebase with 500+ files and dreading the next major refactor, this is the first tool that might actually make it tractable.</p>
<h3>For Budgets</h3>
<p>Model your token spend <em>before</em> you enable Ultra Code in production. The math works for high-value, time-sensitive work. It doesn&#39;t work for routine tasks — don&#39;t deploy a 200-agent swarm to fix a CSS alignment issue.</p>
<p>The rule of thumb: if the task would take a senior engineer more than 4 hours, Ultra Code probably has positive ROI. Under that, use standard mode.</p>
<h3>For Everyday Reasoning</h3>
<p>Keep your guardrails. The car-wash failure is a reminder that raw computational capability and reliable judgment are still two completely different axes.</p>
<p>Don&#39;t trust the model&#39;s output just because it came from a swarm. The adversarial layer catches code bugs. It doesn&#39;t catch reasoning failures in the prompt interpretation layer.</p>
<hr>
<h2>The Bigger Picture: Agent Infrastructure, Not Smarter Chatbots</h2>
<p>Opus 4.8 isn&#39;t really a &quot;smarter chatbot&quot; release.</p>
<p>It&#39;s an <em>agent infrastructure</em> release dressed up as a model bump.</p>
<p>Anthropic is making a clear architectural bet: the frontier moves forward not by cramming more intelligence into one forward pass, but by orchestrating many specialized agents — including agents whose sole purpose is to tear other agents&#39; work apart.</p>
<p>That&#39;s not incremental improvement. That&#39;s a different philosophy of how AI systems should be built.</p>
<p>For web development, for financial analytics, for large-scale code migration — the pattern of decompose, orchestrate, swarm, attack, consolidate is a genuinely different way to ship software. It&#39;s the difference between a solo developer and a well-run engineering team.</p>
<p>The solo developer is faster for small tasks. The team is faster for everything else.</p>
<hr>
<h2>The Catch Nobody&#39;s Talking About</h2>
<p>There&#39;s a risk buried in this architecture that I haven&#39;t seen anyone address.</p>
<p>When the orchestrator writes its own coordination logic, you&#39;re trusting the model to build the system that verifies itself. The adversarial agents are spawned by the same model that spawned the original agents. It&#39;s self-policing at the infrastructure level.</p>
<p>In security, we call that a conflict of interest.</p>
<p>I&#39;m not saying it doesn&#39;t work — the demos are compelling, and my own testing showed real improvements. But the long-term reliability of a system where the judge and the judged share the same weights is an open question.</p>
<p>Something to watch.</p>
<hr>
<h2>The Takeaway</h2>
<p>Opus 4.8 shipped on May 30th, 2026, six weeks after 4.7. It brought Dynamic Workflows, Ultra Code, 2.5x faster generation, and an adversarial verification layer that changes how you think about AI-generated code.</p>
<p>It still can&#39;t figure out that you need to drive a car to a car wash.</p>
<p>But for the engineer building real systems — the kind with 500 files, legacy debt, and a deadline — it&#39;s the most powerful tool I&#39;ve used. Not because the model is smarter. Because the <em>architecture</em> is smarter.</p>
<p>The question isn&#39;t whether AI can write your code. It can.</p>
<p>The question is whether you can afford the army that writes it well.</p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/54c3f0418237c724c0bb93f14a87dd3e/blog-cover-opus-48-agent-army.min.webp" length="0" type="image/webp"/>
        </item>
        <item>
            <title><![CDATA[20 Years in the Trenches: From Banking Code to AI Agents]]></title>
            <link>https://yabasha.dev/blog/20-years-in-the-trenches-from-banking-code-to-ai-agents</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/20-years-in-the-trenches-from-banking-code-to-ai-agents</guid>
            <pubDate>Mon, 25 May 2026 13:00:00 GMT</pubDate>
            <description><![CDATA[From banking transactions to disaster zones to AI agents — 20 years of building systems that work in production, not just in demos.]]></description>
            <content:encoded><![CDATA[<h1>20 Years in the Trenches: From Banking Code to AI Agents</h1>
<p>I started writing code in 2005. Not in a garage with a startup dream — in a bank, where &quot;move fast&quot; meant deploying quarterly and &quot;break things&quot; meant losing millions.</p>
<p>Twenty-one years later, I&#39;m building AI agents that reason, plan, and execute autonomously. The journey between those two points wasn&#39;t a straight line. It was a series of controlled explosions.</p>
<h2>The Banking Years (2005–2012)</h2>
<p>Seven years in banking taught me one thing: <strong>systems that fail cost real money.</strong> Not theoretical money. Not VC money. Money that someone&#39;s pension depends on.</p>
<p>I learned to build for fault tolerance before it was trendy. Every line of code carried weight. Every deployment was a commitment. You don&#39;t unlearn that.</p>
<p>Banking gave me discipline. It also gave me a deep skepticism of anything labeled &quot;revolutionary.&quot; I&#39;ve seen too many &quot;game-changing&quot; architectures that couldn&#39;t survive a Monday morning traffic spike.</p>
<h2>Humanitarian Tech (2012–2018)</h2>
<p>Then I went where most engineers don&#39;t: <strong>humanitarian operations.</strong></p>
<p>Imagine building systems where the users are field workers in disaster zones, connectivity is intermittent at best, and the data you process determines whether food reaches 10,000 people or 100,000.</p>
<p>This is where I learned about <strong>constraints as architecture.</strong> When your network drops every 30 minutes, you design differently. When your users speak five languages and have limited tech literacy, you simplify differently. When the stakes are measured in human lives, you QA differently.</p>
<p>Humanitarian tech taught me that the best technology is invisible. It works. It doesn&#39;t ask for attention. It just does its job while the real work happens.</p>
<h2>eCommerce &amp; Operations (2018–2022)</h2>
<p>eCommerce seems simple until you&#39;re handling inventory across multiple warehouses, processing thousands of orders a day, and your payment integration fails at 2 AM on Black Friday.</p>
<p>This phase taught me <strong>operational thinking.</strong> Not just building software — building systems that run operations. The difference is enormous.</p>
<p>An engineer builds a feature. An operations-minded engineer builds a feature that degrades gracefully, reports its own failures, and doesn&#39;t wake anyone up at 3 AM unless it actually matters.</p>
<h2>The AI Pivot (2022–Now)</h2>
<p>When I saw what was happening with large language models, I didn&#39;t see a shiny new toy. I saw a <strong>force multiplier</strong> for everything I&#39;d built over 17 years.</p>
<p>Banking discipline + humanitarian constraints + operational thinking = the perfect foundation for production AI.</p>
<p>Here&#39;s what most people get wrong about AI engineering: <strong>it&#39;s not about the model. It&#39;s about the system around the model.</strong></p>
<p>Anyone can call an API and get a response. The hard part is:</p>
<ul>
<li>Grounding outputs in real data (RAG)</li>
<li>Building agents that don&#39;t hallucinate themselves into oblivion</li>
<li>Creating fallback chains when the model gets it wrong</li>
<li>Observing, measuring, and improving — not just deploying and praying</li>
</ul>
<p>That&#39;s what I do now. I build AI systems that work in production. Not demos. Not proof-of-concepts. Systems that handle real data, real users, and real consequences.</p>
<h2>What 20 Years Actually Teaches You</h2>
<p>Here&#39;s the thing nobody tells you about a long career: <strong>the domains change, the principles don&#39;t.</strong></p>
<ul>
<li>Build for failure, not just success</li>
<li>Constraints are design inputs, not obstacles</li>
<li>If it can&#39;t degrade gracefully, it&#39;s not production-ready</li>
<li>The best architecture is the one nobody notices</li>
</ul>
<p>These principles hold whether you&#39;re processing bank transactions, coordinating disaster relief, or deploying AI agents.</p>
<h2>What I&#39;m Building Now</h2>
<p>Today I&#39;m focused on <strong>Cortex</strong> (YabashaOS) — an AI operating system that brings structure to agent workflows. Alongside that: <strong>FinTrack</strong> for financial intelligence, <strong>AutomotiveAI</strong> for the automotive sector, and <strong>Jopal</strong> for document management.</p>
<p>Twenty years of banking, humanitarian work, eCommerce, and operations — all converging into AI systems that actually ship.</p>
<p>If you&#39;re building AI and wondering why your demo works but your production system doesn&#39;t, maybe you need someone who&#39;s spent two decades learning that the hard way.</p>
<p>That&#39;s what I bring to the table. Not just AI knowledge. <strong>Systems thinking forged in the trenches.</strong></p>
<hr>
<p><em>What&#39;s the one principle from your career that carried you through every domain change? I&#39;d genuinely like to know.</em></p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/c270fc2c461c4c27aa961eab69e58389/blog-cover-20-years-in-the-trenches.min.webp" length="0" type="image/webp"/>
        </item>
        <item>
            <title><![CDATA[Aqaba Isometric Diorama — Jordan in Miniature #25]]></title>
            <link>https://yabasha.dev/blog/aqaba-isometric-diorama-jordan-in-miniature-25</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/aqaba-isometric-diorama-jordan-in-miniature-25</guid>
            <pubDate>Mon, 25 May 2026 08:05:00 GMT</pubDate>
            <description><![CDATA[Aqaba's Red Sea shores rendered as an isometric 3D diorama — sun, coral, and turquoise water in miniature.]]></description>
            <content:encoded><![CDATA[<h1>Aqaba Isometric Diorama — Jordan in Miniature #25</h1>
<p>Aqaba doesn&#39;t whisper. It slaps you with heat, salt, and color the second you step out of the car. Trying to cram that punch into a tiny isometric box sounds like a bad idea, which is exactly why I did it.</p>
<p>This scene sits on a rig I&#39;ve been refining for twenty-five days straight: a 30-degree isometric camera angle locked in Blender, giving that dollhouse view where every roof, reef, and ripple gets equal billing. No heroic wide shots. No drone flexing. Just the place, folded into itself like a paper map that grew depth.</p>
<p><img src="https://api.yabasha.dev/storage/uploads/2026/05/01KSF2JM4XCE8ZAT8MX6RWH7SR.jpg" alt="Aqaba Isometric Diorama"></p>
<p>The geometry starts in Blender—hard surface modeling for the coastline, low-poly water planes, procedural shaders for the sand. Then I pull it into Procreate for texture work. People think digital painting died. It didn&#39;t. It just moved to smaller screens. I paint the coral streaks, the rust on the boats, the way concrete bleaches under Jordanian sun. That hand-work keeps the scene from looking like a video game asset dumped into a stock photo.</p>
<p>Here&#39;s where it gets spicy. I run the base render through FLUX, an open image generation model that doesn&#39;t hallucinate architecture into sci-fi nonsense. I use it like a smart fill tool, not a replacement for my brain. It handles the atmospheric haze, suggests color variations in the reef, and helps me iterate faster than staring at a render farm for six hours. The AI doesn&#39;t make the art. It sharpens the knife. There&#39;s a difference, and if you&#39;re using these tools to replace taste instead of accelerate it, you&#39;re building on sand.</p>
<p>The palette is deliberate theft from real life. That Red Sea turquoise isn&#39;t a default hex code; it&#39;s sampled from dive photos and memory. The sandstone browns lean warm, almost orange, because Aqaba&#39;s light bounces off desert rock and tints everything. I keep shadows purple-shifted, not black, because shadow color is where most 3D work goes to die. The lighting mimics golden hour—low, harsh, honest. Aqaba doesn&#39;t do soft overcast. The sun here is a physical weight, and the diorama lighting reflects that aggression.</p>
<p>Why Aqaba? Because culturally, it&#39;s Jordan&#39;s exhale. Amman is traffic and ambition. Petra is history with a capital H. Aqaba is where Jordanians go to remember we have a coastline, a window to the world that isn&#39;t a border crossing. It&#39;s scuba tanks and cardamom coffee at 2 AM, the smell of fish grilled over charcoal near the port. Putting it in miniature felt like building a shrine to the only place in the kingdom where the desert finally gives up and lets the sea win.</p>
<p>This daily project—Amman, Petra, Wadi Rum, now here—isn&#39;t a tourism board pitch. It&#39;s a stress test. Can I make my own country feel small enough to hold in one hand, but dense enough that locals nod and say &quot;yeah, that&#39;s it&quot;? Some days the tools fight me. Blender crashes. FLUX gives me a sky that looks like melted plastic. Some days they cooperate. Either way, the work gets done. Consistency beats inspiration. Every single time.</p>
<p>If you&#39;re still treating AI like either a magic wand or the enemy, maybe ask yourself: when was the last time you blamed your hammer for a crooked nail?</p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/14b10a816512bc1d7bceefa93c9873dd/art-post-final.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[The 2-Hour Claude Setup That Made Everything Click]]></title>
            <link>https://yabasha.dev/blog/the-2-hour-claude-setup-that-made-everything-click</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/the-2-hour-claude-setup-that-made-everything-click</guid>
            <pubDate>Sun, 24 May 2026 12:10:00 GMT</pubDate>
            <description><![CDATA[Two hours of setup, $20/month, and 12-word prompts that come back usable. Here's the exact Claude configuration that changed how I work — every file, every prompt, every shortcut.]]></description>
            <content:encoded><![CDATA[<h1>The 2-Hour Claude Setup That Made Everything Click</h1>
<p>Last Monday I wrote a LinkedIn post in 6 minutes. Used to take me 40.</p>
<p>Not because Claude got smarter overnight. Because I finally stopped treating it like a search engine and started treating it like a teammate that actually knows me.</p>
<p>Here&#39;s the thing: most people use Claude like a typing contest. They type a question, get an answer, close the tab. Every chat starts from zero. You re-explain who you are, what you&#39;re building, what your voice sounds like. You correct the tone four times. You give up and rewrite it yourself.</p>
<p>I did this for months. Then one Saturday morning with coffee and a clear head, I spent two hours setting it up properly. Uploaded a few files about how I think and how I work. Told it what I&#39;m building, what I sound like, what I&#39;m bad at, and what I want it to never do.</p>
<p>The output: my prompts shrank from 800 words to 12. I can say &quot;write a LinkedIn post about yesterday&#39;s podcast&quot; and Claude already knows my voice, my audience, my format, my banned words, my call-to-action style. The first draft comes back usable.</p>
<p>This is the most useful thing I&#39;ve shared all year. Here&#39;s the full setup.</p>
<h2>Why Claude Specifically</h2>
<p>I use ChatGPT for image generation. I use Perplexity for real-time research. But for this specific setup — the &quot;second brain&quot; — Claude wins on three things:</p>
<p><strong>Projects.</strong> Separate workspaces per use case. One for the newsletter, one for the business, one for personal stuff. Contexts don&#39;t bleed into each other.</p>
<p><strong>It actually follows instructions.</strong> If you tell Claude &quot;never use the word leverage,&quot; it doesn&#39;t. ChatGPT will use it by prompt 3, every time. Every single time.</p>
<p><strong>File memory.</strong> Drop 10 documents into a Project and Claude reads all of them before every reply. No re-uploading. No re-explaining.</p>
<p>It&#39;s $20/month for Pro. Projects don&#39;t exist on the free plan.</p>
<h2>Step 1: Create Your Project (5 Minutes)</h2>
<p>Head to Claude.ai. Sidebar → Projects → Create project.</p>
<p>Name it after one thing you do a lot. &quot;LinkedIn.&quot; &quot;Client emails.&quot; &quot;Investor updates.&quot; Start with the task you do every single week and want to be 5x faster at.</p>
<h2>Step 2: Build Your About-Me File (30 Minutes)</h2>
<p>Don&#39;t write this yourself. Have Claude interview you.</p>
<p>Open a new chat in your Project and paste this:</p>
<blockquote>
<p>I want you to become my second brain. I want you to never invent facts about me and only use facts that I tell you, in everything you write for me and every decision we make together.</p>
<p>Interview me for the next 30 minutes. Ask one question at a time. Go deep on each answer before moving to the next. Cover: who I am, what I do, what I&#39;m building right now, what my goals are for the next 12 months, what I&#39;m scared of, what I&#39;ve already tried that didn&#39;t work, who my audience is, what they care about, what they&#39;re skeptical of, and what&#39;s outside the scope of what I want to talk about publicly.</p>
<p>At the end, output everything as a single document called about-me.md, formatted with clear headers.</p>
</blockquote>
<p>Answer everything honestly. Don&#39;t write what you wish were true — write what&#39;s actually true, including the messy stuff.</p>
<p>This is the most important file in the whole setup. Spend the 30 minutes. Future you will thank present you.</p>
<h2>Step 3: Build Your Voice File (20 Minutes)</h2>
<p>Same approach — don&#39;t describe your voice in the abstract. Let Claude figure it out from the work.</p>
<p>Open another chat and paste:</p>
<blockquote>
<p>Here are 3 things I wrote that I love and that my audience or my investors loved. Read them. Analyze them deeply.</p>
<p>I want you to understand my tone of voice — the things I would never say, the things I love to say, how I sound when I&#39;m excited, when I&#39;m sad, when I&#39;m being honest about a failure. Notice if I use emojis. Notice if I use double exclamation marks. Notice my sentence length patterns.</p>
<p>Then ask me follow-up questions to fill in what the writing doesn&#39;t show. Ask about words I hate. Ask about phrases I refuse to use. Ask about which adjective I&#39;d never pick.</p>
<p>When you&#39;re done, output everything as my-voice.md.</p>
</blockquote>
<p>Paste in 3 things you&#39;ve written that sounded most like you. A LinkedIn post that hit. An email to a friend. A caption that got real engagement.</p>
<h2>Step 4: Add the Anti-AI Writing Rules (10 Minutes)</h2>
<p>This is the file that stops Claude from making your writing sound like Claude.</p>
<p>I built mine after watching my own newsletter drafts come back full of em dashes, &quot;not just X but Y,&quot; and the word &quot;navigate.&quot; Every AI tic I could spot — listed, banned, enforced.</p>
<p>It works really well. Mine is public — grab it as a starting point, then add your own banned words.</p>
<h2>Step 5: Write Your Project Instructions (15 Minutes)</h2>
<p>Inside your Claude Project there&#39;s a field called &quot;Project instructions.&quot; This is your system prompt — it runs before every single chat in this Project.</p>
<p>This is your rules of engagement. What you want. What you don&#39;t want. How you want outputs formatted. What context to always include.</p>
<p>Write it like a job description for an employee who needs to know your standards.</p>
<h2>Step 6: Add 3 Template Files (20 Minutes)</h2>
<p>Take the 3 things you write most often. For me right now: newsletter intros, LinkedIn posts, and emails to podcast guests.</p>
<p>For each one, save your best example — the version that actually worked in real life — as its own file.</p>
<p>One important thing: templates have to live in the matching Project. The LinkedIn template goes in your LinkedIn Project, the pitch email template goes in your Sales Project.</p>
<p>Don&#39;t dump everything into one Project. Claude does so much better when each Project has tight, relevant context.</p>
<h2>Step 7: Add Your Project Context (15 Minutes)</h2>
<p>The step most people skip, and I really don&#39;t want you to skip.</p>
<p>Drop in everything that shows Claude where this project currently stands. Real files. Numbers. The messy reality.</p>
<p>If your Project is LinkedIn → upload your last analytics screenshot, a CSV of recent posts and their performance, paste in 5 of your best-performing posts.</p>
<p>If your Project is Sales → upload your pipeline, your win/loss data, a few closed deals.</p>
<p>Then write one line at the top of your Project Instructions: your big goal for this year.</p>
<p>Something like: &quot;My goal this year is to grow my LinkedIn to 100K followers.&quot; Or &quot;My goal this year is to close $2M in new revenue.&quot;</p>
<p>That one line changes everything. Now when you ask Claude &quot;should I post this?&quot; — it&#39;s not guessing what good means. It&#39;s checking your post against your real goal and your real numbers.</p>
<h2>The Real Unlock: Close the Feedback Loop</h2>
<p>Everything I just walked you through gets you to roughly the same place as a smart assistant who knows you. That&#39;s huge.</p>
<p>But the actual unlock is the next step, and it&#39;s what I&#39;m most excited about: building a closed feedback loop.</p>
<p>Every time you give feedback to your team, every time you edit something Claude made, every time you say &quot;no, change this&quot; — that information has to find its way back into Claude. Otherwise Claude keeps making the same kinds of mistakes, and nothing compounds.</p>
<p>Here&#39;s what I&#39;m experimenting with:</p>
<ul>
<li><strong>Record every team conversation.</strong> Granola, Otter, Wispr Flow — the transcript is captured automatically. Drop those transcripts into Claude weekly. Every time you said &quot;this doesn&#39;t sound right&quot; — that&#39;s a data point Claude needs.</li>
<li><strong>Make your edits visible.</strong> When you rewrite something Claude wrote, tell it what you changed and why. &quot;I cut the second paragraph because it sounded too motivational. I rewrote the close because it didn&#39;t have a CTA.&quot; Claude adjusts for next time.</li>
<li><strong>Capture feedback where AI can see it.</strong> Slack messages — yes. Phone calls — lost forever. Move more feedback into channels Claude can actually access.</li>
</ul>
<p>The speed of your decision-making goes up dramatically the second Claude starts predicting your judgment instead of asking for it every time.</p>
<h2>The Math</h2>
<p>Two hours of setup. $20/month. 12-word prompts that come back usable.</p>
<p>Compare that to the alternative: every chat starts at zero, you explain who you are, you correct the tone four times, you give up.</p>
<p>I&#39;ve spent 20 years building software. This is the highest-leverage time investment I&#39;ve made in my work this year. And I&#39;m not exaggerating.</p>
<p>The question isn&#39;t whether this works. It&#39;s whether you&#39;ll actually spend the two hours.</p>
<p><strong>What&#39;s the one project in your work that would benefit most from Claude knowing you deeply? Start there. Everything else follows.</strong></p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/4bcf3e25531d259e4f68a74082fdbd4e/blog-cover-the-2-hour-claude-setup.min.webp" length="0" type="image/webp"/>
        </item>
        <item>
            <title><![CDATA[Stop Typing. Start Building Your AI Brain.]]></title>
            <link>https://yabasha.dev/blog/stop-typing-start-building-your-ai-brain</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/stop-typing-start-building-your-ai-brain</guid>
            <pubDate>Sun, 24 May 2026 12:05:00 GMT</pubDate>
            <description><![CDATA[I spent the last month building a 5-level AI system that actually runs my content pipeline, audits my channels, and scores podcast guests in under 10 minutes. Here's exactly what I did — and what I'd change.]]></description>
            <content:encoded><![CDATA[<h1>Stop Typing. Start Building Your AI Brain.</h1>
<p>Last week I caught myself typing the same context into Claude for the third time in one day. Who I am, what I&#39;m building, what my voice sounds like. Three separate chats, three identical walls of text. That&#39;s when it hit me — I was using AI like a search engine instead of building it like a teammate.</p>
<p>Here&#39;s the thing most people miss: AI tools are useless without organized knowledge underneath them. You can prompt all day, but if your data lives in six different apps and your voice lives in your head, every output starts from zero.</p>
<p>I spent the last month building a five-level AI system. Not theoretical. Not &quot;excited to share.&quot; A system that actually runs my content pipeline, audits my channels, and scores my podcast guests in under 10 minutes.</p>
<p>Here&#39;s exactly what I did — and what I&#39;d change.</p>
<h2>Level 1: Stop Typing, Start Talking</h2>
<p>Allie Miller told me something that changed how I work: the best prompting is complaining to your AI. Voice gives the model 10x more context than typing. You naturally explain the background, mention edge cases, give examples — without thinking about it.</p>
<p>I use WisprFlow because it handles both Russian and English. For longer recordings — conference talks, interviews — I use Trint. Every podcast episode gets transcribed automatically.</p>
<p>If you&#39;re still typing prompts, that&#39;s the first thing I&#39;d change this week.</p>
<h2>The Part Everyone Skips: Context Files</h2>
<p>Every AI tool I use has access to a small set of files about me. They don&#39;t change often, but they transform every output from generic to personal.</p>
<ul>
<li><strong>Voice profile</strong> — how I write, what I sound like, what I hate</li>
<li><strong>Fact dossier</strong> — my background, companies, what I won&#39;t talk about publicly</li>
<li><strong>Anti-AI writing guide</strong> — patterns I refuse to publish in my voice</li>
<li><strong>Channel descriptions</strong> — who my audience is, what the cadence is</li>
</ul>
<p>The move: I asked Claude to interview me for 30 minutes. One question at a time. It built a draft voice profile from my answers. My team cleaned it up. Now anyone on my team can write a post that sounds like me — not because they&#39;re good at imitation, but because the context does the work.</p>
<p><strong>Action this week:</strong> Ask Claude to interview you for 30 minutes. Save the output. Use it across every project.</p>
<h2>The Database That Lives Outside Any One Tool</h2>
<p>Here&#39;s the mistake I made three times: locking all my data inside one AI platform. Tools change every three months. Today I love Claude. Tomorrow Codex ships something that makes me switch.</p>
<p>So my entire knowledge layer lives in an external Notion database. Organized by channel — YouTube, Newsletter, Podcast, Instagram, LinkedIn. Each one has performance data, transcripts, tone of voice, branding, a decisions log.</p>
<p>Every podcast episode gets its own page. When the transcript lands, the whole team gets a notification. That single trigger kicks off clip selection, newsletter drafting, social posts — all from one source.</p>
<h2>Level 2: Build AI on Top of Your Knowledge</h2>
<p>I use Claude Projects — one per platform. YouTube, Newsletter, Podcast, Instagram, LinkedIn. Each project is built on the context files and channel data I just described.</p>
<p>My team is testing Claude Cowork, the desktop version. It doesn&#39;t just read files — it opens them, edits documents, runs scripts on your machine. We have a master folder for YouTube production with subfolders for titles, thumbnails, scripting, distribution, and guest research. Each subfolder has its own instructions file.</p>
<p>The results are far more accurate on the first try.</p>
<h3>The Guest Evaluation System That Changed Everything</h3>
<p>When my team wants to vet a podcast guest, they paste a name into the Silicon Valley Girl Claude project. The project scores guests across 8 categories: Results, AI/Business factor, Personal story, Fame fit, Zeitgeist, Bridge factor, PR/Media presence, and Thought leadership.</p>
<p>Each one weighted. Each one benchmarked against our actual Notion data on how past episodes performed.</p>
<p>A list of 10 guests used to take 2-3 days. Now it takes under 10 minutes.</p>
<p>That&#39;s 8-12 hours back per week for the team. And we make better booking decisions because every guest gets scored against the same rubric.</p>
<h2>Level 3: Scheduled Agents That Run Without You</h2>
<p>This is where it gets real. Six agents running on timers for Silicon Valley Girl.</p>
<ul>
<li><strong>Monday 9am:</strong> Trending content research — 10 video ideas drop into a doc. By the time the team opens their laptops, the ideas are ready.</li>
<li><strong>Monday 10am:</strong> Weekly AI/tech/business news summary. Before our Monday standup, we already know what&#39;s worth talking about.</li>
<li><strong>Monday 12pm:</strong> Full channel health audit covering 12 months. What&#39;s working, what&#39;s slipping, what to double down on.</li>
<li><strong>Daily 12pm:</strong> Media mention scanner. When something good comes up, we know about it the same morning.</li>
<li><strong>Wednesday 12pm:</strong> Guest follow-up agent. Reads our declined-guests list, scores each one, finds strong news hooks from the past 7 days, and recommends who to re-approach.</li>
</ul>
<p>None of these agents replace anyone. They remove the part of the job that didn&#39;t need a human in the first place.</p>
<h2>Level 4: Vibe Code Your Own Tools</h2>
<p>Luis von Ahn, CEO of Duolingo, told me on the podcast that at Duolingo, every person has built their own dashboard. I loved that. So my team and I built one.</p>
<p>I did not write the code. I described what I wanted in Claude chat. Claude turned it into a technical prompt. Claude Code wrote and edited the actual files on my Mac. Eight to ten weeks between March and May.</p>
<p>The dashboard pulls from YouTube, Instagram, Threads, LinkedIn, X, and Beehiiv. A Python cron job monitors every video from the moment it publishes.</p>
<p>Three trigger moments:</p>
<ul>
<li><strong>Day 4:</strong> If click-through drops below 4% with 20,000+ impressions — early packaging signal.</li>
<li><strong>Day 7:</strong> If views below 12K, or 30-second retention below 50%.</li>
<li><strong>Day 14:</strong> If total views below the 30K KPI, the team gets a message.</li>
</ul>
<p>When a trigger fires, the system sends metrics to Claude and asks for a diagnostic. The output lands in our team channel. Costs fractions of a cent per video.</p>
<h3>AI Search Visibility</h3>
<p>Here&#39;s what most people don&#39;t think about yet: traffic is shifting from Google to chatbots. People ask ChatGPT, Perplexity, and Google AI Overview for podcast recommendations, tool recommendations, expert recommendations.</p>
<p>When I tested earlier this year, my podcast didn&#39;t show up at all. Zero visibility in AI search.</p>
<p>So we rebuilt the podcast site, created a Wikipedia page, updated descriptions on every platform. We track against 11 competitors with 50 prompts daily.</p>
<p>The honest before-and-after:</p>
<ul>
<li><strong>Before:</strong> SVG only appeared in branded prompts (&quot;who is Marina Mogilko?&quot;)</li>
<li><strong>Today:</strong> SVG appears in 6-8 prompts that don&#39;t mention my name at all</li>
</ul>
<p>Is that a lot? No. Is it more than zero? Yes. And every one of those positions is a slot we didn&#39;t have a month ago.</p>
<h2>Level 5: Close the Loop</h2>
<p>This is where almost no one is. It&#39;s also the level I&#39;m still building.</p>
<p>Every call we run — strategy, 1:1s, planning, guest prep — gets recorded with Granola. The notes end up in clean transcripts. The problem: those notes sit in Granola. They don&#39;t get into the Claude project that runs the rest of my business.</p>
<p>So when I ask Claude &quot;what did we decide about the editorial calendar last week?&quot; — it has no idea.</p>
<p>What we&#39;re working on: when a meeting wraps, the transcript and next-step list should move straight into the right Claude project. YouTube into the YouTube project. Podcast into the podcast project.</p>
<p>This is the gap I&#39;ve been thinking about for months. Almost no founder has solved it yet.</p>
<h2>The Uncomfortable Truth</h2>
<p>Everyone wants to skip to Level 5. Nobody wants to spend 2 hours on Level 1.</p>
<p>But here&#39;s what I&#39;ve learned after rebuilding this system three times: the boring foundation is the only thing that makes the exciting stuff work. Voice inputs are useless without organized data. Scheduled agents are useless without context files. Custom dashboards are useless without a clean knowledge layer.</p>
<p>The 2 hours you spend on Level 1 is the highest-leverage time investment you&#39;ll make this year.</p>
<p><strong>Question I&#39;m sitting with right now:</strong> Are you using AI like a search engine — or building it like a teammate that knows you?</p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/e921c027844a27f4cdf789493cd4701d/blog-cover-stop-typing-start-building-your-ai-brain.min.webp" length="0" type="image/webp"/>
        </item>
        <item>
            <title><![CDATA[What I Actually Build — AI Engineering, RAG Systems, Agents & Full-Stack]]></title>
            <link>https://yabasha.dev/blog/what-i-actually-build-ai-engineering-rag-systems-agents-full-stack</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/what-i-actually-build-ai-engineering-rag-systems-agents-full-stack</guid>
            <pubDate>Sun, 24 May 2026 08:22:00 GMT</pubDate>
            <description><![CDATA[A first-person overview of production AI engineering work spanning RAG systems, agent architectures, full-stack Laravel/Next.js delivery, and cost optimization — built for real traffic, not tutorials.]]></description>
            <content:encoded><![CDATA[<h1>What I Actually Build — AI Engineering, RAG Systems, Agents &amp; Full-Stack</h1>
<p>I have been building software for over twenty years. For the past several, that work has centered on production AI systems — the kind that handle real traffic, real data, and real failure modes. This post is a straight inventory of what I actually ship, how I architect it, and what breaks when you move beyond tutorials.</p>
<h2>RAG Systems That Survive Contact with Reality</h2>
<p>Retrieval-Augmented Generation is the backbone of most production AI products I build. But a RAG pipeline that works on a demo PDF is not the same as one that ingests ten thousand heterogeneous documents with mixed Arabic and English content, tables, headers, and inconsistent formatting.</p>
<h3>Chunking Is Not a Solved Problem</h3>
<p>The default &quot;split every 1000 characters&quot; approach fails the moment your source material has structure. I use recursive character splitting as a baseline, but the real work happens in semantic chunking — splitting at natural boundaries like section headers, paragraph breaks, and logical transitions. For structured documents, I preserve metadata (page numbers, section titles, source filenames) and attach it to every chunk so the retrieval layer can filter and rank with context.</p>
<p>For Arabic content, chunking gets harder. Arabic morphology is rich, sentence boundaries are not always obvious, and mixed Arabic-English documents create embedding drift if you are not careful. I typically chunk Arabic text slightly smaller than English equivalents to preserve semantic coherence across the embedding model&#39;s context window.</p>
<h3>Embeddings and Vector Stores</h3>
<p>I have shipped systems on both Pinecone and pgvector. Pinecone wins when you need managed scaling and hybrid search out of the box. pgvector wins when your retrieval layer is already tightly coupled to PostgreSQL, when you need transactional consistency between your application data and your vectors, or when you are optimizing for cost at scale.</p>
<p>My default embedding stack is text-embedding-3-large for English and multilingual content, with fallback to text-embedding-3-small for high-volume, lower-precision use cases. For Arabic-specific deployments, I evaluate Arabic-specific embedding models against a held-out test set before committing — generic multilingual models are better than they used to be, but they are not always the right tool.</p>
<h3>Retrieval Patterns Beyond Naive Similarity Search</h3>
<p>Cosine similarity on a single embedding is rarely enough. I run hybrid search — combining dense vector similarity with sparse BM25 keyword matching — and then re-rank with a cross-encoder or a lightweight reranking model. The dense retrieval gets you recall; the re-ranker gets you precision. Without the second step, you get plausible-sounding but irrelevant chunks at the top of your context window.</p>
<p>I also implement query expansion and hypothetical document embedding (HyDE) where appropriate: generate a synthetic answer to the user&#39;s question, embed that, and retrieve against it. It costs an extra LLM call, but the retrieval quality improvement is measurable.</p>
<h2>AI Agents: Tool-Calling, Guardrails, and Observability</h2>
<p>Agents are not magic. They are loops — a language model, a set of tools, and a control structure that decides what to call next. The hard part is making that loop reliable enough to expose to users.</p>
<h3>Tool-Calling Patterns</h3>
<p>I build agents with explicit tool schemas, not free-form prompting. Every tool has a typed input schema, a clear description, and a deterministic output. The LLM generates structured JSON to invoke tools, and I validate that JSON against the schema before execution. If the model hallucinates a parameter or sends malformed JSON, the validation layer catches it and returns a structured error back to the agent loop.</p>
<p>Tools fall into three categories in my systems: data retrieval (search, database queries), action execution (send email, create ticket, update record), and computation (math, formatting, validation). I never give an agent unrestricted write access without human confirmation — the blast radius is too large.</p>
<h3>Guardrails and Fallback Chains</h3>
<p>Every agent has input guardrails: PII detection, prompt injection filtering, and topic boundary checks. Every agent has output guardrails: format validation, safety checks, and confidence thresholds. If the model&#39;s output confidence is below a threshold, or if validation fails, the system falls back to a simpler chain or escalates to a human.</p>
<p>I implement fallback chains as explicit state machines, not implicit prompt engineering. If the primary model fails, the system tries a smaller model with a narrower prompt. If that fails, it returns a graceful degradation message and logs the incident for review.</p>
<h3>Observability with Langfuse</h3>
<p>You cannot debug what you cannot see. I instrument every agent trace with Langfuse: input prompts, tool calls, latencies, token counts, and error states. This is not optional in production. When a user reports a bad result, I need to reconstruct the exact chain of thought, see which tool was called with what parameters, and identify where the logic diverged from the intended path.</p>
<p>Langfuse also gives me cost attribution per trace, which matters when you are running multiple models and need to know which user workflows are expensive.</p>
<h2>Full-Stack Production: Laravel 12, Next.js 16, and React Native</h2>
<p>AI does not exist in a vacuum. It sits inside applications that have authentication, billing, permissions, mobile clients, and deployment pipelines. I build the full stack, not just the model layer.</p>
<h3>Laravel 12 + Next.js 16 Monorepo</h3>
<p>My default backend is Laravel 12. It handles queues, scheduling, database migrations, API authentication, and event broadcasting without ceremony. For the frontend, I use Next.js 16 with the App Router, server components for initial data fetching, and client components for interactive AI chat interfaces.</p>
<p>The monorepo structure keeps the API contracts tight. Laravel exposes typed API resources; Next.js consumes them with generated TypeScript types. When the backend schema changes, the frontend build breaks immediately — which is exactly what I want.</p>
<h3>React Native for Mobile</h3>
<p>When the product needs a mobile presence, I ship React Native apps that share business logic with the web frontend. The AI chat interface, streaming responses, and tool-call UIs are implemented once and adapted to mobile constraints. Push notifications for async agent completions are handled through Laravel&#39;s notification channels.</p>
<h2>Production vs. Tutorial AI: What Actually Breaks</h2>
<p>Tutorials show you the happy path. Production is the other 90% of the work.</p>
<h3>Cost</h3>
<p>LLM costs scale linearly with traffic and super-linearly with context window size. A naive RAG system that dumps 8,000 tokens of retrieved context into every request will bankrupt you at scale. I implement aggressive context compression, selective retrieval (only fetch what you need), and model routing: use the cheapest model that can handle the task, and escalate to expensive models only when necessary.</p>
<h3>Latency</h3>
<p>Users will not wait five seconds for a chat response. I optimize latency at every layer: faster embedding models, cached retrieval results, streaming responses to the client, and pre-computed summaries for common queries. For high-latency operations — like multi-step agent workflows — I switch to an async pattern: acknowledge the request, process in the background, and notify the user when complete.</p>
<h3>Hallucinations</h3>
<p>Hallucinations do not go away with better prompting. You need grounding: every generated claim must be traceable to a retrieved source. I implement citation requirements in the prompt, parse citations from the model output, and verify that cited chunks actually exist in the retrieval set. If the model cannot cite a source, the answer is flagged for review.</p>
<h2>Architecture Patterns</h2>
<p>Here is a simplified view of a production RAG + Agent system I have shipped:</p>
<pre><code>┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│   Next.js 16    │────▶│   Laravel 12     │────▶│  Vector Store   │
│   (Frontend)    │     │   (API / Queue)  │     │  (pgvector)     │
└─────────────────┘     └──────────────────┘     └─────────────────┘
                               │
                               ▼
                        ┌──────────────────┐
                        │   AI Agent Loop  │
                        │  (Tool Calling)  │
                        └──────────────────┘
                               │
              ┌────────────────┼────────────────┐
              ▼                ▼                ▼
        ┌──────────┐    ┌──────────┐    ┌──────────┐
        │  Search  │    │  Action  │    │  LLM API │
        │  (RAG)   │    │  Tools   │    │ (Router) │
        └──────────┘    └──────────┘    └──────────┘
</code></pre>
<p>The LLM API layer routes between models based on task complexity: small model for classification and routing, large model for generation and reasoning. Every call is traced, every cost is logged, every failure triggers a fallback.</p>
<h2>Cost Optimization Strategies</h2>
<p>Model routing is the single biggest lever. I classify incoming requests by complexity and route them to the appropriate model tier. Simple queries hit a fast, cheap model. Complex reasoning escalates to a larger model. This alone can reduce costs by 60-70% without measurable quality loss.</p>
<p>Caching is the second lever. Embedding results, retrieval sets, and common LLM responses are cached with TTLs appropriate to the data freshness requirements. For batch workloads — like nightly document ingestion — I use batching APIs where available to cut per-request overhead.</p>
<h2>The MENA Context: Arabic NLP and Regional Scaling</h2>
<p>Building AI for the Middle East and North Africa introduces constraints that Western-centric tutorials ignore. Arabic NLP requires handling diacritics, dialectal variation, and right-to-left UI flows. Compliance requirements vary by country: data residency, content moderation standards, and regulatory approval for AI-generated outputs.</p>
<p>I design systems with regional modularity from the start: embedding models that handle Arabic well, UI components that support RTL layouts, and deployment architectures that can pin data to specific geographic regions when required. Scaling in MENA also means optimizing for mobile-first usage and variable network conditions — lightweight APIs, aggressive caching, and offline-capable mobile features.</p>
<h2>Evaluation Loops: Automated Quality Checks</h2>
<p>Shipping AI features without evaluation is reckless. I run automated quality checks on every deployment: retrieval accuracy (did we fetch the right chunks?), answer relevance (does the generated response address the question?), citation correctness (are the sources real and relevant?), and safety (no PII leaks, no policy violations).</p>
<p>These checks run against a held-out evaluation dataset that grows over time. When a new failure mode appears in production, I add an example to the eval set and fix the system. The eval suite runs in CI before every deploy. If scores regress, the deploy is blocked.</p>
<h2>What This Means for Your Project</h2>
<p>If you are building AI products, the gap between prototype and production is wider than it looks. I bridge that gap — architecting systems that retrieve accurately, reason reliably, scale affordably, and fail gracefully. Whether you need a RAG pipeline for internal documents, an agent that interacts with your existing APIs, or a full-stack product with mobile and web clients, the patterns above are how I ship.</p>
<p>If you want to talk architecture, model selection, or regional deployment strategy, <a href="/contact">get in touch</a>.</p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/f0fc74b142de102f0b78fa1488507466/cover-ai-engineering-rag-agents-fullstack.webp" length="0" type="image/webp"/>
        </item>
        <item>
            <title><![CDATA[AI's $900B Week: Anthropic Overtakes OpenAI, GitHub Gets Hacked, and Copilot's Price Bomb]]></title>
            <link>https://yabasha.dev/blog/ais-900b-week-anthropic-overtakes-openai-github-gets-hacked-and-copilots-price-bomb</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/ais-900b-week-anthropic-overtakes-openai-github-gets-hacked-and-copilots-price-bomb</guid>
            <pubDate>Sat, 23 May 2026 11:00:00 GMT</pubDate>
            <description><![CDATA[Anthropic closes a $900B funding round, Claude Mythos finds 10,000 bugs in 30 days, GitHub gets hacked via a poisoned VS Code extension, and Copilot users face a pricing shock. Here's the full breakdown.]]></description>
            <content:encoded><![CDATA[<h1>AI&#39;s $900B Week: Anthropic Overtakes OpenAI, GitHub Gets Hacked, and Copilot&#39;s Price Bomb</h1>
<p>This week in AI wasn&#39;t a slow burn. It was a five-alarm fire.</p>
<p>Anthropic is about to close a $30 billion funding round at a $900 billion valuation — vaulting past OpenAI as the world&#39;s most valuable AI startup. Meanwhile, GitHub got breached by a poisoned VS Code extension. And if you pay for Copilot, your bill is about to get a reality check.</p>
<p>Let&#39;s break down the chaos.</p>
<hr>
<h2>Anthropic&#39;s $900B Moment</h2>
<p>The numbers are staggering. Sequoia, Dragoneer, Altimeter, and Greenoaks are co-leading a funding round that values Anthropic at over $900 billion. Each firm is putting in roughly $2 billion. Founders Fund, General Catalyst, and a dozen others are piling in.</p>
<p>For context:</p>
<ul>
<li><strong>March 2025:</strong> $61.5B valuation</li>
<li><strong>September 2025:</strong> $183B (Series F, $13B raised)</li>
<li><strong>February 2026:</strong> $380B (Series G, $30B raised)</li>
<li><strong>May 2026:</strong> $900B+ (current round)</li>
</ul>
<p>That&#39;s a <strong>15x valuation surge in 14 months.</strong></p>
<p>Eight of the Fortune 10 are now Anthropic customers. Over 1,000 enterprise accounts spend more than $1 million per year on Claude. And Anthropic models now power an estimated 4% of all GitHub public commits worldwide.</p>
<p>Both Anthropic and OpenAI are expected to go public this fall. OpenAI confidentially filed its S-1 this week targeting a September IPO at $1T+. Bankers expect Anthropic to list at $400–500B — well below the private valuation, which tells you everything about the gap between private markets and public reality.</p>
<hr>
<h2>Claude Mythos: 10,000 Bugs in 30 Days</h2>
<p>Remember when Anthropic announced Claude Mythos Preview back in April? The model so powerful they refused to release it to the public?</p>
<p>The results are in. Under Project Glasswing — Anthropic&#39;s $100M invitation-only cybersecurity consortium — Mythos found <strong>over 10,000 critical vulnerabilities</strong> across the world&#39;s most systemically important software in just one month.</p>
<p>The numbers are wild:</p>
<ul>
<li><strong>83.1%</strong> on the CyberGym vulnerability reproduction benchmark (vs. 66.6% for Opus 4.6)</li>
<li><strong>181 working Firefox exploits</strong> (vs. 2 for Opus 4.6)</li>
<li>Discovered <strong>CVE-2026-4747</strong>, a 17-year-old remote code execution vulnerability in FreeBSD</li>
<li>Found a <strong>27-year-old vulnerability in OpenBSD</strong> — a system famous for its security focus</li>
</ul>
<p>Most Glasswing partners each found hundreds of critical vulnerabilities in their own software. Several reported their bug-finding rate increased by <strong>10x or more.</strong></p>
<p>Japan&#39;s finance minister has already secured Mythos access. The country&#39;s three largest banks are deploying it against cyberattacks. India has demanded fair access. And Anthropic is now working with the US and allied governments to expand access — while still refusing to release it publicly.</p>
<p>Their reasoning? No company — including Anthropic — has built safeguards strong enough to prevent misuse of models with these capabilities.</p>
<hr>
<h2>Karpathy Goes to Anthropic</h2>
<p>The biggest talent move of the year. Andrej Karpathy — OpenAI co-founder, former Tesla AI director, the godfather of vibe-coding — officially joined Anthropic.</p>
<p>He&#39;s building a team focused on <strong>using Claude to accelerate pre-training research itself.</strong> That&#39;s recursive self-improvement territory: AI training AI.</p>
<p>On X, Karpathy wrote: &quot;I think the next few years at the frontier of LLMs will be especially formative. I am very excited to join the team here and get back to R&amp;D.&quot;</p>
<p>Nick Joseph, Anthropic&#39;s pretraining team lead, confirmed Karpathy will work under him on pre-training research. The implication is clear: Anthropic is going all-in on making Claude better at making itself better.</p>
<hr>
<h2>GitHub Got Hacked (And It&#39;s Embarrassing)</h2>
<p>A group called Team PCP put GitHub&#39;s source code up for sale on a dark web cybercrime forum. GitHub confirmed someone accessed their private repositories.</p>
<p>How did it happen? Not some zero-day exploit. Not a nation-state actor. <strong>A poisoned VS Code extension on a GitHub employee&#39;s laptop.</strong></p>
<p>Attackers claim around 3,800 repos were stolen. GitHub says customer data is safe and has rotated all secrets. Team PCP is selling the code for $95,000, threatening to leak it for free if nobody buys.</p>
<p>The lesson: your security is only as strong as the last extension you installed. Credential masking and sandboxing aren&#39;t paranoia — they&#39;re survival.</p>
<hr>
<h2>Copilot&#39;s Pricing Time Bomb</h2>
<p>Starting June 1, GitHub Copilot moves to <strong>usage-based billing.</strong> The old flat-rate premium request system is dead.</p>
<p>The base price stays the same — $39/month for Pro Plus with $39 of credits included. But here&#39;s the catch: credits get consumed based on tokens (input, output, cached), and heavy users are projecting their costs could jump from $40/month to <strong>$900/month.</strong></p>
<p>GitHub is also ending annual plans.</p>
<p>The economics are simple: agents cost real compute, and flat-rate pricing was always a subsidy. The era of unlimited AI for a fixed fee is ending — everywhere.</p>
<hr>
<h2>The SpaceX Compute Deal</h2>
<p>Anthropic agreed to pay SpaceX <strong>$45 billion over three years</strong> for computing power. That&#39;s $1 billion per month — roughly 5.5% of SpaceX&#39;s entire annual revenue.</p>
<p>What does that buy? Access to SpaceX data centers with hundreds of megawatts of power and hundreds of thousands of Nvidia chips.</p>
<p>But Anthropic isn&#39;t stopping there. They&#39;re in early talks with Microsoft about using custom Maia 200 chips. They already have deep AWS and Google Cloud partnerships. The strategy is clear: <strong>don&#39;t depend on one supplier, and get as much compute as humanly possible.</strong></p>
<p>When a company is spending $1B/month on compute, you know the AI race isn&#39;t slowing down.</p>
<hr>
<h2>Claude Code Updates</h2>
<p>A few things shipped this week that matter for developers:</p>
<p><strong>v2.1.150</strong> (May 23) — Internal infrastructure improvements.</p>
<p><strong>v2.1.149</strong> (May 22) — The <code>/usage</code> command now shows a per-category breakdown: skills, subagents, plugins, and per-MCP-server costs. If you&#39;ve been wondering where your tokens are going, now you know.</p>
<p><strong>v2.1.148</strong> (May 22) — Fixed the Bash tool returning exit code 127 on every command (a regression from v2.1.147).</p>
<p><strong>v2.1.147</strong> (May 21) — Pinned background sessions (<code>Ctrl+T</code> in Claude agents) now stay alive when idle and are restarted in place to apply updates. New <code>/diff</code> scrolling in detail view.</p>
<p><strong>v2.1.145</strong> (May 19) — Added <code>claude agents --json</code> to list live Claude sessions as JSON for scripting.</p>
<p><strong>v2.1.142</strong> (May 14) — New <code>claude agents</code> flags: <code>--add-dir</code>, <code>--settings</code>, <code>--mcp-config</code>, <code>--plugin-dir</code>, <code>--permission-mode</code>, <code>--model</code>, <code>--effort</code>, and <code>--dangerously-skip-permissions</code>.</p>
<p>And the weekly limits increase is still live — <strong>50% more through July 13</strong> for Pro, Max, Team, and Enterprise.</p>
<hr>
<h2>Other Notable Moves</h2>
<ul>
<li><strong>DeepSeek V4-Pro</strong> made its 75% discount permanent. $0.435/M input tokens — 11x cheaper than GPT-5.5 at comparable performance.</li>
<li><strong>Anthropic acquired Stainless</strong> for $300M to enhance API SDK and MCP server integration.</li>
<li><strong>Gemini CLI dies June 18.</strong> Google is replacing it with Antigravity CLI, rebuilt from scratch in Go with multi-agent orchestration.</li>
<li><strong>OpenAI&#39;s Codex</strong> can now control your Mac even when the screen is locked — via a new &quot;Locked Use&quot; feature that integrates with macOS security architecture.</li>
<li><strong>SAP integrated Claude</strong> into Joule via MCP, enabling AI agents to handle finance, HR, procurement, and logistics autonomously.</li>
<li><strong>Claude Managed Agents</strong> shipped three new features on May 6: Dreaming, Outcomes, and Multiagent Orchestration.</li>
<li><strong>Cerebras</strong> priced its IPO at $185, popped 68% on debut.</li>
</ul>
<hr>
<h2>The Takeaway</h2>
<p>The AI industry just had its most concentrated week of capital deployment, security failures, and talent reshuffling in history.</p>
<p>Anthropic isn&#39;t just catching up to OpenAI — it&#39;s lapping them on valuation, on enterprise adoption, and on the raw compute arms race. The Karpathy hire signals something bigger than a talent acquisition: it&#39;s Anthropic betting that the next leap comes from AI improving its own training.</p>
<p>Meanwhile, GitHub&#39;s breach is a reminder that the tooling layer is the weakest link. And Copilot&#39;s pricing shift is the first crack in the flat-rate AI era.</p>
<p>The question isn&#39;t whether AI is getting more expensive. It&#39;s whether the value scales faster than the bill.</p>
<hr>
<p><em>Published May 23, 2026 | Tags: AI, Anthropic, OpenAI, Claude, GitHub, Cybersecurity, Funding</em>
<em>Reading time: ~8 minutes</em></p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/c087028547ac7249f91a9b878e7ab206/ai-news-cover.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Dead Sea, Jordan — Isometric Diorama #23]]></title>
            <link>https://yabasha.dev/blog/dead-sea-jordan-isometric-diorama-23</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/dead-sea-jordan-isometric-diorama-23</guid>
            <pubDate>Sat, 23 May 2026 08:00:00 GMT</pubDate>
            <description><![CDATA[Foggy Saturday morning over the lowest point on Earth. Isometric diorama of the Dead Sea with floating tourist and salt formations, weather-integrated at 21°C.]]></description>
            <content:encoded><![CDATA[<h1>Dead Sea, Jordan — Isometric Diorama #23</h1>
<p>Fog doesn&#39;t whisper at the Dead Sea. It swallows. </p>
<p>Saturday morning hung heavy at 430 meters below sea level—the air thick enough to chew, the water a bruised turquoise slab under a grey lid. 21°C and zero visibility. The salt formations didn&#39;t gleam; they lurked. White crust against grey nothing. You float there, arms out, and let the density do the work. 34% salinity means you can&#39;t sink even if your ego wants to.</p>
<p>That&#39;s the mood I chased. Not a postcard. A lungful of wet air.</p>
<h2>The Setup</h2>
<p>This series is a daily discipline: one Jordanian landmark, rebuilt in miniature, force-fed Amman&#39;s real-time weather every morning. No do-overs. The weather dictates the palette, the lighting, the emotional temperature. Rain means mud. Sun means bleached stone. Today meant fog, and fog meant restraint.</p>
<p>I built the foundation in Blender—hard-surface modeling for the salt terraces, simple geometry for the figure. True 30-degree isometric projection. Not the fake 45° &quot;isometric&quot; that games slap on everything. The camera locked. The grid obeyed. Then into Procreate for paint-over: smudging edges, adding grit to the salt crystals, pushing the fog until it felt like cotton balls stuffed into every corner.</p>
<p>FLUX handled the environmental atmosphere—generating base sky and fog density from the live weather feed, which I then beat into submission with manual paint. Think of it as a smart intern who brings the coffee, but you still pick the beans.</p>
<h2>Why the Dead Sea?</h2>
<p>Jordan doesn&#39;t lack icons. Petra gets the glory. Wadi Rum gets the cinematographers. But the Dead Sea is where the land gives up. It&#39;s the lowest point on Earth, a body of water that refuses to let you drown. Biblical, sure. But more than that, absurd. Water you can&#39;t sink in. Mud people smear on their faces for vanity. Salt that crusts on everything like a bad attitude.</p>
<p>I chose it because it resists prettiness. You can&#39;t glamorize fog and salt</p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/296996a87cf2d05e5694f194e4a728ef/art-post-final.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Anthropic's $10.9B Quarter, Claude Code's 50% Boost, and 20+ Google I/O Drops — Your AI Week in 5 Minutes]]></title>
            <link>https://yabasha.dev/blog/anthropics-109b-quarter-claude-codes-50-boost-and-20-google-io-drops-your-ai-week-in-5-minutes</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/anthropics-109b-quarter-claude-codes-50-boost-and-20-google-io-drops-your-ai-week-in-5-minutes</guid>
            <pubDate>Thu, 21 May 2026 11:00:00 GMT</pubDate>
            <description><![CDATA[Anthropic closes in on profitability with $10.9B Q2, Claude Code gets 50% more headroom, Google drops 22 AI announcements, and DeepSeek undercuts everyone. Here's what matters for AI engineers.]]></description>
            <content:encoded><![CDATA[<h1>Anthropic&#39;s $10.9B Quarter, Claude Code&#39;s 50% Boost, and 20+ Google I/O Drops — Your AI Week in 5 Minutes</h1>
<p>May 21, 2026</p>
<hr>
<p>The AI industry just had one of its wildest weeks. Anthropic is closing in on profitability, Claude Code got a major upgrade, and Google shipped 22 announcements in a single day. Let&#39;s break down what actually matters.</p>
<h2>Anthropic Nears First Quarterly Profit — $10.9B Q2 Projected</h2>
<p>Here&#39;s the headline that changes everything: <strong>Anthropic expects $10.9 billion in Q2 revenue</strong> — more than double its $4.8 billion Q1. That would push the company to an estimated <strong>$559 million operating profit</strong>.</p>
<p>Let that sink in. Two years ago, Anthropic was burning cash faster than a rocket engine. Now they&#39;re on the verge of profitability, driven by one thing: <strong>Claude</strong>.</p>
<p>Software developers aren&#39;t just experimenting anymore. They&#39;re deploying. Enterprise teams are running Claude&#39;s top-tier Mythos model to hunt vulnerabilities in production code. The demand isn&#39;t theoretical — it&#39;s revenue.</p>
<h2>$1.25 Billion/Month for SpaceX&#39;s Colossus</h2>
<p>To handle that demand, Anthropic signed a deal that makes your cloud bill look like a rounding error: <strong>$1.25 billion per month</strong> to rent SpaceX&#39;s Colossus data centers. That&#39;s 220,000+ NVIDIA GPUs across 300 megawatts of compute.</p>
<p>The deal runs through May 2029. Total value: roughly <strong>$45 billion</strong>.</p>
<p>Why rent from a competitor? Because building your own data centers takes years. Anthropic needs compute <em>now</em> — and xAI had surplus capacity sitting idle. It&#39;s a pragmatic move that prioritizes shipping over ideology.</p>
<h2>Claude Code v2.1.146: <code>/simplify</code> Is Now <code>/code-review</code></h2>
<p>For daily Claude Code users, the most actionable update is the <strong>slash command rename</strong>: <code>/simplify</code> is now <code>/code-review</code>. Same functionality, clearer name, and a new feature — <strong>effort levels</strong>.</p>
<p>Run <code>/code-review high</code> and Claude digs deeper into your codebase. Run it at default for a quick pass. The depth is yours to dial.</p>
<p><strong>Other fixes in this release:</strong></p>
<ul>
<li>Windows PowerShell crash resolved (the pwsh regression from v2.1.118)</li>
<li>Improved CLAUDE.md context understanding</li>
<li>Better performance on large repositories</li>
</ul>
<p>Update with <code>claude update</code> and you&#39;re set.</p>
<h2>50% More Claude Code — Through July 13</h2>
<p>The timing couldn&#39;t be better. <strong>Anthropic bumped weekly limits 50%</strong> for all Pro, Max, Team, and Enterprise users. The promotion runs through <strong>July 13, 2026</strong>.</p>
<p>What that means in practice:</p>
<ul>
<li><strong>Pro ($20/mo):</strong> ~40 → 60 hours of Sonnet weekly, 8 → 12 hours of Opus</li>
<li><strong>Max 5x ($100/mo):</strong> ~50 → 75 hours of Opus weekly</li>
<li><strong>Max 20x ($200/mo):</strong> ~200 → 300 hours of Opus weekly</li>
</ul>
<p>The move is clearly aimed at keeping developers from migrating to Codex. The 50% buffer gives you room to experiment — and if you pair it with smart routing (Sonnet for execution, Opus for architecture), you can stretch even further.</p>
<h2>Google I/O: 22 Drops in 24 Hours</h2>
<p>Google didn&#39;t just compete — they flooded the zone. The I/O 2026 keynote delivered:</p>
<ul>
<li><strong>Gemini 3.5 Flash</strong> — beats 3.1 Pro on coding benchmarks at half the price</li>
<li><strong>Gemini Omni Flash</strong> — first model combining reasoning with video generation</li>
<li><strong>Gemini Spark</strong> — 24/7 personal agent that runs while your laptop is closed</li>
<li><strong>Antigravity 2.0</strong> — multi-agent desktop platform for parallel AI work</li>
<li><strong>Search Agents</strong> — agentic AI embedded directly in Google Search</li>
<li><strong>Gemini for Mac OS</strong> — free, available today</li>
<li><strong>Android XR smart glasses</strong> — Samsung + Google collaboration</li>
<li><strong>CodeMender API</strong> — Google&#39;s security agent responding to Mythos</li>
</ul>
<p>The shift is clear: Google is moving from chatbot to agent platform. Gemini Spark running 24/7 while your laptop sleeps? That&#39;s not a feature — it&#39;s a paradigm.</p>
<h2>DeepSeek V4 Enters the Arena</h2>
<p>DeepSeek launched <strong>V4</strong> with aggressive pricing:</p>
<ul>
<li><strong>V4-Flash:</strong> $0.28/M output tokens</li>
<li><strong>V4-Pro:</strong> $2.19/M output tokens</li>
</ul>
<p>They&#39;re also building a <strong>terminal-native coding agent</strong> to challenge Claude Code and Codex directly. The pricing undercut is massive — we&#39;re talking 10-50x cheaper than frontier models for comparable performance.</p>
<p>For cost-sensitive teams, this is worth watching closely.</p>
<h2>Other Notable Moves</h2>
<ul>
<li><strong>Anthropic acquired Stainless</strong> — the dev tools startup (founded by ex-Stripe engineer Alex Rattray) that makes API wrappers easier</li>
<li><strong>KPMG deploying Claude to 270,000 employees</strong> via Digital Gateway and Blaze</li>
<li><strong>Claude for Small Business</strong> launched — 15 ready-to-run workflows plugging into QuickBooks, HubSpot, Canva, and more</li>
<li><strong>Anthropic Mythos AI flagged by Cloudflare</strong> — the model can chain bugs into exploits, prompting financial regulator briefings</li>
<li><strong>Nvidia Vera CPU</strong> announced targeting the $200B agentic AI market</li>
<li><strong>Mistral AI acquired Emmi AI</strong> — entering physical/industrial AI</li>
<li><strong>OpenAI won against Musk&#39;s lawsuit</strong> — jury cleared the path to a potential trillion-dollar valuation</li>
</ul>
<h2>The Takeaway</h2>
<p>We&#39;re in the infrastructure phase. Anthropic is spending $45B on compute to keep Claude scaling. Google is shipping agent platforms faster than teams can evaluate them. DeepSeek is commoditizing inference. And Claude Code just got 50% more headroom.</p>
<p>For AI engineers, the signal is clear: <strong>the tools are maturing, the costs are dropping, and the competition is fierce.</strong> Pick your stack, learn the routing strategies, and build.</p>
<p>The window where &quot;using AI&quot; gives you an advantage is closing. The new edge is <strong>how</strong> you use it.</p>
<hr>
<p><em>Follow me on <a href="https://x.com/yabasha">X.com/@yabasha</a> for daily AI engineering insights.</em></p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/456ded9e5a54292c4bfc72e0e746b7ac/ai-news-cover.webp" length="0" type="image/webp"/>
        </item>
        <item>
            <title><![CDATA[Petra, Jordan — Isometric Diorama #21]]></title>
            <link>https://yabasha.dev/blog/petra-jordan-isometric-diorama-21</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/petra-jordan-isometric-diorama-21</guid>
            <pubDate>Thu, 21 May 2026 08:00:00 GMT</pubDate>
            <description><![CDATA[Petra's Treasury reimagined as a miniature isometric diorama — today's weather: overcast with light rain, 16°C.]]></description>
            <content:encoded><![CDATA[<h2>Petra, Jordan — Isometric Diorama</h2>
<p>Today&#39;s weather in Amman: 🌦️ 16°C — overcast with light rain.</p>
<p>Petra&#39;s Treasury (Al-Khazneh) carved into the rose-red Siq canyon, reimagined as a miniature isometric diorama. The Nabataean engineers who built this 2,000 years ago would probably find the cartoon version charming.</p>
<p>This is part of my daily series — one Jordanian landmark per day, rendered in isometric 3D, weather-integrated. Seven cities rotating: Amman, Petra, Aqaba, Wadi Rum, Dead Sea, Jerash, Karak.</p>
<p><em>Generated with Vertex AI Gemini, weather from wttr.in.</em></p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/76ecc616c44a48cec95e16c02c1c8f18/art-post-final.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[No Single Model Wins May 2026 — And That's The Best News For Builders]]></title>
            <link>https://yabasha.dev/blog/no-single-model-wins-may-2026-and-thats-the-best-news-for-builders</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/no-single-model-wins-may-2026-and-thats-the-best-news-for-builders</guid>
            <pubDate>Wed, 20 May 2026 12:00:00 GMT</pubDate>
            <description><![CDATA[No single model dominates May 2026. Kimi K2.6, DeepSeek V4, GLM-5.1, and MiniMax M2.7 each own a different lane. Here's the practical guide to picking the right model for the right task.]]></description>
            <content:encoded><![CDATA[<h1>No Single Model Wins May 2026 — And That&#39;s The Best News For Builders</h1>
<p>Last month I told you the open-source price war was over. China won. That was the headline.</p>
<p>Tonight I&#39;m telling you something more important: the era of one-size-fits-all AI models is dead.</p>
<p>And that&#39;s the best thing that&#39;s happened to builders in 2026.</p>
<h2>The Leaderboard Nobody Expected</h2>
<p>Pull up llm-stats.com right now. The top 20 reads like a battlefield report:</p>
<table>
<thead>
<tr>
<th>Rank</th>
<th>Model</th>
<th>Score</th>
<th>Price/M</th>
<th>Context</th>
</tr>
</thead>
<tbody><tr>
<td>1</td>
<td>Claude Mythos Preview</td>
<td>70.2</td>
<td>N/A</td>
<td>—</td>
</tr>
<tr>
<td>2</td>
<td>GPT-5.5</td>
<td>63.4</td>
<td>$7.78</td>
<td>2,016K</td>
</tr>
<tr>
<td>6</td>
<td><strong>Gemini 3.5 Flash</strong> 🆕</td>
<td>59.0</td>
<td>$2.33</td>
<td>1,048K</td>
</tr>
<tr>
<td>7</td>
<td><strong>Kimi K2.6</strong></td>
<td>58.5</td>
<td>$1.29</td>
<td>262K</td>
</tr>
<tr>
<td>20</td>
<td>DeepSeek V4 Pro Max</td>
<td>51.8</td>
<td>$1.93</td>
<td>1,000K</td>
</tr>
</tbody></table>
<p>Notice something? The top 7 contains models from <strong>5 different companies</strong> across 3 continents. Claude from Anthropic (US), GPT from OpenAI (US), Gemini from Google (US), Kimi from Moonshot AI (China), and DeepSeek from DeepSeek (China).</p>
<p>That&#39;s not a ranking. That&#39;s a stalemate.</p>
<h2>The Three-Way Split</h2>
<p>Here&#39;s what the benchmarks actually show when you dig past the composite scores:</p>
<h3>Reasoning &amp; Intelligence</h3>
<p>On the Artificial Analysis Intelligence Index v4.0 — the closest thing to a neutral scoreboard:</p>
<ul>
<li><strong>Kimi K2.6</strong>: 54 (top open-weight)</li>
<li><strong>DeepSeek V4 Pro Max</strong>: 52</li>
<li><strong>GLM-5.1</strong>: 51</li>
</ul>
<p>All within 3 points. Statistical noise.</p>
<p>But the moment you slice by task type, the models diverge hard:</p>
<ul>
<li><strong>Kimi K2.6</strong> dominates single-shot reasoning. Best agentic score on BenchLM (73.1). SWE-bench Pro at 58.6%.</li>
<li><strong>DeepSeek V4 Pro Max</strong> wins long-horizon agentic work. GDPval-AA: 1554 ELO (highest among open-weight). LiveCodeBench: 93.5%.</li>
<li><strong>GLM-5.1</strong> owns the independent coding signal. LMArena Code Arena: 1530 Elo (only one of the three with a public, human-preference coding number).</li>
</ul>
<p>Three models. Three different strengths. Zero overlap.</p>
<h3>The MiniMax Wildcard</h3>
<p>MiniMax M2.7 dropped last week and it&#39;s doing something nobody else is: <strong>self-evolution</strong>.</p>
<p>This 230B MoE model (10B active) autonomously ran 100 improvement cycles on machine learning competitions. From the official report:</p>
<blockquote>
<p>&quot;The ML models trained by M2.7 continuously achieved higher medal rates over time. The best run achieved 9 gold medals, 5 silver medals, and 1 bronze medal.&quot;</p>
</blockquote>
<p>66.6% medal rate — tying Gemini 3.1 and trailing only Opus 4.6 and GPT-5.4. At $0.30/M tokens.</p>
<p>On SWE-Pro: 56.22%. GDPval-AA: 1495 ELO (highest among open-source). MM Claw: 62.7%, approaching Sonnet 4.6.</p>
<p>MiniMax isn&#39;t trying to be the smartest model. It&#39;s trying to be the model that makes itself smarter.</p>
<h3>Ring-2.6-1T: The Unverified Giant</h3>
<p>InclusionAI (Ant Group) dropped Ring-2.6-1T on May 8 under MIT license. 1 trillion parameters, 63B active. The numbers on paper are insane:</p>
<ul>
<li>AIME 2026: 95.83 (on par with DeepSeek V4 Pro Max)</li>
<li>ARC-AGI-V2: 66.18 (beats Gemini 3.1 Pro and Claude Opus 4.7)</li>
<li>PinchBench: 87.60 (beats GPT-5.4 xHigh)</li>
<li>ClawEval: 63.82 (beats GPT-5.4 and Gemini 3.1 Pro)</li>
</ul>
<p>But here&#39;s the catch: <strong>no neutral third-party verification exists yet.</strong> No Artificial Analysis Intelligence Index entry. No independent LiveCodeBench. No independent SWE-bench run.</p>
<p>Vendor-reported benchmarks in 2026 have a track record of melting on contact with independent harnesses. Shortlist Ring-2.6. Don&#39;t standardize on it.</p>
<h2>The Real Story: Specialization Won</h2>
<p>Forget the &quot;which model is best&quot; question. It&#39;s the wrong question.</p>
<p>The right question is: <strong>which model is best for THIS task?</strong></p>
<p>Here&#39;s the cheat sheet I&#39;m actually using:</p>
<table>
<thead>
<tr>
<th>Use Case</th>
<th>Pick This</th>
<th>Why</th>
</tr>
</thead>
<tbody><tr>
<td>High-volume CI agents, test generation</td>
<td>DeepSeek V4-Flash</td>
<td>$0.14/M input, 79% SWE-bench. Order of magnitude cheaper.</td>
</tr>
<tr>
<td>Complex agentic coding loops</td>
<td>Kimi K2.6</td>
<td>Best neutral intelligence index (54), 83% cache-hit discount on input.</td>
</tr>
<tr>
<td>Self-improving ML pipelines</td>
<td>MiniMax M2.7</td>
<td>Only model that autonomously evolves. $0.30/M.</td>
</tr>
<tr>
<td>MIT license compliance</td>
<td>GLM-5.1</td>
<td>Clean MIT, 1530 Code Arena Elo. First open-weight to top SWE-Bench Pro.</td>
</tr>
<tr>
<td>Long-context refactors (1M tokens)</td>
<td>DeepSeek V4-Pro</td>
<td>1M context, $1.74/M input.</td>
</tr>
<tr>
<td>Enterprise compliance + independent coding proof</td>
<td>GLM-5.1</td>
<td>Only one with public, independent Code Arena Elo.</td>
</tr>
<tr>
<td>Maximum reasoning ceiling (unverified)</td>
<td>Ring-2.6-1T</td>
<td>Vendor claims suggest GPT-5.5 territory. Wait for neutral data.</td>
</tr>
</tbody></table>
<h2>What This Means For Companies</h2>
<p>The implication is seismic:</p>
<p><strong>1. Model lock-in is dead.</strong></p>
<p>When three open-weight models from three different labs are within 3 points on composite intelligence — and each wins on different task types — there&#39;s zero reason to commit to a single provider. Mix and match. Route by task.</p>
<p><strong>2. The cost floor dropped to $0.14/M tokens.</strong></p>
<p>DeepSeek V4-Flash at $0.14/M input vs. GPT-5.5&#39;s $7.78/M is a 55x gap. For high-volume workloads, that&#39;s not a preference — it&#39;s a budget decision.</p>
<p><strong>3. Benchmarks now segment by task, not tier.</strong></p>
<p>GPT-5.5 leads Terminal-Bench 2.0 (82.7%). Claude Opus 4.7 leads SWE-bench Verified (87.6%). Gemini 3.1 Pro leads GPQA Diamond (94.3%). Each lab is winning different races. The composite leaderboard is increasingly meaningless.</p>
<p><strong>4. Self-evolution is real.</strong></p>
<p>MiniMax M2.7 proved that a model can autonomously improve itself on ML tasks — and achieve results competitive with frontier closed-source models. This isn&#39;t a benchmark trick. It&#39;s a paradigm shift in how we think about model capabilities.</p>
<p><strong>5. Trust but verify.</strong></p>
<p>Ring-2.6-1T&#39;s vendor numbers suggest it&#39;s competitive with GPT-5.5. But without neutral verification, that&#39;s a claim, not a measurement. In 2026, the gap between vendor claims and reality has been consistently 5-15 points. Budget accordingly.</p>
<h2>The Bottom Line</h2>
<p>May 2026 isn&#39;t about who&#39;s winning. It&#39;s about the fact that <strong>nobody needs to win anymore.</strong></p>
<p>Open-weight models are within striking distance of closed-source leaders on every major benchmark. The gap has narrowed to 5-15 points on most tasks — and those points can often be closed by fine-tuning on domain-specific data.</p>
<p>The real winners are engineers who stop asking &quot;which model?&quot; and start asking &quot;which model for what?&quot;</p>
<p>The answer is: it depends. And that&#39;s exactly how it should be.</p>
<hr>
<p><em>Data sources: llm-stats.com, BenchLM.ai, Artificial Analysis, OpenRouter API, vendor model cards. All prices as of May 20, 2026.</em></p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/27653d3ff66f0c09f32664a5df011407/ai-models-evening.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[This Week in AI: Karpathy Joins Anthropic, Self-Hosted Sandboxes, and HTML Kills Markdown]]></title>
            <link>https://yabasha.dev/blog/this-week-in-ai-karpathy-joins-anthropic-self-hosted-sandboxes-and-html-kills-markdown</link>
            <guid isPermaLink="false">https://yabasha.dev/blog/this-week-in-ai-karpathy-joins-anthropic-self-hosted-sandboxes-and-html-kills-markdown</guid>
            <pubDate>Wed, 20 May 2026 08:27:37 GMT</pubDate>
            <description><![CDATA[Karpathy left OpenAI for a $900B Anthropic. Self-hosted sandboxes keep your files local while Claude runs the brain. And the Claude Code team just declared markdown dead. Here's what it all means.]]></description>
            <content:encoded><![CDATA[<h1>This Week in AI: Karpathy Joins Anthropic, Self-Hosted Sandboxes, and HTML Kills Markdown</h1>
<p>Three things happened in the last 72 hours that will reshape how we build with AI. One man moved from OpenAI to Anthropic. One product split the AI brain from the AI hands. And one format war declared a winner.</p>
<p>If you blinked, you missed the week that mattered.</p>
<hr>
<h2>Karpathy Just Changed Sides</h2>
<p>Andrej Karpathy — OpenAI co-founder, Tesla&#39;s former AI director, the man whose YouTube lectures taught half the field how transformers work — posted seven sentences on X on Tuesday morning.</p>
<p>The first one read: &quot;Personal update: I&#39;ve joined Anthropic.&quot;</p>
<p>He&#39;s working on the pre-training team under Nick Joseph. His mandate: build a new group that uses Claude to accelerate the training of the next generation of Claude. He paused Eureka Labs for this. He&#39;s not dabbling.</p>
<p>Here&#39;s the number that makes this strategic, not sentimental: Anthropic is reportedly closing a funding round at a roughly <strong>$900 billion valuation</strong>. That would put Anthropic above OpenAI in private markets for the first time.</p>
<p>Karpathy didn&#39;t just leave one company for another. He left the company that&#39;s losing the valuation race to join the company that&#39;s winning it. That&#39;s not a career move. That&#39;s a bet.</p>
<p>The real play is what he&#39;ll build. &quot;Using Claude to accelerate pre-training research&quot; means automating the most expensive, compute-intensive phase of building a frontier model. If Karpathy&#39;s team cracks even marginal efficiency gains, Anthropic&#39;s training costs drop while everyone else&#39;s stay flat. That&#39;s the kind of flywheel that compounds.</p>
<hr>
<h2>The Day Anthropic Split the Brain From the Hands</h2>
<p>On May 19, from the stage of Code with Claude London, Anthropic announced two features that change the enterprise AI conversation entirely: <strong>self-hosted sandboxes</strong> (public beta) and <strong>MCP tunnels</strong> (research preview).</p>
<p>Here&#39;s what landed:</p>
<p><strong>Self-hosted sandboxes</strong> mean your files never leave your infrastructure. The agent loop — the part that decides what to do next — stays on Anthropic&#39;s servers. But the moment the model says &quot;read this file&quot; or &quot;run this command,&quot; that execution happens in a container inside your perimeter. Your network policies, your audit logging, your security tools. The file content never transits to Anthropic.</p>
<p>Four managed providers launched day one: Cloudflare (microVMs, millisecond startups), Daytona (SSH-accessible, stateful, pause/resume), Modal (GPU-optimized for AI workloads), and Vercel (VM security with VPC peering). Or bring your own.</p>
<p><strong>MCP tunnels</strong> are the sleeper feature. A deployed gateway establishes a single outbound connection to your internal services. No inbound firewall rules. No public endpoints. End-to-end encrypted. Your databases, private APIs, and knowledge bases become agent tools without ever touching the public internet.</p>
<p>The architecture is clean: intelligence on Anthropic, execution on your infra. But here&#39;s the caveat nobody&#39;s naming — the orchestration layer, the part that actually decides what your agent does, stays on Anthropic&#39;s servers. A fully on-premise deployment isn&#39;t possible. Your data stays local during tool execution. Your agent&#39;s cognitive loop does not.</p>
<p>That&#39;s a trade-off worth understanding before you bet a production pipeline on it.</p>
<p>Meanwhile, BerriAI open-sourced the <strong>LiteLLM Agent Platform</strong> — a Kubernetes-based self-hosted infrastructure for running multiple isolated agent sandboxes with session continuity. And <strong>Containarium</strong> launched as an MCP-native sandbox that spins up lightweight containers in milliseconds.</p>
<p>The self-hosted agent infrastructure space went from &quot;doesn&#39;t exist&quot; to &quot;four options plus open source&quot; in a single week.</p>
<hr>
<h2>HTML Just Killed Markdown</h2>
<p>On May 8, Thariq Shihipar — a member of the Claude Code team at Anthropic — posted what became one of the most-discussed dev takes of the quarter:</p>
<blockquote>
<p>&quot;HTML is the new markdown. I&#39;ve stopped writing markdown files for almost everything and switched to using Claude Code to generate HTML for me.&quot;</p>
</blockquote>
<p>Karpathy retweeted it. The post hit tens of millions of views in 48 hours.</p>
<p>Shihipar&#39;s argument was concrete. HTML lets Claude do things markdown simply can&#39;t:</p>
<ul>
<li><strong>Inline SVG diagrams</strong> instead of fenced ASCII art</li>
<li><strong>Interactive widgets</strong> — sliders, toggles, collapsible sections — so a PR review becomes a navigable artifact instead of a wall of text</li>
<li><strong>In-page navigation</strong>, color-coded severity, real layout</li>
<li><strong>Semantic structure</strong> the model can hang richer reasoning on</li>
</ul>
<p>The rebuttal landed fast. Kurtis Redux pointed out three problems:</p>
<ol>
<li>HTML is <strong>2-4x slower to generate</strong> than the markdown equivalent</li>
<li>Verbose markup <strong>dilutes model attention</strong> — longer output means more chances to hallucinate structure</li>
<li><strong>Output tokens are the expensive tokens</strong> — 3-5x the cost of input across every major API</li>
</ol>
<p>Recommending 2-4x more output tokens is a real line item on your API bill.</p>
<p>But here&#39;s what both sides missed. The debate framed it as binary: rich-but-expensive HTML vs. cheap-but-flat markdown. That framing is wrong.</p>
<p>The real insight came from the three-layer model:</p>
<p><strong>Layer 1: Protocol layer</strong> — AI-to-AI communication. CLAUDE.md, AGENTS.md, instruction files. This stays Markdown forever. It&#39;s the HTTP of agent systems. Nobody reads it directly.</p>
<p><strong>Layer 2: Interface layer</strong> — AI-to-human output. Specification reports, PR interpretations, design explorations. This migrates to HTML. Information density, readability, sharing, interaction.</p>
<p><strong>Layer 3: Tool layer</strong> — Disposable custom UIs. AI generates a throwaway HTML interface with sliders and toggles for a specific decision, you interact with it, copy the result back. This layer didn&#39;t exist before AI.</p>
<p>Markdown didn&#39;t die. It retreated to the protocol layer and became more deeply rooted. HTML took over the interface layer. And the tool layer is genuinely new.</p>
<p>The data backs this up. Cloudflare&#39;s &quot;Markdown for Agents&quot; showed HTML-to-Markdown conversion cuts tokens by <strong>80%</strong> (16,180 → 3,150 tokens). HtmlRAG from WWW 2025 demonstrated that pruned HTML outperforms Markdown for retrieval accuracy. And Microsoft Research found HTML beats Markdown by 28 points on column retrieval in table QA tasks.</p>
<p>The format war isn&#39;t about which is &quot;better.&quot; It&#39;s about which layer you&#39;re building for.</p>
<hr>
<h2>What This Week Actually Means</h2>
<p>Karpathy&#39;s move signals that the AI talent war has crossed a threshold. When the man who taught the world about transformers leaves OpenAI for Anthropic, it&#39;s not about salary or title. It&#39;s about where the most important work happens next.</p>
<p>Self-hosted sandboxes mean the enterprise &quot;but where does my data go&quot; objection just lost its strongest argument. The architecture isn&#39;t perfect — orchestration stays remote — but for most regulated industries, tool execution staying local is the 80/20 solution.</p>
<p>And the HTML shift? It&#39;s the first sign that AI-native development isn&#39;t just about better prompts or bigger models. It&#39;s about fundamentally different output formats. The terminal is becoming a platform. The document is becoming an application.</p>
<p>The next 90 days will be the most competitive window in AI history. Karpathy is building Claude&#39;s brain at a company worth more than OpenAI. Anthropic just gave enterprises a way to run agents on their own infrastructure. And the way AI delivers information to humans changed format.</p>
<p>If you&#39;re still writing markdown files for AI output, you&#39;re building for the protocol layer. The interface layer has moved on.</p>
<hr>
<p><em>Published May 20, 2026 — Covering Anthropic, Karpathy, self-hosted sandboxes, and the HTML vs. markdown shift through May 20, 2026.</em></p>
]]></content:encoded>
            <author>Bashar Ayyash</author>
            <enclosure url="https://api.yabasha.dev/media/4b139d22187a3b83580b9dee533fc485/cover-weekly-ai.min.webp" length="0" type="image/webp"/>
        </item>
    </channel>
</rss>