Swift Language
0%Weak · 1 criterion
- hit
- 0 hit
- partial
- 0 partial
- missed
- 1 missed
For interviewers
Mark criteria while the candidate talks. Scores roll up by topic. Leave the call with a hire-ready debrief.
From script to feedback in one place.
01
Each question has a format, a prompt, and marking criteria. Topics like Concurrency and UIKit roll up for the debrief — you grade areas, not only answers.
02
One tap per criterion: hit, partial, or missed. The score updates itself; notes stay one keystroke away — built for split attention on a video call.
03
Topic breakdown, an editable hire recommendation, and your notes per question — ready material for written feedback.
Code review, mocks, predictions, live coding — same three taps every time. Only the prompt and criteria change.
Candidate reads the code
A flawed snippet is on screen. You mark what they spotted, what needed a hint, and what they missed — line references stay on the rubric.
timer = Timer.scheduledTimer… self.reloadProfile() // retain?DispatchQueue.global().async {Designer mock on the table
Walk a layout: compositional vs SwiftUI, scrolling, image loading. Same three taps — the criteria are product decisions, not code lines.
designer mock
What does this print?
GCD, ARC, layout math — they reason out loud before you run it. You mark each prediction as you hear it, including deadlocks they catch or miss.
print("A")
DispatchQueue.global().async {
print("B")
DispatchQueue.main.sync { /* … */ }
}Three taps per criterion, as you would on a video call. Open the full demo when you want the complete script and debrief.
Question 1 of 8 · Criteria · ~8 min · Memory & ARC
“What is the difference between strong, weak and unowned references? Use the snippet: why is customer declared unowned and not weak?”final class Customer {
var card: CreditCard?
}
final class CreditCard {
unowned let customer: Customer // why unowned, not weak?
init(customer: Customer) {
self.customer = customer
}
}Criteria — tap what you hear
Tap a row to cycle: hit → partial → missed → clear
Scores come from the marks you already tapped. Change the hire recommendation if your judgment disagrees — then copy your notes into the write-up.
4 of 8 asked · 38:12 elapsed · 4 skipped
Recommendation
Weakest first
Weak · 1 criterion
Weak · 1 criterion
Soft · 1 criterion
Solid · 6 criteria
Strong · 6 criteria
Not covered
4 asked · 4 skipped
NoteConfident. Drew the side table from memory, teardown order correct.
NoteNailed A→I and the G deadlock. Soft on why C drains before E on the serial main queue.
NoteCaught the retain cycle and background UI update. Hasn’t mentioned try! or the IUO viewModel yet.
NoteNamed LLDB, View Hierarchy, and Instruments — light on when to pick each.
Not asked
Run a practice interview before your next hire.
Sign in to create scripts — or open the demo to try marking now.