PayPal - Senior Software Engineer Frontend Interview Experience
Microsoft SDE2 interview experience
PAYTM - ROUND 1 SDE Java Backend : 2-3 yrs
My Full Meta Interview Experience (Sept–Oct 2025) — Rejected
Senior Software Engineer - Frontend | Okta | Bangalore
Apple | Senior Software Engineer (ICT3) | Offer accepted
Summary
I successfully navigated multiple interview rounds for a Senior Software Engineer (ICT3) position at Apple, including comprehensive coding, system design, and behavioral assessments across two separate interview cycles in 2022 and 2024, ultimately receiving and accepting an offer.
Full Experience
How My Profile Got Shortlisted:
Applying on the career site: It's commonly believed that just applying on a company's career portal isn't very effective. Surprisingly, this was not the case for me with Apple. Although I reached out to people on LinkedIn for referrals, I also applied for multiple positions on Apple's job portal without asking for a referral, and I still received interview calls. What's even better is that Apple allows candidates to be interviewed for multiple positions simultaneously, which was my experience in 2024.
Referral: That said, being referred significantly increases the chances of getting shortlisted. If you don't know someone within the company, reaching out on LinkedIn can definitely help.
Interview Questions (2022 Cycle):
Due to NDA, some questions are slightly modified.
- Online HackerRank assessment: I faced two easy-medium questions with a time limit of 45 minutes.
- DSA round: I was asked to create a phone directory where, given a phone number, I had to return the name (and vice versa). I initially considered a Trie, but a simple two-hashmap approach worked just fine.
- Systems design round: This was probably the most challenging and interesting round. Instead of a standard problem, the interviewer picked one of my past projects and asked me to design a payment system that would work even if the internet was unavailable. The focus was on security, distributed authority, and avoiding a single source of truth. We ended up discussing various blockchain concepts.
- Hiring manager round: The HM first asked me to explain how I would crawl URLs from a webpage and build a map of URLs to HTML pages using BFS. Then, they asked a few behavioral questions about challenges I've faced at work and disagreements with leadership.
- Leadership round: This was more of a discussion about the company's vision, conducted by a skip-level manager.
Interview Questions (2024 Cycle - for several positions simultaneously):
-
Online HackerRank assessment: The format was the same as in 2022, with two medium-level questions.
- Stickler thief in a circular array (with modifications: toys and fun units instead of houses and money)
- Remove adjacent duplicates in string
-
Coding round: This round was quite diverse.
- In an open-ended question, I was asked to design a system that listens to messages related to various events (e.g., movie releases, sports events) from a data source. Each event type had different structures, so I had to decide on a flexible message format like JSON. The challenge was to design an efficient in-memory storage solution for real-time queries and aggregations, such as retrieving the next upcoming movie or the score of an ongoing match. The focus was on creating optimal data structures and ensuring quick, scalable access to the stored information.
- Longest common prefix: I initially used a Trie, but the interviewer asked for an alternate approach, so I switched to iterating through the array character by character.
- Reverse linked list within a range
- Depth of a binary tree
- Design snake game
- I was asked to build a React web page to display GDP data. Even though I hadn't worked with React before, I was allowed to Google during the interview to demonstrate my adaptability.
- SQL-related questions were asked, including querying top employees with the highest salary from each department.
- Optimizing Java code for summing integers:
LinkedList<Integer> list; Long sum = 0; for (int i = 0; i < list.size(); ++i) { Long value = list.get(i); sum += value; }My suggested optimizations were:
- Avoid using
Long(Object) instead oflong(primitive) to prevent memory issues. - Use
Iteratoror switch toArrayListfor better performance withget(index)inLinkedList.
- Avoid using
-
Systems design: This round had multiple distinct problems.
- Design an online block diagram maker app, including real-time updates for multiple users and infinite canvas size management.
- Design a system for managing asset prices, where changes in the price of one asset (e.g., Asset-A) would trigger changes in related assets (e.g., Asset-B, Asset-C) based on predefined relationships. The problem was modeled as a Directed Acyclic Graph (DAG) with weighted edges representing the price change dependencies. My task was to ensure that when a price change occurred, the system would efficiently propagate the updates across the dependent assets while maintaining low latency and consistency, similar to stock trading platforms.
- Develop an app similar to DigiYatra.
- We discussed concepts like Kafka vs. SQS, microservices architecture, circuit breakers, and quorum.
- HM round: This was similar to the 2022 round, focusing on my past projects and behavioral aspects.
Offer:
The entire process took me 1–1.5 months. Apple's offer may not have the highest cash component, but I found the stock component to be very attractive. In my opinion, the culture, perks, and stock performance make it a great offer, which I happily accepted.
Interview Questions (21)
Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. An input string is valid if: Open brackets must be closed by the same type of brackets. Open brackets must be closed in the correct order. Every close bracket has a corresponding open bracket of the same type.
Design and implement a phone directory system where, given a phone number, you return the corresponding name, and vice versa. The system should support bidirectional lookups.
Design a payment system that can function reliably even when internet connectivity is unavailable. Key considerations included security, distributed authority, and avoiding a single source of truth. We discussed concepts related to blockchain.
Explain how I would crawl URLs from a webpage and build a map of URLs to their corresponding HTML content, utilizing a Breadth-First Search (BFS) approach.
I was asked behavioral questions covering my experiences with challenges encountered at work and how I handled disagreements with leadership.
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed. All houses are arranged in a circle. That means the first house is the neighbor of the last one. Meanwhile, adjacent houses have security systems connected, and it will automatically contact the police if two adjacent houses were broken into on the same night. This problem was given with modifications: 'toys and fun units' instead of 'houses and money' in a circular array setup.
Design a system that listens to messages from a data source related to various events (e.g., movie releases, sports events). Event types have different structures, requiring a flexible message format like JSON. The challenge is to design an efficient in-memory storage solution for real-time queries and aggregations, such as retrieving the next upcoming movie or the score of an ongoing match. Focus on creating optimal data structures and ensuring quick, scalable access to the stored information.
Build a React web page to display GDP data. This was an open-ended front-end development task where I was allowed to use Google, demonstrating adaptability, even though I hadn't worked with React previously.
I was asked SQL-related questions, specifically how to query the top employees with the highest salary from each department.
Given a Java code snippet for summing integers in a LinkedList<Integer>, identify and suggest optimizations to improve performance and prevent potential memory issues. The original code was:
LinkedList<Integer> list;
Long sum = 0;
for (int i = 0; i < list.size(); ++i) {
Long value = list.get(i);
sum += value;
}Design an online application for creating block diagrams. The system should support real-time updates for multiple concurrent users and manage an 'infinite' canvas size efficiently.
Design a system for managing and propagating asset price changes. Changes in one asset's price should trigger updates in related assets based on predefined, weighted dependency relationships modeled as a Directed Acyclic Graph (DAG). The system must efficiently propagate updates across dependent assets with low latency and consistency, similar to a stock trading platform.
Develop the system design for an application similar to DigiYatra, which focuses on providing a seamless, paperless travel experience using facial recognition technology.
I was asked to discuss and compare various distributed systems concepts, including Kafka vs. SQS, microservices architecture, circuit breakers, and quorum.
This hiring manager round focused on discussions about my past projects and various behavioral questions, similar to the 2022 hiring manager round.
Preparation Tips
For my preparation, I utilized various resources and methods. I specifically found a Google interview experience blog post helpful for detailing my study approach, which you can find here: Google interview experience blog.