I am a Computer Science Student, and currently, I am in my final year. Recently, I got a Backend Developer internship offer from RideCell.
In this blog, I will be sharing my experience with the whole process, right from getting a referral to landing an internship offer at RideCell.
Preparation and Referral
I was confident in terms of the projects I had worked on and other technical subjects as well.
I reached out to a few employees of RideCell via LinkedIn and asked them if they would consider referring me. I was lucky to get a referral from one of them.
Round 1: Online Assessment
Within 2 days, I got a HackerRank Online Assessment link from RideCell and I was supposed to take the test within 2-3 days. It was a 60-min assessment.
The questions were related to Data Structures and Algorithms.
One of them was a greedy problem and the other was somewhat like an implementation-based (Stack-based) problem.
The questions were of Medium level difficulty and I was able to solve them on time since I had learned a lot about DSA concepts through Crio DSA packs and regular assessments at Crio and I used LeetCode heavily apart from Crio's DSA packs which I think really helped me to get in a good shape to be able to solve problems. Also, the Crio methodology for solving DSA problems helped me to get through this particular round.
Round 2: Technical Face-To-Face round (Problem-Solving)
After clearing the Online Assessment, I got a call from HR to schedule the technical interview. I had one day to brush up on a few concepts before the interview.
Blog Bonus: Learn how to use this powerful technique to answer tough interview questions with ease - Download PDF
I revised a few problems/techniques and also went through some questions about core CS subjects like DBMS.
I was interviewed by one of the Senior Software Engineers from the RideCell team. He gave me a problem to solve and write code for it as well. The problem was of medium level. It was a HashMap based problem with some tricky edge cases (which I suppose was the main thing the interviewer was expecting me to cover).
After coming up with a solution and writing the code for it, the interviewer asked me if I was comfortable with Python or not.
I was not familiar with Python but he asked me to convert that code that I had written in Java to Python. He told me that I could refer to the documentation or google anything to write the code.
I was able to pull this off smoothly as the interviewer was also willing to help me while writing the solution in Python or to look up some things in the documentation.
Towards the end of the interview, he asked me about a few concepts related to databases and the interview round went really well.
Round 3: Technical Round (Engineering)
I was able to make it to the 3rd round, and it was scheduled with one of the Engineering Managers. It started with a brief introduction about me, and then the interviewer gave a brief intro about himself and the company too. I enjoyed the whole conversation with him.
Moving ahead, he asked me about what I learned at Crio and went on to discuss my project QEats (a food-ordering app like Swiggy) and asked me to show the code I had written to build the app’s backend.
He asked me about the technologies used in that project like Redis, MongoDB (Why NoSQL over SQL). He also presented some other real-world scenarios and asked me about the Cache eviction policies that could be used there.
As the discussion progressed, there were follow-up questions too like how things would change if I scale the project to a bigger level.
Since I had mentioned about load testing of the Qeats backend, he quizzed me on the details of that as well.
To summarize, I am sharing the main interview questions I was asked related to QEats backend:
- What is load testing?
- Which software/tool did you use to load test the Qeats server?
- What was the problem before you implemented the Caching mechanism and why exactly did you think of using a cache?
- Is Redis cache volatile or not? Can you configure Redis in your own way or not?
- What were the errors encountered when the server was getting overwhelmed with a huge number of requests?
Towards the end of our detailed discussion, he was keen to know my comfort level and the time I would take to get familiar with technologies like Python (Django) for backend, Docker, Kubernetes, and cloud platforms like AWS which they use heavily at RideCell and also about my strategy to learn a new language or technology if I was selected for the job.
This was an exhaustive interview round that covered everything about my technical knowledge and my preference to work with their tech stack. Overall, this round went well and I was happy about my conversation in this round.
Round 4: Managerial Round
This round was scheduled with the Director of Engineering from RideCell. It was a casual chat and the focus was more on my past internship experiences.
We discussed the technologies I have worked with in the past. And he was also interested to know whether I am willing to learn new technologies as the job demands.
Towards the end of the interview, we discussed my college projects and my time commitment to the job.
This was a pretty easy round and I was looking forward to getting selected for the final round.
Round 5: HR round
The HR round was the last round. The interviewer talked in detail about the operations that they are carrying out at RideCell and how they started the company, their goals, and their expectations from their employees.
Blog Bonus: Get list of 15 commonly asked HR round questions to stay on top of your game - Download Now!
He asked me about my hobbies and interests apart from the technical stuff, and also discussed a little about my college activities. This interview ended on a positive note and I was waiting to hear back from them soon.
Within 2-3 days, I got a call from HR and they sent an offer letter for the internship role.
- The interviews revolved around problem-solving and DSA, so it would really benefit you if you can get a good hold of them.
- Be comfortable with the technologies that you have worked on and have a deep and detailed understanding of the projects.
- Stay calm during interviews and make sure you communicate well.
- Have a good grasp of database fundamentals and caching.
Topics to Focus on
1. Python (not mandatory, but it would be good if you are comfortable with it)
3. Thorough knowledge of the language that you work on primarily.