Software Engineer at Microsoft

Lucene Analyzer Explained

Lucene is a tool for text analysis. It uses an analyzer to split the text into tokens and process them. An analyzer has three parts: char filters, tokenizer, and token filters. They can do different things with the text, such as remove HTML tags, find synonyms, or make ngrams.

How to deal with cache stampede in MySQL

Cache stampede is a common issue for large scale applications that use caching to improve performance. It happens when multiple requests try to regenerate the same cache item at the same time, causing a high load on the database. In this blog post, I will explain what causes cache stampede and how to prevent it using various solutions such as optimizing queries, locking, pre-populating the cache, and probabilistic early expiration. You will also learn about some real-world examples of cache stampede and how they were resolved.

The DRY (Don't Repeat Yourself) Principle

DRY stands for Don’t Repeat Yourself, which basically means to avoid writing duplicate code. If you find a block of code that is repeated multiple places, consider using abstraction or moving the code to a separate method. Similarly, if you use a hard-coded value more than once, try making it a constant. This can be applied to every area of software development including database, unit tests, build systems, and documentation.

How I learned React.js and Node.js from scratch in a few months

Here is my personal journey of learning React.js and Node.js as a backend developer. I have outlined in this post everything I used to master these technologies in a short time.