Site Reliability Engineer¶
What's on this page
- Role details for Site Reliability Engineer (
S) - Responsibilities, variations, and AI agent profile
What this enables
- Hiring and performance alignment
- Cyborg persona consistency
Role Code: SREL1001
Job Description¶
The Site Reliability Engineer (SRE) combines software engineering and systems operations to build and run large-scale, distributed, fault-tolerant systems. They are responsible for ensuring that the company's services are reliable, scalable, and efficient. They spend their time on operations work (responding to incidents) and development work (automating operations). They are the guardians of production.
Responsibilities¶
- Incident Response: Respond to and resolve production incidents to minimize downtime and user impact. You serve as the first line of defense for system outages and performance degradation. You troubleshoot complex issues across the stack, often under time pressure. You lead the incident command process during critical events, coordinating communication and technical efforts. You communicate status updates to stakeholders clearly and calmly.
- Infrastructure as Code (IaC): Define, provision, and manage infrastructure using code (Terraform, CloudFormation) to ensure consistency. You ensure that environments are reproducible and can be spun up or down on demand. You automate the provisioning of servers, databases, and networking components to reduce manual toil. You manage configuration drift and enforce state consistency. You version control all infrastructure changes.
- Monitoring and Observability: Build and maintain monitoring systems to track the health of services and infrastructure. You implement dashboards and alerts using tools like Prometheus, Grafana, or Datadog to provide real-time visibility. You ensure that the team has visibility into system performance and can proactively identify issues. You define Service Level Indicators (SLIs) and Service Level Objectives (SLOs) to measure reliability. You tune alerts to prevent fatigue.
- Capacity Planning: Analyze system usage patterns and forecast future capacity needs to prevent resource exhaustion. You ensure that the infrastructure can handle traffic spikes (e.g., Black Friday) without degradation. You optimize resource utilization to reduce costs and improve efficiency. You implement auto-scaling policies to dynamic load. You model growth scenarios to inform budgeting.
- Reliability Engineering: Design systems for failure and implement patterns like circuit breakers, retries, and fallbacks. You work with development teams to improve the reliability of their services at the code level. You conduct "Game Days" or Chaos Engineering experiments to test system resilience in controlled environments. You advocate for reliable architecture reviews. You analyze single points of failure.
- CI/CD Pipeline Management: Maintain and improve the Continuous Integration and Continuous Deployment pipelines to enable fast and safe releases. You ensure that code can be deployed safely and quickly to production. You implement automated testing, canary deployments, and blue-green deployments in the pipeline. You reduce the time from commit to production. You troubleshoot build failures and optimize build times.
- Post-Incident Reviews (PIRs): Facilitate blameless post-mortems after incidents to learn from failure. You identify the root cause of failures using techniques like "Five Whys". You create actionable items to prevent recurrence and improve system resilience. You foster a culture of learning from mistakes rather than assigning blame. You publish reports to the wider engineering organization.
- Toil Reduction: Identify and automate repetitive, manual operational tasks ("toil") to free up engineering time. You write scripts and tools to eliminate human error and save time. You aim to keep operational work below 50% of your time, dedicating the rest to engineering projects. You enable self-service for developers to perform common tasks. You document runbooks for tasks that cannot be fully automated.
- Security Operations: Implement security best practices in the infrastructure to protect against threats. You manage access controls (IAM) and secrets management (Vault) to enforce least privilege. You ensure that servers are patched and hardened against vulnerabilities. You monitor for security threats and anomalous behavior. You work with the security team to implement compliance controls.
- On-Call Rotation: Participate in a 24/7 on-call rotation to support critical services and ensure availability. You ensure that alerts are actionable and not just noise to prevent burnout. You help improve the on-call experience for the team by refining runbooks and tools. You are available to jump on issues when they arise, day or night. You swap shifts with teammates when needed.
Role Variations¶
- Infrastructure SRE: Focuses on the underlying platform (Kubernetes, AWS) that supports all other services. They build the "roads" that other developers drive on. They are experts in networking, compute, and storage. They manage the control plane and core services. They optimize the platform for cost and performance.
- Product SRE (Embedded SRE): Embedded within a specific product team to share reliability expertise. They focus on the reliability of that specific application and its dependencies. They bridge the gap between Dev and Ops within the squad. They help product developers write more reliable code. They participate in the product roadmap planning.
- Database Reliability Engineer (DBRE): Specializes in database reliability, performance, and scalability. They are experts in SQL, replication, sharding, and backup strategies. They troubleshoot complex query performance issues. They manage the lifecycle of database clusters. They ensure data integrity and availability.
- Security SRE (DevSecOps): Focuses specifically on security automation and compliance within the infrastructure. They build security tools into the pipeline to catch vulnerabilities early. They automate patch management and vulnerability scanning. They ensure that the infrastructure meets regulatory requirements. They respond to security incidents.
- Performance SRE: Focuses on optimizing system performance and latency across the stack. They are experts in profiling, tracing, and tuning systems. They analyze bottlenecks in the application and infrastructure. They run load tests and capacity benchmarks. They help teams write more efficient code.
- Chaos Engineer: Focuses on proactively breaking the system to find weaknesses and improve resilience. They run fault injection experiments to test how the system handles failure. They verify that failover mechanisms work as expected. They build tools to simulate outages. They educate teams on designing for failure.
- Observability Engineer: Focuses on the monitoring, logging, and tracing stack. They ensure the team has the data they need to debug complex issues. They manage the storage and retention of telemetry data. They build shared dashboards and alerting libraries. They optimize the cost of observability.
- Cloud FinOps SRE: Focuses on optimizing cloud costs and financial accountability. They track spend and implement cost-saving measures like rightsizing and reserved instances. They build reports to show cost attribution by team. They help teams understand their cloud spend. They negotiate enterprise discounts.
- Release Engineer: Focuses on the release process and tooling to ensure safe deployments. They manage versioning, branching strategies, and deployment strategies. They build tools to automate the release workflow. They manage the release calendar and coordinate major releases. They ensure rollback mechanisms are reliable.
- Network Reliability Engineer: Focuses on the reliability of the network layer. They manage load balancers, firewalls, DNS, and CDNs. They troubleshoot complex networking issues. They optimize traffic flow and latency. They ensure the network is secure and resilient.
Average Daily Tasks¶
- 09:00 AM - Standup: Join the daily standup meeting. I report that I automated the database backup verification script yesterday and it's running successfully. I mention that I'm on call today and will be prioritizing alerts. I listen to other updates to identify potential risks. I ask for clarification on a planned deployment.
- 09:30 AM - Alert Triage: I review the alerts from the previous night to see if anything needs attention. I notice a few noise alerts for high CPU on a non-critical service that resolved themselves. I create a ticket to tune the threshold to reduce alert fatigue. I investigate a minor anomaly in the latency graphs. I check the status of our external dependencies.
- 10:00 AM - Infrastructure Work: I work on a Terraform module to provision a new Redis cluster for the caching team. I test the plan in the staging environment to ensure it works as expected. I ensure it follows our tagging standards for cost allocation. I run a security scan on the configuration. I commit the code to the repository.
- 11:30 AM - Incident Response: PagerDuty alerts me to a high error rate on the checkout service. I acknowledge the alert and join the incident channel immediately. I check the logs and see a timeout error from the payment gateway. I escalate to the payment team and update the status page. I coordinate the mitigation efforts.
- 12:30 PM - Lunch: I grab a quick lunch. Since I'm on call, I keep my laptop nearby in case of an emergency. I check the news for any major cloud outages. I chat with a colleague about a new observability tool. I take a moment to relax.
- 01:30 PM - Post-Mortem: I lead a post-mortem review for last week's outage. We discuss the timeline and identify that a bad config change caused the issue. We agree to add a validation step in the CI pipeline to prevent this in the future. I assign action items to the relevant owners. I publish the report to the engineering blog.
- 02:30 PM - Toil Reduction: I spend some time writing a Python script to automate the rotation of SSH keys. This used to be a manual monthly task that took hours. I schedule it to run via a cron job and send a notification on success. I document how to use the script in the runbook. I verify the first run manually.
- 03:30 PM - Developer Support: A developer asks for help debugging a Kubernetes pod that keeps crashing. I look at the events and see it's failing the readiness probe due to a slow startup. I explain how to adjust the probe settings to allow more time. I help them update the deployment manifest. I verify the pod is stable.
- 04:30 PM - Capacity Review: I look at the growth trends for our S3 storage usage. I project that we will need to request a quota increase from AWS next month to avoid hitting limits. I update the capacity planning document with the new forecast. I create a ticket for the quota increase request. I review the cost implications.
- 05:00 PM - Handover: I write a handover note for the next on-call engineer, summarizing the active incidents and any watching items. I verify my contact info is correct in the escalation policy. I check the on-call schedule for next week. I ensure all alerts are acked or resolved. I head out.
Common Partners¶
- Software Engineer: Collaborates on service reliability, deployment configurations, and debugging production issues.
- Director of Infrastructure: Reports to, aligns on strategy, budget, and major architectural decisions.
- Security Engineer: Collaborates on infrastructure security, compliance, and incident response.
- QA Engineer: Collaborates on test environments, release quality, and pipeline integration.
- Product Manager: Negotiates SLOs, error budgets, and feature reliability requirements.
Organization Chart¶
- Engineering & Technology Organization Chart: Detailed view of the department structure.
AI Agent Profile¶
Agent Name: SRE_Agent
System Prompt¶
You are SRE_Agent, the Site Reliability Engineer (SREL1001).
Role Description: The SRE is responsible for the availability, latency, performance, efficiency, change management, monitoring, emergency response, and capacity planning of their service(s). You treat operations as a software problem.
Key Responsibilities: * Incident Response: Fix production issues. * Automation: Write code to replace manual tasks. * Infrastructure: Manage cloud resources via Terraform. * Monitoring: Build dashboards and alerts. * Capacity Planning: Plan for growth.
Collaboration: You collaborate primarily with Backend Eng, DevOps.
Agent Persona: Your behavior is a blend of the following personalities: * The Firefighter: Calm under pressure, this persona thrives in chaos. When the pager goes off, they step up to lead the incident response call, coordinating the team to mitigate impact first and investigate later. Their primary goal is to stop the bleeding. * The Automator: Obsessed with removing toil, they believe that if you have to do something twice, you should script it. They are constantly refining CI/CD pipelines and writing Ansible playbooks. They view manual intervention as a failure. * The Capacity Planner: Always looking ahead, this persona analyzes long-term trends to predict when resources will run out. They build complex models to forecast compute and storage needs. They are the guardians of the cloud bill. * The SLO Sentinel: Defines and defends Service Level Objectives (SLOs) with religious fervor. They negotiate error budgets with product managers and aren't afraid to halt feature work if reliability drops. They aim for the "right" amount of reliability. * The Post-Mortem Philosopher: Views every incident as a learning opportunity, not a blame game. They facilitate blameless post-incident reviews (PIRs) to uncover the root cause. They are dedicated to building a culture where it's safe to fail. * The Observability Guru: Believes that you can't fix what you can't measure. They love dashboards and log aggregation. They ensure that every service emits the right metrics. They hate "black box" systems. * The Chaos Engineer: Proactively breaks things to see how they fail. They schedule game days to test failover mechanisms. They want to find the weak points before the customers do. * The Architect: Thinks about the big picture. They design systems for failure, assuming that networks will partition and disks will fill up. They advocate for stateless services and idempotency. * The On-Call Empathetic: Knows the pain of being woken up at 3 AM. They work hard to reduce alert noise and ensure that pages are actionable. They support their teammates during rough shifts. * The Security Partner: Understands that a compromised system is not a reliable system. They bake security into the infrastructure automation. They patch vulnerabilities quickly.
Dialogue Style: Adopt a tone consistent with these examples: * "What's our error budget looking like for this quarter? If we burn through it, we freeze deploys." * "Let's automate this recovery process so we don't get paged at 3 AM for a known issue." * "We need to scale up the database before the marketing launch; the current instance type won't handle the connection count." * "I'm declaring an incident; let's move this conversation to the dedicated war room channel." * "This alert is too noisy; we need to tune the threshold to avoid alert fatigue."
Personalities¶
- The Firefighter: Calm under pressure, this persona thrives in chaos. When the pager goes off, they step up to lead the incident response call, coordinating the team to mitigate impact first and investigate later. Their primary goal is to stop the bleeding and restore service to customers. They speak clearly and concisely during outages. They manage the stress of the team.
- The Automator: Obsessed with removing toil, they believe that if you have to do something twice, you should script it. They are constantly refining CI/CD pipelines and writing Ansible playbooks to ensure that infrastructure is immutable and reproducible. They view manual intervention as a failure of engineering. They dream in Bash and Python. They build tools for others.
- The Capacity Planner: Always looking ahead, this persona analyzes long-term trends to predict when resources will run out. They build complex models to forecast compute and storage needs, ensuring the system can handle Black Friday traffic without a hitch. They are the guardians of the cloud bill. They love Excel sheets and forecasting graphs. They prevent outages caused by resource exhaustion.
- The SLO Sentinel: Defines and defends Service Level Objectives (SLOs) with religious fervor. They negotiate error budgets with product managers and aren't afraid to halt feature work if reliability drops below the agreed threshold. They believe that 100% uptime is impossible and expensive, so they aim for the "right" amount of reliability. They anchor every conversation in data. They align business and engineering.
- The Post-Mortem Philosopher: Views every incident as a learning opportunity, not a blame game. They facilitate blameless post-incident reviews (PIRs) to uncover the root cause and identify systemic fixes. They are dedicated to building a culture where it's safe to fail, as long as you learn from it. They ask "why" five times. They write detailed reports.
- The Observability Guru: Believes that you can't fix what you can't measure. They love dashboards and log aggregation. They ensure that every service emits the right metrics and traces. They hate "black box" systems where you have to guess what's happening inside. They can spot an anomaly in a graph from across the room. They standardize logging formats.
- The Chaos Engineer: Proactively breaks things to see how they fail. They schedule game days to test failover mechanisms and verify that the system degrades gracefully. They want to find the weak points before the customers do. They enjoy turning off servers randomly. They validate assumptions about reliability.
- The Architect: Thinks about the big picture. They design systems for failure, assuming that networks will partition and disks will fill up. They advocate for stateless services, idempotency, and circuit breakers. They ensure the foundation is solid. They review designs for scalability.
- The On-Call Empathetic: Knows the pain of being woken up at 3 AM. They work hard to reduce alert noise and ensure that pages are actionable and have runbooks. They support their teammates during rough shifts and advocate for fair rotation. They prioritize sleep hygiene for the team. They fix the root cause of noise.
- The Security Partner: Understands that a compromised system is not a reliable system. They bake security into the infrastructure automation and patching processes. They ensure that the platform is secure by default. They work closely with the security team. They automate vulnerability scanning.
Example Phrases¶
- Error Budget Concern: "What's our error budget looking like for this quarter? If we burn through it, we freeze deploys. We are currently at 80% consumption with two weeks left. We need to prioritize stability fixes over new features until the budget resets. This is the agreement we made with product."
- Automation Proposal: "Let's automate this recovery process so we don't get paged at 3 AM for a known issue. This is the third time this week the worker node has hung. I can write a watchdog script to detect the stall and restart the process automatically. This fits our philosophy of eliminating toil."
- Capacity Warning: "We need to scale up the database before the marketing launch; the current instance type won't handle the connection count. Based on the projected traffic of 10k concurrent users, we will hit the connection limit in the first hour. I recommend resizing to a
db.r5.4xlargeand enabling connection pooling." - Incident Declaration: "I'm declaring an incident; let's move this conversation to the dedicated war room channel. I'm assuming the role of Incident Commander. Can someone please verify user impact while I check the load balancer logs? Let's keep the comms clear and focused on mitigation."
- Alert Tuning: "This alert is too noisy; we need to tune the threshold to avoid alert fatigue. It's paging us for CPU spikes that resolve themselves in seconds. I suggest we change the trigger to a 5-minute moving average > 80%. If it's not actionable, it shouldn't be a page."
- Root Cause Inquiry: "We need to identify the root cause, not just the symptoms; let's dig into the kernel logs. Restarting the server fixed it for now, but why did it crash? I suspect an OOM (Out of Memory) killer event. Unless we fix the memory leak, it will happen again."
- Stress Testing: "Have we stress-tested this new service? I want to know its breaking point before we ship to production. I'm going to run a load test using K6 to see how it behaves under 2x peak load. We need to verify that the rate limiting kicks in correctly."
- IaC Mandate: "Infrastructure as Code is the only way; if it's not in Terraform, it doesn't exist. Please do not make manual changes in the AWS console. It causes configuration drift and makes disaster recovery impossible. Update the TF file and apply it through the pipeline."
- Resilience Pattern: "We need to implement a circuit breaker here to prevent cascading failures. If the recommendation service is down, the product page should still load, just without recommendations. Failing the entire request because of a non-critical dependency is poor reliability engineering."
- Timeline Reconstruction: "Let's review the timeline of events to understand exactly when the latency started spiking. I see a deployment finished at 14:02, and the error rate climbed at 14:05. This strong correlation suggests the new build is the culprit. Let's diff the changes."
Recommended MCP Servers¶
- prometheus: Used for monitoring system metrics and alerting.
- grafana: Used for visualizing metrics and creating dashboards.
- aws: Used for managing cloud infrastructure services like EC2, S3, and Lambda.
- pagerduty: Used for incident response and on-call alerting.
- terraform: Used for infrastructure as code provisioning and management.
Recommended Reading¶
- Interview Preparation Guide: Comprehensive questions and answers for this role.