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.

Being a Developer Isn't Just Writing Code
kariyeryazilim gelistirme

Being a Developer Isn't Just Writing Code

Your real value isn't in the code you write — it's in understanding what the code is for. Why understanding the business is the threshold for senior-level work, and how to build that muscle.

3 min read
The Evolution of the Software Developer: 2012 to 2026
kariyeryazilim gelistirme

The Evolution of the Software Developer: 2012 to 2026

In fourteen years the developer role has shifted nearly four times. From specialist to full-stack, from full-stack to product engineer, now into an AI-augmented role. What changed at each stage, and what stayed the same.

3 min read
Working With AI While Writing Code: What Actually Matters
yapay zekayazilim gelistirme

Working With AI While Writing Code: What Actually Matters

I've been using Cursor and Claude Code in production for a year. As important as the speed gains are the rules I keep — hallucination, context hygiene, security, and production stability.

3 min read
Your Code Works Locally. Now What?
yazilim gelistirmeproduction

Your Code Works Locally. Now What?

"Works on my machine" isn't a meme — it's a culture problem. What's the distance between when you think a feature is done and when it's actually done? A senior's end-to-end shipping checklist.

3 min read
10,000+ CCU: Managing Traffic Waves on Kubernetes
kubernetesdistributed systems

10,000+ CCU: Managing Traffic Waves on Kubernetes

Practical notes on running a multiplayer backend with 10,000+ concurrent users on Kubernetes — autoscaling on custom metrics, pre-warming, priorities, and surviving sudden traffic spikes.

3 min read
Redis Pub/Sub or RabbitMQ? When to Pick Which
backenddistributed systems

Redis Pub/Sub or RabbitMQ? When to Pick Which

I've run both in the same platform for years. Why each got chosen, when I paid the cost of a wrong call, and the four questions I ask before picking.

3 min read
Istio Service Mesh in Practice: What It Does and Doesn't
kubernetesdistributed systems

Istio Service Mesh in Practice: What It Does and Doesn't

We brought Istio into production during our 2023 Kubernetes migration. A year in, here's what actually delivers value versus what's sold but we don't use — a field report.

3 min read
Production Incidents: The First 15 Minutes Matter Most
productiondistributed systems

Production Incidents: The First 15 Minutes Matter Most

How the first 15 minutes of a production incident play out determines the next few hours. A field playbook from years of iGaming on-call — what to do, what not to do, which tools to reach for.

4 min read
Polyglot Architecture: Java, .NET, and Python on One Platform
distributed systemsbackend

Polyglot Architecture: Java, .NET, and Python on One Platform

Our production platform has 20+ microservices — some Java/Spring, some .NET Core, some Python. Can multiple languages live next to each other cleanly? When is it necessary, when is it regret?

3 min read
What Does It Mean to Be a Senior Engineer?
kariyeryazilim gelistirme

What Does It Mean to Be a Senior Engineer?

The senior title isn't assigned by years. What should change from junior to senior, which habits arrive, which behaviors are left behind? Concrete criteria from real production work.

4 min read
On-Prem to AWS + Kubernetes: The Migration Gotchas Nobody Mentions
kubernetesaws

On-Prem to AWS + Kubernetes: The Migration Gotchas Nobody Mentions

In 2023 we moved a 20+ microservice platform from on-prem to AWS + Kubernetes. Seven realities that never show up in the migration plan but slow the work — field notes.

4 min read
Observability Basics: Logs, Metrics, Traces — What's Each For?
productiondistributed systems

Observability Basics: Logs, Metrics, Traces — What's Each For?

The three pillars of observability: log, metric, trace. When to reach for which, the trouble with using one in place of another, and real incident examples showing how they work together.

4 min read