
Saajan Nagendra
Saajan is an architect with deep experience building systems in several business domains. With a clean and minimalist approach to design, he is passionate about code - the aesthetics of it and creating maintainable and flexible solutions. He enjoys both sharing with and learning from others.
- Java
Implementing Timeouts with Resilience4j
In this series so far, we have learned about Resilience4j and its Retry and RateLimiter modules. In this article, we will continue exploring Resilience4j with a look into the TimeLimiter.

- Java
Implementing Rate Limiting with Resilience4j
In the previous article in this series, we learned about Resilience4j and how to use its Retry module. Let’s now learn about the RateLimiter - what it is, when and how to use it, and what to watch out for when implementing rate limiting (or “throttling”, as it’s also called).

- Java
Run Your Maven Build Anywhere with the Maven Wrapper
In this article, we’ll learn about the Maven Wrapper - what problem it solves, how to set it up, and how it works.

- Java
Implementing Retry with Resilience4j
In this article, we’ll start with a quick intro to Resilience4j and then deep dive into its Retry module. We’ll learn when and how to use it, and what features it provides.

- Software Craft
The Liskov Substitution Principle Explained
This article gives a quick intro to the Liskov Substitution Principle (LSP), why it’s important, and how to use it to validate object-oriented designs.
