I've been applying to Apple on and off for the past 2–3 years. This time, I finally received an online assessment link for the IC3 Frontend Engineer role.
Assessment Format:
Duration: 1 hour
2 Coding Questions (DSA + JavaScript):
These were a mix of JavaScript and Data Structures & Algorithms — designed smartly to test both areas in tandem. The difficulty was easy to medium, but the time constraint made it challenging.
20 Multiple Choice Questions:
Covered core JavaScript, React, and Frontend Engineering concepts.
Overall Assessment Difficulty: Medium to Hard, primarily due to the tight time limit.
About a week later, I received a call from an Apple recruiter.
What we discussed:
My reason for looking out
Why Apple?
Compensation expectations
The recruiter was friendly and professional, and after our chat, I was moved to the next round: the technical interview.
This was a 60-minute video interview with an Apple engineer.
React Output-Based Question
The interviewer showed a small React code snippet involving the useContext API.
I was asked to predict the output and explain the reasoning.
I stumbled a bit but managed to convey my understanding.
Follow-up questions on React hooks:
useContext: its use in prop drilling and state management
useMemo & useCallback: optimizing performance in React components
Tip: Be crystal clear with hook behaviors under different re-renders and props changes.
Nested Tabs Rendering Problem (Coding Round)
This was the main coding challenge — and also the most interesting one.
Problem Statement: Given a flat array of tab objects with id, name, and parentId, render a nested tab or accordion structure in React where each tab appears under its parent.
Sample Input JSON:
[
{ "id": 1, "name": "Parent 1", "parentId": null },
{ "id": 2, "name": "Child 1.1", "parentId": 1 },
{ "id": 3, "name": "Child 1.2", "parentId": 1 },
{ "id": 4, "name": "Parent 2", "parentId": null },
{ "id": 5, "name": "Child 2.1", "parentId": 4 }
]
Objective:
Transform this into a nested UI structure, like:
- Parent 1
- Child 1.1
- Child 1.2
- Parent 2
- Child 2.1
My Approach: Converted the flat list into a tree-like structure using a map and used DFS to render tabs recursively.
I was able to solve it and explain my logic clearly. The interviewer seemed satisfied.
Web Security Basics
Finally, I was asked a few questions on web security:
How can we secure a website?
Topics like HTTPS, Content Security Policy (CSP), CORS, and securing cookies came up.
After 4 weeks, I heard back from the recruiter:
“Someone else has joined for this position. We'll reach out if similar roles open up.”
Yes, I felt a little disappointed. But I was also genuinely happy knowing someone else just got their dream job. That's life.
If you're preparing for top tech companies — keep going. Sometimes, it’s not about you — it's about timing and fit. Every interview teaches you something. Every rejection gets you closer to that "yes."
So keep building, keep learning, and keep hustling. Your moment will come.