Want to practice more engineering manager questions like this? Don't leave your software engineering management career to chance. Make sure you're interview-ready with Exponent's engineering manager course. Start free. bit.ly/381E2cy
the function requirements should be as follows 1- Customer management 2- Home management 3- Search & Filtering 4- Agent management 5- Registration & Login 6- Home videos & images Uploading & Caching Non Functions 1- High availability 2- Scalability 3- Reliability 4- Replication for reading 5- Eventual consistency
While overall the interview went great, as an interviewer myself, there are a few red flags that caught my eye: 1. The candidate didn't ask any clarifying questions and went with a lot of assumptions. 2. The candidate didn't discuss any of the edge cases: error handling, pagination (very important to design with pagination in mind), analytics, etc But I understand there was a time constraint which might be the reason for it and frankly speaking it's impressive that he designed this system in just 20 minutes
The recommendation engine/analytics etc would be better if we move the data to a Hadoop cluster and then use Spark cluster to aggregate data and then some analytics on that data, rather than use the cassandra or Redis to run those massive queries and load it up. We should decouple the data to make better calls as the system scales. Agree with other comments that Non functional requirements were not looked at,
What is the MLS system that you were referring to? How is the data written to this MLS system? Is it some kind of User interface and Is that an api call that reads aggregated data from the MLS system?
In one interview guy asked me to design the search and listing API for houses, how to send multi filters, how to apply them and spent 40 mins on internals of data objects and API signature, optimisation etc. seemed like he wanted me to code the complete API, what a wasted fellow. He wanted end user to draw and select some random area and then list house in that area.
The Redis discussion doesn't sound practical -- how to shard a redis (or redis cluster) anyway? Isn't Redis a key-value store? It's more interesting to hear data schema of key-value.
How much about the system you're copying do you need to know? I find it amazing that, to start the aggregation service, the candidate immediately thought to start polling MLS. I'd forgotten MLS existed. Would a text search engine (ES for example) be better than Redis for the search endpoint for specific addresses? Would you require someone to go through the verification process each time they want to update the house? If not, how do you store that relationship?
I think you could pull that info out of the interviewer. No way they'd expect you to know where housing data comes from. Fully agree Elasticsearch would be better than Redis. I'd even say Redis is the wrong tool here. You can query by so much in zillow like number of bathrooms and rooms an square footage. Making redis implement that is a waste of engineering effort. We don't need the low latency of Redis over ES. Also I don't think he touched on how data is replicated from the source of truth db to the read db, which has a lot of tradeoffs.
At this level, in a manager position interview ... probably the better response would be to identify critical components at high level. Talking about 'caching' seems to me a misplaced discussion by both the candidate and the interviewer.
Yeah, not a great interview for this guy. Good technical but he treated it more like a presentation. At one point the interviewer asked him to talk about sharing, and he said “no. I’ll talk about it later.” Buddy, this kind of interview is about collaboration.
Would never want this guy as an eng manager if I worked at FB, though working at FB is a choice to work for a horribly unethical company anyway. Technically apt, but no one who you would want as a boss.
Just a thought for everyone here - Engineering Managers aren't meant to be doing this. It's a lot harder to process all thoughts within 45 mins and doing a perfect system design interview. It's amazing how he started with Questions/Requirements, communicated his thought process, and then jumped into it. That's what the interview is about. Normally, these things take 18 months to almost 2 years to be matured.
Want to practice more engineering manager questions like this? Don't leave your software engineering management career to chance. Make sure you're interview-ready with Exponent's engineering manager course. Start free. bit.ly/381E2cy
the function requirements should be as follows
1- Customer management
2- Home management
3- Search & Filtering
4- Agent management
5- Registration & Login
6- Home videos & images Uploading & Caching
Non Functions
1- High availability
2- Scalability
3- Reliability
4- Replication for reading
5- Eventual consistency
thats not how a systems design interviewer works. nobody is going to ask you to design all that functionality in a 45m interview
@zacki5663
No I will not design all of them, I just write them and ask him what of them do you need to do
While overall the interview went great, as an interviewer myself, there are a few red flags that caught my eye:
1. The candidate didn't ask any clarifying questions and went with a lot of assumptions.
2. The candidate didn't discuss any of the edge cases: error handling, pagination (very important to design with pagination in mind), analytics, etc
But I understand there was a time constraint which might be the reason for it and frankly speaking it's impressive that he designed this system in just 20 minutes
I feel it can be a combo of Sql and No-Sql, for eg: many attributes for homes are common
there is NewSQL for that
The recommendation engine/analytics etc would be better if we move the data to a Hadoop cluster and then use Spark cluster to aggregate data and then some analytics on that data, rather than use the cassandra or Redis to run those massive queries and load it up. We should decouple the data to make better calls as the system scales. Agree with other comments that Non functional requirements were not looked at,
What is the MLS system that you were referring to? How is the data written to this MLS system? Is it some kind of User interface and Is that an api call that reads aggregated data from the MLS system?
In one interview guy asked me to design the search and listing API for houses, how to send multi filters, how to apply them and spent 40 mins on internals of data objects and API signature, optimisation etc. seemed like he wanted me to code the complete API, what a wasted fellow. He wanted end user to draw and select some random area and then list house in that area.
Really helpful. Thankyou.
Which tool is used here for the drawing the system design components?
Whimsical
Probably when search happens we can put that in log and pass through queues to analytics db . This acts as an input to recommendation engine .
It would be nice if at the end of the design , you could revisit the non functional requirements and make sure they are all addressed in the system
The Redis discussion doesn't sound practical -- how to shard a redis (or redis cluster) anyway? Isn't Redis a key-value store? It's more interesting to hear data schema of key-value.
How much about the system you're copying do you need to know? I find it amazing that, to start the aggregation service, the candidate immediately thought to start polling MLS. I'd forgotten MLS existed.
Would a text search engine (ES for example) be better than Redis for the search endpoint for specific addresses?
Would you require someone to go through the verification process each time they want to update the house? If not, how do you store that relationship?
I think you could pull that info out of the interviewer. No way they'd expect you to know where housing data comes from.
Fully agree Elasticsearch would be better than Redis. I'd even say Redis is the wrong tool here. You can query by so much in zillow like number of bathrooms and rooms an square footage. Making redis implement that is a waste of engineering effort. We don't need the low latency of Redis over ES.
Also I don't think he touched on how data is replicated from the source of truth db to the read db, which has a lot of tradeoffs.
which drawing app you guys use??
Looks like Whimsical
At this level, in a manager position interview ... probably the better response would be to identify critical components at high level. Talking about 'caching' seems to me a misplaced discussion by both the candidate and the interviewer.
Does zillow only look for individuals with college degrees/or very experienced for software engineer hires?
Very hard time to hear
Yeah, not a great interview for this guy. Good technical but he treated it more like a presentation. At one point the interviewer asked him to talk about sharing, and he said “no. I’ll talk about it later.” Buddy, this kind of interview is about collaboration.
This just seemed scripted and very bookish. I don't think I can take away anything from this video.
Would never want this guy as an eng manager if I worked at FB, though working at FB is a choice to work for a horribly unethical company anyway.
Technically apt, but no one who you would want as a boss.
what a joke of a mock interview, this is a rehearsed presentation than an interview
Is he really a manager at Facebook? He looks a bit nervous and not so confident.
People can feel nervous if they are on the other side of the interview process :)
@@Lincos321 yeah that’s why they fail
He did fine man calm down
Just a thought for everyone here - Engineering Managers aren't meant to be doing this. It's a lot harder to process all thoughts within 45 mins and doing a perfect system design interview. It's amazing how he started with Questions/Requirements, communicated his thought process, and then jumped into it. That's what the interview is about. Normally, these things take 18 months to almost 2 years to be matured.
Same person was also on another video claiming he worked for Paypal and Wealthfront. Kind of odd.
Worst system design mock interview ever seen