Site Reliability Engineering Principles Questions
The core SRE practice model: service-level objectives and indicators, error budgets, toil reduction, and reliability as an engineering discipline. Covers the principles and trade-offs behind treating operations as a software problem and balancing reliability against feature velocity. The conceptual foundation questions specific to SRE-style roles.
Design a lightweight SLA enforcement mechanism that prevents teams from repeatedly violating an enterprise-wide data ingestion SLO. Include detection, enforcement actions, and incentive-aligned remediation steps.
Sample Answer
A lightweight enforcement mechanism for a shared, enterprise-wide data-ingestion SLO needs detection that's cheap to run continuously, an escalating consequence that's proportional to the severity of repeated violation, and incentives that make compliance the path of least resistance rather than a burden teams route around.
Structured elaboration
Detection: a simple, automated periodic check (e.g. daily) comparing each team's ingestion pipeline against the SLO's defined freshness/completeness thresholds, flagging any miss and, critically, tracking the PATTERN of misses over time (a single miss is normal noise; a team missing repeatedly across several consecutive periods is the actual enforcement target). Enforcement actions, escalating: a first miss generates an automated notification to the owning team, no further consequence; a SECOND consecutive miss triggers a required written remediation plan from the team (a low-cost but real accountability step); a THIRD consecutive miss (a genuinely repeated pattern) escalates to that team's engineering leadership and may trigger a more structural consequence (e.g. that team's ingestion pipeline being deprioritized for new feature requests until compliance is restored). Incentive alignment: rather than a purely punitive mechanism, pair enforcement with a positive incentive (e.g. teams with a strong compliance record get priority access to shared platform support or infrastructure investment), so the mechanism isn't purely a stick.
Worked example
A team's ingestion pipeline misses its freshness SLO on Monday (first miss): automated Slack notification to the team, no other action. It misses again Tuesday and Wednesday (second and third consecutive miss): the team is required to submit a one-page remediation plan within 48 hours, reviewed by a lightweight cross-team governance group. If the pattern continues into a fourth consecutive week despite a submitted remediation plan, the team's other feature requests to the shared platform team are deprioritized until the ingestion issue is demonstrably resolved, a concrete, felt consequence that creates real urgency without requiring a heavyweight enforcement bureaucracy.
Trade-offs and pitfalls
A purely punitive mechanism with no positive incentive tends to produce resentment and gaming (teams finding ways to technically avoid triggering the detection without genuinely fixing the underlying problem) rather than genuine compliance; pairing enforcement with a real, valued incentive for good behavior (priority support, infrastructure investment) changes the calculus toward genuine cooperation. It's also worth keeping the detection and escalation genuinely LIGHTWEIGHT as intended: a heavyweight review process for every single miss would itself become a source of friction and resistance, undermining the "lightweight" design goal the mechanism is explicitly meant to satisfy.
Describe how you would implement service-level indicators (SLIs) for data freshness, completeness, and accuracy for a data mart used by finance teams. For each SLI, explain how you'd calculate it and what data sources you'd instrument.
Sample Answer
Data freshness, completeness, and accuracy are three DIFFERENT failure modes for a data mart, and each needs its own SLI, since a mart can be fresh but incomplete, complete but stale, or complete-and-fresh but subtly wrong.
Structured elaboration
Freshness: time since the mart's data last reflected the source system, calculated as now−max(last successful load timestamp), instrumented by tracking the completion timestamp of each ETL/ELT run and comparing it against the current time on a schedule. Completeness: proportion of expected source records that actually arrived, calculated by comparing an expected row count (from the source system, or a prior period's typical volume) against the actual loaded row count, instrumented via row-count checks at the end of each load. Accuracy: proportion of loaded records that pass validation rules (referential integrity, expected value ranges, reconciliation against a trusted source total), instrumented via automated data-quality checks run as part of (or immediately after) the load pipeline, often using a dedicated validation framework.
Worked example
A finance data mart might target: freshness under 2 hours (data reflects the source as of no more than 2 hours ago), completeness above 99.5% (at most 0.5% of expected records missing per load), and accuracy above 99.9% (validated against a small set of reconciliation rules, e.g. sum of transaction amounts matching the source system's total within a tight tolerance). If a load completes on time (freshness fine) but drops 2% of rows due to an upstream schema change, the completeness SLI catches what freshness alone would completely miss.
Trade-offs and pitfalls
These three SLIs can move independently and sometimes in tension: fixing a completeness gap under time pressure (re-running a partial load) can itself introduce an accuracy problem (duplicate or partially-reconciled records) if the re-run isn't done carefully with proper idempotency; treating the three as one combined "data quality score" hides which specific failure mode is actually occurring and what different remediation each one needs. For a finance-consuming team specifically, accuracy usually deserves the strictest SLO of the three, since a stale-but-correct number is a known, communicable limitation, but a fresh-and-complete-but-WRONG number can drive a bad financial decision without anyone realizing it's wrong.
A security team proposes a stricter authentication flow that increases latency and introduces some additional error rate. As SRE, propose how you would balance the security requirement against the reliability goal: what you would measure, negotiate, or mitigate.
Sample Answer
Balancing a security change that hurts reliability starts from the premise that this is not security versus reliability as opposing goals, it's finding the specific implementation of the security requirement that satisfies the actual threat model at the lowest reliability cost, since most security requirements have more than one way to be satisfied. The approach is to measure the actual reliability impact rather than estimate it, negotiate the requirement's specifics (not just accept or reject it wholesale), and mitigate the remaining cost with standard reliability techniques rather than treating it as unavoidable.
Working through the trade-off
- Measure, don't estimate, the actual impact. Before arguing about the change, load-test or canary it to get real numbers: how much latency does the added authentication step actually add, and what's the real error-rate increase, rather than debating a hypothetical.
- Understand what's actually required versus how it's currently proposed. A "stricter authentication flow" might be satisfiable with a cached, shorter-lived token validated locally most of the time and only re-validated against the identity provider periodically, instead of a synchronous round-trip on every single request; the security requirement and its most expensive possible implementation are not the same thing.
- Apply standard mitigations to the remaining cost. If some latency and error-rate increase is unavoidable, standard reliability techniques reduce its blast radius: caching validated tokens for their safe lifetime, adding a circuit breaker around the identity-provider dependency so its failure degrades gracefully rather than cascading, and rolling the change out as a canary to catch a worse-than-expected impact before it's fully live.
- Make the residual trade-off an explicit, owned decision, not an implicit one. If after mitigation there's still a real reliability cost, that's a decision for whoever owns both the security and the reliability target to make consciously, informed by real numbers, not something engineering absorbs silently.
Worked example
A security team proposes moving from long-lived session tokens to short-lived tokens re-validated against the identity provider on every request. A canary of the new flow on 5% of traffic shows p99 (99th-percentile) latency increasing by 45 milliseconds and error rate increasing by 0.3 percentage points, both driven by the identity provider's own latency and occasional timeouts under load. The negotiated alternative: cache validated tokens for 60 seconds (short enough to meet the security team's freshness requirement, since 60 seconds is well within their stated threat window) instead of re-validating on every request, plus a circuit breaker around the identity-provider call so a slow or failing identity provider degrades to the cached validation rather than failing every request. The re-canaried result: p99 latency increase drops to roughly 4 milliseconds and the error-rate increase becomes negligible, while still meeting the security team's actual requirement rather than their initial specific implementation of it.
Trade-offs and pitfalls
Accepting a security requirement's first proposed implementation without probing what it's actually protecting against risks paying a much larger reliability cost than necessary; conversely, resisting a legitimate security requirement purely on reliability grounds, without proposing a workable alternative, isn't a real answer either and tends to get overridden anyway once a real incident makes the security gap concrete. The right posture treats both reliability and security as real constraints with real owners, and looks for the specific implementation that satisfies both, rather than treating the trade-off as a fixed, zero-sum choice between the two.
Draft an SLA negotiation template to use with enterprise customers. Include measurable components (availability, latency, throughput), measurement windows, exclusions and blackout windows, monitoring sources for disputes, remedy/credit structure, dispute resolution and escalation clauses, and how to align the negotiated SLA to internal SLOs and capacity planning.
Sample Answer
An SLA negotiation template needs to name every component a real dispute would eventually turn on, so it functions as a genuine starting point for negotiation rather than a document that looks complete but has gaps a sophisticated enterprise counterparty will immediately probe.
Structured elaboration
Measurable components: availability, latency (with explicit percentiles, e.g. p95 and p99, not just an average), and throughput, each defined precisely enough that both sides agree in advance what "meeting the target" means. Measurement windows: state both the evaluation period (typically monthly) and, separately, any shorter windows used for real-time internal alerting versus the contractual reporting period, since these can legitimately differ. Exclusions and blackout windows: scheduled maintenance (with a defined maximum monthly/quarterly allowance and advance-notice requirement) and force-majeure categories, named specifically rather than left vague. Monitoring sources for disputes: state whose data is authoritative (provider logs, a named third-party monitor, or a reconciliation process between both parties' data) to avoid the classic "our numbers don't match yours" stalemate. Remedy/credit structure: tiered service credits scaled to severity, with a stated cap. Dispute resolution: a defined escalation path (technical review, then a management-level conversation, then, if unresolved, a named arbitration or mediation process) before any resort to litigation. Alignment to internal SLOs and capacity planning: internally, confirm the negotiated SLA sits comfortably inside the existing internal SLO's safety margin before signing, since committing externally to a number your internal SLO can't sustainably support creates immediate structural risk.
Worked example
A template clause: "Availability shall be measured as [defined ratio] over each calendar month, using Provider's production monitoring system, cross-checked quarterly against [named third-party monitor]. Scheduled maintenance, not exceeding 4 hours per quarter with 72 hours' advance notice, is excluded. Should monthly availability fall below 99.9%, Customer is entitled to a service credit of 10% of that month's fees; below 99.5%, 25%; three consecutive months below 99.9% entitles Customer to terminate for cause without penalty. Disputes regarding measured availability shall first be reviewed jointly by both parties' technical teams within 10 business days, escalating to management review if unresolved, and to [named] mediation before any litigation."
Trade-offs and pitfalls
Negotiating a tighter SLA than your internal SLO can sustainably support, purely to win the deal, creates a structural mismatch that surfaces painfully later, either as chronic credit payouts or as constant internal pressure to hit a number the architecture wasn't built for; the internal-alignment check should happen BEFORE the negotiation, not be discovered as a problem after signing. It's equally risky to leave the measurement-source question vague ("availability shall be measured appropriately"), since that vagueness is exactly what a real dispute exploits; naming the authoritative source and a reconciliation process up front removes the single most common point of later conflict.
Compare a centralized SRE team model against an embedded model, where SRE engineers sit inside product teams. For a large organization with many product groups, propose a hybrid that balances centralized standards against team autonomy, and describe how that structure would need to evolve as the organization scales from a small team to hundreds of engineers.
Sample Answer
A centralized SRE model pools reliability engineers into one team that serves many product groups, which maximizes consistency and lets scarce reliability expertise scale across the company; an embedded model places SRE engineers inside each product team, which maximizes context and speed of iteration but risks each team reinventing its own standards and tooling. For a large, many-product organization, a hybrid usually wins: a small central platform team owns the shared reliability substrate (tooling, SLO framework, incident process, training) while embedded or team-aligned SREs apply it to their specific product's context, reporting a dotted line back to the central team for standards and career growth.
Comparing the two pure models
| Dimension | Centralized | Embedded |
|---|---|---|
| Consistency of practice | High: one SLO framework, one incident process, one tool stack | Low by default: each team can drift toward its own conventions |
| Product context and speed | Lower: central SREs are generalists across many services | High: embedded SREs know the service and its team deeply |
| Scaling reliability expertise | Efficient: a small team's standards reach every product | Expensive: expertise must be re-hired or re-trained per team |
| Autonomy and trust | Lower: product teams feel reliability is imposed on them | Higher: reliability decisions are made by people who ship the code |
| Failure mode at scale | Becomes a bottleneck and a queue that product teams route around | Becomes fragmented; incidents that cross services have no shared playbook |
Designing the hybrid
- Central platform layer: owns the service-level objective (SLO) framework and tooling, the incident-command process, the production-readiness bar, and a small set of non-negotiable standards (what "on-call ready" means).
- Team-aligned reliability engineers: embedded in or paired with each product group, applying the shared framework to that team's actual service, running that team's on-call rotation, and feeding real-world friction back to the central team.
- Governance loop: a lightweight review (quarterly or per-major-launch) where the central team audits embedded practice against the shared standard, and the embedded engineers propose changes to the standard itself.
How the structure evolves with scale
At small scale (a handful of services), a single centralized team is usually enough: there isn't enough volume to justify per-team specialists, and consistency is cheap to maintain by hand. As the organization grows into dozens or hundreds of engineers across many product lines, the central team's queue becomes the bottleneck, and the case for embedding grows; the central team's job shifts from doing reliability work directly to building the tooling, training, and standards that let embedded engineers do it well without central review on every decision.
Trade-offs and pitfalls
The most common failure of the hybrid is letting the "central standard" calcify into bureaucracy that embedded teams route around, which quietly reverts the organization to a fragmented model with extra process on top. A second pitfall is treating a strong service-ownership culture, where individual teams already feel deep accountability for what they ship, as a substitute for any shared reliability structure at all; without a common vocabulary and toolset, cross-service incidents (a failure in one team's dependency causing another's outage) have no shared playbook and take longer to resolve than they should. Note that the specific mechanics being standardized (SLOs, error budgets, runbook format) are set by dedicated practices elsewhere; the organizational question here is who owns applying them and at what scale, not how those mechanics themselves work.
Unlock Full Question Bank
Get access to all 38 Site Reliability Engineering Principles interview questions and detailed answers.
Sign in to ContinueJoin thousands of developers preparing for their dream job.