The process included two technical interviews, both focused on practical coding challenges.
1. SwiftUI Project (50 minutes)
A take-home style coding exercise done live with camera and mic on.
Task: build a small SwiftUI app with navigation, lists, search, state management, and simple UI.
Allowed: Xcode documentation.
Not allowed: external articles, StackOverflow, ChatGPT, etc.
No UIKit, only SwiftUI and basic Combine.
Time provided was just enough to complete the assignment.
2. Debugging & Async Challenge (90 minutes)
A senior iOS developer observed while I worked on a prebuilt project.
Three tasks:
Find and fix bugs, memory leaks, and UI issues.
Implement an async operation three ways: callbacks, Combine, async/await (with tests to verify correctness).
Resolve a login issue preventing access to the main app.
Tasks were independent, order didn’t matter.
Time management was supported (observer gave updates every 30 minutes).
Code quality was important, but some Combine examples seemed intentionally confusing or unorthodox.
After the interview, I was allowed two extra days to polish my solution and resubmit even though I have completed all 3 tasks during the interview.
General Impressions
The process was structured and technically challenging, especially around Combine.
Clear time constraints: 50 minutes for the first interview, 90 minutes for the second.
Feedback on performance was not provided after the rejection, which was disappointing.
HR communication was polite, though responses sometimes felt slow or inconsistent.