<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Yaseen Khatib — Field Notes</title>
    <link>https://yk.streamerosai.com/blog</link>
    <atom:link href="https://yk.streamerosai.com/rss.xml" rel="self" type="application/rss+xml"/>
    <description>Yaseen Khatib — Senior Full-Stack Developer (MERN) building production AI systems: Agentic RAG, LLM orchestration, and six solo-shipped products. Open to remote, hybrid, or on-site roles.</description>
    <language>en</language>
    <item>
      <title>AI Engineer Portfolio Examples: What Reviewers Verify</title>
      <link>https://yk.streamerosai.com/blog/ai-engineer-portfolio-examples/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/ai-engineer-portfolio-examples/</guid>
      <pubDate>Fri, 30 Oct 2026 10:00:00 GMT</pubDate>
      <description>Four kinds of AI engineer portfolio pieces that let a reviewer verify production experience in minutes: a live grounded assistant, a product with a readable trust boundary, a measured result, and the operating model. With this site as the worked example and its failures included.</description>
    </item>
    <item>
      <title>MERN Stack Developer vs Full Stack Developer: What Changes</title>
      <link>https://yk.streamerosai.com/blog/mern-stack-developer-vs-full-stack-developer/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/mern-stack-developer-vs-full-stack-developer/</guid>
      <pubDate>Fri, 30 Oct 2026 10:00:00 GMT</pubDate>
      <description>Every MERN developer is a full-stack developer, but not the other way round. What MongoDB, Express, React and Node fix in place, where the two titles diverge in real work, and which one to hire or become.</description>
    </item>
    <item>
      <title>WhatsApp Chatbot for Business: Monthly SaaS vs Owning It</title>
      <link>https://yk.streamerosai.com/blog/whatsapp-chatbot-saas-vs-owning-it/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/whatsapp-chatbot-saas-vs-owning-it/</guid>
      <pubDate>Fri, 23 Oct 2026 10:00:00 GMT</pubDate>
      <description>What a WhatsApp chatbot really costs in India: Meta's per-message fees, WATI and Interakt plans over three years, and when an owned AI bot is cheaper.</description>
    </item>
    <item>
      <title>How I stop re-renders in big React forms: uncontrolled refs</title>
      <link>https://yk.streamerosai.com/blog/how-i-stop-re-renders-in-big-react-forms-uncontrolled-refs/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/how-i-stop-re-renders-in-big-react-forms-uncontrolled-refs/</guid>
      <pubDate>Mon, 03 Aug 2026 10:00:00 GMT</pubDate>
      <description>Production tactics for large React forms: use uncontrolled inputs, refs, and event delegation to kill keystroke re-renders while keeping validation sane.</description>
    </item>
    <item>
      <title>How I orchestrate React with a typed event bus</title>
      <link>https://yk.streamerosai.com/blog/how-i-orchestrate-react-with-a-typed-event-bus/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/how-i-orchestrate-react-with-a-typed-event-bus/</guid>
      <pubDate>Wed, 29 Jul 2026 10:00:00 GMT</pubDate>
      <description>A production pattern I use to coordinate React components without prop drilling or store-bloat: a strictly typed event bus with React-safe hooks.</description>
    </item>
    <item>
      <title>Optimistic React UIs that don't drift from the server</title>
      <link>https://yk.streamerosai.com/blog/optimistic-react-uis-that-dont-drift-from-the-server/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/optimistic-react-uis-that-dont-drift-from-the-server/</guid>
      <pubDate>Mon, 27 Jul 2026 10:00:00 GMT</pubDate>
      <description>How I ship optimistic UI in React without state drift: versioned writes, idempotency keys, React Query/Zustand patterns, and the rollback math.</description>
    </item>
    <item>
      <title>When useMemo actually helps in React 19</title>
      <link>https://yk.streamerosai.com/blog/when-usememo-actually-helps-in-react-19-and-how-to-measure-it/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/when-usememo-actually-helps-in-react-19-and-how-to-measure-it/</guid>
      <pubDate>Fri, 24 Jul 2026 10:00:00 GMT</pubDate>
      <description>A blunt, practical guide to useMemo in React 19: where it genuinely helps, where it’s noise, and how to profile renders before you cargo‑cult memoization.</description>
    </item>
    <item>
      <title>Stop mixing render and domain state in React dashboards</title>
      <link>https://yk.streamerosai.com/blog/stop-mixing-render-and-domain-state-in-react-dashboards/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/stop-mixing-render-and-domain-state-in-react-dashboards/</guid>
      <pubDate>Wed, 22 Jul 2026 10:00:00 GMT</pubDate>
      <description>A pragmatic split for large React 18 dashboards: keep server/domain data out of UI stores, cut re-renders and payloads with a thin serialization adapter.</description>
    </item>
    <item>
      <title>How I Went From My First Dev Job to Building AI Systems</title>
      <link>https://yk.streamerosai.com/blog/my-journey-web-developer-to-ai-engineer/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/my-journey-web-developer-to-ai-engineer/</guid>
      <pubDate>Mon, 20 Jul 2026 10:00:00 GMT</pubDate>
      <description>Five years, honestly told: an ASP.NET healthcare backend in 2021, full-stack MERN through the ChatGPT shift, nights of embeddings homework, and finally shipping five AI products solo. The journey, without the gloss.</description>
    </item>
    <item>
      <title>Zero Network Leakage in CI: Deny-by-Default Egress Harness</title>
      <link>https://yk.streamerosai.com/blog/zero-network-leakage-in-ci-deny-by-default-egress-harness/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/zero-network-leakage-in-ci-deny-by-default-egress-harness/</guid>
      <pubDate>Fri, 17 Jul 2026 10:00:00 GMT</pubDate>
      <description>A practical, cross-platform harness to prove your desktop app makes zero outbound network calls in CI by default—block, log, count, and assert.</description>
    </item>
    <item>
      <title>Unifying Twitch and YouTube live chat</title>
      <link>https://yk.streamerosai.com/blog/unifying-twitch-and-youtube-live-chat-ordered-de-duplicated/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/unifying-twitch-and-youtube-live-chat-ordered-de-duplicated/</guid>
      <pubDate>Thu, 16 Jul 2026 10:00:00 GMT</pubDate>
      <description>Build a single, ordered, de-duplicated event stream from Twitch IRC and YouTube Live Chat with Hybrid Logical Clocks, watermarks, and idempotent delivery.</description>
    </item>
    <item>
      <title>Local-first settings sync over LAN</title>
      <link>https://yk.streamerosai.com/blog/serverless-local-first-settings-sync-over-lan-with-automerge-mdns/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/serverless-local-first-settings-sync-over-lan-with-automerge-mdns/</guid>
      <pubDate>Tue, 14 Jul 2026 10:00:00 GMT</pubDate>
      <description>Replicate user settings across devices on the same LAN without servers by combining Automerge CRDT sync messages with mDNS peer discovery and a tiny TCP transport.</description>
    </item>
    <item>
      <title>Zero-Account Auth: Device-Bound Identity + Capability Tokens</title>
      <link>https://yk.streamerosai.com/blog/zero-account-auth-device-bound-identity-capability-tokens/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/zero-account-auth-device-bound-identity-capability-tokens/</guid>
      <pubDate>Sun, 12 Jul 2026 10:00:00 GMT</pubDate>
      <description>Build secure apps without accounts or an auth server: bind identity to device keys, mint PASETO capability tokens, and enforce DPoP for stateless, least-privilege access.</description>
    </item>
    <item>
      <title>I Shipped 5 Products in 12 Months, Solo</title>
      <link>https://yk.streamerosai.com/blog/shipped-5-products-solo-12-months/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/shipped-5-products-solo-12-months/</guid>
      <pubDate>Tue, 07 Jul 2026 10:00:00 GMT</pubDate>
      <description>Five production systems — a realtime telemetry cockpit, a workflow engine, a local-first AI finance agent, and two autonomous pipelines — designed, built, and shipped by one engineer. Here's the operating model.</description>
    </item>
    <item>
      <title>Vision Over Syntax: Design Before Code</title>
      <link>https://yk.streamerosai.com/blog/vision-over-syntax-architecture-first/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/vision-over-syntax-architecture-first/</guid>
      <pubDate>Tue, 07 Jul 2026 10:00:00 GMT</pubDate>
      <description>Syntax is solved; vision is not. How architecture-first thinking — data contracts, trust boundaries, and deliberate refusals — is the real engineering skill in the AI era, shown through shipped products.</description>
    </item>
    <item>
      <title>One Architect + Claude + MCP = A Full Squad</title>
      <link>https://yk.streamerosai.com/blog/one-architect-claude-mcp-full-squad/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/one-architect-claude-mcp-full-squad/</guid>
      <pubDate>Tue, 07 Jul 2026 10:00:00 GMT</pubDate>
      <description>The exact three-layer operating model — architect, Claude Code, MCP-wired systems — that lets one engineer ship like a squad, and the 30-day plan for installing it inside a real company.</description>
    </item>
    <item>
      <title>Your Company Is Overpaying for AI by 80%</title>
      <link>https://yk.streamerosai.com/blog/ai-finops-playbook-stop-burning-money/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/ai-finops-playbook-stop-burning-money/</guid>
      <pubDate>Tue, 07 Jul 2026 10:00:00 GMT</pubDate>
      <description>Most production AI traffic is simple or repetitive, yet it's billed at frontier-model prices. The cache → flash → frontier cascade that fixes the economics, with a live interactive cost simulator.</description>
    </item>
    <item>
      <title>My Networking Runs Itself: A LinkedIn Pipeline</title>
      <link>https://yk.streamerosai.com/blog/linkedin-pipeline-job-search-runs-itself/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/linkedin-pipeline-job-search-runs-itself/</guid>
      <pubDate>Tue, 07 Jul 2026 10:00:00 GMT</pubDate>
      <description>How I engineered consistency: an autonomous GitHub Actions pipeline that turns real work into scheduled LinkedIn posts, tracks state in Git, costs $0 to run — and what the same pattern automates inside a company.</description>
    </item>
    <item>
      <title>The $0 Content Engine That Runs Itself</title>
      <link>https://yk.streamerosai.com/blog/zero-dollar-content-engine/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/zero-dollar-content-engine/</guid>
      <pubDate>Tue, 07 Jul 2026 10:00:00 GMT</pubDate>
      <description>A cron-scheduled pipeline drafts articles with Gemini, writes MDX, commits to Git, and redeploys the static site — no CMS, no server, no database, no bill. The architecture of refusing infrastructure.</description>
    </item>
    <item>
      <title>An AI Money Agent That Can't Touch the Money</title>
      <link>https://yk.streamerosai.com/blog/sable-ai-agent-never-touches-money/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/sable-ai-agent-never-touches-money/</guid>
      <pubDate>Tue, 07 Jul 2026 10:00:00 GMT</pubDate>
      <description>Sable is a local-first AI financial agent: all data in on-device SQLite, no cloud backend, and a Review &amp; Confirm boundary where the model proposes but only a human commits. The trust architecture, explained.</description>
    </item>
    <item>
      <title>Hire My Head, Not My Hands</title>
      <link>https://yk.streamerosai.com/blog/hire-my-head-not-my-hands/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/hire-my-head-not-my-hands/</guid>
      <pubDate>Tue, 07 Jul 2026 10:00:00 GMT</pubDate>
      <description>AI made hands abundant; heads stayed scarce. The closing argument of the Founder's Log series — the architectural judgment pattern across five shipped products, addressed to the person deciding whether to interview me.</description>
    </item>
    <item>
      <title>WebSocket Telemetry at Scale</title>
      <link>https://yk.streamerosai.com/blog/websocket-telemetry-at-scale/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/websocket-telemetry-at-scale/</guid>
      <pubDate>Fri, 12 Jun 2026 10:00:00 GMT</pubDate>
      <description>A single WebSocket server is a weekend project; streaming telemetry to thousands across instances broke for me on streamerOS — Redis pub/sub, rooms, coalescing.</description>
    </item>
    <item>
      <title>MongoDB Aggregation Pipelines: Stage Order Is the Win</title>
      <link>https://yk.streamerosai.com/blog/optimizing-mongodb-aggregation/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/optimizing-mongodb-aggregation/</guid>
      <pubDate>Thu, 11 Jun 2026 10:00:00 GMT</pubDate>
      <description>Profiling a clinical API taught me MongoDB aggregation pipeline optimization lives or dies on stage order: $match first on indexes, $lookup join performance, then explain.</description>
    </item>
    <item>
      <title>Budgeting the Claude Context Window Before It Truncates You</title>
      <link>https://yk.streamerosai.com/blog/mastering-claude-architecture-context-windows-output-limits/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/mastering-claude-architecture-context-windows-output-limits/</guid>
      <pubDate>Wed, 10 Jun 2026 10:00:00 GMT</pubDate>
      <description>The Claude context window is one token budget shared by prompt, tools, thinking, and reply. I count tokens and guard it in code so a reply never truncates.</description>
    </item>
    <item>
      <title>The AI-Native Portfolio: Landing Lead Roles</title>
      <link>https://yk.streamerosai.com/blog/ai-native-portfolio-landing-lead-roles/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/ai-native-portfolio-landing-lead-roles/</guid>
      <pubDate>Mon, 08 Jun 2026 10:00:00 GMT</pubDate>
      <description>A portfolio that lists 'used ChatGPT' reads junior. One that demonstrates systems architecture — RAG, agents, guardrails, latency budgets — reads like the lead they're trying to hire. Here's how to build the second one.</description>
    </item>
    <item>
      <title>The 10x Reality: How AI Replaced the Traditional MERN Squad</title>
      <link>https://yk.streamerosai.com/blog/the-10x-reality-ai-replaced-the-mern-squad/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/the-10x-reality-ai-replaced-the-mern-squad/</guid>
      <pubDate>Sat, 06 Jun 2026 10:00:00 GMT</pubDate>
      <description>AI shifted the engineer's job from writing syntax to directing architectural flow. Why one architect with Claude now outships a traditional 10-person MERN squad.</description>
    </item>
    <item>
      <title>The Day ChatGPT Changed Full-Stack Engineering</title>
      <link>https://yk.streamerosai.com/blog/chatgpt-changed-full-stack-engineering/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/chatgpt-changed-full-stack-engineering/</guid>
      <pubDate>Sat, 06 Jun 2026 10:00:00 GMT</pubDate>
      <description>Late 2022 dropped the cost of writing software overnight. Why the bottleneck moved from syntax to judgment — and why MERN engineers were positioned to win.</description>
    </item>
    <item>
      <title>How I Run Agents Off a React Flow Canvas, Not a Diagram</title>
      <link>https://yk.streamerosai.com/blog/react-flow-agent-orchestration-canvas/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/react-flow-agent-orchestration-canvas/</guid>
      <pubDate>Fri, 05 Jun 2026 10:00:00 GMT</pubDate>
      <description>On IntegrateX, the React Flow graph a PM drags is the exact spec the runtime executes — typed nodes and ports make it a debuggable agent orchestration layer.</description>
    </item>
    <item>
      <title>Compressing the Wire: A 94% Payload Reduction in React Flow</title>
      <link>https://yk.streamerosai.com/blog/94-percent-payload-reduction-react-flow/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/94-percent-payload-reduction-react-flow/</guid>
      <pubDate>Thu, 04 Jun 2026 10:00:00 GMT</pubDate>
      <description>Node-graph editors serialize enormous JSON. A custom Serialization Adapter pattern that separates the React Flow render model from the transport record cut IntegrateX payloads by 94%.</description>
    </item>
    <item>
      <title>When Logs Lie: Tracing LLM Agents with OpenTelemetry</title>
      <link>https://yk.streamerosai.com/blog/llm-observability-opentelemetry-tracing/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/llm-observability-opentelemetry-tracing/</guid>
      <pubDate>Wed, 03 Jun 2026 10:00:00 GMT</pubDate>
      <description>The live RAG concierge on this site ships a span per step — tokens, cost, latency in OpenTelemetry — which is how I trace LLM agents, not guess from logs.</description>
    </item>
    <item>
      <title>How I Compile a React Flow Graph So It Actually Runs</title>
      <link>https://yk.streamerosai.com/blog/compiling-react-flow-graph-agent-pipeline/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/compiling-react-flow-graph-agent-pipeline/</guid>
      <pubDate>Wed, 03 Jun 2026 10:00:00 GMT</pubDate>
      <description>On IntegrateX a React Flow canvas stayed inert until I compiled it: a dependency map, a topological sort into a runnable plan, and cycle detection before it runs.</description>
    </item>
    <item>
      <title>Prompt Caching: the Ordering Discipline That Cuts the Bill</title>
      <link>https://yk.streamerosai.com/blog/prompt-caching-deep-dive-latency-cost/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/prompt-caching-deep-dive-latency-cost/</guid>
      <pubDate>Tue, 02 Jun 2026 10:00:00 GMT</pubDate>
      <description>I treat prompt caching as FinOps: order the static prefix first, keep it byte-stable, and stop re-paying to re-read an 8K preamble on every request.</description>
    </item>
    <item>
      <title>Semantic Caching That Actually Hits</title>
      <link>https://yk.streamerosai.com/blog/semantic-caching-edge-rag/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/semantic-caching-edge-rag/</guid>
      <pubDate>Tue, 02 Jun 2026 10:00:00 GMT</pubDate>
      <description>The streamerOS support agent kept re-answering the same question phrased ten ways, so I built a semantic cache that matches meaning, not the string.</description>
    </item>
    <item>
      <title>Real-Time Telemetry: Why Polling Lies</title>
      <link>https://yk.streamerosai.com/blog/real-time-telemetry-websockets-react/</link>
      <guid isPermaLink="true">https://yk.streamerosai.com/blog/real-time-telemetry-websockets-react/</guid>
      <pubDate>Sun, 31 May 2026 10:00:00 GMT</pubDate>
      <description>Polling dashboards lie between ticks — I learned that the hard way. Now I push telemetry over WebSockets for sub-second parity across every React client.</description>
    </item>
  </channel>
</rss>
