All Topics & Curriculum
Every one of the 257 topics, across 8 stages: from Java, OOP and SQL foundations through design patterns and system design to LLM engineering, book notes and deep dives.
257 topics
- OOP NotesClasses, objects, the four pillars, abstract vs interfaceintro11 minoop
- UML Class Diagrams: Reading and Drawing the Boxesclass box, visibility markers, attribute and method syntax, interface, abstract class, enum, and the three perspectivesintro13 minoop
- Class Relationships: Association, Aggregation and Compositionis-a, has-a, uses-a; association, aggregation, composition; UML symbolsintro17 minoop
- Composition vs InheritanceThe single most useful design decision to get rightintro2 minoop
- Coupling and CohesionHow much classes depend on each other, how well a class's parts belong together, and why low coupling with high cohesion makes code easy to change and testcore10 minoop
- InterfacesAn interface is a contract. It lists method names and parameters, and implementing classes write the code. Newer Java also allows a few methods with a body.intro1 minjava-concepts
- Implementing interfaces (implements)When a class implements an interface, it promises to provide a concrete implementation (method body) for every method declared in that interface.intro1 minjava-concepts
- Abstract classes and inheritanceInheritance means one class is a subtype of another: the child extends the parent and gets its fields and methods. The child can add new ones or override existing methods.intro2 minjava-concepts
- EncapsulationEncapsulation means keeping an object’s data (state) hidden from the outside and only allowing access through controlled methods.intro2 minjava-concepts
- ConstructorsA constructor is a block of code that runs when you create an object with new ClassName(...). It has the same name as the class and no return type.intro1 minjava-concepts
- static and finalstatic means “belongs to the class, not to each object.”core2 minjava-concepts
- Method overriding and polymorphismOverriding means a subclass (or a class that implements an interface) provides its own implementation of a method that already exists in the parent or interface.core2 minjava-concepts
- GenericsGenerics let you write classes and methods that work with a type you specify later, so the compiler can check types and you avoid casting.advanced1 minjava-concepts
- Exception handlingExceptions are Java’s way of signaling that something went wrong (invalid input, missing resource, unsupported operation, etc.). If not handled, they can stop the program.core2 minjava-concepts
- Cloneable and clone()Cloneable is a marker interface in Java (no methods). If a class implements Cloneable, it is allowed to use the default cloning behavior from Object.clone().advanced1 minjava-concepts
- Inner and static nested classesA class defined inside another class is a nested class.core1 minjava-concepts
- Dependency injectionDependency injection means a class does not create its dependencies itself. Instead, they are passed in from outside (e.g. via constructor or setter).core1 minjava-concepts
- Fluent API and annotationsA fluent API lets you call multiple methods in a row on the same object, usually by having each method return this (the same object).core1 minjava-concepts
- EnumsAn enum is a class with a fixed list of instances. You use it when a value can only be one of a few known options, like a direction, a status, or a size.core4 minjava-concepts
- equals() and hashCode()equals() decides when two objects are the same value. hashCode() helps HashMap and HashSet find them. Override both.core5 minjava-concepts
- Lambdas, functional interfaces and streamsA lambda is a short way to write a function without giving it a name or wrapping it in a class.advanced6 minjava-concepts
- Collections: which one to pickEvery collection in Java sits under one of these interfaces.advanced6 minjava-concepts
- Concurrency basicsAfter an LLD design, the next question is almost always what happens if two users do this at the same time. This note covers the minimum Java tools to answer it.advanced6 minjava-concepts
- Strings and immutabilityWhy String can never change, how the string pool works, when to use StringBuilder, and how to write your own immutable class with defensive copies.core9 minjava-concepts
- Memory, pass by value and garbage collectionStack vs heap, why Java is always pass by value, boxing traps like the Integer cache, how garbage collection decides what to free, and how Java apps still leak memory.core11 minjava-concepts
- Optional and null handlingWhy null causes so many bugs, how to use Optional well (and where not to), failing fast with requireNonNull, empty collections, and the Null Object pattern.core7 minjava-concepts
- Records, sealed classes and pattern matchingModern Java for LLD rounds. Records for value objects, sealed types for a closed set of cases, pattern matching, switch expressions, and when var helps or hurts.advanced9 minjava-concepts
- Basic NotesSQL basics: databases, tables, data types, comments, and the first commands.intro1 minbasic
- SQL OperationsCommon SQL operations for creating, inspecting, changing, and querying data.intro2 minbasic
- DCL and TransactionsPermissions and transaction control with GRANT, REVOKE, COMMIT, and ROLLBACK.core2 minbasic
- Introduction to DDLDDL commands for creating and changing database tables and their structure.intro2 minbasic
- CHECK Constraints and Data ValidationUsing CHECK constraints to keep invalid values out of database tables.core2 minbasic
- NOT NULL, PRIMARY KEY, and NULL ValuesNOT NULL and PRIMARY KEY constraints, plus the difference between NULL, zero, and empty text.core4 minbasic
- UNIQUE, DEFAULT, and AUTO_INCREMENTUNIQUE and DEFAULT constraints with MySQL AUTO_INCREMENT behavior.core3 minbasic
- Foreign Keys and RelationshipsForeign keys, referential integrity, and relationships between SQL tables.core7 minbasic
- SQL Query LifecycleWhat happens between sending a SQL query and receiving its result.core6 minadvanced
- SQL IndexingHow indexes speed up reads, when they help, and what they cost.core6 minadvanced
- Basic SQL CommandsBasic SELECT queries, expressions, DISTINCT, sorting, and limiting results.intro7 minbasic
- SELECT and FROMHow SELECT and FROM shape a query and its result set.intro6 minbasic
- The WHERE ClauseA detailed look at filtering rows with SQL's WHERE clause.core4 minbasic
- Comparison OperatorsFiltering SQL rows with equality, inequality, and range comparisons.intro6 minbasic
- Logical OperatorsCombining SQL conditions with AND, OR, NOT, and parentheses.intro6 minbasic
- Arithmetic OperatorsCalculating values in SQL with arithmetic operators and expressions.intro5 minbasic
- ORDER BY and LIMITSorting SQL results and returning a limited, deterministic set of rows.intro5 minbasic
- DISTINCT and AliasesRemoving duplicate result rows and naming SQL expressions with aliases.intro5 minbasic
- SQL Filtering EssentialsPractical SQL filtering with ranges, lists, patterns, and NULL checks.core5 minbasic
- Filtering Essentials in DetailA deeper pass through BETWEEN, IN, LIKE, NULL, and negated filters.core6 minadvanced
- Aggregation and Data SummarisationSummarising SQL data with aggregate functions, GROUP BY, and HAVING.core9 minadvanced
- Common Aggregation MistakesCommon GROUP BY, HAVING, NULL, and aggregate-function mistakes to avoid.core4 minadvanced
- SQL Utility FunctionsUseful numeric and NULL-handling functions for everyday SQL queries.core8 minadvanced
- CASE ExpressionsUsing CASE expressions for conditional values, labels, and calculations.core19 minadvanced
- String FunctionsCommon MySQL string functions for cleaning, matching, and formatting text.core17 minadvanced
- Basic SQL MCQ RevisionMultiple-choice revision for basic SELECT, DISTINCT, ordering, and expressions.intro3 minrevision
- SQL Filtering Essentials Quiz RevisionQuiz revision for WHERE, NULL, patterns, ranges, and logical conditions.core4 minrevision
- SQL Aggregation MCQsAggregation multiple-choice questions with answers and explanations.core2 minrevision
- Basic Filtering ProblemsQuery-writing exercises for filtering rows with comparisons and conditions.intro13 minpractice-problems
- Filtering ProblemsQuery-writing exercises using SQL filtering conditions.core15 minpractice-problems
- Aggregation ProblemsQuery-writing exercises using aggregates, GROUP BY, and HAVING.core16 minpractice-problems
- Valid Triangle CheckWrite a CASE expression that checks whether three side lengths form a valid triangle.intro11 minpractice-problems
- Instant Food DeliveryCalculate the percentage of immediate orders with conditional aggregation.core11 minpractice-problems
- Special Bonus CalculationCalculate employee bonuses with CASE, parity checks, and name filters.intro12 minpractice-problems
- Node ClassificationClassify tree nodes as root, inner, or leaf with SQL conditions and a subquery.core14 minpractice-problems
- Apples vs OrangesFind the daily difference between apple and orange sales with conditional aggregation.core12 minpractice-problems
- Query Quality AnalysisCalculate grouped query quality and poor-query percentages from rating data.core14 minpractice-problems
- Number of Calls Between Two PersonsCombine calls in both directions and report their count and total duration.core5 minpractice-problems
- Editing Data and TablesEdit table data and structure with INSERT, UPDATE, DELETE, ALTER, and TRUNCATE.core23 minadvanced
- Merging Query ResultsCombine compatible query results with UNION, UNION ALL, and safe intersection patterns.core12 minadvanced
- Joins Deep DiveUnderstand inner, outer, cross, self, implicit, and natural joins in depth.core23 minadvanced
- Access ControlManage MySQL users, roles, privileges, grants, revocation, and account access safely.advanced18 minadvanced
- Connections and TransactionsUnderstand MySQL connections, transaction control, isolation, locks, and failure handling.advanced15 minadvanced
- Mastering SubqueriesUse scalar, row, table, correlated, and nested subqueries with clear execution models.advanced18 minadvanced
- Common Table ExpressionsStructure complex queries with non-recursive and recursive common table expressions.advanced19 minadvanced
- Working with DatesWork with MySQL dates, timestamps, intervals, extraction, formatting, and comparisons.core21 minadvanced
- Window FunctionsCalculate rankings, running values, offsets, distributions, and partitions with window functions.advanced58 minadvanced
- String Functions QuizQuiz revision for MySQL string functions, matching, extraction, and character handling.core8 minrevision
- Exceeding Tweet LengthFind tweets that exceed a character limit with a direct string-length filter.intro10 minpractice-problems
- Editing Data and Tables ProblemsPractice safe data and table changes with INSERT, UPDATE, DELETE, and ALTER.core18 minpractice-problems
- Merging Query Results ProblemsPractice combining, deduplicating, and reshaping query results from multiple sources.core36 minpractice-problems
- Joins Deep Dive ProblemsPractice inner, outer, cross, self, implicit, and natural join patterns.core52 minpractice-problems
- Joins Level 2 ProblemsSolve multi-step join problems involving aggregation, ranges, self joins, and arithmetic.advanced57 minpractice-problems
- Subquery ProblemsPractice scalar, correlated, aggregate, and relational-division subquery patterns.advanced25 minpractice-problems
- Common Table Expression ProblemsPractice reusable and recursive common table expressions on realistic problems.advanced22 minpractice-problems
- Date ProblemsPractice date filtering, comparison, aggregation, and anti-join patterns.advanced25 minpractice-problems
- JSON in SQLStore, query, validate, update, aggregate, index, and upsert JSON data in MySQL.advanced49 minadvanced
- Database Design FundamentalsDesign relational schemas with entities, relationships, keys, constraints, and normalization.core39 minadvanced
- Stored ProceduresCreate, secure, inspect, and execute reusable MySQL stored procedures safely.advanced9 minadvanced
- Performance and DebuggingAnalyze MySQL plans, design useful indexes, write sargable predicates, and debug incorrect queries.advanced23 minadvanced
- Storage, Keys, Query and PerformanceUnderstand InnoDB pages, clustered keys, buffer pools, redo logs, and B+ tree index costs.advanced54 minadvanced
- Scaling, Production and OperationsScale MySQL with replicas, sharding, distributed IDs, online migrations, and data lifecycle practices.advanced52 minadvanced
- Isolation Levels and LockingLearn the four read anomalies, the four isolation levels, MVCC, row locks, SKIP LOCKED queues, and optimistic vs pessimistic locking.advanced23 minadvanced
- ViewsUse views to hide columns and simplify joins, learn updatable views and WITH CHECK OPTION, and compare views with materialized views.core17 minadvanced
- TriggersWrite MySQL triggers with NEW and OLD for audit logs, validation, and counters, and learn why many teams avoid them and what to use instead.core16 minadvanced
- PaginationCompare LIMIT/OFFSET with keyset (cursor) pagination: why deep pages get slow, how rows go missing, the index you need, and cheap total counts.advanced18 minadvanced
- Return Child Rows as a JSON Array for Every ParentGroup child identifiers by parent and return each group as a MySQL JSON array.core1 minpractice-problems
- SRP - The Single Responsibility PrincipleA class should have one reason to change, which really means one group of people who would ask you to change it.core11 min
- OCP - The Open/Closed PrincipleAdd new behaviour by adding new code, not by editing code that already works. Usually one interface and one class per variant.core10 min
- LSP - The Liskov Substitution PrincipleIf code works with a base type, it must keep working with any subtype. No surprise exceptions, no stricter inputs, no weaker promises.core11 min
- Interface Segregation Principle (ISP)No caller should be forced to depend on methods it never uses. Split fat interfaces by the role each caller plays.core8 min
- Dependency Inversion Principle (DIP)Business logic should not depend on details like SMS vendors or databases. Both depend on an interface that the business side owns.core11 min
- Beyond SOLID: DRY, KISS, YAGNI and FriendsDRY, KISS, YAGNI, Law of Demeter, Tell Don't Ask, fail fast and the rest, with small Java examples and where each one goes too farcore12 min
- Singleton Pattern GuideExactly one instance, reachable from everywherecore2 mincreational
- Design Pattern: Simple Factory (Creational)Creating objects without naming the concrete classcore2 mincreational
- Abstract Factory Pattern GuideCreating whole families of related objectscore2 mincreational
- Design Pattern: Builder (Creational)Objects with many optional partscore2 mincreational
- Design Pattern: Prototype (Creational)Copy an existing object instead of building a new oneadvanced3 mincreational
- Creational Design Patterns: Master ComparisonCreational patterns deal with object creation mechanisms, trying to create objects in a manner suitable to the situation.core2 mincreational
- Design Pattern: Adapter (Structural)Make an incompatible interface fitcore2 minstructural
- Design Pattern: Decorator (Structural)Add behaviour at runtime without subclassingcore2 minstructural
- Design Pattern: Facade (Structural)One simple door in front of a complex subsystemcore2 minstructural
- Design Pattern: Composite (Structural)Treat a tree and a single item the same waycore2 minstructural
- The Surrogate for Controlled AccessA stand-in that controls access to the real objectcore3 minstructural
- Memory Optimization through SharingShare common state across huge numbers of objectsadvanced3 minstructural
- Bridge Pattern: Two Things That Change, Kept ApartSplit a class that varies in two directions into two hierarchies joined by a reference, so 3 x 3 combinations need 6 classes instead of 9.advanced9 minstructural
- Structural Design Patterns: Master ComparisonStructural design patterns deal with how classes and objects are composed to form larger structures.core6 minstructural
- Strategy Pattern: Dynamic Runtime InterchangeabilitySwap an algorithm at runtimecore4 minbehavioural
- Observer Pattern: Event-Driven CommunicationTell many objects when something changedcore3 minbehavioural
- Encapsulating RequestsTurn a request into an object you can queue or undocore5 minbehavioural
- Lifecycle Management & State TransitionsBehaviour changes when internal state changescore6 minbehavioural
- Inverted Control & Structural GovernanceFix the steps, let subclasses fill them incore5 minbehavioural
- Iterator Pattern: Sequential Access Without ExposureWalk a collection without exposing its internalscore3 minbehavioural
- Sequential Request ProcessingPass a request along a chain until one handler takes itcore5 minbehavioural
- Memento Pattern — Short NotesSave and restore an object's stateadvanced1 minbehavioural
- Mediator Pattern: Talk to the Hub, Not to Each OtherObjects stop calling each other directly and go through one coordinator, so n objects need n links instead of n x (n - 1).advanced9 minbehavioural
- Visitor Pattern: Add New Operations Without Touching Your ClassesPull operations like GST, shipping and invoice export out of your item classes, so a new operation is a new class and the items never change.advanced9 minbehavioural
- Interpreter Pattern: Turn Business Rules into a Tiny LanguageModel rules like "cartTotal > 499 AND city == Bengaluru OR isPrime" as a tree of small expression objects, so changing an offer means changing data, not code.advanced8 minbehavioural
- Behavioural Patterns SummaryAll eleven behavioural patterns on one page, with a decision tree for picking one and the pairs interviewers love to mix up, like Strategy vs State.core8 minbehavioural
- Parking Lot System DesignStrategy, enums, the classic starter questioncore11 min
- Design a Vending MachineState patternadvanced16 min
- Design a Tic Tac Toe GameSmall and self contained, good warm upcore10 min
- Design an Elevator SystemScheduling, priority queuesadvanced17 min
- Design an ATM SystemState, transactionscore11 min
- Unix File SearchComposite plus lambdas, very cleanadvanced14 min
- Movie Ticket Booking System DesignConcurrency, seat locking, optimistic vs pessimisticadvanced19 min
- Design a Restaurant Management SystemCommand pattern, larger domaincore9 min
- Design a Grocery Store SystemCriteria and rulesadvanced15 min
- Design a Blackjack GameGame rules, larger state machinecore10 min
- Design a Shipping Locker SystemPolicies, charging, expirycore11 min
- Low-Level Design (LLD): Parking Lot SystemThe classic first LLD problem, built in layers with controllers, services and repositories, and a Java simulation you can run.core10 min
- Zomato Food Delivery App (Low Level Design)Low level design notes for a simplified Zomato style food ordering app.core8 min
- Design Splitwise (Low Level Design)Design an app that tracks shared expenses in a group, splits them equally, by exact amount or by percent, and works out who should pay whom.core11 min
- Design an LRU Cache (Low Level Design)Build a least recently used cache in Java with O(1) get and put, a hand made linked list and hash map, a swappable eviction policy and a simple thread safe wrapper.core11 min
- Design a Rate Limiter (Low Level Design)Design the classes of an in-app rate limiter with token bucket, fixed window and sliding window log behind one interface, plus per user and per API rules.core10 min
- Design a Logging Framework (Low Level Design)Design a small logging framework with levels, loggers, console, file and in-memory appenders, formatters, a singleton manager and an async appender.core10 min
- Design a Pub/Sub Message Broker (Low Level Design)Build a small in-memory message broker where publishers post to topics, every subscriber gets its own queue and thread, and a slow subscriber never holds up the rest.core11 min
- Design a Meeting Room Booking System (Low Level Design)Design a small booking system for meeting rooms, with a one line overlap check, a sorted calendar per room, a lock per room against double booking, and a pluggable way to pick the room.core12 min
- Toast NotificationsShow stacked toast messages that close on their own after 5 seconds or on the close button, with one timer per toast kept in a ref.intro3 minmachine-coding
- PaginationFetch a list from an API page by page and render numbered page controls with previous and next buttons.intro2 minmachine-coding
- ModalBuild a modal that opens from a button and closes on its Close button or a mousedown outside the box, using a reusable useClickOutside hook.intro3 minmachine-coding
- Image CarouselCycle through images with previous and next buttons, wrap around at both ends, and auto-advance on a timer that pauses on hover.intro2 minmachine-coding
- Search Bar with TypeaheadSearch products as the user types, wait 1 second before each request, cancel stale requests, and cache the last 10 queries in a ref.core2 minmachine-coding
- AccordionRender a list of questions where clicking one shows its answer, with each item holding its own open or closed state.intro6 minmachine-coding
- TabsRender tab buttons from data and show the content of the active tab, keeping the active index in state.intro1 minmachine-coding
- Persisting State in localStorageKeep React state in localStorage with a typed usePersistedState hook, including JSON parsing and safe fallbacks.core2 minmachine-coding
- useTimeout HookWrite a useTimeout hook that restarts when the delay changes but not when the callback changes, using a ref for the latest callback.core1 minmachine-coding
- Lite Excel SheetBuild a small spreadsheet grid with editable cells, add rows and columns, and keep the grid as a 2D array in state.advanced1 minmachine-coding
- Drag and Drop BoardMove tasks between columns with the native HTML drag and drop events, tracking the dragged item in a ref.core2 minmachine-coding
- Traffic LightCycle green, yellow and red lights every 2 seconds with one setInterval and a modulo on the active index.intro3 minmachine-coding
- Day View CalendarRender a 24 hour day view with hourly slots and place each event block by its start and end time, at 5rem per hour.core2 minmachine-coding
- Virtualized ListRender only the rows that are visible in a long list by computing the window from scroll position and row height.advanced2 minmachine-coding
- StepperShow numbered steps joined by lines, highlight every step up to the current one, and move between steps with Back and Continue buttons.intro2 minmachine-coding
- Todo ListAdd, complete and delete todos, and keep the list in localStorage so it survives a refresh.intro6 minmachine-coding
- Controlled TabsA tabs component that tells its parent which tab is active through an onTabChange callback.intro3 minmachine-coding
- File Upload with ProgressPick or drop a file, upload it with axios, and show progress, success and error states in TypeScript.core3 minmachine-coding
- Memory GameFlip numbered cards on a 6 by 6 grid to find matching pairs, lock the board while two cards are open, and flip mismatches back after 3 seconds.core2 minmachine-coding
- Progress BarAnimate a progress bar to a given percentage with a CSS transform, and expose the value to screen readers.intro3 minmachine-coding
- File ExplorerRender a recursive folder tree where folders expand and collapse, and files and folders can be added or deleted.core6 minmachine-coding
- Trello BoardA Trello style board where you add lists and cards, archive a list, and drag a card onto another list, with board data kept in a Redux store.advanced9 minmachine-coding
- Real-Time ChatChat in rooms with a Socket.IO server that relays messages and a React client that keeps login, room and messages in Redux Toolkit.advanced4 minmachine-coding
- Movie Seat SelectionPick cinema seats on a generated layout with seat categories, booked seats and a running total, built in TypeScript.advanced5 minmachine-coding
- Transfer ListMove checked items between two lists with buttons for selected items and for all items.core3 minmachine-coding
- Job BoardLoad job posts from the Hacker News API six at a time with a Load more button, fetching details for each id.core4 minmachine-coding
- Nested CheckboxesA checkbox tree where checking a parent checks all children and a parent becomes checked once all its children are.core3 minmachine-coding
- Typing EffectType a sentence one character at a time with a blinking cursor, using a timer that cleans up after itself.intro2 minmachine-coding
- Chips InputTurn typed text into chips on Enter, ignoring empty input, and remove a single chip with its X button.intro3 minmachine-coding
- Instagram StoriesUpload images as stories that expire after 15 seconds, view them in a modal, and release object URLs to avoid leaks.core3 minmachine-coding
- Star RatingA reusable star rating with hover preview, half stars, keyboard support and read-only mode.core3 minmachine-coding
- Nested CommentsA Reddit style comment tree with replies at any depth, delete, and relative timestamps, using recursive components.core3 minmachine-coding
- Routing: How a Request Finds Its CodeHow a backend matches an HTTP method and URL to a handler, including path parameters, query parameters, nesting, versioning, and fallbacks.intro5 min
- Serialization and Deserialization: Data Crossing a BoundaryWhy applications turn values into bytes at boundaries, how JSON behaves in practice, and when a compact binary format is a better fit.intro5 min
- Validation and Transformation: Making Requests Safe to UseA practical pipeline for parsing, normalising, and validating untrusted input without mixing user-interface checks with business rules.intro4 min
- REST API Design: A Contract People Can GuessDesign resource-oriented HTTP APIs that use methods, status codes, pagination, and idempotency consistently enough that clients can predict them.core5 min
- Backend Layers and Request Context: Keeping Work in Its PlaceHow controllers, services, repositories, middleware, and request context divide responsibilities so a backend remains understandable as it grows.core4 min
- Authentication and Authorization: Identity, Permission, and SessionsSeparate identity from permission, understand sessions and token pairs, and build a request flow that fails safely without treating login as a solved problem.core4 min
- PostgreSQL Foundations: Persistent Data You Can TrustLearn why a relational database earns its complexity, how to model data in PostgreSQL, and how constraints, migrations, queries, and indexes protect a backend.core5 min
- Caching: Faster Reads, Carefully Chosen StalenessUse cache-aside, TTLs, and invalidation deliberately, while recognising cache misses, stale data, stampedes, and the cost of a second source of truth.core5 min
- Task Queues and Background Jobs: Work Users Should Not Wait ForMove slow or failure-prone work out of the request path with queues, workers, acknowledgements, retries, idempotency, and observable job lifecycles.core5 min
- How to Approach a System Design InterviewA repeatable step by step way to run a system design interview, from first questions to failures, with a 45 minute time split.intro13 minfundamentals
- Back of the Envelope EstimationHow to turn daily users into requests per second, storage and bandwidth with rounded numbers, and use the result to choose the design.intro16 minfundamentals
- CachingWhy caches make systems faster, where they sit, how reads and writes flow through them, and how to deal with stale data, stampedes and hot keys.core17 minfundamentals
- Load BalancingHow a load balancer spreads traffic over many servers, which algorithm fits which job, and how to keep the balancer itself from failing.core15 minfundamentals
- Consistent HashingHow to spread keys over servers so that adding or removing a server moves only a small share of them, using a hash ring and virtual nodes.core12 minfundamentals
- Message Queues and StreamsWhy systems put a queue between two services, how delivery guarantees, ordering and retries work, and when a log like Kafka beats a classic queue.core16 minfundamentals
- Choosing a Database, and How Indexes WorkHow to pick between SQL, document, key value, wide column, graph and search databases, and how indexes make reads fast and writes slower.core14 minfundamentals
- Sharding and PartitioningWhen one database is not enough, how to split data across machines with range, hash or directory sharding, and the problems that come with it.core14 minfundamentals
- Replication and FailoverWhy we keep copies of data, how leaders and followers work, what replication lag breaks, and what happens when the leader dies.core14 minfundamentals
- CDNsA CDN keeps copies of your files on servers close to your users, so pages load fast and your own servers get less traffic.intro12 minfundamentals
- Idempotency and RetriesHow to make repeated requests safe with idempotency keys, and how to retry failed calls with backoff and jitter without causing a retry storm.core14 minfundamentals
- Proxies and API GatewaysWhat forward and reverse proxies do, what an API gateway adds on top, how it differs from a load balancer and a service mesh, and where it can hurt.core14 minfundamentals
- Designing URL ShortenerBase62 encoding, ticket servers for unguessable ids, sharded key value storage and click analytics.advanced16 min
- Design a Rate LimiterWhere a limiter sits, the counter algorithms, Redis key design, and sharding for compute.advanced10 min
- Designing a Notification ServiceTemplates, async queues, bulk fan out, priority lanes, and deduplication with a tracker store.advanced13 min
- Designing PasteBin and Github GistsBlob storage for content, relational metadata, derived paths, expiry cleanup and why we skip the cache.advanced14 min
- Design Ecommerce Product Listing (Video Processing)Catalog service, read replicas, product data model, and a video transcoding pipeline for product media.advanced14 min
- Designing TinderGeo sharded location tracking, profile enrichment, precomputed feeds, swipes and match creation.advanced16 min
- Designing Realtime Abuse MasterMasking abuse in live chat, in process trie lookup, dictionary distribution, and an admin service.advanced15 min
- Designing a Fraud Detection SystemSynchronous fraud check in the payment path, random forest scoring, and Spark pipelines for training data.advanced16 min
- Designing a Recommendation EngineContent and collaborative filtering, Spark pipelines, graph queries and precomputed recommendation feeds.advanced18 min
- Design a Chat AppWebSocket gateways, routing a message to the right server, per chat sequence numbers, delivery ticks, offline push, presence cost and media.advanced25 min
- Design a Digital WalletA double entry ledger, safe transfers with idempotency keys, one transaction per shard plus a saga, audit trail and bank reconciliation.advanced28 min
- Design a Distributed CacheA Redis style cache cluster with consistent hashing, replicas for failover, eviction, hot key and stampede protection, and a plain plan for staying close to the database.advanced28 min
- Design a News FeedPosting and reading a feed with fan out on write, fan out on read and the hybrid for celebrities, plus feed storage, simple ranking, cursor pagination, like counters and the media path.advanced24 min
- Design a Video Streaming ServiceResumable uploads, parallel transcoding into many sizes, HLS segments with adaptive bitrate, CDN delivery, batched view counts and the storage and egress bill.advanced25 min
- Design a File Storage and Sync ServiceChunking files, hashing chunks to skip duplicates, separate metadata and blob storage, long polling sync across devices, conflicted copies, sharing and versions.advanced26 min
- Introduction to Forward Deployed Engineering and GenAI FoundationsWhat a Forward Deployed Engineer actually does, why "build a chatbot" is not a requirement, and the road from rule-based AI to machine learning, neural networks, attention and GPT.intro24 min
- How Large Language Models WorkFollow one sentence through an LLM. Tokens, token ids, embeddings, position, attention with query, key and value, Transformer layers, logits, softmax, and how decoding picks the next token.core13 min
- Talking to an LLM from Your ApplicationAn LLM is a capability, a GenAI app is software built around it. Call a model from Postman, read the response and token usage, then build a ticket summariser in Spring Boot with Spring AI, Node.js and Python.core14 min
- Building a Chatbot: Context, Memory, Streaming and HallucinationsA model call is not a conversation. Roles, system prompts, app memory, the context window, streaming and hallucination, with a support chatbot built in Spring AI, Node.js and Python.core23 min
- Introduction to AI Agents: Tools, Tool Calling and the Agent LoopAn LLM writes text but cannot act. Tools give it hands. Tool definitions, the tool calling loop, information vs action tools, and a sandboxed website builder agent in Spring AI, Node.js and Python.core27 min
- Streaming AI Responses: From Tokens to a Live ChatWhy a reply that streams feels faster even when it is not. Generation vs delivery, time to first token, chunked HTTP, SSE vs WebSockets, Flux in Spring AI, saving history after the stream, and reading it in the browser.core29 min
- Vector Embeddings from First PrinciplesHow a computer can hold meaning as numbers. Vectors, dimensions, distance, dot product and cosine similarity, why hand made features fail, and how training turns context into embeddings.core33 min
- Semantic Movie Search with EmbeddingsBuild a small Netflix style search. Embedding model vs chat model, why sending the whole catalogue to an LLM fails, precomputed vectors, top K by cosine, and similar movies, in Spring AI, Node.js and Python.core27 min
- Vector Search: Brute Force KNN and the Indexing ProblemWhat breaks when the movie search grows from 30 to millions of vectors. Exact vs similarity lookup, brute force top K, the real cost in compute and memory, and why B-trees and k-d trees stop helping in high dimensions.core31 min
- Vector Databases and ANN: IVF, HNSW and Product QuantizationHow vector databases search millions of vectors fast by not looking at most of them. Approximate search and recall@K, IVF clusters, HNSW graphs, quantization and PQ, metadata filters, and pgvector.core38 min
- Retrieval Augmented Generation (RAG): Chunking, Retrieval and CitationsA support bot that answers from company policy documents. Chunking, embedding, a pgvector store, retrieval, prompt stuffing with citations, and the ways RAG fails in production.core37 min
- Advanced RAG: Chunking, Hybrid Search and RerankingWhy basic RAG misses rules and exact product codes, and how to fix retrieval with structural chunking, top K, thresholds, metadata filters, BM25 hybrid search, RRF, reranking and context engineering.core40 min
- Structured Output: Typed JSON From an LLMTurn one sentence into a typed MeetingDetails object your code can trust. Schemas, strict mode, the checks a schema cannot do, retries with feedback, in Spring AI, Node.js and Python.core34 min
- Model Context Protocol (MCP): Hosts, Clients and ServersWhy every AI app rewriting the same tools does not scale, and how MCP fixes it. Hosts, clients and servers, tools/list and tools/call, and a task server with an LLM client in Spring AI, Node.js and Python.core32 min
- MCP Beyond Tools: Resources and PromptsAn MCP server offers more than tools. Resources give the app context, prompts give the user ready workflows. Who controls each, how list and read work, and a task server and client in three stacks.core36 min
- Multimodal Vision Chat: Sending Images to an LLMHow a model reads an image (patches, a vision encoder, an adapter), what image tokens cost, size limits, upload safety, and a vision chat with a browser page in Spring AI, Node.js and Python.core40 min
- GenAI Evals: How to Know Your AI App WorksWhy assertEquals breaks on LLM output. Eval and golden datasets, deterministic checks, five quality metrics, LLM-as-a-judge with rubrics, human review, RAG evals, and offline vs online evals.core28 min
- Testing an AI Agent: Deterministic Evals and LLM-as-a-JudgeAn eval runner for a support agent with RAG and tools: a trace, a golden dataset, four checks in code, a judge with strict scores and a pass threshold, in Spring AI, Node.js and Python.core26 min
- GenAI Security and Guardrails: Prompt Injection, Jailbreaks and Safe Tool UsePrompt injection, jailbreaks and why a system prompt is not a lock. Five rules for safe tools, layered guardrails, and a guarded support agent in Spring AI, Node.js and Python.core33 min
- Trade-Offs in Data Systems ArchitectureNo data system is universally best, every architectural decision is a trade-off. The skill is learning to ask the right questions to evaluate them for your application.core22 minddia
- Defining Nonfunctional RequirementsBeyond what a system does, its performance, reliability, scalability, and maintainability decide whether it's usable at all. This chapter gives the vocabulary to define and measure them.core21 minddia
- Data Models and Query LanguagesThe data model you pick shapes how you think about a problem. A tour of the relational, document, graph, event-log, and DataFrame models and their query languages, and when to use which.core21 minddia
- Storage and RetrievalHow databases store data and give it back: OLTP engines (log-structured LSM-trees vs update-in-place B-trees) and column-oriented OLAP engines, and how to pick and tune one.core21 minddia
- Encoding and EvolutionOld and new code run side by side during rolling upgrades, so every byte must stay backward and forward compatible. A tour of JSON, Protocol Buffers, and Avro, and the ways data flows between processes.core18 minddia
- ReplicationKeeping copies of the same data on multiple nodes. Three families, single-leader, multi-leader, and leaderless, each trade consistency against availability and latency differently.core20 minddia
- ShardingSplitting one dataset into shards spread across nodes so data and write throughput scale beyond a single machine, covering key-range vs hash sharding, rebalancing, request routing, and secondary indexes.core15 minddia
- TransactionsGrouping reads and writes into one unit that fully commits or aborts: ACID, weak isolation levels and the anomalies they miss, the routes to serializability, and two-phase commit.core19 minddia
- The Trouble with Distributed SystemsPartial failure is the defining hazard: lost and delayed messages, drifting clocks, process pauses, quorums, fencing tokens, system models, and how to test for all of it.core18 minddia
- Consistency and ConsensusStrong consistency means behaving like one node (linearizability); doing it fault-tolerantly is consensus. Covers CAP, logical clocks, total order broadcast, and coordination services.core16 minddia
- Batch ProcessingTransform a bounded, immutable input into output with no side effects, rerunnable, debuggable, and throughput-oriented; covering MapReduce, dataflow engines, the shuffle, joins, and serving derived data.core15 minddia
- Stream ProcessingBatch's unbounded counterpart, process events continuously, where a database's writes are themselves a stream; covering message brokers, CDC, event sourcing, time and windows, stream joins, and exactly-once.core15 minddia
- A Philosophy of Streaming SystemsDesignate a system of record, derive everything else from its ordered log ("unbundle the database"), and separate timeliness from integrity, covering data integration, dataflow applications, and the end-to-end argument.core15 minddia
- Doing the Right ThingData systems have human consequences, and engineers are responsible for them, covering predictive analytics, bias and feedback loops, surveillance and consent, and data as both power and a toxic asset.core13 minddia
- DDIA Master Revision SheetOne-page-per-chapter distillation of the highest-yield ideas across all 14 chapters, plus cross-cutting themes and a rapid-fire flashcard bank for whole-book review.advanced10 minddia
- Building a Clean, Domain-Driven BackendA simple guide to Clean Architecture and Domain-Driven Design, with diagrams, using a real NestJS + TypeORM + PostgreSQL project.core22 min
- The CAP TheoremHow Consistency, Availability and Partition tolerance trade off in distributed systems. Why 'pick two' misleads: the real choice is C or A during a partition. With database examples and PACELC.core13 min
- Why HTTP Finally Got a QUERY Method (After 16 Years)How the new HTTP QUERY method (RFC 10008) sends a request body for read-only queries: a safe, idempotent, cacheable middle ground between GET and POST, with Node.js examples.core11 min
- The Complete Authentication Guide: From Sessions to JWT and OAuthA complete guide to JWT authentication: sessions vs tokens, JWT structure and claims, access and refresh tokens, logout, the attacks that matter and how to stop them, and how it all scales, with Node.js examples.core43 min
- How Behavioural Interviews WorkWhat a behavioural interview is really testing, how interviewers score you, what good and bad answers look like, and a seven day plan to get ready.intro11 minbehavioural-interviews
- The STAR Method and Your Story BankLearn the STAR shape for answering behavioural questions, then build a bank of 6 to 8 real stories from your own work that you can reuse for many questions.core11 minbehavioural-interviews
- Tell Me About Yourself, and Why This CompanyHow to answer tell me about yourself in 90 seconds, plus honest ways to handle why are you leaving, why this company, and strengths and weaknesses.intro11 minbehavioural-interviews
- Conflict, Failure and FeedbackHow to answer the three hardest behavioural questions, a disagreement, a failure and hard feedback, with sample answers, traps, and notes on managers and production incidents.core17 minbehavioural-interviews
- Ownership, Leadership and AmbiguityHow to answer questions about initiative, unclear requirements, deadlines, tough decisions, mentoring and influence, with sample answers and notes for junior and senior levels.core15 minbehavioural-interviews
- Questions to Ask and Closing the InterviewWhat to ask the interviewer, what to do when you blank, how to recover from a bad answer, a thank you email, offer basics and a night-before checklist.intro13 minbehavioural-interviews