<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Huseyin Kaplan — Insights</title>
    <link>https://huseyinkaplan.dev/insights/</link>
    <description>Articles and notes on AI engineering, retrieval, evaluation and developer tools.</description>
    <language>en</language>
    <atom:link href="https://huseyinkaplan.dev/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Smooth, without the wait</title>
      <link>https://huseyinkaplan.dev/insights/smooth-without-the-wait/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/smooth-without-the-wait/</guid>
      <pubDate>Sat, 17 Oct 2026 09:00:00 GMT</pubDate>
      <description>How I added smooth scrolling and animated page changes to this static site: Lenis, native browser transitions, early preparation, and a test with 30 images still loading.</description>
      <category>Web Performance</category>
      <category>Browser APIs</category>
      <category>Animation</category>
    </item>
    <item>
      <title>A word or a number</title>
      <link>https://huseyinkaplan.dev/insights/a-word-or-a-number/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/a-word-or-a-number/</guid>
      <pubDate>Wed, 14 Oct 2026 09:00:00 GMT</pubDate>
      <description>The same refund decision asked three ways, 540 times: a chat model, the same model held to a strict schema, and a decision model that returns a probability. Accuracy tied. The number found the one ticket I had labelled wrong.</description>
      <category>AI Agents</category>
      <category>LLM Evaluation</category>
      <category>TypeScript</category>
    </item>
    <item>
      <title>A results page on someone else's storefront</title>
      <link>https://huseyinkaplan.dev/insights/a-results-page-on-someone-elses-storefront/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/a-results-page-on-someone-elses-storefront/</guid>
      <pubDate>Tue, 13 Oct 2026 09:00:00 GMT</pubDate>
      <description>One script that renders search results inside stores we do not host: what moved into a per-store config, how it mounts, and why old and new run side by side.</description>
      <category>E-commerce Search</category>
      <category>JavaScript</category>
      <category>Configuration</category>
    </item>
    <item>
      <title>Motion graphics, written as code</title>
      <link>https://huseyinkaplan.dev/insights/motion-graphics-written-as-code/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/motion-graphics-written-as-code/</guid>
      <pubDate>Tue, 13 Oct 2026 09:00:00 GMT</pubDate>
      <description>How the animated drawings on this site are made: SVG scenes on one clock, generated by short functions, written with Claude Code. With the real scenes running in the page.</description>
      <category>Motion Graphics</category>
      <category>SVG</category>
      <category>AI-Assisted Development</category>
    </item>
    <item>
      <title>Same model, different workflow</title>
      <link>https://huseyinkaplan.dev/insights/same-model-different-workflow/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/same-model-different-workflow/</guid>
      <pubDate>Tue, 13 Oct 2026 09:00:00 GMT</pubDate>
      <description>The written version of a session I gave my team on fixing bugs with an AI assistant: four steps, a context budget, the limits, and the demo I staged on purpose.</description>
      <category>AI-Assisted Development</category>
      <category>Debugging</category>
      <category>React</category>
    </item>
    <item>
      <title>The widget that worked on the second visit</title>
      <link>https://huseyinkaplan.dev/insights/the-widget-that-worked-on-the-second-visit/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/the-widget-that-worked-on-the-second-visit/</guid>
      <pubDate>Tue, 13 Oct 2026 09:00:00 GMT</pubDate>
      <description>A blocked-notifications widget appeared only after a reload. Three small fixes: a race between two scripts, a cookie mistaken for the permission, and one state with three names.</description>
      <category>Web Push</category>
      <category>JavaScript</category>
      <category>Debugging</category>
    </item>
    <item>
      <title>A guard against saving to the wrong brand</title>
      <link>https://huseyinkaplan.dev/insights/a-guard-against-saving-to-the-wrong-brand/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/a-guard-against-saving-to-the-wrong-brand/</guid>
      <pubDate>Sun, 11 Oct 2026 09:00:00 GMT</pubDate>
      <description>A tab showed one brand while the server session held another. The guard that blocks it, and a pass over 11 dashboards in a shared codebase.</description>
      <category>React</category>
      <category>Data Integrity</category>
      <category>Frontend Architecture</category>
    </item>
    <item>
      <title>A product URL becomes an email block</title>
      <link>https://huseyinkaplan.dev/insights/a-product-url-becomes-an-email-block/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/a-product-url-becomes-an-email-block/</guid>
      <pubDate>Sun, 11 Oct 2026 09:00:00 GMT</pubDate>
      <description>A product block inside a third-party email editor: mock data first, a wrap-once guard, a cookie-less request, an update loop and a context-aware inspector.</description>
      <category>React</category>
      <category>Email</category>
      <category>Editor Extensions</category>
    </item>
    <item>
      <title>A dry-run CLI that rolled search out to 271 brands</title>
      <link>https://huseyinkaplan.dev/insights/rolling-out-search-to-271-brands/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/rolling-out-search-to-271-brands/</guid>
      <pubDate>Sun, 11 Oct 2026 09:00:00 GMT</pubDate>
      <description>How a TypeScript CLI installed a new search on 271 of 272 brands: dry-run by default, status classes, backups, read-back vs independent verify, rollback.</description>
      <category>TypeScript</category>
      <category>Tooling</category>
      <category>Operations</category>
    </item>
    <item>
      <title>Building an admin platform from scratch: an ops console and a RAG Document Center</title>
      <link>https://huseyinkaplan.dev/insights/building-an-admin-platform-from-scratch/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/building-an-admin-platform-from-scratch/</guid>
      <pubDate>Tue, 06 Oct 2026 09:00:00 GMT</pubDate>
      <description>How I built Revotas's new admin platform alone: CRM, support and billing on legacy APIs, plus a Turkish RAG assistant that cites sources or abstains.</description>
      <category>React</category>
      <category>RAG</category>
      <category>Product Engineering</category>
    </item>
    <item>
      <title>The builder compiles, the storefront just runs it</title>
      <link>https://huseyinkaplan.dev/insights/compile-the-widget-dont-interpret-it/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/compile-the-widget-dont-interpret-it/</guid>
      <pubDate>Tue, 06 Oct 2026 09:00:00 GMT</pubDate>
      <description>How I built a no-code Deal of the Day builder: React state compiled into one self-contained script, previewed live in an iframe, with zero schema change.</description>
      <category>React</category>
      <category>No-code</category>
      <category>Web Widgets</category>
    </item>
    <item>
      <title>The push that opens the right screen</title>
      <link>https://huseyinkaplan.dev/insights/push-that-opens-the-right-screen/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/push-that-opens-the-right-screen/</guid>
      <pubDate>Tue, 06 Oct 2026 09:00:00 GMT</pubDate>
      <description>React Native push taps arrive through three different APIs. One router, payload normalisation, token care, and a backend debug that went wrong.</description>
      <category>React Native</category>
      <category>Firebase</category>
      <category>Mobile</category>
    </item>
    <item>
      <title>Recommendations in the store's own design</title>
      <link>https://huseyinkaplan.dev/insights/recommendations-in-the-stores-own-design/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/recommendations-in-the-stores-own-design/</guid>
      <pubDate>Tue, 06 Oct 2026 09:00:00 GMT</pubDate>
      <description>Brands said our recommendation widget didn't look like their site. So the engine copies their product card and fills it with ours.</description>
      <category>JavaScript</category>
      <category>E-commerce</category>
      <category>Frontend Architecture</category>
    </item>
    <item>
      <title>One search script, 271 storefronts I don't control</title>
      <link>https://huseyinkaplan.dev/insights/search-overlay-on-271-storefronts/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/search-overlay-on-271-storefronts/</guid>
      <pubDate>Tue, 06 Oct 2026 09:00:00 GMT</pubDate>
      <description>Shipping a search overlay into 271 stores: rolling back @layer, race guards, Turkish folding, client-side typo tolerance and facets, and a debug catalogue.</description>
      <category>JavaScript</category>
      <category>Search UX</category>
      <category>Accessibility</category>
    </item>
    <item>
      <title>ldraw-nova: AI agents build LEGO models by writing Python geometry</title>
      <link>https://huseyinkaplan.dev/insights/write-the-math/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/write-the-math/</guid>
      <pubDate>Sun, 04 Oct 2026 09:00:00 GMT</pubDate>
      <description>In ldraw-nova, models write a plan and a Python generator instead of raw coordinates, but nothing checks physics or stability.</description>
      <category>AI Engineering</category>
      <category>AI Agents</category>
      <category>Python</category>
    </item>
    <item>
      <title>Multi-agent handoff notes: when Claude reads memory as orders</title>
      <link>https://huseyinkaplan.dev/insights/notes-read-as-orders/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/notes-read-as-orders/</guid>
      <pubDate>Sat, 03 Oct 2026 09:00:00 GMT</pubDate>
      <description>In stillwet's painter chains, Claude read earlier notes as instructions and missing notes failed silently, so label, log and verify agent handoffs.</description>
      <category>AI Engineering</category>
      <category>AI Agents</category>
      <category>Claude AI</category>
    </item>
    <item>
      <title>Pi 1.0 agent harness: the Claude Opus planner drove 95% of the cost</title>
      <link>https://huseyinkaplan.dev/insights/planner-writes-the-bill/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/planner-writes-the-bill/</guid>
      <pubDate>Fri, 02 Oct 2026 09:00:00 GMT</pubDate>
      <description>In Pi 1.0's demo, Opus used a fifth of the tokens yet cost 18x more than GPT 6 Luna, so log cost per model and count cache misses.</description>
      <category>AI Engineering</category>
      <category>AI Agents</category>
      <category>LLMOps</category>
    </item>
    <item>
      <title>Netlify Edge Functions on Firecracker microVMs: 5x faster warm calls</title>
      <link>https://huseyinkaplan.dev/insights/isolates-to-microvms/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/isolates-to-microvms/</guid>
      <pubDate>Thu, 01 Oct 2026 09:00:00 GMT</pubDate>
      <description>Netlify's heavier Firecracker sandbox won because it removed a network round trip; count hops and track cold start rate before blaming the runtime.</description>
      <category>Web Performance</category>
      <category>Serverless</category>
      <category>Netlify</category>
    </item>
    <item>
      <title>Magnitude vs llama.cpp: 2x faster decode, only 9% faster prefill</title>
      <link>https://huseyinkaplan.dev/insights/prefill-pays-the-wait/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/prefill-pays-the-wait/</guid>
      <pubDate>Thu, 01 Oct 2026 09:00:00 GMT</pubDate>
      <description>Magnitude's 2x speedup is decode, but at 64K context an agent turn is mostly prefill, so the whole turn gets only about 12% faster.</description>
      <category>AI Engineering</category>
      <category>Local LLM</category>
      <category>LLMOps</category>
    </item>
    <item>
      <title>Claude Code mods: a command guard warns, permission rules block</title>
      <link>https://huseyinkaplan.dev/insights/warn-vs-stop/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/warn-vs-stop/</guid>
      <pubDate>Thu, 01 Oct 2026 09:00:00 GMT</pubDate>
      <description>Claude Code mods see every event, but a guard matching command text misses $(...), aliases and scripts; hard blocks belong in permission rules.</description>
      <category>Claude Code</category>
      <category>AI Engineering</category>
      <category>TypeScript</category>
    </item>
    <item>
      <title>OpenAI Dots agents: revoking app access doesn't erase their memory</title>
      <link>https://huseyinkaplan.dev/insights/access-and-memory/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/access-and-memory/</guid>
      <pubDate>Wed, 30 Sep 2026 09:00:00 GMT</pubDate>
      <description>Disconnecting an app from an OpenAI Dots agent stops new reads, but pulled-in context stays, so revoking access and forgetting need separate steps.</description>
      <category>AI Engineering</category>
      <category>OpenAI</category>
      <category>AI Agents</category>
    </item>
    <item>
      <title>livenerf on Claude Opus 5.5: output tokens catch model drift first</title>
      <link>https://huseyinkaplan.dev/insights/tokens-move-first/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/tokens-move-first/</guid>
      <pubDate>Wed, 30 Sep 2026 09:00:00 GMT</pubDate>
      <description>livenerf's validation found accuracy noise bigger than the real change, while output token counts clearly showed effort shifts.</description>
      <category>AI Engineering</category>
      <category>LLM Evals</category>
      <category>Claude Code</category>
    </item>
    <item>
      <title>PostHog Jeeves: when reasoning pays off for a 9B classifier</title>
      <link>https://huseyinkaplan.dev/insights/reasoning-is-a-budget/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/reasoning-is-a-budget/</guid>
      <pubDate>Tue, 29 Sep 2026 09:00:00 GMT</pubDate>
      <description>Reasoning made Jeeves five points more accurate but pushed p90 latency to 17 s; reasoning only below 0.9 confidence keeps most of the gain.</description>
      <category>AI Engineering</category>
      <category>Machine Learning</category>
      <category>Open Source</category>
    </item>
    <item>
      <title>Claude Sonnet 5.5 migration: same price, new 400s on old requests</title>
      <link>https://huseyinkaplan.dev/insights/same-price-new-contract/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/same-price-new-contract/</guid>
      <pubDate>Tue, 29 Sep 2026 09:00:00 GMT</pubDate>
      <description>Sonnet 5.5 keeps Sonnet 5 pricing but rejects forced tool_choice and disabled thinking, so check your requests before swapping the model ID.</description>
      <category>AI Engineering</category>
      <category>Anthropic</category>
      <category>TypeScript</category>
    </item>
    <item>
      <title>taiga-s1: a 1.2M-parameter model drives FreeCAD via valid actions</title>
      <link>https://huseyinkaplan.dev/insights/app-lists-the-moves/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/app-lists-the-moves/</guid>
      <pubDate>Mon, 28 Sep 2026 09:00:00 GMT</pubDate>
      <description>taiga-s1 builds FreeCAD parts at about 1 ms per decision because the app lists valid commands each step; check your app's interface first.</description>
      <category>AI Engineering</category>
      <category>AI Agents</category>
      <category>Machine Learning</category>
    </item>
    <item>
      <title>Claude Code and Remotion: a launch film with sync as a failing check</title>
      <link>https://huseyinkaplan.dev/insights/sync-is-a-test/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/sync-is-a-test/</guid>
      <pubDate>Mon, 28 Sep 2026 09:00:00 GMT</pubDate>
      <description>Claude Code built a 33-second launch film overnight; the repo muxes audio with ffmpeg and fails the build if sync drifts past 1 ms.</description>
      <category>AI Engineering</category>
      <category>Claude Code</category>
      <category>Remotion</category>
    </item>
    <item>
      <title>OpenAI agent escaped via DNS: why sandboxes need a real kill switch</title>
      <link>https://huseyinkaplan.dev/insights/alert-pages-a-person/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/alert-pages-a-person/</guid>
      <pubDate>Sun, 27 Sep 2026 09:00:00 GMT</pubDate>
      <description>An OpenAI research agent reached a public chatbot through DNS despite a proxy; the alert fired fast, but stopping the run took 2.5 hours.</description>
      <category>AI Engineering</category>
      <category>Agent Security</category>
      <category>DevOps</category>
    </item>
    <item>
      <title>llama.cpp prompt lookup: a missing ampersand beat a faster hash map</title>
      <link>https://huseyinkaplan.dev/insights/missing-ampersand/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/missing-ampersand/</guid>
      <pubDate>Sun, 27 Sep 2026 09:00:00 GMT</pubDate>
      <description>In llama.cpp prompt lookup drafting, reading maps by reference gave 4.5x to 25x, while a flat hash map added only up to 13%. Profile for copies first.</description>
      <category>AI Engineering</category>
      <category>C++</category>
      <category>Local AI</category>
    </item>
    <item>
      <title>GitHub Primer's CSS Modules migration: guardrails before AI agents</title>
      <link>https://huseyinkaplan.dev/insights/agents-need-rails/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/agents-need-rails/</guid>
      <pubDate>Sat, 26 Sep 2026 09:00:00 GMT</pubDate>
      <description>GitHub halved server render time moving Primer to CSS Modules; agents cleared the last 900 sx props only because shims, flags and snapshots existed.</description>
      <category>ReactJS</category>
      <category>Web Performance</category>
      <category>AI Engineering</category>
    </item>
    <item>
      <title>Cloudflare Turnstile: a widget without Siteverify stops no bots</title>
      <link>https://huseyinkaplan.dev/insights/widget-without-backend/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/widget-without-backend/</guid>
      <pubDate>Sat, 26 Sep 2026 09:00:00 GMT</pubDate>
      <description>Turnstile tokens can be forged, so your backend must call Siteverify; Cloudflare now flags widgets that skip it with Fix with Spin.</description>
      <category>Web Security</category>
      <category>AI Engineering</category>
      <category>Cloudflare</category>
    </item>
    <item>
      <title>GitHub Copilot app: virtualizing million-line diffs with comments</title>
      <link>https://huseyinkaplan.dev/insights/comments-break-virtualization/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/comments-break-virtualization/</guid>
      <pubDate>Fri, 25 Sep 2026 09:00:00 GMT</pubDate>
      <description>GitHub's Copilot app PR view keeps exact code row heights and measures review comments in one batched pass near the viewport, never mid-scroll.</description>
      <category>ReactJS</category>
      <category>Web Performance</category>
      <category>Frontend Engineering</category>
    </item>
    <item>
      <title>Cursor cut its agent system prompt by two thirds; token cost fell 7%</title>
      <link>https://huseyinkaplan.dev/insights/token-diet/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/token-diet/</guid>
      <pubDate>Fri, 25 Sep 2026 09:00:00 GMT</pubDate>
      <description>Most of Cursor's agent spend sits in growing context, not the cached system prompt; on-demand tools and cache breakpoints moved the bill.</description>
      <category>AI Engineering</category>
      <category>Cursor</category>
      <category>Developer Tools</category>
    </item>
    <item>
      <title>How claude.ai got 3x faster: gate CI on counts, not milliseconds</title>
      <link>https://huseyinkaplan.dev/insights/count-dont-time/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/count-dont-time/</guid>
      <pubDate>Thu, 24 Sep 2026 09:00:00 GMT</pubDate>
      <description>Anthropic made claude.ai about 3x faster and protected the wins by failing CI on deterministic counts instead of noisy wall-clock milliseconds.</description>
      <category>ReactJS</category>
      <category>Web Performance</category>
      <category>AI Engineering</category>
    </item>
    <item>
      <title>NVIDIA Nemotron 3 Diarization: low latency is cheap, crowds are not</title>
      <link>https://huseyinkaplan.dev/insights/latency-cheap-crowds-not/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/latency-cheap-crowds-not/</guid>
      <pubDate>Thu, 24 Sep 2026 09:00:00 GMT</pubDate>
      <description>Nemotron 3 Diarization loses almost no accuracy at low latency, but its error roughly triples past four speakers, so test on your own audio.</description>
      <category>AI Engineering</category>
      <category>Speech AI</category>
      <category>Open Source</category>
    </item>
    <item>
      <title>DigitalOcean Managed Agents: stop paying for idle coding agent time</title>
      <link>https://huseyinkaplan.dev/insights/agents-bill-for-waiting/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/agents-bill-for-waiting/</guid>
      <pubDate>Wed, 23 Sep 2026 09:00:00 GMT</pubDate>
      <description>DigitalOcean Managed Agents pause microVM billing while sessions sit idle; check idle time, secrets, resume behavior and quotas before moving agents.</description>
      <category>AI Agents</category>
      <category>AI Engineering</category>
      <category>DevOps</category>
    </item>
    <item>
      <title>Opus 5.5 and GPT-6 Sol/Luna: the price war moved to cached tokens</title>
      <link>https://huseyinkaplan.dev/insights/price-war-cached-tokens/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/price-war-cached-tokens/</guid>
      <pubDate>Wed, 23 Sep 2026 09:00:00 GMT</pubDate>
      <description>Opus 5.5 cut cache reads 60% and GPT-6 gives 90% off cached input, so agent costs now hinge on a stable prompt prefix.</description>
      <category>AI Engineering</category>
      <category>Anthropic</category>
      <category>OpenAI</category>
    </item>
    <item>
      <title>Knowledge Is Free Now. Focus Is Still Expensive.</title>
      <link>https://huseyinkaplan.dev/insights/knowledge-is-free-now-focus-is-still-expensive/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/knowledge-is-free-now-focus-is-still-expensive/</guid>
      <pubDate>Wed, 27 May 2026 09:00:00 GMT</pubDate>
      <description>The internet and AI made knowledge free for everyone, but growth still depends on the scarce part: attention, focus and the discipline to apply.</description>
      <category>Learning</category>
      <category>Self Improvement</category>
      <category>Productivity</category>
      <category>Focus</category>
    </item>
    <item>
      <title>The AI API Key Leak Pattern Nobody Wants to Talk About</title>
      <link>https://huseyinkaplan.dev/insights/the-ai-api-key-leak-pattern-nobody-wants-to-talk-about/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/the-ai-api-key-leak-pattern-nobody-wants-to-talk-about/</guid>
      <pubDate>Mon, 18 May 2026 09:00:00 GMT</pubDate>
      <description>Why AI API key leaks are spiking in 2026: Gemini changed what public Google keys can do, NEXT_PUBLIC_ ships secrets, and the fix is a server route.</description>
      <category>Web Security</category>
      <category>API</category>
      <category>Next.js</category>
      <category>AI Engineering</category>
    </item>
    <item>
      <title>Software Engineering Isn’t Dying. It’s Evolving: From Vibe Coding to Agentic Engineering</title>
      <link>https://huseyinkaplan.dev/insights/software-engineering-isnt-dying-it-s-evolving-from-vibe-coding-to-agentic-engineering/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/software-engineering-isnt-dying-it-s-evolving-from-vibe-coding-to-agentic-engineering/</guid>
      <pubDate>Mon, 16 Feb 2026 09:00:00 GMT</pubDate>
      <description>From an 1878 telephone misjudgment to AI agents today: why software engineering is evolving from vibe coding into disciplined agentic engineering.</description>
      <category>Software Engineering</category>
      <category>Vibe Coding</category>
      <category>AI</category>
      <category>Agentic Engineering</category>
    </item>
    <item>
      <title>Agent‑Ready Repo Structure (2026)</title>
      <link>https://huseyinkaplan.dev/insights/agent-ready-repo-structure-2026/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/agent-ready-repo-structure-2026/</guid>
      <pubDate>Sun, 01 Feb 2026 09:00:00 GMT</pubDate>
      <description>AI agents fail because of repo ambiguity, not model quality. Here is how AGENTS.md and a clear repo layout make your codebase agent-ready.</description>
      <category>Developer Tools</category>
      <category>Artificial Intelligence</category>
      <category>Software Engineering</category>
      <category>Productivity</category>
    </item>
    <item>
      <title>Why CS50 Has a 1% Completion Rate (And How I Finished Twice)</title>
      <link>https://huseyinkaplan.dev/insights/why-cs50-has-a-1-completion-rate-and-how-i-finished-twice/</link>
      <guid isPermaLink="true">https://huseyinkaplan.dev/insights/why-cs50-has-a-1-completion-rate-and-how-i-finished-twice/</guid>
      <pubDate>Mon, 05 Jan 2026 09:00:00 GMT</pubDate>
      <description>Fewer than 1% of online learners finish Harvard’s CS50. Why most quit, and the habits that got me through both CS50x and CS50 Web.</description>
      <category>CS50</category>
      <category>Harvard</category>
      <category>Learning</category>
      <category>Programming</category>
    </item>
  </channel>
</rss>
