Facebook System Design
Anonymous User
6940

E4 Software Engineer, Machine Learning role

Design Resource Downloader Library.
Follow up questions and discussions:

  • File could be of any type (images, pdfs, videos, etc)
  • What would be the function signature, inputs, outputs?
  • Support Parallel downloads - sync and async
  • What could go wrong?
    • File too large for download
    • Not enough memory, CPU, network problems
  • Show progress bar - callbacks;
  • How would you cancel a download midway?
  • How to handle repeated downloads of same resourceURL? - caching
  • Cache - eviction policy - LRUCache

Even when I indicated within the interview that I don't have experience with the low level libraries (like pass callbacks, send cancel signal etc) but we can utilize the concepts, he still kept probing for more indepth details (he kept asking for some code as well - how you'd implement it). Frustrated that they'd ask me Application design in System design round. Is this pretty common? This didn't deal with any typical SD concepts such as scalability, availability etc - since no deployment.

Still tried my best to convey my ideas - let's see how it goes.

Comments (7)