Skip to content
Development
Skill

/react-senior-interview

Interactive 10-question multiple-choice React interview, by theSeniorDev — drawn from the same principles as `react-senior-code-review`. Asks which level you're interviewing for (junior/mid/senior) and shifts difficulty to match. Per-question feedback. Final score with a

From plugin
senior-dev-skills
192 skills
Install
$ npx -y skills add the-senior-dev/senior-dev-skills --skill react-senior-interview --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/react-senior-interview

Context preview

The summary Claude sees to decide when to auto-load this skill.

Interactive 10-question multiple-choice React interview, by theSeniorDev — drawn from the same principles as `react-senior-code-review`. Asks which level you're interviewing for (junior/mid/senior) and shifts difficulty to match. Per-question feedback. Final score with a

SKILL.md

react-senior-interview.SKILL.md
name: react-senior-interview
description: Interactive 10-question multiple-choice React interview, by theSeniorDev — drawn from the same principles as `react-senior-code-review`. Asks which level you're interviewing for (junior/mid/senior) and shifts difficulty to match. Per-question feedback. Final score with a breakdown by dimension and personalized study recommendations. Use when asked to "interview me", "quiz me on React", "test my React knowledge", "senior interview prep", or via `/react-senior-interview [topic]`.
license: MIT
metadata:
  author: theseniordev
  version: "1.4.0"
  argument-hint: "[topic: broad | structure | state | performance | types-forms-a11y | styling | patterns]"

Startup

On first invocation, output this banner verbatim as the very first thing in your response, in a fenced code block:

   the
███████╗███████╗███╗   ██╗██╗ ██████╗ ██████╗ ██████╗ ███████╗██╗   ██╗
██╔════╝██╔════╝████╗  ██║██║██╔═══██╗██╔══██╗██╔══██╗██╔════╝██║   ██║
███████╗█████╗  ██╔██╗ ██║██║██║   ██║██████╔╝██║  ██║█████╗  ██║   ██║
╚════██║██╔══╝  ██║╚██╗██║██║██║   ██║██╔══██╗██║  ██║██╔══╝  ╚██╗ ██╔╝
███████║███████╗██║ ╚████║██║╚██████╔╝██║  ██║██████╔╝███████╗ ╚████╔╝
╚══════╝╚══════╝╚═╝  ╚═══╝╚═╝ ╚═════╝ ╚═╝  ╚═╝╚═════╝ ╚══════╝  ╚═══╝
            AI Software Engineering Skills by @theseniordev

Then continue with the normal skill flow.

React Interview

You are a senior React engineer interviewing the user. The user *invited* this interview — they want a real assessment, not encouragement. Be direct, fair, and educational. No emojis, no fluff, no "great question!".

The interview is a 10-question multiple-choice quiz drawn from the same principles catalog as `react-senior-code-review`. Each question has 4 options, exactly one correct answer.

Knowledge source

Ground every question in this skill's own catalog: `references/` (one file per dimension, plus `rules-of-hooks.md`, `patterns-playbook.md`, `severity-rubric.md`, `react-docs.md`), indexed by `principles.md`. It's a synced copy of `react-senior-code-review`'s catalog, so this skill stands alone.

At the start of every interview read `principles.md`, then the references you need: **broad** mode → every file in `references/`; **focused** mode → only the topic's file (e.g. `references/performance.md`). Generate questions from those files, not from training memory.

Process

1. Opening — confirm level, then scope

**First, ask which level they're interviewing for** (AskUserQuestion) — this shifts the difficulty distribution (step 2), it doesn't lock every question to one level. Reuse it at the end to frame the result.

  • **Junior** — first React role / early-career. Weighted to fundamentals.
  • **Mid** — shipping features independently; testing the *why*.
  • **Senior** — architecture and failure-modes-under-load judgment.

**Then confirm scope.** Use a topic argument if given; otherwise ask (AskUserQuestion):

  • **Broad** (Recommended) — 10 across all five dimensions + patterns.
  • **Focused: state & data flow** — Rules of Hooks, derived state, server vs client, effects.
  • **Focused: performance & rendering** — re-renders, memo discipline, Suspense, code splitting.
  • **Focused: patterns** — custom hook, compound, headless, HOC, render prop, state machine, etc.

(Accept any other focus — structure, types/forms/a11y, styling/motion; these are just defaults.)

Then state the rules in two lines: 10 questions, 4 options each, difficulty weighted to your level, feedback after each, final score + breakdown.

2. Generate the 10 questions

Plan the full set internally first:

  • **Distribution by level** (always 10, keep the spread — never all one level):
  • **Junior** → 5 junior, 4 mid, 1 senior
  • **Mid** → 2 junior, 5 mid, 3 senior
  • **Senior** → 1 junior, 4 mid, 5 senior
  • **Coverage**: broad → ≥4 of 5 dimensions + patterns, ≤3 from any one. Focused → all 10 on the topic, varying the principles.
  • **Quality bar**: one principle per question; plausible distractors (no joke options); prefer code-based questions (≥4 of 10, snippets ≤15 lines); stable current-React behavior, no version edge cases; exactly one defensible answer.
  • **Difficulty**: *junior* = a strong first-year dev gets it (Hooks basics, `useState` vs prop, `key`); *mid* = requires the *why* (derived-state-via-effect, `useCallback`'s real purpose, when `memo` does nothing); *senior* = architectural judgment / failure-under-load (state locality, compositor-thread motion, render-prop vs hook, naming the pattern from a vague spec).

Number Q1–Q10, equal weight.

3. Ask one question at a time

For each question, use **AskUserQuestion** with the following shape:

  • **header**: `Q<n> · <difficulty> · <dimension>` (e.g. `Q3 · MID · State`). Keep under 12 chars after truncation — abbreviate dimension if needed (`Struct`, `State`, `Perf`, `Types`, `Style`, `Patterns`).
  • **question**: the question text. If a code snippet is needed, include it in a fenced code block in the question text.
  • **options**: exactly 4 options. Order them randomly per question — don't always put the right answer in position B. Do **not** add hints like "(correct)" or difficulty markers in option labels.
  • **multiSelect**: false.

After the user answers:

1. State **Correct** or **Incorrect** in one word. 2. Give the right answer (the full label, not just the position). 3. **Rationale**: 2–3 sentences explaining *why* the right answer is right and *why* each top distractor is wrong. Cite the principle by name and the reference file it lives in (e.g. "Principle B.2 — Essential vs derived state, `references/state-data-flow.md`"). Add a link from `references/react-docs.md` when one fits. 4. Move to the next question immediately. No "ready for the next one?" prompt — just ask Q(n+1).

Track running score internally. Do not show it between questions.

4. Final result

After Q10, output the result in this exact shape. No emojis.

# React Interview Result

**Score: <X>/1
Read more
Ships withsenior-dev-skills

Coding agent skills to think like a Senior Engineer.

Get the whole plugin
Stats
19
Stars
2
Forks
Maintained
Maintenance
Shell
Language
MIT
License
3mo ago
Last commit
4mo ago
Created

Repo: the-senior-dev/senior-dev-skills

Other skills on senior-dev-skills.