Zomato iOS Interview Experience and Question

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 mutating attribute in Swift? Does it create a new object of self open calling a object?
  • mutating methods can assign an entirely new instance to the implicit self property.
  • Are Swift @objc and Objective-c dyanmic attribute doing same thing?
  • Are method in a struct dynamically dispatch?
  • Can you override a convenience init?
  • Is deinit function available in struct?
  • Can we use the weak attribute to a enum property?
  • Can we use core data managed object (NSManagedObject) on the background thread?
  • By using final keyword, do all the method in that class is statically dispatched?
  • Is connurent and parerllel indication 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 NSObject and move toward the UIButton where the UIResponder lies before UIView or after UIView?
  • Can you use Any as 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 Array extension 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 NSRanage isOverlapping function.
    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 class and struct?
  • 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.

You've successfully subscribed to Developer Insider
Great! Next, complete checkout for full access to Developer Insider
Welcome back! You've successfully signed in
Success! Your account is fully activated, you now have access to all content.