Skip to content

Questions d'entretien : Software Engineer

100 vraies questions avec réponses modèles et explications pour les candidats Senior.

Voir un exemple de CV : Software Engineer

S'entraîner avec des cartes

Répétition espacée · Hunter Pass

Questions

retentiondesign

I would keep redirects on a cache-first read path and generate keys without a central bottleneck.

  • A Base62-encoded 64-bit Snowflake ID gives roughly 11-character keys; worker IDs are leased uniquely and clock rollback stops generation before it can duplicate a key.
  • Cassandra stores key, destination, owner, and expiry across 256 virtual shards, while Redis caches hot mappings with a 24-hour TTL.
  • Redirect nodes perform one Redis lookup and then a shard lookup, leaving about 20 ms for storage inside the 100 ms p99 budget.
  • Five years at 20,000 writes per second is about 3.2 trillion rows; at 100 bytes each and replication factor 3, I would budget roughly 1 PB before compaction and backups.

Pourquoi cette question est posée: The interviewer is evaluating capacity estimation, key generation, data partitioning, and a credible latency path.

designconcurrency

I would separate socket ownership from durable message processing and order messages by room.

  • Stateless WebSocket gateways hold about 50,000 connections each and publish authenticated messages to Kafka keyed by room_id.
  • Kafka gives one ordered partition per room key, and consumers persist messages to Cassandra before publishing them through Redis Streams to recipient gateways.
  • The 200 ms p99 is measured to an online recipient gateway: 30 ms for ingress, 80 ms for Kafka plus persistence, 60 ms for fan-out, and 30 ms margin.
  • Each connection has a 16 KB outbound buffer under a per-gateway 1 GB cap; on overflow a slow client gets a resync cursor and disconnects.

Pourquoi cette question est posée: A strong answer must connect connection scale, ordering scope, durable storage, and slow-client backpressure.

designproxy

I would keep file bytes in object storage and make the application own only metadata and upload coordination.

  • The API creates an S3 multipart upload and returns signed URLs for 16 MB parts, so a 5 GB file resumes from the last confirmed part.
  • PostgreSQL stores file versions, hashes, ownership, and the multipart upload ID, with a unique constraint on tenant_id plus path plus version.
  • Clients send S3's SHA-256 checksum for each part and a final manifest; S3 validates bytes before the server atomically publishes the new version.
  • Ten petabytes stays in S3 with lifecycle tiers, while change notifications use a per-user monotonic cursor so offline clients request only missed metadata.

Pourquoi cette question est posée: The interviewer is checking separation of data and control planes, resumability, metadata correctness, and storage economics.

designfeature-flags

I would evaluate flags inside each process from a versioned local snapshot.

  • A control-plane API stores each definition and an outbox row in one PostgreSQL transaction; CDC then publishes every committed version to Kafka.
  • SDKs keep an immutable in-memory map and swap the whole snapshot atomically, making each evaluation an O(1) lookup under 1 ms.
  • A streaming gRPC channel pushes versioned deltas, a gap triggers an immediate snapshot fetch, and 2-second heartbeats enforce the 5-second SLO for connected healthy SDKs.
  • If the control plane is unavailable, SDKs use the last valid snapshot and a typed hard-coded default rather than blocking application requests.

Pourquoi cette question est posée: The interviewer wants a design that meets hot-path latency without sacrificing propagation, recovery, or safe defaults.

design

I would make PostgreSQL enforce one active owner per seat and treat the hold as an expiring state.

  • A conditional UPDATE claims a free or expired seat and writes hold_id plus expires_at in one transaction, so check and reserve cannot race.
  • The seat row is the serialization point, and an index on event_id plus expires_at lets cleanup find expired holds without scanning the event.
  • A durable timer table and scheduler publish hold_id at expiry; release runs only WHERE hold_id matches and expires_at has passed, so an old timer cannot clear a newer hold.
  • The API accepts an idempotency key for 24 hours, so client retries return the original hold instead of consuming another seat.

Pourquoi cette question est posée: The interviewer is testing whether correctness is encoded atomically rather than delegated to caches or application locks.

design

I would use fan-out on write for normal accounts and fan-out on read for celebrity posts.

  • Normal posts are pushed through Kafka into per-user Cassandra feed rows capped at the newest 1,000 item IDs.
  • Accounts above 100,000 followers are marked as celebrities, and their posts stay in a separate author timeline to avoid 50 million writes per post.
  • The read service scans the paged followed-celebrity index until a heap proves the top 20 cutoff, avoiding a fixed author cap that could omit posts.
  • I budget 40 ms for timeline reads, 60 ms for merge and ranking, 60 ms for hydration, and retain 40 ms inside the 200 ms p95 target.

Pourquoi cette question est posée: The interviewer is evaluating whether the candidate recognizes skew and chooses a hybrid fan-out model with a latency budget.

queriesdesign

I would serve a compact prefix index entirely from memory and rebuild it off the request path.

  • An offline Spark job produces a weighted finite-state transducer from the 5 million phrases, including locale and popularity scores.
  • Each stateless node memory-maps the versioned index and returns the top 10 completions without a remote database call.
  • A load balancer spreads traffic across 180 nodes at roughly 5,600 QPS each; after losing 1 of 3 zones, the remaining nodes stay near 8,400 QPS under a tested 10,000-QPS ceiling.
  • A Redis overlay holds trending phrases for 5 minutes; the service merges that small set with the immutable index inside the 50 ms p99 budget.

Pourquoi cette question est posée: The interviewer is checking whether the design fits the corpus and latency target rather than defaulting to a general database.

queriesdesignmonitoring

I would use a partitioned log for ingestion and a columnar time-series store for compressed queries.

  • Kafka absorbs about 10 GB per second across 1,500 partitions, keyed by tenant and metric hash to keep average partition ingress below 7 MB/s.
  • Consumers batch 10,000 samples into ClickHouse MergeTree tables; 30 days is about 26 PB raw before compression, so replicas are partitioned by day and ordered by tenant_id, metric_id, and timestamp.
  • Materialized views pre-aggregate by service into 10-second and 5-minute buckets, so a 24-hour service chart scans thousands of rows instead of all underlying series.
  • Cardinality quotas reject tenants above 1 million active series, because unbounded labels would break both the 30-day storage budget and 10-second query SLO.

Pourquoi cette question est posée: The interviewer is evaluating throughput arithmetic, physical layout, pre-aggregation, and cardinality controls.

design

I would partition jobs by due-time bucket and let workers lease batches independently.

  • PostgreSQL partitions jobs by hour with an index on next_run_at, while 60 logical shards keep each minute's scan bounded.
  • Scheduler nodes use SELECT FOR UPDATE SKIP LOCKED to lease 1,000 due jobs for 2 minutes and publish them to Kafka.
  • Workers require an execution_id and store completion with the business effect when both share a database; external effects require an idempotency key and outbox.
  • A reconciliation scan finds jobs overdue by more than 2 minutes, and scheduling lag above 60 seconds breaches the stated precision target.

Pourquoi cette question est posée: The interviewer wants practical partitioning, lease semantics, idempotent execution, and a measurable precision guarantee.

designwebhooks

I would keep one durable sequence and one in-flight delivery per destination, including during retries.

  • Kafka ingress uses destination_id as the key across 1,000 partitions, and a Kafka Streams state store keeps each destination's ordered pending queue.
  • A dispatcher sends only the head item; 20,000 async connections sustain 200,000 per second only at measured latency near 100 ms, while 3 seconds is a cutoff, not sizing input.
  • Failure moves the head's next_attempt_at through 1-minute, 5-minute, and 30-minute delays for up to 24 hours without advancing that destination.
  • After 5 failures its circuit opens, but only that key waits in the partitioned state store, so healthy destinations on the same partition continue.

Pourquoi cette question est posée: The interviewer is checking ordering scope, retry architecture, connection limits, and tenant isolation.

database

I would split around business ownership and transactional invariants, not around technical layers.

  • Catalog owns products and prices, Inventory owns reservations, Orders owns purchase state, and Payments owns provider interactions and its ledger.
  • Each service exposes versioned gRPC commands and Kafka events, and the hard no-shared-table rule is enforced with separate PostgreSQL schemas and credentials.
  • Checkout orchestrates the workflow but never edits another service's rows; it calls ReserveInventory and AuthorizePayment using explicit request IDs.
  • Weekly release independence is tested by consumer-driven contracts in CI, while cross-service changes remain additive for at least two releases.

Pourquoi cette question est posée: The interviewer is evaluating whether boundaries follow invariants and team ownership while preserving independent deployment.

boundariesapiconcurrency

I would make upload and processing separate asynchronous resources.

  • The client uploads directly to S3 through multipart signed URLs, so the API never buffers a 500 MB body.
  • POST /jobs validates the object metadata, records a job in PostgreSQL, and returns 202 plus a job_id within the 2-second limit.
  • Kafka only wakes workers; a worker claims a 20-minute PostgreSQL lease with heartbeats and a fencing version before processing in an isolated pool.
  • GET /jobs/{id} and a completion webhook expose status, while cancellation is best-effort because a 15-minute codec step may not stop instantly.

Pourquoi cette question est posée: The interviewer wants an asynchronous contract that respects payload size, acknowledgement time, ownership, and cancellation semantics.

designresilience

I would require an idempotency key and bind it to both the caller and request payload.

  • PostgreSQL stores tenant_id, idempotency_key, request_hash, order_id, status, and response under a unique tenant-key constraint.
  • The first request creates the idempotency row and order in one transaction; a duplicate returns the stored status and response.
  • Reusing the same key with a different request hash returns 409, preventing an accidental collision from silently changing meaning.
  • Records live for 24 hours as promised, and in-progress duplicates poll the original operation rather than running order creation concurrently.

Pourquoi cette question est posée: The interviewer is checking atomicity, key scope, payload conflicts, and behavior while the first request is still running.

promises

I would keep existing versions additive and run breaking changes as an explicit migration program.

  • OpenAPI schemas reject removed fields, narrowed enums, and newly required properties in CI through a tool such as oasdiff.
  • A breaking change gets a dated version, while the old version remains on the same reliable gateway for the full 12-month window.
  • Per-client version metrics identify the remaining 10,000 integrations, and automated notices include the exact endpoint and last-use timestamp.
  • The gateway supports both versions from one canonical domain model, avoiding a separate legacy fleet that would threaten the 99.99% availability target.

Pourquoi cette question est posée: The interviewer is evaluating compatibility mechanics, migration observability, and operational support for long deprecation windows.

pagination

I would expose opaque keyset cursors over a stable unique ordering.

  • Records are ordered by created_at plus id, backed by a composite B-tree index in PostgreSQL.
  • The cursor encodes the last pair and filter hash, signed with HMAC so clients cannot alter position or reuse it with different filters.
  • Each page executes a range query with LIMIT 101, returning 100 rows and a next cursor without scanning prior pages.
  • Inserts after the cursor may appear later in the current traversal, while inserts before it wait for a new traversal; snapshot consistency would require an as-of token.

Pourquoi cette question est posée: The interviewer is testing index-aware contract design and honest consistency semantics under concurrent mutation.

schema

I would make the new field optional and preserve old event meaning for the full mixed-version period.

  • Avro schemas live in Schema Registry with FULL_TRANSITIVE compatibility, so old consumers read new data and new consumers can replay retained old data.
  • delivery_window is a nullable record with explicit default null and documented UTC semantics; absence means no promised window rather than a guessed value.
  • Producers dual-populate old and new representations for 6 months if existing fields cannot express the new concept cleanly.
  • Contract fixtures run against all 40 consumers, and removal starts only after consumer-owned version telemetry shows zero old-schema reads.

Pourquoi cette question est posée: The interviewer wants concrete compatibility rules, semantic defaults, and evidence-based retirement across many consumers.

design

I would use an orchestrated saga with explicit reservations and compensations.

  • The orchestrator persists a state machine in PostgreSQL and calls all three providers with stable operation IDs and 9-second deadlines.
  • Flight and hotel create 5-minute holds, while payment authorizes but does not capture until both holds succeed.
  • Any failed step triggers idempotent compensation, releasing holds and voiding authorization, with retries through a durable queue.
  • At 30 seconds the API returns confirmed, rejected, or pending with a booking_id; it never claims failure while compensation or a late provider response is unresolved.

Pourquoi cette question est posée: The interviewer is evaluating distributed workflow state, compensation, deadlines, and truthful client semantics without atomic cross-provider transactions.

concurrency

I would use an append-only double-entry ledger with balances derived from immutable postings.

  • PostgreSQL accepts postings only through a stored procedure with a deferred constraint trigger that verifies debits equal credits before commit.
  • Account entries are partitioned monthly and indexed by account_id plus sequence, while closed partitions move to cheaper storage after one year.
  • A balance table is updated in the same transaction for fast reads, and a nightly recomputation verifies it against immutable entries.
  • Corrections use reversing entries linked to the original, preserving the 7-year audit trail and the hard no-mutation rule.

Pourquoi cette question est posée: The interviewer is checking domain invariants, immutable modeling, read optimization, and long-term retention.

queries

I would keep recent samples in a time-partitioned columnar store and archive compressed partitions to object storage.

  • Kafka receives samples keyed by device_id, and ClickHouse batches inserts into daily MergeTree partitions ordered by device_id and timestamp.
  • Thirty hot days at 3 million samples per second require compression and replication; Delta or Parquet files in S3 hold months 2 through 24.
  • A device-hour query uses the primary ordering to scan one narrow range, while hourly min-max-avg projections serve common dashboards.
  • Late samples remain writable for 48 hours; older corrections go to a side table to avoid rewriting multi-terabyte archived partitions.

Pourquoi cette question est posée: The interviewer is evaluating storage tiering, write layout, query locality, and a policy for late data.

queries

I would store adjacency lists by user and precompute the small relationship checks needed online.

  • Cassandra rows keyed by follower_id hold sorted followee IDs, distributing 2 billion append-heavy edges without cross-node transactions.
  • A reverse table keyed by followee_id supports follower pages; both writes carry the same edge version and are repaired asynchronously.
  • A Redis set caches follows for active users, so mutual status is two SISMEMBER operations well under 100 ms.
  • Full mutual lists use intersection only for users below 100,000 edges; celebrity accounts use a precomputed mutual subset to cap memory and CPU.

Pourquoi cette question est posée: The interviewer is testing access-pattern-driven modeling, denormalization, and handling of high-degree graph skew.

Questions verrouillées

  • 21

    Model metadata for 500 million documents across 100,000 tenants, with 10,000 writes per second and tenant-folder listing below 200 ms.

  • 22

    Model inventory for 10 million SKUs and 100,000 decrements per second during a flash sale, with a hard rule that available stock never becomes negative.

  • 23

    Model 500 million threaded comments, returning 50 at a time, supporting depth up to 8, and avoiding recursive database queries on reads.

    databasequeriesrecursion
  • 24

    Choose a data model for 2 million drivers updating location every 5 seconds, with 3 km nearby-driver queries below 100 ms p95.

    queriesmodeling
  • 25

    Design an immutable audit store accepting 100,000 events per second for 7 years, with searches over the latest 5 minutes completing in 2 seconds.

    designimmutability
  • 26

    Design caching for a product catalog with 500,000 reads and 2,000 price updates per second, where prices may be stale for at most 5 seconds.

    designcaching
  • 27

    A celebrity counter receives 2 million increments per second, may be off by 1%, and must converge within 10 seconds; how do you implement it?

  • 28

    Shard an order store growing by 5 TB per year and serving 100,000 queries per second, while each merchant needs 30-day range scans.

    shardingqueries
  • 29

    Two hundred application pods serve 20,000 requests per second, but PostgreSQL allows only 2,000 connections; size the connection pools and queueing behavior.

    postgrespoolingdata-structures
  • 30

    An API request contains 100 item IDs, its dependency allows 500 QPS, and the endpoint must finish within 300 ms p95; how do you batch and limit work?

    endpointsbatchdependencies
  • 31

    Serve 1 million original images in 20 sizes at 100,000 requests per second, with cached p95 below 100 ms and no eager generation of all variants.

    caching
  • 32

    Design a global rate limiter for 5 million requests per second across 10,000 tenants, allowing at most 2% burst overshoot in each aligned 1-second window.

    designrate-limiting
  • 33

    An ingestion service receives 500,000 events per second normally and 2 million for 5-minute bursts, must not drop data, and has only 1 million events per second of downstream capacity.

    capacity
  • 34

    Partition a Kafka stream carrying 1 million account events per second, with strict per-account order, 200 partitions, and consumers that may scale to 500 instances.

    partitioningkafka
  • 35

    Deduplicate 500,000 events per second for 30 days when 0.5% are duplicates, with bounded storage and no probabilistic false positives.

    queries
  • 36

    Publish an event within 2 seconds of each of 50,000 database transactions per second, with no lost event and no distributed transaction with Kafka.

    databasetransactionsdistributed
  • 37

    Store user profiles writable in 3 regions, with writes below 150 ms, read-your-own-writes, and up to 5 seconds of staleness for other users.

  • 38

    Design a like counter accepting 5 million updates per second across 4 regions, with values converging within 2 seconds and temporary error below 1%.

    design
  • 39

    A shared queue receives 100,000 jobs per second and can surge 10x, but checkout jobs must start within 1 second while email may wait 10 minutes.

    capacitydata-structures
  • 40

    Design a delayed queue for 100 million timers per day, with 1-second precision over a 24-hour horizon and at-least-once firing.

    designdata-structures
  • 41

    A consumer group has 100 partitions, may run 500 workers, retries each message at most 5 times, and must prevent one poison message from blocking its partition.

    partitioning
  • 42

    Thirty nodes must run one compaction task that takes 2 minutes, leases expire after 10 seconds, and overlapping writes are forbidden even during a 30-second pause.

  • 43

    Structure subscription billing with 6 plans, 3 payment providers, and 12 billing rules, while adding a provider must not change plan logic.

  • 44

    Design an import service for 20 file formats where third-party parsers are untrusted, each job has a 200 MB memory limit, and adding a format cannot redeploy the core API.

    designapimemory
  • 45

    Implement price calculation with 12 discount rules, deterministic output under 5 ms, and an audit trail explaining every applied rule.

  • 46

    Model an order workflow with 15 states, 15 commands, and 40 allowed transitions, where invalid transitions must be impossible and duplicate commands are expected for 24 hours.

  • 47

    Implement 10,000 concurrent transfers per second where many target the same account, balances cannot go negative, and no update may be lost.

    concurrency
  • 48

    A search request fans out to 20 shards, has a 120 ms deadline, and needs the best 50 results; how do you handle cancellation and stragglers?

    soft-skillsestimationsharding
  • 49

    A WebSocket node holds 100,000 clients with a 4 GB memory cap; some clients read at 1 KB/s while broadcasts arrive at 100 KB/s.

    memorywebsockets
  • 50

    Design a worker pool on 64 cores for 1 million short tasks per second, with a queue cap of 100,000 and graceful shutdown within 10 seconds.

    designlifecycledata-structures
  • 51

    Five minutes after a checkout deploy, HTTP 5xx rises from 0.2% to 18% and 1,200 orders per minute are at risk; walk me through your first 15 minutes.

    deploymenthttp
  • 52

    A regional API is returning 32% timeouts for 20 minutes, but all application pods report healthy; what do you do next?

    resilienceapi
  • 53

    Kafka consumer lag jumps from 30 seconds to 45 minutes after a schema release, delaying 8 million order events; how do you respond?

    schemakafka
  • 54

    A payment dependency starts returning 40% 503s during a sale, pushing your own checkout error rate to 22%; how do you contain the incident?

    incidentsdependencies
  • 55

    At 02:00, database primary CPU reaches 100%, API errors hit 27%, and failover would lose up to 20 seconds of asynchronous writes; make the call.

    databaseapiasync
  • 56

    A bad configuration reaches all 600 pods and raises login failures to 65%; configuration propagation takes 8 minutes, while a code rollback takes 3 minutes.

    configrollback
  • 57

    A cache cluster loses half its nodes, database QPS rises from 15,000 to 90,000, and the database limit is 100,000; what do you do in the next 10 minutes?

    databasecaching
  • 58

    A certificate expires and blocks 100% of internal gRPC calls for 11 minutes; service owners are all restarting pods independently. How do you lead the response?

    grpc
  • 59

    After a Go service deploy, API p99 rises from 180 ms to 1.4 seconds while p50 stays at 70 ms and CPU is unchanged; how do you investigate?

    deploymentapi
  • 60

    A Java service's p99 grows from 250 ms to 2.2 seconds every 6 minutes after a release, with CPU dropping during each spike.

  • 61

    A PostgreSQL query that took 40 ms now takes 3.8 seconds after the table grew from 20 million to 400 million rows; what is your process?

    queriespostgresconcurrency
  • 62

    A Python worker's throughput falls from 12,000 to 3,000 jobs per minute after adding JSON validation, but CPU remains at one core on a 16-core host.

    validationthroughputpython
  • 63

    A Rust service's p99 doubles from 90 ms to 180 ms after replacing a bounded channel with an unbounded one; average queue depth looks low.

    data-structures
  • 64

    A TypeScript API's p99 rises from 120 ms to 900 ms only when responses exceed 2 MB; network bandwidth is below 40%.

    typescript
  • 65

    An Elasticsearch search p99 rises from 300 ms to 4 seconds after adding one optional filter; only 8% of requests use it.

    search
  • 66

    gRPC latency rises from 35 ms to 600 ms after enabling retries, although the downstream's own processing time remains 30 ms.

    latencygrpcconcurrency
  • 67

    A PostgreSQL-backed service scales linearly to 6,000 RPS, then throughput stops while CPU reaches 85% and lock waits reach 30% of request time; how do you unblock growth to 12,000 RPS?

    postgresthroughput
  • 68

    A Go API hits 20,000 RPS at 95% CPU; profiles show 38% in JSON encoding and 22% in memory allocation, and the target is 35,000 RPS.

    memoryapi
  • 69

    At 50,000 RPS, Redis reaches 90% single-thread CPU even though the cluster has 12 nodes; one key receives 35% of all operations.

    redisconcurrency
  • 70

    A Kafka pipeline handles 300,000 events per second but stalls at 450,000; brokers are at 55% CPU, while one of 120 partitions carries 28% of traffic.

    partitioningkafkaci-cd
  • 71

    Kubernetes scales an API from 40 to 200 pods, but throughput stays at 30,000 RPS and database connections jump from 800 to 4,000.

    databaseapikubernetes
  • 72

    A Cassandra cluster sustains 80,000 writes per second but p99 exceeds 2 seconds at 110,000; compaction backlog grows by 500 GB per hour.

    backlog
  • 73

    An AWS service meets 15,000 RPS but must handle a launch at 60,000 RPS in six weeks; DynamoDB shows one tenant consuming 45% of write capacity.

    dynamodbcapacity
  • 74

    A retry bug created 180,000 duplicate orders over 6 hours; 7,000 were already shipped. How do you repair the data and prevent recurrence?

    resilience
  • 75

    A database says 2.4 million invoices exist, but object storage contains only 2.37 million PDFs after a worker outage; how do you recover the missing 30,000?

    database
  • 76

    After a CDC outage, Elasticsearch is missing 3% of 50 million product updates and contains stale versions for another 1%; search must remain online.

    search
  • 77

    A cross-region replication bug lost 12 minutes of profile updates for 84,000 users, while newer writes already exist for 19,000 of them.

    replication
  • 78

    A ledger balance table differs from immutable entries for 0.06% of 30 million accounts after a deployment; customers can still initiate transfers.

    deploymentimmutability
  • 79

    A migration converted timestamps in 200 million rows with the wrong timezone offset, affecting 14 days of data and active customer reports.

    migrations
  • 80

    Under 8,000 concurrent requests, two buyers occasionally reserve the last inventory unit; the check and decrement are separate SQL statements.

    sqlconcurrency
  • 81

    Two workers can process the same queue message after a 30-second visibility timeout, and the job takes up to 90 seconds; duplicate emails are reaching 4%.

    concurrencydata-structurescss
  • 82

    A Go map used by 64 goroutines crashes production once every few days with concurrent map writes; reads outnumber writes 10,000 to 1.

    concurrencyzero-to-one
  • 83

    A balance transfer locks source then destination, while a refund locks destination then source; deadlocks reach 300 per minute at peak.

    locking
  • 84

    A feature flag refresh races with requests: about 0.2% of users see a mix of old and new rules within one evaluation.

    feature-flags
  • 85

    A 2-second dependency slowdown causes retries across 40 services; traffic reaches 6 times normal and 70% of calls fail in a retry storm.

    resiliencedependencies
  • 86

    An authentication service fails, and every API synchronously calls it; within 4 minutes all 1,500 application threads are blocked.

    authapiconcurrency
  • 87

    A downstream timeout is set to 5 seconds, your endpoint SLO is 800 ms, and three sequential dependencies each retry twice.

    resiliencesloendpoints
  • 88

    A popular cache key expires every hour, causing a jump from 2,000 to 80,000 database QPS for 20 seconds and repeated partial outages.

    databasecaching
  • 89

    A queue consumer retries poison messages immediately; 0.1% bad events consume 60% of worker capacity and delay valid events by 25 minutes.

    capacitydata-structures
  • 90

    Product wants a revenue feature worth an estimated $400,000 per quarter, but the owning service has caused three SEV-1 incidents and 14 hours of downtime in 90 days; what do you propose?

    estimationincidents
  • 91

    A team spends 35% of each sprint fixing flaky integration tests, while a contractual feature is due in six weeks with a $1 million penalty.

    integrationflakyagile
  • 92

    A monolith takes 55 minutes to deploy and blocks 6 teams, but production incidents are low and the next two quarters are feature-heavy; do you split it?

    incidentsmonolithdeployment
  • 93

    A database version reaches end of support in four months, migration needs six engineer-weeks, and product has committed all capacity to a launch in three months.

    databasemigrationscapacity
  • 94

    An internal library is pinned 18 major versions behind, has two critical vulnerabilities, and is used by 70 services; a direct upgrade breaks 23 of them.

    vulnerabilities
  • 95

    A mid-level engineer opens a 2,000-line payment change two days before release; review finds no idempotency handling and only happy-path tests.

    idempotency
  • 96

    A junior engineer causes a 17-minute outage with a migration that locked a 300-million-row table; how do you handle the next day?

    soft-skillsmigrations
  • 97

    Two senior reviewers disagree for a week over Kafka versus PostgreSQL outbox polling for 4,000 events per second, blocking 5 engineers.

    conflictpostgreskafka
  • 98

    Code reviews take a median of 29 hours across an 8-person team, causing three-day lead time; quality is acceptable and no reviewer owns the queue.

    code-reviewdata-structures
  • 99

    An engineer you mentor misses three estimates by more than 100% because unknowns surface late; their code quality is strong.

    mentoringestimation
  • 100

    A staff engineer repeatedly approves changes without reading tests, and two escaped regressions caused 48 minutes of downtime; you are not their manager.

    testing