System Design Questions

A distilled compilation of my notes for System Design questions.
Notes
Facebook Newsfeed
computer vision overview; historical context; course logistics
Facebook Status Search
backpropagation; multi-layer perceptrons; the neural viewpoint
Live Commenting
history; convolution and pooling; convnets outside vision
Facebook Messenger/WhatsApp
AlexNet, VGG, GoogLeNet, ResNet, etc.
Instagram
similar to fb newsfeed
Facebook/Yelp Proximity Server
the data-driven approach; k-nearest neighbor; linear classification I
Typeahead Suggestions/Autocomplete
linear classification II; higher-level representations, image features
Top N Trending Topics/Songs
optimization, stochastic gradient descent
Facebook Privacy Settings
CPUs, GPUs, TPUs; PyTorch, TensorFlow; dynamic vs static computation graphs
Facebook/LinkedIn People You May Know (PYMK)
CPUs, GPUs, TPUs; PyTorch, TensorFlow; dynamic vs static computation graphs
Tooling
Tools to design ML and Eng
Subscription design
Netflix subscription, etc
Web Crawler
activation functions; data processing; batch normalization; transfer learning
Marketplace
update rules; hyperparameter tuning; learning rate scheduling; data augmentation
Google Docs
WebSockets; Message Queue; real-time conflict resolution
Ad Prediction
AI design
Ad End to End
Eng design
System Design
Eng design
Pinterest
Eng design
Ad Click
Engineering design
Ad Online Auction
Engineering design
Netflix
AI design
Search
AI design
DoorDash
AI design
Airbnb
AI design
Engineering System Design basics by Alex Xu
Engineering design
Chat System
Engineering design- Whatsapp, FB messenger
Consistent Hashing
Engineering design
Key Value DB
Engineering design
Notification System
Engineering design
Rate Limiter
Engineering design
Unique ID for DB
Engineering design
Course Info
Course description:
  • Computer Vision has become ubiquitous in our society, with applications in search, image understanding, apps, mapping, medicine, drones, and self-driving cars. Core to many of these applications are visual recognition tasks such as image classification, localization and detection. Recent developments in neural network (aka “deep learning”) approaches have greatly advanced the performance of these state-of-the-art visual recognition systems.
  • This course is a deep dive into details of the deep learning architectures with a focus on learning end-to-end models for these tasks, particularly image classification. During the 10-week course, students will learn to implement, train and debug their own neural networks and gain a detailed understanding of cutting-edge research in computer vision. The final assignment involves training a multi-million parameter convolutional neural network and applying it on the largest image classification dataset (ImageNet).
  • We will focus on teaching how to set up the problem of image recognition, the learning algorithms (e.g. backpropagation), practical engineering tricks for training and fine-tuning the networks and guide the students through hands-on assignments and a final course project. Much of the background and materials of this course will be drawn from the ImageNet Challenge.
Credits
The in-line diagrams are taken from the CS231n lecture slides, unless specified otherwise.
Citation
If you found our work useful, please cite it as:
@misc{Chadha2020DistilledNotesCS231n,
  author        = {Chadha, Aman},
  title         = {Distilled Notes for Stanford CS231n: Convolutional Neural Networks for Visual Recognition},
  howpublished  = {\url{https://www.aman.ai}},
  year          = {2020},
  note          = {Accessed: 2020-07-01},
  url           = {www.aman.ai}
}

A. Chadha, Distilled Notes for Stanford CS231n: Convolutional Neural Networks for Visual Recognition, https://www.aman.ai, 2020, Accessed: July 1 2020.