Prompt 1
Synchronise audio playback with transcript highlighting
Given an audio element and a transcript with start and end times per word or segment, highlight the segment being spoken as playback runs, and keep it correct through play, pause, seek and speed changes.
Practice version modelled on a reported round: Public report: ElevenLabs candidate-sourced question bank on Aced, October 2026
What this measures
Choosing a time source and update loop, mapping a timestamp to a segment efficiently, rendering only what changed, and reasoning about drift and edge timings.
Clarify first
- Confirm the granularity (word or sentence), whether timings can overlap or have gaps, and how to treat the moment between segments.
- Confirm the update budget: is an update per animation frame acceptable, and must the highlight survive seeking backwards?
Strong answer should cover
- Drive updates from a requestAnimationFrame loop that reads the current time, not only from the coarse timeupdate event.
- Map time to a segment with a binary search over sorted start times, and cache the last index to make the common forward step cheap.
- Update only the active segment so a long transcript does not re-render on every frame.
- Handle pause, seek, playback-rate changes and the end of playback explicitly, and keep the highlighted element in view without hijacking the reader's scroll.
Common miss: Relying on the timeupdate event alone, which fires a few times per second, so the highlight lags and skips short words.
Practice high-frequency UI updates (Premium) Prompt 2
Design a review and collaboration interface for a voice-dubbing project
An editor manages a dubbing project in a spreadsheet today. Design the interface that replaces it: review progress across languages and lines, collect and resolve feedback, and let voice actors collaborate without overwriting each other.
Practice version modelled on a reported round: Public report: ElevenLabs candidate-sourced question bank on Aced, October 2026
What this measures
Product decomposition, state ownership across roles, review and approval workflows, optimistic edits with conflict handling, and what to show when a job is still processing.
Clarify first
- Confirm the unit of work (a line, a segment, a whole language track) and who may approve, reject or re-record it.
- Confirm whether generation and review happen in the same screen and what the latency of a regenerated line is.
Strong answer should cover
- Model the project as entities with explicit status per line and per language, owned by one store, with comments attached to a line version rather than to free text.
- Separate the review queue from the editing surface so an editor can work through feedback in order.
- Make every long-running action visible: queued, processing, ready, failed, with a retry that does not duplicate work.
- Handle concurrent edits with versions and a clear conflict message instead of silent overwrites.
Common miss: Designing the happy path only, with no story for a failed regeneration, a stale comment or two people editing the same line.
Work through the AI-assisted review flow case (Premium) Prompt 3
Fix a practical React problem live with the interviewer
You receive a small working app with a real bug: a result that lags behind the input, an effect that runs with stale values, or a request whose late response overwrites a newer one. Reproduce it, explain the cause and fix it while talking.
Practice version modelled on a reported round: Public report: ElevenLabs senior full-stack (frontend-leaning) interview account on Aced, 2026
What this measures
Reading unfamiliar component code, reproducing before editing, reasoning about effects, closures and request ordering, and communicating a root cause under time.
Clarify first
- Ask how the bug was observed and whether you may change the component contract or only its internals.
- Ask whether a test exists that should go green, and how the interviewer wants decisions narrated.
Strong answer should cover
- Reproduce the bug first and name the state that is wrong before touching code.
- Look for the usual causes: a stale closure captured by an effect or timer, a race between overlapping requests, or derived state computed from a previous result.
- Fix the cause with the smallest change, keep behaviour and test ids intact, and say what each edit does.
- Add the guard that prevents the regression, such as a latest-request check or a cleanup in the effect.
Common miss: Patching the symptom, for example forcing a re-render or adding a delay, while the race or stale closure stays in place.
Fix the async race in fetchWithCache Prompt 4
Clear a timed assessment that mixes React tasks with medium algorithms
Four questions in about ninety minutes: React tasks alongside medium algorithm problems such as reversing a linked list or finding the longest substring without repeating characters. Allocate time, ship working code and move on.
Practice version modelled on a reported round: Public report: ElevenLabs senior full-stack (frontend-leaning) interview account on Aced, 2026
What this measures
Time allocation under a clock, clean React fundamentals without a framework crutch, and the ability to produce correct, tested code for mid-level algorithm problems.
Clarify first
- Read every question first and decide the order by expected value, not by position.
- Check the environment: which React version, whether tests run locally and how answers are submitted.
Strong answer should cover
- Give each question a time box and leave a working partial solution rather than an unfinished perfect one.
- For React tasks, keep state minimal and derived values computed, and handle loading, empty and error states explicitly.
- For algorithm problems, state the complexity, write the edge cases first and keep the code readable.
- Reserve the last minutes to run everything once more.
Common miss: Spending half the clock polishing the first React task and leaving an algorithm problem untouched.
Practice the React autocomplete starter against a clock Prompt 5
Stream generated audio and text to the screen without losing control
Build the playback surface for a text-to-speech request: start playing as chunks arrive, show the text being voiced, let the user stop or regenerate, and never let a late chunk from an old request reach the new one. This prompt is derived from the product domain, not from a public report.
What this measures
Streaming reads, request identity and cancellation, media element control, and truthful status while a generation is in flight.
Clarify first
- Confirm the transport and chunk format, and whether playback may start before the whole file exists.
- Confirm what Stop must guarantee: a server-side cancel or only a local abort with partial audio kept.
Strong answer should cover
- Give every generation request a stable identity and ignore chunks whose request is no longer active.
- Use an AbortController for cancellation and release media resources on stop or unmount.
- Keep play, pause and seek controls usable from the keyboard and announce status changes to assistive technology.
- Show queued, streaming, done and failed states, and make regenerate reuse the same request id to avoid duplicate work.
Common miss: Appending chunks to the player without checking which request they belong to, so a regenerated line plays two voices.
Practice reading a stream to text