i have never done system design, because I dont work in a distributed systems environment. all interviews expect you to be able to design systems, and i am finding it difficult to square the circle.
i have read all kinds of blogs and the educative.io material but i still dont get a good feel about the topic. any ideas on how i can do a couple of projects that will really test my theoretical understanding and help me get better at it?
thanks
Want to see the real deal?
More inside scoop? View in App
More inside scoop? View in App
blind
SUPPORT
FOLLOW US
DOWNLOAD THE APP:
FOLLOWING
Industries
Job Groups
- Software Engineering
- Product Management
- Information Technology
- Data Science & Analytics
- Management Consulting
- Hardware Engineering
- Design
- Sales
- Security
- Investment Banking & Sell Side
- Marketing
- Private Equity & Buy Side
- Corporate Finance
- Supply Chain
- Business Development
- Human Resources
- Operations
- Legal
- Admin
- Customer Service
- Communications
Return to Office
Work From Home
COVID-19
Layoffs
Investments & Money
Work Visa
Housing
Referrals
Job Openings
Startups
Office Life
Mental Health
HR Issues
Blockchain & Crypto
Fitness & Nutrition
Travel
Health Care & Insurance
Tax
Hobbies & Entertainment
Working Parents
Food & Dining
IPO
Side Jobs
Show more
SUPPORT
FOLLOW US
DOWNLOAD THE APP:
comments
Read about following topics and visit the pages of some open source software out there to understand motivation, use cases and how they implement some of the distributed systems concepts.
Caching
NoSQL DBs - Object store, Column oriented, Document store, Key-Value store
Partitioning/Sharding
Load Balancing
CAP theorem
Replication
Messaging Queues
Servers vs Workers
Time series DB
Geolocation
For most system design problems, you can put in a Load balancer, Application servers, messaging queues, Worker processes, caching DB and main DB. Draw a few blocks representing each. To get fancier, identify major services of your app. eg. For Aibnb, it'll be a property owners service, listings service, reservations service, billing service etc. Draw blocks for each service. Go from there.
Learning without thought is labor lost; thought without learning is perilous.
- Confucius