Writing on software design, engineering, and technology.
All of my long-form thoughts on programming, system design, and more — collected from my blog and Medium, in chronological order.

Design a News Aggregator
What is a News Aggregator?A news aggregator is a digital platform that collects, organizes, and displays news articles from thousands of publishers worldwide. Users can browse a continuously updated...

Unlock the secrets behind Redis’ lightning speed, real-world patterns, and the “hot key” trap every
Redis Explained: The Lean, Lightning-Fast Backbone of Great ArchitectureRedis: The Secret Weapon for System Design InterviewsEver wondered if there’s a single tool that can instantly level up your...

How a DNS Failure in AWS’s us-east-1 Region Shook the Internet
Monday was anything but ordinary. Signal stopped connecting, Slack lagged, Zoom calls dropped, and countless websites around the world went dark. Even major Amazon Web Services (AWS) offerings...
How to Design Dropbox
Dropbox is a cloud-based file storage and sharing service that allows users to store, share, and access files securely from any device, anywhere in the world. At its core, Dropbox simplifies the...

How to Design a Scalable URL Shortener Like bit.ly
Designing a URL shortener is a classic system design interview question that tests your ability to balance functionality, scalability, and performance. Below is a step-by-step breakdown of how to...

Exploring Java String: Immutability, String Pool, and Differences with StringBuffer and…
Exploring Java String: Immutability, String Pool, and Differences with StringBuffer and StringBuilderMemoryStructure of StringThe String class in Java is unique among data types, primarily due to its...

Spring Boot MVC : HTTP request control flow from start to end
Spring Boot MVC : HTTP request control flow from start to endDispatcherServlet Request Processing FlowSpring MVC is a tool for building web applications using Java. It separates the application into...

Microsoft/Amazon/Oracle — 199. Binary Tree Right/Left Side View
Microsoft/Amazon/Oracle — 199. Binary Tree Right Side ViewGiven the root of a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from...

Microsoft/Amazon/Oracle — 78. Subsets
Microsoft/Amazon/Oracle — 78. SubsetsGiven an integer array nums of unique elements, return all possible subsets (the power set).The solution set must not contain duplicate subsets. Return the...

Microsoft/Amazon/Oracle — 300. Longest Increasing Subsequence
Microsoft/Amazon/Oracle — 300. Longest Increasing SubsequenceGiven an integer array nums, return the length of the longest strictly increasing subsequence.Example 1:Input: nums =...