Message on Whatsapp 8879355057 for DSA(OA + Interview) + Fullstack Dev Training + 1-1 Personalized Mentoring to get 10+LPA Job
0 like 0 dislike
633 views
in Interview-Experiences by Expert (30,360 points)
edited by | 633 views

1 Answer

0 like 0 dislike

This is continuation to the previous Set of Apple Interview Experiences

So Check that out first before reading this one


Virtual onsites (beginning of February 2022) [part 2]
Just as with part 1, I had little to no information about what is going to be there, so I was brushing up my knowledge of algo, system design and Java at the same time. Guess what I got? OOP!

6th round (1hr, evening)
This round consisted of 2 questions, each taking approximately 30 minutes.

Problem #1
The first one turned out to be an OOP-design question, which is quite popular on the internet. The day before I had been preparing for system design, since I didn’t know what the interview was going to be about, and I had checked one OOP design question as well to get the basic concepts. Basically, one needs to clarify the scope, define relations and then create basic entities [classes]. Since this is pretty close to real work problems, it doesn’t sound really challenging. However, I struggled a bit when I was asked to implement some custom piece of logic where the classes intersected. The interviewer looked satisfied though since this implementation was required just to check that my model correctly defines all the relations, and that necessary functionality can be achieved using the structure I suggested.

Problem #2
The second problem was a plain algo one. I was asked a question which is there on LeetCode, and I usually solved it using recursion and ignored the alternative iterative implementation justifying it with “well, nobody’s gonna ask me explicitly to implement it iteratively, it doesn’t make much sense”. You guessed it - of course I was asked to implement it iteratively, and my poor attempts to avoid it with “well, recursion is simpler to implement, and I prefer simplicity and readability in production code” were rejected with a polite smile.

And so I started implementing it using a stack, and suddenly I started struggling. I understood that it had been 5 minutes of me saying pretty much the same words and not really writing the working code. Cold sweat started flowing down my back and my face. Since things were going bad, I remembered one hack, which I had used once in some of the mock interviews - this hack is not exactly recommended, but most interviewers are completely fine with it. What I did was I explicitly said: “hey, would you mind giving me just 60 seconds when I won’t talk and just think? I kind of need to concentrate”, and they had no objections. So I covered my face with my hands, ignored the camera and people waiting, and sat thinking as if it was a LeetCode contest when there is nobody around and it’s just me and my coding problem. Suddenly, it hit me - of course, the invariant should be that the leftmost child is in the stack, so when I do a pop, I visit the current node and add the leftmost child of the right child of the current node. So simple. So I removed my hands from my face, thanked the interviewers for waiting, and coded it pretty fast. I had several minutes left, so I tested it on some cases including base ones, and it seemed to work.

Overall, once again I had a nice impression of the guys interviewing me. They both seemed nice and helpful, engaged in the conversation and wanting me to succeed.

7th round (30 minutes, next day evening)
This was not exactly an interview, but rather a get-to-know chat with some senior director. He told me some things like the department structure, how the teams collaborate, what I could expect and so on and wanted to know if I was fine with all I was hearing. Sure I was. He also referred very positively about the manager who had been interviewing me (and who was planned to be my manager in the future), so I started being even more excited about potentially getting the job.

Overall, after the 1st round of these 2 I was pretty sure I wouldn’t make it further. I guess after my Google experience when I thought I had quite nice rounds and was eventually sent to have additional interviews, here I was expecting that since I struggled a bit on both of the questions, that was going to be it.

The recruiter contacted me during the week and said that we need to wait a bit since they are interviewing 2 more candidates for this position.

After 2 more weeks, he called me with some updates:

the first one was that I did quite well (and again, that was the only feedback I could extract) and that I should start thinking about my desired compensation in London;
the second one was that there had been some changes in the team structure, and that I needed to speak to the director once again and to the new manager.
8th round (beginning of March 2022, 15 minutes)
We had a chat with the same director as before. The update was that the manager who had interviewed me thrice decided to leave the management position and become an individual contributor again. So I was going to potentially have a new manager who - unlike the previous London one - would be sitting in Cupertino. This time he referred super nice to the new manager, saying they had known each other for a long time and that he is very technical and proficient in the job. I appreciated a lot that the director took his time to call me to make sure I was fine with these changes and that I was ok to proceed with another manager. This kind of added to the picture I had already been having that this team / department does care about the happiness of their candidates and employees and their feelings. Especially this contradicted the experience I had at Google before - where with several interviewers it was like interacting with a [well-designed] robot.

Still, I was a bit worried regarding my talk with the new manager. I kind of liked the previous one after the 3 interactions we had - he seemed to have nice British humour and to be both technically and empathically developed.

9th round (same day, 30 minutes)
So I had a call with the new manager. He asked me some things slightly resembling a behaviour interview, but not a classic one. E.g. there were no “tell me about a time when…” questions, but rather “tell me, what keeps you motivated after 6+ years of developing software?”. He was also keen to know about how I came to development at all given I started my career in technical support.

Overall, I liked him so much that I couldn’t believe it. He just seemed to be so calm, understanding and confident at the same time, that I couldn’t but enjoy talking to him. And if he was going to be my manager, that was like the perfect combination which I could think of.
Actually, the impression he made on me during this talk and another one we’ve had recently (discussing some details to be settled before I start working) kind of deserves another article, so let that be it here.

So a couple of days passed, and the recruiter called me and asked for compensation numbers. I wasn’t entirely prepared to have this conversation, and I wanted to at least know if they for sure wanted to proceed with me and which career level would that be. However, after getting some numbers from me he only said that he would call back, without confirming anything at all.

Then a couple more days passed. He called once again, and said that they will definitely give an offer, and that it was going to be ICT4 which is apparently a senior role. He said it was a tribute to how well I did in the interviews, which I was so surprised to hear since I didn’t have that impression myself. However, the compensation I asked for was in the bounds of ICT4, not ICT3, so it may have made an effect as well - not sure about that.

The rest of the process story is not really interesting. We negotiated the numbers a bit, it took about 2 weeks more for me to receive a written offer (at the end of March), and that was it.

by Expert (30,360 points)