Capacity Is the Roadmap
When I was young, I worked in carpentry during the summers. Summer was busy. New buildings had to go up. Stables needed repairs. Barns needed extensions. Sheds had to be built o...
Posts on debt, maintenance cost, and the long tail of short-term choices.
When I was young, I worked in carpentry during the summers. Summer was busy. New buildings had to go up. Stables needed repairs. Barns needed extensions. Sheds had to be built o...
Most of what we call progress in software is just motion. New tools, new frameworks, same problems. Maybe fancier logos. Our industry always has this collective thrill that a ne...
How many times have you found yourself saying: “I worked all day, but I didn’t get anything done.” I know, we have all been there. We feel bad about it, too. On the surface, it...
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...
Engineering health is a term that deserves far more attention than it receives. Sustainable software development is not only about the features we ship or the speed at which we...
In software development, we obsess over component benchmarks and algorithmic complexity, chasing milliseconds latency and BigO wins. But, time and after time, I’ve found that th...
I know. When you hear legacy, you think , , weird edge cases, and “what the hell just broke now.” Every moment feels frustrating. You don’t know what the next change will trigge...
In 1902, Hanoi was drowning in rats. The government was getting nervous about plague. Hence, the city put a bounty per rat tail. Suddenly, the system had a scoreboard, something...
Tech debt occurs when we solve a software problem with our limited understanding of the business at the time. We start building a solution to get feedback as early as possible....
A technical vision is the compass of an engineering organization. It sets the longterm direction. I believe it should define the "why" and "where" behind the technical choices t...
A wrapper library is a thin layer of abstraction around an existing library, dependency, or functionality. A wrapper library offers a better and cleaner interface or rather hide...
Some time ago, I attended a course and became . It wasn’t a huge deal. I was already doing the job. But as time went on and I gained more experience, my view of agile frameworks...
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...
Every programming language has its oddities and challenges. When it comes to JavaScript, it has Every programming language has its oddities and challenges. When it comes to Java...
Most teams realize they are dealing with a legacy repo only when a tiny change turns into an operation. A oneline fix suddenly needs three people, two days of manual checks, and...
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...
Areca is the name of the billing engine I am working on for Turk Telekom. Funny enough, it is also the name of the flowers we bought to freshen the office. We wanted the office...