0

I hope its ok to post this here. I was wondering if anyone can share sample System design and architecture interview questions/ideas, specifically with a heavy client side/web focus and some server invovlment. (like hangman with a server that simply stores high scores and provides the current guess word) I have an interview coming up, and since its a full stack software engineer roll, the 3, 45 min each, system design and architecture question will be asking to design an app that have a heavy client component and to also look at the client/server relationship.

Also, any info you can share about how to approach it/how it should look on a white board would be great. I am comfortable with drawing out a more server intensive design, but im a little confused on how to draw out a client side architecture/system.

THANKS!

BYC
  • 33
  • 4

1 Answers1

0

There were a couple of very interesting questions that I was asked and the discussions carried on for more than an hour :)

  1. Design a music editing software, but the catch is multiple people will be working on the same song/track at the same time. It should also support offline editing and automatic collision detection and resolution (At the time, I didn't know much Operational Transformation used in Google Docs, but I really had a fun time solving through this)

  2. How do you design a car pooling system? (As you can guess, this was asked in a famous ride-sharing company interview)

I don't want to spill out the design ideas in detail here, but what helped me solve problems like these is to know that there is no perfect answer and you are dealing with a lot of ambiguities. You should proceed in a phased manner detailing requirements and trying to solve it architecturally using common patterns like caching, horizontal scaling, etc. Most companies even look for traits like not doing premature optimisations by getting into too much generalisations, etc.

  • carpooling will likely be server heavy, with the client a mere window to the server's pool grouping decision logic. – BYC Sep 10 '16 at 02:00
  • Not completely true, you need to track where the cars are, whether the driver is okay to accommodate more people, etc. If you read Uber's architecture, they use driver's phone as a backup data-center of sorts, when the primary DC fails or there is a failover. This is a demand-supply problem and both sides of the equation is equally complex (though I agree much of the actual scheduling work happens on the server-side) – Ramkumar Venkataraman Sep 10 '16 at 03:30