My Tech Learning Continues !
Real-world system architectures are invaluable resources for learning system design
- Practical Applications: Learning about theoretical concepts is important, but seeing them applied in real-world systems provides a deeper understanding of their strengths, weaknesses, and trade-offs.
- Exposure to Diverse Solutions: By studying how different companies tackle similar challenges, you’ll gain a broader perspective on design options and best practices.
- Understanding Technology Context: Learning about the technologies used in these systems helps you connect the dots between theoretical concepts and their practical implementation.
- Focus on Both Principles and Technologies: Understanding both the “why” and “how” of system design is crucial. Principles provide a foundation for making informed decisions, while technologies offer the tools to implement those decisions.
- Active Learning: Don’t just passively read about these systems. Ask yourself questions like:
- What are the key challenges this system addresses?
- What design choices were made and why?
- Are there alternative approaches that could be considered?
Additional Resources:
Beyond the websites, here are some resources for exploring real-world system architectures:
- Blogs: Many tech companies maintain blogs where they discuss their engineering practices and system design decisions. (e.g., Netflix Tech Blog, Airbnb Engineering & Data Science Blog)
- Conference Talks: Search for conference talks related to system design. Platforms like YouTube often have recordings of these talks.
- Case Studies: Many software development companies publish case studies that delve into specific projects and the system design they employed.
Real-world systems
Understand design ideas of real system architectures behind different companies.
Facebook Timeline: Brought To You By The Power Of Denormalization: https://goo.gl/FCNrbm
Scale at Facebook: https://goo.gl/NGTdCs
Building Timeline: Scaling up to hold your life story: https://goo.gl/8p5wDV
Erlang at Facebook (Facebook chat): https://goo.gl/zSLHrj
Facebook Chat: https://goo.gl/qzSiWC
Finding a needle in Haystack: Facebook’s photo storage: https://goo.gl/edj4FL
Serving Facebook Multifeed: Efficiency, performance gains through redesign: https://goo.gl/adFVMQ
Scaling Memcache at Facebook: https://goo.gl/rZiAhX
TAO: Facebook’s Distributed Data Store for the Social Graph: https://goo.gl/Tk1DyH
Amazon Architecture: https://goo.gl/k4feoW
Dynamo: Amazon’s Highly Available Key-value Store: https://goo.gl/C7zxDL
A 360 Degree View Of The Entire Netflix Stack: https://goo.gl/rYSDTz
It’s All A/Bout Testing: The Netflix Experimentation Platform: https://goo.gl/agbA4K
Netflix Recommendations: Beyond the 5 stars (Part 1): https://goo.gl/A4FkYi
Netflix Recommendations: Beyond the 5 stars (Part 2): https://goo.gl/XNPMXm
Google Architecture: https://goo.gl/dvkDiY
The Google File System (Google Docs): https://goo.gl/xj5n9R
Differential Synchronization (Google Docs): https://goo.gl/9zqG7x
YouTube Architecture: https://goo.gl/mCPRUF
Seattle Conference on Scalability: YouTube Scalability: https://goo.gl/dH3zYq
Bigtable: A Distributed Storage System for Structured Data: https://goo.gl/6NaZca
Instagram Architecture: 14 Million Users, Terabytes Of Photos, 100s Of Instances, Dozens Of Technologies: https://goo.gl/s1VcW5
The Architecture Twitter Uses To Deal With 150M Active Users: https://goo.gl/EwvfRd
Scaling Twitter: Making Twitter 10000 Percent Faster: https://goo.gl/nYGC1k
Announcing Snowflake (Snowflake is a network service for generating unique ID numbers at high scale with some simple guarantees): https://goo.gl/GzVWYm
Timelines at Scale: https://goo.gl/8KbqTy
How Uber Scales Their Real-Time Market Platform: https://goo.gl/kGZuVy
Scaling Pinterest: https://goo.gl/KtmjW3
Pinterest Architecture Update: https://goo.gl/w6rRsf
A Brief History of Scaling LinkedIn: https://goo.gl/8A1Pi8
Flickr Architecture: https://goo.gl/dWtgYa
How We’ve Scaled Dropbox: https://goo.gl/NjBDtC
The WhatsApp Architecture Facebook Bought For $19 Billion: https://bit.ly/2AHJnFn
Company engineering blogs
Reading engineering blogs from potential employers and industry leaders is a fantastic way to prepare for interviews and stay up-to-date on the latest trends.
Here’s a list of engineering blogs from well-known large companies and startups, along with some insights into why they’re valuable:
Airbnb: https://medium.com/airbnb-engineering
Amazon: https://developer.amazon.com/blogs
Asana: https://blog.asana.com/category/eng
Atlassian: https://developer.atlassian.com/blog
Bittorrent: http://engineering.bittorrent.com
Cloudera: https://blog.cloudera.com
Docker: https://blog.docker.com
Dropbox: https://blogs.dropbox.com/tech
eBay: http://www.ebaytechblog.com
Facebook: https://code.facebook.com/posts
GitHub: https://githubengineering.com
Google: https://developers.googleblog.com
Groupon: https://engineering.groupon.com
Highscalability: http://highscalability.com
Instacart: https://tech.instacart.com
Instagram: https://engineering.instagram.com
Linkedin: https://engineering.linkedin.com/blog
Mixpanel: https://mixpanel.com/blog
Netflix: https://medium.com/netflix-techblog
Nextdoor: https://engblog.nextdoor.com
PayPal: https://www.paypal-engineering.com
Pinterest: https://engineering.pinterest.com
Quora: https://engineering.quora.com
Reddit: https://redditblog.com
Salesforce: https://developer.salesforce.com/blogs/engineering
Shopify: https://engineering.shopify.com
Slack: https://slack.engineering
Soundcloud: https://developers.soundcloud.com/blog
Spotify: https://labs.spotify.com
Stripe: https://stripe.com/blog/engineering
Stripe: https://stripe.com/blog/engineering
System design primer: https://github.com/donnemartin/system-design-primer
Twitter: https://blog.twitter.com/engineering/en_us.html
Thumbtack: https://www.thumbtack.com/engineering
Uber: http://eng.uber.com
Yahoo: https://yahooeng.tumblr.com