# Interview Prep Notes ## Docs - [AI Agents](https://notes.iprasadn.dev/ai/agents.md): Agentic patterns, tool use, ReAct, multi-agent systems, and building with the Claude API. - [Embeddings](https://notes.iprasadn.dev/ai/embeddings.md): Vector embeddings, cosine similarity, vector databases (Pinecone, pgvector), and semantic search. - [LLMs & Prompting](https://notes.iprasadn.dev/ai/llms-prompting.md): How large language models work, tokenization, context windows, and prompting techniques. - [AI](https://notes.iprasadn.dev/ai/overview.md): AI and LLM concepts for technical interviews. - [RAG](https://notes.iprasadn.dev/ai/rag.md): Retrieval Augmented Generation — architecture, chunking, retrieval, and generation. - [Arrays & Strings](https://notes.iprasadn.dev/dsa/arrays-strings.md): Two pointers, sliding window, prefix sum, and common array/string interview patterns. - [Dynamic Programming](https://notes.iprasadn.dev/dsa/dynamic-programming.md): Memoization, tabulation, 0/1 knapsack, LCS, LIS, and common DP problem patterns. - [Linked Lists](https://notes.iprasadn.dev/dsa/linked-lists.md): Singly and doubly linked lists, fast/slow pointer technique, reversal, and cycle detection. - [DSA](https://notes.iprasadn.dev/dsa/overview.md): Data Structures & Algorithms for technical interviews. - [Sorting & Searching](https://notes.iprasadn.dev/dsa/sorting-searching.md): Merge sort, quick sort, heap sort, binary search, and search variations. - [Trees & Graphs](https://notes.iprasadn.dev/dsa/trees-graphs.md): Binary trees, BST, BFS, DFS, adjacency list/matrix, and common graph problems. - [Array Methods](https://notes.iprasadn.dev/javascript/array-methods.md): Built-in array methods and functional patterns commonly tested in interviews. - [Closures & Scope](https://notes.iprasadn.dev/javascript/closures-scope.md): Lexical scope, closures, and the variable environment in JavaScript. - [Error Handling](https://notes.iprasadn.dev/javascript/error-handling.md): try/catch, custom errors, and handling errors in async code. - [ES6+ Features](https://notes.iprasadn.dev/javascript/es6-features.md): Modern JavaScript features commonly asked about in interviews. - [Event Loop & Async](https://notes.iprasadn.dev/javascript/event-loop-async.md): How JavaScript handles asynchronous code: call stack, task queues, Promises, and async/await. - [JavaScript](https://notes.iprasadn.dev/javascript/overview.md): Core JavaScript concepts for technical interviews. - [Prototypes & Inheritance](https://notes.iprasadn.dev/javascript/prototypes-inheritance.md): Prototype chain, Object.create, and class-based inheritance in JavaScript. - [App Router](https://notes.iprasadn.dev/nextjs/app-router.md): File-system routing, layouts, loading.tsx, error.tsx, and route groups. - [Data Fetching](https://notes.iprasadn.dev/nextjs/data-fetching.md): Server-side fetch, caching, revalidation, Server Actions, and route handlers. - [Next.js](https://notes.iprasadn.dev/nextjs/overview.md): Next.js concepts for technical interviews. - [Rendering Strategies](https://notes.iprasadn.dev/nextjs/rendering.md): SSR, SSG, ISR, and CSR — how they work and when to choose each. - [Server Components](https://notes.iprasadn.dev/nextjs/server-components.md): React Server Components vs Client Components — when to use 'use client'. - [Node.js Event Loop](https://notes.iprasadn.dev/nodejs/event-loop.md): Phases of the Node.js event loop: timers, I/O, poll, check, close callbacks. - [Express](https://notes.iprasadn.dev/nodejs/express.md): Express middleware, routing, error handling middleware, and request/response lifecycle. - [Modules](https://notes.iprasadn.dev/nodejs/modules.md): CommonJS (require/module.exports) vs ES Modules (import/export), and module resolution. - [Node.js](https://notes.iprasadn.dev/nodejs/overview.md): Node.js concepts for technical interviews. - [Streams](https://notes.iprasadn.dev/nodejs/streams.md): Node.js streams: Readable, Writable, Duplex, Transform, and backpressure. - [Calculated Columns](https://notes.iprasadn.dev/postgresql/calculated-columns.md): Arithmetic expressions, aliases, type casting, conditional expressions, and computed values in SELECT queries. - [CREATE & INSERT](https://notes.iprasadn.dev/postgresql/create-insert.md): Creating databases, tables, and inserting data in PostgreSQL. - [Indexes](https://notes.iprasadn.dev/postgresql/indexes.md): B-tree and Hash indexes, when to index, EXPLAIN ANALYZE, and partial indexes. - [Joins](https://notes.iprasadn.dev/postgresql/joins.md): INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN, CROSS JOIN — with examples and Venn diagrams. - [PostgreSQL](https://notes.iprasadn.dev/postgresql/overview.md): PostgreSQL and SQL concepts for technical interviews. - [SELECT Queries](https://notes.iprasadn.dev/postgresql/sql-fundamentals.md): SELECT, WHERE, ORDER BY, GROUP BY, HAVING, DISTINCT, LIMIT, subqueries, and CTEs. - [String Operators & Functions](https://notes.iprasadn.dev/postgresql/string-functions.md): String concatenation, pattern matching, formatting, and text manipulation in PostgreSQL. - [Transactions](https://notes.iprasadn.dev/postgresql/transactions.md): ACID properties, isolation levels (Read Committed, Repeatable Read, Serializable), and deadlocks. - [Component Patterns](https://notes.iprasadn.dev/react/component-patterns.md): HOC, render props, compound components, controlled vs uncontrolled inputs. - [Hooks](https://notes.iprasadn.dev/react/hooks.md): useState, useEffect, useCallback, useMemo, useRef, useContext, and custom hooks. - [React](https://notes.iprasadn.dev/react/overview.md): React concepts for technical interviews. - [Performance](https://notes.iprasadn.dev/react/performance.md): React.memo, useMemo, useCallback, lazy loading, Suspense, and profiling. - [State Management](https://notes.iprasadn.dev/react/state-management.md): Context API, Redux Toolkit, Zustand — tradeoffs and when to use each. - [Caching](https://notes.iprasadn.dev/system-design/caching.md): Cache-aside, write-through, write-behind, eviction policies (LRU, LFU), Redis, and CDN caching. - [Databases](https://notes.iprasadn.dev/system-design/databases.md): SQL vs NoSQL, sharding, replication, CAP theorem, and consistency models. - [Message Queues](https://notes.iprasadn.dev/system-design/message-queues.md): Kafka, RabbitMQ, pub/sub pattern, event-driven architecture, and delivery guarantees. - [System Design](https://notes.iprasadn.dev/system-design/overview.md): System design interview preparation. - [Scalability](https://notes.iprasadn.dev/system-design/scalability.md): Horizontal vs vertical scaling, load balancers, CDN, and stateless services. - [Generics](https://notes.iprasadn.dev/typescript/generics.md): Generic functions, classes, constraints, and conditional types. - [TypeScript](https://notes.iprasadn.dev/typescript/overview.md): TypeScript concepts for technical interviews. - [Type Narrowing](https://notes.iprasadn.dev/typescript/type-narrowing.md): typeof, instanceof, in operator, discriminated unions, and custom type guards. - [Types & Interfaces](https://notes.iprasadn.dev/typescript/types-interfaces.md): Primitive types, object types, and the difference between type aliases and interfaces. - [Utility Types](https://notes.iprasadn.dev/typescript/utility-types.md): Built-in TypeScript utility types: Partial, Required, Pick, Omit, Record, Exclude, Extract, ReturnType.