System Design: Design an API Gateway
Design an API gateway that handles routing, authentication, rate limiting, and protocol translation. Covers plugin architecture, request pipelines, and scaling strategies.
442 posts · page 4 of 10
Design an API gateway that handles routing, authentication, rate limiting, and protocol translation. Covers plugin architecture, request pipelines, and scaling strategies.
Design a centralized logging system like the ELK stack. Covers log collection, structured ingestion, indexing, retention policies, and querying terabytes of logs efficiently.
Design a distributed task scheduler that handles delayed, periodic, and one-off jobs at scale. Covers sharding, time wheels, exactly-once execution, and failure recovery.
Design a checkout system that handles cart management, inventory reservation, payment orchestration, and order fulfillment. Covers saga patterns and consistency under high load.
Design a feature flag service for safe rollouts and experimentation. Covers flag evaluation, targeting rules, percentage rollouts, real-time propagation, and audit trails.
Design a time-series metrics pipeline like Prometheus or Datadog. Covers pull vs. push collection, aggregation, downsampling, storage engines, and alerting at scale.
Design a reliable webhook delivery system. Covers event ingestion, at-least-once delivery, retry strategies with exponential backoff, payload signing, and dead letter queues.
Production-ready Docker Compose patterns: override files, healthchecks, resource limits, logging, and secrets management.
Master Docker layer caching: instruction ordering, cache mounts, BuildKit inline cache, and CI registry caching for faster builds.
Go beyond basic multi-stage builds. Learn cache mounts, parallel stages, and distroless bases to shrink Docker images by 90%.
Lock down pod communication with Kubernetes NetworkPolicies. Learn ingress and egress rules, label selectors, and namespace isolation.
Set CPU and memory requests and limits correctly. Understand QoS classes, OOMKilled errors, and CPU throttling in Kubernetes.
Master zero-downtime deployments with Kubernetes rolling updates, rollback commands, and deployment strategies like blue-green and canary.
Build serverless REST APIs with AWS API Gateway — resources, methods, Lambda integration, authorization, throttling, and deployment stages.
Deploy containerized apps to AWS ECS Fargate — task definitions, services, load balancers, auto-scaling, and CI/CD deployment.
Build serverless functions with AWS Lambda and Python — handlers, events, layers, environment variables, API Gateway integration, and best practices.
Master S3 operations in Python — upload, download, presigned URLs, multipart uploads, lifecycle policies, and event notifications.
Build CI/CD pipelines with GitHub Actions — workflows, jobs, steps, matrix builds, secrets, caching, and deploying to production.
Configure Nginx as a reverse proxy — upstream servers, load balancing, SSL termination, WebSocket support, and caching.
Set up application monitoring with Prometheus and Grafana — metrics, PromQL queries, alerting rules, and building dashboards.
Write production-ready Dockerfiles: layer caching, multi-stage builds, .dockerignore, security hardening, slim base images, and patterns that keep builds fast and images small.
Run work after the response: FastAPI BackgroundTasks, Celery integration, task queues, and when to use each approach for emails, webhooks, data processing, and more.
Master FastAPI's dependency injection system: Depends, sub-dependencies, database sessions, authentication, scoped dependencies, and testing with overrides.
Learn to use git bisect to find the exact commit that introduced a bug. Covers manual bisect, automated bisect with scripts, and practical strategies.
Go beyond basic git stash. Learn partial stashing, stash branches, managing multiple stashes, and recovering dropped stashes.
Learn to use git worktrees to check out multiple branches at once without stashing or switching. Covers setup, workflows, and practical use cases.
Complete guide to the Trie data structure. Covers insertion, search, prefix matching, deletion, and real-world applications like autocomplete and word puzzles.
Master Go's context package — cancellation, timeouts, deadlines, values, and how to propagate them through your application stack.
Write idiomatic Go error handling — wrapping, sentinel errors, custom error types, errors.Is, errors.As, and patterns for clean error flows.
Understand Go interfaces — implicit satisfaction, the empty interface, type assertions, interface composition, and real design patterns.
Write effective Go tests — table-driven tests, subtests, test helpers, mocking with interfaces, benchmarks, and integration testing patterns.
Master GraphQL resolvers: resolver functions, context, the N+1 problem, DataLoader for batching, error handling, authorization in resolvers, and performance patterns.
Design GraphQL schemas that scale: types, queries, mutations, connections, pagination, nullability, naming conventions, and patterns for evolving your API over time.
Learn how to use Java Optional to write null-safe code. Covers creation, chaining with map and flatMap, best practices, and common anti-patterns to avoid.
Master Java pattern matching with instanceof, switch expressions, record patterns, and guarded patterns for cleaner, more expressive conditional logic.
Master Java Streams for functional-style data processing. Covers stream creation, map, filter, reduce, collectors, parallel streams, and performance considerations.
A practical guide to Kubernetes Horizontal Pod Autoscaling: HPA resources, metrics server setup, CPU and memory-based scaling, custom metrics, scaling behavior tuning, and production best practices.
A practical guide to Kubernetes Ingress: Ingress resources, NGINX Ingress Controller setup, TLS termination, path-based and host-based routing, annotations, and production configuration.
A deep dive into Kubernetes Pods and Services: pod lifecycle, multi-container patterns, init containers, probes, ClusterIP, NodePort, LoadBalancer, and service discovery.
A practical guide to Kubernetes RBAC: Roles, ClusterRoles, RoleBindings, ClusterRoleBindings, ServiceAccounts, and real-world patterns for securing cluster access.
A deep dive into JavaScript iterators and generators: the iterator protocol, Symbol.iterator, generator functions, yield, async generators, and practical patterns for lazy evaluation and data pipelines.
Run JavaScript in background threads with Web Workers — dedicated workers, shared workers, message passing, and offloading heavy computation.
A comprehensive guide to Linux process management: ps, top, kill, signals, systemd services, cgroups, resource limits, and the tools you need to keep systems running.
Understand gradient descent intuitively — the learning rate, convergence, batch vs stochastic vs mini-batch, and optimizers like Adam.
Master Random Forests — bagging, feature randomness, hyperparameter tuning, feature importance, and when to use them over other models.
How to implement function calling and tool use with LLMs. Covers tool definitions, the execution loop, multi-turn conversations, error handling, and parallel tool calls.
How to reliably get JSON, typed objects, and structured data from LLMs using JSON mode, function calling, Pydantic schemas, and constrained generation with the Outlines library.
How LLMs break text into tokens using BPE, SentencePiece, and tiktoken. Covers vocabulary construction, token limits, and practical implications for prompt engineering.