Application & Online Assessment
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.
Recruiter Call
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.
Technical Interview (Screening + Coding)
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.
-
Outcome
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.
Final Thoughts
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.


