#Distributed Systems

Writing on coordination, failure modes, and trade-offs in multi-node systems.

January 31, 202614 min read

Why Airport Security Feels Random

I’m about to take yet another flight, this time flying to India. I’m excited, but then I can’t seem to pass the thought of why the heck security checks are so random. I had to c...

October 1, 202517 min read

Why Over-Engineering Happens

If you’ve worked in software long enough, you’ve probably seen it: a CRUD app serving a handful of users, deployed on a Kubernetes cluster with half the CNCF landscape stitched...

December 29, 202114 min read

Service Overload Strategies

Service overload happens a lot. If you haven't seen one, count yourself lucky. The first time I watched it take a system down, I realized how serious it’s to get the basics righ...

December 25, 202134 min read

Designing A Key-Value Store

I’ve been asked once to design a key value store in an interview. It looks easy at first. Then it gets hard, fast. What makes it interesting is how ambiguous it is. I started us...

July 11, 20183 min read

Simple Mutual Exclusion

When we design services for high availability, we often deploy more than one instance of the same application. It might be two servers behind a load balancer or a few nodes shar...

June 6, 20188 min read

Hype in Software Development

We live in a time when every month brings a new framework, library, or architectural pattern that promises to change everything. Increasingly often, we come across a new technol...

December 15, 20178 min read

You Know State Is NO Good

Every engineer learns this the hard way. You think the logic is solid, your tests are green, and your deployment goes smoothly. Looks all good, right? Then you have an outage. N...

September 13, 20165 min read

You Cannot Fix What You Cannot See

I have been working on this data discovery tool for a while, and it keeps showing me how messy our systems really are. The idea behind it is simple. Crawl every database we have...

July 25, 20162 min read

Ufak Servisler

Ufak servisler(micro services) son zamanlarda yazılım alanında sıkça yaygınlaşan bir yöntem. Micro'yu ufak diye çevirmek hoşuma gitti ama tahminen mikro daha çok kullanılır. Zat...

October 15, 20155 min read

Local vs Production Debugging

I have been debugging this data workflow tool we built in house lately. It has an Angular UI and a Java backend, and it moves data between different systems like Postgres to Hiv...

October 4, 20128 min read

XA Transactions: A Simple Guide

In early days of computing, there was no need for distributed transactions, everything lived in one place. As number of applications increased, synchronization of the data becom...