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
Software Security in the AI Era: How to Write Secure Code When AI Writes Code Too
security
security

Software Security in the AI Era: How to Write Secure Code When AI Writes Code Too

A comprehensive guide to writing secure software in 2026, covering traditional OWASP vulnerabilities, AI-specific threats like prompt injection and model poisoning, secure SDLC practices, and practical code examples for building defense-in-depth applications.

02
SQL Injection: The Complete Guide to Understanding, Preventing, and Detecting SQLi Attacks
security
security

SQL Injection: The Complete Guide to Understanding, Preventing, and Detecting SQLi Attacks

A deep-dive into SQL injection attacks — how they work, every type of SQLi (in-band, blind, out-of-band), real-world examples, and the complete defense playbook with code examples in Node.js, Python, Java, Go, and PHP.

03
Building a Vulnerability Detection System That Developers Actually Use
security
security

Building a Vulnerability Detection System That Developers Actually Use

How to architect and build an internal vulnerability detection system that developers don't hate. Covers SAST/SCA/secret scanning integration, PR-native workflows, false positive reduction via feedback loops, auto-fix generation, and the metrics that prove your system works.

04
How to Be a Full-Time Freelancer: Resources, Finding Clients, and Building a Sustainable Business
tutorials
tutorials

How to Be a Full-Time Freelancer: Resources, Finding Clients, and Building a Sustainable Business

A comprehensive guide to becoming a full-time freelancer in tech. Learn how to find clients, set your rates, build a portfolio, manage finances, and create a sustainable freelance business from scratch.

05
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.

06
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.

07
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.

08
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.

09
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.

10
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.

11
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.

12
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.

13
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.

14
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.

15
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.

16
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.

17
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.

18
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.

19
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.

20
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.

21
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.

22
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.

23
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.

24
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.

25
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

26
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

27
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.

28
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.

29
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.

30
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

31
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

32
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.

33
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.