System design for dummies — part 3 (Design a donation app)

S. G.
4 min readFeb 7, 2022

This is the final part of a 4 part series on cracking the system design interview. Part 0 provided an overview of this article series, part 1 focused on the content you need to master to nail the interview and part 2 focused on the format you should follow during your system design interview.

In this final part I’ll provide a real life example of a system design problem — designing a donation app. I lifted this problem from this discussion on Leetcode. Here is the problem statement:

  • You are required to design a donation app for a 3 day charity event across the US where you are expecting 3 million donations.
  • You should accept details like customer name, credit card details etc.
  • No pay specific knowledge is required (presume that you’d integrate with a 3rd party pay provider like Stripe or Braintree).

If you are a visual learner like me & prefer videos to words, you can skip ahead to watching the video (it’s listed at the bottom of this post) and then come back to the article. I do recommend reading through the entire article as it covers some key concepts that I didn’t cover in the video.

Understanding requirements/goals



S. G.

I write about programming, people management, interviews or anything else that I’m obsessing about. 12+ yes of experience across big tech and some in academia.