harisrid Tech News

Spanning across many domains – data, systems, algorithms, and personal

INTERVIEWING – System Design – What Does an Evaluation Resemble?
A Primer

There’s a lot of solid material out there to teach folks how to interview folks for data structures and algorithms – CTCI, Leetcode, Neetcode. But there’s a dearth of material for how to evaluate candidates in higher-level interviews, such as system design.

I wanted to share what I think feedback would resemble. I’ve added detailed explanations justifying why the feedback written out “is what it is”.

I ported the question over from Alex Xu’s System Design Interview, Volume 2, Chapter 1 : Proximity Service. Here, the candidate needs to design a system that emulates how users can search for nearby businesses, restaurants, and other akin offerings in a short blast radius of 5 kilometers to 25 kilometers. It’s similar to conducted searches for businesses on yelp.com, booking.com, or TripAdvisor.com.

The Candidate’s Strengths/What They Did Well
  • TC recognized need to develop for multiple personas – end customers, internal business administrators.
  • TC understands tradeoffs across geo-spatial approaches – two-dimensional longitude-latitude searches, quad trees, and geo hashing.
  • TC typed out more details in additional to verbal explanations – this built a stronger case.
  • TC understands primary-secondary write-read splits and database replication.
  • TC understands CAP theorem and justified high availability over eventual consistency for a large user base product.
  • TC asked thoughtful clarifying questions and downscoped the product to a first-iteration MVP. 
  • TC justified how pre-computed geohashed tiles can fit in a single server and recognized that 5*10TB of tile data can easily fit across five servers.
  • TC understands object hydration and storing or passing only business IDs across caches and networks.
  • TC understands lazy loading and leveraging freshness to solution the problem.
  • TC recognized how they would change design from a microservice mesh to a nightly cron job if the requirements changed from 5-10 minute updates of business to a once-a-day nightly update.
  • TC justified why they would use two distinct API Gateways – to accomodate for each persona with regards to security, scaleability, and abiding by good pre-emptive design choices .
Areas of Refinement
  • TC can spend less time on capacity planning.
    • TC can instruct the interviewer to do capacity planning in the end and to focus less on it.
  • TC can avoid “deep diving” to much :
    • Deep diving demonstrates knowledge, but if the interviewer stops you to ask a question, they want you to move forward in the direction of that question.

Leveling Determination

  • Google L4 : Strong Hire
  • Google L5 : Hire
  • Google L6 ( staff+ ) : Leaning Hire
Posted in

Leave a comment