Question: What steps do you follow to identify and resolve performance issues?
Suggested approach: This is a tricky question to answer because “performance” has many forms. If they mean graphical performance talk about the Core Animation instrument, and don’t be afraid to talk about the cost of Auto Layout in things like table view cells. If they mean code performance then talk about stack traces, retain cycles, unnecessary caches, and similar. And then there's network performance, where you might talk about things such as batching requests to reduce battery wastage or using compression to save bandwidth.
- There are over 100 interview questions in the system. Once you've read the question and come up with a suitable answer, try reading my suggested approach below.
- To see another question just refresh the page; a new question is chosen every second.
- These questions are not designed to be hard; a good interviewer is more interested in generating discussion that lets your ability and interests shine through. The handful that are harder are specifically marked – the majority are suitable for junior to intermediate developers.
- If you answer a question with "yes" or "no" you've missed the point – interviewers prefer you to provide reasoning, explanation, or detail, so try to elaborate with examples!
- If you're looking for detailed technical questions about the language, you should try my Swift test instead – it has three difficulty levels.
- For a whole series of coding challenges, I wrote the perfect book for you: Swift Coding Challenges.