System Design / Cloud / Code

Engineering thoughts,
written in code.

Real-world system design, backend patterns, and practical guides for engineers who build at scale.

Browse all posts
Filter
01
Deep Dive on Elasticsearch: A System Design Interview Perspective
software-design
software-design

Deep Dive on Elasticsearch: A System Design Interview Perspective

A comprehensive guide to Elasticsearch for system design interviews — covering inverted indexes, cluster architecture (master/data/coordinating nodes), sharding and replication, the write path (translog, refresh, flush, merge), the read path (scatter-gather, BM25 scoring), mappings, analyzers, aggregations, scaling strategies, and production best practices for building search-heavy systems.

02
Deep Dive on Apache Kafka: A System Design Interview Perspective
software-design
software-design

Deep Dive on Apache Kafka: A System Design Interview Perspective

A comprehensive guide to Apache Kafka for system design interviews — covering its distributed commit log architecture, partitioning and replication, producer and consumer internals, consumer groups, exactly-once semantics, compacted topics, schema evolution, Connect and Streams APIs, and production patterns for building event-driven systems at scale.

03
Deep Dive on Redis: Architecture, Data Structures, and Production Usage
software-design
software-design

Deep Dive on Redis: Architecture, Data Structures, and Production Usage

A comprehensive guide to Redis — covering its single-threaded architecture, data structures (strings, hashes, sorted sets, streams), persistence (RDB/AOF), replication, clustering with hash slots, pub/sub, Lua scripting, caching patterns, rate limiting, distributed locks, and production best practices for running Redis at scale.

04
Deep Dive on API Gateway: A System Design Interview Perspective
software-design
software-design

Deep Dive on API Gateway: A System Design Interview Perspective

A comprehensive guide to API Gateways for system design interviews — covering request lifecycle, authentication and authorization, rate limiting algorithms (token bucket, sliding window), routing and load balancing, circuit breakers, response caching, request aggregation, TLS termination, protocol translation, and production patterns with Kong, NGINX, AWS API Gateway, and Envoy.

05
REST API Design: Pagination, Versioning, and Best Practices
software-design
software-design

REST API Design: Pagination, Versioning, and Best Practices

A comprehensive guide to designing production-grade REST APIs — covering resource naming, HTTP methods, pagination strategies, versioning approaches, error handling, rate limiting, and the communication problems REST solves.

06
Efficient Data Modelling: A Practical Guide for Production Systems
software-design
software-design

Efficient Data Modelling: A Practical Guide for Production Systems

A hands-on guide to data modelling — from entity-relationship design to normalization tradeoffs, indexing strategies, access-pattern-driven schemas, and safe schema evolution. Covers SQL and NoSQL with real-world examples.

07
Deep Dive on Caching: From Browser to Database
software-design
software-design

Deep Dive on Caching: From Browser to Database

A comprehensive guide to caching in distributed systems — covering caching layers (browser, CDN, application, database), invalidation strategies (cache-aside, write-through, write-behind), eviction policies (LRU, LFU, TTL), consistency pitfalls (thundering herd, hot keys, cache penetration), and production patterns with Redis.

08
System Design Patterns for Real-Time Updates at High Traffic
software-design
software-design

System Design Patterns for Real-Time Updates at High Traffic

How to build real-time systems that handle millions of concurrent connections — covering WebSockets, SSE, pub/sub fan-out, presence tracking, backpressure, and reconnection strategies with production code examples.

09
System Design Patterns for Scaling Writes
software-design
software-design

System Design Patterns for Scaling Writes

A practical guide to scaling write-heavy systems — covering sharding strategies, write-ahead logs, async queues, event sourcing, LSM trees, and batching with architecture diagrams and production code.

10
System Design Patterns for Managing Long-Running Tasks
software-design
software-design

System Design Patterns for Managing Long-Running Tasks

How to design systems that reliably execute tasks taking seconds to hours -- covering async job queues, progress tracking, retry strategies, sagas, checkpointing, dead letter queues, idempotency, and distributed task orchestration with production code examples.

11
System Design Patterns for Handling Large Blobs
software-design
software-design

System Design Patterns for Handling Large Blobs

How to design systems that efficiently upload, store, process, and serve large binary objects (images, videos, documents) at scale -- covering presigned URLs, chunked uploads, content pipelines, storage tiering, CDN delivery, and deduplication strategies.

12
Explaining SAGA Patterns with Examples
software-design
software-design

Explaining SAGA Patterns with Examples

A deep dive into the SAGA pattern for managing distributed transactions — covering orchestration vs choreography, compensation flows, state machines, and production-ready code examples in Node.js and Python.

13
Deep Dive on Consistent Hashing
software-design
software-design

Deep Dive on Consistent Hashing

A comprehensive guide to consistent hashing — how it works, why it matters for distributed systems, virtual nodes, replication strategies, and production implementations in Redis, Cassandra, and DynamoDB.

14
Serverless vs Containers — The Decision I Keep Revisiting
Cloud
Cloud

Serverless vs Containers — The Decision I Keep Revisiting

A practical guide to choosing between AWS Lambda and containers (ECS/Kubernetes) for production workloads. Covers cold starts, cost modeling, architecture patterns, and the real tradeoffs I've learned shipping both.

15
System Design Patterns for Scaling Reads
software-design
software-design

System Design Patterns for Scaling Reads

A practical guide to scaling read-heavy systems — covering caching strategies, read replicas, CQRS, materialized views, and CDN edge caching with architecture diagrams and real code examples.

16
Building a Production RAG Pipeline — From Chunking to Retrieval to Generation
AI
AI

Building a Production RAG Pipeline — From Chunking to Retrieval to Generation

A practical, end-to-end guide to building a Retrieval-Augmented Generation (RAG) pipeline using LangChain, OpenAI embeddings, and a vector database. Covers chunking strategies, embedding models, retrieval tuning, prompt engineering, and evaluation.

17
Prompt Engineering Patterns That Actually Work in Production
AI
AI

Prompt Engineering Patterns That Actually Work in Production

Six battle-tested prompt engineering patterns for production LLM systems — system prompt layering, chain-of-thought, few-shot examples, output guardrails, prompt chaining, and eval-driven iteration. With real code, real failure modes, and the stuff nobody puts in tutorials.

18
Jenkins Pipeline with Jenkinsfile - How To Schedule Job on Cron and Not on Code Commit
jenkins
jenkins

Jenkins Pipeline with Jenkinsfile - How To Schedule Job on Cron and Not on Code Commit

How to create Jenkins pipeline using Jenkinsfile, and schedule job on cron schedule, not on code commit.

19
Jenkins Pipeline - How to run Automation on Different Environment (Dev/Stage/Prod), with Credentials
jenkins
jenkins

Jenkins Pipeline - How to run Automation on Different Environment (Dev/Stage/Prod), with Credentials

How to run Automation on Different Environment (Dev/Stage/Prod) by Jenkinsfile and Overriding Environment Variables. Also taking credentials.

20
How to Git Clone Another Repository from Jenkin Pipeline in Jenkinsfile
jenkins
jenkins

How to Git Clone Another Repository from Jenkin Pipeline in Jenkinsfile

Learn how to Git Clone Another Repository from Jenkin Pipeline in Jenkinsfile.

21
How to Fetch Multiple Credentials and Expose them in Environment using Jenkinsfile pipeline
jenkins
jenkins

How to Fetch Multiple Credentials and Expose them in Environment using Jenkinsfile pipeline

Learn how to Fetch Multiple Credentials and Expose them in Environment using Jenkinsfile pipeline

22
Jenkinsfile - How to Create UI Form Text fields, Drop-down and Run for Different Conditions
jenkins
jenkins

Jenkinsfile - How to Create UI Form Text fields, Drop-down and Run for Different Conditions

How to Create UI Form Text fields, Drop-down and Run for Different Conditions or different environments

23
Java Log4j Logger - Programmatically Initialize JSON logger with customized keys in json logs
java
java

Java Log4j Logger - Programmatically Initialize JSON logger with customized keys in json logs

How to programmatically initialize a Log4j JSON logger in Java with custom global and dynamic key-value pairs in log output.

24
Kubernetes - How to Solve Gateway Timeout with Http Statuscode Error 504
kubernetes
kubernetes

Kubernetes - How to Solve Gateway Timeout with Http Statuscode Error 504

How to solve HTTP 504 Gateway Timeout errors in Kubernetes caused by Ingress proxy timeout settings.

25
How To Create Admin Subdomain In Cloudflare with Nginx Proxy using Docker with SSL
tutorials
tutorials

How To Create Admin Subdomain In Cloudflare with Nginx Proxy using Docker with SSL

A guide to creating an admin subdomain in Cloudflare with Nginx reverse proxy running in Docker with SSL.

26
Why Exponential Backoff in Rabbitmq or In Event-Driven Systems
software-design
software-design

Why Exponential Backoff in Rabbitmq or In Event-Driven Systems

Learn Why it is important to implement Exponential Backoff in Rabbitmq or In Event-Driven Systems

27
How to Implement Exponential Backoff in Rabbitmq Using AMQP in Node.js
software-design
software-design

How to Implement Exponential Backoff in Rabbitmq Using AMQP in Node.js

Learn how to implement exponential backoff in rabbitmq by using amqp in node.js

28
Python SMTP Email Code - How to Send HTML Email from Python Code with Authentication at SMTP Server
python
python

Python SMTP Email Code - How to Send HTML Email from Python Code with Authentication at SMTP Server

Learn how to send HTML Email from Python Code with Authentication at SMTP server end.

29
Python SMTP Email Code - Sender Address Rejected - Not Owned By User
issues
issues

Python SMTP Email Code - Sender Address Rejected - Not Owned By User

In Python code to send email, we encounter error as Sender Address Rejected Not Owned By User. See, how we to solve this error.

30
Nodejs with MongoDB - Number of Opened Connections Keep on Increasing with Mongoose Library
mongodb
mongodb

Nodejs with MongoDB - Number of Opened Connections Keep on Increasing with Mongoose Library

While connecting to MongoDB from Nodejs code with Mongoose, the number of connections keep on increasing on MongoDB. They needs to be explicitly closed.

31
Django Python - How to Build Docker Image and Run Web-service on Apache with Python 3.9
python
python

Django Python - How to Build Docker Image and Run Web-service on Apache with Python 3.9

Learn how to build docker image for Django project and run it on Apache with Python 3.9

32
Python - How to Maintain Quality Build Process Using Pylint and Unittest Coverage With Minimum Threshold Values
python
python

Python - How to Maintain Quality Build Process Using Pylint and Unittest Coverage With Minimum Threshold Values

How to enforce code quality in Python projects by using pylint scores and unittest coverage thresholds in the build process.

33
Example Jenkin Groovy Pipeline Script for Building Python Projects with Git Events and Push to Artifactory
jenkins
jenkins

Example Jenkin Groovy Pipeline Script for Building Python Projects with Git Events and Push to Artifactory

Example of a Jenkin Groovy Pipeline Script for Building Python Projects with Git Events and Push to Artifactory after building it.