System Design data engineering system from ML models

Viewed 96

I was recently in a FAANG interview and was asked to create a data engineering framework to perform analytics and the source is a system serving machine learning models.

The model performs fraud detection. The interviewer kept it vague and asked not to worry too much about how the Fraud detection models were generated, but rather on the data engineering portion of it.

How would an ideal system look like in this case which provides big data analytics from such ML models? There were no restrictions provided, and the interviewer was open to any form of assumption in terms of numbers.

I literally provided the internals of Airflow and how it works as a part of my solution. Is there a better approach / more complete answer for this design? What would be the best way to go about create an architecture whose source is ML models?

1 Answers

As posed, I don't think this question is "answerable", but here are some thoughts that may be helpful for you in future interviews.


In my experience (both as an interviewee as well as interviewer), the actual "answer" the interviewee provides to this type of question isn't really that important. What you're being tested on with a question like this is broadly "design thinking" as well as how you approach problems.

Without knowing a lot more of the specifics, it would be impossible to provide a reasonable system design that would accomplish the goals of the people using it. IMHO that's the point of this type of question: to see what you ask and how you approach it.

Sure, the interviewer said, "Don't worry about how the fraud detection stuff actually works", which is totally reasonable. But the first place to start is by asking questions.

For example, my first question would be something like this:

What do you mean by "analytics"? Analyzing how well the deployed system is performing in terms of latency / stability? Or understanding the actual "performance" of the model (e.g. correct / incorrect fraud detection)?

Depending on the answer given by the interviewer, a ton of different followup questions might be relevant. Once you've asked enough questions to more or less understand the goals, it might be more clear what a "good" system design would be.

However, as I've already said, I don't think the system design you end up with needs to be perfect or absolutely ingenious. I really do believe that the portion of the interview where you're trying to uncover the parameters of the problem is the part that matters more. After all, that's a pretty important part of the job :)

Related