Blog
Technical articles, tutorials, and thoughts on software engineering, distributed systems, and building scalable applications.
Understanding Retrieval-Augmented Generation (RAG) by Building One from Scratch
Large Language Models only know what they were trained on. RAG fixes that by letting models fetch real knowledge before answering. Here’s how it works, and how to build one yourself. Why standard LLMs...
Data Structures and their Temperaments
Data Structures and Their Temperaments What if data structures were just emulating human personalities all along? The four basic data structures — arrays, hashmaps, tuples, and sets each define a way...
Why Developers Use n8n (And Why It’s Not “Just No-Code”)
Why Developers Use n8n (And Why It’s Not “Just No-Code”) Automation tools often get dismissed by engineers — for good reasons. n8n is different, and that difference explains why experienced developers...
How Modern Online Payments Work: The Complete Technical Breakdown Behind Every “Pay Now” Button
How Modern Online Payments Work Online payments feel instant you click Pay, see a confirmation, and move on. But behind that single action is a complex, highly-orchestrated ecosystem designed to verif...
Monte Carlo Simulation Through the Lens of Markov Chains
Uncertainty is the only constant. Monte Carlo gives randomness a purpose. Markov chains give it structure. Together, they form the backbone of modern simulation. At first glance, Monte Carlo simulatio...
Let It Marinate: The Underrated Power of Sitting with Information
Let It Marinate The underrated power of sitting with information and why doing nothing is sometimes the most productive thing you can do. In a world obsessed with speed, we tend to treat learning like...
Unlocking the Power of Bitwise Operations and Masking: Store More with Less
Unlocking the Power of Bitwise Operations and Masking Store more with less and write faster, leaner, more memory-efficient programs by learning how computers actually think. When I first encountered b...
Understanding Time and Space Complexity in Recursion — No Code
Understanding Time and Space Complexity in Recursion Recursion is one of the most beautiful concepts in computer science and one of the most misunderstood. The issue isn’t the logic. It’s the unseen c...
Understanding KMP, Rabin-Karp, Indexed Search, Linear Search, and Regex Search
Understanding KMP, Rabin-Karp, Indexed Search, Linear Search, and Regex Search In today’s data-driven world, the ability to efficiently search through files and text is critical. Whether you’re parsin...
Game Theory and Its Fascinating Applications in Computation
Game Theory and Its Fascinating Applications in Computation Have you ever wondered how computer systems make decisions when multiple agents—human or machine—are involved? Whether it’s self-driving car...
Want to read more?
Check out my Medium profile for additional articles, tutorials, and technical deep dives.
Visit Medium Profile→