Round 1 - Profile Selection
Go-Jek 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 Go-Jek products and it's existence. Also, HR asked me about my experience and some basic details about the current company. Here if you have any questions about Go-Jek, or around the role that you are applying for, you can ask them in this round.
Round 2 - Assignment
After the phone call. HR sent me an email with a problem statement. I've to submit the solution in 5 days. Here the guideline which I've to follow -
Your selection chances are higher if
- You use the latest version of Swift
- You adhere to Apple's Human Interface Guidelines and coding conventions
- Your app performs well in terms of CPU, memory and energy usage
- Your code is loosely coupled, testable and uses an architecture similar to VIPER, MVVM, MVP, etc.
- You tastefully customise the UI and add animations etc.
- Your app does not have too many dependencies on third party frameworks
Your application may reject if
- Your project fails to compile or compiles with warnings with the current version of Xcode
- Your app does not layout correctly for all iOS devices that can run the current release of iOS
- Your app has UI/logical flaws that make it difficult to use
- You do not have UI and unit tests in your application with decent code coverage
- Your UI/unit tests fail
- We expect you to use git and commit frequently
- You should submit your solution to us as a zip archive
- The zip archive should also include your git commit history
- Please use system fonts everywhere. It’s not important to match the font size with the design, but you can infer the sizes from the designs
You can find the complete problem statement with a solution here.
Round 3 - Assignment Review
Once I submit the solution, Go-Jek evaluates it by an automated system that validates basic hygiene factors like if code contains git logs, readme or not, etc..., and if that clears, a senior GO-JEK engineer check quality and design. The problem statement has the above rules. So, pay attention to them.
Go-Jek HR reply me after 3 days by saying, I'm happy to inform you that you are a "pursue" from the assignment stage and we'll soon be scheduling further rounds of interviews for you. After this, I choose the day that I want to go to the Interview. You can choose a day based on your convenience.
Round 4 - Technical Interviews
After that, HR invite me to Go-Jek office for further F2F discussions. HR told me about their process -
- Please carry your laptop.
- Technical Interviews: There will be 2 technical interviews
- Duration: About 1 hour each
I reached on time. 10 min later interview get started. They've asked me serval questions some of them are here.
Technical Interviews Questions
There were two interviewers. They asked questions regarding my Assignment, Swift Programming Language, iOS Development and some other questions.
Why you didn't use any third party?I told them, I can use but I didn't use because as per you selection criteria I've to use minimum third party libraries.
If you've to use third in your assignment then which component you will replace with which library?I told them, I'll replace the networking layer with Alamofire and Moya and Observer models with RxSwift.
Swift Programming Language
- What are the different type of Access Control in Swift?
- Can we access
fileprivatefunction or properties in different class which available in the same file?
- What were the changes if you'll use
privatebefore Swift 4 and after Swift 4?
- If you pass a
classwill it create a retain cycle or not?
- If you pass a
structwill it create a retain cycle or not?
- What are ARC and non-ARC?
- Will you make
strongif you are using Storyboard?
- Will you declare
strongif you are creating a view via code?
- How extension memory gets associated with the main class which we are extending?
- How you write Unit and UI Test cases in your current project?- How much code coverage your current project have?
- Which kind of UI Test case do you write?
- What is TDD? How you'll follow TDD in a project?
- What is Coordinator Design Pattern?
- What is the most challenging task you’ve ever done?
- What is your favorite project you've ever done?
- Anything you've ever done something different which you want to teach us?
- If you want to remove a third party from application how you'll convince your project manager to do that? Explain in non-coding terms.
- If you've to choose between the monolithic repository and micro repositories which one you'll choose and why?
Round 5 - HR Round
- Your aspirations and expectations from GO-JEK
- Their expectations from you
- Some questions related to your background
- Offer related conversation