Skip to content

Free interview kit

Frontend Engineer interview kit: questions and rubric

For hiring teams interviewing a mid-level frontend engineer, roughly three to six years in, who builds web interfaces in a component framework such as React with TypeScript. It covers a short screen, five competencies with a 20-minute component review, behavioral and situational questions, anchored ratings, the questions never to ask, and a rule for deciding.

5 competencies · 12 questions · anchored 1-to-5 scale · Updated · Written by the Itya team

How to use this kit

  1. Agree the competencies with the hiring manager before the job is posted.
  2. Give each interviewer one or two competencies, so nothing is asked twice.
  3. Ask every candidate the same core questions; follow up freely.
  4. Rate each competency against the anchors straight after the interview, alone.
  5. Debrief on quotes, not adjectives, then decide with the rule at the end.

First-round screen

Fifteen to twenty minutes, by phone, video or a disclosed AI screen. The aim is to confirm the basics before the panel spends its time.

  1. What draws you to frontend work, and what kind of interface work do you want more of in your next job?
  2. Walk me through an interface you built that real users depend on: what it does, which part you owned, and one thing you would change about it.
  3. This role works in the framework and stack named in the job description. Which parts of it have you shipped production code in, and for how long?
  4. The job description sets out the location, working pattern and start date. Do those work for you, what is your notice period, and what compensation range are you expecting?

Competency 1

Component design and state

Most frontend bugs are state bugs: stale data, two sources of truth, effects that run at the wrong time. Engineers who know where state should live build interfaces that stay correct as they grow.

  1. Work sample, 20 minutes: here is a 50-line React and TypeScript search-as-you-type component from an anonymized pull request. It copies a prop into state, fetches on every keystroke with no cancellation, so a slow early response can overwrite a later one, renders the results as clickable divs and has no label on the input. Review it out loud as you would for a teammate. Rate the state findings here and the accessibility findings under accessibility.

    Follow up with

    • Which of your comments would block the merge, and which are suggestions?
    • How would you stop an older response from overwriting a newer one?
    • Where should the results live if two other components need them?
  2. Tell me about a frontend bug caused by state that took you a long time to find. What was going on?

    Follow up with

    • How did you narrow it down?
    • What did you change so that kind of bug was harder to write?
  3. What would you do if a page you own keeps server data in a global client store, and users often see stale records after editing them?

    Follow up with

    • What would you change first, and how would you ship it safely?
    • What would you leave alone?
RatingWhat it looks like
5 · StrongFinds the race and the derived-state bug unprompted, explains where each piece of state belongs and why, and proposes fixes that remove a whole class of bug rather than one symptom.
3 · MixedFinds the main state bug in the review and knows where state belongs in simple cases. Needs prompting on races, derived state, or server versus client state.
1 · WeakMisses the response race and the copied prop in the review, even with a hint. Fixes state bugs by adding more state, effects or timeouts.

Competency 2

Accessibility

Keyboard and screen reader users are customers, and accessibility is decided in markup and interaction code, which frontend engineers write. Building it in costs far less than retrofitting it after a complaint or an audit.

  1. Continuing the component review: how would a keyboard-only user and a screen reader user experience this search, and what would you change?

    Follow up with

    • How would you check your fix without a specialist?
    • When would you reach for ARIA attributes, and when not?
  2. Tell me about an accessibility problem you found and fixed in something you built. How was it found?

    Follow up with

    • How did you test the fix?
    • What did you change in how you or your team work afterwards?
RatingWhat it looks like
5 · StrongFinds keyboard, focus, labeling and announcement problems unprompted, prefers native semantics, tests with a keyboard, a screen reader and automated checks, and builds those checks into the team's workflow.
3 · MixedSpots the obvious gaps (labels, focus, keyboard access) and knows the native elements to use. Has not tested with a screen reader, or adds ARIA where a native element would do.
1 · WeakTreats accessibility as alt text or as someone else's job. Misses the unlabeled input and the unfocusable results in the review.

Competency 3

Web performance

Users feel slow pages on mid-range phones and patchy networks, and Google reports field performance as Core Web Vitals. Frontend engineers decide most of what ships to the browser, so they own most of the fixes.

  1. A product listing page feels slow on mid-range phones, and field data shows poor Largest Contentful Paint and Interaction to Next Paint. Talk me through how you would find the cause before changing any code.

    Follow up with

    • Which tools would you open first, and what would you look for?
    • How would you know the fix helped real users, not just your laptop?
    • What changes if the slowness started with the release last week?
  2. Tell me about a performance improvement you shipped. How did you measure it before and after?

    Follow up with

    • What did it cost in complexity?
    • What stopped it from regressing later?
RatingWhat it looks like
5 · StrongMeasures first on realistic devices, ties each fix to the metric it moves, confirms the gain in field data, and adds budgets or checks so it holds.
3 · MixedKnows the main metrics and tools, and finds common causes such as large bundles or unsized images. Needs prompting to use field data or a realistic device.
1 · WeakOffers generic tips without measuring, and cannot say what Core Web Vitals measure or how to profile a page.

Competency 4

Testing and quality

Interfaces change every sprint, and clicking through them by hand does not scale. Frontend engineers need tests that catch real regressions without breaking on every markup change.

  1. How do you decide what to test in a frontend feature, and with which kind of test? Use the last feature you shipped as the example.

    Follow up with

    • What do you test through the browser, and what in isolation?
    • How do you find elements in a component test?
    • Which test in your current suite would you delete, and why?
  2. What would you do if a designer's change to a shared Button component broke 40 snapshot tests across the app?

    Follow up with

    • What do those 40 tests protect against?
    • What would you put in their place, if anything?
RatingWhat it looks like
5 · StrongChooses the right level of test for each risk, writes tests the way a user interacts, keeps end-to-end tests few and stable, and removes tests that cost more than they catch.
3 · MixedWrites component tests for the main behavior and a few end-to-end tests. Sometimes tests implementation details, or needs prompting on what not to test.
1 · WeakRelies on manual checks or snapshots nobody reads, and tests internal state instead of behavior.

Competency 5

Working with design and product

Frontend engineers turn designs into working software and see the gaps first: missing states, edge cases, interactions that cannot be built accessibly. How they raise those gaps decides whether the result matches the intent.

  1. What would you do if a design arrives with only the happy path (no loading, empty or error states, and no mobile layout) two days before the sprint starts?

    Follow up with

    • What would you ask the designer, and how?
    • What would you build if the designer were away all week?
  2. Tell me about a time you pushed back on a design because it could not be built well, for accessibility, performance or effort. What happened?

    Follow up with

    • What alternative did you bring?
    • What was decided in the end?
  3. Tell me about a component you added to, or changed in, a shared component library or design system.

    Follow up with

    • How did you make sure other teams could use it?
    • How did you handle a breaking change?
RatingWhat it looks like
5 · StrongFinds gaps early, proposes concrete options in user terms, commits once decided, and builds shared components that other teams can adopt and upgrade safely.
3 · MixedRaises missing states and constraints with designers and works well with them. Needs prompting to propose alternatives or to think about other teams using shared components.
1 · WeakBuilds only what the mockup shows, invents or ignores missing states, and pushes back without alternatives.

Never ask

  • Don't ask a candidate's age, or their graduation year to work it out. Why: age says nothing about frontend skill, and age-based decisions are unlawful in many places.
  • Don't ask about marital status, children, pregnancy or plans to start a family. Why: none of it is job-related, and the question is still put mostly to women, which makes it discriminatory as well as irrelevant.
  • Don't ask about religion, caste, community or the origin of a surname, directly or by proxy ('What does your father do?'). Why: in India these questions signal caste and religion, which have no bearing on the job.
  • Don't ask 'Where are you from originally?' or 'What is your native place?'. Why: it invites judgments about region, language and community. If location matters, ask whether the candidate can work from the job's location.
  • Don't ask about health conditions or disabilities, including whether the candidate uses assistive technology, even though the role covers accessibility. Why: the only relevant question is whether they can perform the essential functions of the job, with or without reasonable accommodation. Offer every candidate adjustments to the exercise.
  • Don't ask for salary history where the law restricts it: many US states and cities do, and the EU Pay Transparency Directive requires member states to. Why: it carries past pay gaps into the new offer. Ask for the expected range; in India, where current pay is commonly asked, still set the offer from the role's band.
  • Don't ask the candidate to build a screen of your real product or redesign your live site as a take-home. Why: that is unpaid work. Use a prepared, anonymized component like the one in this kit, which has nothing to ship.

Making the decision

Each interviewer rates their competencies alone, against the anchors, before the debrief. The must-haves are component design and state, accessibility, and testing and quality. Any 1 on a must-have is a no, and so is any competency rated 1 by two interviewers. A hire needs an average of 3.5 or higher. The hiring manager decides after the debrief and records the component-review findings and quotes behind each rating.

Questions people ask

What should a frontend engineer coding interview test?
The work the job involves: reading and fixing a component, handling state and data fetching, making an interface accessible, and explaining trade-offs. A 20-minute review of a prepared component shows more than an algorithm puzzle. Use the same component and the same planted issues for every candidate.
Should we test React knowledge specifically?
Test it if the job uses React daily and you cannot afford ramp-up time, but weigh the underlying skills more. State, the DOM, accessibility and performance carry over between frameworks, and an engineer strong in those learns a new framework quickly. Say in the invitation which framework the exercise uses.
How do we assess accessibility if nobody on the panel is an expert?
Plant two or three clear issues in the review exercise, such as an unlabeled input and a clickable div, and write the expected findings down before the first interview. Then ask how the candidate would check a fix. That works without a specialist on the panel.
How is a frontend interview different from a general software engineer interview?
It keeps the core of problem solving and code quality, but moves the evidence to the browser: state and rendering, accessibility, performance on real devices, and work with designers. For a full-stack role, combine this kit with the software engineer kit and keep only the competencies the job needs.

A kit is step one.

Itya holds every interviewer to the same rubric, records the interview, and drafts the scorecard with the quotes behind each rating. The AI drafts; your team decides. Free plan, unlimited teammates.