MoEngage | SSE | Round1
Summary
I participated in a coding round for the Senior Software Engineer position at MoEngage, where I was tasked with solving a complex data processing problem involving log files to identify and count unique drivers for specific city visit triples.
Full Experience
During my Senior Software Engineer interview at MoEngage, the focus of the round was a challenging coding problem. I was given a scenario involving a large log file that tracked driver movements across various cities with timestamps. The core task was to extract 'triples' – sequences of three consecutive cities visited by a driver, ordered by timestamp – and then count the number of unique drivers associated with each distinct triple. This required careful parsing, grouping, sorting, and aggregation of data from the log file. The problem presented a good test of my data processing and algorithmic skills.
Interview Questions (1)
Suppose you have a big text log file and there are three columns:
NameCityTimestamp
Example log data:
Name City Timestamp
John city1 t4
Bob city1 t3
John city2 t1
John city3 t3
Bob city3 t2
John city4 t2
Bob city4 t1
The first column is a driver name, the second is a city name, and the final is a timestamp (32-bit integer).
This log file maintains a history of drivers.
We define a "triple" as a tuple of three consecutive cities a driver has been to that are ordered by timestamp.
Suppose t1 < t2 < t3 < t4, then we will have the following triples:
- for John, we have: (city2, city4, city3), (city4, city3, city1)
- for Bob, we have: (city4, city3, city1)
Write a program to output all the triples in the file and for each triple, output the count of unique drivers that have been to that triple.
For the example input, the output would be
(city2, city4, city3) 1
(city4, city3, city1) 2