Media.net SRE Interview Experience (Bangalore)
Summary
I interviewed for an SRE role at Media.net in Bangalore; the process included a Linux assessment, machine‑coding tasks (TCP key‑value server, proxy, load balancer) and a technical round covering system design, but I did not progress beyond the first technical interview.
Full Experience
I recently attended the Media.net SRE interview process for the Bangalore office. The overall experience was well structured and focused on Linux, networking, machine coding, and system design fundamentals.
Round 1: Online Assessment (Linux)
The first round was a Linux-based online assessment consisting of 15 questions. The questions were primarily scenario-based and tested practical Linux knowledge rather than memorization.
Some of the topics covered included:
- Linux commands
- File permissions
- Process management
- Networking basics
- Shell scripting
- General Linux troubleshooting
The questions were of moderate difficulty, and having hands‑on Linux experience was very helpful.
Round 2: Machine Coding
This round involved implementing networking concepts using C++ socket programming.
One of the questions was to build a TCP key‑value server.
The server had to support commands such as:
SET user:32 alvida
GET user:32
DEL user:32
Requirements:
- Maintain an in‑memory key‑value store.
SETstores the value.GETretrieves the value.DELdeletes the value.- Invalid commands should return an appropriate error.
The interviewers then gradually increased the difficulty through follow‑up questions.
Follow‑up Questions
- Introduce a proxy between the client and the server.
Client <----> Proxy <----> Server
The proxy should forward requests and responses transparently.
- Replace the single backend server with multiple backend servers and implement a load balancer.
+---------------+
Client ------> | Load Balancer |
+---------------+
| | |
v v v
Server1 Server2 Server3
The load balancer should distribute requests among backend servers.
There were a total of 5 machine coding questions in this round. From my discussion with the interviewers, solving 2–3 questions well was generally sufficient to move to the next round.
Round 3: Technical Interview 1
This round mainly focused on discussing the machine coding solution and evaluating system design fundamentals.
Topics discussed included:
- Explaining and defending the machine coding solution.
- Load balancers.
- Different load balancing algorithms (Round Robin, Least Connections, IP Hash, etc.).
- Consistent hashing.
- CAP theorem.
- High‑Level Design (HLD) concepts.
- Low‑Level Design (LLD) design patterns such as the Factory Pattern.
The interview was discussion‑oriented. The interviewer was interested in understanding the reasoning behind the implementation and the design choices.
Unfortunately, I couldn't progress beyond this round.
Remaining Rounds
Candidates who clear Technical Round 1 proceed to:
- Technical Interview 2
- Managerial Round
- HR Round
Overall Experience
The interview process was focused heavily on:
- Linux fundamentals
- Networking
- Socket programming
- Machine coding
- Distributed systems concepts
- System Design (HLD & LLD)
Overall, it was a great learning experience. Even though I couldn't make it through all the rounds, I came away with a much clearer understanding of the skills expected for an SRE role and the areas I need to improve.
I hope this experience helps future candidates preparing for Media.net SRE interviews. Best of luck!
Interview Questions (3)
TCP Key‑Value Server
Implement a TCP server that maintains an in‑memory key‑value store. The server must support the commands:
SET <key> <value> // store the value under the key
GET <key> // retrieve the value for the key
DEL <key> // delete the key and its value
For any invalid command, the server should return an appropriate error message. The implementation should use C++ socket programming and handle multiple client connections.
Proxy for TCP Key‑Value Server
Design and implement a proxy that sits between the client and the TCP key‑value server. The proxy should forward all client requests to the server and relay the server's responses back to the client transparently.
Load Balancer for Multiple Backend Servers
Extend the architecture by replacing the single backend server with multiple backend servers. Implement a load balancer that receives client connections and distributes the requests among the backend servers. The load balancer should support a chosen load‑balancing algorithm (e.g., Round Robin, Least Connections, IP Hash) and forward client traffic accordingly.