Round 1 - Profile Screening
Zomato HR contacted me via LinkedIn. After expressing my interest in the position HR set up a quick phone call. In this call, HR told me about the Zomato Z products and it's existence. HR told me about different kinds of Z product (Zomato Product) also there are many in the pipeline. Also, HR asked me about my experience and some basic details about the current and previous company. Here if you have any questions about Zomato, or around the role that you are applying for, you can ask them in this round.
Round 2 - Profile Selection
- Is ARC is run time or compile time feature?
- What is
mutatingattribute in Swift? Does it create a new object of self open calling a object? mutatingmethods can assign an entirely new instance to the implicit self property.- Are Swift
@objcand Objective-cdyanmicattribute doing same thing? - Are method in a
structdynamically dispatch? - Can you override a
convenience init? - Is
deinitfunction available in struct? - Can we use the
weakattribute to aenumproperty? - Can we use core data managed object (
NSManagedObject) on the background thread? - By using
finalkeyword, do all the method in that class is statically dispatched? - Is
connurentandparerllelindication is same thing? - By using
public, can we subclass a class outside the it's framework? - Are function reference type or value type?
- If start from the
NSObjectand move toward theUIButtonwhere theUIResponderlies beforeUIViewor afterUIView? - Can you use
Anyas key type in dictionary? - Do you have an iPhone or Android?
- What is one feature you want to put in Zomato app?
- Top 5 compnies you want to join?
- Any question from my side?
After the Profile Selection round, I got a call back after 2 days and HR told me we are proceeding now with face to face interviews for that they told me to come to the Zomato Gurgaon Office. There will a total of 3 rounds in which 2 will be the technical interview and 1 HR round for formalities and offer. This complete process will take 1 complete day.
Round 3 - Technical Interview 1 (Time - 1 hr 30 min)
Initially, there was some basic questions like about yourself. work history etc. Here are the main iOS related question from this round -
- What is your favorite project you've ever done?
- What'll be the output of following code and why?
func someMethod() { print("A") DispatchQueue.main.async { print("B") DispatchQueue.main.async { print("C") DispatchQueue.main.async { print("D") DispatchQueue.main.async { print("E") } } } DispatchQueue.global().sync { print("F") DispatchQueue.main.sync { print("G") } } print("H") } print("I") } - Write an
Arrayextension that eliminate the consective duplicate. Like -input = ["a", "a", "a", "a", "b", "c", "c", "a", "a", "d", "e", "e", "e", "e"] output = ["a", "b", "c", "a", "d", "e"] input = [1, 1, 2, 3, 3, 2, 1, 1, 4, 4, 5, 5, 5] output = [1, 2, 3, 2, 1, 4, 5] - What'll be the output of following code and why?
class Iterator: IteratorProtocol { var (x,y) = (0,1) func next() -> Int? { (x,y) = (y, x + y) return x } typealias Element = Int } let value = AnySequence{Iterator()} if let result = value.first(where: {$0 > 5}) { print(result) }else { print("Out") } - Implement your own
NSRanageisOverlappingfunction.func isOverlapping(range1: NSRange, range2: NSRange) -> Bool { return }
Round 4 - Technical Interview 2 (Time - 1 hr)
Same as the previous round, initially, tell me about yourself, work history, etc. Also. most of the question was same as the previous round. I don't know why they didn't sit together and took both round combines. Like, the Interviewer of this round also asked me the NSRange question and when I told him the previous round interviewer also asked me the same question should I do it again? then he is like ok leave it. After this, the interviewer only asked me the theoretical questions. So, here are the question from this round -
- What is static and dynamic dispatch?
- What is the difference between
classandstruct? - What is the difference between ARC and Non-ARC?
- How class and struct are stored in memory? Which type of memory? Why?
- What are
strong,weak,atomic,nonatomic,assign... etc? - What is the difference between call by value and call by reference?
- Can we achieve the call by reference instruct? If yes, how?
- Explain to me, how you'll find if two LinkedList are intersecting each other?
- How you'll find if there is a cycle on LinkedList?
- How enum are different in Swift from Objective-C?
- Where you'll use a class? where enum? and where struct?
- Any questions from my side?
Round 5 - HR Round
- Some questions based on my resume
- What made you interested in Zomato?
- Offer discussion.
- Discussion about how Zomato is expanding around the globe.
- Discussion about open work culture etc.