Media.net visited our campus for the Site Reliability Engineer role (DevOps) in August 2022. CGPA criteria were 6 and above.
There were 5 rounds.
Round 1: (Online test): It was an MCQ test, I don’t remember the duration and number of questions. It had questions from Operating Systems, Computer Networks, Data Structures and Algorithms, DBMS, and General Aptitude.
Around 23 people got selected for the Machine Round and I was one of them.
Round 2: (Machine Round – Offline, 3 Hours): This round was conducted in our computer center. We were given a socket programming task.
Task Description: There is a server that has key-value storage. There can be multiple clients which can send requests like ‘GET’, ‘PUT’, and ‘DELETE’ to the server.
The key-value storage, server, and client code is written all from scratch. We were allowed to google anything like syntax, errors, etc. We were even given the option of choosing any language we were comfortable with, I went with Python.
- The key-value storage is basically a dictionary in python. So I have written a class which has a dictionary in it and some functions to deal with the ‘GET’, ‘PUT’ and ‘DELETE’ operations.
- I wrote code for the server which would be ready to accept clients and can start communicating over TCP protocol, similarly, I wrote code for the client which would be ready to take input from the user for the requests and send it to the server.
- After I was done with the task, I still had some time left, I was asked to implement a TTL(Time to live) system for the storage. Meaning a key will have a time-to-live component, the key would expire after a certain period of time. I implement this and the time was over.
- Since I was using threads to deal with multiple clients, I had to use threads. I was asked if my code was thread-safe, and I said no because my main aim was to finish the basic task and implement thread safety later. The interviewers were ok with it though.
3 students made it through this round, I was one of them.
Round 3: (Technical Interview – Offline, 1 Hour): This round was a CS fundamental mostly related to Operating Systems and Computer Networks.
The interviewers greeted and introduced themselves and asked me to introduce myself. The interviewer went through my resume and asked me about my internship.
Then the discussion went towards Computer Networks, some of the questions I remember were:
- What are TCP and UDP and how do they work.
- 3-way handshaking.
- What happens when we type google.com in our browser?
I had mentioned Git as a version control system in my projects in my resume, so he asked me a question related to it.
- Let’s say we have an application. Version2 of the application has been deployed and now after 5000 commits, we have deployed version3 of the application. We have found out that the final version3 has a bug, which had crept in from one of the commits. How would you find the commit in which the bug started?
- A follow-up question, a similar situation is given but this time the bug started in one of the commits and also got resolved in a later commit, making version3 nonbuggy. We have to find out where the bug started this time.
Round 4: (System Design – Offline, 1 Hour): This round was a System Design round.
- The interviewers greeted and introduced themselves and asked to introduce themselves.
- I was given the option of choosing between designing an international chat application (like WhatsApp) or an international video streaming service (like YouTube).
- I went with YouTube.
- I slowly started putting all my objectives together on a piece of paper and started building upon them.
- The interviewers asked me how would you scale this particular system for a larger audience and I tried my best to come up with solutions.
Round 5: (Managerial Round – Online, 30 mins): This round was a general discussion as to what an SRE does and how it impacts the company. He told about the company’s culture and values. More that it was a general discussion about the salary and how my growth would be in the company.
Finally, I got an offer from the company!
- Try to go into depth, when you are using some terms, you need to be able to answer anything the interviewer asks about them.
- It’s okay if you could not answer something. At least try to answer it in your own logical way and what would you think about it.
- Keep the session interactive. Let the interviewer know what is going on in your mind.
- A good depth of knowledge is required in Operating Systems and Computer Networks.
All the best!