Remoteria
RemoteriaBook a 15-min intro call
500+ successful placements4.9 (50+ reviews)30-day replacement guarantee

Interview guide

React Developer Interview Questions & Answers Guide (2026)

A hiring-manager’s interview kit for react developers — with specific “what to look for” notes on every answer, red flags to watch, and a practical test.

Key facts

Role
React Developer
Technical questions
14
Behavioral
7
Role-fit
5
Red flags
8
Practical test
Included

How to use this guide

Pick 4-6 technical questions across difficulties, 2-3 behavioral, and 1-2 role-fit for a 45-minute interview. For senior roles, weight harder technical and role-fit higher. Always close with the practical test so you are hiring on evidence, not impressions. The “what to look for” notes are a scoring rubric: strong answers touch most points, weak answers miss them or replace them with platitudes.

Technical questions — Easy

1. When should you reach for useMemo or useCallback, and what is the cost of wrapping something you did not need to?

Easy

What to look for: Candidate should describe the cost of memoization (cache bookkeeping, dependency comparison) and only reach for it when a downstream memoized child is actually re-rendering, when a value feeds a dependency array, or when a computation is genuinely expensive. Red flag: "always wrap".

2. Write (on paper or verbally) a custom hook useDebouncedValue(value, delay) that returns the debounced value. What edge cases matter?

Easy

What to look for: Correct useEffect with cleanup on timeout, handles delay changes, cancels previous timer. Edge cases: unmount, rapid updates, value identity for objects.

Technical questions — Medium

1. Explain the difference between a server component and a client component in Next.js App Router, and give a concrete example of when you would switch a component from one to the other.

Medium

What to look for: Should explain the "use client" boundary, server-only data fetching, serialization of props, and which hooks are unavailable on the server. Good answers cite a real migration they did.

2. A page has a 6 MB JavaScript bundle on initial load and a Lighthouse score of 38. Walk me through how you would diagnose and fix it.

Medium

What to look for: Bundle analyzer → identify top offenders → dynamic imports, route-level code splitting, replacing heavy libraries, tree-shaking verification, moving to server components where possible. Should mention real tools (next/bundle-analyzer, webpack-bundle-analyzer).

3. Describe how you would implement an optimistic update for a Like button that calls a mutation endpoint, and how you handle rollback on failure.

Medium

What to look for: TanStack Query onMutate / onError / onSettled, snapshot of previous state, rollback in onError, final invalidation. Or Redux Toolkit Query equivalents. Should discuss race conditions and idempotency.

4. What is React Suspense, and when would you use it with and without a data fetching library?

Medium

What to look for: Suspense boundaries, fallback UI, streaming in Next.js, integration with libraries that throw promises (or React 19 use()). Should not confuse with error boundaries.

5. How do you manage accessible focus when opening a modal, and how do you return focus when it closes?

Medium

What to look for: Focus trap, initial focus on the modal, inert or aria-hidden on background, restore focus to trigger on close, Escape key handling. Should mention Radix/HeadlessUI or understand why rolling your own is hard.

6. Compare Redux Toolkit, Zustand, and Jotai for managing global client state. When would you pick each?

Medium

What to look for: RTK for large apps with DevTools and middleware needs, Zustand for lightweight stores, Jotai for atom-based derivations. Should avoid dogma — the answer should be "depends on team and scale".

7. We have a list of 10,000 items and scrolling is janky. What are the options?

Medium

What to look for: Virtualization (react-window, TanStack Virtual), pagination, infinite scroll with query cursors. Bonus for discussing CLS and ARIA implications of virtualized lists.

Technical questions — Hard

1. We have a form with 30 fields that re-renders on every keystroke and feels laggy. Walk me through debugging and fixing this.

Hard

What to look for: React DevTools profiler, identify culprit re-renders, isolate field state with react-hook-form or uncontrolled inputs, split components, memoize, discuss controlled vs uncontrolled trade-offs.

2. Explain how you would set up an authenticated route in Next.js App Router where session data is needed both server-side (for the initial render) and client-side (for subsequent interactions).

Hard

What to look for: Server component reads cookies / session, passes minimal serializable data down, client provider hydrates from that, middleware enforces redirects. Should avoid leaking secrets to the client bundle.

3. What causes hydration mismatches in Next.js, and how have you fixed them in a production app?

Hard

What to look for: Differences between server and client HTML (Date.now, random IDs, window access, localStorage). Fixes: useEffect for client-only, suppressHydrationWarning sparingly, useId hook. Should have a war story.

4. How would you structure a component library so that consuming apps can tree-shake and only pay for what they import?

Hard

What to look for: Named exports, sideEffects: false in package.json, ES modules, per-component entry points, no barrel files that pull in the world. Bonus: discussing CSS-in-JS cost vs Tailwind vs CSS modules.

5. Tell me about the last time you fixed a production bug that was only reproducible in Safari. How did you find it?

Hard

What to look for: Real story. Polyfills, intersection observer, date parsing, backdrop-filter, sticky positioning. Should discuss reproducing locally via BrowserStack or a real device.

Behavioral questions

1. Tell me about a time you disagreed with a designer about a UI pattern. How did you resolve it?

What to look for: Brought data (usability, accessibility, performance), proposed alternatives, respected the designer craft, landed on a decision without ego.

2. Describe the worst production incident you shipped and what you learned.

What to look for: Takes ownership, describes root cause in detail, talks about guardrails put in place after (tests, monitoring, process). Avoids blaming.

3. How do you keep your code review comments useful without coming across as pedantic?

What to look for: Separates blockers from suggestions (nit: prefix), praises good choices, explains the why, asks questions rather than issuing decrees.

4. Walk me through how you onboard yourself into an unfamiliar React codebase.

What to look for: Reads the README, runs it locally, traces a user flow end-to-end, draws the component tree, opens small PRs early to validate understanding.

5. What is the most technically ambitious frontend thing you have shipped, and why was it hard?

What to look for: Specific: tells you dimensions of difficulty (scale, deadline, ambiguity, novel tech). Shows depth and taste.

6. How do you manage your day when you have 7 hours async with the team and only 1 hour of overlap?

What to look for: Batches questions, writes long-form PR descriptions, records Loom walkthroughs, protects the overlap hour for blocking questions. Demonstrates async discipline.

7. When have you pushed back on a deadline, and how did you frame the conversation?

What to look for: Offers a trade-off (scope, quality, deadline) rather than saying no. Communicates early, not at the deadline.

Role-fit questions

1. Why React specifically? Why not Vue or Svelte?

What to look for: Has an opinion grounded in ecosystem, jobs, tooling, or a genuine technical preference — not just "that is what I was taught".

2. What does the first 30 days look like in this role for you to feel productive?

What to look for: Codebase tour, shipping a small PR in week 1, owning a component by week 2, asking to pair. Red flag: expects weeks of onboarding with no output.

3. How do you feel about 4 hours of timezone overlap with a US team?

What to look for: Treats the overlap as sacred for syncs, protects the async hours for deep work, has done it before if possible.

4. Our stack is Next.js App Router + Tailwind + Zustand + TanStack Query. Anything there you have not used and how would you ramp up?

What to look for: Honest gap assessment plus a concrete ramp plan (docs, side project, pair sessions). Fakery is a red flag.

5. Which side of pragmatism-vs-purism are you on when trade-offs come up on a deadline?

What to look for: Names the trade-off explicitly, picks pragmatism with a follow-up ticket for the debt, vs purism when the purity matters (accessibility, security).

Red flags

Any one of these alone is usually reason to pass, especially combined with weak answers elsewhere.

Practical test

4-hour take-home: build a searchable, sortable, paginated table of 1,000 rows from a mock API using Next.js App Router, TanStack Query, and TypeScript. Requirements: debounced search, URL-synced state, loading and error states, keyboard-accessible sort headers, and at least 3 React Testing Library tests for the happy path. We grade on: code quality (40%), accessibility (20%), performance (20%), and tests (20%). Bonus points for Storybook stories and for turning the table into a reusable component.

Scoring rubric

Score each answer 1-4: (1) Misses most of the rubric or gives platitudes; (2) Hits some points but cannot go deep when pressed; (3) Covers the rubric and can defend the answer under follow-ups; (4) Adds unprompted nuance, trade-offs, or real examples beyond the rubric. Hire at an average of 3.0+ across technical, behavioral, and role-fit, with zero red flags, and a pass on the practical test.

Related

Written by Syed Ali

Founder, Remoteria

Syed Ali founded Remoteria after a decade building distributed teams across 4 continents. He has helped 500+ companies source, vet, onboard, and scale pre-vetted offshore talent in engineering, design, marketing, and operations.

  • 10+ years building distributed remote teams
  • 500+ successful offshore placements across US, UK, EU, and APAC
  • Specialist in offshore vetting and cross-timezone team integration
Connect on LinkedIn

Last updated: April 12, 2026