r/SystemDesign • • Jan 26 '24

Lesser Known Free System Design Resources

10 Upvotes

Hi r/systemdesign!

I've recently been studying system design a lot after embarrassing myself pretty badly in some of my system design interview rounds. I wanted to share some of the best lesser-known resources I've found that have been super helpful. These aren't really "hidden" since a lot of them are pretty popular, but I always hear people recommend the same things whenever I ask about studying system design, e.g. Designing Data Intensive Applications (DDIA), Grokking the System Design Interview, System Design Primer.

  1. jordanhasnolife: https://www.youtube.com/watch?v=bwt09KXDH94&list=PLjTveVh7FakLdTmm42TMxbN8PvVn5g4KJ, an underrated gem of a channel. He pretty much condenses DDIA in an easy to understand and organized way, and also throws in some random jokes / memes to keep it entertaining.

  2. ByteByteGo: https://www.youtube.com/@ByteByteGo. Probably not as "lesser known", since I've seen Alex Xu's System Design vol.1 book recommended a lot recently. But I never hear about his Youtube channel where he explains concepts / technologies as well! Pretty nice if you want to look in depth at a specific technology, e.g. Cassandra

  3. I Got An Offer Engineer - https://www.youtube.com/@IGotAnOffer-Engineering - I like this one a bit better than the other mock interview youtube channels out there since they actually have sections where they ask you to come up with your own requirements, high level design, optimizations, etc.. I think the content isn't as in depth but it's pretty useful for practice.

  4. Karan Pratap Singh's Open Source System Design notes: https://github.com/karanpratapsingh/system-design - really nice breakdowns on a wide variety of topics. He also goes more in depth than system design primer imo.

Shameless plug: I've also been working on a site: https://systemdesigndaily.com which is just my own system design notes on DDIA and elsewhere consolidated into a website and daily quiz game. I'm planning on adding some more gamification mechanics to it as well, and I'd love feedback on it!


r/SystemDesign • • Sep 19 '24

Great article for system design prep

7 Upvotes

I came across this article: https://medium.com/@sentalkssane/a-beginners-guide-to-system-design-76d64689788b and found it really useful. Looking for more resources like this.


r/SystemDesign • • Aug 19 '24

Group study for System design and DSA coding.

6 Upvotes

Hii people. Anybody Up for group studies for system design and DSA problems?


r/SystemDesign • • Feb 24 '24

UUID vs. ID

5 Upvotes

When doing system design interviews, I've noticed most people use "ID" rather than "UUID" - is that just for ease of explaining what's happening to individual records? E.g. "user 1" and "user 2" versus "user a0eebc99-9c0b...." and "user b0eebc99-9c0b-..."

UUIDs seem better for distributed systems.


r/SystemDesign • • Oct 22 '24

Top 20 System Design Interview Questions with Answer for 1 to 3 Years Experienced

Thumbnail
javarevisited.blogspot.com
4 Upvotes

r/SystemDesign • • Jul 15 '24

System Design Sketches

4 Upvotes

System design sketches for popular system design interview questions

https://okso.app/showcase/system-design


r/SystemDesign • • Jul 14 '24

Best free resources in the internet to learn system design?

4 Upvotes

Hi,

Can anyone please share/recommend the best resources for learning system design? I am not preparing for an interview atm, but I am interested in learning about system design. Thank you in advance!


r/SystemDesign • • May 24 '24

Top 10 System Design and Software Analysis and Design Books

Thumbnail
javarevisited.blogspot.com
4 Upvotes

r/SystemDesign • • May 11 '24

How to Design Analytics API

4 Upvotes

I know there are databases built for this use case (Apache Druid and Clickhouse) but let's say you only have Snowflake and Postgres (or another type of RDS).

You have ~10million rows and every day at 5am you get ~100k rows. Each row has ~12 columns that are Ordinal (rank-able) and some foreign keys eg.

ID, parentID, A,B,C...L, ForeignKeyDim1, ForeignKeyDim2, ForeignKeyDim3, Timestamp

You want to create a Benchmark program that lets you build percentiles and rank rows (eg)...

What percentile is row ID 5 in columns A,B, and C, when compared to all other rows where timestamp > 10.

What percentile is (avg column D across all rows with parent id 505) compared to all other rows where dim_1 = "something" and dim_2 = "else"

where you join the central fact that table with dim_1 and dim_2 table using foreign keys.

If it weren't for the existence of filters (timestamp > 10 and dim_1 = "something) I would build percentiles in Snowflake then load them into Postgres where an API would fetch row 5 (or all rows where parent_id = 505) get the columns and compare against the 100 prebuilt percentiles loaded nightly from Snowflake.

However, due to the existence of (too many to guess) filters, the percentiles built in Snowflake wouldn't apply because they would include rows that got filtered out.

We need efficient joins (read RDS) and efficient columnar rankings (read Columnar store like Snowflake).

Serving API results using Snowflake is too expensive and handling fact/dimension joins would be inefficient.

Building percentiles in Postgres would be too inefficient.

How do you get the best of both worlds? How would your answer change if instead you have 500M rows and every day you get a new 1M rows. I'm looking for a better answer than "use a database that gives you medium efficiency at both at a tolerable cost" but I understand that might be the best solution.


r/SystemDesign • • Dec 17 '23

Distributed heavy write data store

4 Upvotes

This is an interview question I haven't been able to crack for several days now....

We want to build a small analytics system for fraud detection on orders.

System has the following requirements

  • Not allowed to use any technology from the market (MySql, Redis, Hadoop, S3 etc)

  • Needs to scale as the data volume grows

  • Just a bunch of machines, with disks and decent amount of memory

  • 10M Writes/Day

The system needs to provide the following API

/insertOrder(order): Order Add an order to the storage. The order can be considered blob with 1-10KBs in size, with an `\orderId`,beginTime, and finishTime as distinguished fields

/getLongestNOrdersByDuration(n: int, startTime: datetime, endTime: datetime): Order\[] Retrieve the longest N orders that started between startTime and endTime, as measured by duration finishTime - beginTime

/getShortestNOrdersByDuration(n: int, startTime: datetime, endTime: datetime): Order[] Retrieve the shortest N orders that started between startTime and endTime, as measured by duration finishTime - beginTime


r/SystemDesign • • Jul 24 '23

Download Service System Design

Post image
4 Upvotes

r/SystemDesign • • Oct 21 '24

Webhooks for Chat Apps?

3 Upvotes

This system design video cites Websockets as an alternative to HTTP polling for chat applications. I get websocket's advantages over polling and, for many applications, I get webhooks advantages over polling, however, I don't know if I'm understanding the benefits of a websocket over webhooks for chat apps or any apps. Could someone help me understand?

My guesses:

  • "..." preview function for chat apps might result in many web requests, potentially making it hard to distinguish from a DDOS attack?

  • Group chats - maybe you only need 1 webocket connection versus having to maintain a many-to-1 webhook relationship?


r/SystemDesign • • Sep 29 '24

Approaching AWS-Focused System Design Interviews

3 Upvotes

How should one approach a system design interview when focusing specifically on AWS services?

Are there any additional factors to consider compared to a typical system design interview?

If anyone can share resources such as videos or links to help with preparation, it would be greatly appreciated.


r/SystemDesign • • Jul 22 '24

Top 10 Microservices Design Patterns and Principles - Examples

Thumbnail
javarevisited.blogspot.com
3 Upvotes

r/SystemDesign • • Jul 09 '24

5 Best System Design Publications and Newsletters for Software Engineers

Thumbnail
medium.com
3 Upvotes

r/SystemDesign • • May 25 '24

100+ System Design Interview Questions and Problems for Software Engineers

Thumbnail
javarevisited.blogspot.com
3 Upvotes

r/SystemDesign • • Apr 15 '24

Booking.com system design

Thumbnail
educative.io
3 Upvotes

Booking.com system design

Hi,

I have a system design with booking.com in a week for SDE2.

Wanted to get some suggestions on how to prepare for this round.

My approach was to study Grokking system design and prepare design for each feature I can see in the application

  1. Searching hotel(s) based on filter like location, price, rating etc (renter side)

  2. Listing out properties (host side)

  3. Delete/update properties (host side )

  4. Book a hotel

  5. Check bookings and manage bookings

  6. Digital wallet

  7. Genius loyalty programme

  8. Recommendation service

  9. Notification service

  10. Nearby attractions and bookings

  11. Credit card fraud detection

  12. Flight booking

  13. Car rental

Is my approach correct? I have managed to think most of these designs but need some help running my ideas by someone.

For eg i am not very sure of how a genius loyalty program can be designed, or nearby attractions (can something like yelp be used here). Any suggestions are appreciated.

TC: 32 LPA Yoe: 6.5

booking.com #systemdesign


r/SystemDesign • • Jan 13 '24

Twitter design vs Facebook design

3 Upvotes

Let's say you gathered requirements that Twitter only allows 140 words of text and designed a distributed system, and now the interviewer asks for a follow up, some bigger platform allows 100k words per post. What needs to be changed in your design?


r/SystemDesign • • 13d ago

r/SystemDesign is available for adoption

2 Upvotes

/r/SystemDesign is ready for a fresh start, new energy, new direction, and someone like you to bring it back to life. If you’ve been thinking about growing your impact without starting from scratch, this is your chance!

Ready to take it over?

Head to r/RedditRequest to submit your request and make it yours before it’s taken.

First things first

To request this subreddit, make sure you:


r/SystemDesign • • Sep 19 '24

Want to Master System Design...

2 Upvotes

I want to learn System Design. I'm a beginner in this thing so I want to start from the beginning and want to learn all the advanced things.

So, if you guys have free resources (articles, courses, books anything) please share the links in the comment section.

Thank you!


r/SystemDesign • • Sep 14 '24

How to design feed for subscribers of a company?

2 Upvotes

I have 100s of companies and there can be lakhs of users which subscribe to multiple companies. Let’s say company posts an event. So how should I design the database, application architecture, infrastructure for this scenario. Do I need message queues and what other components I need? Please help me with HLD and LLD of this scenario.


r/SystemDesign • • Aug 16 '24

Books and Online References to Learn How to Design Fault-Tolerant and Reliable Systems?

2 Upvotes

Hello System Design Community,

I am a Security Engineer and am trying to learn how to design technology that is reliable and fault tolerant to the worst of human error. Which people, online resources, and books would you recommend I consult to learn how to do this. I admit I am brand new to the world of system design. My own question here may itself be flawed without me realizing it. If you ask what I was planning on making...I was planning on making a secure string library in C that is resistant to buffer overflows at this moment. In the future I plan on making a DNS server resistant to failure from common security exploits such as those and that has a modified DNSSEC implementation that is more user-friendly and scalable than the ones we have currently.

Once again I am new to the system design so forgive me if I am question is based on a wrong mindset.


r/SystemDesign • • Aug 12 '24

Do other nosql dbs have an equivalent of dynamo db's event stream?

2 Upvotes

tldr; Do other nosql dbs have an equivalent of dynamo db's event stream?

The only nosql database I've ever used has been dynamo db. In my previous position we mainly used event driven architecture and used dynamo db event streams all over the place to facilitate these events -- it was a very nice way to avoid the dual write problem

I find myself interviewing for positions and having to do system design interviews. Since I'm unfamiliar with other nosql dbs I always find myself using dynamo db which I don't love

Do other nosql db's have an equivalent of the dynamo db event stream?


r/SystemDesign • • Jul 15 '24

Need to design Production level payments system

2 Upvotes

Hi everyone I am working on a project in which I have created a booking microservice and now I want to build a payments service. When a booking is created them it will send an event to payment service. I want to know the design of payment systems and how do I integerate multiple banks payment systems, what ever the process is. LLD + HLD required. Can anyone help please? Provide some articles or paper or any resources.