I was hired at Media.Net as an SRE in 2022. After a year, I finally found some time to share my interview experience. I hope this helps those of you aiming to secure a similar role.
Before starting, let me be clear - I don't know DSA and never solved anything more than medium-level questions on Leetcode. Neither I do have an SRE or DevOps background. I am also an ECE Btech grad - so whatever CSE core subjects I have learned - all thanks to Google and YouTube.
During my interviews, I had approximately 1.5 years of experience as a front-end developer. At that time, I was also exploring backend development and DevOps to some extent. I believe that knowing all these areas greatly contributed to my success in securing this role.
This is going to be an extensive blog about my interview experience. I hope it assists you in acing your interviews!
The SRE role heavily relies on DevOps practices. As an SRE, the most important task is to ensure the application runs smoothly and that everything works as expected.
The scope of work of SRE engineers varies from industry to industry. But to get hired as an SRE, the following subjects need to be known in depth:
- Operating Systems
- Computer Networks
- System Design
- DSA (no need for in-depth knowledge of competitive programming, only the concepts and easy to medium leetcode level is sufficient)
The overall process consisted of 6 rounds in total.
- Round 1 and Round 2 was compulsory round - whose cumulative score was necessary to move into the next rounds
- Round 3 was the machine coding round (it was held in a pool of 10-12 colleges).
- The colleges include IITs, NITs, and other 2-3 colleges including ours.
- Rounds 4, 5 and 6 were all technical interview rounds.
- This round was divided into 4 sections:
- Operating System MCQs
- Computer Network MCQs
- DSA and OOPS MCQs
- Coding questions (2 DSA questions and 1 questions based on bash scripting)
Each section has to be completed in a given time frame and switching between different sections was turned off.
The total time given was 1.5 hours
DSA Questions were easy, it was asked only to check how fast the candidate could think.
- Fizzbuzz (easy)
- Some array element counting type of questions (easy)
- Bash scripting question:
- Candidate has to validate a log of phone numbers according to the given phone number format
- This can be easily solved using cat, grep and regex command.
- MCQs were easy to moderate level.
- Most were factually based, so one can refer to Geeks for Geeks or other related sites for MCQ preparations
- I was able to solve both DSA questions and almost all MCQs.
- Most of the students were selected for thRound 4: Technical Interview 1 e next round which was the machine coding round
- This round was 1.5 hours long.
- In this round, we got access to the Media.Net machine coding platform.
- Before taking part, read the instructions provided as it will be crucial for this round.
- There were 6 tasks in total.
- 3 tasks were basic and were to get used to the platform
- The other three tasks were intermediate to advanced level.
- After each task, the candidate gets a flag (a unique string) which has to be pasted into the platform.
- This will add￼ points to your profile.
- Googling things was allowed.
- The task points in order of difficulty - 1, 2, 3, 7, 10, 10
- The first two basic tasks were easy - can be done in a few minutes.
- For this knowledge of SSH is important.
- Make sure that SSH (in Linux distros and Mac) and putty (in Windows) is working.
- The third basic task required some socket programming.
- Use Python for socket programming as implementing it will be easier
- One can read GFGs Python socket programming
- There are plenty of videos on YouTube too
- The other three tasks required us to communicate with the server and VM whose credentials were provided to us.
I was selected for the next round - which was a machine coding round.
- This round was a machine coding round and one of the longest rounds.
- We have to join the meeting at 7:30 AM
- We get the intro to the Media Net SRE role and how to proceed in the round.
- This was an inter-college hiring round where various colleges took part.
- At 8:00 AM the round started
- There were 9 tasks in total.
- Googling things was allowed.
- We have to write a server code and check our logic in the VM whose credentials were provided to us the night before.
- Check that your SSH or putty is working.
- Also, check you can paste code from your local machine to the VM terminal.
- All tasks were interrelated to each other (unlike the previous round).
- We have to complete 4 tasks in two hours.
- After completing the first four tasks, the successful candidates were allotted individual breakrooms where interviewers came one by one at an interval of 30 minutes.
- You have to explain your approach.
- They will ask questions on each line of your code.
- In the next two hours, we have to implement the remaining tasks.
- The problem statement we got can be found in this github gist - Link
- I got selected for a technical interview which was scheduled a couple of days after.
- My first technical interview was scheduled a day after round 3.
- It was about 1.5 hours long interview.
- The major focus of this round was Operating systems and computer networks.
- The interviewer asked me to give my intro.
- Then he moved to my resume and asked about my projects, tech skills, and internship experience.
- Make sure that whatever you write in your resume is 100% correct and you can explain it thoroughly. Then interviewer started asking Computer Network questions.
- Some questions that were discussed in depth were:
- OSI Model (make sure that you know every layer of it and how data is transferred from top to bottom layer and on both the client and server-side)
- What happens when you type google.com
- Make sure you know what happens in your browser
- how DNS lookup is done and what happens inside google servers too.
- Windows Subsystem for Linux
- How it works in windows
- What it does inside Windows is that you can use Linux without a virtual machine
- Job scheduling algorithms
- HTTP methods and how to write query
- TCP, UDP, and other methods in depth
- What are ports?
- What is IP, IPv4, IPv6?
- Various protocols and how they work
- Three-way handshaking
- Role of routers
- How IPs are allocated
- Uses of Operating System
- Kernel and its uses
- RAM, ROM
- Git and GitHub
- Situational-based DSA question - for a given scenario which algorithm or data structure should be used?
- For quick revision, one can refer to interview bit interview questions for OS and CN.
- Make sure you have a notepad or whiteboard application ready.
- If you don't know technical terms, explain with diagrams and examples.
- Ask questions if you don't understand something or want more hints.
- My second technical interview was scheduled for the next day of Round 3.
- It was purely focused on Linux and System Design (more weightage).
- Make sure you know the basics of System design or at least enough to catch up on hints given by the interviewer.
- This round was 2 hours 30 minutes long.
- The interview started with an introduction, and then we moved on to my resume - internships, projects and tech stacks.
- The interviewer asked me to show the code and ER diagram of one of my projects - so I showed him the same.
- Make sure that all your project’s documentation is up to date before the interview.
- Then he started with Linux questions.
- As I didn’t know linux in depth - these questions were tough for me.
- Questions asked on Linux and OS were:
- What happens when you boot up your PC
- What happens when you create a new file or folder (internally)
- How RAM works
- How Cache works
- How virtual address transforms into logical addresses
- Linux Commands
- Compiler signals like SIGKILL, SIGTERM, etc. and what they do.
- Mutex and semaphore
- What happens to your laptop when you click the power button?
- How does your computer know when to wake up after you switch it off
- Though Linux and OS are important, the major focus for this round was System design.
- I was asked to design a chat app which can be scaled to 100M real-time users (as I had mentioned a chat app project in my resume)
- Make sure you know the concepts of cache, database sharding, load balancers, etc.
- Do all the calculations for bandwidth usage, per-second data upload, download, database storage estimation etc.
- This round was supposed to 3 hours long.
- Director of SRE, Media Net was the interviewer of this round.
Every candidate was allocated a different breakroom in Zoom.
The interviewer asked this question:
Given a 2 TB log file containing hostname, destination and source IP addresses, and status code (all are independent of each other) on the client side.
You are provided with 3 servers each with 16 cores and 64 GB RAM. Find the optimal way to process the log files to find the top 20 hostnames, top 20 IP addresses and the total count of each status code.
- This interview was to see your quick thinking and how you think of solutions in stress.
- The interviewer will come every 30 minutes to see your approach.
- Make sure you use the whiteboard app for explanation.
- You won’t be given hints in this round and the interviewer will question you about anything and everything about your proposed solution.
- The ideal solution will be to give a high-level overview of how you allocate server resources and how you process the log files.
- After 2 hours, I was asked to leave the meeting as I was not getting to the most optimal solution.
- Finally after 6 interview rounds and waiting for another one week for the result, I was offered the SRE role at Media.Net.
- I also got the offer of 6 month internship along with the full time role.
- The whole interview process was tiring yet the most interesting one for me. As all the interviews only focused on practical knowledge and implementation over theoretical or mugged up concepts.
- Thank you for reading until the end.
- I hope that my blog has helped you or at least given you some tips and insights on how an interview is conducted for an SRE fresher.
- If any of you want to discuss anything regarding the blog or want to contact me, please do so:
- GitHub - Link
- Twitter - Link
- Linkedin - Link