# Welcome to Database Interview Prep A SQL-focused walkthrough of relational database fundamentals, keys, CRUD, joins, subqueries, indexing, normalization, transactions, and advanced PostgreSQL topics. --- # Welcome to JavaScript Interview Prep A deep dive into JavaScript internals for technical interviews — engine, scope, async, prototypes, and more. --- # Welcome to Networking Interview Prep Core networking concepts every software engineer must know — for interviews and daily development. --- # Welcome to Next.js Interview Prep A comprehensive guide to mastering Next.js for technical interviews and production apps. --- # Welcome to Node.js Interview Prep A backend-focused walkthrough of the Node.js runtime, async patterns, Express, databases, auth, testing, and production deployment. --- # Welcome to OOP Interview Prep A structured guide to mastering Object-Oriented Programming concepts for technical interviews. --- # Welcome to React Interview Prep A frontend-focused walkthrough of React core concepts, hooks, rendering, state management, routing, performance, patterns, and testing for interviews and production apps. --- # Performance Optimization The Capstone Checklist for Fast PostgreSQL --- # Stored Procedures and Functions PL/pgSQL, CREATE FUNCTION vs CREATE PROCEDURE --- # Views and Materialized Views Virtual Queries, Cached Results, and CONCURRENTLY Refresh --- # DELETE Data WHERE, RETURNING, TRUNCATE, Cascades, and Soft Deletes --- # CREATE INSERT Data: Single Row, Multi-Row, RETURNING, and UPSERT --- # READ SELECT Data: Projections, Aliases, DISTINCT, and Pagination --- # UPDATE Data WHERE, Joins, RETURNING, and Atomic Counters --- # Aggregate Functions MIN, MAX, AVG, SUM, COUNT and the NULL Traps That Bite --- # GROUP BY Bucketing Rows, Counting Piles, and the Non-Aggregate Rule --- # HAVING vs WHERE Filtering Rows Before and After Aggregation --- # ORDER BY Sorting, NULLs, Tiebreakers, and Index-Backed Scans --- # Pattern Matching LIKE, ILIKE, Wildcards, Regex, and the Index Trap --- # WHERE Clause Filtering Rows with Predicates and Three-Valued Logic --- # Constraints NOT NULL, UNIQUE, CHECK, and DEFAULT --- # Data Types Picking the Right Column Type in PostgreSQL --- # Schema Design Basics DDL Commands Every Dev Should Know --- # What Is a Database? Tables, Schemas, and Why Flat Files Fail at Scale --- # B-Tree Index The Default Workhorse of Postgres and MySQL --- # GIN, GiST, Hash, BRIN The Right Index for the Right Job --- # Index Best Practices and EXPLAIN Reading Plans, Spotting Seq Scans, Avoiding Over-Indexing --- # Primary and Secondary Indexes Clustered Storage, Heap Tables, and Lookup Cost --- # Sorted, Unsorted, and Covering Indexes Heaps, INCLUDE Columns, and Index-Only Scans --- # What Is an Index? The Book Index Analogy and Why Reads Get Faster --- # CROSS JOIN and SELF JOIN Cartesian Products and Hierarchies --- # INNER JOIN Set Intersection, ON vs USING, and the Many-Table Pipeline --- # Join Performance Nested Loop, Hash, Merge, EXPLAIN ANALYZE, and the Driving Table --- # LEFT JOIN Preserving the Left Side, Finding Missing Rows, and the ON vs WHERE Trap --- # RIGHT JOIN and FULL OUTER JOIN Symmetry, NULL on Both Sides, and the MySQL Workaround --- # What Are Joins? Linking Relational Tables Without Losing Your Mind --- # Composite Key and Super Key Multi-Column Identity and the Full Key Hierarchy --- # Foreign Key Referential Integrity, CASCADE, and Self-References --- # Primary Key Row Identity, Uniqueness, and the UUID vs Integer Debate --- # Surrogate Key vs Natural Key and Alternate Key The ID Debate Every Schema Designer Must Win --- # Unique Key and Candidate Key UNIQUE Constraint, NULLs, and Minimal Super Keys --- # Boyce-Codd Normal Form (BCNF) When 3NF Is Not Strict Enough --- # First Normal Form (1NF) Atomic Values, No Repeating Groups --- # Second Normal Form (2NF) Killing Partial Dependencies --- # Third Normal Form (3NF) Killing Transitive Dependencies --- # What Is Normalization? Reducing Redundancy and Killing Anomalies --- # Cardinality and Ordinality How Many, and Whether Required --- # ER Diagrams Entities, Attributes, Relationships, and Translating to Tables --- # Many-to-Many Relationships Junction Tables, Composite Keys, and Relationship Attributes --- # One-to-Many Relationships FK on the Many Side, Cascades, and Indexing --- # One-to-One Relationships Splitting Tables, Shared Keys, and Optional Profiles --- # AUTO_INCREMENT, SERIAL, IDENTITY Surrogate Keys Across Engines --- # Sequences CREATE SEQUENCE, NEXTVAL, Caching, and Gaps --- # UUID Primary Keys v4 vs v7, Index Fragmentation, and Distributed Trade-offs --- # Common Table Expressions WITH Clauses, Recursive CTEs, and Materialization --- # Correlated vs Non-Correlated Subqueries Per-Row Loops, EXISTS, and JOIN Rewrites --- # Subqueries Scalar, Row, Table, and When a JOIN Is Better --- # UNION, INTERSECT, EXCEPT Set Operators, Column Compatibility, and the MySQL Workaround --- # Window Functions OVER, PARTITION BY, Ranking, LAG/LEAD, and Frame Clauses --- # ACID Properties Atomicity, Consistency, Isolation, and Durability --- # Dirty Read and READ UNCOMMITTED Reading Writes That Never Happened --- # Non-Repeatable Read and READ COMMITTED The Same Query, Two Different Answers --- # Phantom Read and REPEATABLE READ Snapshots, Gap Locks, and Disappearing Rows --- # SERIALIZABLE and Isolation Level Comparison SSI, Retry Loops, and the Anomaly Matrix --- # What Is a Transaction? Units of Work, BEGIN/COMMIT/ROLLBACK, and Savepoints --- # async/await Syntactic Sugar That Reads Like Synchronous Code --- # Callback Queue The Macrotask Line --- # Callbacks & Callback Hell The Pyramid That Almost Broke JavaScript --- # Error Handling in Async Code The Silent Killer --- # The Event Loop How One-Threaded JavaScript Never Freezes --- # Microtask Queue The Priority Lane That Beats setTimeout --- # Promise Combinators all, race, allSettled, any --- # Promises The Receipt That Runs Your Future Code --- # Starvation of Callbacks When Microtasks Hog the Event Loop --- # Web APIs & Node APIs The Runtime's Toolbox --- # Dependency Injection Push, Don't Pull --- # Event Emitter The Production-Grade Observer --- # Factory Pattern Order by Description, Not Assembly --- # Module Pattern The Vending Machine Blueprint for Private Scope --- # Observer and PubSub Subscribe, Don't Poll --- # Singleton Pattern The One-Instance Rule --- # DOM Manipulation Reaching Into the Living Tree --- # Event Bubbling vs Capturing The Three Phases of Propagation --- # Event Handling & Event Delegation One Listener to Rule Them All --- # Intersection Observer & Mutation Observer Watch, Don't Poll --- # requestAnimationFrame The Browser's Built-In Page Flipper --- # localStorage, sessionStorage, Cookies Three Rooms, Three Lifetimes --- # Custom Errors Building an Error Hierarchy That Scales --- # Error Handling in Promises .catch, Unhandled Rejections, and Global Nets --- # Error Types The Six Diagnostic Codes of JavaScript --- # try...catch...finally The Safety Net That Never Lets Go --- # Arrow Functions Lexical this and Shorter Syntax --- # Default Parameters Clean Defaults Without Falsy Traps --- # Iterators and Iterables The Protocol Behind for...of --- # let, const, Block Scoping Patterns and Edge Cases --- # Modules import, export, and Dynamic Loading --- # Proxy & Reflect Intercept Every Operation on an Object --- # Set, Map, WeakSet, WeakMap Purpose-Built Collections --- # Template Literals Backticks, Interpolation, and Tagged Superpowers --- # Debouncing & Throttling Rate-Limiting Your Event Handlers --- # First-Class Functions Functions Are Just Values --- # Function Composition The Pipeline --- # Function Currying The Assembly Line --- # Generator Functions Pausable Functions with `yield` --- # Higher-Order Functions Functions That Manage Functions --- # IIFE Run Once, Vanish Forever --- # Memoization Cache Your Answers, Never Recompute --- # Pure Functions & Side Effects The Vending Machine Rule --- # Call Stack How JavaScript Remembers Where It Is --- # Execution Context The Invisible Box That Runs Your Code --- # Hoisting Why You Can Use Variables Before You Declare Them --- # Memory Heap & Garbage Collection Where Your Objects Live and Die --- # Temporal Dead Zone The ReferenceError That Saves Your Bugs --- # var vs let vs const The Three Declarations, Fully Decoded --- # Immutability The Museum Exhibit Behind Glass --- # JSON.parse / JSON.stringify The Translator With a Limited Dialect --- # Pass by Value vs Pass by Reference Text Message vs Google Docs Link --- # Polyfills Build the Ramp When the Stairs Don't Exist --- # setTimeout vs setInterval The Kitchen Timer and the Drifting Metronome --- # Array Methods find, some, every, flat, flatMap --- # Destructuring Unpacking Objects & Arrays --- # for...in vs for...of Keys vs Values --- # map, filter, reduce The Array Transformation Trio --- # Object Static Methods keys, values, entries, freeze, seal --- # Optional Chaining (?.) & Nullish Coalescing (??) Safer Access, Smarter Defaults --- # Shallow Copy vs Deep Copy The Photocopy Trap --- # Spread & Rest Operators Same Syntax, Opposite Directions --- # Lazy Loading Ship Only What the User Is About to See --- # Memory Leaks The Silent Killer That Crashes Your Tab in an Hour --- # requestIdleCallback Squeeze Work Into the Gaps Between Frames --- # Tree Shaking & Dead Code Elimination Ship Only What You Use --- # Web Workers Move the Heavy Lifting Off the Main Thread --- # ES6 Classes Syntactic Sugar Over Prototypes --- # instanceof & typeof Type Checking Done Right --- # Object.create() Direct Control Over the Prototype --- # Prototypal Inheritance Objects Inheriting From Objects --- # Prototype Chain `__proto__` vs `.prototype` --- # Block Scope vs Function Scope Rooms Inside the House --- # Closures The Variables a Function Never Forgets --- # Lexical Scope Where You Write a Function Decides What It Can See --- # Module Scope Each File Gets Its Own Universe --- # Scope Chain The Ladder JavaScript Climbs to Find Your Variables --- # Arrow Functions & this Why Arrows Have No Reflection --- # Binding Priority & Lost `this` The Pyramid and the Pitfalls --- # Explicit Binding Force `this` with call, apply, and bind --- # Implicit Binding The Dot Decides Who `this` Is --- # new Binding The 4-Step Factory Behind Every Constructor --- # == vs === The Strict vs Lenient Librarian --- # NaN, null, undefined The Three Empty Parking Spaces --- # Primitive vs Reference Sticky Notes vs Business Cards --- # Symbol & BigInt The Two Newest Primitives --- # Truthy / Falsy The Nightclub Bouncer --- # Type Coercion The Overly Helpful Translator --- # Email Protocols SMTP, POP3 & IMAP --- # FTP & SFTP File Transfer Protocols --- # HTTP How the Web Talks --- # HTTPS Secure Web Communication --- # TLS/SSL Encryption in Transit --- # Essential Network Tools curl, netstat, nslookup, dig & telnet --- # Ping Testing Network Reachability --- # Traceroute Mapping the Path Across the Internet --- # DNS in Practice Setup, Debugging & Developer Tools --- # DNS Record Types A, AAAA, CNAME, MX & More --- # DNS Resolution The Journey from Name to IP --- # What is DNS? The Internet's Phone Book --- # IPv4 vs IPv6 The Complete Comparison --- # IPv4 How Internet Addressing Works --- # IPv6 The Future of Addressing --- # Subnetting & CIDR Basics Subnetting & CIDR Basics --- # IP Address vs MAC Address Two Identities Every Packet Needs --- # Network Types From Your Pocket to the Entire Planet --- # What is a Network? How Computers Talk to Each Other --- # Physical, Data Link & Network Layers (Layers 1–3) Physical, Data Link & Network Layers (Layers 1–3) --- # Transport & Session Layers (Layers 4–5) Transport & Session Layers (Layers 4–5) --- # Presentation & Application Layers (Layers 6–7) Presentation & Application Layers (Layers 6–7) --- # OSI Model Overview OSI Model Overview --- # Ports & Sockets Ports & Sockets --- # TCP vs UDP The Complete Comparison --- # TCP Reliable Communication --- # UDP Fast Communication --- # CDN, Load Balancer & Reverse Proxy CDN, Load Balancer & Reverse Proxy --- # CORS Cross-Origin Resource Sharing --- # REST API & HTTP in Practice REST API & HTTP in Practice --- # How a Web Request Actually Works The Full Journey --- # WebSockets & Real-Time Communication WebSockets & Real-Time Communication --- # API Design in Next.js Building Production-Grade Backends Without Leaving Your Framework --- # Authentication Patterns in Next.js NextAuth.js, JWT, Sessions, Middleware, and OAuth --- # Route Handlers (App Router) Your Backend Inside Next.js --- # Caching & Revalidation The 4 Layers Every Next.js Developer Gets Wrong --- # Fetching in Server Components Your Components Are the API Layer Now --- # Loading & Error States Your App's Safety Net for Imperfect Networks --- # Server Actions for Mutations Server Actions for Mutations --- # Build & Output Understanding What `next build` Actually Produces --- # Deploying Next.js -- Vercel vs Self-Hosting Deploying Next.js -- Vercel vs Self-Hosting --- # Environment Variables in Next.js Keeping Secrets Secret --- # Next.js Interview Questions What They Actually Ask --- # Monitoring & Error Tracking in Next.js Production Monitoring & Error Tracking in Next.js Production --- # App Router vs Pages Router The Architectural Shift That Split Next.js in Two --- # Next.js Compilation & Bundling From Source Code to Production, Explained --- # Project Structure & Conventions How Next.js Maps Files to Your Entire Application --- # Why Next.js Over Plain React? The Upgrade Path Every React Developer Must Understand --- # Font Optimization in Next.js next/font --- # Image Optimization next/image — Stop Shipping 4MB Hero Images to Mobile Users --- # Metadata & SEO in Next.js The Built-In SEO Engine --- # Script Optimization in Next.js -- next/script Script Optimization in Next.js -- next/script --- # Client-Side Rendering (CSR) in Next.js Client-Side Rendering (CSR) in Next.js --- # Incremental Static Regeneration (ISR) Fresh Content Without Full Rebuilds --- # SSR vs SSG vs ISR vs CSR The Decision Framework --- # Server-Side Rendering (SSR) Every Request Gets a Freshly Cooked Page --- # Static Site Generation (SSG) Pages Built Before Anyone Asks --- # Dynamic Routes & Catch-All The URL Pattern Toolkit --- # Layouts & Templates The Persistent Shell vs the Fresh Start --- # Middleware The Gatekeeper That Runs Before Every Request --- # Parallel Routes & Intercepting Routes Building the Instagram Modal Pattern in Next.js --- # Client Components "use client" — The Key That Unlocks Interactivity --- # React Server Components (RSC) Zero JavaScript, Full Power --- # Server Actions in Next.js Server Actions in Next.js --- # Server vs Client Component Decision Server vs Client Component Decision --- # JWT Authentication Access Tokens, Refresh Tokens, and Where to Store Them --- # OAuth 2.0 & Social Login The Authorization Code Flow --- # Security Best Practices -- OWASP Top 10 for Node.js Security Best Practices -- OWASP Top 10 for Node.js --- # Session-Based Authentication Cookies, Stores, and Stateful Auth --- # crypto Hashing, Encryption, and Secure Tokens --- # EventEmitter Node's Native Pub/Sub --- # fs File System Operations in Node.js --- # Building an HTTP Server from Scratch No Express Needed --- # path & os Cross-Platform Fundamentals --- # Caching with Redis The Cache-Aside Pattern and Beyond --- # Connecting to Databases Pools, Not Connections --- # Database Patterns -- Repositories, Transactions, Migrations Database Patterns -- Repositories, Transactions, Migrations --- # ORMs & Query Builders -- Prisma, Drizzle, Sequelize, Knex ORMs & Query Builders -- Prisma, Drizzle, Sequelize, Knex --- # Express Error Handling Central Error Middleware Done Right --- # Express Basics The Middleware Mental Model --- # Middleware Deep Dive Built-in, Third-Party, and Custom --- # Request Validation & Security Never Trust req.body --- # Express Routing Routers, Parameters, and Folder Structure --- # CommonJS require, module.exports, and the Wrapper Function --- # ES Modules in Node.js -- import, export, and Top-Level Await ES Modules in Node.js -- import, export, and Top-Level Await --- # Module Resolution & package.json How Node Finds Your Code --- # Blocking vs Non-Blocking The Golden Rule of Node.js --- # The Node.js Event Loop -- Six Phases That Power Everything The Node.js Event Loop -- Six Phases That Power Everything --- # libuv & the Thread Pool The Hidden Engine Beneath Node.js --- # V8 & Memory Management How Node.js Uses Your RAM --- # What is Node.js? Runtime, V8, and the Non-Blocking Revolution --- # Dockerizing Node.js Multi-Stage Builds, Tini, and Images Under 100 MB --- # Environment Configuration dotenv, Secrets, and Fail-Fast Validation --- # Logging and Monitoring Pino, Correlation IDs, Health Checks, and APM --- # Node.js Interview Questions What They Actually Ask --- # Process Management Clustering, PM2, and Graceful Shutdown --- # Buffers Working with Raw Binary Data in Node.js --- # Practical Stream Patterns -- pipeline, Transform, and Real Workflows Practical Stream Patterns -- pipeline, Transform, and Real Workflows --- # Streams in Production -- Uploads, Video, and ETL Streams in Production -- Uploads, Video, and ETL --- # Streams Node.js's Answer to Big Data --- # Integration Testing supertest, Real Databases, Full Request Flow --- # Testing Strategies Pyramid, TDD, and Killing Flakes --- # Unit Testing with Jest Pure Functions, Mocks, and Coverage --- # Abstract Class vs Interface Knowing When to Use Which --- # Abstract Class: The Unfinished Blueprint That Forces a Contract Abstract Class: The Unfinished Blueprint That Forces a Contract --- # Abstraction in JavaScript Enforcing Contracts Without Native Support --- # Abstraction Hiding Complexity, Showing Only What Matters --- # Interface The Contract That Shapes Your Code --- # Builder Pattern Constructing Complex Objects Step by Step --- # Factory Pattern Create Objects Without Hardcoding Their Classes --- # Singleton Pattern One Instance to Rule Them All --- # State Pattern When an Object's Behavior Changes Based on What It Remembers --- # Strategy Pattern Replace If-Else Chains with Pluggable Algorithms --- # What Are Design Patterns? The GoF Blueprint Every Developer Should Know --- # Access Modifiers: public, private, and protected Explained Access Modifiers: public, private, and protected Explained --- # How to Access Private & Protected Members The Right Way and the Wrong Way --- # Encapsulation Encapsulation --- # Getters & Setters Controlled Access Without Exposing Your Internals --- # Private in JavaScript: Four Patterns, One Concept Private in JavaScript: Four Patterns, One Concept --- # Class & Object: The Blueprint and the Thing You Actually Build Class & Object: The Blueprint and the Thing You Actually Build --- # The 4 Pillars of OOP The Mental Model Every Interviewer Expects You to Have --- # Object Lifecycle Object Lifecycle --- # `this` in OOP Context Why Your Object Lost Its Mind --- # What is OOP? The Paradigm That Changed How We Write Code --- # Composition vs Inheritance How to Stop Overusing `extends` --- # Inheritance Basics extends, super(), and the Parent-Child Relationship --- # Multilevel Inheritance Grandparent, Parent, Child Chains --- # Multiple Inheritance & The Diamond Problem Why JS Takes a Different Path --- # The `super` Keyword Calling Up the Inheritance Chain --- # Types of Inheritance Single, Multilevel, Hierarchical, Multiple, and Hybrid --- # Aggregation The "Has-a" Relationship Where Objects Live Their Own Lives --- # Association vs Aggregation vs Composition The Complete Comparison --- # Association The "Uses-a" Relationship That Holds Real Systems Together --- # Composition When Objects Cannot Exist Without Their Owner --- # Constructor Overloading Multiple Signatures and the Factory Method Pattern --- # Method Overloading Simulating What JavaScript Doesn't Have Natively --- # Method Overriding Same Name, Different Behavior, Right Class --- # Overloading vs Overriding The Polymorphism Pair Every Interviewer Tests --- # Polymorphism One Interface, Many Forms --- # Dependency Inversion Principle High-Level Modules Must Never Depend on Low-Level Details --- # Interface Segregation Principle Don't Force What You Don't Need --- # Liskov Substitution Principle Why Square Extending Rectangle Breaks Your Code --- # Open/Closed Principle Extend Without Breaking What Works --- # Single Responsibility Principle One Class, One Reason to Change --- # Custom Hooks Reusable Logic --- # useContext Avoiding Prop Drilling --- # useEffect Side Effects --- # useMemo & useCallback Performance Hooks --- # useReducer Complex State Logic --- # useRef Escape Hatch --- # useState Deep Dive useState Deep Dive --- # Batching & Concurrent Features (React 18) Batching & Concurrent Features (React 18) --- # Component Lifecycle with Hooks Component Lifecycle with Hooks --- # Re-rendering When & Why --- # React.memo Preventing Unnecessary Re-renders --- # Compound Components Pattern Components That Work Together as One --- # Error Boundaries Catch Crashes Before They Break Your Entire App --- # Higher-Order Components (HOC) The Pattern That Shaped React Architecture --- # Render Props Pattern Sharing Component Logic Through Functions --- # Code Splitting & Lazy Loading Ship Less JavaScript, Load Faster --- # Identifying Performance Problems Finding What Slows Your React App --- # Image & Asset Optimization Stop Shipping Megabytes of Unoptimized Images --- # List Virtualization Only Render What's Visible --- # Component Types & Composition Building UIs Like LEGO, Not Cement --- # JSX Not HTML: What React Actually Compiles and Why It Matters --- # Virtual DOM & Reconciliation How React Thinks Before It Touches the Screen --- # What is React & How It Works The Foundation Every Interviewer Expects You to Know --- # Client-Side Routing SPA Navigation Without Page Reloads --- # Dynamic Routes & Navigation URL-Driven React Apps --- # Protected Routes & Route Guards Securing Your React App --- # Controlled vs Uncontrolled Components Controlled vs Uncontrolled Components --- # Immutability in State Immutability in State --- # Lifting State Up & Prop Drilling Lifting State Up & Prop Drilling --- # Props Passing Data Down the Component Tree --- # State Component Memory --- # Context API + useReducer Pattern Building Redux-Lite --- # Redux Toolkit The Modern Way --- # When You Need State Management When You Need State Management --- # Zustand, Jotai & Modern Alternatives Zustand, Jotai & Modern Alternatives --- # Common Interview Coding Challenges The Five Components Every Interviewer Asks You to Build --- # React Interview Questions What Interviewers Actually Ask --- # Testing Hooks & Async Code The Skills That Separate Senior from Junior --- # Testing React Components Proving Your Code Works the Way Users Use It --- # Debounced Input & Search Patterns Debounced Input & Search Patterns --- # Event Handling in React Event Handling in React --- # Form Handling Patterns Form Handling Patterns --- # Callbacks & the Error-First Convention Callbacks & the Error-First Convention --- # Error Handling Strategy From Local try/catch to Graceful Shutdown --- # Promises & async/await -- Modern Async in Node.js Promises & async/await -- Modern Async in Node.js --- # Worker Threads CPU Parallelism in Node.js