Best of CodeAhoy

== vs === in Javascript and Which Should be Used When

In Javascript, we have couple of options for checking equality: == (Double equals operator): Known as the equality or abstract comparison operator === (Triple equals operator): Know...

Oct 12, 2019

YAGNI, Cargo Cult and Overengineering - the Planes Won't Land Just Because You Built a Runway in Your Backyard

It was April. Year was probably was 2010. The cold, snowy winter was finally coming to an end and the spring was almost in the air. I was preparing for my final exams. The review lect...

Aug 19, 2017

Basics of Java Garbage Collection

Knock, knock. Who’s there? …long GC pause… Java. It’s an old joke from the time when Java was new and slow compared to other languages. Over time, Java became a lot fa...

Aug 06, 2017

Cluster Analysis Using K-means Explained

Clustering or cluster analysis is the process of dividing data into groups (clusters) in such a way that objects in the same cluster are more similar to each other than those in other...

Feb 19, 2017

Testers Make Software Teams Highly Productive

To put it mildly, developers are not great at testing their own products. Bias, pride, wrong assumptions, lack of time, switching contexts, all play a role in making developers ineffe...

Feb 17, 2017

htop Explained Visually

htop is an interactive process viewer and system monitor. It’s one of my favorite linux tools that I use regularly to monitor system resources. If you take top and put it on steroids,...

Jan 20, 2017

Blameless Postmortems - Examining Failure Without Blame

Let’s face it: failure is inevitable in complex systems. It cares not for the number of tests you ran, code reviews or your monitoring tools. It just happens. And how is failure usual...

Jun 20, 2016

Remote Software Development - Lessons Learned

Previously, I talked about the ill-fated rewrite of our core product. The ‘second system’, although better and faster than its predecessor, was rejected by the customer. But the story...

Jun 12, 2016

Write Less Code

Not too long ago, I sat down to ‘clean up’ a project that I inherited. I was given the reins of the refactoring efforts because the project has had several bugs in production. It was ...

Jun 03, 2016

The char Type in Java is Broken?

If I may be so brash, it is my opinion that the char type in Java is dangerous and should be avoided if you are going to use Unicode characters. char is used for representing characte...

May 08, 2016

Do Experienced Programmers Use Google Frequently?

Software developers, especially those who are new to the field, often ask this question or at least wonder whether they are good developers or just good at googling up solutions.“Do e...

Apr 30, 2016

When to Rewrite from Scratch - Autopsy of a Failed Software

It was winter of 2012. I was working as a software developer in a small team at a start-up. We had just released the first version of our software to a real corporate customer. The de...

Apr 21, 2016