rtCamp Interview Experience for Software Engineer (Trainee) On Campus
About the company and role
rtCamp is a company that works on WordPress and web solutions, situated in Pune. I applied for the position of Software Engineer(Trainee) through my Campus Hiring Program. It was a fully remote working role. The training was for 6 months and after that, a full-time offer could be given based on your performance in the training period.
Job Profile - PHP, JavaScript, HTML, CSS, and MYSQL development for Web development using WordPress CMS/framework.
Their job openings can be found at https://campus.rtcamp.com/#openings.
Selection Process
The basic process consists of the following things -
Shortlist
Interview
Offer
Round 1: Resume Shortlisting
There is no online coding test involved, they shortlist candidates based on their GitHub profiles. So make sure that you have an active and updated GitHub profile. It’s good to have projects related to the tech stack they are looking for, but that doesn’t mean they will not select projects related to other tech stacks (like in my case).
Overall they expect you to have a good knowledge of frontend and backend, so make sure you have made projects related to that.
My resume was shortlisted and was selected for further rounds. It took around 15 days for me to get shortlisted, but it can vary for different candidates.
Round 2: Interview
After getting shortlisted, they will provide you with a link for the interview. The entire process was virtual and conducted via Zoom. The HR representative called out names for short introductions, and candidates were then taken to a lobby where a panel of 2-3 interviewers awaited. Be alert, your turn can come anytime, and you may need to wait some longer for your turn. So have patience.
Round 1
At first, they asked me about my projects in detail. They didn’t ask for a demo, you just had to explain it. They cross-questioned me related to my project, so ensure you know every little thing about your project.
Ex - A part of my project consists of web scraping. So they asked me the problems one can face during web scraping. They asked if it was legal to scrape and everything related to that.
After asking me about my projects, they went to technical questions which were related to -
Git and GitHub
What is the difference between Git and GitHub?
Can we use Git without GitHub?
Can we use GitHub without Git?
Can git work without the internet?
Git commands (clone, pull, push, commit, etc)
Where does git store data? (.git directory)
Cryptography
What is the difference between hashing and encryption?
How does the database store passwords?
What is salt in hashing?
Can images be hashed and stored?
Are WhatsApp messages hashed or encrypted? Why?
Difference between symmetric and asymmetric encryption.
What are rainbow tables?
Detailed questions on private and public keys.
How does TLS/SSL work?
How are phone numbers stored in the database?
Computer Networks
Can different devices connected to the same router have the same IP address?
Can different devices connected to different networks have the same IP address?
Can there be two computers with the same public IP?
What happens when you hit a URL when you are connected to a router?
What if two computers connected with the same router are assigned the same IP address? if yes, what happens then?
What is CDN? How does CDN work? What are the advantages of it?
Different Between HTTP and HTTPS.
How does DNS work?
Public and Private IPs.
Explain the whole workings of NAT.
Discussion about Ports and their uses.
What is Man in the Middle attack?
Differences between GET and POST methods.
Sessions and Cookies
What are cookies?
What is a session?
How do cookies store information?
What happens if we disable cookies?
When reopening a website after closing it, the session made on that website gets destroyed automatically and you need to login again. What could be the reasons for it?
Will the session work if I disable cookies? What could be the alternatives?
How can you view session and cookie data from the client browser?
What would happen if I copied your cookies and stored them in my browser? Will I get access to your data by doing this?
How session is made in the Database?
What are JWT tokens, and how are they different from session-based authentication?
Website Optimization
If I have a website, I want to purposely make it slow, how can I achieve that? What are the options that I have?
If I have a website, it is very slow. I want to make it faster, how can I achieve that? What are the options that I have?
Client-side rendering/scripting v/s Server-Side rendering/scripting. Which one would you use for email validation?
How to verify an email? Which is the best method to verify the email client-based or server-based?
Suppose your site is experiencing high traffic, causing lag. How would you manage it to reduce server load?
DBMS
What is indexing?
How can you implement indexing in SQL?
What effect does select, update, delete operation have if the data is indexed?
Which column would you choose for indexing?
JavaScript
I wasn’t very familiar with JavaScript and its frameworks, but they will ask you questions on that if you know them. Ensure that you have a deep understanding of JavaScript, JQuery, React, etc. They can also ask you frontend-related questions, so ensure you have a good understanding of HTML and CSS (CSS frameworks too). If you have PHP in your tech stack, they can ask you questions related to that too.
Round 2
After this, they asked me to wait for around 10-15 minutes, and I was called again for the interview.
This time they asked me about system-design related questions. I was asked the following questions -
- You want to make your own YouTube application. What are the features do you think you can have in it? How will you build a YouTube like automatic video quality controller? How you can check network latency and how you will switch in between different quality of videos on the basis of network latency?
Start from the very basics of how a video streaming platform works. Talk about the steps implemented from when the video is uploaded to when it is shown to the user. You should have a detailed understanding of how automatic video quality works. Don’t just talk about theory, have an idea about how you will implement it.
- I want to design an Elevator. I have very little memory and computation power. How can I implement it? What is the data structure and algorithm I can use to implement it?
This was a very difficult question, at least for me. I explained various approaches that can work, but there are so many edge cases that you have to take care of. So ensure that you think about these cases before and then design the solution. Whatever you are explaining, you have to implement it in terms of the data structure you choose. Make sure the data structure you chose does not have a big time and space complexity, since there are constraints.
- You have subscribed to a comic service that emails you a comic every 2 hours. But the server can only provide you with one comic per day. How would you solve this problem?
There are various approaches to solve this, each with their own pros and cons. They will go into detail with the approach you chose. Expect them to question you based on you chosen solution.
- You have subscribed to a comic service that emails you a comic per day. The same comic is mailed to hundreds of users. How can you make this process more efficient?
Again, there are various approaches to solve this, each with its own pros and cons. I chose the use of a cache. They asked questions related to that.
- How would you design a captcha system?
I explained the approach using a database. But then it had some problems, and so I was asked to explain an approach without using a database. Ensure you have a detailed understanding of how this works and expect them to cross-question you.
Overall Experience - Rejected
The interview lasted around 1 and a half hours (including break). I was able to give correct answers for all the theory technical questions, but I couldn’t give a proper answer to all the system design questions, as I had not prepared them.
Since this was my first interview, I made a lot of mistakes. It taught me a lot of things where I was lagging. Our presentation skills are as important as our technical skills. Not only a thorough knowledge of the skills that we have is sufficient, but also, we must be able to explain and present them to the interviewer in a proper way. The way you deliver your skills and solutions to them plays a major role in the process of hiring.
Be thoroughly prepared with topics like Web Fundamentals, Web Architecture, Computer Networks, Web and Network Security, Git and GitHub, Authentication and Authorization, Caches and Cookies, Database Management Systems (DBMS) and its security techniques, Javascript, HTML, CSS, Reactjs, Cryptography and Hashing, Applications of Data Structures, Network attacks, their types and terms involved in them, etc.
They will only ask you about the above questions in system design, so ensure you have a proper grasp of these questions.
If you feel underconfident in giving interviews, try to have mock interviews with your friends. Ask your friends to give you similar questions and cross-question them.
I learned a lot from this interview, I thank rtCamp for giving me this amazing opportunity.
Subscribe to my newsletter
Read articles from Shreyash directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by