tolgacelik.net
Writing

Notes from distributed systems in production.

Essays and field reports from building and operating high-traffic, polyglot platforms — Kubernetes, AWS, incident response, iGaming scale.

Redis Cache Invalidation: Four Patterns From Production
backendproduction

Redis Cache Invalidation: Four Patterns From Production

Cache invalidation is famously "one of the two hard things in CS." True — but the hard part isn't the magic, it's choosing the right pattern for your shape of system. Four field-tested patterns from iGaming production.

3 min read
Zero-Downtime Database Migrations: The Expand-Contract Pattern
backendproduction

Zero-Downtime Database Migrations: The Expand-Contract Pattern

Schema changes are the most-feared deploys in most systems. With the right approach, zero downtime is achievable. The expand-contract pattern I've used for years and the step-by-step plan.

3 min read
Background Jobs: Idempotency, Retries, and DLQs
backenddistributed systems

Background Jobs: Idempotency, Retries, and DLQs

Async job queues are the silent backbone of production. Get them wrong and you ship duplicate operations, lost messages, and data inconsistency. Three patterns that have kept us safe in production.

3 min read
Scaling WebSockets: Connections, State, Broadcast
backenddistributed systems

Scaling WebSockets: Connections, State, Broadcast

Scaling an HTTP API to tens of thousands of users is relatively easy. Managing the same load over WebSocket connections is a different game. Four years of multiplayer production.

4 min read
Feature Flags: How They Actually Work in Production
yazilim gelistirmeproduction

Feature Flags: How They Actually Work in Production

Feature flags sound simple — "on/off switch." Done badly, they fill your codebase with zombie code over a year. Six years of production experience on what they're for and what they aren't.

3 min read
Code Review Culture: The Practice That Makes or Breaks a Team
yazilim gelistirmekariyer

Code Review Culture: The Practice That Makes or Breaks a Team

Done well, code review raises a team's standard over time. Done badly, it kills motivation. Thirteen years of lessons on what actually matters in review.

4 min read
Engineering On-Call: Surviving It and Improving It
productionkariyer

Engineering On-Call: Surviving It and Improving It

On-call rotation is the most disliked and most valuable practice in engineering teams. Done wrong it burns the team out; done right it's one of the strongest engineering practices around. Six years of iGaming on-call lessons.

4 min read
Why Software Estimation Is Hard — And How to Be Less Wrong
yazilim gelistirmekariyer

Why Software Estimation Is Hard — And How to Be Less Wrong

Software estimates are wrong constantly. The cause isn't your skill — it's the nature of the problem. The cone of uncertainty and the practical estimation discipline I use in production.

4 min read
Burnout and a Sustainable Software Career
kariyer

Burnout and a Sustainable Software Career

Across 13 years in software, I came close to burnout twice. Early signals, practical ways to draw boundaries, the truth that recovery isn't a vacation — honestly.

4 min read
How AI Is Reshaping Software Development — For the Better
yapay zekayazilim gelistirme

How AI Is Reshaping Software Development — For the Better

Cursor and Claude Code have roughly 5×'d my output over the past year. Here's what actually changed in production work, which skills got commoditized, and which got more valuable — a senior developer's field report.

3 min read
Working With Legacy Code: Don't Fall Into the Rewrite Trap
yazilim gelistirmekariyer

Working With Legacy Code: Don't Fall Into the Rewrite Trap

Every senior engineer faces legacy code repeatedly. "Let's rewrite" is tempting and dangerous. Strangler fig, test-before-refactor, evolving in small steps — lessons from years of practice.

4 min read
On-prem to AWS + Kubernetes: migrating a 20+ microservice iGaming platform

On-prem to AWS + Kubernetes: migrating a 20+ microservice iGaming platform

Notes from the 2023 rebuild of a high-traffic multiplayer platform serving 10,000+ concurrent users — polyglot stack, Istio mesh, and the decisions that actually paid off.

3 min read