every note, in one binder ✎

Developer interview notes & guides — Page 10

Focused explanations and longer guides, with worked scenarios, common mistakes and interview exercises across every chapter.

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 →
esc