Skip to content

Instantly share code, notes, and snippets.

@Neilblaze
Last active April 15, 2024 19:01
Show Gist options
  • Star 16 You must be signed in to star a gist
  • Fork 8 You must be signed in to fork a gist
  • Save Neilblaze/fb87b8d1be275df1a1b83d0e58d14123 to your computer and use it in GitHub Desktop.
Save Neilblaze/fb87b8d1be275df1a1b83d0e58d14123 to your computer and use it in GitHub Desktop.
Standard System Design Interview Approach Template

Standard System Design Approach Template

(1) FEATURE EXPECTATIONS [5 min]

        (1) Use cases
        (2) Scenarios that will not be covered
        (3) Who will use
        (4) How many will use
        (5) Usage patterns

(2) ESTIMATIONS [5 min]

        (1) Throughput (QPS for read and write queries)
        (2) Latency expected from the system (for read and write queries)
        (3) Read/Write ratio
        (4) Traffic estimates
                - Write (QPS, Volume of data)
                - Read  (QPS, Volume of data)
        (5) Storage estimates
        (6) Memory estimates
                - If we are using a cache, what is the kind of data we want to store in cache
                - How much RAM and how many machines do we need for us to achieve this ?
                - Amount of data you want to store in disk/ssd

(3) DESIGN GOALS [5 min]

        (1) Latency and Throughput requirements
        (2) Consistency vs Availability  [Weak/strong/eventual => consistency | Failover/replication => availability]

(4) HIGH LEVEL DESIGN [5-10 min]

        (1) APIs for Read/Write scenarios for crucial components
        (2) Database schema
        (3) Basic algorithm
        (4) High level design for Read/Write scenario

(5) DEEP DIVE [15-20 min]

        (1) Scaling the algorithm
        (2) Scaling individual components: 
                -> Availability, Consistency and Scale story for each component
                -> Consistency and availability patterns
        (3) Think about the following components, how they would fit in and how it would help
                a) DNS
                b) CDN [Push vs Pull]
                c) Load Balancers [Active-Passive, Active-Active, Layer 4, Layer 7]
                d) Reverse Proxy
                e) Application layer scaling [Microservices, Service Discovery]
                f) DB [RDBMS, NoSQL]
                        > RDBMS 
                            >> Master-slave, Master-master, Federation, Sharding, Denormalization, SQL Tuning
                        > NoSQL
                            >> Key-Value, Wide-Column, Graph, Document
                                Fast-lookups:
                                -------------
                                    >>> RAM  [Bounded size] => Redis, Memcached
                                    >>> AP [Unbounded size] => Cassandra, RIAK, Voldemort
                                    >>> CP [Unbounded size] => HBase, MongoDB, Couchbase, DynamoDB
                g) Caches
                        > Client caching, CDN caching, Webserver caching, Database caching, Application caching, Cache @Query level, Cache @Object level
                        > Eviction policies:
                                >> Cache aside
                                >> Write through
                                >> Write behind
                                >> Refresh ahead
                h) Asynchronism
                        > Message queues
                        > Task queues
                        > Back pressure
                i) Communication
                        > TCP
                        > UDP
                        > REST
                        > RPC

(6) JUSTIFY [5 min]

	(1) Throughput of each layer
	(2) Latency caused between each layer
	(3) Overall latency justification

(7) OTHERS

Topics to read for System Design interviews:

  • key features of distributed systems
  • load balancing
  • caching
  • data partitioning
  • indexes
  • proxies
  • redundancy & replication
  • SQL vs NoSQL
  • CAP theorem
  • consistent hashing
  • long polling
  • web sockets
  • server sent events

More => https://www.enjoyalgorithms.com/blog/design-youtube-system-design-interview-question

@Neilblaze
Copy link
Author

Neilblaze commented May 30, 2021

Follow :-

Awesome Tech blogs :-

Leetcode Discuss : https://leetcode.com/discuss/interview-question?currentPage=1&orderBy=hot&query=
Blog Link Description
500px 500px Engineering Blog.
8thLight 8th Light Engineering Blog.
99Designs 99Designs Tech Blog.
9GAG 9GAG Engineering Blog.
Addepar Addepar Engineering Blog.
Advanced Web Machinery Advanced web Machinery Blog.
AdRoll AdRoll Engineering Blog.
Affinity Affinity Engineering Blog.
Affirm Affirm Engineering Blog.
AirBnB AirBnB Engineering blog.
AirBrake AirBrake Blog.
AirPair AirPair Blog.
Airtame Airtame Blog.
Algolia Algolia Blog.
Allegro Allegro.tech Blog.
Amazon Amazon Developer Blog.
Artsy Artsy Engineering Blog.
Asana Asana Engineering.
ASOS ASOS Tech Blog.
Atlassian Atlassian Engineering Blog.
Autodesk Autodesk Engineering Blog.
AuthO AuthO Engineering Blog.
Avant Avant Engineering.
Babbel Babbel Engineering.
Backtrace Backtrace Blog.
Baidu Research Baidu Research Blog.
BandCamp Bandcamp Tech.
BankSimple Simple Blog.
BBC BBC Design & Engineering Blog.
BenefitFocus Benefitfocus Engineering Blog.
Better Better Engineering Blog.
BetterWorks Betterworks Blog.
Bitly Bitly Engineering.
BitTorrent BitTorrent Engineering Blog.
Blablacar Blablacar Engineering Blog.
Blacklane Blacklane Engineering Blog.
BlackRock Engineering BlackRock Engineering Blog.
Blend Blend Engineering Blog.
Blendle Blendle Engineering Blog.
Bloomberg Tech At Bloomberg.
Branch Branch Blog.
Booking Booking.com Blog.
BookMyShow BookMyShow Blog.
Canva Canva Blog
Captricity Captricity Blog.
Carbon Five Carbon Five Blog.
Cerner Engineering Health, A Cerner Blog.
C.H. Robinson C.H. Robinson Engineering Blog, 3PL
Chartbeat Chartbeat Engineering Blog.
Cleartrip Cleartrip Blog.
Close.io Close.io Engineering blog.
Cloudera Cloudera Technical Blog.
Cloudflare Cloudflare blog.
Cloudscaling Cloudscaling Blog.
Codeminer42 The Miners, Codeminer42 Engineering Blog.
Compass Compass Engineering Blog.
Contentful Contentful Blog.
Confluent Confluent Blog.
cookpad cookpad Blog.
Coursera Coursera Blog.
ClusterHQ ClusterHQ Blog.
Crowdbooster Crowdbooster Blog.
Dailymotion Dailymotion Engineering Blog.
Datadog Datadog Engineering Blog
Datafloq Datafloq Blog.
Dataiku Dataiku Blog.
DCHQ.io DCHQ Blog.
Making Dia Dia&Co. Engineering Blog.
Docker Blog Docker Blog.
Docker Engineering Blog Docker Engineering Blog.
Docler Engineering Blog Docler Engineering Blog.
DoorDash Engineering Blog DoorDash Engineering Blog.
Doximity Doximity Engineering Blog.
Dropbox Dropbox Tech Blog.
ebay eBay Tech Blog.
Elastic Elastic Blog.
EngineYard Engine Yard Blog.
Etsy Code As Craft, Etsy Engineering Blog.
Eventbrite Eventbrite Engineering Blog.
Evernote Evernote Tech Blog
Facebook Facebook Engineering Blog.
FastMail FastMail Blog.
Feedly Feedly Blog.
FiftyThree Making Fifty Three.
Flickr Code.flickr.com.
Flipboard Flipboard Engineering.
Flipkart Flipkart Engineering.
Fluidinfo Fluidinfo Blog.
FourSquare Foursquare Engineering Blog.
Freshworks Inc. The Freshworks Engineering Blog – Medium
GitHub The GitHub Blog: Engineering.
Gnip Gnip Engineering.
Gojek Gojek Engineering.
Google Developers Google Developers Blog.
Google AI Blog Google AI Blog.
GoSquared GoSquared Engineering Blog.
Grab Grab Tech Blog.
Grofers Lambda-The Grofers Engineering Blog.
Grouper Grouper Engineering Team Blog.
Groupon Groupon Engineering Blog.
Gusto Gusto Engineering Blog.
Globo.com Globo.com Engineering Blog.
Harry's Harry's Engineering.
Helpshift Helpshift Engineering Blog.
Heroku Heroku Engineering Blog.
HoneyBadger HoneyBadger Blog.
Housing Housing Engineering Blog.
HubbleHQ HubbleHQ Blog.
Hulu Hulu Tech Blog.
Icehouse Ice House Blog.
Import.io Import.io Blog.
Indeed Indeed Engineering.
Influxdata Influxdata Blog.
Informed K12 Informed K12 Engineering Blog.
Instacart Instacart Tech Blog.
Instagram Instagram Engineering.
IntentHQ IntentHQ Engineering.
Intercom.io Intercom Blog.
iyzico iyzico Engineering Blog.
Jampp Jampp's Engineering Blog.
Jelastic Jelastic Blog.
Jimdo Jimdo Dev Blog.
Jolly Good Code Jolly Good Code Blog.
Kaggle Kaggle Blog.
Khan Academy Engineering Blog Khan Academy Engineering Blog.
Levvel Levvel Blog.
LinkedIn LinkedIn Engineering.
LiveChat LiveChat Developers Blog.
LoginRadius LoginRadius Engineering Blog.
Lyft Lyft Engineering Blog.
Machinalis Machinalis Blog.
Mandrill Mandrill Blog.
Medallia Medallia Engineering Blog.
Medium Medium Engineering Blog.
Mercari Mercari Engineering Blog.
Microsoft Microsoft Developer Blogs.
Mixmax Mixmax Engineering Blog.
Mixpanel Mixpanel Blog.
MojoAuth MojoAuth Blog.
Monetate Monetate Engineering Blog.
Mongodb Mongodb Engineering Blog.
Monsanto Monsanto Engineering Blog.
Mozilla The Mozilla Blog.
Myntra Myntra Engineering Blog.
Netflix Netflix Tech Blog.
Notion Notion Tech Blog.
Oyster Insights from Oyster.com's Tech Team.
Pagerduty Pagerduty Blog.
Pagico Pagico Blog.
PayPal PayPal Engineering.
Peapod Peapod Propulsion Lab.
Persiscope Data Periscope Data Blog.
Phyramid Phyramid Blog.
Pinterest Making Pinterest.
Postmarkapp Postmarkapp Blog.
Practo Practo Engineering Blog.
Prezi Prezi Engineering.
Quora Engineering at Quora.
Raintank Raintank Blog.
Ramp Ramp Engineering Blog.
Algorithm & Blues Rdio Engineering blog.
REA Group REA Group Engineering Blog
Reddit What's New on Reddit.
Red Hat Red Hat Developers Blog.
Redfin Redfin Engineering Blog.
Rightscale Rightscale Engineering Blog.
Riot Games Engineering Riot Games Engineering Blog.
Robinhood Robinhood Engineering Blog.
Salesforce Salesforce Engineering Blog.
Sensible Sensible Blog.
Shopify Shopify Engineering Blog.
Showmax Showmax Engineering Blog.
Simulmedia Simulmedia Engineering.
Slack Slack Engineering Blog.
SlideShare SlideShare Engineering Blog.
SmugMug SmugMug's Don MacAskill.
Snap Snap's (Snapchat) Engineering Blog
Snapdeal Snapdeal Engineering Blog.
Songkick Songkick Technology Blog.
SoundCloud SoundCloud Backstage.
Spotify Spotify's Engineering and Technology Blog.
Squadcast Squadcast's site reliability engineering blog.
Square The Corner, Square Engineering Blog.
Strava Strava Labs.
Stitch Fix Stitch Fix Engineering Blog.
StormPath StormPath Blog.
Stripe Stripe Engineering Blog.
Stylight Stylight Tech Blog
Swiggy Swiggy Engineering
TellApart TellApart Blog.
ThoughtWorks ThoughtWorks Engineering Blog.
Toptal Toptal Blog.
Tumblr Tumblr Engineering.
Twitter Twitter Engineering.
Twilio Twilio Engineering.
Thumbtack Thumbtack Engineering.
TwoSigma TwoSigma Technology Blog.
Uber Uber Engineering.
Udacity Udacity Blog.
Venmo Venmo Blog.
Walmart Labs Walmart Labs Engineering Blog.
Wayfair Wayfair Engineering.
Wealthfront Wealthfront Engineering.
WebEngage WebEngage Engineering Blog.
Wix Wix Engineering Blog.
Workshape Workshape Blog.
Yahoo! Yahoo! Engineering Blog.
Yammer Blog Yammer Engineering.
Yelp Yelp Product and Engineering Blog.
YouTube YouTube Engineering and Developers Blog.
Zalando Zalando Tech Blog.
Zapier Zapier Engineering Blog.
Zenefits Zenefits Engineering Blog.
Zerodha Zerodha Tech Blog.
Zillow Zillow Engineering Blog.
Zomato Zomato Engineering Blog.
Zynga Zynga Engineering Blog.

@Neilblaze
Copy link
Author

External Model Card Examples

Model Cards have been adopted by a few organizations that have put out some initial versions of their thinking on model cards.

Examples include:

Allen AI

All Models

Cohere

NLP Models

Duke

PULSE Photo Resolution (see Appendix)

Google Cloud

Face Detection

Object Detection

Google Research

ML Kit Vision Models

Face Detection

Conversation AI

Nvidia

All Models

Open AI

GPT3

GPT2

DALL-E

CLIP Image Classification

Salesforce

Multiple Models

Stanford

DynaSent

@Neilblaze
Copy link
Author

How to Craft a Perfect Resume ❓ : https://static.wcn.co.uk/company/gs/resume.html

@Neilblaze
Copy link
Author

Services

  • Interview Cake - https://www.interviewcake.com/ - Interview Cake is a thoroughly documented site on programming interviews and concepts. It can be expensive for the year membership but if you're serious about buckling down to learn the fundamentals can be worth it. They also offer a money-back gaurantee.

  • Daily Coding Questions - https://dailycodingproblem.com/ - Coding question emailed to you everyday for free. If you want the answer emailed to you the following day it's $8/month.

  • exercism - https://exercism.io/ - Level up your programming skills with 2,629 exercises across 48 languages, and insightful discussion with our dedicated team of welcoming mentors. Exercism is 100% free forever.

  • codewars - https://www.codewars.com/ - Codewars has thousands of questions generated by the community. You'll never run out of practice problems. They're organized by difficulty, concept and programming language.

  • codesignal - https://codesignal.com/ - Really great user interface and user experience. I like the gamification and points system they have going on.

  • Irfan Baqui: ace coding interviews - https://www.irfanbaqui.com/coding-interview-prep/ - get one free problem to practice each week and get the solution next week

  • interviewing.io - https://interviewing.io/ - Anonymously practice coding interviews with engineers from prominent tech companies.

  • Pramp - https://www.pramp.com/ref/gt7 - Real practice with actual engineers. Book a time and practice interviewing with real human beings

  • LeetCode - https://leetcode.com/ - Pick from an expanding library of more than 190 questions, code and submit your solution to see if you have solved it correctly.

  • Coderbyte - https://coderbyte.com/challenges/?a=true - Lots of programming challenges, access 10 for free otherwise $30 per month

  • HackerRank - https://www.hackerrank.com/domains - Very popular platform for practicing coding questions. HackerRank is used by companies to evaluate candidates also

  • InterviewBit - https://www.interviewbit.com/ - Practice Coding Interview Questions. Give us time and we get you the job you deserve.

  • Codility - https://codility.com/programmers/ - Become a better programmer. Develop your coding skills with our lessons. Take part in our challenges.

  • Codility Solutions - https://www.martinkysel.com/codility-solutions/ - One engineer's solutions to the codility.com problem sets.

@Neilblaze
Copy link
Author

OT :-

@Neilblaze
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment