Round 1 - Profile Selection
My profile selection was very unique experience for me. Grab Head of Engineering message me on LinkedIn about his experience and about the massive impact, results through innovation and collaboration, continuous learning and growth in the company. Then he told me about Steve (and ex-Google rockstar developer) whose joined Grab and suggest me to read this blog post Why I left Google to join Grab.
At that time I wasn't looking for the job change but because It was Grab I said Yes. After this, I had a informal call with him. In which he asked me about my current role and projects. The position they were looking for was the iOS Software Engineer for Singapore location. After this, Grab HR contact me via email and schedule my technical interview.
Round 2 - Technical Interview 1 (Time - 1 hr)
Question 1 -
A message containing letters from A-Z is being encoded to numbers using the following mapping:
'A' -> 1
'B' -> 2
'C' -> 3
...
'Z' -> 26
Given a non-empty string containing only digits, determine the total number of ways to decode it.
Explanation
Like if we've 123 as input the we can decode it into following way -
- 123 -> ABC where 1 -> 'A', 2 -> 'B' and 3 -> 'C'
- 123 -> LC where 12 -> 'L' and 3 -> 'C'
- 123 -> AW where 1 -> 'A' and 23 -> 'W'
Question 2 -
Let the depth of a UIView be the number of references to traverse before reaching some root UIView:
Root
/
/
ViewA
-> Depth of ViewA is 1
Given a root UIView, and a target UIView, find all UIViews at the same depth as the target
Explanation
Let's consider we've a root UIView A and a target UIView C as structured below -
A <- Depth 1
B C <- Depth 2
D E F <- Depth 3
So, here the depth of target view C is 2. Now, we've to find the views which at the same depth as view C. So, here we've another view B which depth is also 2.
Round 3 - Technical Interview 2 (Time - 1 hr)
This was a System Design round. The interviewer asked me to design an iOS app for booking a cab. He asked me to design Booking, Payment and Feedback screen. Here the different question he asked me -
- What design pattern you'll use for your app (MVC, MVVM or VIPER) and why?
- Do you know about TDD approach?
- How you'll follow TDD approach in this app?
- Talk is cheap. Show me the code. He asked me to open a playground and write some code like for Models, Service and Network layer.
- Write some test cases for your model.
Round 4 - HR Round
- Why you want to join GRAB?
- Told me about the work company culture
- Some questions based on my resume