<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Yiğit Tanrıverdi</title><description>Writing by Yiğit Tanrıverdi.</description><link>https://yigittanriverdi.com/</link><item><title>What Is an Agent Harness? (And Why Your LLM Needs One)</title><link>https://yigittanriverdi.com/blog/agent-harness/</link><guid isPermaLink="true">https://yigittanriverdi.com/blog/agent-harness/</guid><description>An agent harness is the code around an LLM that turns a chat model into a reliable agent: the loop, tool dispatch, context management, verification, and recovery.</description><pubDate>Fri, 29 May 2026 09:32:36 GMT</pubDate></item><item><title>Why your Kubernetes rolling deploy still drops requests</title><link>https://yigittanriverdi.com/blog/why-your-kubernetes-rolling-deploy-still-drops-requests/</link><guid isPermaLink="true">https://yigittanriverdi.com/blog/why-your-kubernetes-rolling-deploy-still-drops-requests/</guid><description>A rolling update is not the same as zero downtime. Kubernetes will route traffic to a pod that is shutting down and restart one that is merely busy. Here is what actually makes a deploy invisible to users: readiness gating, the SIGTERM race and the preStop fix, PodDisruptionBudgets, and the ASP.NET Core and Node.js specifics.</description><pubDate>Thu, 21 May 2026 16:20:42 GMT</pubDate></item><item><title>How I would secure a Kubernetes cluster from day one</title><link>https://yigittanriverdi.com/blog/securing-a-kubernetes-cluster-from-day-one/</link><guid isPermaLink="true">https://yigittanriverdi.com/blog/securing-a-kubernetes-cluster-from-day-one/</guid><description>I ran .NET microservices on EKS in production, and we bolted security on after the fact. A fresh Kubernetes cluster trusts everything by default. Here is the day-one hardening I would never defer again: default-deny networking, least-privilege RBAC, admission control, real secrets, and runtime detection.</description><pubDate>Thu, 21 May 2026 16:08:36 GMT</pubDate></item><item><title>The request is the wrong unit of scale for LLMs on Kubernetes</title><link>https://yigittanriverdi.com/blog/the-request-is-the-wrong-unit-of-scale-for-llms-on-kubernetes/</link><guid isPermaLink="true">https://yigittanriverdi.com/blog/the-request-is-the-wrong-unit-of-scale-for-llms-on-kubernetes/</guid><description>Your dashboard says traffic is flat while latency drifts and the GPU strains. The HTTP request is only the envelope; the real work is token processing. Why tokens, not requests, are the unit of scale for LLMs on Kubernetes.</description><pubDate>Thu, 21 May 2026 11:14:55 GMT</pubDate></item><item><title>Building a production LLM platform on Kubernetes</title><link>https://yigittanriverdi.com/blog/building-a-production-llm-platform-on-kubernetes/</link><guid isPermaLink="true">https://yigittanriverdi.com/blog/building-a-production-llm-platform-on-kubernetes/</guid><description>I have run Kubernetes in production for microservices, not LLMs. Serving large language models breaks the assumptions that make K8s good at web apps. Here is how I would architect a production LLM platform, vendor-neutral, with the router, token accounting, and autoscaling Kubernetes will not give you.</description><pubDate>Thu, 21 May 2026 11:14:53 GMT</pubDate></item><item><title>An idempotency bug that only affected posts with em-dashes</title><link>https://yigittanriverdi.com/blog/an-idempotency-bug-that-only-affected-posts-with-em-dashes/</link><guid isPermaLink="true">https://yigittanriverdi.com/blog/an-idempotency-bug-that-only-affected-posts-with-em-dashes/</guid><description>My nightly D1 to GitHub backup worker claimed idempotency and quietly lied about it every run. The culprit: atob() returns a latin-1 string, not UTF-8. Here is how I found it and the 13-line fix.</description><pubDate>Thu, 23 Apr 2026 03:34:00 GMT</pubDate></item><item><title>Terraform, Pulumi, Kubernetes, or none: picking infra in 2026</title><link>https://yigittanriverdi.com/blog/terraform-pulumi-kubernetes-or-none/</link><guid isPermaLink="true">https://yigittanriverdi.com/blog/terraform-pulumi-kubernetes-or-none/</guid><description>I have used Terraform to run Kubernetes microservices in production. My personal site runs on 47 lines of wrangler.toml. After seven years with and without those tools, here is the honest cutoff.</description><pubDate>Wed, 22 Apr 2026 18:18:20 GMT</pubDate></item><item><title>Migrating from WordPress to Cloudflare Workers in 2026</title><link>https://yigittanriverdi.com/blog/migrating-from-wordpress-to-cloudflare-workers/</link><guid isPermaLink="true">https://yigittanriverdi.com/blog/migrating-from-wordpress-to-cloudflare-workers/</guid><description>After years on WordPress, I rebuilt yigittanriverdi.com as a single Cloudflare Worker. Astro 6 SSR, D1 for content, two write paths into one source of truth, and an admin panel I can edit from anywhere.</description><pubDate>Wed, 22 Apr 2026 13:08:59 GMT</pubDate></item><item><title>Using Claude Code as Your Pair: Notes from Building a Real Site</title><link>https://yigittanriverdi.com/blog/using-claude-code-as-your-pair/</link><guid isPermaLink="true">https://yigittanriverdi.com/blog/using-claude-code-as-your-pair/</guid><description>Three days of building a personal site end-to-end with Claude Code as the primary engineer. What worked, what did not, and the workflow patterns that emerged.</description><pubDate>Wed, 22 Apr 2026 13:08:58 GMT</pubDate></item></channel></rss>