Verifying passed arguments partially

Recently, I was working on a project and I missed a case in unit tests. I didn’t want to verify each argument but rather wanted to check if an object has a certain attribute set. In the older versions of mockito, this wasn’t doable. Since mockito 2.1, you can now do argument verification through argThat. Let’s see an example of […]

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 sharing the same workload. This setup is great for redundancy and performance, but it introduces a simple question: how can we make sure that only one instance executes a […]

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 technology, a new trend, and most possibly, a new hype. And we, developers, somehow lose sight of the goal we want to achieve and, sadly, embrace the hype instead. It starts innocently. […]

Consistency Matters

When I look back at the projects I’ve worked on, the most peaceful moments were always when the code felt consistent. Everything lined up. Names made sense. Files looked familiar. It felt like I could read the system instead of fighting it. That sense of order never happens by accident. It comes from small, deliberate choices made over time. How […]

Java Developer vs. Software Engineer

Java developer vs. software engineer is discussed quite often, especially among programmers trying to define what truly separates a coder from an engineer. One of my friends kept telling me what a “Javacı” would do for certain problems. “Javacı” is a de facto word that means a person who deals with Java or writes Java programs. The “cı” part comes […]