Verkada·Software Engineer·Technical Phone Screen
Apr 2026
Verkada Software Engineer interview with a pretty gnarly JavaScript problem about building a frame-by-frame media player controller from scratch. The question covered a lot of ground: timer scheduling, closures, edge cases, the works. Felt more like a system design and coding hybrid than a pure algo round.
- Implement a JavaScript media player controller that supports frame-by-frame playback with configurable FPS, exposes a clean API (play, pause, seek, setFPS, currentFrame, isPlaying), and handles timer scheduling correctly using closures to encapsulate state.
- Compare setTimeout vs setInterval vs requestAnimationFrame for scheduling frames in a browser media player. What are the tradeoffs and which would you choose?
- How would you handle edge cases like seeking while the player is already playing, receiving an invalid frame index, reaching the last frame, and resuming after a pause?
“This was a lot more than just 'write some JS.' I started with a closure-based module pattern which felt right, but then got into the weeds on timer drift pretty fast.” The rest of the author's notes on Software Engineer interview at Verkada, Technical Phone Screen round, covers how they worked through the question, what the panel pushed back on, and what they would do differently.
View Post