All posts

Designing for Failure
Learn how resilient systems survive failures using redundancy, retries, circuit breakers, rate limiting, graceful degradation, and monitoring.

Caching Strategies
A deep dive into caching in system design — strategies, invalidation, Redis, and real-world patterns to scale systems efficiently.

Deep Dive into Databases
A complete guide to databases in system design — SQL vs NoSQL, indexing, replication, sharding, and how to choose the right database at scale.

The Big Picture of System Design
A beginner-friendly introduction to system design — covering core concepts, scaling, architecture, and the mental models you need to think like a system designer.

Lessons From Shipping Production Monorepos
After shipping multiple production systems in pnpm workspaces — spanning web, mobile, APIs, CLIs and shared packages — here are the lessons I wish I had before starting.

Web Performance Metrics That Actually Matter in 2025
LCP, INP, CLS — the Core Web Vitals are evolving. Here's what each metric measures, why it matters for UX, and what to do when scores go bad.

Postgres vs MongoDB: Choosing the Right Database for Your Project
A practical guide to choosing between PostgreSQL and MongoDB based on data models, access patterns, and real-world tradeoffs.

CI/CD with GitHub Actions: A Real-World Setup
Beyond the hello world examples. Here's the CI/CD setup I actually use across projects — with caching, matrix builds, deployment gates, and environment secrets.

10 Must-Have JavaScript Libraries Every Front-End Developer Should Know
A practical guide to essential JavaScript libraries for UI development, animation, data visualization, state management, testing and more.
17 posts — Page 1 of 2