the person behind the notes ✎

Aditya Mishra Technical Lead at BNP Paribas · author of Stacktrick

Full stack developer who writes the notes, model answers and cheat sheets on Stacktrick, explaining the why behind each interview question, not just the answer.

aditya.stacktrick.com →

825 notes · 2,636 questions with answers · 31 cheat sheets · 32 chapters

Views and content on Stacktrick are Aditya's own and don't represent BNP Paribas.

Notes by Aditya

All notes →
read ✓AI & LLM Engineering · hard

Fine-Tuning vs RAG: When to Use Each in LLM Apps

Fine-tuning changes how a model behaves; RAG changes what it knows at request time. A decision guide with data prep, costs and failure cases.

~9 min readread →
read ✓AI & LLM Engineering · mid

LLM Function Calling and Agent Loops Explained

How LLM tool use works: schemas, the call-execute-return loop, validation, error results, step limits and when an agent beats a workflow.

~8 min readread →
read ✓AI & LLM Engineering · mid

How to Reduce LLM Hallucinations in Production

Why LLMs hallucinate and the layered fixes that work: grounding, permission to abstain, citations, structured output and automatic claim checks.

~8 min readread →
read ✓Angular · mid

Angular Defer Blocks and Lazy Rendering

Load template regions on demand with @defer, choose a trigger, and use placeholders without delaying critical content.

~2 min readread →
read ✓Angular · hard

Angular Global Error Handling

Catch uncaught errors with a custom ErrorHandler, distinguish client from HTTP errors, and surface safe messages to users.

~2 min readread →
read ✓Angular · mid

Angular Host Directives and Composition

Attach behavior to elements with attribute directives, bind to the host with the host property, and compose directives with hostDirectives.

~2 min readread →
read ✓Angular · mid

Angular Pure and Impure Pipes

Understand why pure pipes run only when inputs change, what makes a pipe impure, and how to avoid the performance cost.

~3 min readread →
read ✓Angular · hard

Angular Resource API for Async Data

Load data reactively with the resource API, track loading and error state as signals, and cancel stale requests automatically.

~2 min readread →
read ✓Angular · hard

Angular Signal Forms Overview

Model forms as signals, bind fields in the template, and reason about validation and derived state in a signal-driven form.

~2 min readread →
read ✓Angular · hard

Angular SSR and Hydration Consistency

Server-render Angular apps, hydrate without mismatches, and avoid the DOM and timing assumptions that break rendering.

~2 min readread →
read ✓Angular · hard

Angular Zoneless Change Detection

Run Angular without zone.js, drive updates with signals, and understand which async sources still schedule change detection.

~2 min readread →
read ✓AWS · hard

AWS DynamoDB Query vs Scan

Read by key with Query, avoid full-table Scans, and add indexes to serve the access patterns you actually have.

~2 min readread →
read ✓AWS · mid

AWS ECS vs EKS

Compare ECS and EKS for running containers on AWS, and choose by control, portability and team capability.

~2 min readread →
read ✓AWS · mid

AWS Lambda Cold Starts and Warm Reuse

Reduce cold-start latency with smaller packages, provisioned concurrency and initialization outside the handler.

~2 min readread →
read ✓AWS · hard

AWS RDS Multi-AZ vs Read Replicas

Use Multi-AZ for failover availability and read replicas for read scaling, and stop confusing the two.

~2 min readread →
read ✓AWS · mid

AWS S3 Lifecycle Policies

Move objects to cheaper storage classes and expire them automatically with S3 lifecycle rules.

~2 min readread →
read ✓AWS · hard

AWS Secrets Manager and Rotation

Store secrets centrally, rotate credentials automatically with a two-user pattern, and fetch them at runtime.

~2 min readread →
read ✓Behavioral & HR · mid

Behavioral: Building a Career Growth Plan

Show how you identified the next level's expectations, gathered evidence, and sought feedback instead of waiting for promotion.

~2 min readread →
read ✓Behavioral & HR · mid

Behavioral: Cross-Team Collaboration

Answer questions about working across teams by aligning on outcomes, defining interfaces and using a clear escalation path.

~2 min readread →
read ✓Behavioral & HR · hard

Behavioral: Influencing Without Authority

Show how you built credibility, framed ideas in others' interests, and used a small pilot to win support without a mandate.

~2 min readread →
read ✓Behavioral & HR · mid

Behavioral: Managing Scope Creep

Make trade-offs explicit, protect the milestone, and renegotiate scope instead of silently absorbing it.

~2 min readread →
read ✓Behavioral & HR · mid

Behavioral: Onboarding onto a New Team

Show how you learned a new system quickly, landed a small early win, and built relationships instead of changing everything at once.

~2 min readread →
read ✓Behavioral & HR · mid

Behavioral: Communicating on Remote Teams

Show how you default to written communication, provide context asynchronously, and keep distributed work moving across timezones.

~2 min readread →
read ✓Behavioral & HR · mid

Behavioral: Negotiating Compensation

Negotiate from a researched range, discuss total compensation, and keep the conversation collaborative without ultimatums.

~2 min readread →
read ✓Docker · mid

Docker BuildKit and Cache Mounts

Speed up image builds with BuildKit cache mounts, multi-stage builds and dependency-first layer ordering.

~2 min readread →
read ✓Docker · mid

Docker Compose Profiles

Start only the services you need with Compose profiles, and keep the default set small for focused local development.

~2 min readread →
read ✓Docker · hard

Docker Distroless and Minimal Images

Ship images without a shell or package manager, copy only the runtime, and accept the debugging trade-off.

~2 min readread →
read ✓Docker · hard

Docker Image Vulnerability Scanning

Scan images for known CVEs in CI, set a policy that blocks the build, and rebuild when base images are patched.

~2 min readread →
read ✓Docker · hard

Docker init, PID 1 and Signal Handling

Why the first process in a container must reap children and forward signals, and how to avoid zombies and ignored shutdowns.

~2 min readread →
read ✓Docker · mid

Docker Registry Authentication

Authenticate to private registries with credential helpers, pull secrets in Kubernetes, and scoped tokens.

~2 min readread →
read ✓Docker · mid

Docker Restart Policies

Choose between no, on-failure, always and unless-stopped, and combine a policy with health checks to avoid crash loops.

~2 min readread →
read ✓Docker · mid

Docker tmpfs Mounts

Store ephemeral, sensitive data in memory with tmpfs mounts, and set size limits so memory use stays bounded.

~2 min readread →
read ✓Data Structures & Algorithms · mid

Bit Manipulation Patterns for Interviews

Set, test and clear bits, exploit XOR properties, and count set bits with the Brian Kernighan trick.

~2 min readread →
read ✓Git & CI/CD · easy

Git Detached HEAD

What a detached HEAD is, when it happens, and how to keep commits made in that state.

~2 min readread →
read ✓Git & CI/CD · mid

Git Hooks and Local Automation

Automate checks with client and server hooks, share them through a framework, and enforce the same rules in CI where they cannot be bypassed.

~2 min readread →
read ✓Git & CI/CD · hard

Git LFS for Large Files

Track large binaries with Git LFS, keep pointer files in the repository, and plan for LFS storage and access.

~2 min readread →
read ✓Git & CI/CD · hard

Git Partial and Shallow Clones

Fetch less history and content with shallow and partial clones, and understand what you give up.

~2 min readread →
read ✓Git & CI/CD · mid

Git Remote-Tracking Branches

Understand remote-tracking refs, the difference between fetch and pull, and how tracking branches stay in sync.

~2 min readread →
read ✓Git & CI/CD · hard

Git Signed Commits and Tags

Sign commits and tags, verify signatures, and enforce them to prove who authored a change.

~2 min readread →
read ✓Git & CI/CD · hard

Git Submodules vs Subtrees

Embed another repository with submodules or subtrees, and choose based on how often it changes and who owns it.

~2 min readread →
read ✓Git & CI/CD · mid

Git Tags and Releases

Mark releases with annotated tags, push them explicitly, and treat a tag as immutable.

~2 min readread →
read ✓Git & CI/CD · mid

Git Worktrees

Check out several branches at once in separate directories with git worktree, sharing one object database.

~2 min readread →
read ✓HTML & CSS · easy

CSS aspect-ratio and Layout Stability

Reserve space for media with aspect-ratio, combine it with object-fit, and avoid the layout shift the old padding hack caused.

~2 min readread →
read ✓HTML & CSS · hard

The CSS :has() Selector

Style a parent based on its children with :has(), handle form states, and use it without hurting performance.

~2 min readread →
read ✓HTML & CSS · hard

CSS Cascade Layers

Control the cascade order with @layer, keep specificity low, and understand how unlayered styles fit in.

~2 min readread →
read ✓HTML & CSS · mid

CSS Dark Mode with prefers-color-scheme

Support light and dark themes with prefers-color-scheme and custom properties, and avoid the flash of the wrong theme.

~2 min readread →
read ✓HTML & CSS · mid

Flexbox vs Grid: Choosing a Layout

Use flexbox for one-dimensional flows and grid for two-dimensional layouts, and know when each is the simpler tool.

~2 min readread →
read ✓HTML & CSS · easy

Inline, Block and Inline-Block

Understand the default display types, how they affect sizing and flow, and why some properties are ignored on inline elements.

~2 min readread →
read ✓HTML & CSS · mid

CSS Print Styles

Style for print with @media print, hide navigation, and control page breaks so documents read well on paper.

~2 min readread →
read ✓HTML & CSS · mid

CSS Text Overflow and Ellipsis

Truncate text with an ellipsis, clamp multiple lines, and fix the flexbox case where truncation refuses to happen.

~2 min readread →
read ✓HTML & CSS · mid

CSS Transforms and Animations

Animate transform and opacity for smooth motion, use transitions and keyframes, and respect reduced-motion preferences.

~2 min readread →
read ✓Java · hard

Java Generics Wildcards and PECS

Use ? extends T for producers and ? super T for consumers, and understand why List<String> is not a List<Object>.

~2 min readread →
read ✓JavaScript · mid

JavaScript Date and Timezone Pitfalls

Parse and format dates without timezone surprises: zero-based months, date-only versus date-time parsing, and why UTC storage avoids drift.

~3 min readread →
read ✓JavaScript · mid

JavaScript Number Precision and BigInt

Why 0.1 + 0.2 is not 0.3, where safe integer range ends, and when BigInt is the right tool for large identifiers and money.

~2 min readread →
read ✓JavaScript · easy

JavaScript Object Destructuring and Defaults

Destructure objects with renamed bindings and defaults, and learn why only undefined triggers a default while null keeps its value.

~2 min readread →
read ✓JavaScript · hard

JavaScript Timeouts with Promise.race

Race a promise against a timer to enforce a deadline, and clean up the timer plus the losing work instead of leaving it running.

~3 min readread →
read ✓JavaScript · easy

JavaScript Rest and Spread Gotchas

Use spread and rest correctly, and avoid the shallow-copy trap where nested objects are still shared between the original and the copy.

~2 min readread →
read ✓JavaScript · mid

JavaScript Symbols and Well-Known Symbols

Create unique property keys, customize object behavior with well-known symbols, and understand why symbols vanish from JSON and Object.keys.

~2 min readread →
read ✓Kubernetes · mid

Kubernetes ConfigMap Update Behavior

Understand why ConfigMap changes reach volumes but not environment variables, and how to roll a Deployment deliberately.

~2 min readread →
read ✓Kubernetes · mid

Kubernetes emptyDir Volumes

Share scratch space between containers in a pod with emptyDir, choose the backing medium, and bound its size.

~2 min readread →
read ✓Kubernetes · hard

Kubernetes Gateway API for Ingress

Route traffic with GatewayClass, Gateway and HTTPRoute, and understand how the Gateway API improves on Ingress.

~2 min readread →
read ✓Kubernetes · mid

Kubernetes Init Containers

Run setup and dependency waits in init containers before the app starts, and keep startup logic out of the app itself.

~2 min readread →
read ✓Kubernetes · hard

Kubernetes Pod Security Admission

Enforce pod hardening with the Pod Security Admission levels, and migrate workloads off the removed PodSecurityPolicy.

~2 min readread →
read ✓Kubernetes · hard

Kubernetes Pod Topology Spread

Spread replicas across zones and nodes with topology spread constraints, and balance availability against scheduling failure.

~2 min readread →
read ✓Kubernetes · mid

Kubernetes Service Types

Choose ClusterIP, NodePort, LoadBalancer or a headless Service, and know what each exposes.

~2 min readread →
read ✓Microservices · hard

Microservices Anti-Corruption Layer

Protect a service's domain model from a foreign or legacy model with a translation layer at the boundary.

~2 min readread →
read ✓Microservices · hard

Microservices API Versioning and Evolution

Evolve service APIs without breaking consumers using additive changes, explicit versioning and consumer-driven contracts.

~2 min readread →
read ✓Microservices · hard

Microservices Backend for Frontend

Use a per-client BFF to aggregate services and shape responses, without letting it become a shared god service.

~2 min readread →
read ✓Microservices · hard

Microservices Distributed Locking

Coordinate exclusive access across instances with leases and fencing, and prefer partitioning or idempotency when you can.

~2 min readread →
read ✓Microservices · hard

Microservices Event Sourcing

Store events as the source of truth, rebuild state by replay, and manage versioning with snapshots.

~2 min readread →
read ✓Microservices · mid

Microservices Health Check Endpoints

Separate liveness from readiness, keep deep dependency checks off the restart path, and avoid the restart loop.

~2 min readread →
read ✓Microservices · hard

Microservices Schema Registry

Register event schemas centrally, enforce compatibility on publish, and version them so consumers are never surprised.

~2 min readread →
read ✓Microservices · hard

Microservices Sidecar Proxies

Move cross-cutting networking concerns into a co-located proxy, configure them centrally, and watch for hidden retries.

~2 min readread →
read ✓MongoDB · mid

MongoDB Bulk Writes

Batch inserts and updates with bulkWrite, choose ordered or unordered, and handle partial failures correctly.

~2 min readread →
read ✓MongoDB · mid

MongoDB Capped Collections

Use capped collections for fixed-size, insertion-ordered logs, and know why documents cannot grow.

~2 min readread →
read ✓MongoDB · hard

MongoDB Change Streams and Resume Tokens

React to inserts and updates with change streams, persist resume tokens, and handle invalidate and failover correctly.

~2 min readread →
read ✓MongoDB · hard

MongoDB GridFS for Large Files

Store files larger than the 16 MB document limit with GridFS, streaming uploads and downloads and cleaning up orphaned chunks.

~2 min readread →
read ✓MongoDB · mid

MongoDB Projections and Covered Queries

Return only the fields you need, exclude _id when unused, and build a covering index that answers a query without fetching documents.

~2 min readread →
read ✓MongoDB · mid

MongoDB Text Search Indexes

Create a weighted text index, query with $text and textScore, and understand the limits of MongoDB's built-in search.

~2 min readread →
read ✓MongoDB · hard

MongoDB Time-Series Collections

Store metrics and events in time-series collections, set the meta field and granularity, and query with time bounds.

~2 min readread →
read ✓Networking · mid

Networking: DNS Caching and TTL

Understand positive and negative caching, why changes are not instant, and how TTL trades propagation speed against query load.

~2 min readread →
read ✓Networking · easy

Networking: DNS Record Types

Read and choose DNS records: A and AAAA for addresses, CNAME for aliases, and MX and TXT for mail and verification.

~2 min readread →
read ✓Networking · mid

Networking: HTTP Redirects

Choose between 301, 302, 307 and 308, know which preserve the request method, and avoid caching and loop mistakes.

~2 min readread →
read ✓Networking · hard

HTTP/3 and QUIC Transport

How HTTP/3 runs over QUIC on UDP, why it removes transport head-of-line blocking, and when it helps in practice.

~2 min readread →
read ✓Networking · mid

Networking: IP Subnetting and CIDR

Read CIDR notation, compute usable host ranges, and design non-overlapping subnets for a VPC.

~2 min readread →
read ✓Networking · mid

Networking: L4 vs L7 Load Balancing

Choose between a transport-layer and an application-layer load balancer, and understand what each can and cannot route on.

~2 min readread →
read ✓Networking · hard

Networking: MTU and Fragmentation

Why the MTU limits packet size, how path MTU discovery avoids fragmentation, and why tunnels cause black-hole connections.

~2 min readread →
read ✓Networking · hard

Networking: TCP Flow Control

How the receive window stops a fast sender from overrunning a slow receiver, and how it differs from congestion control.

~2 min readread →
read ✓Networking · hard

Networking: The TLS Handshake

How TLS negotiates keys and certificates, what TLS 1.3 improves, and the certificate mistakes that break HTTPS.

~2 min readread →
read ✓Node.js · hard

Node.js Clustering Across CPU Cores

Use cluster to run several workers on all cores, restart crashed workers, and understand shared-port and shared-state limits.

~2 min readread →
read ✓Node.js · hard

Node.js Password Hashing with scrypt

Store passwords as salted hashes with a slow key-derivation function, and compare candidates in constant time.

~2 min readread →
read ✓Node.js · mid

Node.js ESM and CommonJS Interop

Choose between ESM and CommonJS, import CJS defaults from ESM, and reach ESM from CJS with dynamic import.

~2 min readread →
read ✓Node.js · mid

Node.js HTTP Security Headers

Set defensive HTTP headers centrally: content type protection, a content security policy, referrer policy and HSTS over HTTPS.

~2 min readread →
read ✓Node.js · hard

Node.js Retries with Backoff and Jitter

Retry only transient failures, space attempts with exponential backoff plus jitter, and cap attempts and total time.

~2 min readread →
read ✓Node.js · mid

Node.js Structured Logging

Emit JSON logs with levels and correlation ids, keep them machine-readable, and never log secrets or personal data.

~2 min readread →
read ✓Node.js · mid

Node.js URL and URLSearchParams

Build and parse URLs with the WHATWG URL API instead of string concatenation, and validate the host before fetching.

~2 min readread →
read ✓Node.js · mid

Node.js Response Compression with zlib

Compress HTTP responses with gzip or brotli streams, negotiate the encoding, and avoid compressing data that is already compressed.

~2 min readread →
read ✓Operating Systems · hard

Operating Systems: CPU Cache Locality

Improve performance with spatial and temporal locality, avoid pointer chasing, and understand false sharing between threads.

~2 min readread →
read ✓Operating Systems · hard

Copy-on-Write Memory and fork

How copy-on-write lets fork share pages until a write, why RSS can be misleading, and the implications for memory and latency.

~2 min readread →
read ✓Operating Systems · hard

Operating Systems: epoll and select

How select, poll and epoll report I/O readiness, and the difference between level- and edge-triggered notifications.

~2 min readread →
read ✓Operating Systems · hard

Operating Systems: I/O Models

Compare blocking, non-blocking, multiplexed and asynchronous I/O, and why the choice drives server scalability.

~2 min readread →
read ✓Operating Systems · mid

Operating Systems: Memory Allocation

Compare stack and heap allocation, how the allocator manages the heap, and the fragmentation and lifetime bugs that follow.

~2 min readread →
read ✓Operating Systems · mid

Operating Systems: Signals

Use SIGTERM for graceful shutdown, respect the limits of signal handlers, and know which signals cannot be caught.

~2 min readread →
read ✓Operating Systems · mid

Operating Systems: Swap and Thrashing

How swapping extends memory, when it becomes thrashing, and how overcommit and the OOM killer respond to exhaustion.

~2 min readread →
read ✓Operating Systems · mid

Operating Systems: Thread Pools

Bound concurrency with a fixed pool and a queue, size it for the workload, and avoid the unbounded backlog.

~2 min readread →
read ✓Python · hard

Python asyncio.gather and Timeouts

Run coroutines concurrently with asyncio.gather, enforce timeouts, and handle partial failures and cancellation correctly.

~2 min readread →
read ✓React · hard

React Context Splitting for Performance

Stop a single context value from re-rendering every consumer by splitting state and dispatch and memoizing the provider value.

~2 min readread →
read ✓React · mid

React lazy Loading and Code Splitting

Split bundles with lazy and Suspense, work with default exports, and place boundaries so a chunk loads only when needed.

~2 min readread →
read ✓React · mid

React Portals and Event Bubbling

Render outside the parent DOM with createPortal while events keep bubbling through the React tree, and manage focus and z-index.

~2 min readread →
read ✓React · mid

React Form Actions with useActionState

Manage form submission, pending state and server errors with useActionState instead of hand-rolled loading flags.

~2 min readread →
read ✓React · hard

React useOptimistic and Instant Feedback

Show the expected result immediately with useOptimistic, then reconcile with the server and roll back cleanly on failure.

~2 min readread →
read ✓ServiceNow · hard

ServiceNow ACL Scripting and Access

Enforce access with ACLs, use scripted conditions carefully, and test as the actual user to verify.

~2 min readread →
read ✓ServiceNow · hard

ServiceNow Caching and Invalidation

Understand what the platform caches, when a change takes effect, and how to flush caches consistently across nodes.

~2 min readread →
read ✓ServiceNow · mid

ServiceNow Dictionary and Field Audit

Define fields in the dictionary, use per-table overrides, and enable audit on the fields that need a history.

~2 min readread →
read ✓ServiceNow · mid

ServiceNow Notification Controls

Send notifications through events and business rules, gate them with conditions, and prevent the notification storm that floods users.

~2 min readread →
read ✓ServiceNow · mid

ServiceNow Record Producers

Collect input with a catalog form and create the right record, and know the limits when the target span multiple tables.

~2 min readread →
read ✓ServiceNow · hard

ServiceNow REST API Design

Expose data through Scripted REST or the Table API, version the contract, and avoid leaking internal tables.

~2 min readread →
read ✓ServiceNow · mid

ServiceNow Scheduled Jobs

Run recurring server-side work with scheduled jobs, avoid overlap and long runs, and log enough to debug failures.

~2 min readread →
read ✓ServiceNow · hard

ServiceNow Update Sets and Conflicts

Move configuration with update sets, resolve collisions in order, and avoid the manual edits that break promotion.

~2 min readread →
read ✓Spring Boot · hard

Spring @Async and Executor Configuration

Run methods asynchronously with @Async, configure a bounded executor, and handle exceptions and the proxy boundary.

~2 min readread →
read ✓Spring Boot · hard

Spring Boot Caching Abstraction

Cache method results with @Cacheable, choose keys and TTLs, and evict on writes without the self-invocation trap.

~2 min readread →
read ✓Spring Boot · hard

Spring Declarative HTTP Clients

Define outbound HTTP as an annotated interface with @HttpExchange, create the proxy, and configure timeouts and errors.

~2 min readread →
read ✓Spring Boot · mid

Spring Boot Problem Details for APIs

Return consistent RFC 7807 error responses, map exceptions centrally, and avoid leaking internals to clients.

~2 min readread →
read ✓Spring Boot · mid

Spring Boot REST Pagination

Page results with Pageable, always sort stably, and avoid the deep-offset slowdown on large tables.

~2 min readread →
read ✓Spring Boot · mid

Spring Boot Scheduled Tasks

Run recurring work with @Scheduled, coordinate across instances, and avoid overlap and long-running jobs.

~2 min readread →
read ✓Spring Boot · hard

Spring Boot Testcontainers

Test against real databases and services in containers, manage their lifecycle, and isolate state between tests.

~2 min readread →
read ✓Spring Boot · hard

Spring Boot Distributed Tracing

Propagate trace context with Micrometer Tracing, correlate spans across services, and sample without overwhelming storage.

~2 min readread →
read ✓Spring Boot · mid

Spring Bean Validation Groups

Apply different validation rules for create and update with groups, and sequence checks with group order.

~2 min readread →
read ✓SQL & PostgreSQL · mid

PostgreSQL CASE Expressions

Use simple and searched CASE for conditional values, ordering and aggregation, and avoid the NULL that a missing ELSE produces.

~2 min readread →
read ✓SQL & PostgreSQL · mid

PostgreSQL Date Truncation and Ranges

Group by time with date_trunc, write range predicates with >= and < instead of BETWEEN, and handle timezones explicitly.

~2 min readread →
read ✓SQL & PostgreSQL · hard

PostgreSQL Deadlocks and Retry

Prevent deadlocks with a consistent lock order and short transactions, and retry the ones you cannot prevent.

~2 min readread →
read ✓SQL & PostgreSQL · hard

PostgreSQL Generated Columns

Keep derived values consistent with generated columns, choose STORED or virtual, and index a stored derived value.

~2 min readread →
read ✓SQL & PostgreSQL · mid

SQL WHERE vs HAVING

Filter rows with WHERE before grouping and groups with HAVING after, and understand why the placement changes cost and correctness.

~2 min readread →
read ✓SQL & PostgreSQL · hard

PostgreSQL JSONB Columns and Indexing

Store and query semi-structured data with jsonb, extract fields with -> and ->>, and index the queries you actually run.

~2 min readread →
read ✓SQL & PostgreSQL · hard

PostgreSQL Recursive CTEs for Hierarchies

Walk parent-child data with WITH RECURSIVE, guard against infinite loops, and understand the anchor and recursive terms.

~2 min readread →
read ✓SQL & PostgreSQL · mid

PostgreSQL Self-Joins

Join a table to itself to compare rows, walk a hierarchy, or find duplicates, and avoid the accidental cross product.

~2 min readread →
read ✓SQL & PostgreSQL · mid

PostgreSQL Set Operations

Combine result sets with UNION, UNION ALL, INTERSECT and EXCEPT, and know when deduplication changes cost or meaning.

~2 min readread →
read ✓System Design · hard

System Design: Bloom Filters

Use a Bloom filter to skip lookups with a tiny memory footprint, and understand its false-positive-only guarantee.

~2 min readread →
read ✓System Design · hard

System Design: Idempotent APIs

Make retried requests safe with idempotency keys, store the result per key, and return the original response on a repeat.

~2 min readread →
read ✓System Design · hard

System Design: Notification System

Ingest events, respect preferences, deduplicate and deliver across channels with retries and provider failover.

~2 min readread →
read ✓System Design · hard

System Design: Presence Tracking

Track online status with heartbeats and TTLs, derive presence instead of storing it, and avoid fanning out to every client.

~2 min readread →
read ✓System Design · hard

System Design: Schema Evolution

Evolve stored and message schemas with additive changes, expand-contract migrations, and reader tolerance across services.

~2 min readread →
read ✓System Design · hard

System Design: Time-Series Metrics

Ingest metrics with bounded cardinality, roll up raw samples, and set retention tiers so storage stays predictable.

~2 min readread →
read ✓System Design · mid

System Design: URL Shortener

Generate short codes from ids, keep the read path fast and cached, and handle collisions and analytics.

~2 min readread →
read ✓Software Testing · hard

Testing Time with an Injected Clock

Inject a clock instead of calling the system time, freeze it in tests, and remove the sleeps that make tests flaky.

~2 min readread →
read ✓Software Testing · mid

Code Coverage and Its Limits

Read line and branch coverage as a signal, not a goal, and avoid the tests that chase the number without checking behavior.

~2 min readread →
read ✓Software Testing · hard

Scoping End-to-End Tests

Reserve end-to-end tests for critical user journeys, use stable selectors, and avoid duplicating coverage the lower tests already have.

~2 min readread →
read ✓Software Testing · mid

Testing Error Paths

Test failures and edge inputs deliberately, assert the error type and message, and stop the happy path from hiding bugs.

~2 min readread →
read ✓Software Testing · mid

Unit and Integration Test Balance

Separate fast isolated unit tests from integration tests that use real dependencies, and find the balance that catches real bugs.

~2 min readread →
read ✓Software Testing · hard

Parallel Test Isolation

Run tests in parallel without interfering by removing shared state, isolating resources, and randomizing order.

~2 min readread →
read ✓Software Testing · mid

Red, Green, Refactor

Write a failing test first, make it pass minimally, then refactor under green, and understand why the order matters.

~2 min readread →
read ✓Software Testing · mid

Snapshot Tests Worth Reviewing

Keep snapshots small and intentional, review every diff, and stop large snapshots from becoming rubber-stamped assertions.

~2 min readread →
read ✓Software Testing · mid

Test Data Builders and Object Mothers

Build valid test objects with defaults and override only what a test cares about, to keep tests readable and robust.

~2 min readread →
read ✓TypeScript · hard

TypeScript Abstract Classes and Contracts

Share behavior with abstract classes, enforce required members, and decide when an interface or composition is the better contract.

~2 min readread →
read ✓TypeScript · mid

TypeScript Enums vs Union Types

Compare enums with unions of string literals: runtime cost, serialization, exhaustiveness and which one fits application code.

~3 min readread →
read ✓TypeScript · hard

TypeScript Key Remapping in Mapped Types

Rename mapped-type keys with an as clause, filter keys by mapping to never, and build getter and prefixed types generically.

~2 min readread →
read ✓TypeScript · mid

TypeScript Strict Compiler Flags

Turn on strict checks, know which flags strict bundles, and layer the non-strict extras such as noUncheckedIndexedAccess.

~2 min readread →
read ✓TypeScript · mid

TypeScript Template Literal Types

Compose string types with template literals, interpolate unions to generate combinations, and understand how they stay type-level only.

~2 min readread →
read ✓TypeScript · hard

TypeScript this Types and Fluent APIs

Use polymorphic this return types for builders, keep chaining correct through subclasses, and constrain this parameters.

~2 min readread →
read ✓JavaScript · easy

JavaScript Array Sort Comparators

Sort arrays in place with a correct comparator, understand default string ordering and sort stability, and avoid the numeric and string traps.

~3 min readread →
read ✓JavaScript · hard

JavaScript Async Iteration and Backpressure

Consume async generators with for await, propagate errors and pace a producer to a slow consumer without buffering the whole stream.

~3 min readread →
read ✓JavaScript · mid

JavaScript Custom Error Classes

Extend Error to carry a stable name and instanceof, preserve the underlying cause, and avoid the string-throwing mistakes interviewers look for.

~3 min readread →
read ✓JavaScript · hard

JavaScript Proxy Traps for Validation

Validate object writes with Proxy set and get traps, forward with Reflect and avoid the invariants that make a proxy lie about its target.

~3 min readread →
read ✓JavaScript · mid

JavaScript structuredClone and Transferables

Deep-clone Dates, Maps, Sets and cyclic graphs with structuredClone, and move ArrayBuffers between contexts instead of copying them.

~3 min readread →
read ✓SQL & PostgreSQL · mid

PostgreSQL 'relation does not exist': Cause and Fix

Fix PostgreSQL 'relation does not exist': check the search_path, qualify the schema, confirm migrations ran here, and fix quoted, case-sensitive identifiers.

~6 min readread →
read ✓TypeScript · mid

TypeScript Const Type Parameters

Infer narrow literal and readonly types at call sites with const type parameters, and know the inference it does not change.

~3 min readread →
read ✓TypeScript · mid

TypeScript Excess Property Checks

Why object literals reject extra properties while variables are accepted, and how to control the freshness check deliberately.

~3 min readread →
read ✓Angular · mid

Angular HTTP Request Contract Tests

Use Angular HTTP testing to verify request URLs, methods, response mapping and failures without arbitrary delays.

~3 min readread →
read ✓JavaScript · mid

JavaScript Single-Flight Requests

Combine identical in-flight requests with a Map and promises. Trace cleanup, failures and cancellation ownership.

~3 min readread →
read ✓Node.js · mid

Node.js Events and Listener Ordering

Trace synchronous EventEmitter delivery, promise-based waiting and cleanup. Prevent missed events by registering listeners first.

~3 min readread →
read ✓Python · mid

Python Bounded Async Worker Queues

Use asyncio.Queue and a fixed worker pool to bound pending work. Trace backpressure, shutdown and failure ownership.

~3 min readread →
read ✓React · mid

React Deferred Results and Stale UI

Build a search interface with urgent input and deferred results. Explain stale feedback, memo boundaries and network limits.

~3 min readread →
read ✓SQL & PostgreSQL · mid

PostgreSQL Concurrent Job Claiming

Claim queued jobs with row locks and SKIP LOCKED. Explain transaction boundaries, leases, retries and duplicate effects.

~2 min readread →
read ✓Angular · mid

Angular Async Validators and Pending State

A username-availability check traced step by step: PENDING status, cancelled checks, debouncing, errors that hang the form, and safe submit.

~6 min readread →
read ✓Angular · hard

Angular Component Tests That Verify Behavior

Test an Angular component through its DOM, inputs, outputs and HTTP calls, so refactors pass and real bugs fail. Five tests, run and broken.

~6 min readread →
read ✓Angular · mid

Angular Content Projection and Ownership

Why projected content is created by the parent even inside a closed @if, how select slots match, and when ng-template makes projection lazy.

~6 min readread →
read ✓Angular · mid

Angular Inject and Injection Contexts

Where inject() works and where it throws NG0203: constructors, field initializers and guards versus ngOnInit, timers and code after await.

~6 min readread →
read ✓Angular · hard

Angular Lazy Routes and Feature Boundaries

How one innocent import moved a lazy feature into the initial bundle (233 kB to 407 kB), and how to draw boundaries that keep lazy routes lazy.

~6 min readread →
read ✓Angular · easy

Angular OnPush and Input Reference Changes

Why an OnPush child ignores user.role = 'admin' but updates for a new object, what else marks it dirty, and how signal inputs change the picture.

~6 min readread →
read ✓Angular · mid

Angular Reactive Forms and State Ownership

Who owns the edit state in an Angular reactive form: loading server data with patchValue, splitting subforms, avoiding echo loops and lost edits.

~6 min readread →
read ✓Angular · mid

Angular Route Guards and Server Authorization

Route guards decide what the Angular router shows, not what a user may do. Why the admin chunk is still public and where the real check belongs.

~6 min readread →
read ✓Angular · mid

Angular Resolvers and Navigation Data

What a ResolveFn really does to navigation: the delay, reruns on param change, RedirectCommand for 404s, and why EMPTY or an error cancels it.

~6 min readread →
read ✓Angular · hard

Angular RxJS Mapping Operators and Intent

switchMap, mergeMap, concatMap or exhaustMap? One timeline of four requests shows what each operator does, and which fits search, save and login.

~6 min readread →
read ✓Angular · easy

Angular Computed Signals and Derived Values

Why a cart total belongs in computed() and not a second signal, how Angular tracks dependencies lazily, and when linkedSignal fits.

~7 min readread →
read ✓Angular · easy

Angular Effects and External Synchronization

What effect() is actually for in Angular: pushing signal state to localStorage, the DOM or a chart library, with cleanup, untracked and timing.

~6 min readread →
read ✓Angular · mid

Angular View Queries and Lifecycle Timing

When viewChild() and @ViewChild actually hold a value: constructor, ngOnInit, ngAfterViewInit and @if blocks, measured in compiled Angular 20.

~6 min readread →
read ✓AWS · hard

AWS Auto Scaling and Dependency Limits

How EC2 Auto Scaling reacts to load, why scaling on the wrong metric backfires, and how to cap a fleet at what its databases and APIs can take.

~7 min readread →
read ✓AWS · hard

AWS Cost Visibility and Bounded Experiments

Seeing where AWS money goes with tags and Cost Explorer, why budgets alert but don't stop spend, and how to fence experiments with SCPs.

~7 min readread →
read ✓AWS · mid

AWS DynamoDB Keys and Access Patterns

How to design DynamoDB partition and sort keys from your queries: listing access patterns first, composite sort keys, GSIs and hot partitions.

~6 min readread →
read ✓AWS · easy

AWS IAM Policies and Permission Decisions

How IAM decides allow or deny: explicit denies, SCPs, permissions boundaries, resource policies, and how to debug an AccessDenied error.

~6 min readread →
read ✓AWS · mid

AWS Lambda Invocation and Execution Lifetimes

What happens inside a Lambda execution environment from init to shutdown, what survives between calls, and how timeouts and concurrency add up.

~6 min readread →
read ✓AWS · mid

AWS Lambda Retries and Idempotent Handlers

Who retries a failed Lambda invocation (the caller, the async queue or the event source) and how to write handlers that survive running twice.

~7 min readread →
read ✓AWS · easy

AWS NAT Gateways and Private Outbound Access

How a NAT gateway gives private subnets outbound internet access, why you want one per Availability Zone, and where its data charges come from.

~6 min readread →
read ✓AWS · hard

AWS RDS Connections and Database Capacity

Why RDS runs out of connections long before it runs out of CPU, how to size pools from query rate and latency, and when RDS Proxy actually helps.

~7 min readread →
read ✓AWS · easy

AWS Roles and Temporary Credentials

What an IAM role is, how AssumeRole hands out short-lived keys, how EC2, Lambda and ECS get them automatically, and why that beats access keys.

~6 min readread →
read ✓AWS · mid

AWS S3 Versioning and Recovery Limits

How S3 versioning keeps old copies and delete markers, how to restore an overwritten or deleted file, and what versioning can't protect against.

~7 min readread →
read ✓AWS · easy

AWS Security Groups Versus Network ACLs

Security groups are stateful and sit on interfaces; network ACLs are stateless, ordered and sit on subnets. What that means for reply traffic.

~7 min readread →
read ✓AWS · mid

AWS SNS Fanout and Subscriber Independence

How SNS fans one event out to many subscribers, why each subscription succeeds or fails alone, and when to put an SQS queue behind each one.

~7 min readread →
read ✓AWS · mid

AWS SQS Delivery and Visibility Timeouts

Why SQS delivers messages more than once, how the visibility timeout and receipt handles work, and how to process slow jobs without duplicates.

~7 min readread →
read ✓AWS · easy

AWS VPC Routes and Network Reachability

How VPC route tables pick a target by longest prefix, what makes a subnet public or private, and how to debug an instance that can't connect.

~6 min readread →
read ✓Behavioral & HR · hard

Reviewing a Mock Behavioral Interview

Review a mock behavioral interview the way a scorer would: record it, rate each answer on a rubric, fix the patterns and rehearse follow-ups.

~7 min readread →
read ✓Behavioral & HR · easy

Explaining Project Ownership in an Interview

Explain a project you owned without overclaiming: the decisions that were yours, the work others did, and what you looked after once it shipped.

~6 min readread →
read ✓Behavioral & HR · hard

Questions to Ask About a Role and Team

Make 'Do you have any questions?' count: ask what would change your decision, request examples over opinions and follow up on the answers.

~6 min readread →
read ✓Behavioral & HR · easy

Interview Introductions With Relevant Evidence

Answer 'tell me about yourself' in about ninety seconds: your current focus, one piece of work matched to the job ad, and why this role.

~7 min readread →
read ✓Behavioral & HR · easy

Behavioral Interviews: A Clear STAR Story

Turn a real project into a two-minute STAR answer: how long each part runs, a weak and a strong telling of one story, and the follow-ups.

~7 min readread →
read ✓Docker · mid

Docker Bind Mounts and Host Coupling

Bind mounts map a host path into a container: great for live code, risky for ownership, portability and security. See where each one bites.

~6 min readread →
read ✓Docker · mid

Docker Compose Dependencies and Readiness

Plain depends_on only orders container starts. Use healthchecks, service_healthy and service_completed_successfully to wait for a ready database.

~5 min readread →
read ✓Docker · easy

Docker Entrypoint and Command Overrides

How ENTRYPOINT and CMD combine into one argv, what docker run arguments replace, and why appending sh to some images never gives you a shell.

~6 min readread →
read ✓Docker · mid

Docker Health Checks and Useful Probes

How a HEALTHCHECK moves from starting to unhealthy, why plain Docker never restarts an unhealthy container, and what a good probe checks.

~5 min readread →
read ✓Docker · easy

Docker Build Context and Ignore Rules

What the build context is, why COPY . . can ship your .env and .git, and how to write .dockerignore patterns that match nested folders.

~5 min readread →
read ✓Docker · easy

Docker Images Versus Running Containers

An image is a read-only template; a container is that template plus a writable layer and a process. See what survives stop, start and rm.

~5 min readread →
read ✓Docker · mid

Docker Image Tags and Reproducible Releases

Tags are movable pointers and digests are not. Learn why latest breaks rollbacks, how to tag releases, and when to pin images by sha256.

~5 min readread →
read ✓Docker · easy

Docker Layers and Build Cache Invalidation

Why one edited source file can rerun npm install: how BuildKit's layer cache keys each step, and how to order a Dockerfile so rebuilds stay fast.

~5 min readread →
read ✓Docker · hard

Docker Logs and Application Diagnostics

docker logs only shows stdout and stderr. Fix empty logs, Python buffering and unrotated json-file growth, then pick a logging driver.

~5 min readread →
read ✓Docker · mid

Docker Networks and Container DNS

Why containers can't resolve each other on the default bridge, how the 127.0.0.11 resolver works, and why nginx keeps a stale upstream IP.

~5 min readread →
read ✓Docker · mid

Docker Nonroot Users and File Permissions

Switching a container to a nonroot USER breaks writes until ownership is right. Fix EACCES with chown, numeric UIDs and pre-created volume paths.

~5 min readread →
read ✓Docker · mid

Docker Exposed Ports Versus Published Ports

EXPOSE documents a port; -p opens one on the host. Bind addresses, -P, the 127.0.0.1 trap inside containers and the ufw bypass on Linux.

~5 min readread →
read ✓Docker · mid

Docker Secrets and Image Layer History

Build args and ENV values stay readable in docker history and image config. Pass build-time credentials with BuildKit secret mounts instead.

~5 min readread →
read ✓Docker · mid

Docker Volumes and Data Lifetimes

Named and anonymous volumes outlive containers in different ways. Trace which commands keep data, which delete it, and how to back it up.

~5 min readread →
read ✓Data Structures & Algorithms · hard

Backtracking and Safe Pruning Rules

Backtracking as choose, explore, unchoose, and the proof each prune needs: sorted breaks, duplicate skips and the negative-number trap.

~7 min readread →
read ✓Data Structures & Algorithms · easy

Big-O Complexity and Input Growth

Read Big-O as a growth rate: count steps as n doubles, name separate inputs n and m, and spot the hidden O(n) inside one-line operations.

~6 min readread →
read ✓Data Structures & Algorithms · mid

Binary Search on an Answer Space

Binary search a numeric answer instead of an array: monotonic feasibility checks, tight bounds and min-max versus max-min variants.

~6 min readread →
read ✓Data Structures & Algorithms · mid

Binary Search and Explicit Boundaries

Write binary search from an invariant: half-open [lo, hi), lower_bound traced step by step, and the loop and overflow bugs it prevents.

~7 min readread →
read ✓Data Structures & Algorithms · hard

Dynamic Programming and State Definition

Define the DP state as one sentence before any table: House Robber from 4.3 million calls to 32, coin loop order and an LCS walkthrough.

~7 min readread →
read ✓Data Structures & Algorithms · hard

Graph DFS States and Cycle Detection

Why directed cycle detection needs three DFS states, how to return the actual cycle, and an iterative version that avoids RecursionError.

~6 min readread →
read ✓Data Structures & Algorithms · easy

Hash Maps for Frequency and Membership Problems

Use hash maps to count and look up in O(1): Two Sum's lookup order, anagram keys, the JavaScript constructor trap and consecutive runs.

~6 min readread →
read ✓Data Structures & Algorithms · mid

Heaps for Top-K and Incremental Selection

Keep the k largest items with a size-k min-heap: a traced stream, timings against sorting, heapq tie-breaking and K Closest Points.

~7 min readread →
read ✓Data Structures & Algorithms · mid

Linked List Cycles and Fast-Slow Pointers

Floyd's tortoise and hare in O(1) space: why fast meets slow, the null check order, finding the cycle's entry and the duplicate-number twist.

~7 min readread →
read ✓Data Structures & Algorithms · mid

Linked List Reversal and Pointer Ownership

Reverse a linked list by tracking who keeps each node reachable: a traced JavaScript loop, the lost-tail bug, sublists and palindrome checks.

~6 min readread →
read ✓Data Structures & Algorithms · mid

Monotonic Stacks and Nearest Greater Elements

Find the next warmer day, next greater element or widest rectangle in O(n) with a monotonic stack, traced on Daily Temperatures.

~7 min readread →
read ✓Data Structures & Algorithms · easy

Prefix Sums for Repeated Range Queries

Answer range-sum queries in O(1) after an O(n) pass: the prefix[0] = 0 convention, counting subarrays that sum to k, 2D grids and products.

~6 min readread →
read ✓Data Structures & Algorithms · easy

Sliding Windows and Validity Invariants

Solve contiguous subarray and substring problems in O(n): state what makes a window valid, then expand right and shrink left to keep it so.

~6 min readread →
read ✓Data Structures & Algorithms · easy

Algorithm Space Complexity and Auxiliary Storage

Count the memory an algorithm adds: input vs output vs auxiliary, recursion depth as space, hidden slice copies, all measured with tracemalloc.

~6 min readread →
read ✓Data Structures & Algorithms · hard

Topological Sorting and Dependency Order

Order build steps or courses so dependencies run first: Kahn's algorithm traced, cycle reporting, isolated nodes and the minimum-semesters twist.

~6 min readread →
read ✓Data Structures & Algorithms · mid

Tree Traversals and Information Flow

Pick preorder, inorder or postorder by asking which way information flows: bounds passed down, heights returned up, sorted order from BSTs.

~7 min readread →
read ✓Data Structures & Algorithms · easy

Two Pointers and Monotonic Search Decisions

Two pointers work when each move rules out answers you can prove are worse: sorted pair sums, Container With Most Water, 3Sum and palindromes.

~7 min readread →
read ✓Data Structures & Algorithms · hard

Union-Find for Connectivity and Components

Track merging groups with union-find: parent pointers, union by size and path compression measured, cycle detection and Number of Islands.

~7 min readread →
read ✓Git & CI/CD · mid

Git Bisect and Reproducible Regression Checks

Find the commit that broke a test with git bisect run, why unbuildable commits need exit 125, and how flaky checks blame the wrong commit.

~6 min readread →
read ✓Git & CI/CD · mid

CI Build Once and Promote the Same Artifact

Rebuilding for each environment means production runs bytes nobody tested. Promote one artifact by digest and inject config at deploy time.

~6 min readread →
read ✓Git & CI/CD · hard

CI Canary Releases and Decision Metrics

A canary is only as good as its pass/fail rule. Pick metrics, compare against a live baseline and wait for enough traffic before you promote.

~6 min readread →
read ✓Git & CI/CD · easy

Git Cherry-Pick and Patch-Based Backports

Backport a fix to a release branch with git cherry-pick -x, handle the conflict when it depends on an earlier commit, and spot duplicate patches.

~6 min readread →
read ✓Git & CI/CD · mid

CI Required Checks and Meaningful Validation

A green required check can hide a failed test. How pipes, skipped jobs and path filters fool branch protection, and how one gate job fixes it.

~6 min readread →
read ✓Git & CI/CD · mid

Git Atomic Commits and Reviewable Changes

An atomic commit does one thing and still builds. Split mixed edits with git add -p, fold follow-up fixes in with --fixup, and revert precisely.

~6 min readread →
read ✓Git & CI/CD · easy

Git Conflict Resolution and Combined Intent

Resolve a Git merge conflict by working out what each side meant. Read the base with zdiff3, avoid the keep-both trap and test the combined rule.

~6 min readread →
read ✓Git & CI/CD · hard

CI Feature Flags and Lifecycle Ownership

Feature flags let you merge unfinished work and roll out slowly. Bucket users deterministically, give each flag an owner and expire it in CI.

~7 min readread →
read ✓Git & CI/CD · mid

Git Ignore Rules and Already Tracked Files

A tracked file stays tracked after you add it to .gitignore. Untrack it with git rm --cached and warn teammates, whose pull deletes it.

~6 min readread →
read ✓Git & CI/CD · easy

Git Merge Versus Rebase and Shared History

Merge joins histories; rebase rewrites your commits onto a new base. When to use each, and how a background fetch defeats --force-with-lease.

~6 min readread →
read ✓Git & CI/CD · mid

CI Caches Versus Reproducible Build Inputs

A CI cache should make builds faster, never different. Key it on every input, cache ~/.npm rather than node_modules, and use restore-keys warily.

~6 min readread →
read ✓Git & CI/CD · easy

Git Reflog and Recovering Lost References

Undo a bad reset --hard, restore a deleted branch or a dropped stash with git reflog and git fsck, and learn which lost work Git can't recover.

~6 min readread →
read ✓Git & CI/CD · hard

CI Release Versions and Artifact Traceability

Derive release versions from annotated Git tags, stamp them into every artifact, and fix the shallow-clone CI failure that breaks git describe.

~6 min readread →
read ✓Git & CI/CD · easy

Git Revert Versus Reset for Undoing Changes

Reset moves a branch back; revert adds a commit that undoes one. Which is safe when, and the merge-revert trap that drops work on re-merge.

~6 min readread →
read ✓Git & CI/CD · hard

CI Rollbacks and Data Compatibility

Rolling back code is easy; rolling back data isn't. Why a column rename breaks the last release, and how expand and contract keeps rollback safe.

~6 min readread →
read ✓Git & CI/CD · mid

CI Secrets and Untrusted Contributions

Fork pull requests run code you didn't write. How GitHub Actions withholds secrets, and how pull_request_target and script injection leak them.

~6 min readread →
read ✓Git & CI/CD · mid

Git Stash and Temporary Work Ownership

git stash is fine for five minutes and risky for five days: what it skips, why pop can leave a mess, and when a branch or worktree is better.

~6 min readread →
read ✓Git & CI/CD · easy

Git Working Tree, Index and Commit Snapshots

Git keeps three copies of each file: working tree, index and HEAD. Why a staged file can still show as modified, and what a commit really stores.

~6 min readread →
read ✓HTML & CSS · hard

HTML Data Tables and Header Relationships

How th, scope, caption and headers/id tell a screen reader which headers describe a cell, with a two-level pricing table worked through.

~7 min readread →
read ✓HTML & CSS · easy

HTML Buttons Versus Links for Actions

Links go somewhere and buttons do something. What each element gives you for free, and what breaks when a div or an a tag fakes the other.

~6 min readread →
read ✓HTML & CSS · mid

CSS Container Queries for Reusable Components

Build a card that switches layout based on the space it's given, not the viewport: container-type, named containers, cqi units and the gotchas.

~6 min readread →
read ✓HTML & CSS · easy

CSS Box Sizing and Predictable Dimensions

Why width: 300px can render 342px wide, how border-box changes the arithmetic, and the global reset most projects start with, with numbers.

~5 min readread →
read ✓HTML & CSS · hard

CSS Custom Properties and Theme Boundaries

How CSS variables inherit, when var() resolves, why bad values fail silently, and how to scope theme tokens so components can override them.

~5 min readread →
read ✓HTML & CSS · mid

CSS Flex Items and Unexpected Overflow

Why a flex item holding a long URL or code block won't shrink, what min-width: auto computes, and when min-width: 0 or minmax(0, 1fr) fixes it.

~6 min readread →
read ✓HTML & CSS · mid

CSS Focus Visibility and Keyboard Navigation

Why outline: none strands keyboard users, how :focus-visible decides when to show a ring, and focus styles that hold up on any background.

~6 min readread →
read ✓HTML & CSS · easy

HTML Form Labels and Accessible Names

How label, for/id, aria-labelledby and aria-describedby give each field a name and a hint, and why placeholder text can't stand in for a label.

~6 min readread →
read ✓HTML & CSS · mid

CSS Grid Tracks and Minmax Sizing

How fr shares free space, what minmax() and auto mean for a track, and the math behind repeat(auto-fill, minmax(220px, 1fr)) at real widths.

~5 min readread →
read ✓HTML & CSS · easy

HTML Headings and Document Navigation

How screen reader users jump between headings, why levels should follow structure rather than font size, and how to fix skipped levels.

~6 min readread →
read ✓HTML & CSS · easy

HTML Alt Text Based on Image Purpose

Writing alt text by asking what the image does on the page: informative, functional, decorative or complex, with real before-and-after examples.

~6 min readread →
read ✓HTML & CSS · hard

HTML Image Loading and Page Priorities

When loading="lazy" helps and when it delays your LCP image, how fetchpriority and preload change the queue, and why width and height matter.

~6 min readread →
read ✓HTML & CSS · mid

CSS Positioning and Containing Blocks

What top: 0 is measured from for each position value, how ancestors become containing blocks, and why transform breaks position: fixed.

~6 min readread →
read ✓HTML & CSS · mid

HTML Responsive Images and Source Selection

How browsers pick a file from srcset using sizes and pixel density, when to use picture, and the math for a phone, a tablet and a laptop.

~6 min readread →
read ✓HTML & CSS · mid

CSS Responsive Units and Content Constraints

When to use px, rem, em, %, ch, vw and dvh, how clamp() builds fluid type that still zooms, and why 100vh breaks on phones, with real numbers.

~6 min readread →
read ✓HTML & CSS · easy

HTML Landmarks and Meaningful Page Structure

How header, nav, main, aside, footer and labelled sections become landmarks that screen reader users jump between, with a div-soup page rebuilt.

~6 min readread →
read ✓HTML & CSS · mid

CSS Z-Index and Stacking Contexts

Why z-index: 9999 can still sit under a z-index: 10 header, which properties create stacking contexts, and how to debug and fix layering bugs.

~6 min readread →
read ✓Java · easy

Java ArrayList Capacity and Performance

How ArrayList grows its backing array by 1.5x, why add is amortized O(1), and when ensureCapacity or a different list actually helps.

~8 min readread →
read ✓Java · mid

Java Comparators and Ordered Collections

Why TreeSet and TreeMap drop elements when a Comparator disagrees with equals, and how to write comparators that obey the full contract.

~6 min readread →
read ✓Java · hard

Java CompletableFuture Error Composition

How exceptions travel through CompletableFuture chains, when to use exceptionally, handle or whenComplete, and why causes arrive wrapped.

~7 min readread →
read ✓Java · mid

Java Exceptions and Recovery Boundaries

Checked vs unchecked exceptions in Java, where to catch, when to wrap with a cause, and how to avoid swallowing failures at the wrong layer.

~6 min readread →
read ✓Java · hard

Java Executors and Task Lifecycle

How shutdown, shutdownNow and awaitTermination differ in ExecutorService, and the safe pattern for stopping thread pools without losing work.

~6 min readread →
read ✓Java · hard

Java Garbage Collection and Retained Objects

How Java memory leaks happen despite garbage collection: GC roots, reachability, retained size, and finding the reference chain in a heap dump.

~7 min readread →
read ✓Java · easy

Java HashMap Collisions and Key Quality

How HashMap works internally: hash spreading, bucket index, collisions, load factor resizing and the Java 8 switch from chains to trees.

~7 min readread →
read ✓Java · easy

Java Immutable Objects and Defensive Copies

How to make a class immutable in Java: final fields, no setters, defensive copies of mutable inputs and outputs, and safe publication.

~6 min readread →
read ✓Java · hard

Java Time Types and Zone-Aware Decisions

When to use Instant, LocalDateTime, ZonedDateTime and OffsetDateTime, and how daylight saving gaps and overlaps break naive date code.

~6 min readread →
read ✓Java · mid

Java Optional as an Absence Contract

When to return Optional in Java, why get and isPresent checks miss the point, and why Optional fields, parameters and collections are a smell.

~6 min readread →
read ✓Java · easy

Java Records and Shallow Immutability

What Java records generate, why they are only shallowly immutable, how compact constructors copy and validate, and where records do not fit.

~6 min readread →
read ✓Java · mid

Java Streams and Lazy Pipelines

Why Java stream intermediate operations do nothing until a terminal operation runs, how elements flow one by one, and where laziness bites.

~6 min readread →
read ✓Java · mid

Java Stream Reuse and Collection Ownership

Why reusing a Java stream throws IllegalStateException, how to share data with a Supplier or a collection, and what toList returns.

~6 min readread →
read ✓Java · easy

Java String Equality and Identity

Java String equals vs ==: why == compares references, how the string pool and compile-time constants make it seem to work, and safe comparisons.

~6 min readread →
read ✓Java · mid

Java Thread Visibility and Happens-Before

Why one Java thread may never see another's write, what volatile guarantees, and how happens-before rules make publication safe.

~7 min readread →
read ✓Java · mid

Java Try-With-Resources and Cleanup

How try-with-resources closes resources in reverse order, keeps the primary exception with suppressed close failures, and beats finally.

~6 min readread →
read ✓Java · hard

Java Virtual Threads and Blocking Workloads

When Java 21 virtual threads help, why they do not speed up CPU-bound work, and how pinning, pooling and resource limits trip teams up.

~7 min readread →
read ✓JavaScript · mid

JavaScript Abort Signals and Request Ownership

Learn AbortController step by step: cancel fetch, prevent stale search results, combine cancellation with timeouts and handle errors correctly.

~9 min readread →
read ✓JavaScript · easy

JavaScript Array Copies and Shared Objects

Why a spread or slice copy of a JavaScript array still shares its nested objects, and how to pick shallow, structured or targeted copies.

~2 min readread →
read ✓Kubernetes · mid

Kubernetes Autoscaling and Meaningful Metrics

Pick the metric your autoscaler follows: CPU versus queue backlog, the HPA replica formula, and capping replicas at what the database can take.

~7 min readread →
read ✓Kubernetes · easy

Kubernetes ConfigMaps Versus Secrets

ConfigMap or Secret? Why base64 isn't encryption, what actually protects a Secret, and how env vars and mounted files behave on update.

~6 min readread →
read ✓Kubernetes · mid

Kubernetes CronJobs and Overlapping Runs

What happens when a CronJob run outlasts its schedule: Allow, Forbid and Replace, startingDeadlineSeconds, and why the job must be idempotent.

~6 min readread →
read ✓Kubernetes · easy

Kubernetes Deployments and Rolling Updates

How a Deployment rolls out a new image: ReplicaSets, maxSurge and maxUnavailable arithmetic, readiness gating, progress deadlines and rollback.

~6 min readread →
read ✓Kubernetes · mid

Kubernetes Jobs and Repeatable Batch Work

How Kubernetes Jobs retry failed Pods: backoffLimit, restartPolicy, deadlines, podFailurePolicy for exit codes, and making each run safe to repeat.

~6 min readread →
read ✓Kubernetes · mid

Kubernetes Namespaces and Isolation Limits

What a namespace scopes (names, RBAC, quotas, policies) and what it leaves open: network traffic, nodes, cluster-scoped objects and DNS.

~6 min readread →
read ✓Kubernetes · mid

Kubernetes Persistent Volumes and Claims

How PVCs bind to PersistentVolumes, why WaitForFirstConsumer matters, what access modes really mean, and how reclaim policy loses data.

~6 min readread →
read ✓Kubernetes · hard

Kubernetes Disruption Budgets and Maintenance

How PodDisruptionBudgets gate evictions during drains and upgrades, minAvailable vs maxUnavailable maths, and budgets that block drains.

~6 min readread →
read ✓Kubernetes · mid

Kubernetes RBAC and Least-Privilege Access

Build a least-privilege Role for a CI deployer, verify it with kubectl auth can-i, and spot grants like pods/exec that quietly escalate.

~6 min readread →
read ✓Kubernetes · easy

Kubernetes Requests, Limits and Scheduling

How CPU and memory requests drive scheduling, what limits enforce (throttling vs OOMKill), how QoS classes form, and how to choose numbers.

~6 min readread →
read ✓Kubernetes · easy

Kubernetes Service Selectors and Endpoints

How a Service selector becomes EndpointSlices, why a Service with no endpoints refuses connections, and how to debug label and port mismatches.

~6 min readread →
read ✓Microservices · hard

Microservice Configuration and Safe Rollouts

Treat config changes like deploys: validate before applying, roll out by stable user buckets or by instance, and keep a fast rollback.

~7 min readread →
read ✓Microservices · easy

Microservice Consumers and Duplicate Events

Why at-least-once delivery hands a consumer the same event twice, and how a processed-message table in one transaction stops a double credit.

~6 min readread →
read ✓Microservices · mid

Microservice Deadlines Across Call Chains

Why per-hop timeouts keep services working after the client has left, and how passing a remaining-time budget down the chain stops it.

~6 min readread →
read ✓Microservices · hard

Microservice Tracing and Request Causality

How trace and span ids travel in the W3C traceparent header, why a queue hop often splits a trace in two, and how sampling shapes what you see.

~6 min readread →
read ✓Microservices · mid

Microservice Event Ordering and Partition Keys

Why one order's events arrive out of sequence without a partition key, what a key does and doesn't guarantee, and how versions catch the rest.

~6 min readread →
read ✓Microservices · mid

Microservice Retry Budgets and Amplification

How three layers of retries turn one failing request into 64 database calls, and how a 10% retry budget caps extra load during outages.

~6 min readread →
read ✓Microservices · mid

Microservice Sagas and Compensation Limits

Running an order saga across inventory and payments, ordering steps around the pivot, and what compensations can't undo: emails, fees, reads.

~6 min readread →
read ✓Microservices · mid

Microservice Discovery and Changing Endpoints

How callers find instances whose addresses keep changing (registries, TTLs, caches, DNS) and why a crashed instance still gets traffic.

~6 min readread →
read ✓MongoDB · mid

MongoDB Aggregation Pipeline Stage Order

Why $match before $group can change your answer, what the MongoDB optimizer reorders for you, and how to order stages for speed safely.

~6 min readread →
read ✓MongoDB · hard

MongoDB ObjectId and Identifier Semantics

What the 12 bytes of an ObjectId contain, why its timestamp is not a reliable clock, and when to choose your own _id in MongoDB.

~6 min readread →
read ✓MongoDB · easy

MongoDB Compound Indexes and Query Order

How field order in a MongoDB compound index decides which queries it serves, with the equality, sort, range rule worked through step by step.

~6 min readread →
read ✓MongoDB · mid

MongoDB Single-Document Atomicity and Updates

Why one MongoDB update is all-or-nothing for a document, how conditional updates stop lost writes, and where single-document atomicity ends.

~5 min readread →
read ✓MongoDB · easy

MongoDB Embedding Versus Referencing

How to decide whether related MongoDB data goes inside one document or in its own collection, based on access patterns, growth and ownership.

~6 min readread →
read ✓MongoDB · hard

MongoDB Explain Plans and Examined Documents

How to read MongoDB explain output: the plan stages, keys and documents examined versus returned, and what each pattern tells you to fix.

~6 min readread →
read ✓MongoDB · mid

MongoDB Lookup and Relationship Cost

What $lookup really does per input document, why an index on the foreign field matters, and when to reshape data instead of joining.

~5 min readread →
read ✓MongoDB · easy

MongoDB Missing Fields Versus Null

Why { field: null } in MongoDB also matches documents without the field, and how $exists and $type let you tell missing and null apart.

~5 min readread →
read ✓MongoDB · easy

MongoDB Multikey Indexes for Array Fields

How MongoDB indexes every array element, why $elemMatch matters for arrays of subdocuments, and the parallel-array limit on compound indexes.

~5 min readread →
read ✓MongoDB · mid

MongoDB Partial Indexes and Subset Queries

How MongoDB partial indexes shrink an index to the documents you query, when the planner can use them, and how they give conditional uniqueness.

~5 min readread →
read ✓MongoDB · mid

MongoDB Replica Sets and Primary Elections

How a MongoDB replica set notices a dead primary, elects a new one in seconds, and what your app sees: errors, retries and rolled-back writes.

~5 min readread →
read ✓MongoDB · hard

MongoDB Shard Keys and Workload Distribution

How to choose a MongoDB shard key with enough cardinality, even writes and targeted reads, and what to do when the first choice turns out wrong.

~6 min readread →
read ✓MongoDB · mid

MongoDB Transactions and Data Modeling

When a MongoDB multi-document transaction is the right tool, what it costs, how to retry it correctly, and when a better model removes the need.

~5 min readread →
read ✓MongoDB · hard

MongoDB TTL Indexes and Eventual Expiration

How MongoDB's TTL monitor deletes expired documents, why they can linger past their deadline, and how to filter, tune and size expiry safely.

~5 min readread →
read ✓MongoDB · mid

MongoDB Unwind and Expanded Results

How $unwind turns one MongoDB document into one per array element, why that inflates sums and counts, and how to avoid double counting.

~6 min readread →
read ✓MongoDB · mid

MongoDB Write Concern and Acknowledgement

What w: 1, w: "majority" and j: true actually promise in MongoDB, what a wtimeout error means, and how to pick a write concern per operation.

~5 min readread →
read ✓Networking · mid

HTTP Connection Reuse and Latency

Measure what keep-alive saves, size a client connection pool with Little's law, and retry safely when a pooled socket was closed under you.

~6 min readread →
read ✓Networking · mid

CORS and Browser Response Access

CORS decides whether a page may read a cross-origin response, not whether it is sent. A browser test shows a blocked POST still saved.

~6 min readread →
read ✓Networking · easy

DNS Resolution and Cached Answers

Follow one DNS lookup from your laptop to the authoritative server with dig, and see why two users can get different answers after a move.

~6 min readread →
read ✓Networking · mid

HTTP ETags and Conditional Requests

Use ETags for cheap 304 revalidation and to stop lost updates with If-Match, shown with curl against a small server that two editors share.

~6 min readread →
read ✓Networking · mid

HTTP Cache-Control and Response Freshness

Who may store a response, how long it stays fresh and when it must be revalidated, shown with a toy CDN that leaks one user's page to another.

~6 min readread →
read ✓Networking · mid

HTTP Cookies, Scope and Browser Delivery

How Domain, Path, Secure, SameSite and expiry decide which requests carry a cookie, with curl's cookie jar showing each rule in action.

~6 min readread →
read ✓Networking · easy

HTTP Methods, Safety and Idempotence

Safe and idempotent HTTP methods explained by sending POST, PUT, PATCH and DELETE twice to a real server, then making POST retries safe.

~6 min readread →
read ✓Networking · mid

HTTP Status Codes and Client Decisions

Read HTTP status codes as instructions: retry, fix the request, re-authenticate or check first, with a client decision function and its output.

~7 min readread →
read ✓Networking · hard

HTTP Multiplexing and Transport Trade-Offs

HTTP/2 removes HTTP-level head-of-line blocking, but TCP's remains. See both in Node and curl, then compare what HTTP/3 over QUIC changes.

~6 min readread →
read ✓Networking · hard

Network Latency Versus Bandwidth

Why a gigabit connection doesn't make chatty APIs fast: count round trips, compare them with transfer time, and fix whichever term dominates.

~6 min readread →
read ✓Networking · hard

Network Debugging Along the Request Path

Find the first failing step in a request (DNS, TCP, TLS, HTTP or the app) with curl timings, dig, nc and openssl, using six real failures.

~6 min readread →
read ✓Networking · mid

HTTP Preflight Requests and Allowed Operations

What makes a browser send an OPTIONS preflight, how the server's answer gates the real request, and five preflights traced in a real browser.

~6 min readread →
read ✓Networking · mid

Reverse Proxies and Trusted Forwarded Headers

Behind a reverse proxy your app sees the wrong scheme and client IP. Learn to read X-Forwarded-* safely, with a spoofing test you can run.

~6 min readread →
read ✓Networking · easy

TCP Byte Streams and Message Framing

Why three socket writes can arrive as one read and one write as seventeen, and how to frame messages with delimiters or length prefixes.

~6 min readread →
read ✓Networking · hard

Server-Sent Events and One-Way Updates

How Server-Sent Events stream updates over plain HTTP, how EventSource resumes with Last-Event-ID after a drop, and what proxies do to streams.

~6 min readread →
read ✓Networking · easy

TCP Connections and the Handshake

What SYN, SYN-ACK and ACK agree on, why the kernel finishes the handshake before your app runs, and how refused differs from timed out.

~6 min readread →
read ✓Networking · mid

Network Timeouts and Operation Deadlines

Connect, first-byte, idle and total timeouts catch different failures. See each one fire against a stalling server, then budget retries sensibly.

~6 min readread →
read ✓Networking · easy

TLS Encryption and Server Identity

Why encryption without a hostname check protects nothing, what a client verifies in a certificate, and the right fix for each TLS error.

~6 min readread →
read ✓Networking · easy

UDP Delivery and Application Responsibilities

What UDP gives up compared with TCP, shown with real Node experiments, and the sequencing, pacing and retry work your application takes on.

~6 min readread →
read ✓Networking · hard

WebSockets and Long-Lived Connection Ownership

The WebSocket lifecycle from the 101 handshake to heartbeats, close codes and resuming after a drop, plus which server owns each connection.

~7 min readread →
read ✓Node.js · mid

Node.js AsyncLocalStorage for Request Context

Use AsyncLocalStorage to keep a request ID in every log line, see why a module-level variable mixes requests, and find where context gets lost.

~7 min readread →
read ✓Node.js · easy

Node.js Blocking Work and Request Latency

Why a 170 ms synchronous loop in one Node.js request delays every other request, how to measure loop delay, and when to chunk or use workers.

~6 min readread →
read ✓Node.js · mid

Node.js Request Body Validation and Limits

Read a JSON request body in Node.js with a byte limit that also catches chunked uploads, then validate its shape and return 413, 415, 400 or 422.

~6 min readread →
read ✓Node.js · easy

Node.js Buffers and Text Encoding Boundaries

Why decoding each chunk with toString() corrupts non-ASCII text, how StringDecoder fixes it, and when Node.js bytes must never become strings.

~6 min readread →
read ✓Node.js · mid

Node.js Child Processes and Argument Safety

How a filename becomes shell injection with exec, why execFile and spawn with argument arrays avoid it, and the -- trick for argument injection.

~6 min readread →
read ✓Node.js · hard

Node.js Database Pools and Concurrency

Size a Node.js database pool from the database's capacity, see why a pool of 100 only moves the queue, and find the leak that hangs it.

~6 min readread →
read ✓Node.js · mid

Node.js Async Errors and Operation Boundaries

Where async errors escape try/catch in Node.js, why a floating promise kills the process, and how to wrap causes and catch at one boundary.

~6 min readread →
read ✓Node.js · hard

Node.js File Paths and Traversal Prevention

Why path.join doesn't stop ../ traversal, how a startsWith check and a symlink both leak files, and a Node.js containment check that holds up.

~6 min readread →
read ✓Node.js · hard

Node.js Health Checks and Service Readiness

Separate liveness from readiness in Node.js, bound dependency checks with timeouts and caching, and avoid probes that restart healthy pods.

~6 min readread →
read ✓Node.js · mid

Node.js HTTP Timeouts and Resource Limits

Node's HTTP server and fetch timeout defaults, why headersTimeout fired after 30 seconds instead of 1, and how to set deadlines on both sides.

~6 min readread →
read ✓Node.js · easy

Node.js ESM and CommonJS Boundaries

How Node.js decides whether a file is ESM or CommonJS, why ESM imports need file extensions, and what require(esm) changes in Node 22 and later.

~6 min readread →
read ✓Node.js · easy

Node.js Package Exports and Public APIs

Define a Node.js package's public API with the exports field: subpaths, import and require conditions, blocked deep imports and dual builds.

~6 min readread →
read ✓Node.js · easy

Node.js Pipeline and Stream Error Ownership

Why .pipe() leaks the source when a destination fails, what pipeline() destroys for you, and what a client sees when an export breaks halfway.

~6 min readread →
read ✓Node.js · easy

Node.js Streams and Backpressure

What write() returning false means, how ignoring it buffered 193 MB for one slow client, and why awaiting drain alone hangs on a disconnect.

~6 min readread →
read ✓Node.js · hard

Node.js Test Isolation and Async Completion

Why an unawaited assert.rejects passes, how one unclosed server hung a test file, and node:test patterns that keep each test's state its own.

~7 min readread →
read ✓Node.js · mid

Node.js Timers and Scheduling Guarantees

setTimeout promises a minimum delay, not a time. Measured drift, skipped interval ticks, and how to build a countdown that stays correct.

~7 min readread →
read ✓Node.js · mid

Node.js Worker Threads and CPU Parallelism

On Node 22 a worker cut main-thread lag from 455 ms to 1 ms, yet a new worker per tiny task was 550x slower. Build a bounded pool instead.

~7 min readread →
read ✓Operating Systems · mid

Condition Variables and Predicate-Based Waiting

Why a condition variable wait sits in a while loop under the lock, with Python runs of a stolen wakeup, a lost notify and a notify() deadlock.

~6 min readread →
read ✓Operating Systems · easy

Context Switching and Scheduling Overhead

What a context switch saves and loses, voluntary vs involuntary switches, a 3.5 µs pipe ping-pong on an M1, and the real cost of 512 threads.

~6 min readread →
read ✓Operating Systems · easy

CPU Scheduling and Response-Time Goals

FIFO, SJF, STCF and round robin simulated with real numbers, the turnaround vs response trade-off, and what an M1's efficiency cores add.

~7 min readread →
read ✓Operating Systems · mid

Deadlock Conditions and Lock Ordering

Reproduce a two-account deadlock in Python, map it to the four Coffman conditions, and fix it with lock ordering, timeouts or a different design.

~6 min readread →
read ✓Operating Systems · mid

File Descriptors and Resource Exhaustion

What a file descriptor points to, which limits apply, and a real EMFILE reproduced in a throwaway process, plus how to find the leak with lsof.

~6 min readread →
read ✓Operating Systems · hard

Filesystem Writes, Buffers and Durability

What write, fsync and F_FULLFSYNC really promise, measured on an M1 (2 µs, 25 µs, 3.8 ms), plus atomic file replacement and group commit.

~6 min readread →
read ✓Operating Systems · hard

Interrupts and Device Completion Notifications

From a NIC interrupt to the thread that reads the data: top halves, deferred work, and a polling vs blocking test showing the CPU-latency trade.

~7 min readread →
read ✓Operating Systems · mid

Mutexes Versus Semaphores and Resource Ownership

A mutex has an owner, a semaphore counts permits. Real Python and pthread runs show why that matters for releasing, over-release and debugging.

~6 min readread →
read ✓Operating Systems · hard

Operating-System Page Cache and I/O Measurements

Random 4 KiB reads took 189 µs cold and 1.6 µs warm on an M1. How the page cache works, how to benchmark around it, and when to bypass it.

~7 min readread →
read ✓Operating Systems · easy

Paging, Page Faults and Memory Access

Minor, major and invalid page faults, with real counts: 4,096 faults for 64 MiB on an M1, and a cold mmap read 34 times slower than warm.

~6 min readread →
read ✓Operating Systems · hard

Priority Inversion and Lock Ownership

How a medium-priority task blocks an urgent one via a lock it never touches, simulated tick by tick, plus priority inheritance and Pathfinder.

~7 min readread →
read ✓Operating Systems · easy

Processes Versus Threads and Shared State

What a process owns, what its threads share, and what that costs: macOS runs of thread vs fork vs spawn, and a segfault that kills a process.

~7 min readread →
read ✓Operating Systems · mid

Producer-Consumer Queues and Backpressure

Unbounded, blocking and dropping queues measured in Python: how a bound turns overload into a policy, how to size it, and how to shut it down.

~7 min readread →
read ✓Operating Systems · mid

Race Conditions and Atomic State Transitions

Lost updates and check-then-act races, run in Node and Python: why a racy counter can pass tests, and how atomics, locks and O_EXCL fix it.

~6 min readread →
read ✓Operating Systems · mid

Stack Versus Heap Allocation and Lifetimes

Stack and heap as lifetime decisions: real addresses, stack overflows at 7,600 vs 400 frames on macOS, and a dangling pointer clang flags.

~6 min readread →
read ✓Operating Systems · mid

Starvation, Fairness and Scheduling Policy

A reader-preference lock starved a writer for 1.9 s in Python. Where starvation comes from, what fairness costs, and how schedulers bound it.

~6 min readread →
read ✓Operating Systems · easy

User Mode, Kernel Mode and Privileged Operations

How the CPU stops your code doing privileged work, what a system call costs, and why clock_gettime skips the kernel, with real M1 measurements.

~6 min readread →
read ✓Operating Systems · easy

Virtual Memory and Address-Space Isolation

Why two processes can hold different values at the same address, how page tables translate it, and why a 32 GiB mapping can cost almost nothing.

~6 min readread →
read ✓Operating Systems · mid

Working Sets and Memory Thrashing

Why throughput collapses when active memory exceeds RAM: in an LRU test, one frame fewer took faults from 2% to 100%. How to spot and fix it.

~7 min readread →
read ✓Python · mid

Python Asyncio and Blocking Functions

Why time.sleep or a sync HTTP call inside a coroutine freezes every task, how to spot it with debug mode, and when to_thread is enough.

~6 min readread →
read ✓Python · mid

Python Asyncio Tasks and Cancellation

Who owns an asyncio task: why fire-and-forget loses errors, how TaskGroup cancels siblings, and why swallowing CancelledError hangs shutdown.

~6 min readread →
read ✓Python · mid

Python Closures and Late Binding

Why lambdas created in a loop all return the last value, what a closure cell really stores, and the three clean ways to capture a value.

~5 min readread →
read ✓Python · easy

Python Shallow Copies and Nested Mutability

Assignment, shallow copy and deepcopy compared on a nested config dict, plus the [[0]*3]*3 grid bug and what deepcopy costs in practice.

~5 min readread →
read ✓Python · mid

Python Dataclasses and Mutable Fields

Why a list default fails in a dataclass, what frozen=True does and doesn't protect, and how eq and hash decide if instances can be keys.

~5 min readread →
read ✓Python · mid

Python Decorators and Function Metadata

A decorator replaces your function, so it owes callers the same return value, exceptions and metadata. functools.wraps and async cases.

~5 min readread →
read ✓Python · easy

Python Generators and Single-Pass Iteration

A generator runs nothing until the first next(): why validation fires late, how lazy pipelines pull one item at a time, and why they empty.

~5 min readread →
read ✓Python · mid

Python Hashability and Dictionary Keys

What makes a Python object usable as a dict key or set member, why defining __eq__ removes __hash__, and how a mutated key gets lost.

~5 min readread →
read ✓Python · easy

Python Identity Versus Equality

is checks for the same object and == asks the object whether values match. Small-int caching, interning, None checks and sentinels.

~5 min readread →
read ✓Python · hard

Python Imports and Side Effects

An import runs the module's top-level code once and caches it. Config read too early, circular imports, __main__ guards and importtime.

~6 min readread →
read ✓Python · easy

Python Iterators and Exhaustion

Iterables versus iterators: why map, zip, files and csv readers empty after one pass, how zip and in eat items, and how to design for it.

~5 min readread →
read ✓Python · easy

Python Mutable Defaults and Shared State

Why def f(x, items=[]) keeps growing between calls, where Python stores that list, the None-sentinel fix, and why tags or [] is subtly wrong.

~5 min readread →
read ✓Python · hard

Python Pathlib and Safe File Selection

Joining a user-supplied name onto a base Path can escape it via .., absolute paths or symlinks. Contain it with resolve() and is_relative_to.

~5 min readread →
read ✓Python · mid

Python Stable Sorting and Key Functions

How Python's stable sort keeps ties in order, multi-key sorts with tuples or two passes, reverse=True versus [::-1], and None in keys.

~5 min readread →
read ✓Python · hard

Python Test Fixtures and State Isolation

Why a test passes alone and fails in the suite: leaked module state, environment and files. Fix it with fixtures, scopes and cleanups.

~6 min readread →
read ✓React · hard

React Dialogs: Focus, Escape and Restoration

Build an accessible React modal: native dialog with showModal, focus on open, Escape to close, focus restoration and testing with keyboard only.

~7 min readread →
read ✓React · mid

React UseCallback and Captured Values

How useCallback dependencies decide which state a callback sees, why an empty array freezes stale values, and when useCallback is worth it.

~6 min readread →
read ✓React · mid

React Context Scope and Update Costs

Which components re-render when a React context value changes, why an inline value object re-renders every consumer, and how to scope providers.

~6 min readread →
read ✓React · easy

Controlled vs Uncontrolled Inputs in React

Compare controlled and uncontrolled React inputs with examples, reset behavior, checkbox handling and fixes for the uncontrolled-to-controlled warning.

~3 min readread →
read ✓React · mid

React Custom Hooks and Shared Logic

Designing React custom hooks: they share logic not state, the use prefix rule, stable return values, and documenting what callers must pass.

~6 min readread →
read ✓React · easy

React Derived Values Without Extra State

Stop syncing state with useEffect: compute filtered lists, totals and validity during render in React, and use useMemo only for real cost.

~6 min readread →
read ✓React · hard

React Error Boundaries and Recovery Scope

What React error boundaries catch and miss, where to place them so one failing widget does not blank the page, and how to reset after errors.

~6 min readread →
read ✓React · hard

React Hydration and Matching Initial Content

What causes React hydration mismatch errors: dates, random ids, window checks and bad HTML nesting, plus fixes with useId, effects and Suspense.

~6 min readread →
read ✓React · mid

React Layout Effects for DOM Measurement

useLayoutEffect vs useEffect: measure DOM size before paint to position tooltips without flicker, and know its cost and server rendering caveats.

~6 min readread →
read ✓React · easy

React List Keys and Component Identity

Why React list keys matter: how index keys attach state to the wrong row after deletes or reordering, and how to pick a stable, unique key.

~6 min readread →
read ✓React · mid

React Memo and Reference Stability

Why React.memo still re-renders: inline objects, arrow functions and children break shallow comparison, and how to keep props stable.

~6 min readread →
read ✓React · mid

React Reducers and Valid State Transitions

When to choose useReducer over useState: model status as one field, reject impossible transitions in the reducer, and test it in plain Node.

~6 min readread →
read ✓React · easy

React Refs Versus State for Mutable Values

useRef vs useState in React: refs change without re-rendering, state drives the UI. Learn which values belong where, with timer and DOM examples.

~6 min readread →
read ✓React · easy

React Resetting Forms With Component Keys

Reset a React form when the selected record changes by giving it a key: how keys control state identity and why useEffect resets go wrong.

~6 min readread →
read ✓React · easy

React State Snapshots and Event Handlers

Why setCount(count + 1) twice adds only one in React: how each render captures a state snapshot and how the update queue resolves it.

~7 min readread →
read ✓React · mid

React Transitions and Urgent Input Updates

useTransition explained: keep typing responsive by marking heavy renders as non-urgent, why input state stays urgent, and useDeferredValue.

~6 min readread →
read ✓ServiceNow · mid

ServiceNow ACLs and Record Access Decisions

How ServiceNow decides record access: table ACLs before field ACLs, the most specific match wins, and why server scripts skip the check.

~7 min readread →
read ✓ServiceNow · mid

ServiceNow GlideAggregate for Summary Queries

Count and summarise ServiceNow records in the database with GlideAggregate instead of looping over every row, and avoid its string-typed results.

~6 min readread →
read ✓ServiceNow · hard

ServiceNow Import Sets and Transform Maps

Load external data into ServiceNow without duplicates: staging tables, coalesce on a stable key, reference choice actions and safe re-runs.

~8 min readread →
read ✓ServiceNow · easy

ServiceNow Business Rule Conditions and Scope

Narrow ServiceNow business rule conditions to the transition you mean: operations, filters, changes() and changesTo(), and rules on task tables.

~7 min readread →
read ✓ServiceNow · mid

ServiceNow UI Policies and Form Behavior

How ServiceNow UI policies decide visible, mandatory and read-only: evaluation order, Reverse if false, and why overlapping policies fight.

~7 min readread →
read ✓ServiceNow · hard

ServiceNow Update Sets and Deployment Scope

Know what a ServiceNow update set carries and what it leaves behind: configuration versus data, preview problems and environment values.

~7 min readread →
read ✓Spring Boot · hard

Spring Actuator Exposure and Operational Access

Which Spring Boot Actuator endpoints to expose, how exposure differs from authorization, and how to lock down env, heapdump and health details.

~6 min readread →
read ✓Spring Boot · easy

Spring Bean Scopes and Shared Mutable State

Spring bean scopes explained: why singletons must be stateless, injecting prototype or request beans into singletons, and scoped proxies.

~6 min readread →
read ✓Spring Boot · easy

Spring Configuration Properties and Validation

Bind Spring Boot settings to typed @ConfigurationProperties records, validate them at startup, and know when @Value is still the right tool.

~6 min readread →
read ✓Spring Boot · mid

Spring Controller Advice and Error Responses

Map Spring Boot exceptions to stable HTTP errors with @RestControllerAdvice and ProblemDetail, without leaking stack traces or internals.

~6 min readread →
read ✓Spring Boot · hard

Spring HTTP Clients and Deadline Ownership

Set connect and read timeouts on Spring RestClient and WebClient, size them from a latency budget, and stop slow calls exhausting threads.

~7 min readread →
read ✓Spring Boot · mid

Spring JPA Lazy Loading and Session Boundaries

Why Hibernate throws LazyInitializationException in Spring Boot, how open-in-view hides it, and how fetch joins, entity graphs and DTOs fix it.

~6 min readread →
read ✓Spring Boot · mid

Spring JPA N-Plus-One Query Diagnosis

Detect and fix JPA N+1 selects in Spring Boot with fetch joins, @EntityGraph, batch fetching and DTO queries, then prove it with a test.

~6 min readread →
read ✓Spring Boot · hard

Spring Metrics Tags and Cardinality

Why unbounded Micrometer tags like user IDs or raw URLs blow up Prometheus, how Spring Boot templates URIs, and how to cap tag cardinality.

~6 min readread →
read ✓Spring Boot · mid

Spring JPA Optimistic Locking and Conflicts

How JPA @Version prevents lost updates in Spring Boot, what ObjectOptimisticLockingFailureException means, and when to retry or return 409.

~6 min readread →
read ✓Spring Boot · easy

Spring Profiles and Environment Differences

Use Spring Boot profiles for environment differences without hiding behaviour: profile files, @Profile beans, groups, and config precedence.

~6 min readread →
read ✓Spring Boot · mid

Spring Repository Tests and Database Fidelity

What @DataJpaTest loads, why its rollback and embedded database can hide bugs, and how to test Spring Data repositories with Testcontainers.

~6 min readread →
read ✓Spring Boot · easy

Spring REST Validation at Request Boundaries

Validate Spring Boot request bodies and parameters with @Valid and Jakarta constraints, return clear 400 errors, and avoid silent gaps.

~6 min readread →
read ✓Spring Boot · hard

Spring Startup Checks and Readiness

How Spring Boot liveness and readiness probes work on Kubernetes, what belongs in each health group, and how to warm up and shut down gracefully.

~6 min readread →
read ✓Spring Boot · mid

Spring Transaction Duration and Remote Calls

Why long @Transactional methods exhaust the Hikari pool and hold locks, and how to keep remote calls, files and email outside the transaction.

~7 min readread →
read ✓Spring Boot · mid

Spring Transactions and Proxy Invocation

Why @Transactional is ignored on self-invocation and private methods in Spring Boot, how the proxy works, and four ways to fix it.

~7 min readread →
read ✓SQL & PostgreSQL · easy

SQL Aggregation and Result Grain

Why joining two one-to-many tables before SUM inflates totals, and how to aggregate each child table at its own grain before you combine them.

~6 min readread →
read ✓SQL & PostgreSQL · mid

PostgreSQL Composite Indexes and Query Patterns

How column order in a PostgreSQL multicolumn B-tree decides which filters and sorts it serves, with real EXPLAIN plans from a million-row table.

~6 min readread →
read ✓SQL & PostgreSQL · hard

SQL Constraints as Concurrent Safety Nets

Why check-then-insert in application code double-books under concurrency, and how UNIQUE, CHECK and exclusion constraints enforce the rule.

~6 min readread →
read ✓SQL & PostgreSQL · easy

SQL Count Star Versus Count Column

COUNT(*) counts rows, COUNT(column) counts non-NULL values. See how that fixes LEFT JOIN counts and where COUNT(DISTINCT) misleads.

~6 min readread →
read ✓SQL & PostgreSQL · mid

SQL Exists for Relationship Checks

Use EXISTS when you're asking whether a related row exists: no duplicate rows, NULL-safe NOT EXISTS, and semi or anti joins in PostgreSQL plans.

~6 min readread →
read ✓SQL & PostgreSQL · mid

PostgreSQL Explain Analyze and Real Execution

Read PostgreSQL EXPLAIN ANALYZE output: estimated versus actual rows, loops, buffers, and why ANALYZE really runs your DELETE, with real plans.

~6 min readread →
read ✓SQL & PostgreSQL · easy

SQL Joins and Unexpected Row Multiplication

Predict how many rows a SQL join returns: duplicate lookup keys multiply rows, inner joins drop unmatched ones, and both can hide in one count.

~6 min readread →
read ✓SQL & PostgreSQL · mid

SQL Keyset Pagination and Stable Ordering

Why OFFSET pages get slow and drift, and how keyset pagination with a unique tiebreaker and a row comparison stays fast at any depth.

~6 min readread →
read ✓SQL & PostgreSQL · easy

SQL Left Joins and Filter Placement

A WHERE test on the right table quietly turns a LEFT JOIN into an inner join. See why, where the filter belongs, and how to spot it in a plan.

~6 min readread →
read ✓SQL & PostgreSQL · hard

PostgreSQL MVCC, Old Versions and Vacuum

How PostgreSQL UPDATE writes a new row version, why dead tuples pile up, what VACUUM reclaims, and how one idle transaction stops cleanup.

~7 min readread →
read ✓SQL & PostgreSQL · easy

SQL Null and Three-Valued Logic

NULL makes comparisons unknown, not false. See how that drops rows from WHERE, empties NOT IN and slips past CHECK constraints.

~6 min readread →
read ✓SQL & PostgreSQL · mid

PostgreSQL Partial Indexes for Focused Workloads

Index only the rows a hot query reads, such as pending jobs or active subscriptions, and learn when PostgreSQL can and can't use a partial index.

~6 min readread →
read ✓SQL & PostgreSQL · hard

SQL Parameterization and Injection Prevention

Why bind parameters stop SQL injection, what they can't parameterize (table names, ORDER BY, LIKE wildcards), and how prepared plans behave.

~7 min readread →
read ✓SQL & PostgreSQL · mid

SQL Row Number, Rank and Dense Rank

row_number, rank and dense_rank differ only when values tie. Pick the right one for top-N per group, second-highest and leaderboard queries.

~6 min readread →
read ✓SQL & PostgreSQL · mid

PostgreSQL Row Locks and Concurrent Updates

Watch two PostgreSQL sessions lose an update, then fix it with an atomic UPDATE or FOR UPDATE, and see what NOWAIT and SKIP LOCKED do.

~7 min readread →
read ✓SQL & PostgreSQL · mid

PostgreSQL Upserts and Conflict Semantics

How INSERT ... ON CONFLICT behaves in PostgreSQL: conflict targets, EXCLUDED, version guards for stale writes, batch duplicates and MERGE.

~7 min readread →
read ✓SQL & PostgreSQL · easy

SQL Window Functions Without Collapsing Rows

Window functions compute totals, running sums, LAG and moving averages next to each row. Learn PARTITION BY, frames, and the default-frame trap.

~7 min readread →
read ✓System Design · easy

System Design Cache-Aside and Stale Data

Cache-aside read and write paths, why you update the database before deleting the key, and the race that still leaves stale data until TTL.

~7 min readread →
read ✓System Design · easy

System Design CDNs and Cacheable Content

Which responses a CDN may share, how Cache-Control and the cache key decide it, and why a stray utm_source parameter can halve your hit ratio.

~6 min readread →
read ✓System Design · mid

System Design Feeds and Fanout Trade-Offs

Fan-out on write versus read for a 20-million-user feed, with simulated insert rates, a 13.7M-follower post and where a hybrid threshold goes.

~6 min readread →
read ✓System Design · mid

System Design IDs and Ordering Requirements

Snowflake IDs, UUIDv4 and UUIDv7 compared with runnable code: collision odds, 4,096 IDs per millisecond, and why clock skew breaks ordering.

~6 min readread →
read ✓System Design · mid

System Design Partitioning and Hot Keys

Choosing a partition key, why hash mod N moves 91% of keys when you add a node, how consistent hashing fixes it, and how to split a hot key.

~6 min readread →
read ✓System Design · mid

System Design Queues and Backlog Management

A minute-by-minute export queue during a month-end burst: backlog growth, drain time, age of oldest message and how poison messages eat workers.

~6 min readread →
read ✓System Design · mid

System Design Rate Limiting and Fairness

Fixed window, sliding window and token bucket limiters run on the same burst, plus who to limit, enforcing across gateways and 429 responses.

~6 min readread →
read ✓System Design · mid

System Design Replication and Read Freshness

Leader-follower replication in numbers: commit latency for sync and quorum acks, how a batch job builds 150 s of lag, and failover loss.

~6 min readread →
read ✓System Design · easy

System Design Requirements Before Components

How to spend the first minutes of a design interview: questions that pin down scope, scale and correctness, and how answers reshape the design.

~7 min readread →
read ✓System Design · hard

System Design Uploads and Safe Completion

Design file uploads as a state machine: pre-signed URLs, multipart for flaky networks, quarantine and scanning, and why uploaded isn't ready.

~7 min readread →
read ✓Software Testing · mid

Accessibility Tests Beyond Automated Scans

A hand-built modal passed axe with zero violations, then failed four keyboard and dialog checks in Playwright; a native dialog passed all five.

~7 min readread →
read ✓Software Testing · easy

Arrange, Act and Assert for Clear Tests

Split each test into arrange, act and assert so a failure names one broken behavior, shown on an order-cancellation service with node:test.

~7 min readread →
read ✓Software Testing · mid

Async Tests and Controlled Completion Order

Replace sleeps with deferred promises so an async test decides which response lands first, catching stale-result races on every run.

~7 min readread →
read ✓Software Testing · easy

Boundary-Value Tests and Off-By-One Errors

Test just below, at and just above every limit: a cart cap with a < that should be <=, plus a 50.00 threshold that floats quietly miss.

~6 min readread →
read ✓Software Testing · mid

Contract Testing Across Independent Services

Consumer-driven contracts in practice: a shipping service records what it needs from orders, and a renamed field fails before deploy.

~7 min readread →
read ✓Software Testing · mid

Fake Timers and Clock-Based Behavior

Test debounces, cooldowns and retry backoff with node:test mock timers, and avoid the Date.now and promise traps that make fake clocks lie.

~7 min readread →
read ✓Software Testing · mid

Test Fixtures and Independent State

A shared SQLite fixture makes tests pass alone and fail together; fix it with fresh state per test, commit-proof rollbacks and addCleanup.

~7 min readread →
read ✓Software Testing · mid

Flaky Tests and Root-Cause Evidence

Diagnose flaky tests with evidence: measure the failure rate, compare a test alone and in the suite, and replace sleeps that fail 23 runs in 100.

~7 min readread →
read ✓Software Testing · mid

Mocks, Stubs and Fakes: Dependency Test Choices

When to reach for a stub, a mock or a fake, shown on a password-reset service, plus a contract test that caught a fake more lenient than SQLite.

~7 min readread →
read ✓Software Testing · mid

Mutation Testing and Assertion Strength

Stryker plants small bugs in code to see if tests notice: a shipping rule with 100% line coverage scored 72.73% until boundary tests went in.

~6 min readread →
read ✓Software Testing · hard

Performance Tests and Realistic Workloads

Ramp load on a service with a 4-connection pool: throughput levels off near 190 req/s, and a fixed 300 req/s arrival rate ends in 85% timeouts.

~7 min readread →
read ✓Software Testing · easy

Property-Based Testing and Useful Invariants

Property tests generate hundreds of inputs and shrink failures to tiny examples: fast-check finds JavaScript's default sort and a CSV bug fast.

~7 min readread →
read ✓Software Testing · hard

Regression Tests and Change Risk

Write a regression test that fails for the original bug, select tests from the diff, and see when an import graph misses the one that breaks.

~6 min readread →
read ✓Software Testing · hard

Security Tests for Rejected Operations

Test what each user must not do: a table-driven access matrix for an invoice API catches a missing ownership check that happy paths miss.

~7 min readread →
read ✓Software Testing · easy

Unit, Integration and End-to-End Test Boundaries

Unit, integration and end-to-end tests differ in what runs for real; four green pricing tests missed a coupon bug that one API-level test caught.

~7 min readread →
read ✓Software Testing · hard

Test Reports and Honest Coverage Claims

A green run with a skipped Stripe test and coverage that drops from 72.88% to 55.17% once test files are excluded: how to report what really ran.

~6 min readread →
read ✓Software Testing · hard

Visual Regression Tests and Stable Comparisons

Screenshot tests with Playwright: freeze the clock and viewport, and see why a 2% tolerance that hides a timestamp lets a wrong price through.

~7 min readread →
read ✓TypeScript · hard

TypeScript Branded IDs and Domain Safety

Why UserId and OrderId can both be strings yet must not be swapped, and how a branded type plus one parsing function makes TypeScript catch it.

~6 min readread →
read ✓TypeScript · hard

TypeScript Testing Public Type Contracts

How to write tests that fail when a library's types regress: @ts-expect-error for rejected calls, an exact Equal helper, and running tsc in CI.

~5 min readread →
read ✓TypeScript · mid

TypeScript Conditional Types and Distribution

How T extends U ? X : Y picks a type, why it splits unions apart member by member, and how wrapping both sides in brackets turns that off.

~6 min readread →
read ✓TypeScript · easy

TypeScript Discriminated Unions for UI State

Replace isLoading, error and data flags with one status union so impossible UI states stop compiling and each branch sees only its own fields.

~6 min readread →
read ✓TypeScript · mid

TypeScript Function Variance in Callbacks

Why a Dog handler can't stand in for an Animal handler, how strictFunctionTypes checks callbacks, and the method-syntax loophole it leaves.

~5 min readread →
read ✓TypeScript · mid

TypeScript Infer for Type Extraction

How infer pulls element, return and parameter types out of other types, why readonly arrays don't match T[], and how to parse route strings.

~5 min readread →
read ✓TypeScript · mid

TypeScript Keyof and Safe Property Access

Why indexing an object with a plain string fails (TS7053), how keyof typeof and T[K] fix it, and why Object.keys still returns string[].

~5 min readread →
read ✓TypeScript · mid

TypeScript Mapped Types and Modifiers

How { [K in keyof T]: T[K] } rebuilds a type, how ?, readonly, -? and -readonly change it, and why Partial stops one level down.

~5 min readread →
read ✓TypeScript · hard

TypeScript Type Imports and Runtime Modules

What import type removes from emitted JavaScript, why verbatimModuleSyntax makes you write it, and the crash you get when you don't.

~5 min readread →
read ✓TypeScript · easy

TypeScript Never and Exhaustive Checks

Use never to make TypeScript list every switch you forgot to update when a union grows, and choose between assertNever, satisfies and Record.

~5 min readread →
read ✓TypeScript · easy

TypeScript Optional Properties and Presence

A missing key and a key set to undefined behave differently in spreads, JSON and the in operator; exactOptionalPropertyTypes makes types match.

~5 min readread →
read ✓TypeScript · mid

TypeScript Readonly Collections and Ownership

What readonly arrays, ReadonlyMap and ReadonlySet block, why readonly is a view rather than a frozen copy, and how to share state safely.

~5 min readread →
read ✓TypeScript · easy

TypeScript Satisfies Without Losing Inference

How satisfies checks an object against a type while keeping its exact keys and values, and how it differs from an annotation and from as.

~6 min readread →
read ✓TypeScript · hard

TypeScript Null Narrowing Across Control Flow

How strictNullChecks narrows through returns, closures and filter calls, where it keeps a narrowing it shouldn't, and what to do about Map.get.

~6 min readread →
read ✓TypeScript · mid

TypeScript Tuples for Fixed Position Data

When a fixed-length array beats an object, why a returned [value, setter] pair needs a type or as const, and the push hole in tuples.

~5 min readread →
read ✓TypeScript · easy

TypeScript Unknown at API Boundaries

Why res.json() and JSON.parse return any, how typing the result as unknown forces a real check, and how to write a type guard that holds up.

~5 min readread →
read ✓System Design · hard

Frontend System Design: Build an Autocomplete

A structured walkthrough of the autocomplete design round: requirements, architecture, race-free fetching, caching, rendering, the ARIA combobox and metrics.

~7 min readread →
read ✓JavaScript · mid

Closures, Scope & the Classic setTimeout Loop

What lexical scope and closures really are, why the var + setTimeout loop prints 3 3 3, three ways to fix it, and where closures earn their keep in real code.

~6 min readread →
read ✓JavaScript · hard

The Event Loop: Microtasks vs Macrotasks

How the call stack, task queue and microtask queue fit together, where rendering happens, how async/await schedules work, and output puzzles with answers.

~7 min readread →
read ✓React · mid

useEffect Pitfalls Interviewers Love to Ask

Stale closures, missing cleanup, fetch races, Strict Mode's double run, infinite loops and effects you don't need, plus how useLayoutEffect differs in timing.

~7 min readread →
read ✓JavaScript · easy

Hoisting, the TDZ and var vs let vs const

What the engine sets up before your code runs, why var reads undefined while let throws, how the temporal dead zone works, and why const isn't immutable.

~6 min readread →
read ✓TypeScript · easy

type vs interface: When It Actually Matters

Declaration merging, extends vs intersections, what only type aliases can express, and the few differences that change behavior, with a clear rule of thumb.

~5 min readread →
read ✓React · mid

React Reconciliation & Keys: What Really Happens

Render vs commit, the diffing rules React relies on, why index keys break inputs, how a key resets state, and what Fiber and batching change about updates.

~7 min readread →
read ✓JavaScript · mid

Prototypes & Inheritance Without the Headache

How the prototype chain resolves properties, what __proto__ and prototype mean, what new and class do under the hood, and how to wire inheritance by hand.

~7 min readread →
read ✓JavaScript · mid

Implement Debounce and Throttle From Scratch

Build debounce and throttle the way interviewers expect: timelines, this and args, cancel(), leading and trailing edges, and how to test them.

~7 min readread →
read ✓TypeScript · hard

Build TypeScript's Utility Types From Scratch

Rebuild Partial, Pick, Omit, Exclude, ReturnType, Awaited and friends with mapped and conditional types, plus modifiers, key remapping and template literals.

~6 min readread →
read ✓Node.js · hard

The Node.js Event Loop Phases, Explained

What libuv does on each turn of the loop, where nextTick, promises, setImmediate and timers really run, and how to keep CPU-heavy work from blocking it.

~7 min readread →
read ✓HTML & CSS · easy

The Cascade, Specificity & the Box Model

How the browser decides which CSS rule wins (origin, @layer, specificity, order), how inheritance and box-sizing work, and why z-index can seem broken.

~7 min readread →
read ✓JavaScript · hard

Write Promise.all (and Friends) From Scratch

Implement Promise.all with native semantics, then allSettled, race, any and a concurrency-limited pool, plus the edge cases interviewers probe.

~6 min readread →

Cheat sheets

JavaScript Essentials

48 must-know facts & snippets

open & print →
TypeScript

From unknown to infer, on one page

open & print →
TypeScript Utility Types

Partial → Awaited, all of them

open & print →
React

Rendering to Server Components, on one page

open & print →
React Hooks

Every hook, one example each

open & print →
Angular

Signals to guards, standalone-first

open & print →
RxJS Operators

The 30 operators you'll actually use

open & print →
HTML & CSS

Semantics to grid, cascade to stacking

open & print →
Next.js

App Router, RSC, caching and actions

open & print →
Node.js

Event loop to streams, checked on Node 22

open & print →
Java

OOP to virtual threads, on one page

open & print →
Spring Boot

Beans to JWT and @Transactional, one page

open & print →
Python

Core Python to asyncio, on one page

open & print →
Microservices

DDD to sagas, retries and tracing

open & print →
SQL & PostgreSQL

Joins to MVCC, every query run on Postgres 16

open & print →
MongoDB

BSON to sharding, with the defaults that matter

open & print →
Go

Goroutines to generics, slices to context

open & print →
Docker

Dockerfile to Compose, layers to PID 1

open & print →
Kubernetes

Pods to Helm, plus a troubleshooting table

open & print →
Redis

Data types to Cluster slots, Redis 7.4/8

open & print →
AWS

EC2 to IAM to DR, the services that come up

open & print →
Git & CI/CD

Staging area to canary deploys, on one page

open & print →
Apache Kafka

Partitions to transactions, KRaft era

open & print →
ServiceNow

GlideRecord to update sets, on one page

open & print →
Data Structures & Algorithms

Big-O to DP, with Python templates

open & print →
System Design

Rendering to caching, plus five mini-designs

open & print →
Statistics & Data Science

Bayes to CUPED, p-values to regression

open & print →
Machine Learning

Bias-variance to boosting, metrics to leakage

open & print →
Deep Learning

Backprop to KV cache, Adam to LoRA

open & print →
AI & LLM Engineering

Tokens to agents, RAG to guardrails

open & print →
MLOps

Pipelines to PSI, registry to rollback

open & print →

Interview questions by topic

esc