Career path
Site Reliability Engineer
Make sure production services meet their reliability, availability and performance objectives, by measuring what users experience, automating repetitive work and turning every incident into a lasting improvement.
Aim for this jobWhat this job does
- 7 responsibilities
- 14 missions
- 44 skills
- 217 hours of work an estimate, starting from zero
The job
What a Site Reliability Engineer does
Seven responsibilities. Each one is carried out through concrete missions, which require skills.
Solve recurring problems at their root cause
Missions that make it up
-
Bring a broken server back
Deliverablea repaired server whose services are restored and stay so after a reboot
Manage incidents
Missions that make it up
-
Run a postmortem and follow up its actions
Deliverablea blameless postmortem, its causes and actions tracked to closure
-
Hold on-call and document operations
Deliverablean on-call rota and its escalation defined, every alert linked to its runbook, an incident handled through to recovery
-
Bring an application back on a cluster
Deliverablean application answering again, its faults found with no ticket and no procedure
Ensure continuity and resilience
Missions that make it up
-
Ensure a service's continuity and capacity
Deliverablea recovery plan proven by a drill, recovery objectives (RTO, RPO) met and anticipated capacity
-
Guarantee a service's availability on Kubernetes
Deliverablea service that survives voluntary disruptions and the loss of a node, with no measured interruption
Reduce repetitive work through automation
Missions that make it up
-
Automate a repetitive operations task
Deliverablea tested tool that replaces a manual step across a fleet, reading and producing structured data
-
Ship an internal tool to other teams
Deliverablean internal tool that is tested, reviewed, versioned and installable by other teams without help
Observe and measure the service delivered
Missions that make it up
-
Make a service observable
Deliverablea service whose metrics and logs are collected, queryable and visualised, with actionable alerts on its symptoms
-
Define an SLO and alert on its error budget
Deliverablea reliability objective measured on an indicator of the service delivered, an alert on the consumption of its error budget
Also required, outside missions
Change and deploy without putting the service at risk
Missions that make it up
-
Describe infrastructure as shareable, replayable code
Deliverablean infrastructure split into versioned modules, its state shared and locked, replayed identically
- Predict what an IaC tool will create, change or destroy: declarative model, idempotence, state and plan
- Keep an IaC repository healthy: layered structure, plan review, testing pyramid and secrets out of the code
- Structure infrastructure as code at scale: stacks, versioned modules, environments and debt
- Share a remote, locked and recoverable Terraform state
- Consume and version Terraform modules reproducibly
- Design, structure and test a reusable Terraform module
-
Deploy with GitOps
Deliverablenotes-api deployed and promoted between two environments from Git
-
Roll out a change progressively without service interruption
Deliverablea new version deployed in stages, its availability held and its rollback ready
Guarantee service reliability and performance
Missions that make it up
-
Size a service and anticipate its load
Deliverablea service whose resources, scaling and future capacity are measured and justified
The means
With which tools?
Choose your tools: the choice changes the lessons to read, never the responsibilities.
GitOps tool
Automation language
Going further
Specialisations
Optional, measured apart from the job.
Administer the runtime platform
Diagnose a service backed by a relational database
Build maintainable Python tools
- Manipulate lists, tuples, sets and slices in Python
- Design Python classes: encapsulation, inheritance, abc and mixins
- Run concurrent work and choose the right model
- Harden a Python test suite: Hypothesis, pytest fixtures, coverage and mutation
- Model and type data in Python with dataclasses, Enum and annotations
- Write idiomatic Python: decorators, generators, context managers and itertools
- Profile and optimize a Python program, up to a native extension
Work with an AI coding agent, under control
- Scope a task given to Claude Code and check its result with a plan, a diff and tests
- Confine Claude Code's execution: permissions, secrets and sandbox
- Automate and extend Claude Code with hooks, skills and plugins
- Connect an MCP server to Claude Code and delegate to isolated subagents
- Take back control of a drifting Claude Code session and troubleshoot its configuration
- Deliver a complete project driven by Claude Code, one vertical slice at a time
- Run Claude Code without an interactive session, in CI, with the right model and cost
What the site does not cover yet
Signal correlation and distributed tracing: taught as concepts (optional module of the Observability training), with no published hands-on content (Tempo distributed tracing and correlation labs still in draft), with no active skill. Instrumenting a service (traces emitted and checked) and tracing an LLM application's calls into Tempo are practised and recommended; correlating signals and following a distributed trace across services remain concepts.
Non-functional testing (SFIA NFTS): covered by sizing and scaling. Controlled fault injection is being prepared (draft ops.fault.inject); the mission "Test a service's reliability with an induced failure" will join the role once it is taught. Load testing is not taught yet.
Problem management (SFIA PBMG level 4): the responsibility is only carried today by repairing an incident; the level 4 gesture (incident trends, root cause, lasting fix) is being prepared (draft ops.problem.resolve).
Data analytics (SFIA DAAN): limited to reading service measurements, level 2.