Skip to content

Latest commit

 

History

History
51 lines (32 loc) · 1.56 KB

interview-questions.md

File metadata and controls

51 lines (32 loc) · 1.56 KB

title: interview questions ...

Interview Questions

Questions that I've either worked through, received in real or mock interviews, given in real or mock interviews, or would like to work through at some point.

Coding

  • Serialize and deserialize an n-ary tree

System design

  • ngrok: dynamically provision a reverse proxy to localhost:8080

  • internal webhook delivery platform: allow internal services to deliver webhooks to user-provided webhook handler endpoints

  • location proximity search: given a dataset of locations, return the ones nearest to the user

  • top N currently streaming songs: show the top N, in order, along with the active stream count (some inaccuracy is OK), in real-time

  • schedule send, a la email, Slack, or text

Some notes about system design

System design is hard

  • because identifying The Hard Problems™ is hard,
  • because breaking down a problem into easy problems is hard, and
  • because reasoning about edge cases and failure modes is hard.

Your job as a candidate is to demonstrate that you are capable of all this.

<rant>

Also, FYI: most system design resources on the internet are terrible.

  • They usually take the form "given assumptions A, B, and C, this is The Correct Way to solve this problem". A competent engineer can say "assuming A1 xor A2, here's how my design would change".

  • A lot of them suggest doing resource estimates, e.g. "given 2M entries, 5 bytes overhead, 33 bytes each, we need XYZ storage", but that's (naive) capacity planning, not system design. Do a Fermi estimate and move on.

</rant>