← System Design Interview 30The Learning Continues

30The Learning Continues

Designing good systems requires years of accumulation of knowledge. One shortcut is to dive into real-world system architectures. Below is a collection of helpful reading materials. We highly recommend you pay attention to both the shared principles and the underlying technologies. Researching each technology and understanding what problems it solves is a great way to strengthen your knowledge base and refine the design process.

Real-world systems

The following materials can help you understand general 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

If you are going to interview with a company, it is a great idea to read their engineering blogs and get familiar with technologies and systems adopted and implemented there. Besides, engineering blogs provide invaluable insights about certain fields. Reading them regularly could help us become better engineers. Here is a list of engineering blogs of well-known large companies and startups. 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://engineering.salesforce.com/blog/ 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 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://developer.yahoo.com/blogs/ Yelp: https://engineeringblog.yelp.com Zoom: https://medium.com/zoom-developer-blog Congratulations! You are at the end of this interview guide. You have accumulated skills and knowledge to design systems. Not everyone has the discipline to learn what you have learned. Take a moment and pat yourself on the back. Your hard work will be paid off. Landing a dream job is a long journey and requires lots of time and effort. Practice makes perfect. Best luck! Thank you for buying and reading this course. Without readers like you, our work would not exist. We hope you have enjoyed the course! Mark as Complete ask alexask alex expend Designing good systems requires years of accumulation of knowledge. One shortcut is to dive into real-world system architectures. Below is a collection of helpful reading materials. We highly recommend you pay attention to both the shared principles and the underlying technologies. Researching each technology and understanding what problems it solves is a great way to strengthen your knowledge base and refine the design process.