SDE-2 Media.net
Summary
I recently interviewed for an SDE-2 position at Media.net, which primarily involved Data Structures & Algorithms and Low-Level Design rounds. I faced challenges in the LLD round and ultimately do not anticipate receiving an offer.
Full Experience
I recently interviewed for the SDE-2 role at Media.net. The interview process consisted of two main rounds: a Data Structures & Algorithms (DSA) round and a Low-Level Design (LLD) round. In the DSA round, I was asked two problems. For the first, 'Matrix Diagonal Traversal', I initially approached it with DFS but was prompted for a more optimized solution using a queue. The second DSA question involved connecting points with vertical or horizontal moves. The LLD round focused on designing a 'Task Scheduler' with various complex features like dependencies, priorities, and retry mechanisms. I was not able to fully implement and run the code for the LLD solution after completing the design discussion. Based on my performance, I don't think they will contact me further regarding this opportunity.
Interview Questions (3)
Given a matrix, traverse its elements in diagonal order. I initially approached this using Depth-First Search (DFS) but was asked to provide a more optimized solution, specifically one utilizing a queue and right traversal logic.
Given an array of points (x, y), I can only move either vertically or horizontally in a single step. The problem requires returning the minimum number of additional points needed to connect all the given points.
Design a task scheduler system that needs to handle a variety of complex features:
- Dependencies: Tasks can depend on other tasks, and dependent tasks should not run until their prerequisites are complete.
- Priority: Tasks have priorities (e.g., 1, 2, 3), and tasks with higher priority should be picked first.
- Retry Mechanism: If a task fails, it should be retried a specified number of times (e.g., up to 5 times).
- Cancellation: Tasks can be cancelled, but all their dependent tasks must be executed first before cancellation.
- Parallelization: The scheduler should support parallel execution of tasks where possible.
- History: Maintain a history of task executions.
- Circular Dependency Protection: Implement a mechanism to detect and prevent circular dependencies between tasks.