Facebook | Android E4 | Remote | Reject

facebook logo
facebook
android e4remoteRejected
August 17, 20210 reads

Summary

I interviewed for an Android E4 role at Facebook, navigating a technical phone screen and a four-round virtual onsite focused on coding, system design, and behavioral aspects. Despite successfully resolving most challenges, my application ultimately resulted in a rejection.

Full Experience

Technical Phone Screen

My interview process began with a technical phone screen. I was given two coding questions, with no Android-specific problems. I successfully resolved both problems within 40 minutes, which allowed me to proceed to the virtual onsite interview.

Virtual Onsite Interview

The virtual onsite consisted of four rounds: two coding interviews, one system design interview, and one behavioral interview.

1st Coding Round

In this round, I encountered two coding problems. I managed to resolve both questions in under 40 minutes. For the first problem, I achieved an O(n^2) solution, and for the second, an O(nlogn) solution.

2nd Coding Round

The second coding round also presented two coding questions. I resolved both of these within 40 minutes, delivering an O(n) solution for the first problem and an O(n^2) solution for the second.

Design Round

The design interview focused on designing the Instagram home screen. After clarifying the requirements, I discussed authentication with Facebook, how to handle a large volume of posts, the constraint of each post having only one image, liking/disliking functionality, displaying user profile photos, and critically, how the app would support an offline mode. My discussion covered RecyclerView optimizations, image caching strategies (including the underlying mechanics of libraries like Glide/Picasso), WorkManager, batching requests, and pagination. I was initially quite nervous about this round, but I felt I performed really well in the end.

Behavioral Round

This round was primarily a conversational interview. I was asked to share examples from my past experiences related to specific situations, such as receiving ambiguous requirements or working with colleagues I disliked. I believe I handled the initial part of this round effectively. Towards the end, I was given a coding question which I resolved pretty quickly with an O(n) solution, although I think I might have missed some edge cases, like empty spaces at the beginning of the input. However, the interviewer seemed content with my solution.

Interview Questions (9)

Q1
Product of Array Except Self
Data Structures & Algorithms

Given an array of n integers, return an array of n integers where at each position 0 <= i < n contains the multiplication of all the integers in the original array, except the one at the position i.

Q2
Random Pick Index of Highest Number
Data Structures & Algorithms

Given an array of n integers, return using a normal distribution any index i that belongs to the highest integer in the array. This is similar to LeetCode problem 'Random Pick Index', but the target is specifically the highest number in the array.

Q3
Valid Palindrome II
Data Structures & Algorithms

Given a string s, return true if it is a palindrome, or if it can be a palindrome after deleting at most one character.

Q4
Next Permutation
Data Structures & Algorithms

Given an array of n integers, return its next permutation.

Q5
Minimum Add to Make Parentheses Valid
Data Structures & Algorithms

Given a string with parentheses, return how many parentheses we need to add to make it valid.

Q6
Remove All Adjacent Duplicates In String
Data Structures & Algorithms

Given a string, simulate the 'deletion' process similar to Candy Crush in 1D. The resulting string should not contain two identical characters next to each other.

Q7
Design Instagram Home Screen
System Design

Design the Instagram home screen, including requirements such as authentication with Facebook, handling a large list of posts (each with one image), like/dislike functionality, displaying user profile photos, and supporting an offline mode.

Q8
Behavioral Questions: Ambiguous Requirements, Disliked Coworker
Behavioral

Behavioral questions involved discussing past experiences, specifically situations where I faced ambiguous requirements or had to work with someone I disliked.

Q9
String to Integer (atoi)
Data Structures & Algorithms

Given an array of characters, return its number representation, ignoring any characters that are not numbers.

Preparation Tips

My LeetCode preparation involved completing 64.2% of easy problems, 49.3% of medium problems, and 35.3% of hard problems. I also practiced competitive programming on Codeforces.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!