Senior React/Next.js hiring guide: questions and practical tasks
Enterprises that hire React developers via slashdev.io discover difference between "can ship" and "can scale." This guide helps you probe depth: architecture, performance audits for web apps, and end-to-end release management across web and app stores.
Foundational questions that separate seniors from strong mids
- React architecture: Describe how you would structure a Next.js 14 app using the app directory, Server Components, and Client Components. What belongs on the server boundary and why?
- Data fetching and caching: Explain revalidatePath, revalidateTag, and route segment caching. When do you prefer ISR over full SSR or static exports?
- Concurrency and Suspense: Show how Suspense streaming reduces TTFB vs. TTI. What pitfalls arise with waterfalls, and how do you avoid them?
- State strategy: Compare Redux Toolkit, Zustand, and React Query. Which state should live on the server, which in URL/search params, and which in client stores?
- TypeScript rigor: Demonstrate how you model API responses with zod, narrow unknown, and enforce exhaustive switch with never.
- Testing signal: Outline a strategy using Vitest/Jest, React Testing Library, and Playwright for critical flows and a11y checks.
Performance audits for web apps-turn interviews into proof
Great candidates treat performance as a discipline, not folklore. Ask them to walk a full audit: collect Web Vitals (LCP, INP, CLS), run Lighthouse and WebPageTest, profile with the React Profiler, and inspect bundle size using next build and source-map-explorer. Expect a plan to instrument RUM, set budgets, and prevent regressions via CI.

- Given a flame chart, reduce INP spikes caused by oversized context and unnecessary renders. Show memoization and selector extraction.
- Fix hydration mismatch from locale-specific Date formatting by moving logic server-side and freezing time for SSR.
- Cut bundle bloat by extracting admin tools behind dynamic(() => import(...)) with suspense and prefetch on intent.
- Improve images using next/image, AVIF/WebP, priority hints, and proper sizes to stabilize CLS.
- Eliminate CSS blocking with critical CSS, module scoping, and Tailwind's content-based purge.
- Virtualize long lists using react-window and keep item keys stable to avoid reflow storms.
Next.js server-side mastery
- RSC boundaries: Identify components that must remain server-only due to secrets or heavy data joins.
- Streaming SSR: Implement route handlers that stream above-the-fold content while awaiting slower subtrees.
- Edge vs Node runtimes: Choose where to run auth, i18n, and bot detection; explain tradeoffs and caching layers.
- ISR cadence: Propose tags and on-demand revalidation triggered by CMS webhooks without stampedes.
- Security: Apply CSP, Secure headers, and sanitize user content. Demonstrate SSRF and CSRF mitigations.
A four-hour take-home that actually reveals seniority
Provide a minimal headless API and ask the candidate to build a micro storefront in Next.js 14 with TypeScript, RSC, and a small design system.

- Catalog page uses ISR with tag-based revalidation; product detail uses streaming SSR.
- Client cart with optimistic updates, persisted per user, and URL-driven filters.
- Performance budgets: LCP under 2.5s on 4G, INP under 200ms; block merges that regress budgets.
- Observability: Add Web Vitals to an endpoint, trace server actions, and log cache hits/misses.
- Accessibility: Keyboard traps avoided, focus management on route change, labels, and color contrast.
- Tests: Unit coverage for utilities, integration tests for cart, and Playwright smoke on CI.
- Short README: architecture decisions, tradeoffs, and known risks.
App store deployment and release management
Even web-first teams need release discipline. Probe cross-channel fluency: how they would ship a React Native or Capacitor companion app, and how web releases coordinate with mobile cadences.
- Mobile: Configure Fastlane, semantic versioning, TestFlight/internal testing, phased release, and over-the-air updates with Expo EAS or CodePush while respecting store policies.
- Web: Trunk-based development, feature flags, blue-green or canary deploys, and instant rollbacks with database migration guards.
- Compliance: Handling app review guidelines, privacy manifests, and crash symbolication pipelines.
Red flags and signal boosters
- Red flag: Talks about "performance" without numbers. Signal: Quotes concrete metrics, shows before/after profiles, and enforces budgets in CI.
- Red flag: Centralizes all state in Redux by default. Signal: Pushes state to the server and URL when appropriate; uses lightweight client stores.
- Red flag: Treats Next.js caching as magic. Signal: Explains cache keys, revalidation triggers, and stampede protection.
- Red flag: Ignores release management. Signal: Presents a rollback plan, SLOs, and can explain incident postmortems.
- Red flag: Weak a11y. Signal: Builds accessible components and includes automated and manual checks.
Structured onsite exercise
Seed a repo with a regression: a client component wraps the home page, causing CLS and INP spikes. Ask them to:
- Refactor to Server Components with Suspense and segment caching.
- Fix layout shift by reserving image space and deferring widgets.




