Unlike what I've seen in other write-ups on the forums, I don't know if they changed the question or if there are now two system design question pools for the onsite (Google News / a metrics monitoring system) — I got the monitoring system one.
The gist was: collect some user behavior data, like installs / user clicks / etc, and it needed both a real-time view and collection of raw events for a big offline data job. Some of the specific metrics needed confirming with the interviewer. I specifically asked whether I also needed to collect system-level metrics, like reliability / latency, and he said no need.
Honestly it had been a while since I got asked a monitoring system question. My approach was mainly: start high level with a very generic cron job pulling + a SQL DB for monitoring, then explain which parts of that couldn't satisfy the non-functional requirements; then move up to Flink + a time-series DB + Grafana for real-time monitoring, with raw events stored separately for offline processing.
The interviewer nodded the whole time, and I also checked in with him now and then about whether the design direction was right, so there was some back-and-forth. (But in the end I still didn't get any feedback — I usually try to get a bit of feedback after every interview, some interviewers are nice enough to give it, he didn't, so whether I passed or not was up in the air lol)
One more thing — I feel like these days 70% of interviewers are doing their own thing during the interview lol, so him nodding doesn't necessarily mean he thinks you're right. You need to ping him every few minutes, check in with him from time to time, and confirm the current design direction with him.
Update: I passed. What's on Hello Interview matches this one — just follow that and you'll be fine.
Discussion
Loading comments…