# Yiğit Tanrıverdi

> Senior Full-Stack Engineer based in Berlin, open to remote. Backend-leaning and AI-forward. TypeScript, Node.js, React on AWS and the Cloudflare edge. A decade across FinTech and e-commerce, most recently at RIDE Capital.

Personal site of Yiğit Tanrıverdi — Senior Full-Stack Engineer based in Berlin, Germany. This file is a machine-readable index of the site content following the llms.txt convention (https://llmstxt.org/). Crawling welcome; attribution appreciated.

## Identity

- **Name**: Yiğit Tanrıverdi
- **Role**: Senior Full-Stack Engineer (backend-leaning), AI-forward
- **Location**: Berlin, Germany — open to remote
- **Email**: yigittanriverdi@yandex.com
- **Site**: https://yigittanriverdi.com/
- **Experience & CV (web)**: https://yigittanriverdi.com/experience
- **CV (PDF)**: https://yigittanriverdi.com/Yigit-Tanriverdi-fullstack.pdf
- **Uses / gear**: https://yigittanriverdi.com/uses
- **Tools (index)**: https://yigittanriverdi.com/tools
- **Tools — Turkish slug generator**: https://yigittanriverdi.com/tools/slug
- **Tools — JWT decoder + HS256/384/512 verify**: https://yigittanriverdi.com/tools/jwt
- **Tools — JSON formatter / validator / minifier**: https://yigittanriverdi.com/tools/json
- **Tools — Regex tester (ECMAScript)**: https://yigittanriverdi.com/tools/regex
- **Tools — Hash generator (SHA-1/256/384/512)**: https://yigittanriverdi.com/tools/hash
- **Tools — Unix timestamp converter**: https://yigittanriverdi.com/tools/time
- **Tools — UUID v4 + v7 generator**: https://yigittanriverdi.com/tools/uuid
- **Tools — Base64 encoder/decoder (UTF-8, URL-safe)**: https://yigittanriverdi.com/tools/base64
- **GitHub**: https://github.com/xgame92
- **LinkedIn**: https://www.linkedin.com/in/yigit-tanriverdi/
- **Stack Overflow**: https://stackoverflow.com/users/5818602/

## Stack & focus

- **Languages**: TypeScript, JavaScript, C#/.NET Core, Java, Python
- **Backend**: Node.js, Express.js, Nest.js, Hono, ASP.NET Core, GraphQL/Prisma
- **Frontend**: React (TypeScript), Vue.js, Astro, Tailwind
- **Edge/cloud**: Cloudflare Workers + D1 + R2 + KV, AWS (EKS/EC2/S3), Docker, Kubernetes, Terraform
- **Databases**: PostgreSQL, MSSQL, MongoDB, SQLite, Redis, Drizzle, TypeORM, Prisma
- **Messaging/obs**: SQS, SNS, RabbitMQ, BullMQ, ElasticSearch, Kibana, Grafana
- **Methodologies**: TDD, Extreme Programming, Trunk-Based Development, pair programming, CI/CD, GitOps
- **Current interest**: Generative AI, LLM-first product workflows, edge-first architecture

## Blog posts

- [What Is an Agent Harness? (And Why Your LLM Needs One)](https://yigittanriverdi.com/blog/agent-harness) (2026-05-29) — 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.
- [Why your Kubernetes rolling deploy still drops requests](https://yigittanriverdi.com/blog/why-your-kubernetes-rolling-deploy-still-drops-requests) (2026-05-21) — 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.
- [How I would secure a Kubernetes cluster from day one](https://yigittanriverdi.com/blog/securing-a-kubernetes-cluster-from-day-one) (2026-05-21) — 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.
- [The request is the wrong unit of scale for LLMs on Kubernetes](https://yigittanriverdi.com/blog/the-request-is-the-wrong-unit-of-scale-for-llms-on-kubernetes) (2026-05-21) — 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.
- [Building a production LLM platform on Kubernetes](https://yigittanriverdi.com/blog/building-a-production-llm-platform-on-kubernetes) (2026-05-21) — 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.
- [An idempotency bug that only affected posts with em-dashes](https://yigittanriverdi.com/blog/an-idempotency-bug-that-only-affected-posts-with-em-dashes) (2026-04-23) — 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.
- [Terraform, Pulumi, Kubernetes, or none: picking infra in 2026](https://yigittanriverdi.com/blog/terraform-pulumi-kubernetes-or-none) (2026-04-22) — 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.
- [Migrating from WordPress to Cloudflare Workers in 2026](https://yigittanriverdi.com/blog/migrating-from-wordpress-to-cloudflare-workers) (2026-04-22) — 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.
- [Using Claude Code as Your Pair: Notes from Building a Real Site](https://yigittanriverdi.com/blog/using-claude-code-as-your-pair) (2026-04-22) — 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.

## Blog tags

- [kubernetes](https://yigittanriverdi.com/blog/tags/kubernetes) (5)
- [DevOps](https://yigittanriverdi.com/blog/tags/devops) (3)
- [LLM](https://yigittanriverdi.com/blog/tags/llm) (3)
- [cloudflare](https://yigittanriverdi.com/blog/tags/cloudflare) (3)
- [AI Infrastructure](https://yigittanriverdi.com/blog/tags/ai-infrastructure) (2)
- [Cloud](https://yigittanriverdi.com/blog/tags/cloud) (2)
- [MLOps](https://yigittanriverdi.com/blog/tags/mlops) (2)
- [Platform Engineering](https://yigittanriverdi.com/blog/tags/platform-engineering) (2)
- [astro](https://yigittanriverdi.com/blog/tags/astro) (2)
- [edge](https://yigittanriverdi.com/blog/tags/edge) (2)
- [typescript](https://yigittanriverdi.com/blog/tags/typescript) (2)
- [AWS](https://yigittanriverdi.com/blog/tags/aws) (1)
- [Reliability](https://yigittanriverdi.com/blog/tags/reliability) (1)
- [Security](https://yigittanriverdi.com/blog/tags/security) (1)
- [ai](https://yigittanriverdi.com/blog/tags/ai) (1)
- [ai-agents](https://yigittanriverdi.com/blog/tags/ai-agents) (1)
- [claude-code](https://yigittanriverdi.com/blog/tags/claude-code) (1)
- [debugging](https://yigittanriverdi.com/blog/tags/debugging) (1)
- [developer-workflow](https://yigittanriverdi.com/blog/tags/developer-workflow) (1)
- [dotnet](https://yigittanriverdi.com/blog/tags/dotnet) (1)
- [iac](https://yigittanriverdi.com/blog/tags/iac) (1)
- [migration](https://yigittanriverdi.com/blog/tags/migration) (1)
- [opentofu](https://yigittanriverdi.com/blog/tags/opentofu) (1)
- [pulumi](https://yigittanriverdi.com/blog/tags/pulumi) (1)
- [terraform](https://yigittanriverdi.com/blog/tags/terraform) (1)
- [wordpress](https://yigittanriverdi.com/blog/tags/wordpress) (1)
- [workers](https://yigittanriverdi.com/blog/tags/workers) (1)

## Projects

- [Falimda](https://falimda.app/en) — shipping — AI-powered coffee reading, tarot, natal chart & daily horoscope
- [C3.lt](https://c3.lt/) — shipping — Branded short links + bio pages on Cloudflare's edge
- [Best Phuket Guide](https://bestphuketguide.com/) — shipping — Daily island tours from Phuket — instant booking, free cancellation
- [inboxdebug](https://inboxdebug.com) — completed — Debug email APIs (Resend, SendGrid, any provider) right in Chrome

## Machine-readable feeds

- RSS: https://yigittanriverdi.com/rss.xml
- Sitemap: https://yigittanriverdi.com/sitemap.xml
- This file: https://yigittanriverdi.com/llms.txt

## MCP server (Model Context Protocol)

If your client supports MCP, point it at `https://yigittanriverdi.com/mcp/rpc` for live, structured access to posts, projects, profile, and the /tools catalogue. Human-readable docs at `https://yigittanriverdi.com/mcp`. Public tools are read-only and unauthenticated. Manifest at `https://yigittanriverdi.com/.well-known/mcp.json`.

## Licensing & attribution

Prose on this site is © Yiğit Tanrıverdi. Quoting with attribution is fine; please link back to the post URL when you do.
