Sample interview

Senior Frontend Engineer

7 questions · 60 minutes

React and TypeScript product engineering, with performance, accessibility and testing.

Illustrative: the job post, candidate and results are examples.

Why this interview

Requirements

The job requires

  • React and TypeScript
  • Frontend performance
  • Accessibility
  • Testing

Claims

The résumé claims

  • React and Next.js, 5 years
  • Built a design system
  • Jest and Testing Library

Focus

So the interview tests

  • Async UI and state
  • Browser fundamentals
  • Component design
  • Accessibility

The plan we propose

Every question comes with the reason it was chosen. The interviewer can swap any of them before sending.

  1. 1

    Search results for a query you already deleted

    Multiple choice · Advanced · ~4 min

    Why this question: The job is React-heavy and the résumé claims five years of it. Request races in effects are where that experience shows.

    Try it below
  2. 2

    A settings toggle that does not re-render

    Multiple choice · Advanced · ~4 min

    Why this question: Checks the state-update mental model behind most "the UI did not update" bugs.

  3. 3

    A product filter that freezes the page while typing

    Multiple choice · Advanced · ~4 min

    Why this question: The job requires frontend performance. Tests reasoning about the main thread instead of reaching for tools.

  4. 4

    A modal that shows up behind the header

    Multiple choice · Advanced · ~4 min

    Why this question: Design system work means owning layout and layering. A common CSS bug that needs a real model, not trial and error.

    Try it below
  5. 5

    An accessibility audit flags the checkout button

    Select all · Intermediate · ~3 min

    Why this question: The job requires accessibility. Semantic HTML is the most frequent audit finding.

  6. 6

    A save test that fails one run in ten

    Multiple choice · Intermediate · ~3 min

    Why this question: The résumé claims Testing Library. Waiting correctly for async UI separates real use from familiarity.

  7. 7

    A shared Button with twelve boolean props

    Multiple choice · Senior · ~5 min

    Why this question: A design system claim deserves a component API design question.

Try two of the questions

Answer as the candidate would. The interviewer guide beside each question is what the interviewer sees.

Search results for a query you already deleted

Candidate view

Exactly what the candidate sees. Try answering it.

Users type quickly into the search box, which updates query on every keystroke. Sometimes, after they finish typing "react hooks", the list shows results for "react h". The server returns correct results for every request.

What causes this, and what is the right fix?

SearchResults.tsxtsx
1function SearchResults({ query }: { query: string }) {
2 const [results, setResults] = useState<Result[]>([]);
3
4 useEffect(() => {
5 fetch(`/api/search?q=${encodeURIComponent(query)}`)
6 .then(res => res.json())
7 .then(setResults);
8 }, [query]);
9
10 return <ResultList items={results} />;
11}

Choose an answer to check it.

A modal that shows up behind the header

Candidate view

Exactly what the candidate sees. Try answering it.

The checkout modal covers the page content but sits behind the sticky header, even with z-index: 9999. Raising it to 99999 changes nothing.

Why, and what is the most robust fix?

styles.csscss
1.site-header {
2 position: sticky;
3 top: 0;
4 z-index: 10;
5}
6
7main {
8 position: relative;
9 z-index: 1;
10}
11
12/* The modal is rendered inside <main>. */
13.modal {
14 position: fixed;
15 inset: 0;
16 z-index: 9999;
17}

Choose an answer to check it.

See what the interview actually established

Built only from the interviewer's judgment on each question. The job and résumé decide what gets tested; they never count as evidence.

What the interview established

Strongest evidence was in React & UI state and Testing & quality. Browser & web platform showed mixed evidence. Accessibility had the weakest evidence among required areas.

4 of 4 required areas evaluated · 7 questions judged by the interviewer

Required competencies

From the job. Open a row for the questions and notes behind it.

CompetencyEvidence
AccessibilityWeak evidence from a single questionWeak
  1. An accessibility audit flags the checkout button

    WeakInterviewer

    Believed role="button" makes a div keyboard accessible. Worth a follow-up on semantics.

Browser & web platformMixed
  1. A product filter that freezes the page while typing

    MixedInterviewer

    Reached for debouncing first; needed a prompt to see that rendering 50,000 rows was the real cost.

  2. A save test that fails one run in ten

    StrongInterviewer

    Used findBy and explained why a fixed sleep stays flaky.

React & UI stateStrong
  1. Search results for a query you already deleted

    StrongInterviewer

    Spotted the out-of-order responses straight away and wrote effect cleanup with AbortController.

  2. A settings toggle that does not re-render

    StrongInterviewer

    Explained why memo skipped the render and why undo history changed too.

  3. A shared Button with twelve boolean props

    StrongInterviewer

    Proposed variant props and composition, with a migration plan for existing call sites.

Testing & qualityStrong
  1. A save test that fails one run in ten

    StrongInterviewer

    Used findBy and explained why a fixed sleep stays flaky.

Also observed

Not required for this role, but the questions produced evidence.

CompetencyEvidence
Caching & performanceMixed
  1. A product filter that freezes the page while typing

    MixedInterviewer

    Reached for debouncing first; needed a prompt to see that rendering 50,000 rows was the real cost.

Concurrency & runtimeStrong
  1. Search results for a query you already deleted

    StrongInterviewer

    Spotted the out-of-order responses straight away and wrote effect cleanup with AbortController.

CSS & layoutStrong
  1. A modal that shows up behind the header

    StrongInterviewer

    Found the stacking context on main and suggested a portal.

System designStrong
  1. A shared Button with twelve boolean props

    StrongInterviewer

    Proposed variant props and composition, with a migration plan for existing call sites.

How they worked

The kind of work the questions asked for, across competencies.

Way of workingEvidence
DebuggingMixed
Code reviewMixed
Design reasoningMixed
Root-cause analysisMixed

Build interviews like this for your roles.

Post a job, and we propose an interview for every applicant from the job and their résumé.