Blog

Looking for my non-tech writing? Check out my Medium blog.

Condescension

A word I learned recently, and what it revealed about charity, freebies and the small generosities we pat ourselves on the back for. True selflessness is about making yourself obsolete.

Read Article

Life Runs on Loops

Career, friendships, family, finance and health each spin in a vicious or virtuous loop, and once you're in one it is hard to escape. Some come with a reset button. The ones that don't, you have to repair.

Read Article

Scaling Vector Search with Approximate Nearest Neighbors

Searching through millions of vectors one by one is too slow. In this post, we explore Approximate Nearest Neighbor (ANN) algorithms that allow us to find 'good enough' results instantly.

Read Article

Moving Beyond Keywords with Vector Embeddings

Keyword search has its limits. This post dives into vector embeddings, the core of modern semantic search. I'll explore how lists of numbers can capture complex meanings and relationships, allowing search engines to understand intent and context, not just keywords.

Read Article

Coding a Search Engine from Scratch

To truly understand how search works, you have to build it. This post demystifies search engine architecture by rebuilding it from the ground up in Python, exploring the fundamentals of web crawlers, inverted indexes, and simple ranking algorithms.

Read Article

A Deep Dive into Lucene Analysis Pipeline

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.

Read Article

How to deal with cache stampede in MySQL

Cache stampede occurs when multiple requests regenerate the same cache item simultaneously, overloading the database. Learn its causes and solutions like query optimization, locking, pre-populating the cache, and probabilistic early expiration.

Read Article

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.

Read Article

Java 12 is here!

Java 12 introduces exciting updates like cleaner switch expressions, the experimental Shenandoah Garbage Collector for reduced pause times, and improvements to G1 GC for better memory management. Explore these features and how they enhance Java's performance and usability.

Read Article

Programmer's Guide to Dealing With Different Time Zones

Handling time zones can be tricky. Store time in UTC, save time zones (not offsets), keep your timezone database updated, and avoid UTC for future or date-only values. Plan ahead to avoid headaches!

Read Article