Render API Products in a Responsive Card Grid

Read the full interview experience this question came from →

Quick Overview

Build a responsive card grid from a REST API with distinct loading, empty, and error states. Cover typed boundaries, currency formatting, reusable components, caching, and safe filtered requests.

Render API Products in a Responsive Card Grid

Company: DoorDash

Role: Software Engineer

Category: Software Engineering Fundamentals

Difficulty: medium

Interview Round: Onsite

Fetch records from a REST API and render them as a responsive card grid. Handle loading and error states and format monetary values correctly. Explain improvements for component reuse, caching, filters, and strong typing. ### Clarifying Questions Define the API schema, currency and amount units, pagination, and whether filtering is local or server-side. None is specified. For a baseline, choose records with a stable ID, title, and a price represented by an integer minor-unit amount plus a currency code; verify the currency's minor-unit convention instead of assuming every currency has two decimals. ### What a Strong Answer Covers A complete request lifecycle, runtime validation as well as static types, accessible reusable cards, responsive layout, correct currency formatting, and stale-request protection. Explain cache keys and invalidation when filters change. ### Follow-up Questions - How does an empty successful response differ from a failed request? - What happens when a slower old request returns after a newer filtered request?

Overview: Build a responsive card grid from a REST API with distinct loading, empty, and error states. Cover typed boundaries, currency formatting, reusable components, caching, and safe filtered requests.

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

DoorDash logo
DoorDash
Oct 23, 2026
mediumSoftware EngineerOnsiteSoftware Engineering Fundamentals
0
0

Fetch records from a REST API and render them as a responsive card grid. Handle loading and error states and format monetary values correctly. Explain improvements for component reuse, caching, filters, and strong typing.

Clarifying Questions Guidance

Define the API schema, currency and amount units, pagination, and whether filtering is local or server-side. None is specified. For a baseline, choose records with a stable ID, title, and a price represented by an integer minor-unit amount plus a currency code; verify the currency's minor-unit convention instead of assuming every currency has two decimals.

What a Strong Answer Covers Guidance

A complete request lifecycle, runtime validation as well as static types, accessible reusable cards, responsive layout, correct currency formatting, and stale-request protection. Explain cache keys and invalidation when filters change.

Follow-up Questions Guidance

  • How does an empty successful response differ from a failed request?
  • What happens when a slower old request returns after a newer filtered request?