Recent Posts
-
Implementing retries with exponential backoff
Making a call to an external service might fail for a lot of reasons, sometimes it’s due to network failure, sometimes it’s because the external service is too busy, or […]
-
Executing tasks with the Executor Framework in Java
Java offers us many ways to write multi-threading applications, at the early stage, we probably create a new thread for each task by manually extending the Thread class, this seems […]
-
AOC 2022 – Day 5: Supply Stacks
You can read the full description for day 5 here. In summary for part 1, we have been provided a number of stacks, each stack may contain a number of […]
-
WebRTC – Go beyond the APIs Part 1: Signaling and Connecting
We were in the middle of the pandemic. Many of us have to get accustomed to the new norm, stay at home to work and study, etc.…We are separated and […]
-
Avoiding NullPointerException in Java
NullPointerException is one of the most hideous exceptions in Java. It can silently stop the execution of one thread, or it can, fatally terminate the execution of the whole program. […]
-
Introduction to Trie Data Structure
Trie is a data structure that is not so popular but is particularly useful when you have to work a lot with strings. It also has different names like a […]
-
Instrumenting Applications with Prometheus
Monitoring is an integral part of any non-trivial system, by the monitoring process, we then have an insight into the application performance and status, such as RPM, CPU usage, and […]
-
Covariance and Contravariance (Java)
Many programming languages support subtyping, for example, MechanicalKeyboard can be a subtype of Keyboard, and according to the Liskov substitution principle, the MechanicalKeyboard instance should be substitutable everywhere the Keyboard […]
-
Some notes about TreeSet in Java
The most frequent data structure that I use in Java is the List. But sometimes if I have to store distinct elements without caring about the ordering, then I would […]
-
Thread confinement in Java
As a Java developer, perhaps all of us have written some kind of single-threaded program. In this program, we can reason about our code much easier when compared with multi-threaded […]