Using Apache Ignite to Prevent Duplicate REST Requests

I faced a non-unique problem, my API kept getting duplicate requests in rapid succession from time to time. One of those "It works on my machine" issues that I only saw in a production environment and only due to some misbehaving clients. I know APIs are supposed to be stateless and idempotent and all those buzzwords... I had all that and more, however the duplicates kept coming in, causing the need for cleanup scripts and subtle bugs downstream in a large enterprise system.

Read More

Finding Islands In a Binary Matrix

There is a problem that very often tends to pop up in a lot of technical coding interviews because the solution can be trivial if the candidate understands core concepts of computer science such as recursion and depth first search. It also reveals in-depth knowledge of graphs and common graph traversal algorithms. The problem statement is, given an NxN matrix which contains only 0's and 1's find the number of islands within the matrix. An island is defined as adjacent matrix cells containing 1's, where adjacent means horizontal, vertical and diagonal neighbor cells. In this article I present an efficient enough algorithm with O(n) complexity that takes advantage of a depth first search approach to quickly iterate through the matrix and recursively detect islands.

Read More

My Experience with C# as a Java Guy!

So, the age-old question, Java vs. ‘fill in the blank’. If you are a java developer (sorry Engineer), then you love Java, and you spend time arguing with co-workers about why Java is better or at least not worse than their language of choice. These arguments never end, and will never end, that’s because there are so many languages out there and every month some new language is created which is claimed to be the solution to all our problems. 

Read More