[Continue from part 4]
This was the first time I had ever been in Singapore. Everything looked so modern and clean. After bouncing around the Changi Airport with admiration, I headed to my accommodation, which was the InterContinental 5-star hotel. Facebook was so generous with their budget.
The hotel was located very close to the Facebook Singapore office, only about 10-minute walk. I spent the first day touring around Singapore with my wife, basically we were just walking around the area near the hotel. I was impressed by how developed Singapore was. The streets were wide, clean and full of cars. There was no chaos. Everything ran swiftly in order. Even the street signs made me surprised because of their big size and cleanliness.
The next day, I had an early breakfast, walked to the Facebook office and arrived there at 8:30 am. I showed my passport to the receptionist. She gave me a visitor card to wear on my neck. Then she led me to the elevator and selected the floor for me.
Stepping out of the elevator, I noticed a big Facebook logo. I knew I was in the right place. One Facebook employee (I guess she’s a recruiter in Singapore) greeted me and took me to a registration counter where I had to fill in my personal information and signed an NDA (non-disclosure agreement). It meant that I could not tell anyone about the questions asked during this onsite interview as well as any important product information that I might see around the office. Because of this, I won’t be able to share with you the actual interview questions that I was asked, but I believe I can share about my experience in general.
After signing the NDA, I waited at a sofa in the guest area of the office. I met some other candidates there too, most of them were Indian. We talked a bit to get to know each other. Then one Facebook employee invited us to a meeting room. They started to explain about today’s schedule. It looked something like this:
- You will have 4 interviews in a row (from 9:30 am - 1:30 pm), each lasted exactly 45 minutes, then 15-minute break in between.
- You will sit in the same room where interviewers would go in and out to interview you.
- If you need to go to the toilet, you should ask a coordinator to escort you.
- There will be no lunch provided. After finishing 4 interviews, you shall leave the office right away.
After the brief, a coordinator escorted me to a room. I waited there for a few minutes. And then the interview begun.
First interview: Coding/Algorithms
An American young man entered my room. We introduced ourselves and he started asking about some iOS questions. Then he went to the whiteboard and asked the first coding question. It was not difficult though. I was able to solve it fast enough.
Then we moved on to the next question, which was a bit more complicated. It took me some time to figure out the solution. I noticed that the interviewer was very attentive. He even gave me hints whenever I was on the wrong direction. I solved the second problem within the time limit and had about 5 minutes to ask him some questions about Facebook. Then he left the room.
Even though I’m not allowed to share the question details, I might say that the first question usually involves the use of “Dictionary” or “HashMap”, whereas the second one will be more about “Tree” or “Recursion”. The difficulty level will be at “Easy” or “Medium” on Leetcode.
Second interview: Career & Culture
This time, I interviewed with an engineering manager. He focused mainly on my work experience, my iOS projects, some challenges that I had overcome, some situations on how I resolve conflicts when working with colleagues and bosses, etc. He didn’t talk much and just let me lead the conversation.
After some time, he started to ask one algorithm question. It was easy so I finished pretty fast. Then the round ended.
Third interview: Architecture design
This interview was the most challenging to me. Not only did I not know the right answer, but I was also not sure how to explain my design properly.
At first, I drew a high-level diagrams. Then he asked me to dive deeper into one component and write some interface code. As I was explaining my approach, he asked deeper and deeper until it became clear. Then we moved on to talk about the next component in the system. We went on like this until we finished all the components.
Again, I can’t tell you the actual question but I think it only focused on very fundamental knowledge:
- How to design a network layer.
- How to cache data on mobile.
- How to handle lazy loading on a list.
- How to perform pull to refresh and load more mechanism in a list.
- How to handle heavy image loading.
- How to communicate with the backend in terms of requests/responses to support this design.
This architecture interview was the one that I felt the least confident about.
Forth interview: Coding/Algorithms
This one was quite similar to the first interview. I still struggled a bit but was able to solve 2 questions on time.
End of the onsite interview
As I completed my forth interview, the coordinator went to my room and gave me a gift. It was a fabric bag with a Facebook logo on it. Inside, there were a notebook, a pen and some candies. “That was sweet. Thank you”, I smiled at him.
Then I left the office. I couldn’t say I was very confident about my interview performance but I believe I was doing good, at least to my judgement. I decided to call it a day and smiled happily along the way back to my hotel. I was super excited to tell my wife about my interview experience.
[Stay tune for tomorrow’s post as it will be the last part, which is “My interview result”]