My Interview Exprience with Go-Jek- 7 mins
Let’s start the journey from the beginning 😅.
I was in Bangalore, doing my summer intern with Goibibo, working on some really exciting facebook/react-native projects. Eventually, summers ended, which also ended the internship which I’m going to remember always, and I was again back to college. But who knew that another surprise was waiting for me. After reaching to college, I came to know that Go-Jek was coming to our college, LNMIIT for hiring FTE (Full Time Employees). And here we go with my interview experience.
Note: This opportunity was only open for those, who have made at least a single contribution to any of the open source project. So first round was resume shortlisting. After going through tons of resume, Go-Jek has shortlisted 9 students for next round (for FTE role).
The placement drive was conducted in two days.
On the first day, we had a pre-placement talk, where we came to know about the company, it’s culture, it’s technology, products and much more. They also explained, how the hiring process will be going to take place. First, we were going to have a code pairing round and then face to face technicals interviews. We were asked to bring our own laptops with any preferred IDE installed in it and make sure that the
hello world program is compiling & running properly.
This talk helped us to gain the momentum of the drive.
- Go through the company’s blog and site before attending such pre-placements talks.
- Freely ask your doubts, but don’t ask silly questions just for the sake of asking.
Now let’s move further.
Code pairing round
It was a 2 hour long online round, in which each of us was given the same program and was asked to program it in the language of our choice. We were paired with mentors (persons that had come for the drive). So in case, we have any doubt we can ask them, we can also share our approach with them and get feedback.
About the problem: We were asked to implement a card game (similar to Blackjack). All the instructions for the game were clearly mentioned in the question. We need to play the game between a player and the dealer with taking input from the user (from the command line) for player’s turn.
My solution: I have implemented this in JAVA. I have created 4 classes, one for Person, one for Card, one for Deck and one main class. Here is my solution.
After 1 hour we had a small evaluation and a final evaluation took placed at the end, i.e after 2 hours.
- Write testable, maintainable and modular code.
- It’s better to follow Object Oriented Principles.
- Write tests.
If you get time, it’s always better to write unit tests for such problems. But ya, I would suggest you to first complete the implementation and then jump to tests. But in case if you are quite confident about your approach and time, then write tests parallelly. Or even start writing tests as soon as you are ready with partial implementation, so that you can tackle all edge cases.
Just after the final evaluation, Go-Jek T-shirts were distributed to all the participants.😍
About half an hour later results of the online round were mailed to us. Only 2 students were selected for further rounds. And guess what, I was one of them ✋.
Face to face Interview
Now I have to appear for F2F (Face to Face) interview in next 10 mins 😅. I rushed to the stationary shop to take print out of my GSoC certificate. I was getting late so I asked my friend to collect it and bring it to the guest house (the place where the drive was taking place) and I rushed back to the guest house.
My interview was scheduled first, I was quite nervous. This was my first F2F interview.
I entered the interview room, there were 2 interviewers in the panel. The interview started with my introduction. I am mostly from JS background and have done projects on React and React-Native. Interview started with React and React-Native. How do things work in React and React-Native? How does the JS code execute on the mobile phone (Android & iOS)? And then we moved to
As I had implemented the problem of the online round in JAVA, I was asked how JAVA works, how the code compiles. Role and advantages of JVM and then we had some discussion on JAVA and JVM.
Next, I was asked to implement few features of StackOverflow from backend/restful API perspective. Feature like:
- posting a question.
- listing a question and getting question info & displaying it.
Basically how the backend server will be designed to implement this features.
Also in the middle, I was asked to tell my biggest achievement. I answered: My biggest achievement was when my code in facebook/react-native got merged 😅. Another question was, for what I felt really happy that I have done some really great work. I answered: When, I along with my mentor, found this hack. I explained what was our requirement and philosophy behind this along with the hack.
Then interview continued with some general questions, how I learn new technologies. I explained by taking an example of how I learned Android Development (because I wanted to develop College Plus) and Chrome Extension (because I wanted to develop Tafy).
I was asked my favorite subject, I said
OS, operating systems. Then they asked me questions on the process, thread, multiprocessing, concurrency, parallelism, deadlock etc. I answered most of them 😅.
And then we had a DSA round, in which I was asked questions like Maximum distance between two occurrences of the same element in array. I solved this problem using HashMap in O(n) time complexity.
Then we talked a bit about work culture @ Go-Jek.
And then the interview ended.
I was hungry from the morning, so I rushed to hostel room and then to mess, and again back to guest house. When I reached back, the interview of the second person was still going on. After some time he came out.
And then after some time HR called me out and told the good news 😍.
And yay! I got selected ✋.
They have also come for hiring summer interns and got selected 2 from my junior batch. The process of selecting intern was also structured similarly.
It was a great experience participating in such an interactive and practical based hiring process .
- Don’t do things just for the sake of doing. Have a good knowledge of what you are doing.
- Never compare yourself with others and feel nervous/demotivated, they might be good in fields in which they are getting success. And you might be perfect in another field. Just you need to find your domain of interest and rest all will come automatically.
- Every interview is different. So don’t get nervous, if you don’t know the answers to questions asked to your fellow companion.
- Have confidence in you. And for some questions if you don’t know the answer, just be honest and tell sorry sir, I am not aware of it. Instead of telling some unrelated stuff.
- Don’t get nervous, even if your interview is scheduled first. Think it as an opportunity of creating the first impression and setting up the baseline in the panel’s mind.
TryDo your best.
Thanks for coming here and good luck for your interview. 👍
Bye Bye!! 👋