Recently many students are asking Apple What is the style of interview questions? During this period, Apple interviews appeared more often in various forums, and many people sent private messages asking what types of questions would be asked in real technical interviews. I happened to review a relatively typical Apple software engineer technical interview recently, and the question types were actually quite representative. This article will sort out the three-round technical interview process and provide a reference for students preparing for Apple interviews.

Timeline
11.28 First round of technical aspects
12.12 Round 2 + Round 3 (completed on the same day)
The overall pace is not particularly fast, but the last two rounds are completed back to back, with basically no buffer time in between. After the first round, it took some time before the subsequent interviews were arranged, but the intensity of the two consecutive rounds on the second day was still quite high.
Round 1: Event Log compression storage system
The first question gives a system that continuously receives event log. Logs are incremented by timestamp, and each entry contains timestamp and eventType. The same eventType may appear many times in a short period of time. If all are stored as they are, a lot of memory will be wasted.
It is required to complete compressed storage during real-time append and support subsequent queries.
Voice prompts students: Think about consecutive repeated events. Is it necessary to save 10,000 events?
Students answer using segment: eventType, startTime, endTime, count.
The interviewer asked: "What should I do if I query a certain time interval?"
Voice prompt: binary search.
The interviewer continued to ask:
"What if timestamp is not incremented? What is the insertion complexity?"
Round 2: Multi-version configuration system
The second question is a multi-version configuration system. The system has multiple configuration sources, each of which is a key-value map. Each update generates a new version number. It is now necessary to support querying the final effective value of a key under any historical version, and to configure a priority override relationship between sources.
Voice prompts students: Don’t save the complete snapshot, only save the delta.
Student answer: Only the modified key is recorded each time, and the query searches upward along the version chain.
The interviewer asked: "What should I do if the version chain is very long?"
Voice prompt: You can add index or jump search.
Round 3: Task scheduling with Group constraints
Given a set of tasks, there are dependencies between them forming a DAG. At the same time, each task belongs to a certain group. Tasks in the same group must be executed serially in strict accordance with the order of submission. Different groups can be executed in parallel.
It is required to output a legal execution sequence, and try to start the task as early as possible under the legal premise.
Voice prompts students: The group order can also be converted into dependent edges.
Student answer: Add dependent edges to adjacent tasks in the same group, and then perform topological sorting.
The interviewer asked: "Will there be loops when constructing the map like this?"
Learn more
After the entire interview, it can be found that Apple's questions test more abstract abilities and modeling ideas, rather than simple algorithm questions. Issues like log compression, versioned storage, and DAG task scheduling are easy to get stuck in if you encounter them for the first time. If you are also worried about encountering similar situations in interviews at Apple or other major companies, it is better to learn about our VO remote assistance service , has so far helped hundreds of students get offers successfully, making interviews less confusing, thinking clearly, and greatly improving the success rate.