Media.net came to our campus for Site Reliability Engineer role. The selection process had MCQ round followed by Coding round, 2 technical interviews and finally an HR round.
Key to succeed: Good knowledge of System Design and little bit of Computer Security. In-depth knowledge of CN, OS and DSA is also required. Also, socket programming is must while knowledge of basic linux commands is a plus (optional).
Round 1: MCQs (45 mints.)
The first shortlisting round had 45 MCQ questions to be completed in 45 minutes. The questions were from variety of topics like: CN, OS, Linux commands, Data Structures and Algorithms, and DBMS. No negative marking was there for wrong answers. Based on the scores, top 50 out of around 230 students were selected for the next round.
Round 2: Coding Round (around 2 hrs)
This round mainly required Socket Programming and the solutions could be coded in C, C++, Java or Python. We needed to write server side code for the below mentioned questions. Then, we the evaluators tested our code using ‘telnet’ as client querying with the server.
1. Write server code that receives the string ‘ping’ from client and responds with ‘pong’ in return.
2. Write server code to read a specified file (specified by the client) and send its content to the client in buffer one by one.
3. Now if some content is added to the specified file, then the new content should be automatically sent to the client side.
4. Bonus question: Send only those lines that contain specified substring to the client.
After this round, only 15 students were selected for the next round of technical interviews.
Round 3: Technical Interview 1 (around 20 mints.)
The interview started with quick introduction of the interviewer and then he asked about my introduction.
Then we had a discussion regarding my projects mentioned in resume. The interviewer asked about my GSoC project in detail. Then there were few follow-up questions.
Then the interviewer asked about my approach to the last question asked in coding round. Now the interview moved towards CS fundamentals. The interviewer asked about my favourite subject and why. I replied OS. Then he asked basic questions related to OS like: processes and threads, concurrency and parallelism, multi-programming, deadlocks and their avoidance, virtual memory, etc. His intention was to test my knowledge of basic concepts in OS.
Then he moved towards computer networks. He asked – what is the need of having different layers in OSI model? Different functionalities and protocols used in OSI layers. Difference between TCP and UDP. 3-way handshaking and why 2-way hand shaking doesn’t work in reality. Then he asked about routing protocols.
At last, the interviewer asked few questions related to linux commands. One of them I remember is: difference between softlink and hardlink. I couldn’t answer any of linux related questions. He said, it’s ok. They were bonus questions.
Lastly, he asked about load balancer. After this round, only 8 students were selected out of 15.
Round 4: Technical Interview 2 (around 70 mints.)
Again, the interview started with quick introductions. The interviewer was very curious about my GSoC project to the extend that he saw my project live on the project website, my Github profile and my contributions to the organization during GSoC. He was very impressed about my project.
Then he started asking very detailed questions on OS, DBMS, CN and Linux commands. But the main focus of this round was System Design. I was given different scenarios in which I needed to propose efficient and scalable solutions based on my prior system design knowledge. My answers were based on load balancing concepts, database sharding, backup servers, etc. One must have a detailed knowledge related to all these concepts. The interviewer asked me how load balancer works. Then I got many follow up questions like: which hash function is the best to use in load balancers. What if a load balancer itself fails in the system. What if few servers stop sending responses to the clients, etc.
Their focus was also on computer security. He asked about man-in-the-middle attack and different situations and how can I overcome them. Finally, he asked me – if you know that server responds in 1 ms time generally but now it responds in 3 sec. What can be different possibilities that might have caused this delay from the server side? I was also asked to propose quick solutions to the problems.
After this round, 6 students out of 8 were selected.
Although the HR said that it’d be a technical round as it would be taken by the Director of DevOps team but it was more of HR round. The interviewer asked few basic doubts related to my resume which he couldn’t understand. Like: Teaching Assistantship (TA) in labs of our college as I was a TA in two of the juniors’ labs. This round was mainly a cultural-fit round. The interviewer tried to assess whether I am really interested in DevOps and the work that they do at Media.net or not. He asked few questions regarding SRE role. What do I expect from this role? Why am I particularly interested in this role and not proper Software Development? Then he explained about their work as SRE in detail.
After this round, all 6 students were selected for internship (6 months) and full time role at Media.net. Fortunately, I was one of them! 🙂