**Interview Process**
I interviewed at Open Path Products in 2024.
**Process:**
The interview consisted of 4 rounds over about 2 weeks:
1. **Coding Puzzle (Remote)** - Found and solved a cipher puzzle on their website. Required work to locate the actual puzzle file, then fixed compilation errors and decoded a shifted cipher message.
2. **Behavioral with CTO (30 min, Phone Call)** - Standard behavioral questions: background, concurrency experience, reasons for leaving current role, salary expectations, commute logistics, and thoughts on AI.
3. **Behavioral with CEO (20 min, Phone Call)** - More behavioral questions including deadline management, language proficiency ratings, strengths/weaknesses, 5-year goals, project management and QA experience.
4. **Final Round (1hr 20min, In-Person)** - Mix of behavioral and technical with CEO, CTO, and mobile development lead.
**Technical Topics Covered:**
- **Swift Concepts**: Optionals, OOP principles, protocols, async/await vs GCD, escaping vs non-escaping closures, Swift 6 features, access control modifiers
- **Swift Debugging**: Given buggy code for a load testing application. Had to identify missing protocol conformance, use correct initializer, and implement request timing functionality
- **REST API**: Discussed HTTP request/response structure, headers vs body, status codes, and how I implemented RESTful principles in previous backend work
- **Networking (OSI Model)**: Given a scenario about diagnosing network connectivity issues with a private server. Expected knowledge of OSI layers and bottom-up troubleshooting approach
**Questions I Asked:**
- Team structure and development processes
- Technology stack and architecture decisions
- Growth opportunities
**Overall Experience:**
The process was thorough and well-structured. I enjoyed working on the puzzle and it's way better than LeetCode. Technical questions were practical and relevant to the role. The networking portion emphasized the OSI model knowledge mentioned in the job description. The team was professional and engaged throughout. Would recommend reviewing networking fundamentals and REST API principles before interviewing.
**Difficulty:** Average
**Interview Questions:**
- Explain the difference between async/await and GCD in Swift
- What are Swift's access control levels and the difference between open and public?
- How would you implement request timing for load testing?
- Explain the OSI model and how you'd troubleshoot network connectivity issues