Consider the following piece of code: public class Counter { private static int count = 0; // Static variable public Counter() { count++; // Increment count each time a new object is created } public static int getCount() { // Static method return count; } public static void main(String[] args) { Counter c1 = new... Continue Reading →
Blog
Solving the Staircase Problem: How Many Ways Can You Climb?
Ready to solve a popular DSA problem? We are going to learn this problem called "climbing stairs". Problem Statement You are faced with a staircase that has a certain number of steps, denoted by n. Each time, you can either climb 1 step or 2 steps. The goal is to figure out how many distinct... Continue Reading →
Understanding the Differences Between FLOAT and DECIMAL Data Types in MySQL: A Case Study on Approximation Errors
A few years ago, during one of the dev testing, a fellow engineer complained that the total amount paid is not matching in API response. However, if we manually add the values in DB, it adds up to the correct amount. What could have gone wrong? As we went down the debugging path, we had... Continue Reading →
Zero To One – Ready To Kickstart Your Software Engineering Career?
This course is designed for someone who has a basic understanding of coding. The course intends to provide flavours of little bit of everything. There are also links to leetcode problems that you should solve. Leetcode problems are selected in a way to provide you familiarity with different data structures and algorithms. Please register for... Continue Reading →
Design a TTL based in-memory cache in golang
Introduction Caches are data storage layer that are used to avoid doing operation that is expensive or hard to compute. The following examples can be characterised as an expensive operation: Data which is to be fetched from database, resulting in network calls and usage of precious database resources. Data which is calculated using the response... Continue Reading →
Zero To One – Ready To Kickstart Your Software Engineering Career?
This course is designed for someone who has a basic to no understanding of coding. The course intends to provide flavours of little bit of everything. There are also links to leetcode problems that you should solve. Leetcode problems are selected in a way to provide you familiarity with different data structures and algorithms. Please... Continue Reading →
Kafka – Everything that you should know before interview
Introduction to Apache Kafka Concepts Read complete post Apache Kafka – Set up your first Kafka Producer and Consumer Read complete post Kafka Internals: How does Kafka store the data? Read complete post Reliable Data Delivery In Kafka Read complete post Troubleshooting Under Replicated Kafka Partitions Read complete post Kafka Broker Metrics And Their Debugging... Continue Reading →
What Is Stream Processing ?
What is a data stream or event stream? A data stream is an abstraction representing an unbounded dataset. Unbounded that data is infinite and it grows over time as the new record keep getting added to the dataset. The data contained in the events or the number of events per second. The data differs from... Continue Reading →
Kafka Broker Metrics And Their Debugging
If you are new to Kafka, please read the first three posts of the series given below. Else dive in. Introduction to Kafka Kafka Internals Reliable Data Delivery in Kafka Troubleshooting Under Replicated Kafka Partitions If you are preparing for an interview, this post contains most of the things that you should know about Kafka.... Continue Reading →
Troubleshooting Under Replicated Kafka Partitions
There are two types of replica: Leader replica and Follower replica. Let’s say that there are three replicas of a partition. One of them, should be a leader. All the requests from producers and consumers would pass to the leader in order to guarantee consistency. All the replicas other than the leader are called follower.... Continue Reading →