Taro Logo
0

How to minimize time spent in System design interview on capacity estimations?

Profile picture
Mid-Level Software Engineer at Taro Community3 months ago
  • I am not great with numbers so capacity planning part for storage, memory, cache, bandwidth takes 5-10mins as part of the initial requirement gathering
  • Is there a way to keep it short or you just have to memorize some bytes and 1 million request/day = 12 request/second conversions?
63
2

Discussion

(2 comments)
  • 1
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    3 months ago

    Here's some thoughts from me:

    1. Give ballpark numbers - There isn't a huge difference between servicing 12 requests/second and 10 requests/second. We know that most of the time if you divide a big X-digit number by a Y-digit number, it's X-Y digits (e.g. 1,000,000 / 1,000 = 1,000).
    2. Ask them if it's necessary - You'll be surprised at how many candidates give information the interviewer doesn't even care about. Maybe they just don't want these numbers?
    3. Do it piecemeal - Storage, memory, cache, and bandwidth are all different numbers (especially bandwidth vs. the others). Try designing the system in layers so you only need to give 1 number at a time.
    4. Raw repetition - At the end of the day, this isn't ultra-complicated math, and it should get better if you just do it more to build up muscle memory and pattern recognition. This seems like a basic exercise you can rehearse with ChatGPT. Check out this thread too: "How to improve at system design interviews while practicing solo?"
  • 1
    Profile picture
    Tech Lead/Manager at Meta, Pinterest, Kosei
    3 months ago

    When I was in high school, there was a competition called Fermi Questions that I participated in -- "quick estimate of a quantity that seems difficult or impossible to determine precisely."

    This is a skill you can get better at. Find a friend and go through sample questions. You can likely increase the speed with which you do capacity estimates.