I turned 40 and got layoff on April fools day.

It’s not a success story but I want to share my iOS interview experience with Google, Meta and Amazon.

Note

  • I signed NDA. This post does not contains any questions they asked.
  • I’m actively looking for a full-time iOS position. If anyone is interested in my experience, feel free to contact me.

Preparation

After I got layoff, I had a lot of time for preparation.

I practice data structures, algorithms, design patterns, and iOS domain.

Data Structures and Algorithms

There are many useful resources. I choose leetcode and Udemy course.

I paid

Udemy

I like Loony Corn’s course. I learned how to implement common data structures and algorithms.

I posted about basic data structure and algorithms

Leetcode

Is it worth to subscribe it? Yes. It provides questions filter by company. It was very useful.

After 50 days, I got top 6.9% of leetcoders solving problems badge

iOS domain

I visit the following sites every day and post articles

  • Apple Official Document
  • HackingWithSwift

Focused topics are

  • Swift Concurrency (DispatchQueue, Serial/Concurrent, Semaphore, Threading problems and more)
  • Swift fundamentals
  • UIView
  • Core Animation
  • Storage (User Defaults, Core Data, KeyChain and more)
  • Architecture

Mobile System Design

Behavior Interview

I’ve summarized my work experience and data. I practice the STAR (Situation, Task, Action, Result) method to tell my story

CV

My CV pass the resume screening from Google, Meta and Amazon.

Interview with Meta (London, L5 iOS Engineer)

I applied to iOS engineer position without refer. After 1 month, I received email from HR.

After 1 day of screening interview with engineer, I was invited to final stage.

I was expecting offer at that time…

L5 level Interview process was

  • HR conversation
  • Screening Interview
    • 1 session: 45min, 2 coding problem
  • Virtual Onsite
    • 1 session: 45min, behavior interview
    • 1 session: 45min, mobile system design
    • 3 session: 45min x 3, coding interview (each session 2 coding problems)

In my experience with Meta, I learned a lot from interview. HR and Interviewers are friendly. HR guided me how to prepare iOS interviews. It helped me a lot.

I was lucky because they didn’t ask leetcode hard problems. It was medium level and all the questions I solved before. So I solved all the coding problems but some questions I didn’t optimized well.

I think my behavioral interview didn’t go well because it ended 10 minutes early.

Interview with Amazon (Senior iOS Engineer)

I applied to senior iOS position without refer. After 1.5 month, HR reached me.

After HR conversation, I invited phone screening interview.

After 4 day of phone screening interview, I was invited to final round.

Interview process was

  • HR Conversation
  • Phone Screening Interview
    • 1 session: 60min Leadership Principle + Coding
  • Final Interview (60min x 5)
    • 1 session: 60min Leadership Principle
    • 3 session: 60min x 3, Leadership Principle + Coding
    • 1 session: 60+min, Mobile System Design

The interview process is very similar to Meta’s. Only difference is all the interview sessions contains Leadership Principle around 15-25 mins.

My experience with Amazon was good. They provided detailed preparation materials for the iOS position.

After 5 days of final interview, HR called me to share feedbacks from interviewers. (I think If you pass the final rounds, they might send an email not a call)

Interview with Google (iOS Engineer)

Unlike the interviews with Meta and Amazon, to be honest, I had an interview with Google a few years ago, not in 2024.

Interview process was

  • HR Hangout Chat
  • Phone Screening: 60 min, 2 coding problems
  • On Site

In 2020, I was failed at phone screening interview.

My interview experience with Google was good. They used Google Doc for coding interview.

I remember difficulty of coding problem was leetcode medium level.

Conclusion

Initially, I was concerned about my English communication skills. However, I successfully passed the HR screening and technical interviews, and even received positive feedback from behavioral interviews. If you’re worried about your English proficiency, I encourage you not to dwell on it too much. Instead, focus on effectively conveying your experiences, clarifying questions, and demonstrating your passion.

The coding rounds were neither excessively difficult nor too easy – they were of medium difficulty. I recommend practicing basic data structures and algorithms such as Heaps, Trees, Linked Lists, LRU caches, and Graphs. Most FAANG companies don’t require writing compilable code; they’re more interested in your communication skills, problem clarification abilities, approach to breaking down problems, and how you optimize time and space complexity.

For iOS-specific questions, unlike other companies, these tech giants are more interested in mobile system design rather than specific knowledge of the UIKit framework.

For the system design round, I strongly advise practicing extensively. Focus on drawing and explaining high-level components, their interactions, and server communication. Emphasize mobile-side system design.

In behavioral interviews, structure your responses using the STAR format, drawing from your experiences. Share your best stories if possible, and avoid repeating anecdotes in the final stages.

Although I didn’t receive an offer, I hope my experience proves helpful to those considering or preparing for similar interviews.

I’ve also created a GitHub repository to share information about companies that are friendly to native mobile development. If you know of such companies, please feel free to contribute to this resource.

Best of luck to all mobile engineers in your future endeavors!

Leave a comment

Quote of the week

"People ask me what I do in the winter when there's no baseball. I'll tell you what I do. I stare out the window and wait for spring."

~ Rogers Hornsby