# The Engineer's Notebook > Field notes from building backend and cloud systems: cheatsheets, roadmaps and explainers you can actually use. Written by Shree Kumar Sharma (https://www.shrikumarsharma.in/). Each note is a standalone HTML document. Every note states its subject in plain words and in technical words. ## Roadmaps Staged paths through a whole subject, from the first step to production. https://blogs.shrikumarsharma.in/roadmap/ - [Remote Workstation Roadmap: Triple 2K, LG 4K and Edifier 2.1](https://blogs.shrikumarsharma.in/roadmap/remote-workstation-roadmap): A desk at home set up so a full day of remote work is as easy as an office: enough screens to see everything at once, one cable to switch machines, and sound and power that simply work. - [Deployment Roadmap: Nginx, PM2, AWS Lambda, RDS, CloudWatch and Linode for Node Apps](https://blogs.shrikumarsharma.in/roadmap/deployment-roadmap): Your app works on your laptop. Deploying is moving it onto a computer that stays on, that strangers can reach safely, and that you can update without knocking it over. - [System Design Roadmap: From Data Structures to Designing Netflix, Bitly and Uber](https://blogs.shrikumarsharma.in/roadmap/system-design-roadmap): One computer can serve a few thousand people. System design is planning how many machines share the work for millions, where the data lives, and what keeps running when one of them breaks. - [How Websites Work: HTML, CSS, JavaScript, React and Next.js from Scratch to Mastery](https://blogs.shrikumarsharma.in/roadmap/web-development-complete-roadmap): A website is three layers working together: HTML is the skeleton that holds the content, CSS is the skin that makes it look right, and JavaScript is the nervous system that makes it react when you click, type or scroll. - [NestJS Roadmap 2026: From First Module to Full Mastery](https://blogs.shrikumarsharma.in/roadmap/nestjs-roadmap-full-mastery): NestJS gives a Node.js server a fixed floor plan. Every feature gets its own room, and the framework wires the rooms together, so a big backend stays easy to find your way around. - [Node.js Backend Roadmap: Zero to Production](https://blogs.shrikumarsharma.in/roadmap/nodejs-backend-roadmap): The part of an app you never see: code on a server that stores data, checks who you are and answers the app's requests, written in JavaScript. - [Docker QuickRef: Dockerfile, Images, Containers and Compose](https://blogs.shrikumarsharma.in/roadmap/docker-quickref-developer-roadmap): A container packs an app together with everything it needs to run, so it behaves the same on your laptop as it does on the server. - [GraphQL Roadmap: From Queries to Production](https://blogs.shrikumarsharma.in/roadmap/graphql-roadmap): Instead of the server deciding what you get, you ask for exactly the fields you want in one request, and the answer comes back in exactly that shape. ## Queries & Explanations One question at a time, answered properly, with the reasoning left in. https://blogs.shrikumarsharma.in/explainer/ - [Not So Fast: Rate Limiting Explained](https://blogs.shrikumarsharma.in/explainer/rate-limiting-guide): A cap on how often someone can knock on your door. Knock too many times in a minute and you're told to wait. - [Open the Book First: Retrieval-Augmented Generation Explained](https://blogs.shrikumarsharma.in/explainer/rag-explained): Before the AI answers, it looks things up in your own documents, like a student who is allowed to open the textbook during the exam. - [One Picture, Six Files: Web Image Formats Explained](https://blogs.shrikumarsharma.in/explainer/web-image-formats-explained): The same photo can be saved in different ways. Some shrink it by throwing away detail you won't notice, some keep every pixel, and SVG stores drawing instructions instead of pixels. - [Watts Decoded: What 400 W or 600 W on a Sound Bar Really Means](https://blogs.shrikumarsharma.in/explainer/watts-decoded): The big number on the box is mostly marketing. The honest number is the power a speaker can keep up for a long time, and even doubling that only sounds a little louder. - [Backend Caching Strategies: From Zero to Production](https://blogs.shrikumarsharma.in/explainer/backend-caching-strategies): Keeping a copy of an answer close by, so you don't have to work it out again every time someone asks the same question. - [Agent Stack: A LangChain, LangGraph and CrewAI Cheatsheet](https://blogs.shrikumarsharma.in/explainer/agent-stack-roadmap): An AI that doesn't stop at answering. It decides to look something up, reads what comes back, and keeps going until the job is done. - [CI/CD: From Commit to Production](https://blogs.shrikumarsharma.in/explainer/ci-cd): Every time the code changes, an automated pipeline builds it, tests it and, if everything passes, ships it. Releases become small, frequent and boring. ## How it works Everyday machines taken apart, from a flash chip to a cable under the sea. https://blogs.shrikumarsharma.in/how-it-works/ - [How an SSD Works: NAND Cells, the FTL, Garbage Collection and NVMe](https://blogs.shrikumarsharma.in/how-it-works/how-ssd-works): An SSD keeps your files as tiny trapped charges in millions of memory cells, with no moving parts. A small computer inside the drive decides where every piece goes, so the cells wear out evenly and the drive stays fast. - [How the Internet Works: From Your Phone to a Server and Back](https://blogs.shrikumarsharma.in/how-it-works/how-the-internet-works): When you open a page, your phone cuts the request into small numbered envelopes and sends them through towers, cables and routers to a server, which sends the answer back the same way. It all takes less than a blink. ## Cheatsheets Dense reference pages to keep open in a second tab while you work. https://blogs.shrikumarsharma.in/cheatsheet/ - [DX Unpacked: Naming, Text Cases, Types and Error Handling for TypeScript Backends](https://blogs.shrikumarsharma.in/cheatsheet/dx-typescript-backend-cheatsheet): Code gets read far more often than it gets written. Good DX means the next person, often you in six months, can tell what a name means, what a function expects and why it failed, without digging. - [MCP Unpacked: The Model Context Protocol Explained, Connected and Built](https://blogs.shrikumarsharma.in/cheatsheet/mcp-cheatsheet): An AI assistant can only use what it can reach. MCP is one standard plug, so the same assistant can read your design file, open a ticket or call an API without someone writing a custom bridge for each. - [Protocols Unpacked: REST, GraphQL, gRPC, WebSocket, MQTT and More](https://blogs.shrikumarsharma.in/cheatsheet/protocols-cheatsheet): A protocol is the agreed way two programs talk, like the rules of a phone call. Some ask a question and wait for an answer, some keep the line open, and some drop a message in a box for whoever comes to collect it. - [SEO for Frontend Developers: Meta Tags, Structured Data, Core Web Vitals and GA4](https://blogs.shrikumarsharma.in/cheatsheet/seo-frontend-cheatsheet): Google reads your page before anyone else does. SEO is making sure it can find the page, understand what it is about, and see that it loads fast, so it shows the page to the people looking for it. - [Linux Toolbox: 20 Modules of Commands You Will Actually Use](https://blogs.shrikumarsharma.in/cheatsheet/linux-toolbox): The terminal is a conversation with the computer: you type a short command, it answers in text. Most servers have no other interface, so these commands are how real apps get deployed, inspected and fixed. - [Nano Toolbox: Every Shortcut You Need in GNU nano](https://blogs.shrikumarsharma.in/cheatsheet/nano-cheatsheet): nano is the text editor already installed on nearly every Linux server. The two lines at the bottom of the screen always show the keys, so you can open a config file, change a line and save without memorising anything first. - [MongoDB Cheatsheet: Queries, Aggregation and Indexes in 15 Modules](https://blogs.shrikumarsharma.in/cheatsheet/mongodb-cheatsheet): MongoDB stores each record as a self-contained document, like a filled-in form, so everything about one thing can sit together instead of being split across tables. - [NestJS Cheatsheet: Modules, Providers, Pipes and Guards in 20 Modules](https://blogs.shrikumarsharma.in/cheatsheet/nestjs-cheatsheet): Instead of every part of the app building the tools it needs, NestJS builds each tool once and hands it to whoever asks for it, the way a workshop keeps one shared toolbox. - [PostgreSQL Cheatsheet: Queries, Indexes and EXPLAIN in 15 Modules](https://blogs.shrikumarsharma.in/cheatsheet/postgresql-cheatsheet): PostgreSQL keeps data in tables that point at each other, like linked spreadsheets, and answers questions about them in a language called SQL. - [Redis Cheatsheet: Data Types, Caching and Locks in 15 Modules](https://blogs.shrikumarsharma.in/cheatsheet/redis-cheatsheet): Redis keeps data in memory instead of on disk, so it answers in well under a millisecond. Apps use it as a fast scratchpad for caches, counters, queues and sessions. - [TypeScript Cheatsheet: Types, Generics and Utility Types in 20 Modules](https://blogs.shrikumarsharma.in/cheatsheet/typescript-cheatsheet): TypeScript is JavaScript with labels. You write down what kind of value each thing holds, and the editor tells you about a mistake before you ever run the code. - [BullMQ Cheatsheet: Queues, Workers, Jobs and Redis Settings](https://blogs.shrikumarsharma.in/cheatsheet/bullmq-cheatsheet): A job queue lets the app hand slow work, like sending an email, to a background worker, so the user gets a reply right away instead of waiting for it to finish. - [Kafka vs RabbitMQ: A Decision Cheatsheet](https://blogs.shrikumarsharma.in/cheatsheet/kafka-vs-rabbitmq): Kafka keeps every message in an ordered log that many readers can go through at their own pace. RabbitMQ hands each message to the queues that want it and removes it once it is handled. - [NestJS Observability Cheatsheet: Metrics, Logs, Traces and Alerts](https://blogs.shrikumarsharma.in/cheatsheet/nestjs-observability): Observability means your service can tell you when it is slow, failing or backed up. Metrics say something is wrong, traces say where, and logs say why. - [NestJS Request Lifecycle Cheatsheet: Middleware, Guards, Interceptors, Pipes and Filters](https://blogs.shrikumarsharma.in/cheatsheet/nestjs-request-lifecycle): Every request passes the same checkpoints in the same order before it reaches your code. Once you know the order, you know where each piece of code belongs. - [Socket.IO Server Cheatsheet: Emits, Acks, Rooms and One Reply Contract](https://blogs.shrikumarsharma.in/cheatsheet/socketio-server-cheatsheet): Socket.IO keeps a live line open between the browser and the server, so either side can send a message the moment something happens instead of waiting to be asked. - [TypeORM Migrations Cheatsheet: Zero Downtime Schema Changes](https://blogs.shrikumarsharma.in/cheatsheet/typeorm-migrations-cheatsheet): A migration is a small, numbered script that changes the database, like adding a column. Every copy of the app runs the same scripts in the same order, so every database ends up the same shape. - [Lodash Cheatsheet: Arrays, Collections, Objects, Timing and Native Swaps](https://blogs.shrikumarsharma.in/cheatsheet/lodash-cheatsheet): Lodash is a drawer of small, well tested kitchen tools for data. Instead of writing your own loop to group, sort or safely dig into a list, you reach for the tool that already does it. - [moment-timezone Cheatsheet: Zones, DST, Formatting and Scheduling](https://blogs.shrikumarsharma.in/cheatsheet/moment-timezone-cheatsheet): An airport shows one moment on many clocks, one per city. moment-timezone does the same for your code, so a meeting at 9am in London shows the right time in Tokyo, even when the clocks change for summer. - [Number Toolbox: Every JavaScript Number Tool in Plain Words](https://blogs.shrikumarsharma.in/cheatsheet/number-toolbox): JavaScript has one kind of number for whole numbers and decimals alike. It is very good at most maths, but a few decimals like 0.1 cannot be stored exactly, so tiny errors can creep in. - [Object Toolbox: Every JavaScript Object Tool in Plain Words](https://blogs.shrikumarsharma.in/cheatsheet/object-toolbox): An object is a box of labelled things: a name, an age, an address. You look things up by their label, and you can add, change or remove labels whenever you like. - [Set Toolbox: Every JavaScript Set Tool in Plain Words](https://blogs.shrikumarsharma.in/cheatsheet/set-toolbox): A Set is a bag that never holds the same thing twice. Drop in a value that is already there and nothing happens, which makes it the quickest way to remove duplicates. - [String Toolbox: Every JavaScript String Tool in Plain Words](https://blogs.shrikumarsharma.in/cheatsheet/string-toolbox): A string is a line of text. You can measure it, search it, cut pieces out and change its case, but every change gives you a new string and leaves the old one exactly as it was. - [Symbol Toolbox: Every JavaScript Symbol Tool in Plain Words](https://blogs.shrikumarsharma.in/cheatsheet/symbol-toolbox): A Symbol is a name tag that is guaranteed to be one of a kind. Two symbols with the same label are still different, so a key made from one never clashes with anyone else's. - [Zod Cheatsheet: Schemas, Errors, Types and Zod vs Joi](https://blogs.shrikumarsharma.in/cheatsheet/zod-cheatsheet): Zod checks data at the door. You describe what a value should look like once, and Zod either hands it back clean or tells you exactly which part is wrong. - [Array Toolbox: Every JavaScript Array Method in Plain Words](https://blogs.shrikumarsharma.in/cheatsheet/array-toolbox): An array is a numbered list. Its methods are ready-made tools for that list: one changes every item, one keeps only the items you want, one adds them all up into a single answer. - [Functions Unpacked: Parameters, Arguments and Every Way to Call Them](https://blogs.shrikumarsharma.in/cheatsheet/functions-unpacked): A function is a recipe with blanks in it, like "add ___ cups of flour". The blanks are the parameters, and what you actually pour in when you cook is the arguments. - [Map Toolbox: Every JavaScript Map Tool in Plain Words](https://blogs.shrikumarsharma.in/cheatsheet/map-toolbox): A Map is a set of labelled drawers. You put something away under a name and later ask for it by that name. Unlike a plain object, the name can be anything, even another object. ## What's new Fresh releases and specs, and what they change for code you already have. https://blogs.shrikumarsharma.in/whats-new/ - [Deploy NestJS with systemd, Nginx and ufw on One Ubuntu Server](https://blogs.shrikumarsharma.in/whats-new/nestjs-systemd-nginx-deploy): systemd is the part of Linux that starts programs when the server boots and starts them again if they crash. Hand it your app, put Nginx at the front door, and the server looks after the app on its own. - [Linux Troubleshooting Flowchart: Processes, Resources, Ports and Firewall](https://blogs.shrikumarsharma.in/whats-new/linux-troubleshooting-flowchart): When a server misbehaves, guessing wastes hours. This is a checklist you walk in order: say what is wrong, read what the system wrote down, then check each part until one of them is clearly the problem. - [React 19 Without the Jargon: What Changes in Your Code](https://blogs.shrikumarsharma.in/whats-new/react-19-explained-simply): React 19 takes over the dull parts of forms, like the spinner, the error message and the "did it save?" state, so you write far less code for them. - [GET's Promise, POST's Payload: The HTTP QUERY Method Explained](https://blogs.shrikumarsharma.in/whats-new/http-query-method): A new way for an app to ask a server a complicated question. It can carry a long list of details like POST does, but it's safe to repeat like GET. ## Tools & Technologies How the tools underneath actually work, so you can use them on purpose. https://blogs.shrikumarsharma.in/tools/ - [Rust Backend Mastery: Tokio, Axum and SQLx in Practice](https://blogs.shrikumarsharma.in/tools/rust-backend-mastery): Rust is a language that catches whole families of crashes before the program ever runs, while staying about as fast as C. ## Optional - [About](https://blogs.shrikumarsharma.in/about/) - [Sitemap](https://blogs.shrikumarsharma.in/sitemap/) - [RSS](https://blogs.shrikumarsharma.in/rss.xml)