Skip to content

Systems Design and Coding

A curated a list of resources for someone trying to crack a software development or site reliability engineer (SRE) interview.

Coding

Blind 75

Top 75 coding questions, as identified posts on the app Blind.

Google Spreadsheet (Questions + Videos, copy and use!)

Grind75, study plan by the Blind 75 author.

NeetCode.io

Youtube Solutions Playlist

Leetcode

Companywise Problems

Coding problems categorized by company.

leetcode-company-wise-problems-2022

System Design Primer

The System Design Primer Github page is the open-sourced bible on this topic. It comes with flashcards, mock interviews (w/solutions), and much more.

Related Notes...

CAP Theorum

(Dev, SRE) Any distributed data store can have 2 of these 3 things, Consistency, Availability, Partition Tolerance. Understand what these mean to choose the right data store for a project.

Distibuted System Fundamentals

(Dev, SRE) TLDR summary of ACID, Replication, Sync/Async, Consensus, Partitioning, Distributed transactions, and Storage

How to Design Large Scale Systems

(Dev, SRE) Quick list of considerations.

System Design Interview Steps

(Dev, SRE) How to tackle the interview systematically.

Designing Data Intensive Applications

This section is based on the book published by O'Reilly. PDF

This book is a must-read. It gives you a high level understanding of different technology, including the idea behind it, the pros and cons, and the problem it is trying to solve. A great book for practitioners who want to learn all the essential concepts quickly.

Of particular importance:

  • Reliable, scalable, and maintainable applications (Dev, SRE)
  • Data models and query language -> Relational model vs document model (Dev, SRE)
  • Replication (SRE)
  • Partitioning (Dev, SRE)
  • Transactions (Dev, SRE)
  • The trouble with distributed systems (SRE)
  • Batch processing (Dev, SRE)
  • Stream processing (Dev, SRE)

Cliff Notes

Cliff Notes - moyano83 Cliff Notes - Someguy

Specific Concepts/Resources

Asynchronism (Dev, SRE)

Caching (Dev, SRE)

Databases (Dev, SRE)

File Systems (SRE)

Google Systems Design - Code Deployment (Dev, SRE)

HTTP (SRE)

Linux Interview Questions (SRE)

Linux Networking (SRE)

Linux OS Internals (SRE)

Load Balancers (SRE)

Networking (SRE)

SRE Interview Questions (SRE)

SSH (SRE)

Systems Design Template (Dev, SRE)

Troubleshooting via Metrics (SRE)

Unix Processes (SRE)

What happens when you type google.com into a browser (SRE)

Extras

Github Repo for this site

Published to Github Pages via: jobindj/obsidian-publish-mkdocs Theme: Material