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.
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¶
Published to Github Pages via: jobindj/obsidian-publish-mkdocs Theme: Material