Top Related Projects
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions
💯 Curated coding interview preparation materials for busy software engineers
A complete computer science study plan to become a software engineer.
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
A collection of Linux Sysadmin Test Questions and Answers. Test your knowledge and skills in different fields with these Q/A.
Quick Overview
The mxssl/sre-interview-prep-guide is a comprehensive GitHub repository designed to help Site Reliability Engineers (SREs) prepare for job interviews. It contains a curated list of resources, including books, articles, and practice questions covering various topics relevant to SRE roles.
Pros
- Extensive coverage of SRE-related topics, including Linux, networking, cloud platforms, and DevOps practices
- Well-organized structure with clear categorization of resources
- Regularly updated with new content and contributions from the community
- Includes both theoretical knowledge and practical skills required for SRE positions
Cons
- May be overwhelming for beginners due to the vast amount of information
- Some resources might become outdated over time if not regularly maintained
- Lacks interactive elements or hands-on exercises for practical learning
- Could benefit from more detailed explanations or summaries for each resource
Getting Started
To use this SRE interview preparation guide:
- Visit the GitHub repository: https://github.com/mxssl/sre-interview-prep-guide
- Browse through the README.md file to get an overview of the available topics
- Click on the links provided for each resource to access the relevant information
- Consider starring the repository to stay updated with new additions and changes
- Contribute to the guide by submitting pull requests with new resources or improvements
Note: This is not a code library, so there are no code examples or specific installation instructions. The guide is a collection of resources that can be accessed directly through the provided links.
Competitor Comparisons
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
Pros of system-design-primer
- More comprehensive coverage of system design topics
- Includes visual diagrams and illustrations for better understanding
- Offers a structured learning path with exercises and quizzes
Cons of system-design-primer
- May be overwhelming for beginners due to its extensive content
- Focuses primarily on system design, less emphasis on SRE-specific topics
- Requires more time investment to fully utilize the resources
Code comparison
While both repositories primarily focus on conceptual knowledge rather than code examples, system-design-primer does include some code snippets for illustration purposes:
system-design-primer:
def get_user(request):
user_id = request.GET.get('user_id')
user = User.objects.get(id=user_id)
return JsonResponse({'user': user})
sre-interview-prep-guide: No specific code examples are provided in this repository.
Summary
system-design-primer is a more comprehensive resource for system design concepts, offering visual aids and structured learning. However, it may be overwhelming for beginners and less focused on SRE-specific topics. sre-interview-prep-guide is more tailored to SRE interviews but lacks the depth and visual representations found in system-design-primer. The choice between the two depends on the specific learning goals and time availability of the user.
Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions
Pros of devops-exercises
- More comprehensive coverage of DevOps topics, including cloud platforms, CI/CD, and infrastructure as code
- Includes practical exercises and hands-on challenges for skill development
- Regularly updated with new content and community contributions
Cons of devops-exercises
- Less focused on specific SRE interview questions
- May be overwhelming for beginners due to the breadth of topics covered
- Requires more time investment to work through all the exercises
Code Comparison
sre-interview-prep-guide:
## Linux
1. What is the difference between hardlinks and symlinks?
2. What is an inode and what fields are stored in an inode?
3. What's a zombie process and how can you find and kill it?
devops-exercises:
questions:
- name: "What is DevOps?"
answer: "DevOps is a set of practices that combines software development and IT operations..."
- name: "What is CI/CD?"
answer: "CI/CD stands for Continuous Integration and Continuous Delivery/Deployment..."
The sre-interview-prep-guide focuses on specific interview questions, while devops-exercises provides a more structured approach with questions and answers in a YAML format, covering a wider range of DevOps topics.
💯 Curated coding interview preparation materials for busy software engineers
Pros of tech-interview-handbook
- More comprehensive coverage of general software engineering topics
- Includes algorithm and data structure explanations with examples
- Offers resume and behavioral interview preparation
Cons of tech-interview-handbook
- Less focused on SRE-specific topics and skills
- May contain more information than necessary for SRE roles
- Lacks detailed coverage of infrastructure and system design
Code Comparison
While both repositories primarily contain markdown files and don't have significant code samples, tech-interview-handbook includes some algorithm implementations. Here's a brief example from tech-interview-handbook:
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
sre-interview-prep-guide doesn't contain code samples, focusing instead on conceptual knowledge and best practices for SRE roles.
A complete computer science study plan to become a software engineer.
Pros of coding-interview-university
- Comprehensive coverage of computer science fundamentals
- Extensive resource list for various topics
- Well-structured learning path for aspiring software engineers
Cons of coding-interview-university
- Less focus on SRE-specific topics
- May be overwhelming for those specifically preparing for SRE roles
- Lacks practical examples of SRE tools and technologies
Code comparison
While both repositories primarily focus on providing resources and guidance rather than code examples, coding-interview-university does include some code snippets for data structures and algorithms. For example:
class Node:
def __init__(self, data):
self.data = data
self.next = None
sre-interview-prep-guide, on the other hand, doesn't include code snippets but focuses on concepts and tools relevant to SRE roles.
Summary
coding-interview-university is a comprehensive guide for general software engineering interviews, covering a wide range of computer science topics. It's ideal for those seeking a deep understanding of fundamental concepts. However, for SRE-specific preparation, sre-interview-prep-guide offers a more focused approach, covering topics directly relevant to SRE roles without the extensive computer science background. The choice between the two depends on the specific career goals and the type of role one is preparing for.
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
Pros of developer-roadmap
- Comprehensive coverage of various development paths (frontend, backend, DevOps)
- Visual roadmaps for easy understanding and navigation
- Regular updates to keep content current with industry trends
Cons of developer-roadmap
- Less focused on SRE-specific topics
- May be overwhelming for beginners due to the breadth of information
- Lacks detailed explanations for each topic
Code comparison
While both repositories primarily focus on providing guidance rather than code examples, developer-roadmap includes some JSON data for generating roadmaps:
{
"title": "Frontend Developer",
"description": "Step by step guide to becoming a frontend developer in 2023",
"featuredTitle": "Frontend",
"featuredDescription": "Step by step guide to becoming a frontend developer in 2023",
"author": {
"name": "Kamran Ahmed",
"url": "https://twitter.com/kamranahmedse"
},
"type": "role",
"featured": true,
"imageUrl": "/roadmaps/frontend.png",
"jsonUrl": "/roadmaps/frontend.json",
"resourcesPath": "/roadmaps/100-frontend/resources.md",
"versions": [
"latest",
"2022",
"2021",
"2020",
"2019",
"2018",
"2017"
]
}
sre-interview-prep-guide, on the other hand, primarily consists of Markdown files with no significant code examples.
A collection of Linux Sysadmin Test Questions and Answers. Test your knowledge and skills in different fields with these Q/A.
Pros of test-your-sysadmin-skills
- More comprehensive coverage of system administration topics
- Includes practical exercises and real-world scenarios
- Regularly updated with new content and community contributions
Cons of test-your-sysadmin-skills
- May be overwhelming for beginners due to its extensive content
- Lacks specific focus on SRE practices and principles
- Less structured approach compared to sre-interview-prep-guide
Code comparison
test-your-sysadmin-skills:
#!/usr/bin/env bash
# Function to check system load
check_load() {
load=$(uptime | awk '{print $10}' | cut -d "," -f1)
echo "Current system load: $load"
}
sre-interview-prep-guide:
def calculate_availability(total_time, downtime):
"""
Calculate system availability percentage
"""
uptime = total_time - downtime
availability = (uptime / total_time) * 100
return availability
The code snippets demonstrate the different focus areas of each repository. test-your-sysadmin-skills provides practical system administration scripts, while sre-interview-prep-guide offers more SRE-specific functions and concepts.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Site Reliability Engineer (SRE) Interview Preparation Guide
This repository is an attempt to consolidate useful resources for Site Reliability Engineer (SRE) interview preparation.
Contributing
Please take a look at the contribution guidelines first. Contributions are always welcome!
Basics
- Simple: What happens when you type in âwww.cnn.comâ in your browser?
- Detailed: What happens when you type google.com into your browser's address box and press enter?
Linux
- Introduction to Linux â Full Course for Beginners
- What every SRE should know about GNU/Linux shell related internals: file descriptors, pipes, terminals, user sessions, process groups and daemons
- SRE deep dive into Linux Page Cache
- Linux Internals workshop - Google TechTalks
Boot Process
- How Does Linux Boot Process Work?
- An introduction to the Linux boot and startup processes
- What happens when we turn on computer?
- What happens when we turn on computer?
- From Power up to login prompt
Filesystem
- Understanding Inodes
- Understand UNIX / Linux Inodes Basics with Examples
- Understanding proc filesystem
- Common Mount Options
- Understanding Linux filesystems: ext4 and beyond
Kernel
- Explain the basics of Linux kernel
- Kernel Space and User Space
- Linux Kernel Process Management
- Linux Addressing
- Linux Kernel Memory Management
- STACK AND HEAP
- Paging and Segmentation
- Linux Kernel System Calls
- The Virtual Filesystem
- Concurrency and Race Conditions
- Memory Leak
- What is a kernel Panic?
- Book about the linux kernel
- Processes in Linux - Everything You Need to Know
Troubleshooting
- Linux troubleshooting tools
- Linux Performance Analysis in 60,000 Milliseconds
- strace
- lsof
- Linux system debugging
- SaaS where users can test their Linux troubleshooting skills
Networking
- The Internet explained from first principles
- Network protocols for anyone who knows a programming language
- Introduction to Linux interfaces for virtual networking
- Multi-tier load-balancing with Linux
- Introduction to modern network load balancing and proxying
- Load Balancing Algorithms
- What every SRE should know about GNU/Linux resolvers and Dual-Stack applications
Containers
- Introduction to Docker and Containers
- Containers Patterns
- Docker Container Anti Patterns
- Anti-Patterns When Building Container Images
Kubernetes
- Deploying and Scaling Microservices with Docker and Kubernetes
- Demystifying the Kubernetes Iceberg
- What happens when ... Kubernetes edition!
- Kubernetes Production Patterns
- Kubernetes production best practices
- A Guide to the Kubernetes Networking Model
- 47 Things To Become a Kubernetes Expert
- Kubernetes Best Practices 101
- 15 Kubernetes Best Practices Every Developer Should Know
- THE KUBERNETES NETWORKING GUIDE
- The life of a DNS query in Kubernetes
- Kubernetes YAML tips and tricks
- Kubernetes Learning Roadmap
Infrastructure as code / Configuration management
- Terraform
- A Comprehensive Guide to Terraform
- Ansible
- Getting Started With Terraform on AWS
- Google Cloud: Best practices for using Terraform
- Terraform Roadmap
Databases
- Things You Should Know About Databases
- 7 Database Paradigms
- CAP theorem
- Evolutionary Database Design
- ACID vs BASE in Databases
- Understanding Database Sharding
- Database Replication
- SQL vs. NoSQL Database: When to Use, How to Choose
- How do database indexes work?
- Redis Explained
- Database Sharding Explained
- Kafka 101
CI/CD
- Continuous Integration
- 7 Pipeline Design Patterns for Continuous Delivery
- CI/CD patterns
- Six Strategies for Application Deployment
- What Is GitOps?
Clouds
Programming
Git
Python
Go (Golang)
- A tour of Go
- Go by Example
- Go Tutorials & Examples
- Learn Go with Tests
- Getting up and running with Go
- Effective Go
- Go Design Patterns
- Go Memory Management
- Style Guide
- Style Decisions
- Best Practices
- 50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs
Big O Notation, Algorithms and Data Structures
- AlgoExpert
- Hacking a Google Interview â Handout 1
- Hacking a Google Interview â Handout 2
- Hacking a Google Interview â Handout 3
System design
- SystemsExpert course from AlgoExpert
- System Design 101
- Grokking the System Design Interview
- The System Design Primer
- Crack the System Design Interview
- System design interview for IT companies
- Web Architecture 101
- What's in a Production Web Application?
- Distributed systems
- Failover
- Monoliths, Service Architecture, and Microservices
- Scale From Zero To Millions Of Users
System design examples
Monitoring
- Implementing SLOs
- Setting up Service Monitoring â The Whyâs and Whatâs
- How NOT to Measure Latency
- The four Golden Signals of Kubernetes monitoring
Prometheus
- Introduction to Prometheus
- Prometheus Relabeling Training
- Avoid These 6 Mistakes When Getting Started With Prometheus
- A Deep Dive Into the Four Types of Prometheus Metrics
- How Prometheus Querying Works
- PromQL Cheat Sheet
Processes
- The practical guide to incident management
- Incident Response
- Postmortems
- Runbooks
- Identifying and tracking toil using SRE principles
- Building SRE from Scratch
- SRE at Google: Our complete list of CRE life lessons
- Incident Management vs. Incident Response - What's the Difference?
- Practical Guide to SRE: Using SLOs to Increase Reliability
- Practical Guide to SRE: Automating On-Call
- Going from Zero to SRE
- An Incident Command Training Handbook
- Howie guide to postâincident investigations
- Rundown of LinkedInâs SRE practices
- Rundown of Uberâs SRE practice
- SRE in the Real World
- SRE Engagement Models
- SRE Checklist
- Why bother with SLI and SLO?
- The System Resiliency Pyramid
- 10 Tips for Onboarding New SRE Hires
- Starting SRE at startups and smaller organizations
- Things That Makes a Good Site Reliability Engineer
- How SRE teams are organized, and how to get started
Resume
Interview
SRE interview process
Interview Questions
- A collection of questions to practice with for SRE interviews
- SRE Interview Questions
- Sysadmin Test Questions
- Kubernetes job interview questions
- DevOps Guide
- Questions I ask in SRE interviews
- DevOps Roadmap: Learn to become a DevOps Engineer or SRE
- The Must-Know Terraform Interview Questions
Blogposts
- SRE Interviews in Silicon Valley
- Preparing the SRE interview
- How to Get Into SRE
- My Job Interview at Google
- Path to Site Reliability Management
- Becoming a Site Reliability Engineer
- How I get a job at Google as SRE
- Become A DevOps Engineer in 2023: [Detailed Guide]
- How to Get an SRE Role
- DevOps Career Path
- Key DevOps Engineer Skills You Need in 2024
Books
SRE books
- Site Reliability Engineering
- The Site Reliability Workbook
- Seeking SRE
- Building Secure and Reliable Systems
- Implementing Service Level Objectives
Linux
- Linux Kernel Development (3rd Edition)
- UNIX and Linux System Administration Handbook (5th Edition)
- Linux Pocket Guide, 3rd Edition
Networking
Troubleshooting and Performance
Courses
Top Related Projects
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions
💯 Curated coding interview preparation materials for busy software engineers
A complete computer science study plan to become a software engineer.
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
A collection of Linux Sysadmin Test Questions and Answers. Test your knowledge and skills in different fields with these Q/A.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot