⏱ 0:01est. 9 min
Gojek
/*
Coding 90 min, live coding
- UI problem, js, framework. Test question
- 15 min before get question before the test so that
- Data structure
Problem solving round
- 1 hour
- Alog, FE problem solving.
- How you approach the problem
- System design
- How you understand
- Design pattern
- Scaling problem
- 1 hour
- final interview
- Headd of department
- culture fit
https://github.com/kamleshchandnani/awesome-interview-processes/blob/master/content/companies/06-gojek-tech.md
https://leetcode.com/discuss/interview-experience/1373519/Gojek-or-Lead-Software-Engineer-Front-End-or-Bangalore-or-June-2021-or-Offer/1030803
Q: design and write code for parking lot.
Q: design elevator
System design for a movie ticket booking system
---
1. Round 1(Code pairing): Design Parking lot
2. Round 2: Design Elevator
3. Round 3: Design a system in which drivers of gojek are rolled out cashbacks based on their weekly rides count.
---
Background:
Status: Masters from Tier 2 College
Position: Senior Software Engineer
Experience: 9 years
Tech Stack: Mostly worked as Front End Engineer with TypeScript and React.js, but also have hands on experience in Java, Node.js and bit of Go and Python.
Applied Directly in Gojek careers portal around May 2021. After the initial recruiter call , the interview started around in end of May 2021.
Technical Coding (1.5 hours):
Problem statement was sent 1 hour before the actual coding interview session. It was to build a image search app. Similar to Google Image search which should contain Search Input, API to fetch result. Completed most of the work , except Pagination which is bonus points.
Onsite ( 3 rounds ):
Technical discussion ( 1 hour ):
Mostly discussion about previous work and the challeges faced. Questions like: How would make sure good quality, How would you review others code, React js best practices, Simple archiecture for scalable Front End app.
System Design ( 1 hour ):
Started with previous work related questions, then conflict resolution types. Then was give an E-Commerce kind of application and was asked to walkthorough about API Design and Front End components. Apart from this i also explained about Server side rendering, Load balancers, Caching mecahnism as i have previous experience working in a similar app.
Hiring Manager ( 1 hour ):
Similar questions like in previous rounds. But also focused on what is expectation in next roles, future plans in career.
Overall experience: All the interviewers were very friendly and questions were easy i would say. No LC type questions. JS, React and System design capabilities were tested.
Result: Rejected the offer due to low ball. Got a better offer than this.
---
Q: given parking lot application. Add functionality to it.
---
Design Parking Lot and Design Swiggy.
---
1. Assignment- Design OO Parking lot.
2. Code Pairing round - Extension of existing problem with floors in parking lot and even distribution among floors.
---
Design BMS, design snake and ladder
---
Project was based around consuming an API
---
Design Instagram.
---
What is the difference between functional programming and OOP
---
In a taxi hailing service app, given the constraint that map level API and real-time API calls are very expensive to make, how would you go about showing nearby taxis when the user is making making a booking?
1. All taxis send their location to dB in every 2 to 10 seconds depending upon which type of road it is driving(local road, high road, expressway etc) 2. Call an api to get the nearby taxis for the first time 3. Then feed live location of those taxis to those app with Web socket 4. Refresh set of taxy in every 30 sec by another api call to get nearby taxis.
---
writing scalable apis for a car booking App
---
Parking lot pair programming with question on how to refactor the source code.
Follow along the general guideline they provide, do it in pure TDD style. The interviewer will remind you if there are mistakes or skipped steps. Be polite and prepared especially on refactoring, there is no way to explain properly what to refactor without preparation.
---
Design Cleartrip
---
Design Parking Lot and Design Swiggy.
---
1. Design a Parking Lot
2. Refactor Parking Lot Problem for Multiple Parking Lots.
---
string permutations
---
Extension of existing problem with floors in parking lot and even distribution among floors
---
Design a blackjack game
---
So we have an egg and building with 10 floors. What would you do to test the egg's durability?.
---
System design for a movie ticket booking system
---
Features, algorithm, system production setup, REST API design for a Video Recommendation system
---
First Round: Some coding challenge about the parking use case. Not so difficult. Second Round: Design Config service Third Round: Design BookMyShow
---
- Parking lot question. - Extension of parking lot, this would be given multiple parking lots extend your program to support FIFO parking and evenly distributed parking. - Design OOPS for ATM machine.
---
What is Class and Struct difference?
---
What is Class and Struct difference?
---
Design Meeting scheduler ( similar to google calendar)
*/
/*
Six Tips to Build Great Mobile Apps
1. Graphics
A CDN is mandatory for this purpose
Useful Tools: Amazon S3, Amazon CloudFront, Cloudinary, ImageKit, etc.
2. App Versioning
Semantic Versioning and the version name looks like this
v3.32.0 [MAJOR.MINOR.PATCH]
increment MAJOR when you make incompatible API changes or drastic changes — like codebase rewrite or design overhauls.
increment MINOR when you add functionality that’s backward compatible — like introducing a new feature.
increment PATCH when you make hot-fixes that are backward compatible — like fixing a bug in a newly released feature.
3. App Rollout
Every app release should be rolled out strategically instead of releasing it to production to all the users in one shot.
This is where release life cycle plays an important role.
4. Notifications
User acquisition is hard. User retention is harder.
Useful Tools: OneSignal, Pusher, etc.
5. Security
I can’t stress this enough, security of your product can make or break it
*/