Diagnose N+1 Queries and Design a Correct Service Cache

Read the full interview experience this question came from →

Quick Overview

Explain N+1 query patterns, joins and batch fetching, cache keys, freshness, stampede control, and end-to-end performance validation.

Diagnose N+1 Queries and Design a Correct Service Cache

Company: Generalmotors

Role: Software Engineer

Category: Software Engineering Fundamentals

Difficulty: medium

Interview Round: Technical Screen

Explain the database N+1 query problem and how service-level caching can improve or complicate a read path. Use an explicitly hypothetical API example and discuss how you would validate a proposed fix. ### Part 1 — N+1 Queries Describe how one request can issue a query for a collection and then one additional query per item. Explain how to detect this pattern and compare ways to avoid it. #### What This Part Should Cover Request-scoped query counts, joins or batch fetching, pagination, and tradeoffs involving result size or duplicate rows. ### Part 2 — Service Caching Explain what data you would cache, how keys and freshness are defined, and how cache failures or invalidation affect correctness. #### What This Part Should Cover A declared consistency policy, invalidation or expiration, stampede control, and evidence that caching addresses the actual bottleneck. ### Constraints No database engine, ORM, cache product, or latency target is supplied. Do not assume caching is a substitute for fixing an inefficient query pattern. Any concrete resource schema is illustrative. ### Clarifying Questions - Does query count grow with page size, and what data does the response actually need? - How stale may the data be, and what writes can invalidate it? - Are cache keys scoped by user or tenant permissions? ```hint Measure one request end to end A faster individual query can still leave a request slow if it is executed once per returned item. ``` ### What a Strong Answer Covers - Correct N+1 diagnosis and an appropriate bounded-fetch strategy. - Cache keys, freshness, invalidation, and failure behavior. - Measurement of query count, latency, load, and correctness after the change. ### Follow-up Questions - How can joining several one-to-many relationships create a new performance problem? - How would you stop many concurrent cache misses from overwhelming the database?

Overview: Explain N+1 query patterns, joins and batch fetching, cache keys, freshness, stampede control, and end-to-end performance validation.

Read the full Generalmotors Software Engineer interview experience this question came from

|Home/Software Engineering Fundamentals/Generalmotors
Generalmotors logo
Generalmotors
Aug 30, 2026
mediumSoftware EngineerTechnical ScreenSoftware Engineering Fundamentals
0
0

Explain the database N+1 query problem and how service-level caching can improve or complicate a read path. Use an explicitly hypothetical API example and discuss how you would validate a proposed fix.

Part 1 — N+1 Queries

Describe how one request can issue a query for a collection and then one additional query per item. Explain how to detect this pattern and compare ways to avoid it.

What This Part Should Cover Guidance

Request-scoped query counts, joins or batch fetching, pagination, and tradeoffs involving result size or duplicate rows.

Part 2 — Service Caching

Explain what data you would cache, how keys and freshness are defined, and how cache failures or invalidation affect correctness.

What This Part Should Cover Guidance

A declared consistency policy, invalidation or expiration, stampede control, and evidence that caching addresses the actual bottleneck.

Constraints

No database engine, ORM, cache product, or latency target is supplied. Do not assume caching is a substitute for fixing an inefficient query pattern. Any concrete resource schema is illustrative.

Clarifying Questions Guidance

  • Does query count grow with page size, and what data does the response actually need?
  • How stale may the data be, and what writes can invalidate it?
  • Are cache keys scoped by user or tenant permissions?

What a Strong Answer Covers Guidance

  • Correct N+1 diagnosis and an appropriate bounded-fetch strategy.
  • Cache keys, freshness, invalidation, and failure behavior.
  • Measurement of query count, latency, load, and correctness after the change.

Follow-up Questions Guidance

  • How can joining several one-to-many relationships create a new performance problem?
  • How would you stop many concurrent cache misses from overwhelming the database?
Loading comments...