Interview questions

Senior Frontend Engineer Interview Questions

Senior frontend interviews go well beyond syntax and component trivia — interviewers are testing your ability to make architectural decisions, reason about performance at scale, and influence team-wide engineering quality. You'll be expected to justify tradeoffs, not just describe implementations. This guide covers the real question mix with honest guidance on what strong answers look like.

What to expect

At the senior level, expect a 4–6 round loop: one or two coding rounds (moderate-to-hard LeetCode-style, but often framed around real frontend problems like building a debounce, a virtual list, or a data-fetching layer), one to two system design rounds focused on UI architecture rather than backend infra (component systems, state management at scale, rendering strategies), a behavioral round weighted heavily toward influence, ownership, and conflict resolution, and sometimes a domain-specific round on browser internals, accessibility, or performance. Pure DSA grinding is less predictive of success here than demonstrating product sense and technical depth simultaneously.

These are the questions every Frontend Engineer gets.

Get questions tailored to your experience, answer them, and get honest feedback — free, no credit card.

Run a free fit check →

12 questions, with how to answer them

  1. JavaScript / Runtime

    1. Explain how the JavaScript event loop works, and describe a real scenario where misunderstanding it caused or could cause a bug in a React application.

    How to answer: Walk through call stack → Web APIs → task queue → microtask queue (Promises, queueMicrotask) → render steps. Then give a concrete example: e.g., a setState inside a Promise.then that fires after a component unmounts, or batched updates behaving differently inside setTimeout vs. native events in React 17 vs. 18. Show you know the difference between macro and microtasks.

    What they look for: Interviewers want to see that you can connect runtime mechanics to real product bugs, not just recite the event loop diagram. The React context shows you apply this to your actual stack, not in the abstract.

  2. JavaScript / Runtime

    2. Implement a function that takes an async function and a concurrency limit, and returns a wrapped version that never runs more than N invocations simultaneously.

    How to answer: Use a counter and a queue of pending resolvers. When the limit is reached, push a resolver onto the queue; when a slot frees up (in the .finally), dequeue and execute the next one. Walk through edge cases: rejection propagation, queue ordering, and whether the wrapper should be re-entrant. Write clean, typed code.

    What they look for: This tests whether you can implement real async coordination primitives — the kind of thing you'd build for an upload manager or a rate-limited API client. Strong candidates write this without reaching for a library and handle the error path correctly.

  3. UI Architecture / System Design

    3. Design a large-scale component library that will be consumed by 15 product teams. Walk through your decisions around API design, versioning, theming, testing, and documentation.

    How to answer: Cover: monorepo vs. separate packages, semantic versioning with a clear deprecation policy, a design token system for theming (CSS custom properties vs. JS tokens), compound component and render-prop patterns for flexibility, snapshot + interaction + accessibility tests (Storybook + Playwright or similar), and automated changelog/migration tooling. Discuss the governance model — who merges to the library and how.

    What they look for: This reveals whether you think about library design as a product, not just a code problem. Interviewers look for awareness of downstream consumer pain (breaking changes, bundle size, tree-shaking) and organizational dynamics (adoption, buy-in, contribution model).

  4. UI Architecture / System Design

    4. A product page renders a feed of 10,000 items. Describe how you would architect the solution end-to-end — from data fetching to rendering — to keep it fast and accessible.

    How to answer: Cover: windowing/virtualization (react-window or a custom IntersectionObserver approach), cursor-based pagination or infinite scroll with a stable anchor, memoization strategy (useMemo, React.memo with correct key strategy), skeleton screens for perceived performance, keyboard navigation through a virtualized list (roving tabindex or aria-activedescendant pattern), and measuring success (INP, CLS). Discuss tradeoffs of SSR vs. CSR for initial load.

    What they look for: Interviewers want a holistic answer that connects rendering architecture to UX, performance metrics, and accessibility — not just 'use react-window'. Senior candidates proactively define what 'fast' means with metrics.

  5. Performance

    5. Your app's Interaction to Next Paint (INP) score is poor on low-end Android devices. Walk through how you would diagnose and fix it.

    How to answer: Start with measurement: Chrome DevTools Performance panel + WebPageTest on a throttled profile, or field data from CrUX/RUM. Identify long tasks (>50ms) blocking the main thread. Common culprits: large JS bundles parsed on interaction, synchronous state updates causing layout thrashing, third-party scripts. Fixes: code-split interaction handlers, move heavy work to Web Workers, use scheduler.postTask or isInputPending for cooperative scheduling, debounce non-critical updates.

    What they look for: INP replaced FID as a Core Web Vital in 2024 — knowing this signals you're current. Interviewers want a systematic diagnostic process, not a list of generic tips. Can you instrument the problem, form a hypothesis, and measure the fix?

  6. Performance

    6. Explain how a browser's rendering pipeline works (from JS execution to pixels) and describe two specific patterns you've used to avoid layout thrashing.

    How to answer: Pipeline: JS → Style recalc → Layout → Paint → Composite. Layout thrashing: reading layout properties (offsetWidth, getBoundingClientRect) after writes forces a synchronous reflow. Fixes: (1) batch reads before writes in the same frame using requestAnimationFrame, (2) use CSS transform/opacity for animations (compositor-only, no layout/paint), (3) will-change hint to promote to its own layer. Show you know the difference between layout, paint, and composite properties.

    What they look for: This separates engineers who have internalized the browser model from those who just use React and hope. The interviewer is checking whether you can reason about what happens below the framework.

  7. State Management

    7. A complex checkout flow has deeply nested state shared across 8 components. Compare three different state management approaches for this scenario and recommend one with justification.

    How to answer: Evaluate: (1) Context + useReducer — simple, no library, but causes unnecessary re-renders if not split carefully, fine for moderate complexity; (2) Zustand or Jotai — minimal boilerplate, atomic subscriptions avoid re-render issues, good for medium scale; (3) XState — models the checkout as a state machine, great for complex business logic with many conditional transitions, but adds conceptual overhead. Recommend based on team familiarity and whether the logic is primarily UI state or business logic.

    What they look for: Interviewers want to see that you can evaluate tools against concrete constraints rather than defaulting to what you know. Bonus signal: you recognize that checkout has finite states (cart, shipping, payment, confirmation) which makes a state machine argument compelling.

  8. Browser / Web Platform

    8. What is the critical rendering path and how would you optimize it for a content-heavy marketing page where LCP is the primary metric?

    How to answer: CRP: HTML parse → DOM → CSSOM → Render tree → Layout → Paint. Blockers: render-blocking CSS and parser-blocking scripts. Optimizations: inline critical CSS, defer/async non-critical scripts, preload LCP image with fetchpriority='high', use font-display: swap, eliminate redirect chains, serve from CDN edge. Show you know how to measure: Lighthouse, WebPageTest waterfall, CrUX field data for P75 LCP.

    What they look for: A precise understanding of what actually blocks rendering vs. what's a misconception. Senior candidates know the difference between preload, prefetch, and preconnect and use them correctly.

  9. Accessibility

    9. You discover that your company's modal dialog implementation has several accessibility bugs. Walk through what's wrong and how you'd fix it.

    How to answer: Common bugs: focus not trapped inside modal, background content still reachable by screen reader (missing aria-modal or inert attribute on background), modal not announced on open (missing role='dialog' + aria-labelledby), Escape key not handled, focus not restored to trigger element on close. Fix using a focus trap utility, the native <dialog> element (which handles many of these natively), and aria attributes. Reference WCAG 2.1 SC 1.3.1, 2.1.2, 4.1.2.

    What they look for: Accessibility at the senior level means knowing the spec, not just screen-reader empathy. Interviewers look for systematic coverage of the keyboard, screen-reader, and focus-management cases, and awareness of native HTML solutions.

  10. Testing

    10. How would you design a frontend testing strategy for a product with a design system, business-logic-heavy React components, and end-to-end user flows?

    How to answer: Three-layer strategy: (1) Unit tests for pure logic (validation, formatters, state reducers) with Vitest/Jest; (2) Component tests with Testing Library — test behavior and accessibility, not implementation; use MSW to mock API at the network layer; (3) E2E with Playwright for critical paths (auth, checkout, key flows). For the design system specifically: visual regression tests (Chromatic/Percy) to catch unintended CSS changes. Discuss the cost/value tradeoff: E2E is expensive, prioritize ruthlessly. CI integration and test parallelism matter at scale.

    What they look for: Interviewers want a strategy, not a tool list. Can you articulate what each layer catches, what it doesn't, and how to prioritize? Senior candidates know that over-investing in E2E creates a slow, flaky suite and under-investing in component tests leaves behavior gaps.

  11. Behavioral / Leadership

    11. Tell me about a time you introduced a significant technical change (e.g., a new framework, architecture pattern, or tooling) that required buy-in from engineers who were skeptical.

    How to answer: Use STAR. Key elements: describe the specific technical problem that motivated the change (not just 'we wanted to modernize'), how you built the case (proof of concept, metrics, risk analysis), how you addressed skeptics' specific concerns rather than steamrolling them, how you rolled it out incrementally, and what you learned if it didn't go perfectly. Avoid: vague stories, claiming full credit, or glossing over the friction.

    What they look for: Technical influence is a core senior competency. Interviewers are checking whether you can drive change without authority, whether you listen to pushback as signal rather than noise, and whether you have the patience to de-risk transitions properly.

  12. Behavioral / Leadership

    12. Describe a situation where you identified a systemic quality problem in a codebase (not a single bug) and drove the effort to fix it across a team.

    How to answer: Choose a story with real scale: e.g., inconsistent error handling causing silent failures, no accessibility baseline across components, or a missing abstraction causing duplicated business logic. Describe: how you identified the pattern (code review, incidents, metrics), how you quantified the impact to get prioritization, how you designed the fix to be adoptable (codemods, lint rules, templates), and how you worked with the team rather than doing it all yourself.

    What they look for: This tests engineering ownership and leverage. A senior engineer who only fixes their own code doesn't multiply the team. Interviewers want to see that you identify and address root causes systematically and that you scale solutions through tooling or education, not just heroics.

Study tips

  • Study INP and the 2024 Core Web Vitals changes specifically — many candidates still talk about FID, which has been deprecated. Knowing the new metric deeply signals you're current and gives you a concrete performance topic to discuss with precision.
  • Practice the UI system design format explicitly: pick 2–3 real products you've built or used (a data table, an autocomplete, a design token system) and rehearse designing them end-to-end including API surface, accessibility, and performance constraints. Most frontend engineers prepare for backend system design rounds and are caught off-guard by UI design questions.
  • For behavioral rounds, map your stories to senior-level signals: scope (team or cross-team impact, not personal output), ambiguity (you defined the problem, not just executed), and technical judgment (you made a call and can explain why). Stories about fixing bugs or shipping features are not compelling at this level without those dimensions.
  • Build a genuine mental model of browser rendering — read the Chrome developer documentation on the rendering pipeline and the Compositor thread, not just blog summaries. Questions about layout thrashing, paint storms, or compositor layers often reveal whether you understand the platform or just the framework.
  • Review the ARIA Authoring Practices Guide (APG) for at least 3 common patterns (modal dialog, combobox, tabs). Accessibility is increasingly a differentiator at senior interviews and most candidates cannot describe focus trapping or roving tabindex concretely.

Practice these against your own résumé

Get questions tailored to your experience, answer them, and get honest feedback — free, no credit card.

Run a free fit check →