Blog posts

2025

Java Concurrency 101

23 minute read

Published:

This article provides understanding of Java Concurrency concepts, including threads, ExecutorService, synchronization, concurrent collections, threading problems, locks, conditions, semaphores, volatile variables, happens-before relationships, and barrier synchronization.

Redis 101

19 minute read

Published:

This article introduces Redis, a widely-used in-memory data store. It covers Redis basics, caching strategies, data structures, persistence mechanisms, and techniques.

Kafka Message compression

1 minute read

Published:

This article explains how Kafka message compression works, its configuration, and considerations for both producers and consumers.

Kafka Best Practices

3 minute read

Published:

Below are some notes on Kafka best practices that I found useful while working with Kafka in production.

2024

MongoDB 101

22 minute read

Published:

This is a beginner’s guide to MongoDB, a popular NoSQL database. In this post, I will cover the basics of MongoDB, including its features, installation, and basic operations.

Introduction to Apache Maven

6 minute read

Published:

This article provides a comprehensive introduction to Apache Maven, a powerful build automation tool widely used in Java projects. It covers the basics of Maven, including its standard directory layout, installation process, dependency management, and build lifecycle.

Hexagon Architecture

6 minute read

Published:

This article briefly explains the Hexagon Architecture (also known as Ports and Adapters Architecture), its components.

Human code review

7 minute read

Published:

Code review is a critical part of the software development process. Here are some best practices to make code reviews more effective and collaborative.

2023

Code refactoring practices

8 minute read

Published:

Some code refactoring practices that I have thought would be useful in daily software development.

Access Control Mechanisms

2 minute read

Published:

Some common access control mechanisms like ACL, RBAC, PBAC that are widely used in software systems.