19g6vkwpkbjxt in  
Software Engineering Manager  

3rd System Design Interview

I've got a 3rd system design coming up for Meta. This seems a little wild to me. The other interviews ok at this point I think. 

And suggestions on how to prep for system design for Meta specifically?
15
3266
Sort by:
19g6vl0i4v30rSoftware Engineer  
What level are you interviewing for? I assume E6, because you already had 2?

Getting a 3rd means that they weren't able to gather enough signal. It's a bit hard to suggest improvements without knowing your strengths and weaknesses.

Based on my experience (I recently got hired as E6 with a strong hire signal from SD):

- Lead the whole thing: Like 80%+ talking time for you. Regularly check with your interviewer if he follows along and whether something is unclear to him

- Choose sensible numbers in the "back of a napkin math"-phase. Many SD problems get simpler by realising that the solution is not as complex as it looked, even with 1B+ users. Prime example: Quadtrees that you usually throw at proximity service problems almost always fit in to a few gig of ram/a single server and can therefore easily scaled horizontally.

- Avoid genetic solutions: After some practice many problems feel similar because you end up in the generic "lb here, sone queue in between, foobar service there" drawer. While this approach serves you well in reality, because you do not want to reinvent the wheel every time, it is counterproductive in SD. It kinda hides your skills in the fog, because you do not clearly demonstrate how stuff works and how you can solve certain problems with maximum efficiency. Example: When you fan out a massive number of URLs to a cluster of crawlers with some consistent assignment of domain/crawler, you could use some partition-based Pubsub system, e.g. Kafka. But this wastes resources in contrast to using a custom consistent hashing ring and pushing URLs directly to the correct crawler.

- Manage time wisely. Create a rough roadmap of phases you want to go through (requirement gathering, estimates, HLD, deep-dives, summary) and allocate time budgets. Practice with a timer and use one for the real thing as well.

There is definitely more, but those were some of my most important learnings during SD prep.

Hope this helps.
11
19g6vl0i4v30rSoftware Engineer  
There are a few typos (mostly due to autocorrect, like genetic vs generic), but it's still readable hopefully. Otherwise I am happy to clarify. πŸ™‚
2

Unlock by Signing Up!

Create a free account to view all comments, posts, and more!

About

Public

Software Engineering Manager

Members

10,614