Timed thinking on this page. Implementation in blank Xcode. Cursor only for debrief.
Drill A · Coding thinking (25 min)
25:00
Prompt (pick one)
LRU Cache - get/put O(1), capacity eviction
Valid parentheses - multiple bracket types
Two sum - return indices; discuss map vs sort+pointers
On this page (first 8-10 min)
Restate problem + constraints
Brute force, then better plan
Structure choice and why
Edge cases
Complexity
Then
Implement in a blank Swift file / playground with no Cursor. Narrate out loud.
Cursor debrief (after timer):
Here is my timed plan and final code for [problem]. Critique like an Apple interviewer on: structure choice, edges, naming, what I should say sooner next time.
Drill B · API design (15 min)
15:00
Fill the template for: empty / loading / error wrapper OR measurement overlay.
Problem (one sentence)
Caller writes (ideal call site)
Hidden internals
Defaults
Hard no
Edge cases + a11y
Why not alternative B
Drill C · Project deep dive (10 min)
10:00
Record a voice memo answering:
Walk through Takeoff or Cursor Widget architecture
Hardest UI/performance bug and fix
SwiftUI vs AppKit/UIKit choices
One component you would publish as an API - call site?
Day 7 full mock
Drill A (25)
Drill B (15)
Drill C (10)
10 min rest + Cursor debrief on A only
Definition of ready: clear talk track, LRU explain under 60s, one project story with tradeoffs.